版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、單片機(jī)上機(jī)操作考試題局部答案使得8個(gè)發(fā)光二極管循環(huán)點(diǎn)亮,采用定時(shí)器方式0使得每個(gè)發(fā)光二極管點(diǎn)亮的時(shí)間為0.5s。#include#include#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)/32; /5ms定時(shí)TL0=(8192-5
2、000)%32;EA=1;ET0=1;TR0=1;P0=0 xfe;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#define uint unsigned int#define uchar unsigned charsbit k1=P32;sbit k2=P33;/延時(shí)void delay(uint x)uchar i;while(-x)for(i=0;i120;i+);/主函數(shù)void
3、main()while(1) if(k1=0)&(k2=0) /K1、K2同時(shí)按下P1=0 x00;delay(10);else if(k1=0)&(k2=1) /K1按下,K2不按P1=0 xcc;delay(10);else if(k1=1)&(k2=0) /K2按下,K1不按P1=0 xf0;delay(10);elseP1=0 xff;delay(10);3.在一個(gè)數(shù)碼管上循環(huán)顯示“H“E “L “L “O ,循環(huán)的時(shí)間為1s。#include#define uchar unsigned char#define uint unsigned intuchar code tab=0 xf6
4、,0 xf9,0 xb8,0 xb8,0 xbf;uchar T_count=0;uchar i=1;void t0Proc() interrupt 1TH0=0 x3c;TL0=0 xb0;if(+T_count=10)P0=tabi;i=(i+1)%5;T_count=0;void main()TMOD=1;TH0=0 x3c;TL0=0 xb0;EA=1;TR0=1;ET0=1;P0=tab0; /初始化P0口while(1);4.在6個(gè)數(shù)碼管上分別顯示自己學(xué)號(hào)的后六位數(shù)字。#include#include#define uchar unsigned char#define uint u
5、nsigned intuchar code tab=;/學(xué)號(hào)自己設(shè)置/延時(shí)void delay(uint x)uchar i;while(x-)for(i=0;i100;i+);/主函數(shù)void main()uchar k;uchar wei=0 x01;P0=tab0;P2=0 x01;delay(1000);while(1)for(k=1;k6;k+)wei=wei1;P0=tabk;/發(fā)送數(shù)字段碼P2=wei;/發(fā)送位碼delay(1000);5.做一個(gè)簡易30s的倒計(jì)時(shí)秒表,秒表的顯示通過8個(gè)發(fā)光二極管顯示出來。#include#define uchar unsigned charvo
6、id delay1s()uchar i;for(i=0;i0;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#define uint unsigned int#define uchar unsigned charuchar code tab=0 xcc,0 x30;sbit k1=P32;/延時(shí)void delay(uint x)uchar
7、 i;while(-x)for(i=0;i120;i+);void int0Proc() interrupt 0P1=0 xf0;/主函數(shù)void main()uchar j;EA=1; EX0=1;IE0=1;while(1)if(k1=1) /未按下for(j=0;j2;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#define uchar unsigned char#define uint unsigned intuchar code
8、tab=0 x0f,0 xf0,0 xcc,0 x00;uchar T_count=0;uchar i=1;void t0Proc() interrupt 1TH0=0 x3c;TL0=0 xb0;if(+T_count=20)P0=tabi;i=(i+1)%4;T_count=0;void main()TMOD=1;TH0=0 x3c;TL0=0 xb0;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#define uchar unsigned char#define
9、 uint unsigned intuchar code tab=0 xbf,0 x86,0 xed;uchar T_count=0;uchar i=1;void intoProc() interrupt 1TH0=0 x3c;TL0=0 xb0;if(+T_count=10)P0=tabi;i=(i+1)%3;T_count=0;void main()TMOD=1;TH0=0 x3c;TL0=0 xb0;EA=1;TR0=1;ET0=1;P0=tab0; /初始化P0口while(1);10.在4個(gè)數(shù)碼管上穩(wěn)定顯示出“A “C “E “P 四個(gè)字符。#include#define uchar
10、 unsigned char#define uint unsigned intvoid delay(uint x)uchar i;while(x-)for(i=0;i100;i+);void main()while(1)P0=0 xf7; /AP2=0 xb9; /CP3=0 xf9; /EP1=0 xf3; /Pdelay(500);12.做一個(gè)20s的簡易秒表,當(dāng)按鍵K1按下時(shí),秒表暫停計(jì)數(shù),K2按下時(shí),開始計(jì)數(shù)。#include#define uint unsigned int#define uchar unsigned charuchar tab=0 x3f,0 x06,0 x5b,0
11、 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f;sbit k1=P32;sbit k2=P33;uchar T_count=0;uchar i=0;void delay(int x)uchar i;while(x-)for(i=0;i100;i+);void t0Proc() interrupt 1TH0=0 x3c; /恢復(fù)定時(shí)器0初值TL0=0 xb0;if(+T_count=10) /100ms*10=1s轉(zhuǎn)換狀態(tài)i+;P0=tabi/10;P2=tabi%10;if(i=20) i=0; T_count=0;void main()P0=tabi;P2=
12、tabi;TMOD=0 x01;TH0=0 x3c; TL0=0 xb0;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#include#define uchar unsigned char#define uint unsigned intsbit k1=P32;uchar code tab=0 x01,0 x03,0 x07
13、,0 x0f,0 x1f,0 x3f,0 x7f,0 xff;uchar T_count=0;uchar i=1;/T0定時(shí)void T0Proc() interrupt 1TH0=0 x3c;TL0=0 xb0;if(+T_count=10)P1=tabi;i=(i+1)%8;T_count=0;/INT1中斷函數(shù)void Int1Proc() interrupt 2P1=0 xff;EA=0;EX1=0;IT1=0;ET0=0;TR0=0;/主程序void main()TMOD=1;EA=1;ET0=1; TR0=1;TH0=0 x3c;TL0=0 xb0;EX1=1;IT1=1;P1=0
14、 xfe;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#define uint unsigned int#define uchar unsigned charsbit k1=P32;sbit k2=P33;/延時(shí)void delay(uint x)uchar i;while(-x)for(i=0;i120;i+);/主函數(shù)void main()while(1) if(k1=1)&(k2
15、=1)/都未按下0:未按下,1:按下P1=0 x00;delay(10);else if(k1=1)&(k2=0) /k2按下,k1未按下P1=0 xf0;delay(10);else if(k1=0)&(k2=1) /k1按下,k2未按下P1=0 xcf;delay(10);else if(k1=0)&(k2=0) /都按下P1=0 x55;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#define uchar unsigne
16、d char#define uint unsigned intuchar code tab=0 x05,0 x06,0 x03;uchar T_count=0;uchar State=0;uchar i=1;void t0Proc() interrupt 1TH0=0 x3c;TL0=0 xb0;switch(State)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(
17、+T_count=30)P1=tabi;i=(i+1)%3;i=1;T_count=0;State=0;break;void main()TMOD=1;TH0=0 x3c;TL0=0 xb0;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)亮的時(shí)間為2s,然后從右到左亮,每個(gè)發(fā)光二極管點(diǎn)亮的時(shí)間為1.5s.#include#include#define uchar unsigned charuchar code tab=0 x01,0 x02,0 x04,0 x08,0 x10,0 x20,0 x40,0 x8
18、0;uchar code tab1=0 x80,0 x40,0 x20,0 x10,0 x08,0 x04,0 x02,0 x01;uchar State=0;uchar T_count=0;uchar i=1;void t0Proc() interrupt 1TH0=0 x3c;TL0=0 xb0;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_cou
19、nt=0;break;void main()TMOD=1;TH0=0 x3c;TL0=0 xb0;EA=1;ET0=1;TR0=1;P2=tab0;while(1);在4個(gè)數(shù)碼管上顯示出當(dāng)天的日期。#include#define uchar unsigned char#define uint unsigned intuchar code tab=0 x06,0 x5b,0 x06,0 x6f;void delay(int x)uchar i;while(x-)for(i=0;i120;i+);void main()P0=tab0;P2=tab1;P3=tab2;P1=tab3;delay(50
20、0);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#define uchar unsigned char#define uint unsigned intuchar code tab=0 x0c,0 x0e,0 x0f,0 x00;uchar T_count=0;uchar State=0;uchar i=1;void t0Proc() interrupt 1TH0=0 x3c;TL0=0 xb0;s
21、witch(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=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=0 x3c;TL0=0
22、xb0;EA=1;ET0=1;TR0=1;P1=tab0;while(1);數(shù)碼管數(shù)字顯示控制程序設(shè)計(jì)??刂埔螅河冒存IK1和K2分別控制數(shù)碼管顯示數(shù)字09的順序,當(dāng)按下K1鍵時(shí)按從0到9的順序顯示,當(dāng)按下K2時(shí)按從9到0的順序顯示。時(shí)間間隔均為1秒。硬件電路如下圖。#include#define uchar unsigned char#define uint unsigned intuchar code tab1=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f;uchar code tab2=0 x6f,0 x7f,0
23、x07,0 x7d,0 x6d,0 x66,0 x4f,0 x5b,0 x06,0 x3f;uchar T_count=0;sbit k1=P10;sbit k2=P11;uchar i=0;void t0Proc() interrupt 1TH0=0 x3c;TL0=0 xb0;if(+T_count=10)T_count=0;i=(i+1)%10;void main()TMOD=1;TH0=0 x3c;TL0=0 xb0;EA=1;ET0=1;TR0=1;P0=0 x3f;while(1)if(k1=0 & k2=1)P0=tab1i;else if(k1=1 & k2=0)P0=tab2
24、i;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ī)收到“PH時(shí)就發(fā)40H-5FH的32個(gè)字節(jié)數(shù)據(jù)。#include#includechar *startPoint;char *endPoint;void sendData()if(startPoint = endPoint)SBUF=*startPoint;+startPoint;void startSend(char *start ,char *end)startPoint=start;en
25、dPoint = end;sendData();void serialPorc() interrupt 4if(TI)TI=0;sendData();elseRI=0;if(0 x53=SBUF)startSend(0 x30,0 x3f);else if(0 x50=SBUF)startSend(0 x40,0 x5f);void main()TMOD=0 x20;TH1=0 xe6;TL1=0 xe6;TR1=1;SCON=0 xd0;EA=1;ES=1;while(1);交通控制系統(tǒng),如以下圖所示,是交叉路口,要求:綠燈亮9秒后,黃燈閃3秒,后紅燈亮9秒,兩個(gè)數(shù)碼管分別顯視各種燈所剩余時(shí)
26、間。#include#define uchar unsigned char#define uint unsigned intuchar code tab=0 x6f,0 x7f,0 x07,0 x7d,0 x6d,0 x66,0 x4f,0 x5b,0 x06,0 x3f;uchar code tab1=0 x4f,0 x5b,0 x06,0 x3f;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=
27、1; /操作類型變量uchar T_count=0;uchar i=0;void t0Proc() interrupt 1TH0=0 x3c;TL0=0 xb0;switch(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=YELL
28、OW_A;GREEN_A=1;RED_B=1;YELLOW_B=YELLOW_B;GREEN_B=1;if(+T_count=30)T_count=0;Operation_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+
29、1)%10;break;void main()TMOD=1;TH0=0 x3c;TL0=0 xb0;EA=1;ET0=1;TR0=1;P1=tab0;P3=tab0;while(1);26用外部中斷1實(shí)現(xiàn)加計(jì)數(shù)功能,并將計(jì)數(shù)值輸出到數(shù)碼管上顯示。#include#define uchar unsigned char#define uint unsigned int/09的段碼uchar code DSY_CODE=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f,0 x00;/計(jì)數(shù)值分解后各個(gè)待顯示的數(shù)位uchar DSY_
30、Buffer=0,0,0;uchar Count=0;sbit Clear_Key=P36;/數(shù)碼管上顯示計(jì)數(shù)值void Show_Count_ON_DSY()DSY_Buffer2=Count/100; /獲取3個(gè)數(shù)DSY_Buffer1=Count%100/10;DSY_Buffer0=Count%10;if(DSY_Buffer2=0) /高位為0時(shí)不顯示DSY_Buffer2=0 x0a;if(DSY_Buffer1=0) /高位為0,假設(shè)第二位為0同樣不顯示DSY_Buffer1=0 x0a;P0=DSY_CODEDSY_Buffer0;P1=DSY_CODEDSY_Buffer1;
31、P2=DSY_CODEDSY_Buffer2;/主程序void main()P0=0 x00;P1=0 x00;P2=0 x00;EA=1;EX1=1;IT1=1; /下降沿觸發(fā)while(1)if(Clear_Key=0) Count=0; /清0Show_Count_ON_DSY();/INT1中斷函數(shù)void EX_INT1() interrupt 2Count+; /計(jì)數(shù)值遞增LED燈要求亮2秒鐘,滅2秒鐘,要求使用定時(shí)計(jì)數(shù)器,要求寫主程序與中斷程序,fosc = 6MHz#include#define uchar unsigned charuchar T_count=0;sbit L
32、ED=P10;void t0Proc() interrupt 1TH0=0 x3c;TL0=0 xb0;if(+T_count=20)T_count=0;LED=LED;void main()TMOD=1;TH0=0 x3c;TL0=0 xb0;EA=1;ET0=1;TR0=1;while(1);29利用外部中斷0,每申請(qǐng)一次中斷使P0口連接的發(fā)光二極管點(diǎn)亮一個(gè),從低位到高位,同時(shí)使P1口連接的發(fā)光二極管熄滅一個(gè),從高位到低位#include#define uchar unsigned charuchar code tab=0 x01,0 x03,0 x07,0 x0f,0 x1f,0 x3f,0 x7f,0 xff;uchar i=0;/INT1中斷函數(shù)void EX_INT1() interrupt 2P0=tabi;P1=tabi;if(+i=8)i=0;/主程序void main()P0=0 xff;P1=0 x00;EA=1;EX0=1;IT0=1; /下降沿觸發(fā)while(1);用定時(shí)計(jì)數(shù)器T1定時(shí),由P0控制8個(gè)指示燈,首先依次點(diǎn)亮,每個(gè)指示燈點(diǎn)亮1秒,8個(gè)燈點(diǎn)亮完后,接著是間隔點(diǎn)亮,指示燈點(diǎn)亮0.5秒,上述過程重復(fù)循環(huán)。Fosc
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年大學(xué)信息工程(信號(hào)與線性系統(tǒng))試題及答案
- 2025年高職電子技術(shù)應(yīng)用(電路調(diào)試)試題及答案
- 2025年高職(建筑裝飾工程技術(shù))建筑裝飾預(yù)算試題及答案
- 2025年中職智能控制技術(shù)(智能控制基礎(chǔ))試題及答案
- 2025年大學(xué)中醫(yī)學(xué)(中醫(yī)內(nèi)科研究)試題及答案
- 2025年大學(xué)機(jī)器人控制技術(shù)(編程)試題及答案
- 2026年蛋炒海產(chǎn)干貨食品加工機(jī)維修(加工機(jī)故障排除)試題及答案
- 2025年中職(養(yǎng)蜂技術(shù))蜜蜂養(yǎng)殖階段測(cè)試題及答案
- 2025年大學(xué)早期教育(早期教育學(xué))試題及答案
- 四川省瀘州市敘永縣2025年八年級(jí)上學(xué)期期末物理試題附答案
- 2026長治日?qǐng)?bào)社工作人員招聘勞務(wù)派遣人員5人備考題庫及答案1套
- 河道清淤作業(yè)安全組織施工方案
- 2026年七臺(tái)河職業(yè)學(xué)院單招職業(yè)技能測(cè)試題庫附答案
- 2021海灣消防 GST-LD-8318 緊急啟停按鈕使用說明書
- 煙花爆竹零售經(jīng)營安全責(zé)任制度
- 2023年和田地區(qū)直遴選考試真題匯編含答案解析(奪冠)
- ICG熒光導(dǎo)航在肝癌腹腔鏡解剖性肝切除中的應(yīng)用2026
- 江蘇徐州泉豐建設(shè)工程有限公司招聘筆試題庫2025
- 質(zhì)量、環(huán)境與職業(yè)健康安全管理方針與目標(biāo)
- 學(xué)堂在線 雨課堂 學(xué)堂云 批判性思維-方法和實(shí)踐 章節(jié)測(cè)試答案
- 語音廳新人培訓(xùn)課件
評(píng)論
0/150
提交評(píng)論