![51單片機(jī)入門(mén)實(shí)例_第1頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/10/1da53116-7f0a-4382-9a9a-f00b1a540423/1da53116-7f0a-4382-9a9a-f00b1a5404231.gif)
![51單片機(jī)入門(mén)實(shí)例_第2頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/10/1da53116-7f0a-4382-9a9a-f00b1a540423/1da53116-7f0a-4382-9a9a-f00b1a5404232.gif)
![51單片機(jī)入門(mén)實(shí)例_第3頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/10/1da53116-7f0a-4382-9a9a-f00b1a540423/1da53116-7f0a-4382-9a9a-f00b1a5404233.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、動(dòng)態(tài)數(shù)碼顯示技術(shù)144X4矩陣式鍵盤(pán)識(shí)別技術(shù)15.定時(shí)計(jì)數(shù)器T0作定時(shí)應(yīng)用技術(shù)(一)13.動(dòng)態(tài)數(shù)碼顯示技術(shù)實(shí)驗(yàn)任務(wù)如圖4.13.1所示,P0端口接動(dòng)態(tài)數(shù)碼管的字形碼筆段,P2端口接動(dòng)態(tài)數(shù)碼管的數(shù)位選擇端,P1.7接一個(gè)開(kāi)關(guān),當(dāng)開(kāi)關(guān)接高電平時(shí),顯示“12345”字樣;當(dāng)開(kāi)關(guān)接低電平時(shí),顯示“HELLO字樣。電路原理圖=36誠(chéng)sdsk宜LdgagEEowcgC誓£弓=s_長(zhǎng)總號(hào)EdIM2,'lulsEd口-Qi/D.HZjI*scJiCc口cJQco801£3O:Jr.iQ3F5U-:-z-"l-L-g*1kr«-rA1VCCr_cOTE-47K圖4
2、.13.11. 系統(tǒng)板上硬件連線(1.把“單片機(jī)系統(tǒng)”區(qū)域中的P0.0/AD0P0.7/AD7用8芯排線連接到“動(dòng)態(tài)數(shù)碼顯示”區(qū)域中的ah端口上;(2.把“單片機(jī)系統(tǒng)”區(qū)域中的P2.0/A8P2.7/A15用8芯排線連接到“動(dòng)態(tài)數(shù)碼顯示”區(qū)域中的S1S8端口上;(3.把“單片機(jī)系統(tǒng)”區(qū)域中的P1.7端口用導(dǎo)線連接到“獨(dú)立式鍵盤(pán)”區(qū)域中的SP1端口上;程序設(shè)計(jì)內(nèi)容(1.動(dòng)態(tài)掃描方法動(dòng)態(tài)接口采用各數(shù)碼管循環(huán)輪流顯示的方法,當(dāng)循環(huán)顯示頻率較高時(shí),利用人眼的暫留特性,看不出閃爍顯示現(xiàn)象,這種顯示需要一個(gè)接口完成字形碼的輸出(字形選擇),另一接口完成各數(shù)碼管的輪流點(diǎn)亮(數(shù)位選擇)。(2.在進(jìn)行數(shù)碼顯示的
3、時(shí)候,要對(duì)顯示單元開(kāi)辟8個(gè)顯示緩沖區(qū),每個(gè)顯示緩沖區(qū)裝有顯示的不同數(shù)據(jù)即可。(3.對(duì)丁顯示的字形碼數(shù)據(jù)我們采用查表方法來(lái)完成。程序框圖圖4.13.2匯編源程序ORG00HSTART:JBP1.7,DIR1MOVDPTR,#TABLE1SJMPDIRDIR1:MOVDPTR,#TABLE2DIR:MOVR0,#00HMOVR1,#01HNEXT:MOVA,R0MOVCA,A+DPTRMOVP0,AMOVA,R1MOVP2,ALCALLDAYINCR0RLAMOVR1,ACJNER1,#0DFH,NEXTSJMPSTARTDAY:MOVR6,#4D1:MOVR7,#248DJNZR7,$DJNZR
4、6,D1RETTABLE1:DB06H,5BH,4FH,66H,6DHTABLE2:DB78H,79H,38H,38H,3FHENDC語(yǔ)言源程序#include<AT89X51.H>unsignedcharcodetable1=0x06,0x5b,0x4f,0x66,0x6d;unsignedcharcodetable2=0x78,0x79,0x38,0x38,0x3f;unsignedchari;unsignedchara,b;unsignedchartemp;voidmain(void)while(1)temp=0xfe;for(i=0;i<5;i+)if(P1_7=1)
5、P0=table1i;elseP0=table2i;P2=temp;a=temp<<(i+1);b=temp>>(7-i);temp=a|b;for(a=4;a>0;a-)for(b=248;b>0;b-);4X4矩陣式鍵盤(pán)識(shí)別技術(shù)1.實(shí)驗(yàn)任務(wù)如圖4.14.2所示,用AT89S51的并行口P1接4X4矩陣鍵盤(pán),以P1.0P1.3作輸入線,以P1.4P1.7作輸出線;在數(shù)碼管上顯示每個(gè)按鍵的“0F”序號(hào)。對(duì)應(yīng)的按鍵的序號(hào)排列如圖4.14.1所示圖4.14.12.硬件電路原理圖F1U"B-F->'1-1T-*:歸b“3R一邑丈W自
6、7;54M屋t?r.生mwuLE-Kmu官"iwf。一yw5ESmgst與受理IEsN昌£料一WKs耳ma急圖4.14.23.系統(tǒng)板上硬件連線(1.把“單片機(jī)系統(tǒng)“區(qū)域中的P3.0P3.7端口用8芯排線連接到“4X4行列式鍵盤(pán)”區(qū)域中的C1C4R1-R4端口上;(2.把“單片機(jī)系統(tǒng)”區(qū)域中的P0.0/AD0P0.7/AD7端口用8芯排線連接到“四路靜態(tài)數(shù)碼顯示模塊”區(qū)域中的任一個(gè)a-h端口上;要求:P0.0/AD0對(duì)應(yīng)著a,P0.1/AD1對(duì)應(yīng)著b,,P0.7/AD7對(duì)應(yīng)著h。4.程序設(shè)計(jì)內(nèi)容(1.4X4矩陣鍵盤(pán)識(shí)別處理(2.每個(gè)按鍵有它的行值和列值,行值和列值的組合就是識(shí)
7、別這個(gè)按鍵的編碼。矩陣的行線和列線分別通過(guò)兩并行接口和CPU!信。每個(gè)按鍵的狀態(tài)同樣需變成數(shù)字量“0”和“1”,開(kāi)關(guān)的一端(列線)通過(guò)電阻接VCC而接地是通過(guò)程序輸出數(shù)字“0”實(shí)現(xiàn)的。鍵盤(pán)處理程序的任務(wù)是:確定有無(wú)鍵按下,判斷哪一個(gè)鍵按下,鍵的功能是什么;還要消除按鍵在閉合或斷開(kāi)時(shí)的抖動(dòng)。兩個(gè)并行口中,一個(gè)輸出掃描碼,使按鍵逐行動(dòng)態(tài)接地,另一個(gè)并行口輸入按鍵狀態(tài),由行掃描值和回饋信號(hào)共同形成鍵編碼而識(shí)別按鍵,通過(guò)軟件查表,查出該鍵的功能。5.程序框圖有鍵搜下嗎?P3-FFH件=0延時(shí)lOtng真得有鍵按下嗎?圖4.14.36.匯編源程序KEYBUFEQU30HORG00HSTART:MOVKE
8、YBUF,#2WAIT:MOVP3,#0FFHCLRP3.4MOVA,P3ANLA,#0FHXRLA,#0FHJZNOKEY1LCALLDELY10MSMOVA,P3ANLA,#0FHXRLA,#0FHJZNOKEY1MOVA,P3ANLA,#0FHCJNEA,#0EH,NK1MOVKEYBUF,#0LJMPDK1NK1:CJNEA,#0DH,NK2MOVKEYBUF,#1LJMPDK1NK2:CJNEA,#0BH,NK3MOVKEYBUF,#2LJMPDK1NK3:CJNEA,#07H,NK4MOVKEYBUF,#3LJMPDK1NK4:NOPDK1:MOVA,KEYBUFMOVDPTR,#
9、TABLEMOVCA,A+DPTRMOVP0,ADK1A:MOVA,P3ANLA,#0FHXRLA,#0FHJNZDK1ANOKEY1:MOVP3,#0FFHCLRP3.5MOVA,P3ANLA,#0FHXRLA,#0FHJZNOKEY2LCALLDELY10MSMOVA,P3ANLA,#0FHXRLA,#0FHJZNOKEY2MOVA,P3ANLA,#0FHCJNEA,#0EH,NK5MOVKEYBUF,#4LJMPDK2NK5:CJNEA,#0DH,NK6MOVKEYBUF,#5LJMPDK2NK6:CJNEA,#0BH,NK7MOVKEYBUF,#6LJMPDK2NK7:CJNEA,#0
10、7H,NK8MOVKEYBUF,#7LJMPDK2NK8:NOPDK2:MOVA,KEYBUFMOVDPTR,#TABLEMOVCA,A+DPTRMOVP0,ADK2A:MOVA,P3ANLA,#0FHXRLA,#0FHJNZDK2ANOKEY2:MOVP3,#0FFHCLRP3.6MOVA,P3ANLA,#0FHXRLA,#0FHJZNOKEY3LCALLDELY10MSMOVA,P3ANLA,#0FHXRLA,#0FHJZNOKEY3MOVA,P3ANLA,#0FHCJNEA,#0EH,NK9MOVKEYBUF,#8LJMPDK3NK9:CJNEA,#0DH,NK10MOVKEYBUF,#
11、9LJMPDK3NK10:CJNEA,#0BH,NK11MOVKEYBUF,#10LJMPDK3NK11:CJNEA,#07H,NK12MOVKEYBUF,#11LJMPDK3NK12:NOPDK3:MOVA,KEYBUFMOVDPTR,#TABLEMOVCA,A+DPTRMOVP0,ADK3A:MOVA,P3ANLA,#0FHXRLA,#0FHJNZDK3ANOKEY3:MOVP3,#0FFHCLRP3.7MOVA,P3ANLA,#0FHXRLA,#0FHJZNOKEY4LCALLDELY10MSMOVA,P3ANLA,#0FHXRLA,#0FHJZNOKEY4MOVA,P3ANLA,#0F
12、HCJNEA,#0EH,NK13MOVKEYBUF,#12LJMPDK4NK13:CJNEA,#0DH,NK14MOVKEYBUF,#13LJMPDK4NK14:CJNEA,#0BH,NK15MOVKEYBUF,#14LJMPDK4NK15:CJNEA,#07H,NK16MOVKEYBUF,#15LJMPDK4NK16:NOPDK4:MOVA,KEYBUFMOVDPTR,#TABLEMOVCA,A+DPTRMOVP0,ADK4A:MOVA,P3ANLA,#0FHXRLA,#0FHJNZDK4ANOKEY4:LJMPWAITDELY10MS:MOVR6,#10D1:MOVR7,#248DJNZR
13、7,$DJNZR6,D1RETTABLE:DB3FH,06H,5BH,4FH,66H,6DH,7DH,07HDB7FH,6FH,77H,7CH,39H,5EH,79H,71HEND7.C語(yǔ)言源程序#include<AT89X51.H>unsignedcharcodetable=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;unsignedchartemp;unsignedcharkey;unsignedchari,j;voidmain(void)(while(1)(P3
14、=0xff;P3_4=0;temp=P3;temp=temp&0x0f;if(temp!=0x0f)(for(i=50;i>0;i-)for(j=200;j>0;j-);temp=P3;temp=temp&0x0f;if(temp!=0x0f)(temp=P3;temp=temp&0x0f;switch(temp)(case0x0e:key=7;break;case0x0d:key=8;break;case0x0b:key=9;break;case0x07:key=10;break;temp=P3;P1_0=P1_0;P0=tablekey;temp=tem
15、p&0x0f;while(temp!=0x0f)(temp=P3;temp=temp&0x0f;P3=0xff;P3_5=0;temp=P3;temp=temp&0x0f;if(temp!=0x0f)(for(i=50;i>0;i-)for(j=200;j>0;j-);temp=P3;temp=temp&0x0f;if(temp!=0x0f)(temp=P3;temp=temp&0x0f;switch(temp)(case0x0e:key=4;break;case0x0d:key=5;break;case0x0b:key=6;break;ca
16、se0x07:key=11;break;temp=P3;P1_0=P1_0;P0=tablekey;temp=temp&0x0f;while(temp!=0x0f)(temp=P3;temp=temp&0x0f;P3=0xff;P3_6=0;temp=P3;temp=temp&0x0f;if(temp!=0x0f)(for(i=50;i>0;i-)for(j=200;j>0;j-);temp=P3;temp=temp&0x0f;if(temp!=0x0f)(temp=P3;temp=temp&0x0f;switch(temp)(case0x0
17、e:key=1;break;case0x0d:key=2;break;case0x0b:key=3;break;case0x07:key=12;break;temp=P3;P1_0=P1_0;P0=tablekey;temp=temp&0x0f;while(temp!=0x0f)(temp=P3;temp=temp&0x0f;P3=0xff;P3_7=0;temp=P3;temp=temp&0x0f;if(temp!=0x0f)(for(i=50;i>0;i-)for(j=200;j>0;j-);temp=P3;temp=temp&0x0f;if(t
18、emp!=0x0f)(temp=P3;temp=temp&0x0f;switch(temp)(case0x0e:key=0;break;case0x0d:key=13;break;case0x0b:key=14;break;case0x07:key=15;break;temp=P3;P1_0=P1_0;P0=tablekey;temp=temp&0x0f;while(temp!=0x0f)(temp=P3;temp=temp&0x0f;15.定時(shí)計(jì)數(shù)器T0作定時(shí)應(yīng)用技術(shù)(一)實(shí)驗(yàn)任務(wù)用AT89S51單片機(jī)的定時(shí)/計(jì)數(shù)器T0產(chǎn)生一秒的定時(shí)時(shí)間,作為秒計(jì)數(shù)時(shí)間,當(dāng)一秒產(chǎn)生時(shí)
19、,秒計(jì)數(shù)加1,秒計(jì)數(shù)到60時(shí),自動(dòng)從0開(kāi)始。硬件電路如下圖所示電路原理圖F3nfRXDFJLE8P33WTTrsyriJSEtWaP37®DI-臣cLrl345必.7plvlFrIplFip1F112POLACOPOkadiPQJVAI2F03TAE3Ml4ME4POWaDSPO-fi/AMPD_?/Ar?7ALEF2:了心孕巳:5由】4P/3值門(mén)P±3心IU1»沖POlRTO:=I3MH<=iCMP20/AK2;:'-gXo'電總mw闋W88%P2iP2PKi?PJ!&IP23FIz圖4.15.11. 系統(tǒng)板上硬件連線(1.把“單片
20、機(jī)系統(tǒng)”區(qū)域中的P0.0/AD0P0.7/AD7端口用8芯排線連接到“四路靜態(tài)數(shù)碼顯示模塊”區(qū)域中的任一個(gè)a-h端口上;要求:P0.0/AD0對(duì)應(yīng)著a,P0.1/AD1對(duì)應(yīng)著b,,P0.7/AD7對(duì)應(yīng)著h。(2.把“單片機(jī)系統(tǒng)”區(qū)域中的P2.0/A8P2.7/A15端口用8芯排線連接到“四路靜態(tài)數(shù)碼顯示模塊”區(qū)域中的任一個(gè)a-h端口上;要求:P2.0/A8對(duì)應(yīng)著a,P2.1/A9對(duì)應(yīng)著b,,P2.7/A15對(duì)應(yīng)著h。2. 程序設(shè)計(jì)內(nèi)容AT89S51單片機(jī)的內(nèi)部16位定時(shí)/計(jì)數(shù)器是一個(gè)可編程定時(shí)/計(jì)數(shù)器,它既可以工作在13位定時(shí)方式,也可以工作在16位定時(shí)方式和8位定時(shí)方式。只要通過(guò)設(shè)置特殊功能
21、寄存器TMOD即可完成。定時(shí)/計(jì)數(shù)器何時(shí)工作也是通過(guò)軟件來(lái)設(shè)定TCOF#殊功能寄存器來(lái)完成的?,F(xiàn)在我們選擇16位定時(shí)工作方式,對(duì)丁T0來(lái)說(shuō),最大定時(shí)也只有65536us,即65.536ms,無(wú)法達(dá)到我們所需要的1秒的定時(shí),因此,我們必須通過(guò)軟件來(lái)處理這個(gè)問(wèn)題,假設(shè)我們?nèi)0的最大定時(shí)為50m§即要定時(shí)1秒需要經(jīng)過(guò)20次的50ms的定時(shí)。對(duì)丁這20次我們就可以采用軟件的方法來(lái)統(tǒng)計(jì)了。因此,我們?cè)O(shè)定TMOD00000001己即TMOD01H下面我們要給T0定時(shí)/計(jì)數(shù)器的THQTL0裝入預(yù)置初值,通過(guò)下面的公式可以計(jì)算出THk(21650000)/256TL0=(21650000)MOD2
22、56當(dāng)T0在工作的時(shí)候,我們?nèi)绾蔚弥?0ms的定時(shí)時(shí)間已到,這回我們通過(guò)檢測(cè)TCOF#殊功能寄存器中的TF0標(biāo)志位,如果TF0=1表示定時(shí)時(shí)間已到。程序框圖(開(kāi)始、L_4-一二一L:皿產(chǎn)、個(gè)*飛財(cái)§f蜜r.肖.awwIWLiTH。,TLO轄入初1伯<TFC=1W圖4.15.2匯編源程序(查詢法)SECONDEQU30HTCOUNTEQU31HORG00HSTART:MOVSECOND,#00HMOVTCOUNT,#00HMOVTMOD,#01HMOVTH0,#(65536-50000)/256MOVTL0,#(65536-50000)MOD256SETBTR0DISP:MOVA
23、,SECONDMOVB,#10DIVABMOVDPTR,#TABLEMOVCA,A+DPTRMOVP0,AMOVA,BMOVCA,A+DPTRMOVP2,AWAIT:JNBTF0,WAITCLRTF0MOVTH0,#(65536-50000)/256MOVTL0,#(65536-50000)MOD256INCTCOUNTMOVA,TCOUNTCJNEA,#20,NEXTMOVTCOUNT,#00HINCSECONDMOVA,SECONDCJNEA,#60,NEXMOVSECOND,#00HNEX:LJMPDISPNEXT:LJMPWAITTABLE:DB3FH,06H,5BH,4FH,66H,
24、6DH,7DH,07H,7FH,6FHENDC語(yǔ)言源程序(查詢法)#include<AT89X51.H>unsignedcharcodedispcode=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00;unsignedcharsecond;unsignedchartcount;voidmain(void)TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;TR0=1;tcount=0;second=0;P0
25、=dispcodesecond/10;P2=dispcodesecond%10;while(1)if(TF0=1)tcount+;if(tcount=20)tcount=0;second+;if(second=60)second=0;P0=dispcodesecond/10;P2=dispcodesecond%10;TF0=0;TH0=(65536-50000)/256;TL0=(65536-50000)%256;匯編源程序(中斷法)SECONDEQU30HTCOUNTEQU31HORG00HLJMPSTARTORG0BHLJMPINT0XSTART:MOVSECOND,#00HMOVA,SE
26、CONDMOVB,#10DIVABMOVDPTR,#TABLEMOVCA,A+DPTRMOVP0,AMOVA,BMOVCA,A+DPTRMOVP2,AMOVTCOUNT,#00HMOVTMOD,#01HMOVTH0,#(65536-50000)/256MOVTL0,#(65536-50000)MOD256SETBTR0SETBET0SETBEASJMP$INT0X:MOVTH0,#(65536-50000)/256MOVTL0,#(65536-50000)MOD256INCTCOUNTMOVA,TCOUNTCJNEA,#20,NEXTMOVTCOUNT,#00HINCSECONDMOVA,SE
27、CONDCJNEA,#60,NEXMOVSECOND,#00HNEX:MOVA,SECONDMOVB,#10DIVABMOVDPTR,#TABLEMOVCA,A+DPTRMOVP0,AMOVA,BMOVCA,A+DPTRMOVP2,ANEXT:RETITABLE:DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FHENDC語(yǔ)言源程序(中斷法)#include<AT89X51.H>unsignedcharcodedispcode=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x3
28、9,0x5e,0x79,0x71,0x00;unsignedcharsecond;unsignedchartcount;voidmain(void)(TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;TR0=1;ET0=1;EA=1;tcount=0;second=0;P0=dispcodesecond/10;P2=dispcodesecond%10;while(1);voidt0(void)interrupt1using0(tcount+;if(tcount=20)(tcount=0;second+;if(second=60)(sec
29、ond=0;P0=dispcodesecond/10;P2=dispcodesecond%10;TH0=(65536-50000)/256;TL0=(65536-50000)%256;16.定時(shí)計(jì)數(shù)器T0作定時(shí)應(yīng)用技術(shù)(二)1.實(shí)驗(yàn)任務(wù)用AT89S51的定時(shí)/計(jì)數(shù)器T0產(chǎn)生2秒鐘的定時(shí),每當(dāng)2秒定時(shí)到來(lái)時(shí),更換指示燈閃爍,每個(gè)指示閃爍的頻率為0.2秒,也就是說(shuō),開(kāi)始L1指示燈以0.2秒的速率閃爍,當(dāng)2秒定時(shí)到來(lái)之后,L2開(kāi)始以0.2秒的速率閃爍,如此循環(huán)下去。0.2秒的閃爍速率也由定時(shí)/計(jì)數(shù)器T0來(lái)完成。2.電路原理圖VC!CL14度1Z17岳ouP1POO/ADOFl1POl/ADlP1.2
30、FO2/AD2P13PO3MD3F14FO4/AD4F15IF口g口SF:GFOEftgT>17POT/AWALEPSIJJTLXOF2/7/A15P31/TJCDP2.*7A14P3.2/INTOPZ.5/A1JP33/1HT1F34fT0P23XA11F3smP22/A1OP3.6/WRF2l/ASP2C7AS共只昌04寸6jT|廠DO363736355433323G29282?26恐242322Z1C2=叫FMHC33OpF圖4.16.1系統(tǒng)板硬件連線(1.把“單片機(jī)系統(tǒng)”區(qū)域中的P1.0P1.3用導(dǎo)線連接到“八路發(fā)光二極管指示模塊”區(qū)域中的L1-L4上程序設(shè)計(jì)內(nèi)容(1.由丁采用中
31、斷方式來(lái)完成,因此,對(duì)丁中斷源必須它的中斷入口地址,對(duì)丁定時(shí)/計(jì)數(shù)器T0來(lái)說(shuō),中斷入口地址為000BH因此在中斷入口地方加入長(zhǎng)跳轉(zhuǎn)指令來(lái)執(zhí)行中斷服務(wù)程序。書(shū)寫(xiě)匯編源程序格式如下所示:ORG00HLJMPSTARTORG0BH;定時(shí)/計(jì)數(shù)器T0中斷入口地址LJMPINT_T0START:NOP;主程序開(kāi)始INT_T0:PUSHACC;定時(shí)/計(jì)數(shù)器T0中斷服務(wù)程序PUSHPSWPOPPSWPOPACCRETI;中斷服務(wù)程序返回END(2.定時(shí)2秒,采用16位定時(shí)50ms共定時(shí)40次才可達(dá)到2秒,每50ms產(chǎn)生一中斷,定時(shí)的40次數(shù)在中斷服務(wù)程序中完成,同樣0.2秒的定時(shí),需要4次才可達(dá)到0.2秒。
32、對(duì)丁中斷程序,在主程序中要對(duì)中斷開(kāi)中斷。(3.由丁每次2秒定時(shí)到時(shí),L1-L4要交替閃爍。采用ID來(lái)號(hào)來(lái)識(shí)別。當(dāng)ID=0時(shí),L1在閃爍,當(dāng)ID=1時(shí),L2在閃爍;當(dāng)ID=2時(shí),L3在閃爍;當(dāng)ID=3時(shí),L4在閃爍程序框圖T0中斷服務(wù)程序框圖主程序框圖圖4.16.2匯編源程序TCOUNT2SEQU30HTCNT02SEQU31HIDEQU32HORG00HLJMPSTARTORG0BHLJMPINT_T0START:MOVTCOUNT2S,#00HMOVTCNT02S,#00HMOVID,#00HMOVTMOD,#01HMOVTH0,#(65536-50000)/256MOVTL0,#(6553
33、6-50000)MOD256SETBTR0SETBET0SETBEASJMP$INT_T0:MOVTH0,#(65536-50000)/256MOVTL0,#(65536-50000)MOD256INCTCOUNT2SMOVA,TCOUNT2SCJNEA,#40,NEXTMOVTCOUNT2S,#00HINCIDMOVA,IDCJNEA,#04H,NEXTMOVID,#00HNEXT:INCTCNT02SMOVA,TCNT02SCJNEA,#4,DONEMOVTCNT02S,#00HMOVA,IDCJNEA,#00H,SID1CPLP1.0SJMPDONESID1:CJNEA,#01H,SID
34、2CPLP1.1SJMPDONESID2:CJNEA,#02H,SID3CPLP1.2SJMPDONESID3:CJNEA,#03H,SID4CPLP1.3SID4:SJMPDONEDONE:RETIENDC語(yǔ)言源程序#include<AT89X51.H>unsignedchartcount2s;unsignedchartcount02s;unsignedcharID;voidmain(void)(TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;TR0=1;ET0=1;EA=1;while(1);voidt0(void)i
35、nterrupt1using0(tcount2s+;if(tcount2s=40)(tcount2s=0;ID+;if(ID=4)(ID=0;tcount02s+;if(tcount02s=4)(tcount02s=0;switch(ID)(case0:P1_0=P1_0;break;case1:P1_1=P1_1;break;case2:P1_2=P1_2;break;case3:1. P1_3=P1_3;break;17.99秒馬表設(shè)計(jì)實(shí)驗(yàn)任務(wù)(1.開(kāi)始時(shí),顯示“00”,第1次按下SP1后就開(kāi)始計(jì)時(shí)(2.第2次按SP1后,計(jì)時(shí)停止。(3.第3次按SP1后,計(jì)時(shí)歸零。電路原理圖VCCklGH
36、D|1Il屹0U1jIIPSOjWCDP3l.TKbFS府jpasmTra.soLP36'VFfiPlniPl2Pl3Pl4Pl5n6PJV8APi.航也PO1/ADlPD2/AD2F0.J/D1PO-4/1D4FQ叩砌XpogwALE哄HP27tt!5P25U13P2.OA12F3MILP22atOP2|'<?P2.0f/8P:J"5j應(yīng)32Ftt?3B礦P7737,2d_P25F24Fp¥iz就勝】51P2Q0roares商MiP20商£0P04PO5w?藝AfsT"如6HOP2. 爻BDrJr圖4.17.1系統(tǒng)板上硬件連線(1
37、.把“單片機(jī)系統(tǒng)”區(qū)域中的P0.0/AD0P0.7/AD7端口用8芯排線連接到“四路靜態(tài)數(shù)碼顯示模塊”區(qū)域中的任一個(gè)a-h端口上;要求:P0.0/AD0對(duì)應(yīng)著a,P0.1/AD1對(duì)應(yīng)著b,,P0.7/AD7對(duì)應(yīng)著h。(2.把“單片機(jī)系統(tǒng)”區(qū)域中的P2.0/A8P2.7/A15端口用8芯排線連接到“四路靜態(tài)數(shù)碼顯示模塊”區(qū)域中的任一個(gè)a-h端口上;要求:P2.0/A8對(duì)應(yīng)著a,P2.1/A9對(duì)應(yīng)著b,,P2.7/A15對(duì)應(yīng)著h。(3.把“單片機(jī)系統(tǒng)“區(qū)域中的P3.5/T1用導(dǎo)線連接到”獨(dú)立式鍵盤(pán)“區(qū)域中的SP1端口上;程序框圖主程序框圖T0中斷服務(wù)程序框圖圖4.17.2匯編源程序TCNTAEQU
38、30HTCNTBEQU31HSECEQU32HKEYCNTEQU33HSP1BITP3.5ORG00HLJMPSTARTORG0BHLJMPINT_T0START:MOVKEYCNT,#00HMOVSEC,#00HMOVA,SECMOVB,#10DIVABMOVDPTR,#TABLEMOVCA,A+DPTRMOVP0,AMOVA,BMOVDPTR,#TABLEMOVCA,A+DPTRMOVP2,AMOVTMOD,#02HSETBET0SETBEAWT:JBSP1,WTLCALLDELY10MSJBSP1,WTINCKEYCNTMOVA,KEYCNTCJNEA,#01H,KN1SETBTR0MO
39、VTH0,#06HMOVTL0,#06HMOVTCNTA,#00HMOVTCNTB,#00HLJMPDKNKN1:CJNEA,#02H,KN2CLRTR0LJMPDKNKN2:CJNEA,#03H,DKNMOVSEC,#00HMOVA,SECMOVB,#10DIVABMOVDPTR,#TABLEMOVCA,A+DPTRMOVP0,AMOVA,BMOVDPTR,#TABLEMOVCA,A+DPTRMOVP2,AMOVKEYCNT,#00HDKN:JNBSP1,$LJMPWTDELY10MS:MOVR6,#20D1:MOVR7,#248DJNZR7,$DJNZR6,D1RETINT_T0:INCT
40、CNTAMOVA,TCNTACJNEA,#100,NEXTMOVTCNTA,#00HINCTCNTBMOVA,TCNTBCJNEA,#4,NEXTMOVTCNTB,#00HINCSECMOVA,SECCJNEA,#100,DONEMOVSEC,#00HDONE:MOVA,SECMOVB,#10DIVABMOVDPTR,#TABLEMOVCA,A+DPTRMOVP0,AMOVA,BMOVDPTR,#TABLEMOVCA,A+DPTRMOVP2,ANEXT:RETITABLE:DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FHENDC語(yǔ)言源程序#include<
41、;AT89X51.H>unsignedcharcodedispcode=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00;unsignedcharsecond;unsignedcharkeycnt;unsignedinttcnt;voidmain(void)unsignedchari,j;TMOD=0x02;ET0=1;EA=1;second=0;P0=dispcodesecond/10;P2=dispcodesecond%10;while(1)if(P3_5=0)(f
42、or(i=20;i>0;i-)for(j=248;j>0;j-);if(P3_5=0)(keycnt+;switch(keycnt)(case1:TH0=0x06;TL0=0x06;TR0=1;break;case2:TR0=0;break;case3:keycnt=0;second=0;P0=dispcodesecond/10;P2=dispcodesecond%10;break;while(P3_5=0);voidt0(void)interrupt1using0(tcnt+;if(tcnt=400)(tcnt=0;second+;if(second=100)(second=0;
43、P0=dispcodesecond/10;P2=dispcodesecond%10;18.“嘀、嘀、”報(bào)警聲實(shí)驗(yàn)任務(wù)用AT89S51單片機(jī)產(chǎn)生“嘀、嘀、”報(bào)警聲從P1.0端口輸出,產(chǎn)生頻率為1KHz根據(jù)上面圖可知:1KH0波從P1.0輸出0.2秒,接著0.2秒從P1.0輸出電平信號(hào),如此循環(huán)下去,就形成我們所需的報(bào)警聲了。電路原理圖碑十牛十十Ch十If%二.£二WEMs-rM2淺Mxs,TW£VW寸QdEssNovwod一QwlWrfe1OTCIGNDgs.食2總一-JX1二育U2AT&9E51X!ci30pFu盤(pán)CJJOpF.Z«-if#|«己
44、禎|gHpPStj*圖4.18.1系統(tǒng)板硬件連線(1.把“單片機(jī)系統(tǒng)”區(qū)域中的P1.0端口用導(dǎo)線連接到“音頻放大模塊”區(qū)域中的SPKIN端口上,(2.在“音頻放大模塊”區(qū)域中的SPKOU榆口上接上一個(gè)8歐或者是16歐的喇叭;(1.生活中我們常常到各種各樣的報(bào)警聲,例如“嘀、嘀、”就是常見(jiàn)的一種聲音報(bào)警聲,但對(duì)丁這種報(bào)警聲,嘀0.2秒鐘,然后斷0.2秒鐘,如此循環(huán)下去,假設(shè)嘀聲的頻率為1KH乙則報(bào)警聲時(shí)序圖如下圖所示:上述波形信號(hào)如何用單片機(jī)來(lái)產(chǎn)生呢?(2.由丁要產(chǎn)生上面的信號(hào),我們把上面的信號(hào)分成兩部分,一部分為1KHZ方波,占用時(shí)間為0.2秒;另一部分為電平,也是占用0.2秒;因此,我們利用
45、單片機(jī)的定時(shí)/計(jì)數(shù)器T0作為定時(shí),可以定時(shí)0.2秒;同時(shí),也要用單片機(jī)產(chǎn)生1KHZ的方波,對(duì)丁1KHZ勺方波信號(hào)周期為1m§高電平占用0.5ms,低電平占用0.5ms,因此也采用定時(shí)器T0來(lái)完成0.5ms的定時(shí);最后,可以選定定時(shí)/計(jì)數(shù)器T0的定時(shí)時(shí)間為0.5ms,而要定時(shí)0.2秒則是0.5ms的400倍,也就是說(shuō)以0.5ms定時(shí)400次就達(dá)到0.2秒的定時(shí)時(shí)程序框圖主程序框圖中斷服務(wù)程序框圖圖4.18.2匯編源程序T02SAEQU30HT02SBEQU31HFLAGBIT00HORG00HLJMPSTARTORG0BHLJMPINT_T0START:MOVT02SA,#00HMOV
46、T02SB,#00HCLRFLAGMOVTMOD,#01HMOVTH0,#(65536-500)/256MOVTL0,#(65536-500)MOD256SETBTR0SETBET0SETBEASJMP$INT_T0:MOVTH0,#(65536-500)/256MOVTL0,#(65536-500)MOD256INCT02SAMOVA,T02SACJNEA,#100,NEXTINCT02SBMOVA,T02SBCJNEA,#04H,NEXTMOVT02SA,#00HMOVT02SB,#00HCPLFLAGNEXT:JBFLAG,DONECPLP1.0DONE:RETIENDC語(yǔ)言源程序#in
47、clude<AT89X51.H>unsignedintt02s;unsignedchart05ms;bitflag;voidmain(void)TMOD=0x01;TH0=(65536-500)/256;TL0=(65536-500)%256;TR0=1;ET0=1;EA=1;while(1);voidt0(void)interrupt1using0TH0=(65536-500)/256;TL0=(65536-500)%256;t02s+;if(t02s=400)t02s=0;flag=flag;if(flag=0)P1_0=P1_0;“叮咚”門(mén)鈴19.1.實(shí)驗(yàn)任務(wù)當(dāng)按下開(kāi)關(guān)SP1,AT89S51單片機(jī)產(chǎn)生“叮咚”聲從P1.0端口輸出到LM386經(jīng)過(guò)放大之后送入喇叭。2.電路原理圖39.aU2ftrr.w一£.kl-L*i_3n11JI0反EA4=-笆I2wrs奇a專wN3EWLM-Md_dSOVX.Qd
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年臨時(shí)租賃合同樣本(2篇)
- 2025年個(gè)人無(wú)抵押借款合同格式版(2篇)
- 2025年個(gè)人簡(jiǎn)單勞動(dòng)合同常用版(4篇)
- 2025年臨時(shí)聘用協(xié)議經(jīng)典版(2篇)
- 2025年書(shū)面勞動(dòng)合同(三篇)
- 2025年臨時(shí)聘用協(xié)議簡(jiǎn)單版(三篇)
- 2025年二婚婚前協(xié)議參考樣本(2篇)
- 2025年個(gè)人門(mén)面常用版房屋租賃合同(2篇)
- 北京市裝修工程驗(yàn)收合同
- 產(chǎn)業(yè)升級(jí)渣土運(yùn)輸協(xié)議樣本
- 茶文化與茶健康教學(xué)課件
- 建筑公司工程財(cái)務(wù)報(bào)銷制度(精選7篇)
- 降水預(yù)報(bào)思路和方法
- 工程設(shè)計(jì)方案定案表
- 第一章-天氣圖基本分析方法課件
- 虛位移原理PPT
- 初二物理彈力知識(shí)要點(diǎn)及練習(xí)
- QE工程師簡(jiǎn)歷
- 輔音和輔音字母組合發(fā)音規(guī)則
- 2021年酒店餐飲傳菜員崗位職責(zé)與獎(jiǎng)罰制度
- 最新船廠機(jī)艙綜合布置及生產(chǎn)設(shè)計(jì)指南
評(píng)論
0/150
提交評(píng)論