




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、單片機(jī)上機(jī)操作考試題局部答案使得8個發(fā)光二極管循環(huán)點亮,采用定時器方式0使得每個發(fā)光二極管點亮的時間為0.5s。#include#include#define uchar unsigned charuchar T_count=0;/定時中斷void toProc() interrupt 1TH0=(8192-5000)/32; /恢復(fù)初值TL0=(8192-5000)%32;if(+T_count=100)/0.5s移動一位P0=_crol_(P0,1);T_count=0;/主函數(shù)void main()TMOD=0; TH0=(8192-5000)/32; /5ms定時TL0=(8192-5
2、000)%32;EA=1;ET0=1;TR0=1;P0=0 xfe;while(1);2.完成下面電路所示的功能,K1,K2對應(yīng)兩個開關(guān)按鍵。P1口對應(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;/延時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同時按下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.在一個數(shù)碼管上循環(huán)顯示“H“E “L “L “O ,循環(huán)的時間為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個數(shù)碼管上分別顯示自己學(xué)號的后六位數(shù)字。#include#include#define uchar unsigned char#define uint u
5、nsigned intuchar code tab=;/學(xué)號自己設(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.做一個簡易30s的倒計時秒表,秒表的顯示通過8個發(fā)光二極管顯示出來。#include#define uchar unsigned charvo
6、id delay1s()uchar i;for(i=0;i0;i-) t=(i/10)4)|(i%10); /高四位顯示十位,低四位顯示個位 P1=t; delay1s(); 6.使用外中斷0來控制,去實現(xiàn)以下功能。其中K1為按鍵,P1口對應(yīng)8個發(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;/延時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. 采用定時器方式1使得8個發(fā)光二極管按如下方式點亮,循環(huán)的時間為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.在一個數(shù)碼管上循環(huán)顯示“0 “1 “5 3個數(shù)字,循環(huán)的時間為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個數(shù)碼管上穩(wěn)定顯示出“A “C “E “P 四個字符。#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.做一個20s的簡易秒表,當(dāng)按鍵K1按下時,秒表暫停計數(shù),K2按下時,開始計數(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ù)定時器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)無按鍵按下時8個發(fā)光二極管循環(huán)點亮,循環(huán)點亮的時間為1s,有按鍵按下時,8個發(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定時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對應(yīng)兩個開關(guān)按鍵。P1口對應(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;/延時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口對應(yīng)發(fā)光二極管的狀態(tài),狀態(tài)1顯示的時間為1s,狀態(tài)2顯示的時間為2s,狀態(tài)3顯示的時間為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),實現(xiàn)8個發(fā)光二極管從左到右點亮,每個發(fā)光二極管點亮的時間為2s,然后從右到左亮,每個發(fā)光二極管點亮的時間為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個數(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口對應(yīng)發(fā)光二極管的狀態(tài),狀態(tài)1顯示的時間為3s,狀態(tài)2顯示的時間為1s,狀態(tài)3顯示的時間為0.5s,狀態(tài)4顯示的時間為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è)計??刂埔螅河冒存IK1和K2分別控制數(shù)碼管顯示數(shù)字09的順序,當(dāng)按下K1鍵時按從0到9的順序顯示,當(dāng)按下K2時按從9到0的順序顯示。時間間隔均為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個字節(jié)發(fā)送給乙機(jī),當(dāng)單片機(jī)收到“PH時就發(fā)40H-5FH的32個字節(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秒,兩個數(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實現(xiàn)加計數(shù)功能,并將計數(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;/計數(shù)值分解后各個待顯示的數(shù)位uchar DSY_
30、Buffer=0,0,0;uchar Count=0;sbit Clear_Key=P36;/數(shù)碼管上顯示計數(shù)值void Show_Count_ON_DSY()DSY_Buffer2=Count/100; /獲取3個數(shù)DSY_Buffer1=Count%100/10;DSY_Buffer0=Count%10;if(DSY_Buffer2=0) /高位為0時不顯示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+; /計數(shù)值遞增LED燈要求亮2秒鐘,滅2秒鐘,要求使用定時計數(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,每申請一次中斷使P0口連接的發(fā)光二極管點亮一個,從低位到高位,同時使P1口連接的發(fā)光二極管熄滅一個,從高位到低位#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ù)器T1定時,由P0控制8個指示燈,首先依次點亮,每個指示燈點亮1秒,8個燈點亮完后,接著是間隔點亮,指示燈點亮0.5秒,上述過程重復(fù)循環(huán)。Fosc
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版夫妻析產(chǎn)離婚協(xié)議
- 二零二五場入駐協(xié)議
- 藝術(shù)學(xué)校租賃教室合同
- 二零二五人事代理聘用合同范例
- 南通市海安市事業(yè)單位招聘真題2024
- 2024年高安市市屬事業(yè)單位考試真題
- 2024年儋州市市屬事業(yè)單位考試真題
- 新入職工入職安全培訓(xùn)考試題附解析答案可打印
- 新員工入職前安全培訓(xùn)考試題附解析答案
- 心理咨詢與治療流程整合
- 2025年國家公務(wù)員錄用考試公共基礎(chǔ)知識預(yù)測押題試卷及答案(共七套)
- 2025-2030中國兒童服裝行業(yè)市場發(fā)展分析及投資前景預(yù)測研究報告
- 部編版語文教材培訓(xùn)講座-口語交際
- 2025年全國中小學(xué)生安全教育日專題
- 2025年工程力學(xué)筆試試題及答案
- 2025年電子設(shè)備裝接工崗位職業(yè)技能資格證考試題(附答案)
- 2025年河南航空港發(fā)展投資集團(tuán)有限公司社會招聘45人筆試參考題庫附帶答案詳解
- 企業(yè)一季一課安全教育記錄(2篇)
- 2025-2030年中國工業(yè)廢水處理產(chǎn)業(yè)十三五發(fā)展規(guī)劃及戰(zhàn)略規(guī)劃分析報告
- DB37T 5157-2020 住宅工程質(zhì)量常見問題防控技術(shù)標(biāo)準(zhǔn)
- 煙氣超低排放改造和增設(shè)脫硝項目資金申請報告寫作模板定制
評論
0/150
提交評論