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