高級電工單片機實操教程_第1頁
高級電工單片機實操教程_第2頁
高級電工單片機實操教程_第3頁
高級電工單片機實操教程_第4頁
高級電工單片機實操教程_第5頁
免費預覽已結束,剩余36頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、高級電工單片機實操教程作者:日期:試題編號3301控制要求:在內部RAM數,分別送34H和35H中20H開始的區域中存有二十個無符號數,找出其中最大和最小單元。(注:目標程序于0800H單元開始)ORG0000HLJMPMAINORG0800HMAIN:MOVR0,#20HMOVR7,#19MOV34H,R0MOV35H,R0LOOP:INCR0MOVA,R0CJNEA,34H,B1SJMPEXITB1:JCXIAO;從內部20H單元開始查找;20個數需要比較19次;將20H單元的內容同時送34H和35HMOV34H,ASJMPEXITXIAO:CJNEA,35H,B2SJMPEXITB2:J

2、NCEXITMOV35H,AEXIT:DJNZR7,LOOPSJMP$END指向下一個單元讀取到ACC;將讀取的內容與34H的內容進行比較,不相等跳B1處;相等則不作其它比較跳EXIT處;若A的內容小于34H的內容則C為1,跳XIAO處;C為0表明A大于34H的內容則替換掉34H的內容;替換后退出不作最小數比較;作最小數比較,不相等跳B2處;相等退出到EXIT處;若A的內容大于35H的內容跳EXIT處;若A的內容小于35H的內容則替換掉35H的內容;判斷比較次數是否完畢比較完畢原地等待開始A)>(34H)嗎?YA)V(35H)嗎?(R7)-1-R7(R7)w0嗎?A)w(34H)嗎?A)

3、a(35H)嗎?YNYNYNNYN(R0)-34H(R0)-35H(R0)-A(R0)+1-R019fR720HRR0(A)-35H(A)-34H3102控制要求:利用8031定時器與中斷功能控制一個“航標燈”,黑夜時發光二極管按指定頻率閃爍(如:亮2S,滅2S,循環);白天時發光二極管不亮。電路工作原理:白天光敏電阻阻值小,使P3.2輸入電位為高電平,不產生中斷,使LED滅。晚上光敏電阻阻值變大,使P3.2的輸入電位為低電平,這時產生中斷,中斷使LED閃爍。只要是在晚上要求LED一直閃爍。所以中斷應該采用電平觸發方式。調試方法:接好電路,編好程序,使光敏電阻暴露在光線下,調節Rp到最小值,這

4、時LED應該閃爍。慢慢調大Rp的阻值,使LED剛剛滅,保持Rp這時的阻值即可。當用手遮住光敏電阻的光線,LED就會閃爍。編程思路:使用定時器T0,方式1。所以TMOD=00000001即:01H使用指令:MOVTMOD,#01H每50ms中斷一次當晶振為12MHZ時,1us加一。50ms=50000us。所以賦初值為65536-50000=15536,將15536轉換為十六進制為3CB0H高八位送TH0,第八位送TL0.使用指令:MOVTH0,#3CHMOVTL0,#0B0H當晶振為6MHZ時,2us加一。50ms=50000us,50000/2=25000所以賦初值65536-25000=4

5、0536,將40536轉換為十六進制為9E58H高八位送TH0,第八位送TL0,使用指令:MOVTH0,#9EHMOVTL0,#58H當晶振為11.0592MHZ時,12/11.0592us力口一。50ms=50000us,50000*11.0592/12=46080所以賦初值為65536-46080=19456,將19456轉換為十六進制為4C00H高八位送TH0,第八位送TL0,使用指令:MOVTH0,#4CHMOVTL0,#00H因為50ms閃爍一次太快,當要求2s進行一次閃爍時則需要中斷2S/50ms=40次。參考程序:(以12MHz為例)ORG0000HAJMPMAINORG0003

