單片機課程設計報告_第1頁
單片機課程設計報告_第2頁
單片機課程設計報告_第3頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、成都理工大學單片機課程設計報告姓名:XXX班級:測控一班學號:XXXXXXXXXXXXX日期:2011年12月一.系統(tǒng)設計要求1, 基本參數(shù):電源電壓:DC5V 系統(tǒng)時鐘:6MHZ 鍵盤:4X 4行列式鍵盤顯示輸出:4位數(shù)碼管和24只發(fā)光二極管動態(tài)顯示擴展口: 1個2,電路特點:輸入:采用4X4行列式鍵盤輸入,各按鍵的功能可根據(jù)用戶需要定義,從而編寫從簡單到復雜的應用試驗 程序,特別適合編寫和調(diào)試子程序。輸出:4位數(shù)碼管與24只發(fā)光二級管采用動態(tài)顯示方式,既可學習動態(tài)顯示的編程方法,還可以熟悉定時 中斷的編程方法。拓展口 :利用P3 口作為擴展口,既可作I/O 口擴展,也可利用其第二功能進行擴

2、展,應用靈活,可擴展性 強。例如用串口可簡單實現(xiàn)全雙工串口通訊,再加上 INTO、INT1、TO、T1 口可實現(xiàn)外中斷和計數(shù)功能。 3,例程使用說明:本電路板上的按鍵,定義了數(shù)字鍵 09和功能鍵F114及“ +”、“- ”鍵,需使單片機實現(xiàn)如下功能:F1:計算功能按F1鍵進入計算功能,數(shù)據(jù)與顯示歸零,按數(shù)字鍵輸入數(shù)據(jù),按“+”、“-”進行加減運算,數(shù)碼管顯示鍵入數(shù)據(jù)或運算結果。F2:時鐘功能按F2鍵后進入時鐘顯示,數(shù)碼管顯示為時間狀態(tài)F3:時間設置功能按F3鍵進入時間設置功能,當前設置位閃爍,鍵入數(shù)字設定時間,設定完成后按F2確認。F4:跑馬燈功能按F4鍵有四種跑馬燈模式循環(huán)切換,當然也可以通

3、過編程實現(xiàn)更多的樣式。系統(tǒng)硬件設計1 硬件設計思路根據(jù)系統(tǒng)設計要求所規(guī)定的硬件硬件設計、實驗。進行必要的工藝結構設計,制作出印刷電路板,組 裝后即完成了硬件設計2.硬件電路組成及原理圖系統(tǒng)主要由一塊AT89C51芯片、電源電路、時鐘電路和復位電路組成最小系統(tǒng),由一個4X4行列式鍵盤、4位七段數(shù)碼管、24個發(fā)光二級管擴展外設及一個 8 口的IC插座連接INT0、INT1、T0、T1、RXD TXD電源和地端。流程圖:開始初始化時鐘、標識位初始化 調(diào)用鍵入測試子程序有鍵輸入調(diào)用顯示子程序計算開啟時鐘開啟調(diào)用計算子程序調(diào)用時鐘子程序按F1鍵進入計算顯示按F2鍵進入時鐘顯示按數(shù)字鍵0-9輸入數(shù)據(jù)按F3

4、鍵進入時間設置功能按+、-進行加減運算鍵入數(shù)字設定時間顯示數(shù)據(jù)或結果結束按F2確定學習幫手.系統(tǒng)程序設計用等值偽指令定義SUDATOO EQU 40H ;力(減數(shù))SUDAT01 EQU 41HSUDAT02 EQU 42HSUDAT03 EQU 43HSUDAT10 EQU 44H ;力卩(被減數(shù))SUDAT11 EQU 45HSUDAT12 EQU 46HSUDAT13 EQU 47HDISPDAT0 EQU 29H ;顯示數(shù)據(jù)區(qū)DISPDAT1 EQU 2AHDISPDAT2 EQU 2BHDISPDAT3 EQU 2CHDISPDAT4 EQU 2DHDISPDAT5 EQU 2EHD

5、ISPDAT6 EQU 2FHDISPLONG EQU 31H ;顯示長度 DISPCON EQU 32H ;顯示計位 KEYDAT EQU 30H ;鍵碼 HOURH EQU 34H ;時間數(shù)據(jù) HOURL EQU 35HMINH EQU 36HMINL EQU 37HLEDMOD EQU 39H ;流水燈模式 SUCON EQU 3AH ;輸入計數(shù) SUBIT EQU 20H.1 ;減標示 DP EQU 20H.2 ;秒顯標示 KEYBIT EQU 20H.3 ;有鍵碼標示 SU EQU 20H.4 ;計算標示 TIME EQU 20H.5 ;時間標示 TIMESET EQU 20H.6

