單片機(jī)程序源代碼_第1頁
單片機(jī)程序源代碼_第2頁
單片機(jī)程序源代碼_第3頁
單片機(jī)程序源代碼_第4頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、單片機(jī)程序源代碼單片機(jī)程序源代碼單片機(jī)程序源代碼xxx公司單片機(jī)程序源代碼文件編號(hào): 文件日期: 修訂次數(shù):第 1.0 次更改 批 準(zhǔn)審 核制 定方案設(shè)計(jì),管理制度第二章任務(wù)一:閃爍廣告燈的設(shè)計(jì)利用89c51單片機(jī)的端口控制兩個(gè)LED(D0和D1),編寫程序,實(shí)現(xiàn)兩個(gè)LED互閃。 #include #define uint unsigned int #define uchar unsigned char sbit LED1=P00; sbit LED2=P01; void delayms(uint ms) uint i;while(ms-)for(i=0;iD3-D4-D5 -D6-D7 ,然

2、后再點(diǎn)亮D7-D6-D5-D4 -D3-D2-D1-D0,重復(fù)循環(huán)。#include#include #define uint unsigned int#define uchar unsigned charuint i;uchar temp;uint a8=0 xfe,0 xfd,0 xfb,0 xf7,0 xef,0 xdf,0 xbf,0 x7f;void delayms(uint ms) while(ms-) uint j; for(j=0;j120;j+); void main() while(1) P0=0 xfe; while(P0!=0 x7f) 7f89cbreak;elses

3、ound(&musicn);n+ ;void main()init();while(1)if(key=0)delayms(5);play(table1);SPEAKER=1;void inter() interrupt 1TH0 = ReloadH;TL0 = ReloadL;SPEAKER = !SPEAKER; /音樂聲頻的半個(gè)波 (3)#include/頭文件#define uint unsigned int#define uchar unsigned char/宏定義sbit beep=P10;/按鍵位聲明void Beep()/“叮咚”子函數(shù)uint i,j;for(i=300;i;

4、i-)/持續(xù)時(shí)間 beep=beep;for(j=240;j;j-);/頻率for(i=200;i;i-)/持續(xù)時(shí)間 beep=beep;for(j=180;j;j-);/頻率void init() /初始化子函數(shù)EA=1; /打開總中斷TMOD=0 x05;/設(shè)置計(jì)數(shù)器0 工作方式1 ET0=1; /打開計(jì)數(shù)器0中斷TR0=1;/啟動(dòng)定時(shí)器0TH0=0 xff;TL0=0 xff;/計(jì)數(shù)器賦初值void beep_interrupt() interrupt 1 /計(jì)數(shù)器0中斷服務(wù)子程序TH0=0 xff;TL0=0 xff;/計(jì)數(shù)器初值Beep();/調(diào)用“叮咚”子函數(shù)void main()

5、/主函數(shù)init();/調(diào)用初始化函數(shù)while(1);/等待按鍵按下任務(wù)七:速度可調(diào)流水燈控制假設(shè)單片機(jī)晶振頻率為12MHz, 單片機(jī)P0口外接8只LED,外接按鍵K1,外接按鍵K2。編寫程序,每次按下按鍵K1時(shí),加快8只LED的流水顯示速度;每次按下按鍵K2時(shí),降低8只LED的流水顯示速度。#include#define uint unsigned int#define uchar unsigned charuchar table15=0 xfe,0 xfd,0 xfb,0 xf7,0 xef,0 xdf,0 xbf,0 x7f,0 xbf,0 xdf,0 xef,0 xf7,0 xfb,

6、0 xfd,0 xfe;uint count,i,num;void int_int()EA=1;EX0=1;/允許外部中斷EX1=1;IT0=1;/下降沿有效IT1=1;TL0=(65535-50000)%256;TH0=(65535-50000)/256;TMOD=0X01;/方式TR0=1;ET0=1;num=10000;void key1_1() interrupt 0 num=num-2000; if(num=60000)num=60000; void timer_0() interrupt 1TL0=(65535-num)%256;TH0=(65535-num)/256;count+