6、HAJMPHYsDMAIN:MOVTMOD,#01HMOVIE,#81HBT:CLRP1.0SJMPBTHYSD:SETBP1.0MOVRO,#40LP:MOVTH0,#3CHMOVTL0,#0B0HsETBTR0JNBTF0,$CLRTF0DJNZR0,LPMOVR0,#20LP1:MOVTH0,#3CHMOVTL0,#0B0HsETBTR0JNBTF0,$CLRTF0DJNZR0,LP1JNBP3.2,HYSD外部中斷0的中斷入口地址;設置T0工作方式1,且為定時CPU開中斷和外部中斷0開中斷白天滅LED且等待中斷;亮LED;定時40次,即:50ms*40=2S(這里亮2S);賦初值;啟動

7、定時;等待50ms定時到,定時到后TF0為1;軟件清除T0的溢出標志位TF0;判斷是否有40次T0定時RETI18句試題編號3105考題:循環點亮8個發光二極管。控制要求:利用左移或右移指令從左向右點亮并循環n次,或從右向左點亮并循環n次,循環完畢全部熄滅。(循環順序及次數由考評員現場指定)高電單片機實操程序1.電路原理圖:Vcc4A4B4Y3Y3B3A1_JI,IIlip-i141312111098P1.0uP1.11=P1.2P1.3uP1.4=P1.51=P1.6uP1.7RST/VPD1=RXDP3.0匚TXDP3.1LINT0P3.21INT1P3.3tT0P3.41=T1P3.5W

8、RP3.6uRDP3.7uXTAL21=140-3239=13381437ZZI536=635=17348331980313211031=111805130ZZ11287512913.28=1427=1152611625ZZI1724=1182399=1VccP0.0P0.1P0.2P0.3P0.4P0.5P0.7EA/VppALE/PROGPSENP2.7P2.6P2.5P2.4P2.3P2.22.電路工作原理:根據電路原理圖可知:當某位輸出為高電平時對應的LED發光。要求從左向右移動時先從P1口輸出10000000即:80H這時LED7亮,其它滅,亮的時間可以通過延時確定。當向P1口送01

9、000000即:40H這時LED6亮,其它滅,依次類推。所以可以通過RRA指令實現。從左向右移動參考程序:ORG0000HMOVR7,#40;循環5次,一次需要依次點亮8個LED,所以為40MOVA,#80H;送初值給累加器ACC,如果向左移動就用MOVA#01HLOOP:MOVP1,A;送P1口進行LED顯示ACALLDELAY;顯示的時間通過延時子程序決定RRA;將A的內容循環右移動一位,如果向左移動就用RLADJNZR7,LOOP;判斷循環是否完畢MOVP1,#00HSJMP$;完畢后等待DELAY:MOVR4,#5;延時0.5S子程序(f0sc=6MHz),如f-OSC=12MHZ,用

10、#10D0:MOVR5,#125;5*2usD1:MOVR6,#200;125*5*2*2usD2:DJNZR6,D2;200*125*5*2*2usDJNZR5,D1;125*5*2*2usDJNZR4,D0;5*2usRETEND從右向左移動參考程序:ORG0000HMOVR7,#32;循環4次,一次需要依次點亮8個LED,所以為32MOVA,#01H;送初值給累加器ACC用MOVA,#01H亮LED0LOOP:MOVP1,A;送P1口進行LED顯示ACALLDELAY;顯示的時間通過延時子程序決定RLA;將A的內容循環左移動一位DJNZR7,LOOP;判斷循環是否完畢MOVP1,#00H

11、SJMP$;完畢后等待DELAY:MOVR4,#5;延時0.5S子程序(%sc=6Mhz),如f-OSC=12Mhz,用#10D0:MOVR5,#125;5*2usD1:MOVR6,#200;125*5*2*2usD2:DJNZR6,D2;200*125*5*2*2usDJNZR5,D1;125*5*2*2usDJNZR4,D0;5*2usRETENDORG0000HMOVR7,#24MOVA,#80HLOOP:MOVP1,A從左向右移動3次,然后從右向左移動2次參考程序:;循環3次,一次需要依次點亮8個LED,所以為24;送初值給累加器ACC;送P1口進行LED顯示ACALLDELAY;顯示