6、;時間設置標示主程序:ORG 0000HAJMP STARTORG)003HRETIORG)00BHAJMP TIME0ORC0013HRETIORC001BHLJMP TIME1ORC0O23H RETIORC0050HSTART:MOA,#00HMOVR0,#20HMOVR1,#30HLOOP0:MOR0,AINC R0DJNZ R1,LOOP0MOVSP,#50HMOVDISPLONG,#O7SETBRS0SETBRS1MOVR0,#DISPDAT0MOVR2,#200MOVR3,#120MOVR4,#00MOVR5,#00MOVR6,#0FEHMOVR7,DISPLONGCLRRS0M

7、OVR2,#50MOVR3,#30CLRRS1MOVLEDMOD,#02MOVDISPLONG,#07MOVDISPCON,#07MOVKEYDAT,#0FFHSETBTIMEMOVTL0,#0AH ;1EMOVTH0,#0F7HMOVE,#8AH1;開 T0, T1,t-t r 、亠 r、MOVMOD,#11H;定時方式SETBTR0MOVTL1,#00H ;MOVTH1,#0DCHSETBTR1MAIN:ACALLKEYJNBKEYBIT,MAIN1定時2.5MS定時10MSACALL DOKEYMAIN1:JB TIME,MAIN2JB TIMESET,MAIN2JB SU,MAIN3M

8、AIN2: MOV RO,#HOURHMOV R1,#DISPDAT0MOV R2,#04HMAINLOOP:MOV A,R0;時間轉七段碼送顯示數(shù)據(jù)區(qū)MOV DPTR,#TABMOVC A,A+DPTRMOV C,DPMOV ACC.7,CMOV R1,AINC R0INC R1DJNZ R2,MAINLOOPSJMP MAINMAIN3:MOV R0,#SUDAT00 ;計算數(shù)轉段碼送顯區(qū)MOV R1,#DISPDAT0MOV R2,#04HSJMP MAINLOOPTAB:DB 40H,79H,24H,30H,19HDB 12H,02H,78H,00H,10HDB 7FH,7FH,7FH

9、,7FH,7FH,7FH;0A-0FF全黑子程序:(1) 顯示子程序R0顯示數(shù)址,R6位選值,R7顯示計數(shù)QISPL0NG顯示數(shù)長度QISPDATA0顯示數(shù)據(jù)區(qū)首址DISPLAY:MOVP2,#0FFHMOVP0,R0MOVP2,R6INCR0DJNZR7,DISPLAY1MOVR7,DISPLONGMOVR0,#DISPDAT0MOVR6,#0FEHSJMPDISPOUTDISPLAY1:MOV A,R6RL AMOV R6,ADISPOUT:RET(2) 鍵盤掃描程序KEYDA存放鍵碼,雙鍵按下只認前鍵,KEYBIT有鍵標示KEY:MOV P1,#0F0HMOV A,P1ORL A,#0F

10、HXRL A,#0FFHJZ KEYOUT0MOV A,#60HLCALL DELAYMOV P1,#0F0HMOV A,P1ORL A,#0FHXRL A,#0FFHJZ KEYOUT0MOV P1,#0FEH ;KEYDAT存放鍵碼JNB P1.4,KEY1JNB P1.5,KEY2JNB P1.6,KEY3JNB P1.7,KEY4MOV P1,#0FDHJNB P1.4,KEY5JNB P1.5,KEY6JNB P1.6,KEY7JNB P1.7,KEY8MOV P1,#0FBHJNB P1.4,KEY9JNB P1.5,KEY10JNB P1.6,KEY11JNB P1.7,KEY1

11、2MOV P1,#0F7HJNB P1.4,KEY13JNB P1.5,KEY14JNB P1.6,KEY15JNB P1.7,KEY16MOV KEYDAT,#0FFHCLR KEYBITKEYOUT0:AJMP KEYOUT1KEY1:MOV KEYDAT,#OAHSJMP KEYOUTKEY2:MOV KEYDAT,#09HSJMP KEYOUTKEY3:MOV KEYDAT,#08HSJMP KEYOUTKEY4:MOV KEYDAT,#07HSJMP KEYOUTKEY5:MOV KEYDAT,#OBHSJMP KEYOUTKEY6:MOV KEYDAT,#06HSJMP KEYOU

