/* 名稱:用定時器設計的門鈴說明:按下按鍵時蜂鳴器發(fā)出叮咚的門鈴聲。*/#include<reg51.h>#define uchar unsigned char#define uint unsigned intsbit Key=P1^7;sbit DoorBell=P3^0;uint p=0;//主程序void main
/* 名稱:按鍵控制 8X8LED 點陣屏顯示圖形說明:每次按下 K1 時,會使 8X8LED點陣屏循環(huán)顯示不同圖形。本例同時使用外部中斷和定時中斷。*/#include<reg51.h>#include<intrins.h>#define uchar unsigned char#d
/* 名稱:按鍵控制 8X8LED 點陣屏顯示圖形說明:每次按下 K1 時,會使 8X8LED點陣屏循環(huán)顯示不同圖形。本例同時使用外部中斷和定時中斷。*/#include<reg51.h>#include<intrins.h>#define uchar unsigned char#d
/* 名稱:定時器控制數碼管動態(tài)顯示說明:8 個數碼管上分兩組動態(tài)顯示年月日與時分秒,本例的位顯示延時用定時器實現。*/#include<reg51.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned i
/* 名稱:100 000s 以內的計時程序說明:在 6 只數碼管上完成 0~99 999.9s。*/#include<reg51.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned int//段碼uchar codeDSY_CODE[]={0x3f,0x06,
/* 名稱:用計數器中斷實現 100 以內的按鍵計數說明:本例用 T0 計數器中斷實現按鍵技術,由于計數寄存器初值為 1,因此 P3.4 引腳的每次負跳變都會觸發(fā) T0 中斷,實現計數值累加。計數器的清零用外部中斷 0 控制
/* 名稱:10s 的秒表 說明:首次按鍵計時開始,再次按鍵暫停,第三次按鍵清零。*/#include<reg51.h>#define uchar unsigned char#define uint unsigned intsbit K1=P3^7; uchari,Second_Counts,Key_Flag_Idx
標準的C語言中沒有空語句。但在單片機的C語言編程中,經常需要用幾個空指令產生短延時的效果。這在匯編語言中很容易實現,寫幾個nop就行了。在keil C51中,直接調用庫函數:#include // 聲明了void _nop_(void);_nop
/* 名稱:TIMER0 與 TIMER1 控制條形 LED說明:定時器 T0 定時控制上一組條形 LED,滾動速度較快定時器 T1 定時控制下一組條形 LED,滾動速度較慢*/#include<reg51.h>#include<intrins.h>#define uchar unsigned ch
/* 名稱:T0 控制 LED 實現二進制計數說明:本例對按鍵的計數沒有使用查詢法,沒有使用外部中斷函數,沒有使用定時或計數中斷函數。而是啟用了計數器,連接在 T0 引腳的按鍵每次按下時,會使計數寄存器的值遞增,其
/* 名稱:定時器控制 4 個 LED 滾動閃爍說明:4 只 LED 在定時器控制下滾動閃爍。*/#include<reg51.h>#define uchar unsigned char#define uint unsigned intsbit B1=P0^0; sbit G1=P0^1; sbit R1=P0^2; sbit Y1=P0
/* 名稱:TIMER0 控制流水燈說明:定時器控制 P0、P2口的 LED 滾動顯示,本例未使用中斷函數。*/#include<reg51.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned int//主程序void main(){u
/* 名稱:定時器控制單只 LED說明:LED 在定時器的中斷例程控制下不斷閃爍。*/#include<reg51.h>#define uchar unsigned char#define uint unsigned intsbit LED=P0^0; uchar T_Count=0; //主程序void main(){ TMOD
程序能跑起來并不見得你的代碼就是很好的c代碼了,衡量代碼的好壞應該從以下幾個方面來看1,代碼穩(wěn)定,沒有隱患。2,執(zhí)行效率高。3,可讀性高。4,便于移植。下面發(fā)一些我在網上看到的技巧和自己的一些經驗來和大家分
/* 名稱:INT0 及 INT1 中斷計數說明:每次按下第 1 個計數鍵時,第 1 組計數值累加并顯示在右邊 3 只數碼管上, 每次按下第 2 個計數鍵時,第2 組計數值累加并顯示在左邊 3 只數碼管上,后兩個按鍵分別清零。*/#in
/* 名稱:外部 INT0 中斷控制 LED說明:每次按鍵都會觸發(fā) INT0 中斷,中斷發(fā)生時將 LED 狀態(tài)取反,產生 LED 狀態(tài)由按鍵控制的效果*/#include<reg51.h>#define uchar unsigned char#define uint unsigned intsbit LE
/* 名稱:INT0 中斷計數說明:每次按下計數鍵時觸發(fā)INT0 中斷,中斷程序累加計數,計數值顯示在 3 只數碼管上,按下清零鍵時數碼管清零*/#include<reg51.h>#define uchar unsigned char#define uint unsigned int//
/* 名稱:播放音樂說明:程序運行時播放生日快樂歌, 未使用定時器中斷,所有頻率完全用延時實現*/#include<reg51.h>#define uchar unsigned char#define uint unsigned intsbit BEEP=P3^7;//生日快樂歌的音符頻率表
/* 名稱:按鍵發(fā)音說明:按下不同的按鍵會是 SOUNDER 發(fā)出不同頻率的聲音。本例使用延時函數實現不同頻率的聲音輸出,以后也可使用定時器*/#include<reg51.h>#define uchar unsigned char#define uint unsigned int
/* 名稱:開關控制報警器說明:用 K1 開關控制報警器,程序控制 P1.0 輸出兩種不同頻率的聲音,模擬很逼真的報警效果*/#include<reg51.h>#define uchar unsigned char#define uint unsigned intsbit SPK=P1^0;sbit