12、的時間通過延時子程序決定RRA;將A的內容循環右移動一位DJNZR7,LOOP;判斷循環是否完畢MOVP1,#00HMOVR7,#16MOVA,#01HLOOP1:MOVP1,A;循環2次,一次需要依次點亮8個LED,所以為16;送初值給累加器ACC;送P1口進行LED顯示ACALLDELAY;顯示的時間通過延時子程序決定RLA;將A的內容循環右移動一位DJNZR7,LOOP1;判斷循環是否完畢MOVP1,#00HSJMP$;完畢后等待DELAY:MOVR4,#5;延時0.5S子程序(fosc=6Mhz),如f-OSC=12Mhz,用#10D0:MOVR5,#125;5*2usD1:MOVR6

13、,#200;125*5*2*2usD2:DJNZR6,D2;200*125*5*2*2usDJNZR5,D1;125*5*2*2usDJNZR4,D0;5*2usRETEND高電實操3103:計數報警考題:利用8031計數器,當計數滿n個后LED發光二極管發光報警。計數脈沖用消抖動開關產生。控制要求:按按鈕開關n次,發光二極管發光。1.2 .電路工作原理:考題要求,每按下一次按鈕時計數一次,通過程序設定計數次數,按下次數到后LED亮(P1.0輸出高電平)。根據硬件結構可知:按鍵輸入為計數器T0o所以T0在這里不能作為定時器,而是作為計數器。所以TMOD=00000100(13位計數器)采用指令

14、MOVTMOD,#04H或TMOD=00000101(16位計數器)采用指令MOVTMOD,#05H或TMOD=00000110(自動重裝入8位計數器)采用指令MOVTMOD,#06H輸入管腳P3.4如果直接通過開關接入的話,會有很大的干擾,也就是按下或松開時會有抖動,造成按下一次可能會計數若干次。所以采用兩個與非門組成一個觸發器進行抗干擾(防抖動電路)解法一:用模式1,不可循環START:MOVTMOD,#05H;設置T0為16位計數器MOVTH0,#0FFH;賦初值此處計數10次。因為16位最多可計數65536MOVTL0,#0F6HSETBTR0;次,初值賦6553610=65526=0

15、FFF6H;啟動計數器CLRP1.0;計數未到滅LEDJNBTF0,$;等待計數到。如果計數到則TF0自動變為“1SETBP1.0;計數到亮LEDSJMP$;等待END解法二:用模式2,可循環START:MOVTMODCLRP1.0MOVTH0,#0F6HMOVTL0,#0F6HSETBTR0LP:JBCTFO,REPSJMPLPREP:CPLP1.0,#06H;模式2,自動重裝入8位計數器開始滅LED;賦初值,模式2最多可計數256次。這里為10次;初值為256-10=246=0F6H,模式2賦初值一樣啟動計數器;計數未滿順序執行,滿則跳REP同時將TF0清零。SJMPLPEND;將輸出狀態

16、取反,;跳LP等待下次計數10次高電考題3104:數碼管顯示考題:利用8031串行和74LS164移位寄存器驅動數碼管。控制要求:數碼管依次按指定的順序循環并顯示數字。1.電路原理圖:+5V+5VCL3161BSdaR18220Qx814Q6Q5Q4Q3Q2Q1Q074LS164Vcc40803120P1.0Vss1011CK2.電路工作原理要求從串口將數據發送出去,所以串口為工作方式0,也就是使00000000SCON=SM0SM1SM2RENSB8)RB8TIRI:工作方式0為移位寄存器當執行MOVA,#3FHMOVSBUF,A時,其發送動作為:P3.0(RXD)端送數據,低位在前,后。P

17、3.1(TXD)輸出移位脈沖。示意如下:高位在3FH=00111111TRTLTLmLr當八位數字發送完畢后單片機自動將TI置1,沒有發送完畢TI始終為0根據硬件可知,P3.0接在74LS164的數據輸入端,P3.1接在74LS164的時鐘端。而74LS164的功能為:第一個時鐘來了將數據輸入端的狀態移位到Q7端,Q7的狀態到Q6端依次類推最后Q1的狀態到Q0端,Q0狀態丟失。第二個時鐘脈沖來到再作一次全體移動。所以當來了8個時鐘脈沖后。原來第一次Q7的狀態就到了Q0。也就是當數據端隨著時鐘脈沖同步輸出00111111時,8個時鐘脈沖過后74LS164的Q7Q0輸出也為00111111,這時會