12、TKEY7:MOV KEYDAT,#05HSJMP KEYOUTKEY8:MOV KEYDAT,#04HSJMP KEYOUTKEY9:MOV KEYDAT,#0CHSJMP KEYOUTKEY10:MOV KEYDAT,#03HSJMP KEYOUTKEY11:MOV KEYDAT,#02HSJMP KEYOUTKEY12:MOV KEYDAT,#01HSJMP KEYOUTKEY13:MOV KEYDAT,#0DHSJMP KEYOUTKEY14:MOV KEYDAT,#0EHSJMP KEYOUTKEY15:MOV KEYDAT,#00HSJMP KEYOUTKEY16:MOV KEYD

13、AT,#OFH KEYOUT:SETB KEYBITMOV P1,#0F0HMOV A,P1ORL A,#0FHXRL A,#0FFHJNZ KEYOUTMOV A,#100HLCALL DELAYKEYOUT1:RET(3)鍵盤處理,SU計算標志,TIME時間標志,TIMSET時間設置標志;SUCOF計算輸入位數(shù),TSETCON時間設置位數(shù)QISPCON顯示位數(shù);SUDAT00-03加數(shù)(減數(shù)),SUDAT10-13加數(shù)(被減數(shù));LEDMO流水燈模式,TSETCON時間設置位數(shù) QISPCON1示位數(shù) ;ADDBIT加法標示,SUBBIT減法標示DOKEY:MOVA,KEYDATCLRCS

14、UBBA,#10H;大于16為錯碼JNCDONEXTCLRCMOVA,KEYDATSUBBA,#0AH ;大于10為功能鍵,小于10為數(shù)字鍵JC NEXTMOVB,#03MULABMOVDPTR,#DOFKEY ;功能鍵處理JMPA+DPTRDOFKEY:LJMPDOFKEY1LJMPDOFKEY2LJMPDOFKEY3LJMPDOFKEY4LJMPDOFKEY5LJMPDOFKEY6NOPNOPDONEXT:LJMP DOKEYOUT NEXT:LJMP DOSKEYDOFKEY1:;LCALL TIMDBJNB TIMESETQOFKEY11PUSH PSWSETB RS0SETB RS1

15、MOV R2,#200MOV R3,#120POP PSWDOFKEY11:SETB SU;SUCLR TIME;TIMECLR TIMESET;TIMSETMOV SUCON,#04H;SUCONSETB DP計算功能計算標志時間標志 時間設置標志 計算輸入位數(shù)CLR SUBITMOV SUDAT00,#00HMOV SUDAT01,#00HMOV SUDAT02,#00HMOV SUDAT03,#00HMOV SUDAT10,#00HMOV SUDAT11,#00HMOV SUDAT12,#00HMOV SUDAT13,#00H LJMP DOKEYOUT DOFKEY2:;計時功能LCA

16、LL TIMDBJNB TIMESET,DOFKEY21PUSH PSWSETB RS0SETB RS1MOV R2,#200MOV R3,#120POP PSW DOFKEY21:SETB TIMECLR SUCLR TIMESETMOV SUCON,#00HSETB DPLJMP DOKEYOUTDOFKEY3:;時間設置功能LCALL TIMDBSETB TIMESETCLR TIMECLR SUMOV SUCON,#OOHSETB DPLJMP DOKEYOUTDOFKEY4:;流水燈功能MOV A,L EDMODCLR CSUBB A,#01HJNC DOFKEY40MOV LEDM

17、OD,#03MOV DISPLONG,#04HLJMP DOKEYOUTDOFKEY40:MOV LEDMOD,A顯示位數(shù)MOV DISPLONG,#07H ;DISPLONGMOV A,L EDMODCJNE A,#02H,DOFKEY41MOV DISPDAT4,#00HMOV DISPDAT5,#00HMOV DISPDAT6,#00HLJMP DOKEYOUTDOFKEY41:MOV DISPDAT4,#24HMOV DISPDAT5,#92HMOV DISPDAT6,#49HLJMP DOKEYOUTDOFKEY5:;加號處理MOV R4,SUDAT00MOV R5,SUDAT01M

18、OV R6,SUDAT02MOV R7,SUDAT03MOV R0,SUDAT10MOV R1,SUDAT11MOV R2,SUDAT12MOV R3,SUDAT13LCALL BADDMOV SUCON,#04HCLR SUBITLJMP DOKEYOUTD0FKEY6:;減號處理MOV R4,SUDAT00MOV R5,SUDAT01MOV R6,SUDAT02MOV R7,SUDAT03MOV R0,SUDAT10MOV R1,SUDAT11MOV R2,SUDAT12MOV R3,SUDAT13LCALL BADDMOV SUCON,#04HSETB SUBITLJMP DOKEYOU

