版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
9.ー鍵多功能按鍵識別技術(shù)1.實驗任務(wù)如圖4.9.1所示,開關(guān)SP1接在P3.7/RD管腳上,在AT89s51單片機的P1端口接有四個發(fā)光二極管,上電的時候,L1接在PLO管腳上的發(fā)光二極管在閃爍,當(dāng)每一次按下開關(guān)SP1的時候,L2接在PL1管腳上的發(fā)光二極管在閃爍,再按下開關(guān)SP1的時候,L3接在PL2管腳上的發(fā)光二極管在閃爍,再按下開關(guān)SP1的時候,L4接在P1.3管腳上的發(fā)光二極管在閃爍,再按下開關(guān)SP1的時候,又輪到L1在閃爍了,如此輪流下去。2.電路原理圖口Q12:.5672.電路原理圖口Q12:.567PPPPPPPP圖4.9.1.系統(tǒng)板上硬件連線(1.把“單片機系統(tǒng)”區(qū)域中的P3.7/RD端口連接到“獨立式鍵盤”區(qū)域中的SP!端口上;(2.把“單片機系統(tǒng)”區(qū)域中的Pl.0-P1.4端口用8芯排線連接到“八路發(fā)光二極管指示模塊”區(qū)域中的“L1—L8”端口上;要求,P1.0連接到LI,P1.1連接到L2,PL2連接到L3,PL3連接到L4上。.程序設(shè)計方法(1.設(shè)計思想由來在我們生活中,我們很容易通過這個叫張三,那個叫李四,另外一個是王五;那是因為每個人有不同的名子,我們就很快認(rèn)出,同樣,對于要通過一個按鍵來識別每種不同的功能,我們給每個不同的功能模塊用不同的ID號標(biāo)識,這樣,每按下一次按鍵,ID的值是不相同的,所以單片機就很容易識別不同功能的身份To(2.設(shè)計方法從上面的要求我們可以看出,L1到L4發(fā)光二極管在每個時刻的閃爍的時間是受開關(guān)SP1來控制,我們給L1到L4閃爍的時段定義出不同的ID號,當(dāng)L1在閃爍時,ID=0;當(dāng)L2在閃爍時,ID=1;當(dāng)L3在閃爍時,ID=2;當(dāng)L4在閃爍時,ID=3;很顯然,只要每次按下開關(guān)K1時,分別給出不同的ID號我們就能夠完成上面的任務(wù)了。下面給出有關(guān)程序設(shè)計的框圖。圖4.9.27.C語言源程序Sinclude<AT89X51.H>unsignedcharID;voiddelay10ms(void)(unsignedchari,j;for(i=20;i>0;i—)for(j=248;j>0;j—);}voiddelay02s(void)(unsignedchari;for(i=20;i>0;i—){delay10ms();voidmain(void){while(l){if(P3_7==0){delaylOms0;if(P3_7=0)(ID++;if(ID==4)(ID二〇;}while(P3_7==0);)}switch(ID){case0:P1_O="P1_O;delay。2s();break;P1_1O1_1;delay。2s0;break;P1_2="P1_2;delay02s();break;PL3Pl_3;delay02s();break;}動態(tài)數(shù)碼顯示技術(shù).實驗任務(wù)如圖4.13.1所示,P0端口接動態(tài)數(shù)碼管的字形碼筆段,P2端口接動態(tài)數(shù)碼管的數(shù)位選擇端,P1.7接ー個開關(guān),當(dāng)開關(guān)接高電平時,顯示“12345”字樣;當(dāng)開關(guān)接低電平時,顯示“HELLO”字樣。.電路原理圖〇〇
0NNNNLED2LED1方giqrsS謁-II'3Er-o,ヽー,rc-■->-iいヽー,-iUiNDX1X2〇〇
0NNNNLED2LED1方giqrsS謁-II'3Er-o,ヽー,rc-■->-iいヽー,-iUiNDX1X28W0Zd艮Edo-wzぺdECEdLzdEyedSJvmd工wwd。1bwznd工W9Zd<Kl/:ds-wzzdAi£N3£d/modへ【d9aw90d9-dsawsodSid京す0d寸Idsawsodgq:さwrodrd一awー。d二doawoodold圖4.13.1.系統(tǒng)板上硬件連線(1. 把“單片機系統(tǒng)”區(qū)域中的PO.O/ADO-PO.7/AD7用8芯排線連接到“動態(tài)數(shù)碼顯示"區(qū)域中的a—h端口上;(2.把“單片機系統(tǒng)”區(qū)域中的P2.0/A8-P2.7/A15用8芯排線連接到“動態(tài)數(shù)碼顯示”區(qū)域中的S1—S8端口上;(3.把“單片機系統(tǒng)”區(qū)域中的P1.7端口用導(dǎo)線連接到“獨立式鍵盤”區(qū)域中的SP1端口上;.程序設(shè)計內(nèi)容(1. 動態(tài)掃描方法動態(tài)接口采用各數(shù)碼管循環(huán)輪流顯示的方法,當(dāng)循環(huán)顯示頻率較高時,利用人眼的暫留特性,看不出閃爍顯示現(xiàn)象,這種顯示需要一個接口完成字形碼的輸出(字形選擇),另一接口完成各數(shù)碼管的輪流點亮(數(shù)位選擇)。(2. 在進行數(shù)碼顯示的時候,耍對顯示單元開辟8個顯示緩沖區(qū),每個顯示緩沖區(qū)裝有顯示的不同數(shù)據(jù)即可。(3. 對于顯示的字形碼數(shù)據(jù)我們采用查表方法來完成。.程序框圖C語言源程序^include<AT89X51.H>unsignedcharcodetablet[]={0x06,0x5b,0x4f,0x66,0x6d};unsignedcharcodetable2[]={0x78,0x79,0x38,0x38,0x3f};unsignedchari;unsignedchara,b;unsignedchartemp;voidmain(void)(while(l)(temp=Oxfe;for(i=0;i<5;i++)(if(Pl_7=l)(P0=tablel[i];}elseP0=table2[i];
P2=temp;a=temp?(i+1);b=temp?(7-i);temp=aib;for(a=4;a>0;a--)for(b=248;b>0;b--);4X4矩陣式鍵盤識別技術(shù).實驗任務(wù)如圖4.14.2所示,用AT89S51的并行口P1接4X4矩陣鍵盤,以P1.0一P1.3作輸入線,以PL4—PL7作輸出線;在數(shù)碼管上顯示每個按鍵的“0一F”序號。對應(yīng)的按鍵的序號排列如圖4.14.1所示U?7K|oaaaaaa&s|eヌcccncccr1S艮陽W5因isI品えMSmIs一弓因U?7K|oaaaaaa&s|eヌcccncccr1S艮陽W5因isI品えMSmIs一弓因昱£2isHVヌsom總mtyL纟負(fù)sSS8g£茍,sハ£る、oi?KsEEWVK8ぺId-BsUdIxmOSートトトトトト“-fOMD僧⑥きなるL-1CQロロ理CB巴圖4.14.2.系統(tǒng)板上硬件連線(1.把“單片機系統(tǒng)“區(qū)域中的P3.0—P3.7端口用8芯排線連接到“4X4行列式鍵盤”區(qū)域中的C1—C4R1—R4端口上;(2.把“單片機系統(tǒng)”區(qū)域中的PO.O/ADO-PO.7/AD7端口用8芯排線連接到“四路靜態(tài)數(shù)碼顯示模塊”區(qū)域中的任一個a—h端口上;要求:PO.O/ADO對應(yīng)著a,PO.1/AD1對應(yīng)著b, , PO.7/AD7對應(yīng)著h。.程序設(shè)計內(nèi)容(1. 4X4矩陣鍵盤識別處理(2. 每個按鍵有它的行值和列值,行值和列值的組合就是識別這個按鍵的編碼。矩陣的行線和列線分別通過兩并行接口和CPU通信。每個按鍵的狀態(tài)同樣需變成數(shù)字量“〇”和“1”,開關(guān)的一端(列線)通過電阻接し,而接地是通過程序輸出數(shù)字“〇”實現(xiàn)的。鍵盤處理程序的任務(wù)是:確定有無鍵按下,判斷哪一個鍵按下,鍵的功能是什么;還要消除按鍵在閉合或斷開時的抖動。兩個并行口中,ー個輸出掃描碼,使按鍵逐行動態(tài)接地,另ー個并行口輸入按鍵狀態(tài),由行掃描值和回饋信號共同形成鍵編碼而識別按鍵,通過軟件査表,查出該鍵的功能。.程序框圖圖4.14.3.C語言源程序^include<AT89X51.H>unsignedcharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,Ox7d,0x07,Ox7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};unsignedchartemp;unsignedcharkey;unsignedchari,j;voidmain(void)(while(1)(P3=0xff;P3_4=0;temp=P3;temp=temp&OxOf;if(temp!=0x0f)(for(i=50;i>0;i—)for(j=200;j>0;j—);temp=P3;temp=temp&OxOf;if(temp!=OxOf)(temp=P3;temp=temp&OxOf;switch(temp)(caseOxOe:key=7;break;caseOxOd:key=8;break;caseOxOb:key=9;break;case0x07:key=10;break;)temp=P3;P1_O="P1_O;P0=table[key];temp=temp&OxOf;while(temp!=OxOf)(temp=P3;temp=temp&OxOf;})}P3=0xff;P3_5=0;temp=P3;temp=temp&OxOf;if(temp!=0x0f)(for(i=50;i>0;i--)for(j=200;j>0;j—);temp-P3;temp=temp&OxOf;if(temp!=0x0f)(temp=P3;temp=temp&OxOf;switch(temp)(caseOxOe:key=4;break;caseOxOd:key=5;break;caseOxOb:key=6;break;case0x07:key=ll;break;)temp=P3;P1_O="P1_O;Portable[key];temp=temp&OxOf;while(temp!=OxOf)temp=P3;temp=temp&OxOf;)}}P3=Oxff;P3_6=O;temp=P3;temp=temp&OxOf;if(temp!=OxOf)(for(i=50;i>0;i-)for(尸200;j〉〇;j—);temp=P3;temp=temp&OxOf;if(temp!=OxOf)(temp=P3;temp=temp&OxOf;switch(temp)(caseOxOe:key=l;break;caseOxOd:key=2;break;caseOxOb:key=3;break;case0x07:key=12;break;)temp=P3;Pl_0=>l_0;P0=table[key];temp=temp&OxOf;while(temp!=OxOf){temp=P3;temp=temp&OxOf;)))P3=0xff;P3_7=0;temp=P3;temp=temp&OxOf;if(temp!=0x0f){for(i=50;i>0;i--)for(j=200;j>0;j—);temp=P3;temp=temp&OxOf;if(temp!=OxOf)lemp=P3;temp=temp&OxOf;switch(temp)(caseOxOe:key=O;break;caseOxOd:key=13;break;caseOxOb:key=14;break;case0x07:key=15;break;)temp=P3;P1_O=>10;Portable[key];temp=temp&OxOf;while(temp!=OxOf){temp=P3;temp=temp&OxOf;定時計數(shù)器TO作定時應(yīng)用技術(shù)(-).實驗任務(wù)用AT89s51單片機的定時/計數(shù)器TO產(chǎn)生一秒的定時時間,作為秒計數(shù)時間,當(dāng)一秒產(chǎn)生時,秒計數(shù)加1,秒計數(shù)到60時,自動從〇開始。硬件電路如下圖所示.電路原理圖5r。ー呷蓼七2?冏總5r。ー呷蓼七2?冏總PIOPl.lPl2P13PI4Pl,Pl£P(guān)l.7t5P3OHUCDP3l/TXDP32AMT0P33/INT]P34/TOP35/TIP36/WKP37/RD8APOO/ADOPO1/AD1P02/AD2P03/AD3P04/AD4P05/ADSP06/AD6PO7/AD7ALErasrP27M15P26/A14P25/A13P24/A12P23/A11F22/AIOP21心9P20/A8.系統(tǒng)板上硬件連線(1. 把“單片機系統(tǒng)”區(qū)域中的PO.O/ADO-PO.7/AD7端口用8芯排線連接到“四路靜態(tài)數(shù)碼顯示模塊”區(qū)域中的任一個a—h端口上:要求:PO.O/ADO對應(yīng)著a,PO.1/AD1對應(yīng)著b, ,PO.7/AD7對應(yīng)著h。(2.把“單片機系統(tǒng)”區(qū)域中的P2.0/A8-P2.7/A15端口用8芯排線連接到“四路靜態(tài)數(shù)碼顯示模塊”區(qū)域中的任一個a—h端口上;要求:P2.0/A8對應(yīng)著a,P2.1/A9對應(yīng)著b, ,P2.7/A15對應(yīng)著h。.程序設(shè)計內(nèi)容AT89S51單片機的內(nèi)部16位定時/計數(shù)器是ー個可編程定時/計數(shù)器,它既可以工作在13位定時方式,也可以工作在16位定時方式和8位定時方式。只要通過設(shè)置特殊功能寄存器TMOD,即可完成。定時/計數(shù)器何時工作也是通過軟件來設(shè)定TCON特殊功能寄存器來完成的?,F(xiàn)在我們選擇16位定時工作方式,對于TO來說,最大定時也只有65536us,即65.536ms,無法達(dá)到我們所需要的1秒的定時,因此,我們必須通過軟件來處理這個問題,假設(shè)我們?nèi)O的最大定時為50ms,即要定時1秒需要經(jīng)過20次的50nls的定時。對于這20次我們就可以采用軟件的方法來統(tǒng)計了。因此,我們設(shè)定TM0D=00000001B,BPTM0D=01H下面我們要給TO定時/計數(shù)器的THO,TLO裝入預(yù)置初值,通過下面的公式可以計算出THO=(2,6-50000) /256TLO=(2,6-50000)MOD256當(dāng)TO在工作的時候,我們?nèi)绾蔚弥?0ms的定時時間已到,這回我們通過檢測TCON特殊功能寄存器中的TFO標(biāo)志位,如果TFO=1表示定時時間已到。.程序框圖C語言源程序(查詢法)#inc1ude<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=OxOl;TH0=(65536-50000)/256;TL0=(65536-50000)%256;TRO=1;tcount=0;second=0;PO=dispcode[second/10];P2=dispcode[second%10];whi1e(1){if(TFO==1){tcount++;if(tcount==20){tcount=0;second++;if(second==60){second=0;}PO=dispcode[second/10];P2=dispcode[second%10];}TF0=0;TH0=(65536-50000)/256;TL0=(65536-50000)%256;}})2.C語言源程序(中斷法)#inc1tide<AT89X51.H>tinsignedcharcodedispcode!_]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00};tinsignedcharsecond;tinsignedchartcount;voidmain(void)THO=(65536-50000)/256;TL0=(65536-50000)%256;TR0=l;ET0=l;EA=1;tcount=0;second=0;P0=dispcode[second/10];P2=dispcode[second%10];whi1e(1);}voidt0(void)interrupt1using0{tcount++;if(tcount==20){tcount=0;second++;if(second==60){second=0;}P0=dispcode[second/10];P2=dispcode[second%10];}TH0=(65536-50000)/256;TL0=(65536-50000)%256;}
實驗任務(wù)用AT89S5I的定時/計數(shù)器TO產(chǎn)生2秒鐘的定時,每當(dāng)2秒定時到來時,更換指示燈閃爍,每個指示閃爍的頻率為0.2秒,也就是說,開始L1指示燈以0.2秒的速率閃爍,當(dāng)2秒定時到來之后,L2開始以0.2秒的速率閃爍,如此循環(huán)下去。0.2秒的閃爍速率也由定時/計數(shù)器T0來完成。電路原理圖VCCR24220ロiAT89s51PPPPPPPPVCCR24220ロiAT89s51PPPPPPPP01234567:C33OpF3OpF3OpFGND圖4.16.1系統(tǒng)板硬件連線(1.把“單片機系統(tǒng)”區(qū)域中的Pl.0-P1.3用導(dǎo)線連接到“八路發(fā)光二極管指示模塊”區(qū)域中的LI—L4上(1. 由于采用中斷方式來完成,因此,對于中斷源必須它的中斷入口地址,對于定時/計數(shù)器TO來說,中斷入口地址為000BH,因此在中斷入口地方加入長跳轉(zhuǎn)指令來執(zhí)行中斷服務(wù)程序。書寫匯編源程序格式如下所示:ORG0011LJMPSTARTORGOBII;定時/計數(shù)器TO中斷入口地址LJMPINT_T0START: NOP ;主程序開始INT_TO: PUSHACC;定時/計數(shù)器TO中斷服務(wù)程序PUSHPSWPOPPSWPOPACCRETI ;中斷服務(wù)程序返回END(2. 定時2秒,采用16位定時50ms,共定時40次オ可達(dá)到2秒,每50ms產(chǎn)生一中斷,定時的40次數(shù)在中斷服務(wù)程序中完成,同樣0.2秒的定時,需要4次オ可達(dá)到0.2秒。對于中斷程序,在主程序中要對中斷開中斷。(3.由于每次2秒定時到時,L1—L4要交替閃爍。采用ID來號來識別。當(dāng)ID=0時,L1在閃爍,當(dāng)ID=1時,L2在閃爍;當(dāng)ID=2時,L3在閃爍;當(dāng)ID=3時,L4在閃爍5. 程序框圖C語言源程序#inc1ude<AT89X51.11>unsignedchartcount2s;unsignedchartcount02s;unsignedcharID;voidmain(void){TMOD=OxOl;THO=(65536-50000)/256;TLO=(65536-50000)%256;TRO=1;ETO=1;EA=1;while(1);}using0voidt0(void)interruptusing0tcount2s++;if(tcount2s==40){tcount2s=0;ID++;if(ID==4){ ID=0;}}tcount02s++;if(tcount02s==4){tcount02s=0;switch(ID){case〇:P1_O=~P1_O;break;case1:break;
case2:Pl_2=?Pl_2;break;case3:Pl_3=?Pl_3;break;}}17. 99秒馬表設(shè)計1. 實驗任務(wù)(1. 開始時,顯示“00”,第1次按下SP1后就開始計時。(2.第2次按SP1后,計時停止。(3.第3次按SP1后,計時歸零。2.電路原理圖
2.電路原理圖vcc1211匸1--14gGgPl0 POO/ADOPl.l POLAD]Pl2 PO2/AD2Pl.3 PO1/AD3Pl.4 P04/AD4vcc1211匸1--14gGgPl0 POO/ADOPl.l POLAD]Pl2 PO2/AD2Pl.3 PO1/AD3Pl.4 P04/AD4Pl5 PO"ADSPl6 P0RAD6Pl7 PO7/AD7ALEPSBHP30/RXD P27/A15P31/TXD P2.6/A14P3MNT0 P25/A13P33/INT1 P24/A12P34<ro P23/A11P35/T1 P2.2/A10P36/WR P21/A9P37/RD P20/A8as42928濟?會善務(wù)” 比8港ヨ以〇〇怖趣自8擠RQ(D圖4.17.13. 系統(tǒng)板上硬件連線(1. 把“單片機系統(tǒng)”區(qū)域中的PO.O/ADO—PO.7/AD7端口用8芯排線連接到“四路靜態(tài)數(shù)碼顯示模塊”區(qū)域中的任一個a-h端口上;要求:PO.O/ADO對應(yīng)著a,PO.1/AD1對應(yīng)著b, ,PO.7/AD7對應(yīng)著h。(2.把“單片機系統(tǒng)”區(qū)域中的P2.0/A8—P2.7/A15端口用8芯排線連接到“四路靜態(tài)數(shù)碼顯示模塊”區(qū)域中的任一個a—h端口上;要求:P2.0/A8對應(yīng)著a,P2.1/A9對應(yīng)著b, , P2.7/A15對應(yīng)著h。(3.把“單片機系統(tǒng)“區(qū)域中的P3.5/T1用導(dǎo)線連接到"獨立式鍵盤“區(qū)域中的SP1端口上;4.圖4.17.26. C語言源程序#inc1ude<AT89X51.H>unsignedcharcodedispcode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00};unsignedcharsecond;unsignedcharkeyent;unsignedinttent;voidmain(void){unsignedchari,j;TMOD=OxO2;ETO=1;EA=1;second=0;PO=dispcode[second/10];P2=dispcode[second%10];whi1e(1){if(P3_5==0){for(i=20;i>0;i—)for(j=248;j>0;j——);if(P3_5==0){keycnt++;switch(keycnt){case1:TH0=0x06;TL0=0x06;TRO=1;break;case2:TR0=0;break;case3*keycnt=0;second=0;PO=dispcode[second/10];P2=dispcode[second%10];break;}while(P3__5==0);}voidt0(void)interrupt1using0{tcnt++;if(tent==400){tent=0;seeond++;if(second==100){second=0;}PO=dispcode[second/10];P2=dispcode[second%10];}}“嘀、嘀、……”報警聲.實驗任務(wù)用AT89s51單片機產(chǎn)生“嘀、嘀、…”報警聲從PLO端口輸出,產(chǎn)生頻率為IKHz,根據(jù)上面圖可知:1KHZ方波從PL0輸出0.2秒,接著0.2秒從PL0輸出電平信號,如此循環(huán)下去,就形成我們所需的報警聲了。.電路原理圖
inAT的5140齡トトトトトトFトトトトト號トトト'ILinAT的5140齡トトトトトトFトトトトト號トトト'IL2fLod90Vz90dsawsodさミxrodcavAodraqKod一aw一odoawoodvac一?<B26w-zdolvxrd二V/Udurd二Wd9rdnRST0一ベsyc9ZddddddddONDミSEd號mdOX一二Ed9i£30pFwC7圖4.18.1.系統(tǒng)板硬件連線(1.把“單片機系統(tǒng)”區(qū)域中的PL0端口用導(dǎo)線連接到“音頻放大模塊”區(qū)域中的SPKIN端口上,(2.在“音頻放大模塊”區(qū)域中的SPKOUT端口上接上一個8歐或者是!6歐的喇叭;.程序設(shè)計方法(1.生活中我們常常到各種各樣的報警聲,例如“嘀、嘀、…”就是常見的一種聲音報警聲,但對于這種報警聲,嘀0.2秒鐘,然后斷0.2秒鐘,如此循環(huán)下去,假設(shè)嘀聲的頻率為IKHz,則報警聲時序圖如下圖所示:
上述波形信號如何用單片機來產(chǎn)生呢?(2.由于要產(chǎn)生上面的信號,我們把上面的信號分成兩部分,一部分為!KHZ方波,占用時間為0.2秒;另一部分為電平,也是占用0.2秒;因此,我們利用單片機的定時/計數(shù)器T0作為定時,可以定時0.2秒;同時,也要用單片機產(chǎn)生1KHZ的方波,對于1KHZ的方波信號周期為1ms,高電平占用0.5ms,低電平占用0.5nls,因此也采用定時器T0來完成〇.5ms的定時;最后,可以選定定時/計數(shù)器T0的定時時間為0.5ms,而要定時0.2秒則是0.5ms的400倍,也就是說以0.5ms定時400次就達(dá)到0.2秒的定時時間了。.程序框圖7.C語言源程序#inc1ude<AT89X51.H>unsignedint102s;Linsignedchar105ms\bitf1ag;voidmain(void){TMOD=OxOl;THO=(65536-500)/256;TLO=(65536-500)%256;TRO=1;ETO=1;EA=1;whi1e(1);}void10(void)interrupt1using0{THO=(65536-500)/256;TLO=(65536-500)%256;102s++;if(t02s==400){t02s=0;f1ag=~f1ag;}if(f1ag==0){ P1_O=~P1_O;}“叮咚”門鈴.實驗任務(wù)當(dāng)按下開關(guān)SPl,AT89s51單片機產(chǎn)生“叮咚”聲從P1.0端口輸出到LM386,經(jīng)過放大之后送入喇叭。.電路原理圖NDxlX2Goowo2@£NDxlX2Goowo2@£6W二d食PEdmzd反Cd二V冷Zd〇1Z寸6dKdー!NIACd*V/SZdOlNI/lEdNvzzdOw-Edn。〇v'eodCid9avwod9-dSuSidさw=drdSOV內(nèi)。dGidZGVKs一GWOd二dnd0EVCCEARST圖4.19.1.系統(tǒng)板上硬件連線(1.把“單片機系統(tǒng)”區(qū)域中的P1.0端口用導(dǎo)線連接到“音頻放大模塊”區(qū)域中的SPKIN端口上;(2.在“音頻放大模塊”區(qū)域中的SPKOUT端口上接上一個8歐或者是!6歐的喇叭;(3. 把“單片機系統(tǒng)”區(qū)域中的P3.7/RD端口用導(dǎo)線連接到“獨立式鍵盤”區(qū)域中的SP1端口上;.程序設(shè)計方法(1. 我們用單片機實定時/計數(shù)器TO來產(chǎn)生700Hz和500Hz的頻率,根據(jù)定時/計數(shù)器T0,我們?nèi)《〞r250us,因此,700Hz的頻率要經(jīng)過3次250us的定時,而500HZ的頻率要經(jīng)過4次250us的定時。在設(shè)計過程,只有當(dāng)按下SP1之后,オ啟動T0開始工作,當(dāng)T0工作完畢,回到最初狀態(tài)。(3. “?!焙汀斑恕甭曇舾髡加?.5秒,因此定時/計數(shù)器T0要完成0.5秒的定時,對于以250us為基準(zhǔn)定時2000次オ可以。7.C語言源程序#include<AT89X51.H>unsignedchar15hz;unsignedchar17hz;unsignedinttent;bitstop;bitf1ag;voidmain(void){unsignedchari,j;TMOD=OxO2;TH0=0x06;TL0=0x06;ETO=1;EA=1;while(1){if(P3_7==0){for(i=10;i>0;i——)for(j=248;j>0;j——);if(P3_7==0){t5hz=0;t7hz=0;tcnt=O;f1ag=0;stop=0;TRO=1;whi1e(stop==0);}}}}void10(void)interrupt1using0{tcnt++;if(tent==2000){tcnt=O;if(f1ag==0){flag=flag;>else{stop=l;TRO=O;}}if(f1ag==0){ t7hz++;if(17hz==3){t7hz=0;P1_O=~P1_O;}}else{t5hz++;if(15hz==4){t5hz=0;P1_O=?P1_O;)數(shù)字鐘(4).實啦任務(wù)(1. 開機時,顯示12:00:00的時間開始計時;(2. P0.0/AD0控制“秒”的調(diào)整,每按一次加1秒;(3. P0.1/AD!控制“分”的調(diào)整,每按一次加1分;(4. P0.2/AD2控制“時”的調(diào)整,每按一次加1個小時;.電路原理圖
GNDi30pF20れマ曾KlQdddddddd33、】厶--1:;ハ9S3U1LED84sU2LED84sハ9ハE□□Ito222S2S£S寸?J6GNDi30pF20れマ曾KlQdddddddd33、】厶--1:;ハ9S3U1LED84sU2LED84sハ9ハE□□Ito222S2S£S寸?J6べqsss日日日日d“PPDMSQ^252uzdaxu-GdEvqzdOLB畐£EIVKSdusdps£msdIK£dsVRZdW9cdbwrzdmi/CCd8vazdNDX2xlGNつ?JENq
sss
日日日日d3PPDMS叫趙貂孫認(rèn)^eseseeggwe國マ國禹a區(qū)后網(wǎng)gヌ耳岡補冷忸斡附GNDAT89S51SP1圖4.20.1.系統(tǒng)板上硬件連線(1.把“單片機系統(tǒng)”區(qū)域中的P1.0—PL7端口用8芯排線連接到“動態(tài)數(shù)碼顯示"區(qū)域中的A—H端口上:(2.把“單片機系統(tǒng):區(qū)域中的P3.0-P3.7端口用8芯排線連接到“動態(tài)數(shù)碼顯示"區(qū)域中的S1—S8端口上;(3.把“單片機系統(tǒng)”區(qū)域中的P0.0/AD0,P0.1/ADKP0.2/AD2端口分別用導(dǎo)線連接到“獨立式鍵盤”區(qū)域中的SP3、SP2、SP1端口上;.相關(guān)基本知識(1. 動態(tài)數(shù)碼顯示的方法
(2. 獨立式按鍵識別過程(3. “時”,“分”,“秒”數(shù)據(jù)送出顯示處理方法.程序框圖C語言源程序#inc1ude<AT89X51.H>unsignedcharcodedispcodeL]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00};unsignedchardispbitcodeL]={Oxfe,Oxfd,Oxfb,Oxf7,Oxef,Oxdf,Oxbf,0x7f};unsignedchardispbuf[8]=<0,0,16,0,0,16,0,0};unsignedchardispbitent;unsignedcharsecond;unsignedcharminite;unsignedcharhour;unsignedintunsignedinttent;unsignedcharmsunsignedcharmstent;unsignedchari,j;voidmain(void){TMOD=OxO2;TH0=0x06;TL0=0x06;TRO=1;ETO=1;EA=1;whi1e(1){if(P0_0==0){for(i=5;i>0;i—)for(j=248;j>0;j——);if(P0_0==0){second++;if(second==60){second=0;}dispbuff0]=second%10;dispbufF1]—second/10;while(P0_0==0);}}if(P0_l=0){for(i—5;i>0;i—)for(j=248;j>0;j——);if(P0_l==0){ininite++;if(minite==60){minite=0;}dispbuf[3]=minite%10;dispbuf[4]=minite/10;while(P0_l==0);}}if(P0-2==0){for(i=5;i>0;i—)for(j=248;j>0;j——);if(P0_2==0)if(hour==24){hour=0;}dispbuf[6]=hour%10;dispbuf[7]=hour/10;while(P0_2==0);}}}}void10(void)interrupt1using0{ mstcnt++;if(mstcnt==8){mstent=0;Pl=dispeode[dispbuf[dispbitent]];P3=dispbitcode[dispbitent];dispbitent++;if(dispbitent==8){dispbitent=0;}}tent++;if(tent==4000){tcnt=0;second++;if(second==60){second=0;minite++;if(minite==60){minite=0;if(hour==24){hour=0;}}}dispbuf[0]=second%10;dispbuf[1]=second/10;dispbuf[3]=minite%10;dispbuf[4]=minite/10;dispbuf[6]=hour%10;dispbuf[7]=hour/10;}}21t 拉幕式數(shù)碼顯示技術(shù).實驗任務(wù)用AT89S51單片機的PO.O/ADO-PO.7/AD7端口接數(shù)碼管的a-h端,8位數(shù)碼管的S1-S8通過74LS138譯碼器的Y0-Y7來控制選通每個數(shù)碼管的位選端。AT89S51單片機的PLO—PL2控制74LS138的A,B,C端子。在8位數(shù)碼管上從右向左循環(huán)顯示“12345678”。能夠比較平滑地看到拉幕的效果。.電路原理圖后虜髭男あ》あscdSS后虜髭男あ》あscdSS於跋第をスカ用ダ宿ふ肉??a畐目腎內(nèi)いAT89S51X2超LU2X2超LU2?一二ESEd二ア10FZS2OXl/lEd日二-,.',一DclGNXsvdzd6V二ペd2v/r£IW22,マ2EKKCマ!vzsdzdN3sdullvzovxod90V/90d八OVKOdpovmoamay祠£zav/roa一avコoa〇av/ooa圖4.21.1.系統(tǒng)板上硬件連線(1.把“單片機系統(tǒng)”區(qū)域中的PO.O/ADO-PO.7/AD7用8芯排線連接到“動態(tài)數(shù)碼顯示"區(qū)域中的a—h端口上;(2. 把“三八譯碼模塊”區(qū)域中的Y0-Y7用8芯排線連接到“動態(tài)數(shù)碼顯示”區(qū)域中的S1—S8端口上:(3. 把“單片機系統(tǒng)”區(qū)域中的Pl.0-P1.2端口用3根導(dǎo)線連接到“三八譯碼模塊”區(qū)域中的A、B、C“端口上;.程序設(shè)計方法動態(tài)數(shù)碼顯示技術(shù);如何進行動態(tài)掃描,由于一次只能
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 痛經(jīng)課件流程教學(xué)課件
- 手機原理課件教學(xué)課件
- 護士課件英語教學(xué)課件
- 公司機密保密協(xié)議
- 2024年市場營銷與協(xié)作合同
- 2024年城市供水管道鋪設(shè)工程承包合同
- 2024可再生能源發(fā)電并網(wǎng)服務(wù)合同
- 2024年婚姻外遇協(xié)議書
- 2024年《夏令營老師與營員心理輔導(dǎo)協(xié)議》心理輔導(dǎo)內(nèi)容與保密原則
- 2024年企業(yè)間產(chǎn)品生產(chǎn)與銷售合同
- 詩詞大會訓(xùn)練題庫十二宮格
- 困難職工幫扶救助申請表
- 機械設(shè)計課程設(shè)計說明書 11機電本 劉偉華
- 問卷1:匹茲堡睡眠質(zhì)量指數(shù)量表(PSQI)
- 大黃具有抗菌作用
- 高速鐵路橋涵工程橋上救援疏散通道施工方案
- 《企業(yè)水平衡測試通則》
- 《演講的肢體語言》PPT課件
- 研究一億有多大ppt課件
- 企業(yè)經(jīng)營狀況調(diào)查問卷
- -中醫(yī)養(yǎng)生健康講座活動方案
評論
0/150
提交評論