18、使共陰數碼管顯示一個“3”。3 .參考程序例如:規定按1、3、5、7、9、2、4、6、8、0、A、B、C、D、E、F、-、P、熄滅順序循環顯示。法一.START:MOVSCON,#00H;串口為工作方式0,8位移位寄存器方式MOVR0,#0;送偏移量初值MOVDPTR,#TAB;送表頭首地址給DPTR,也就是表06H所在的地址LP:MOVAMOVCACPLMOVJNBCLRINCASBUFTITIR0,R0,A+DPTR;查表,將查的的數據送ACC;如果為共陽LED就加上此句,否則不加,A;送串口進行發送ACALLDELYCJNER0,#20,LPSJMPSTART;發送未完TI為0就等待,完

19、則TI為1順序執行發送結束標志必須用軟件清零偏移量加一;調延時,也就是LED顯示一位數字的時間;因為表格有20個字節數據,所以這里為20;從頭在來,無限循環下去(共陰)TAB:DB06H,4FH,6DH,07H,6FH,5BH,66H,7DH,7FH,3FHDB77H,7CH,39H,5EH,79H,71H,40H,73H,80H,00HDELY:MOVR4,#5;延時0.5S子程序(fosc=6Mhz),如fosc=12Mhz,用#10D0:MOVR5,#125D1:MOVR6,#200D2:DJNZR6,D2DJNZR5,D1DJNZR4,D0RET思考題:如果顯示為循環顯示8051CPU

20、,每次間隔1秒,共大循環5次。試試如何改動程序。試題編號(3106)霓虹燈控制控制要求:實現8個發光二極管從兩邊向中間或從中間向兩邊依次循環點亮來模擬霓虹燈效果,循環n次后全部熄滅。1 .電路原理圖P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7RST/VPD匚RXDP3.0TXDP3.1INT0P3.2INT1P3.3T0P3.4T1P3.5WRP3.6RDP3.7123456789101112131415161718403938373635343332313029282726252423803180518751=iZZ1=1II1=1=ZZ1ZZ1=1=i匚ZZ1«

21、;=Vcc1413121110+5VP0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7PSENEA/VppALE/PROGCD4011P2.7P2.6P2.5P2.4P2.3P2.295Vcc2 .電路工作原理根據硬件可知:P1口某位輸出為高電平,則對應的LED發光.示意圖如下:LED7LED6LED5LED4LED3LED2LED1LED0如果要使得LED6和LED1亮,則P1口應該輸出為:01000010即:42H輸出狀態為OOOOOOOO如果要使得LED7和LED0亮,則P1口應該輸出為:10000001即:81H輸出狀態為OOOOOOOO因此,如果希望LED輸出狀態由中間

22、向兩邊亮,則表格按照順序填寫:18H,24H,42H,81H即可.根據此原理,無論狀態如何變化都有對應的數據.3 .參考程序:(1)從中間向兩邊亮,每次點亮0.5S共6個循環后結束ORG0000H;送表首地址給DPTR;此程序共6個循環;送偏移量初值MOVDPTR,#LEDMOVR7,#6LOOP1:MOVR0,#0LOOP:MOVA,R0MOVCA,A+DPTRMOVP1,AACALLDELAY;查表;送P1口進行顯示;調用顯示時間INCR0;偏移量加一CJNER0,#4,LOOP;表格里4個數據沒循環完跳'LOOPDJNZR7,LOOP1;6次沒有循環完跳LOOP1MOVP1,#0