19、T DOSKEY:;JB SU,DOSKEY1JB TIMESETQOSKEY2 ;LJMP DOKEYOUTDOSKEY1:MOV A,SUCONCJNE A,#04H,DOSKEY10MOV SUDAT00,#00HMOV SUDAT01,#00HMOV SUDAT02,#00HMOV SUDAT03,#00H DOSKEY10:MOV A,SUCONJZ DOKEYOUTMOV SUDAT00,SUDAT01MOV SUDAT01,SUDAT02MOV SUDAT02,SUDAT03MOV SUDAT03,KEYDATDEC SUCONLJMP DOKEYOUT DOSKEY2:MOV

20、A,SUCON ;ADD A,SUCONMOV DPTR,#DOSKEY20JMP A+DPTR DOSKEY20:SJMP DOSKEY21SJMP DOSKEY22數(shù)字鍵處理時間設定設定時間SJMP DOSKEY23SJMP DOSKEY24D0SKEY21:MOV A,KEYDAT ; 設定小時高位CLR CSUBB A,#03JNC DOKEYOUTMOV HOURH,KEYDATSJMP DOSKEY25DOSKEY22:MOV A,HOURH ; 設定小時低位CJNE A,#02,NE1MOV A,KEYDATCLR CSUBB A,#4JNC DOKEYOUTNE1:MOV HO

21、URL,KEYDATSJMP DOSKEY25DOSKEY23:MOV A,KEYDAT ;設分高位CLR CSUBB A,#6JNC DOKEYOUTMOV MINH,KEYDATSJMP DOSKEY25DOSKEY24:MOV MINL,KEYDAT ;設分低位DOSKEY25:LCALL SU10T08LCALL TIMDBINC SUCONMOV A,SUCONCLR CSUBB A,#4JC DOKEYOUTMOV SUCON,#00HDOKEYOUT:CLR KEYBITMOV KEYDAT,#0FFH ;0FFH為無鍵碼指示RET(4) TIME0;用第三組寄存器,MINL分鐘

22、低位,MINH分鐘高位;HOURL小時低位,HOURHJ、時高位TIME0:;T0計時PUSHACCMOVF0,CPUSHPSWSETBRS0SETBRS1MOVTL0,#0AH ;1E定時2.5MSMOVTH0,#0F7HSETBTR0ACALL DISPLAY ;0.25MS顯示一位DJNZR2,TIMEOUTMOVR2,#200;200*0.25MS=0.5SJBSU,TIME00CPLDPTIME00:DJNZR3,TIMEOUTMOVR3,#120;120*0.5S=60SINCR4;R4計分鐘值,滿60向MOVA,R4CLRCSUBBA,#60JCTIME01MOVR4,#00IN

23、CR5;R5計小時值TIME01:MOVA,R4 ;將R5值化為十進制數(shù)MOVB,#10DIVABMOVMINH,AMOVMINL,BMOVA,R5CLRCSUBBA,#24JCTIME02MOVR5,#00TIME02:MOVA,R5MOVB,#10DIVABMOVHOURH,AMOVHOURL,BTIMEOUT:R5進位;R4分鐘數(shù)60,R5小時數(shù)24 ,R2為2.5MS計數(shù),R3為0.5S計數(shù);DP秒閃標示POP PSWMOV C,PSW.1POP ACC(5)TIME1TIME1:;T1PUSHACC;R:MOVF0,C;r3PUSHPSW;FCLRRS0;SETBRS1MOVTL1,

24、#00H;MOVTH1,#0DCHSETBTR1JNBTIMESET,TI10DJNZR2,TI10MOVR2,#50MOVA,SUCONMOVR0,#HOURHADDA,R0MOVR0,AMOVA,R0CJNEA,#0AH,TI11MOVA,R4MOVR0,ASJMPTI10MOVA,R0MOVR4,AMOVR0,#0AHMOVA,L EDMODCJNEA,#02H,TI12DJNZR3,TI1OUTMOVR3,#15ACALLLEDSJMPTI1OUTDJNZR3,TI1OUTMOVR3,#60ACALLLEDRETITI11TI10TI12計時,用于跑馬燈和控制時間設置閃爍 計數(shù)時間閃爍

25、頻率 計數(shù)跑馬燈頻率 保存時間閃動初值 第二組寄存器定時10MSTI1OUT:POP PSWMOV C,PSW.1POP ACCRETI(6) DELAYDELAY:;PUSH ACCDELAY1:DJNZ ACC,$POP ACCDJNZ ACC,DELAYRET(7)流水燈子程序 LEDMO模式,流水燈數(shù)據(jù)在LED:MOV A,L EDMODADD A,L EDMODMOV DPTR,#LED0JMP A+DPTRLED0:SJMP MODL1SJMP MODL2SJMP MODL3MOV DISPLONG,#O4HRETRETMODL1:MOV C,DISPDAT6.7 ;MOV A,D

