/* 名稱(chēng):ADC0809 數(shù)模轉(zhuǎn)換與顯示說(shuō)明:ADC0809 采樣通道 3 輸入的模擬量,轉(zhuǎn)換后的結(jié)果顯示在數(shù)碼管上。*/#include<reg51.h>#define uchar unsigned char#define uint unsigned int//各數(shù)字的數(shù)碼管段碼(共陰)uc
/* 名稱(chēng):用 ADC0808 控制 PWM 輸出說(shuō)明:使用數(shù)模轉(zhuǎn)換芯片 ADC0808,通過(guò)調(diào)節(jié)可變電阻 RV1 來(lái)調(diào)節(jié)脈沖寬度,運(yùn)行程序時(shí),通過(guò)虛擬示波器觀察占空比的變化。*/#include<reg51.h>#define uchar unsigned char#define
/* 名稱(chēng):?jiǎn)纹瑱C(jī)與 PC 通信說(shuō)明:?jiǎn)纹瑱C(jī)可接收 PC 發(fā)送的數(shù)字字符,按下單片機(jī)的K1 鍵后,單片機(jī)可向 PC 發(fā)送字符串。在 Proteus 環(huán)境下完成本 實(shí) 驗(yàn) 時(shí) , 需 要 安 裝 Virtual Serial Port Driver 和串口調(diào)試助手
/* 名稱(chēng):?jiǎn)纹瑱C(jī)向主機(jī)發(fā)送字符串說(shuō)明:?jiǎn)纹瑱C(jī)按一定的時(shí)間間隔向主機(jī)發(fā)送字符串,發(fā)送內(nèi)容在虛擬終端顯示。*/#include<reg51.h>#define uchar unsigned char#define uint unsigned int//延時(shí)void DelayMS(uint ms)
/* 名稱(chēng):甲機(jī)串口程序說(shuō)明:甲機(jī)向乙機(jī)發(fā)送控制命令字符,甲機(jī)同時(shí)接收乙機(jī)發(fā)送的數(shù)字,并顯示在數(shù)碼管上。*/#include<reg51.h>#define uchar unsigned char#define uint unsigned intsbit LED1=P1^0; sbit LED2
/* 名稱(chēng):甲機(jī)發(fā)送控制命令字符說(shuō)明:甲單片機(jī)負(fù)責(zé)向外發(fā)送控制命令字符“A”、“B”、“C”,或者停止發(fā)送,乙機(jī)根據(jù)所接收到的字符完成 LED1 閃爍、LED2 閃爍、雙閃爍、或停止閃爍
/* 名稱(chēng):報(bào)警與旋轉(zhuǎn)燈說(shuō)明:定時(shí)器控制報(bào)警燈旋轉(zhuǎn)顯示,并發(fā)出仿真警報(bào)聲。*/#include<reg51.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned intsbit SPK=P3^7;uchar FRQ=0x00; //延時(shí)
/* 名稱(chēng):按鍵控制定時(shí)器選播多段音樂(lè)說(shuō)明:本例內(nèi)置 3 段音樂(lè),K1 可啟動(dòng)停止音樂(lè)播放,K2 用于選擇音樂(lè)段。*/#include<reg51.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned intsbit
/* 名稱(chēng):演奏音階說(shuō)明:本例使用定時(shí)器演奏一段音階,播放由 K1 控制。*/#include<reg51.h>#define uchar unsigned char#define uint unsigned intsbit K1=P1^0; sbit SPK=P3^4; uint i=0; //音符索引//14 個(gè)
/* 名稱(chēng):用定時(shí)器設(shè)計(jì)的門(mén)鈴說(shuō)明:按下按鍵時(shí)蜂鳴器發(fā)出叮咚的門(mén)鈴聲。*/#include<reg51.h>#define uchar unsigned char#define uint unsigned intsbit Key=P1^7;sbit DoorBell=P3^0;uint p=0;//主程序void main
/* 名稱(chēng):按鍵控制 8X8LED 點(diǎn)陣屏顯示圖形說(shuō)明:每次按下 K1 時(shí),會(huì)使 8X8LED點(diǎn)陣屏循環(huán)顯示不同圖形。本例同時(shí)使用外部中斷和定時(shí)中斷。*/#include<reg51.h>#include<intrins.h>#define uchar unsigned char#d
/* 名稱(chēng):100 000s 以?xún)?nèi)的計(jì)時(shí)程序說(shuō)明:在 6 只數(shù)碼管上完成 0~99 999.9s。*/#include<reg51.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned int//段碼uchar codeDSY_CODE[]={0x3f,0x06,
/* 名稱(chēng):用計(jì)數(shù)器中斷實(shí)現(xiàn) 100 以?xún)?nèi)的按鍵計(jì)數(shù)說(shuō)明:本例用 T0 計(jì)數(shù)器中斷實(shí)現(xiàn)按鍵技術(shù),由于計(jì)數(shù)寄存器初值為 1,因此 P3.4 引腳的每次負(fù)跳變都會(huì)觸發(fā) T0 中斷,實(shí)現(xiàn)計(jì)數(shù)值累加。計(jì)數(shù)器的清零用外部中斷 0 控制
/* 名稱(chēng):10s 的秒表 說(shuō)明:首次按鍵計(jì)時(shí)開(kāi)始,再次按鍵暫停,第三次按鍵清零。*/#include<reg51.h>#define uchar unsigned char#define uint unsigned intsbit K1=P3^7; uchari,Second_Counts,Key_Flag_Idx
/* 名稱(chēng):T0 控制 LED 實(shí)現(xiàn)二進(jìn)制計(jì)數(shù)說(shuō)明:本例對(duì)按鍵的計(jì)數(shù)沒(méi)有使用查詢(xún)法,沒(méi)有使用外部中斷函數(shù),沒(méi)有使用定時(shí)或計(jì)數(shù)中斷函數(shù)。而是啟用了計(jì)數(shù)器,連接在 T0 引腳的按鍵每次按下時(shí),會(huì)使計(jì)數(shù)寄存器的值遞增,其
/* 名稱(chēng):INT0 及 INT1 中斷計(jì)數(shù)說(shuō)明:每次按下第 1 個(gè)計(jì)數(shù)鍵時(shí),第 1 組計(jì)數(shù)值累加并顯示在右邊 3 只數(shù)碼管上, 每次按下第 2 個(gè)計(jì)數(shù)鍵時(shí),第2 組計(jì)數(shù)值累加并顯示在左邊 3 只數(shù)碼管上,后兩個(gè)按鍵分別清零。*/#in
/* 名稱(chēng):外部 INT0 中斷控制 LED說(shuō)明:每次按鍵都會(huì)觸發(fā) INT0 中斷,中斷發(fā)生時(shí)將 LED 狀態(tài)取反,產(chǎn)生 LED 狀態(tài)由按鍵控制的效果*/#include<reg51.h>#define uchar unsigned char#define uint unsigned intsbit LE
/* 名稱(chēng):INT0 中斷計(jì)數(shù)說(shuō)明:每次按下計(jì)數(shù)鍵時(shí)觸發(fā)INT0 中斷,中斷程序累加計(jì)數(shù),計(jì)數(shù)值顯示在 3 只數(shù)碼管上,按下清零鍵時(shí)數(shù)碼管清零*/#include<reg51.h>#define uchar unsigned char#define uint unsigned int//
/* 名稱(chēng):播放音樂(lè)說(shuō)明:程序運(yùn)行時(shí)播放生日快樂(lè)歌, 未使用定時(shí)器中斷,所有頻率完全用延時(shí)實(shí)現(xiàn)*/#include<reg51.h>#define uchar unsigned char#define uint unsigned intsbit BEEP=P3^7;//生日快樂(lè)歌的音符頻率表
/* 名稱(chēng):按鍵發(fā)音說(shuō)明:按下不同的按鍵會(huì)是 SOUNDER 發(fā)出不同頻率的聲音。本例使用延時(shí)函數(shù)實(shí)現(xiàn)不同頻率的聲音輸出,以后也可使用定時(shí)器*/#include<reg51.h>#define uchar unsigned char#define uint unsigned int