23、0HSJMP$LED:DB18H,24H,42H,81HDELAY:.;延時0.5秒程序RETEND思考題:(1) 從兩邊向中間亮,每次狀態亮1秒,共4個大循環后結束.(2) 先從兩邊向中間亮3次,再從中間向兩邊亮5次,共6個循環試卷編號(3107):算術運算器控制要求:分別在內部RAM中20H單元和30H單元置入兩個數,進行(20H+30H)30H的算術運算,將運算結果通過串口通訊方式用LED顯示出來。(提示:運算值不超過“F”)+5V1.Vss1P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7i二i=1=1=二12345678910111213141516171819204

24、0393837363534333231302928272625242322211ZZ11=1=11ZZI1=1=1=1n=VccP0.0P0.1P0.2P0.3P0.4P0.5P0.6PPRRST/XDPVPD3.03.13.2P0.7EA/V11-1=二1803180518751TXDPALE/PRC)GINT0PPSENINT1P3.3T0P3.4T1P3.5WRP3.6而P3.7XTAL2XTAL1VssP2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0-2 .電路工作原理:與試題編號3104的硬件一樣,工作原理相同。3 .參考程序:ORG0000HMOVA,20H;將20

25、H的內容送累加器ACCADDA,30H;將A的內容與30H的內容相加MOVB,30H;將30H的內容送寄存器BMULAB;將A的內容與B的內容相乘,低八位送ACC,高八位送BMOVDPTR,#TAB;送顯示0F的數據表格的表首地址到DPTRMOVCA,A+DPTR;查表MOVSBUF,A;從串口發送進行顯示JNBTI,$;等待發送完畢CLRTISJMP$TAB:DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FHDB6FH,77H,7CH,39H,5EH,79H,71HEND試卷編號(3108):繼電器控制1 .實訓目的掌握軟件延時程序,根據要求熟練編寫不同的延時時間程序

26、。掌握隔離輸出的常用方式之一:繼電器隔離輸出2 .控制要求:設計程序使Pi.0反復輸出高、低電平,通過繼電器控制LED1和LED2輪流點亮。程序采用軟件延時n秒。(延時時間由考評員現場指定,閃爍時間>1.5S)3 .參考電路圖:5.參考程序:(該參考程序在ORG0000HSTART:CPLP1.0ACALLDELAYSJMPSTART當P1.0輸出為高電平時,經過同相器74LS07后輸出也為高電平,這時KA兩端電壓相等,KA不動作。這時LED1得電亮。當P1.0輸出為低電平時,74LS07輸出也為低電平。KA得電吸合。這時LED2亮。二極管D是為了續流而設。當P1.0輪流輸出高低電平,則

27、LED1和LED2輪流被點亮。12MHZ的晶振下運行,每1.5S兩LED改變一次狀態);此程序每隔相同時間P1.0輸出取反一次,相隔時間由子程序DELAY的延時時間決定;此程序約為1.5S(稍微大于1.5S)DELAY:MOVR6,#15M:MOVR5,#200N:MOVR4,#250DJNZR4,$;此句執行時間為:2*1us*250*200*15=1.5SDJNZR5,NDJNZR6,MRETEND6.思考題:單片機復位后先亮LED1時間為1S。再亮LED2,時間為2.5秒。循環不止。試卷編號(3109):倒計時音樂報警器1 .實訓目的:熟悉簡單的按鍵輸入進行控制設備和顯示2 .控制要求:

28、“0”時,音樂響起,按下按下起動按鈕,數碼管從“90”按遞減順序顯示,當顯示到4 .工作原理:單片機復位后先置P1.1為低電平然后等待啟動按鈕QA啟動,啟動后數碼管先顯示9,隔段時間后顯示8。依次往下顯示。到顯示0后置P1.1輸出為高電平,這時音樂芯片加上了工作電壓開始工作。揚聲器就開始發音。當停止按鈕(TA)按下,音樂停止。5 .參考程序:ORG0000HCLRP1.1JBP3.2,$MOVDPTR,#TABMOVR0,#0CONT1:MOVA,R0MOVCA,A+DPTRMOVSBUF,ALP1:JBCTI,LPSJMPLP1LP:CJNEA,#3FH,CONTSETBP1.1JBP3.3