7、;if(count=20)count=0;if(i!=15)P0=tablei;i+;elsei=1;void main()int_int();while(1);(2) #include /#define uint unsigned int #include int num=0; int time=0; int aa=0 xfe; void init()EA=1; /打開總中斷ET0=1;/打開定時(shí)器0中斷TR0=1; /啟動(dòng)定時(shí)器0TMOD=0 x01;/設(shè)置定時(shí)器0工作方式1TH0=(65536-50000)/256;/高8位賦初值TL0=(65536-50000)%256;/低8位賦初值

8、num=0;/num=58; void Incre_time() interrupt 0 time+=2; void Decre_time() interrupt 2 time-=2; void timer0() interrupt 1 num+; TH0=(65536-50000)/256;TL0=(65536-50000)%256; void main() init(); P0=aa ; while (1) P0=0 xfd ; /P0=aa; if(num=(10+time)aa=_crol_(aa,1);num=0; 任務(wù)八:PWM調(diào)光假設(shè)單片機(jī)晶振頻率為12MHz, 單片機(jī)P0,P2

9、口作為輸出口,外接一個(gè)2位LED數(shù)碼管,外接LED,外接按鍵K1,外接按鍵K2,外接蜂鳴器。編寫程序,每次按下按鍵K1時(shí),LED數(shù)碼管顯示加1,LED變暗;每次按下按鍵K2時(shí),LED數(shù)碼管顯示數(shù)據(jù)減1,LED變亮;當(dāng)LED數(shù)碼管顯示為0A時(shí),再次按下按鍵K1時(shí),則蜂鳴器發(fā)出報(bào)警聲。任務(wù)九:簡單電子頻率計(jì)假設(shè)單片機(jī)晶振頻率為12MHz, 單片機(jī)P0,P2端口作為輸出口,外接4位LED數(shù)碼管。編寫程序,測(cè)量由輸入脈沖的頻率。 #include #define uint unsigned int #define uchar unsigned char uchar table= 0XC0,0XF9,0

10、XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90;uint num=0,num0=0;num1=0,num2=0,num3=0,count=0,new_num=0;void delayms(uint ms)uint i;while(ms-)for(i=0;i120;i+);void int_int()EA=1;EX1=1;IT1=1;TMOD=0X01;ET0=1;TL0=(65535-62500)%256;TH0=(65535-62500)/256;void display()num3=new_num/1000;num2=(new_num%1000)/100;nu

11、m1=(new_num%100)/10;num0=new_num%10;P2=0 x08;P0=tablenum0;delayms(1);P2=0X04;P0=tablenum1;delayms(1);P2=0X02;P0=tablenum2;delayms(1);P2=0X01;P0=tablenum3;delayms(1);void key_key() interrupt 2num+;if(num=1)TR0=1;void timer() interrupt 1TL0=(65535-62500)%256;TH0=(65535-62500)/256;count+;if(count=16)/定

12、時(shí)時(shí)間1scount=0;new_num=num;num=0;TR0=0;void main()int_int();while(1)display();第七章任務(wù)一:甲機(jī)通過串口控制乙機(jī)LED顯示狀態(tài)單片機(jī)甲機(jī)P1端口外接8位撥碼開關(guān);乙機(jī)P0外接8只LED。要求使用單片機(jī)串行通信,在查詢狀態(tài)下使單片機(jī)乙機(jī)8只LED能夠顯示單片機(jī)甲機(jī)8位撥碼開關(guān)的狀態(tài)。任務(wù)二:甲機(jī)通過串口控制乙機(jī)計(jì)時(shí)單片機(jī)甲機(jī)的外接按鍵K1,外接按鍵;單片機(jī)乙機(jī)P0、P2端口作為輸出口,外接一個(gè)2位LED數(shù)碼管。要求使用單片機(jī)串行通信,使甲機(jī)的按鍵K1作為乙機(jī)計(jì)時(shí)的“開始/暫?!笨刂瓢存I,甲機(jī)的按鍵K2作為乙機(jī)計(jì)時(shí)的“復(fù)位”控制按鍵。任務(wù)三:單片機(jī)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論