26、ISPDAT4RLC AMOV DISPDAT4,AMOV A,DISPDAT5RLC AMOV DISPDAT5,AMOV A,DISPDAT6RLC AMOV DISPDAT6,ARETMODL2:MOV C,DISPDAT4.0 ;MOV A,DISPDAT6RRC AMOV DISPDAT6,AMOV A,DISPDAT5延時程序,時間常數(shù)在ACCDISPDAT4-6右移動左移動RRC AMOV DISPDAT5,AMOV A,DISPDAT4RRC AMOV DISPDAT4,A RETMODL3:燈從左全亮后又到全滅MOV CQISPDAT4.7 ;CPL CMOV A,DISPD

27、AT5RLC AMOV DISPDAT5,AMOV A,DISPDAT6RLC AMOV DISPDAT6,AMOV A,DISPDAT4RLC AMOV DISPDAT4,A RET(8) 十進制加法子程序 ;入口 R0-3,R4-7,出口 R4-7SUADD:MOVA,R3ADDA,R7DAAMOVC,ACC.4ANLA,#0FHMOVR7,AMOVA,R2ADDCA,R6DAAMOVC,ACC.4ANLA,#0FHMOVR6,AMOVA,R1ADDCA,R5DAAMOVC,ACC.4ANLA,#0FHMOVR5,AMOVA,R0ADDCA,R4DAAMOV R4,ARET(9) DOBM

28、求補碼DOBM:; 求補碼MOV A,#99HCLR CSUBB A,R4MOV R4,AMOV A,#09HCLR CSUBB A,R5MOV R5,AMOV A,#09HCLR CSUBB A,R6MOV R6,AMOV A,#0AHCLR CSUBB A,R7MOV R7,ARET(10) BUM負數(shù)顯示數(shù)BUM:;負數(shù)顯示數(shù)(補碼還原)MOVA,#99HCLRCSUBBA,R4MOVR4,AMOVA,#09HCLRCSUBBA,R5MOVR5,AMOVA,#09HCLRCSUBBA,R6MOVR6,AMOVA,#09HCLRCSUBBA,R7MOVR7,AMOVR0,#00HMOVR1

29、,#00HMOVR2,#00HMOVR3,#01HACALLSUADDANL A,#OFHMOV R4,ARET(11) BADD帶符號十進制加法BADD:;帶符號十進制加法JNB SUBIT,BADD1 ACALL DOBM ;BADD1:ACALL SUADD ;負時求補碼相加ANL A,#0E0HJZ BADD2MOVA,R4ANLA,#0FHORLA,#90HMOVR4,AMOVSUDAT10,R4MOVSUDAT11,R5MOVSUDAT12,R6MOVSUDAT13,R7ACALL BUMMOVSUDAT00,R4MOVSUDAT01,R5MOVSUDAT02,R6MOVSUDAT

30、03,R7RETBADD2:MOVA,R4ANLA,#0FHMOVR4,AMOVSUDAT10,R4MOVSUDAT11,R5MOVSUDAT12,R6MOVSUDAT13,R7MOVSUDAT00,R4MOVSUDAT01,R5MOVSUDAT02,R6MOVSUDAT03,R7RET(12)十進制化為SU10T08:;PUSHPSWSETBRS0SETBRS1MOV A,HOURH16進制十進制化為16進制MOVB,#10MULABADDA,HOURLMOVR5,AMOVA,MINHMOVB,#10MULABADDA,MINLMOVR4,APOPPSWRET(13)將時間計數(shù)化為十進制TIMDBJ將時間計數(shù)化為十進制PUSHPSWSETBRS0SETBRS1MOVA,R4 ;將R4值化為十進制數(shù)MOVB,#10DIVABMOVMINH,AMOVMINL,BMOVA,R5 ;MOVB,#10DIV AB將R5值化為十進制數(shù)MOV HOURH,AMOV HOURL,BPOP PSWRETEND四調(diào)試與下載啟動Keil u Vision,在界面新建一個工程項目,再設置好工程項目軟硬件調(diào)試環(huán)境,編譯程序聯(lián)機調(diào)試。在Proteus中按照原理圖放置元器件,設置好各項參數(shù),連接好電路圖后,把

溫馨提示

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

評論

0/150

提交評論