/* 名稱:數(shù)碼管顯示撥碼開關編碼說明:系統(tǒng)顯示撥碼開關所設置的編碼 000~255 */#include<reg51.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned int//各數(shù)字的數(shù)碼管段碼(共陰)uchar c
/* 名稱:繼電器控制照明設備說明:按下 K1 燈點亮,再次按下時燈熄滅*/#include<reg51.h>#define uchar unsigned char#define uint unsigned intsbit K1=P1^0; sbit RELAY=P2^4;//延時void DelayMS(uint ms){uchar
/* 名稱:數(shù)碼管顯示 4X4 矩陣鍵盤按鍵號說明:按下任意鍵時,數(shù)碼管都會顯示其鍵的序號,掃描程序首先判斷按鍵發(fā)生在哪一列,然后根據(jù)所發(fā)生的行附加不同的值,從而得到按鍵的序號。*/#include<reg51.h>#define uc
/* 名稱:4X4 矩陣鍵盤控制條形 LED 顯示說明:運行本例時,按下 的 按 鍵 值 越 大 點 亮 的LED 越多。*/#include<reg51.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned int//矩陣鍵盤按
K1-K4 控制數(shù)碼管移位顯示/* 名稱:K1-K4 控制數(shù)碼管移位顯示說明:按下 K1 時加 1 計數(shù)并增加顯示位,按下 K2 時減 1 計數(shù)并減少顯示位,按下 K3 時清零。*/#include<reg51.h>#define uchar unsigned char#define
/* 名稱:K1-K4 分組控制 LED*/說明:每次按下 K1 時遞增點亮一只 LED,全亮時再次按下則再次循環(huán)開始, K2 按下后點亮上面 4 只 LED,K3 按下后點亮下面 4 只 LED,K4 按下后關閉所有 LED #include<reg51.h>#d
/* 名稱:K1-K4 按鍵狀態(tài)顯示說明:K1、K2 按下時 LED 點亮,松開時熄滅,*/ K3、K4 按下并釋放時 LED 點亮,再次按下并釋放時熄滅; #include<reg51.h>#define uchar unsigned char#define uint unsigned ints
/* 名稱:K1-K4 控制 LED 移位說明:按下 K1 時,P0 口 LED 上移一位; #FormatImgID_0# */按下 K2 時,P0 口 LED 下移一位;按下 K3 時,P2 口 LED 上移一位;按下 K4 時,P2 口 LED 下移一位; #include<reg51.h
/* 名稱:8 只數(shù)碼管滾動顯示單個數(shù)字說明:數(shù)碼管從左到右依次滾動顯示0~7,程序通過每次僅循環(huán)選通一只數(shù)碼管*/#include<reg51.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned intuchar
/* 名稱:單只數(shù)碼管循環(huán)顯示 0~9說明:主程序中的循環(huán)語句反復將 0~9 的段碼送至 P0 口,使數(shù)字 0~9 循環(huán)顯示*/#include<reg51.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned intuchar
/* 名稱:LED 模擬交通燈說明:東西向綠燈亮若干秒,黃燈閃爍 5 次后紅燈亮, 紅燈亮后,南北向由紅燈變?yōu)榫G燈,若干秒后南北向黃燈閃爍 5 此后變紅燈,東西向變綠燈,如此重復。*/#include<reg51.h>#define uchar
/* 名稱:花樣流水燈說明:16 只 LED 分兩組按預設的多種花樣變換顯示*/#include<reg51.h>#define uchar unsigned char#define uint unsigned intuchar code Pattern_P0[]={0xfc,0xf9,0xf3,0xe7,0xcf,0x9f,0x3f,0x
/* 名稱:8 只 LED 左右來回點亮說明:程序利用循環(huán)移位函數(shù)_crol_和_cror_形成來回滾動的效果*/#include<reg51.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned int//延時void DelayMS(u
/* 名稱:從左到右的流水燈說明:接在 P0 口的 8 個 LED從左到右循環(huán)依次點亮,產(chǎn)生走馬燈效果*/#include<reg51.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned int //延時void DelayMS(
/* 名稱:閃爍的 LED說明:LED 按設定的時間間隔閃爍*/#include<reg51.h>#define uchar unsigned char#define uint unsigned intsbit LED=P1^0;//延時void DelayMS(uint x){uchar i;while(x--){for(i=0;i<120;i++)
寫這個8*8按鍵程序的過程中,不管是在自己寫還是參考別人程序的過程中,發(fā)現(xiàn)自己對C語言有些基本知識點和編程規(guī)范有很多不懂的地方,有些是自己以前的編程習慣不好,有些就是基礎知識不扎實的表現(xiàn),所以總結(jié)出來。一
1.某單片機系統(tǒng)的P2口接一數(shù)模轉(zhuǎn)換器DAC0832輸出模擬量,現(xiàn)在要求從DAC0832輸出連續(xù)的三角波,實現(xiàn)的方法是從P2口連續(xù)輸出按照三角波變化的數(shù)值,從0開始逐漸增大,到某一最大值后逐漸減小,直到0,然后再從0逐漸增
我們知道,51單片機有幾個不同的中斷源。對于一個系統(tǒng)的設計,通常在初始化程序里面需要定義各個中斷等比如:TMOD = 0x21; // T1 mode 2 T0,mode 1 //GATE C/T M1 M0 GATE C/T M1 M0TL1 = 0xfd; // 0xfa=4800 bps 0x
運算符優(yōu)先級和結(jié)合性
附錄二 AT89C51特殊功能寄存器列表(適用于同一架構(gòu)的芯片)帶*號的特殊功能寄存器都是可以位尋址的寄存器