29、,$CLRP1.1SJMP$CONT:ACALLDELAYSJMPCONT1TAB:DB6FH,7FH,07H,7DH,6DH,66H,4FH,5BH,06H,3FHDELAY:MOVR7,#10M:MOVR6,#200N:MOVR5,#250DJNZR5,$DJNZR6,NDJNZR7,MRETEND試卷編號(3110):數據傳送1 .實訓目的:熟練掌握單片機在執行數據傳送和堆棧指令時內部的變化情況2 .控制要求:把20H單元開始的外部RAM單元中的8個數據送到30H單元開始的外部RAM單元中;存取要求:源數據存儲地址及目的地數據存儲地址使用堆棧。2.在脫機運行下的參考程序:ORG0000H

30、MOV70H,#20HMOV71H,#30HMOVR7,#8LOOP:PUSH71HPUSH70HINC70HINC71HDJNZR7,LOOPMOVR7,#8MOVDPH,#00HLOOP1:POPDPLMOVXA,DPTRPOPDPLMOVXDPTR,ADJNZR7,LOOP1SJMP$END循環燈點亮(高電實操題3105)循環點亮8個發光二極管LED。要求:按規定的順序依次點亮8個LED(每個亮0.5S),循環N次。要求:按D1、D2、D3、D4、D5、D6、D7、D8順序依次點亮(每個亮0.5S),循環3次。解:START:MOVR1,#3LP0:MOVR0,#0MOVDPTR,#TA

31、BLP:MOVA,R0MOVCA,A+DPTRMOVP1,AACALLDELYINCR0CJNER0,#8,LPDJNZR1,LP0MOVP1,#00HSJMP$TAB:DB01H,02H,04H,08H,10H,20H,40H,80HDELY:MOVR4,#5;延時0.5S子程序(fOSC=6Mhz),如fOSC=12Mhz,用#10D0:MOVR5,#125D1:MOVR6,#200D2:DJNZR6,D2DJNZR5,D1DJNZR4,D0RET;共20句計數報警(高電實操3103)用8031計數器T0,當計滿n個數后,發光二極管LED發光報警。計數脈沖用消抖動開關產生,設n=10。用模

32、式2,可循環解法一:START:MOVTMOD,#05H法二:START:MOVTMOD,#06H不可循環MOVTH0,#0FFHCLRP1.0MOVTL0,#0F6HMOVTH0,#0F6HSETBTR0MOVTL0,#0F6HCLRP1.0SETBTR0JNBTF0,$LP:JBCTFO,REPSJMPLPSETBP1.0SJMP$REP:CPLP1.0SJMPLP“航標燈”(高電實操題3102)利用8031定時器與中斷功能控制一個“航標燈”,要求:黑夜時發光二極管按指定的頻率閃爍(例如:亮2s、滅2s、循環);白天時發光二極管不亮。用定時器T0,定時50ms,模式1,加軟件延時到2s。T

33、MOD=00000001=01Hfosc=12MHzT0計數初值X=10000H-12X50X103/12=3CB0H用RO軟件計數2s/50ms=40ORG0000HAJMPMAINORG0003HAJMPHYSDMAIN:MOVTMOD,#01HMOVIE,#81HBT:CLRP1.0SJMPBTHYSD:CPLP1.0MOVRO,#40LP:MOVTH0,#3CHMOVTL0,#0B0HSETBTR0JNBTF0,$CLRTF0DJNZR0,LPJNBP3.2,HYSDRETI18句數碼管顯示(高電實操題3104)利用8031串行口和74LS164驅動一個數碼管,要求:數碼管依次按指定的

34、順序循環并顯示數字。例如:規定按1、3、5、7、9、2、4、6、8、0、A、B、C、D、E、FP、熄滅順序循環顯示。法一.START:MOVSCON,#00HMOVR0,#0MOVDPTR,#TABLP:MOVA,R0MOVCA,A+DPTRMOVSBUF,AJNBTI,$CLRTIINCR0ACALLDELYCJNER0,#20,LPSJMPSTART3FHTAB:DB06H,4FH,6DH,07H,6FH,5BH,66H,7DH,7FH,(共陰)DB77H,7CH,39H,5EH,79H,71H,40H,73H,80H,00HDELY:MOVR4,#10;延時0.5s子程序(fosc=12

