版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、1. 使得8個(gè)發(fā)光二極管循環(huán)點(diǎn)亮,采用定時(shí)器方式0使得每個(gè)發(fā)光二極管點(diǎn)亮的時(shí)間為0.5s。#include<reg51.h>#include<intrins.h>#define uchar unsigned charuchar T_count=0;/定時(shí)中斷void toProc() interrupt 1TH0=(8192-5000)/32; /恢復(fù)初值TL0=(8192-5000)%32;if(+T_count=100)/0.5s移動(dòng)一位P0=_crol_(P0,1);T_count=0;/主函數(shù)void main()TMOD=0; TH0=(8192-5000)/
2、32; /5ms定時(shí)TL0=(8192-5000)%32;EA=1;ET0=1;TR0=1;P0=0xfe;while(1);2.完成下面電路所示的功能,K1,K2對(duì)應(yīng)兩個(gè)開關(guān)按鍵。P1口對(duì)應(yīng)發(fā)光二極管的狀態(tài)P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7K1=0,K2=0K1=0,K2=1K1=1,K2=0K1=1,K2=1#include<reg51.h>#define uint unsigned int#define uchar unsigned charsbit k1=P32;sbit k2=P33;/延時(shí)void delay(uint x)uchar i;
3、while(-x)for(i=0;i<120;i+);/主函數(shù)void main()while(1) if(k1=0)&&(k2=0) /K1、K2同時(shí)按下P1=0x00;delay(10);else if(k1=0)&&(k2=1) /K1按下,K2不按P1=0xcc;delay(10);else if(k1=1)&&(k2=0) /K2按下,K1不按P1=0xf0;delay(10);elseP1=0xff;delay(10);3.在一個(gè)數(shù)碼管上循環(huán)顯示“H”“E” “L” “L” “O” ,循環(huán)的時(shí)間為1s。#include<r
4、eg51.h>#define uchar unsigned char#define uint unsigned intuchar code tab=0xf6,0xf9,0xb8,0xb8,0xbf;uchar T_count=0;uchar i=1;void t0Proc() interrupt 1TH0=0x3c;TL0=0xb0;if(+T_count=10)P0=tabi;i=(i+1)%5;T_count=0;void main()TMOD=1;TH0=0x3c;TL0=0xb0;EA=1;TR0=1;ET0=1;P0=tab0; /初始化P0口while(1);4.在6個(gè)數(shù)碼管
5、上分別顯示自己學(xué)號(hào)的后六位數(shù)字。#include<reg51.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned intuchar code tab=;/學(xué)號(hào)自己設(shè)置/延時(shí)void delay(uint x)uchar i;while(x-)for(i=0;i<100;i+);/主函數(shù)void main()uchar k;uchar wei=0x01;P0=tab0;P2=0x01;delay(1000);while(1)for(k=1;k<6;k+)wei=wei<
6、;<1;P0=tabk;/發(fā)送數(shù)字段碼P2=wei;/發(fā)送位碼delay(1000);5.做一個(gè)簡(jiǎn)易30s的倒計(jì)時(shí)秒表,秒表的顯示通過8個(gè)發(fā)光二極管顯示出來。#include<reg51.h>#define uchar unsigned charvoid delay1s()uchar i;for(i=0;i<10;i+)TH1=0x3c;TL1=0xb0;TR1=1; /啟動(dòng)T1while(!TF1); /判斷T1有無請(qǐng)求TF1=0;void main()uchar i;uchar t;TMOD=0x10; /選擇T1計(jì)時(shí)while(1) for(i=30;i>0
7、;i-) t=(i/10)<<4)|(i%10); /高四位顯示十位,低四位顯示個(gè)位 P1=t; delay1s(); 6.使用外中斷0來控制,去實(shí)現(xiàn)下列功能。其中K1為按鍵,P1口對(duì)應(yīng)8個(gè)發(fā)光二極管的狀態(tài)P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7無按鍵按下(循環(huán))有按鍵按下#include<reg51.h>#define uint unsigned int#define uchar unsigned charuchar code tab=0xcc,0x30;sbit k1=P32;/延時(shí)void delay(uint x)uchar i;whil
8、e(-x)for(i=0;i<120;i+);void int0Proc() interrupt 0P1=0xf0;/主函數(shù)void main()uchar j;EA=1; EX0=1;IE0=1;while(1)if(k1=1) /未按下for(j=0;j<2;j+)P1=tabj; delay(500);8. 采用定時(shí)器方式1使得8個(gè)發(fā)光二極管按如下方式點(diǎn)亮,循環(huán)的時(shí)間為2sP1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7#include<reg51.h>#define uchar unsigned char#define uint unsigned
9、 intuchar code tab=0x0f,0xf0,0xcc,0x00;uchar T_count=0;uchar i=1;void t0Proc() interrupt 1TH0=0x3c;TL0=0xb0;if(+T_count=20)P0=tabi;i=(i+1)%4;T_count=0;void main()TMOD=1;TH0=0x3c;TL0=0xb0;EA=1;TR0=1;ET0=1;P0=tab0; /初始化P0口while(1);9.在一個(gè)數(shù)碼管上循環(huán)顯示“0” “1” “5” 3個(gè)數(shù)字,循環(huán)的時(shí)間為1s。#include<reg51.h>#define u
10、char unsigned char#define uint unsigned intuchar code tab=0xbf,0x86,0xed;uchar T_count=0;uchar i=1;void intoProc() interrupt 1TH0=0x3c;TL0=0xb0;if(+T_count=10)P0=tabi;i=(i+1)%3;T_count=0;void main()TMOD=1;TH0=0x3c;TL0=0xb0;EA=1;TR0=1;ET0=1;P0=tab0; /初始化P0口while(1);10.在4個(gè)數(shù)碼管上穩(wěn)定顯示出“A” “C” “E” “P” 四個(gè)字符
11、。#include<reg51.h>#define uchar unsigned char#define uint unsigned intvoid delay(uint x)uchar i;while(x-)for(i=0;i<100;i+);void main()while(1)P0=0xf7; /AP2=0xb9; /CP3=0xf9; /EP1=0xf3; /Pdelay(500);12.做一個(gè)20s的簡(jiǎn)易秒表,當(dāng)按鍵K1按下時(shí),秒表暫停計(jì)數(shù),K2按下時(shí),開始計(jì)數(shù)。#include<reg51.h>#define uint unsigned int#def
12、ine uchar unsigned charuchar tab=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;sbit k1=P32;sbit k2=P33;uchar T_count=0;uchar i=0;void delay(int x)uchar i;while(x-)for(i=0;i<100;i+);void t0Proc() interrupt 1TH0=0x3c; /恢復(fù)定時(shí)器0初值TL0=0xb0;if(+T_count=10) /100ms*10=1s轉(zhuǎn)換狀態(tài)i+;P0=tabi/10;P2=tabi%10;if
13、(i=20) i=0; T_count=0;void main()P0=tabi;P2=tabi;TMOD=0x01;TH0=0x3c; TL0=0xb0;while(1)if(k1=0 && k2=1)EA=0;ET0=0;TR0=0;break;else if(k1=1 && k2=0)EA=1;ET0=1;TR0=1;break;14.使用外中斷1來控制,當(dāng)無按鍵按下時(shí)8個(gè)發(fā)光二極管循環(huán)點(diǎn)亮,循環(huán)點(diǎn)亮的時(shí)間為1s,有按鍵按下時(shí),8個(gè)發(fā)光二極管全部熄滅。#include<reg51.h>#include<intrins.h>#defi
14、ne uchar unsigned char#define uint unsigned intsbit k1=P32;uchar code tab=0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff;uchar T_count=0;uchar i=1;/T0定時(shí)void T0Proc() interrupt 1TH0=0x3c;TL0=0xb0;if(+T_count=10)P1=tabi;i=(i+1)%8;T_count=0;/INT1中斷函數(shù)void Int1Proc() interrupt 2P1=0xff;EA=0;EX1=0;IT1=0;ET0=0;TR
15、0=0;/主程序void main()TMOD=1;EA=1;ET0=1; TR0=1;TH0=0x3c;TL0=0xb0;EX1=1;IT1=1;P1=0xfe;while(1);16. 完成下面電路所示的功能,K1,K2對(duì)應(yīng)兩個(gè)開關(guān)按鍵。P1口對(duì)應(yīng)發(fā)光二極管的狀態(tài)P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7K1=0,K2=0K1=0,K2=1K1=1,K2=0K1=1,K2=1#include<reg51.h>#define uint unsigned int#define uchar unsigned charsbit k1=P32;sbit k2=P33
16、;/延時(shí)void delay(uint x)uchar i;while(-x)for(i=0;i<120;i+);/主函數(shù)void main()while(1) if(k1=1)&&(k2=1)/都未按下0:未按下,1:按下P1=0x00;delay(10);else if(k1=1)&&(k2=0) /k2按下,k1未按下P1=0xf0;delay(10);else if(k1=0)&&(k2=1) /k1按下,k2未按下P1=0xcf;delay(10);else if(k1=0)&&(k2=0) /都按下P1=0x55
17、;delay(10);17.完成下面電路的功能,P1口對(duì)應(yīng)發(fā)光二極管的狀態(tài),狀態(tài)1顯示的時(shí)間為1s,狀態(tài)2顯示的時(shí)間為2s,狀態(tài)3顯示的時(shí)間為3s,如此循環(huán)P1.0P1.1P1.2狀態(tài)1狀態(tài)2狀態(tài)3#include<reg51.h>#define uchar unsigned char#define uint unsigned intuchar code tab=0x05,0x06,0x03;uchar T_count=0;uchar State=0;uchar i=1;void t0Proc() interrupt 1TH0=0x3c;TL0=0xb0;switch(State)
18、case 0:if(+T_count=10)P1=tabi;i=(i+1)%3;T_count=0;State=1;break;case 1:if(+T_count=20)P1=tabi;i=(i+1)%3;T_count=0;State=2;break;case 2:if(+T_count=30)P1=tabi;i=(i+1)%3;i=1;T_count=0;State=0;break;void main()TMOD=1;TH0=0x3c;TL0=0xb0;EA=1;ET0=1;TR0=1;P1=tab0;while(1);18.彩燈系統(tǒng),實(shí)現(xiàn)8個(gè)發(fā)光二極管從左到右點(diǎn)亮,每個(gè)發(fā)光二極管點(diǎn)亮的
19、時(shí)間為2s,然后從右到左亮,每個(gè)發(fā)光二極管點(diǎn)亮的時(shí)間為1.5s.#include<reg51.h>#include<intrins.h>#define uchar unsigned charuchar code tab=0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80;uchar code tab1=0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01;uchar State=0;uchar T_count=0;uchar i=1;void t0Proc() interrupt 1TH0=0x3c;TL0=0xb0
20、;switch(State)case 0:if(+T_count=20)P2=tabi;i=(i+1)%8;if(i=7)State=1;T_count=0;break;case 1:if(+T_count=15)i=(i+1)%8;P2=tab1i;if(i=7)State=0;i=1;T_count=0;break;void main()TMOD=1;TH0=0x3c;TL0=0xb0;EA=1;ET0=1;TR0=1;P2=tab0;while(1);19. 在4個(gè)數(shù)碼管上顯示出當(dāng)天的日期。#include<reg51.h>#define uchar unsigned cha
21、r#define uint unsigned intuchar code tab=0x06,0x5b,0x06,0x6f;void delay(int x)uchar i;while(x-)for(i=0;i<120;i+);void main()P0=tab0;P2=tab1;P3=tab2;P1=tab3;delay(500);20. 完成下面電路的功能,P1口對(duì)應(yīng)發(fā)光二極管的狀態(tài),狀態(tài)1顯示的時(shí)間為3s,狀態(tài)2顯示的時(shí)間為1s,狀態(tài)3顯示的時(shí)間為0.5s,狀態(tài)4顯示的時(shí)間為0.1s,如此循環(huán)P1.0P1.1P1.2P1.3狀態(tài)1狀態(tài)2狀態(tài)3狀態(tài)4#include<reg51.
22、h>#define uchar unsigned char#define uint unsigned intuchar code tab=0x0c,0x0e,0x0f,0x00;uchar T_count=0;uchar State=0;uchar i=1;void t0Proc() interrupt 1TH0=0x3c;TL0=0xb0;switch(State)case 0:if(+T_count=30)P1=tabi;i=(i+1)%4;T_count=0;State=1;break;case 1:if(+T_count=10)P1=tabi;i=(i+1)%4;T_count=
23、0;State=2;break;case 2:if(+T_count=5)P1=tabi;i=(i+1)%4;T_count=0;State=3;break;case 3:if(+T_count=1)P1=tabi;i=(i+1)%4;T_count=0;State=0;break;void main()TMOD=1;TH0=0x3c;TL0=0xb0;EA=1;ET0=1;TR0=1;P1=tab0;while(1);23. 數(shù)碼管數(shù)字顯示控制程序設(shè)計(jì)。控制要求:用按鍵K1和K2分別控制數(shù)碼管顯示數(shù)字09的順序,當(dāng)按下K1鍵時(shí)按從0到9的順序顯示,當(dāng)按下K2時(shí)按從9到0的順序顯示。時(shí)間間隔均
24、為1秒。硬件電路如圖所示。#include<reg51.h>#define uchar unsigned char#define uint unsigned intuchar code tab1=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;uchar code tab2=0x6f,0x7f,0x07,0x7d,0x6d,0x66,0x4f,0x5b,0x06,0x3f;uchar T_count=0;sbit k1=P10;sbit k2=P11;uchar i=0;void t0Proc() interrupt 1TH0=0
25、x3c;TL0=0xb0;if(+T_count=10)T_count=0;i=(i+1)%10;void main()TMOD=1;TH0=0x3c;TL0=0xb0;EA=1;ET0=1;TR0=1;P0=0x3f;while(1)if(k1=0 && k2=1)P0=tab1i;else if(k1=1 && k2=0)P0=tab2i;24. 89C51與PC通過串口通信,單片機(jī)采用方式3串行通信,晶振都采用12MHz,波特率為1200Baud。要求:當(dāng)單片機(jī)收到PC發(fā)來的數(shù)據(jù)“S”后,將30H-3FH的16個(gè)字節(jié)發(fā)送給乙機(jī),當(dāng)單片機(jī)收到“P”H時(shí)就發(fā)4
26、0H-5FH的32個(gè)字節(jié)數(shù)據(jù)。#include<reg51.h>#include<stdio.h>char *startPoint;char *endPoint;void sendData()if(startPoint <= endPoint)SBUF=*startPoint;+startPoint;void startSend(char *start ,char *end)startPoint=start;endPoint = end;sendData();void serialPorc() interrupt 4if(TI)TI=0;sendData();el
27、seRI=0;if(0x53=SBUF)startSend(0x30,0x3f);else if(0x50=SBUF)startSend(0x40,0x5f);void main()TMOD=0x20;TH1=0xe6;TL1=0xe6;TR1=1;SCON=0xd0;EA=1;ES=1;while(1);25. 交通控制系統(tǒng),如下圖所示,是交叉路口,要求:綠燈亮9秒后,黃燈閃3秒,后紅燈亮9秒,兩個(gè)數(shù)碼管分別顯視各種燈所剩余時(shí)間。#include<reg51.h>#define uchar unsigned char#define uint unsigned intuchar c
28、ode tab=0x6f,0x7f,0x07,0x7d,0x6d,0x66,0x4f,0x5b,0x06,0x3f;uchar code tab1=0x4f,0x5b,0x06,0x3f;sbit RED_A=P00; sbit YELLOW_A=P01;sbit GREEN_A=P02;sbit RED_B=P03; sbit YELLOW_B=P04;sbit GREEN_B=P05;uchar Operation_Type=1; /操作類型變量uchar T_count=0;uchar i=0;void t0Proc() interrupt 1TH0=0x3c;TL0=0xb0;swit
29、ch(Operation_Type)case 1:/紅燈亮RED_A=0;YELLOW_A=1;GREEN_A=1;RED_B=0;YELLOW_B=1;GREEN_B=1;if(+T_count=90)T_count=0;Operation_Type=2;i=0;if(T_count%10=0)P3=tabi;P1=tabi;i=(i+1)%10;break;case 2: /黃燈閃RED_A=1;YELLOW_A=YELLOW_A;GREEN_A=1;RED_B=1;YELLOW_B=YELLOW_B;GREEN_B=1;if(+T_count=30)T_count=0;Operation
30、_Type=3;i=0;if(T_count%10=0)P3=tab1i;P1=tab1i;i=(i+1)%3;break;case 3: /綠燈亮RED_A=1;YELLOW_A=1;GREEN_A=0;RED_B=1;YELLOW_B=1;GREEN_B=0;if(+T_count=90)T_count=0;Operation_Type=1;i=0;if(T_count%10=0)P3=tabi;P1=tabi;i=(i+1)%10;break;void main()TMOD=1;TH0=0x3c;TL0=0xb0;EA=1;ET0=1;TR0=1;P1=tab0;P3=tab0;whil
31、e(1);26用外部中斷1實(shí)現(xiàn)加計(jì)數(shù)功能,并將計(jì)數(shù)值輸出到數(shù)碼管上顯示。#include<reg51.h>#define uchar unsigned char#define uint unsigned int/09的段碼uchar code DSY_CODE=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00;/計(jì)數(shù)值分解后各個(gè)待顯示的數(shù)位uchar DSY_Buffer=0,0,0;uchar Count=0;sbit Clear_Key=P36;/數(shù)碼管上顯示計(jì)數(shù)值void Show_Count_ON_DSY()DSY
32、_Buffer2=Count/100; /獲取3個(gè)數(shù)DSY_Buffer1=Count%100/10;DSY_Buffer0=Count%10;if(DSY_Buffer2=0) /高位為0時(shí)不顯示DSY_Buffer2=0x0a;if(DSY_Buffer1=0) /高位為0,若第二位為0同樣不顯示DSY_Buffer1=0x0a;P0=DSY_CODEDSY_Buffer0;P1=DSY_CODEDSY_Buffer1;P2=DSY_CODEDSY_Buffer2;/主程序void main()P0=0x00;P1=0x00;P2=0x00;EA=1;EX1=1;IT1=1; /下降沿觸發(fā)
33、while(1)if(Clear_Key=0) Count=0; /清0Show_Count_ON_DSY();/INT1中斷函數(shù)void EX_INT1() interrupt 2Count+; /計(jì)數(shù)值遞增28. LED燈要求亮2秒鐘,滅2秒鐘,要求使用定時(shí)計(jì)數(shù)器,要求寫主程序與中斷程序,fosc = 6MHz#include<reg51.h>#define uchar unsigned charuchar T_count=0;sbit LED=P10;void t0Proc() interrupt 1TH0=0x3c;TL0=0xb0;if(+T_count=20)T_cou
34、nt=0;LED=LED;void main()TMOD=1;TH0=0x3c;TL0=0xb0;EA=1;ET0=1;TR0=1;while(1);29利用外部中斷0,每申請(qǐng)一次中斷使P0口連接的發(fā)光二極管點(diǎn)亮一個(gè),從低位到高位,同時(shí)使P1口連接的發(fā)光二極管熄滅一個(gè),從高位到低位#include<reg51.h>#define uchar unsigned charuchar code tab=0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff;uchar i=0;/INT1中斷函數(shù)void EX_INT1() interrupt 2P0=tabi;P1=tabi;if(+i=8)i=0;/主程序void main()P0=0xff;P1=0x00;EA=1;EX0=1;IT0=1; /下降沿觸發(fā)while(1);31. 用定時(shí)計(jì)數(shù)器T1定時(shí),由P0控制8個(gè)指示燈,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 南昌航空大學(xué)科技學(xué)院《漢字學(xué)概論》2023-2024學(xué)年第一學(xué)期期末試卷
- 南昌工學(xué)院《建筑信息模型》2023-2024學(xué)年第一學(xué)期期末試卷
- 茅臺(tái)學(xué)院《咖啡茶文化與服務(wù)》2023-2024學(xué)年第一學(xué)期期末試卷
- 潞安職業(yè)技術(shù)學(xué)院《汽車構(gòu)造雙語(yǔ)》2023-2024學(xué)年第一學(xué)期期末試卷
- 瀘州醫(yī)療器械職業(yè)學(xué)院《生態(tài)與環(huán)境保護(hù)專題》2023-2024學(xué)年第一學(xué)期期末試卷
- 隴東學(xué)院《跨文化人力資源管理》2023-2024學(xué)年第一學(xué)期期末試卷
- 柳州城市職業(yè)學(xué)院《護(hù)理學(xué)導(dǎo)論》2023-2024學(xué)年第一學(xué)期期末試卷
- 瀘州職業(yè)技術(shù)學(xué)院《漢語(yǔ)口語(yǔ)表達(dá)》2023-2024學(xué)年第一學(xué)期期末試卷
- 林州建筑職業(yè)技術(shù)學(xué)院《即興伴奏二》2023-2024學(xué)年第一學(xué)期期末試卷
- 遼寧中醫(yī)藥大學(xué)《交互信息設(shè)計(jì)》2023-2024學(xué)年第一學(xué)期期末試卷
- 《庖丁解?!帆@獎(jiǎng)?wù)n件(省級(jí)公開課一等獎(jiǎng))-完美版PPT
- 化工園區(qū)危險(xiǎn)品運(yùn)輸車輛停車場(chǎng)建設(shè)標(biāo)準(zhǔn)
- 6月大學(xué)英語(yǔ)四級(jí)真題(CET4)及答案解析
- 氣排球競(jìng)賽規(guī)則
- 電梯維修保養(yǎng)報(bào)價(jià)書模板
- 危險(xiǎn)化學(xué)品目錄2023
- FZ/T 81024-2022機(jī)織披風(fēng)
- GB/T 33141-2016鎂鋰合金鑄錠
- JJF 1069-2012 法定計(jì)量檢定機(jī)構(gòu)考核規(guī)范(培訓(xùn)講稿)
- 綜合管廊工程施工技術(shù)概述課件
- 公積金提取單身聲明
評(píng)論
0/150
提交評(píng)論