35、MHz)RETMOVR0,#20HMOVR1,#19MOV34H,R0MOV35H,R0START:INCR0MOVA,R0CJNEA,34H,MSJMPEXITM:JCNMOV34H,ASJMPEXITN:CJNEA,35H,SSJMPEXITS:JNCEXITMOV35H,AEXIT:DJNZR1,STARTSJMP$END高電單片機實操程序循環燈點亮(高電實操題3105)循環點亮8個發光二極管LED。要求:按規定的順序依次點亮8個LED(每個亮0.5S),循環N次。要求:按D1、D2、D3、D4、D5、D6、D7、D8順序依次點亮(每個亮0.5S),循環3次。解:START:MOVR1,

36、#3LP0:MOVR0,#0MOVDPTR,#TABLP:MOVA,R0MOVCA,A+DPTRMOVP1,AACALLDELYINCR0CJNER0,#8,LPDJNZR1,LP0MOVP1,#00HSJMP$TAB:DB01H,02H,04H,08H,10H,20H,40H,80HDELY:MOVR4,#5;延時0.5S子程序(f0SC=6Mhz),如f0SC=12Mhz,用#10D0:MOVR5,#125D1:MOVR6,#200D2:DJNZR6,D2DJNZR5,D1DJNZR4,D0RET;共20句計數報警(高電實操3103)用8031計數器T0,當計滿n個數后,發光二極管LED發

37、光報警。計數脈沖用消抖動開關產生,設n=10。用模式2,可循環法二:START:MOVTMOD,解法一:START:MOVTMOD,#05H#06H不可循環MOVTH0,#0FFHCLRP1.0MOVTH0,#0F6HMOVTL0,#0F6HSETBTR0LP:JBCTFO,REPSJMPLPREP:CPLP1.0SJMPLPMOVTL0,#0F6HSETBTR0CLRP1.0JNBTF0,$SETBP1.0SJMP$“航標燈”(高電實操題3102利用8031定時器與中斷功能控制一個“航標燈”,要求:黑夜時發光二極管按指定的頻率閃爍(例如:亮2s、滅2s、循環);白天時發光二極管不亮。用定時器

38、T0,定時50ms,模式1,加軟件延時到2s。TMOD=00000001=01Hfosc=12MHzT0計數初值X=10000H-12X50X103/12=3CB0H用RO軟件計數2s/50ms=40ORG0000HAJMPMAINORG0003HAJMPTNTMAIN:MOVTMOD,#01HMOVIE,#81HBT:CLRP1.0SJMPBTTNT:CPLP1.0MOVRO,#40LP:MOVTH0,#3CH;如果是11.0592MHZ貝UTH0=4BHTL0=FEHMOVTL0,#0B0H;如果是6MHZ貝UTH0=9EHTL0=58HSETBTR0JNBTF0,$CLRTF0DJNZR

39、0,LPJNBP3.2,TNTRETI18句數碼管顯示(高電實操題3104)利用8031串行和74LS164驅動一個數碼管,要求:數碼管依次按指定的順序循環并顯示數字。例如:規定按1、3、5、7、9、2、4、6、8、0、A、B、C、D、E、F、-、P、熄滅順序循環顯示。法一.START:MOVSCON,#00HMOVR0,#0MOVDPTR,#TABLP:MOVA,R0MOVCA,A+DPTRMOVSBUF,AJNBTI,$CLRTIINCR0ACALLDELYCJNER0,#20,LPSJMPSTARTTAB:DB06H,4FH,6DH,07H,6FH,5BH,66H,7DH,7FH,3FH(共陰)DB77H,7CH,39H,5EH,79H,71H,40H,73H,80H,00HDELY:MOVR4,#10;延時0.5s子程序(fosc=12MHz)RETMOVR0,#20HMOVR1,#19MOV34H,R0MOV35H,R0START:INCR0MOVA,R0CJNEA,34H,MSJMPEXITM:JCNNSEXITMOV34H,ASJMPEXITCJNEA,35H,SSJMPEXITJNCEXITMOV35H,A:D

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論