




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、單片機原理及其應用課程設計(報告) 單片機課程設計報告課題名稱:單片機原理與應用課程設計學院(部):電氣與信息工程學院專 業(yè):電子信息工程 班 級:電信1203班 學生姓名: 學 號: 指導老師: 賀正蕓目 錄一設計任務與要求1. 主要任務及目標2. 單片機最小系統(tǒng)硬件資源介紹二總體設計方案1. 設計思路2. 芯片功能介紹3. 255計數器程序流程圖45000計數程序流程圖.5出租車計費系統(tǒng)程序流程圖三程序的設計1. 255計數器程序設計2.50000計數程序設計2. 出租車計費程序設計四 硬件仿真圖1. 255計數器硬件仿真2.50000計數器硬件仿真2. 出租車計費系統(tǒng)硬件仿真五設計體會一
2、設計任務與要求1. 主要任務及目標11 外部脈沖自動計數,自動顯示。111設計一個255計數器:0255計數,計滿后自動清0,重新計數(在數碼管中顯示)。112設計一個50000計數器:050000計數,計滿后自動清0,重新計數(在數碼管中顯示)。12 設計一個出租車計費系統(tǒng): 起步價為5元(2km以內),2km后,0.8元/0.5km;要求每500m刷新計費一次,在8位數碼管中,前4位顯示數碼管顯示里程數,后4位數碼管顯示價錢(角,元,十元,百元)2、單片機最小系統(tǒng)硬件資源介紹:二總體設計方案1. 設計思路 1、255計數:255可用8位二進制數表示,故本設計可直接采用可以重裝載的計數器T1
3、模式二進行計數。然后對TL1的內容進行相應的二進制-十進制轉換:首先TL1的內容除以64H,所的商就是十進制的百位,然后用余數除以0AH,所得的商就是十進制數的十位,余數即相應的十進制的個位。接著將相應的十進制數進行譯碼,并在LED數碼管上顯示出來。每來一個脈沖其顯示的結果加一,直加至255然后T1重新開始計數。20-5000計數由于50000計數采用八位寄存器顯然會一處,因此設計時數器T0采用工作方式1外部計數,16位寄存器技術范圍到65536,符合50000計數的需要。然后通過數據轉換,將計數器的值轉換成為十進制數,通過數碼管顯示。2、出租車計費系統(tǒng):本設計所設計的出租車數字計數器的主要功
4、能有:金額輸出、路程輸出、數據復位、計時計價等。輸出采用2個4位8段共陽數碼管,車輛行走時前4位顯示路程,后4位顯示金額。起步價為5元(2km以內),2km后,0.8元/0.5km;要求每500m,刷新計費一次。2. 芯片功能介紹AT89S51是一款低功耗、高性能CMOS8位微控制器,具有4K可編程 Flash存儲器。使用 Atmel 公司高密度非易失性存儲器技術制造,與工業(yè) 80C51 產品指令和引腳完全兼容。AT89S51具有以下標準功能:4K字節(jié)Flash, 256字節(jié)RAM,32 位 I/O 口線,看門狗定時器,2 個數據指針,三個 16 位定時器/計數器,一個6向量 2級中斷結構,全
5、雙工串行口,片內晶振及時鐘電路。其引腳如圖3-2所示,下面簡要介紹其引腳功能:圖 1 AT89S51引腳圖VCC:電源。本設計中接電源正極。GND:地。本設計中接電源負極。P0口:P0口是一個8位漏極開路的雙向I/O口。作為輸出口,每位能驅動8個TTL邏輯電平。對P0端口寫"1"時,引腳用作高阻抗輸入。P1口:P1口是一個具有內部上拉電阻的8 位雙向I/O口,P1輸出緩沖器能驅動4個TTL邏輯電平。對 P1 端口寫"1"時,內部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內部電阻的原因,將輸出電流。P2口:P2口是一個
6、具有內部上拉電阻的8位雙向I/O口,P2輸出緩沖器能驅動4個TTL邏輯電平。對P2端口寫"1"時,內部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內部電阻的原因,將輸出電流。P3口:P3口是一個具有內部上拉電阻的8位雙向I/O口,P3輸出緩沖器能驅動4個TTL邏輯電平。對P3端口寫"1"時,內部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內部電阻的原因,將輸出電流。RST:復位輸入。晶振工作時,RST腳持續(xù)2個機器周期高電平將使單片機復位??撮T狗計時完成后,RST腳輸出96個晶振周期
7、的高電平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能無效。DISRTO默認狀態(tài)下,復位高電平有效。EA/VPP:訪問外部程序存儲器控制信號。為使能從0000H到FFFFH的外部程序存儲器讀取指令,EA必須接GND。為了執(zhí)行內部程序指令,EA應該接VCC。本設計中不需要外部程序存儲器,因此需接高電平。ALE/PROG:地址鎖存控制信號(ALE)是訪問外部程序存儲器時,鎖存低8位地址的輸出脈沖。PSEN:外部程序存儲器選通信號(PSEN)是外部程序存儲器選通信號。當AT89S52從外部程序存儲器執(zhí)行外部代碼時,PSEN在每個機器周期被激活兩次,而在訪問外部數據存儲器時,PSEN
8、將不被激活。XTAL1:振蕩器反相放大器和內部時鐘發(fā)生電路的輸入端。XTAL2:振蕩器反相放大器的輸出端。3. 255計數程序流程圖開始初始化堆棧,定時器初始化清零相關RAM地址單元TF1=1?調用顯示子程序脈沖數加1即20H加120H=100?21H加120清零計算出脈沖數的個,十,百位分別存放于30H,31H,32H(20H=54)&(21H=2?)脈沖數計到255后重新計數即20H,21H清零說明:1. 20H存放脈沖的個位和十位數值,21H存放脈沖的百位和千位數值。 2.計算脈沖數的個位和十位數值:(20H)/10的商即十位數值存放于31H,余數即個位數值存放于30H。 3.
9、計算脈沖數的百位數值:(20H)/10的余數即百位數值存放于32H。例如:脈沖數212(十進制),(20H)=12,(21H)=2。脈沖的個位數值(30H)=2, 脈沖的十位數值(31H)=1, 脈沖的百位數值(32H)=2. 圖2 255計數程序流程圖0-50000計數流程圖開始初始化,T0初始化,設置延時TF1=1?調用顯示子程序脈沖數加1計數是否大于50000計數清0計算出脈沖數的個,十,百位,千位萬位(20H=54)&(21H=2?)脈沖數計到50000后從新計數4. 出租車計費程序流程圖開始初始化堆棧,8279,定時器清零相關RAM地址單元TF1=1?調用顯示子程序里程數加1
10、即24H加124H=500?25H加124清零計算里程數的個,十,百,千位數值分別存放于24H,25H,26H,27H(24H=99?)&(25H=99?)里程數計到500后重新計數即24H,25H清零說明:1.里程數存放于24H,25H中,其中24H存放脈沖的個位和十位數值,25H存放脈沖的百位和千位數值。 2.計算里程數的個位和十位數值:(24H)/10的商即十位數值存放于26H,余數即個位數值存放于27H。 3. 計算里程數的百位數值:(21H)/10的商即千位數值存放于33H,余數即百位數值存放于32H。例如:里程數6798(十進制),(24H)=98,(25H)=1。里程的個
11、位數值(30H)=8, 里程的十位數值(31H)=9,. 里程的百位數值(32H)=7,里程的千位數值(33H)=6計算價格(22H)-20/5商24H,余數23H(20H)=0?價格(25H)=商(24H)9+50價格(25H)= 商(24H)+19+50(23H)=0?價格的各位數值分別存放于20H,21H,22H,23H中(22H)-20<0?價格顯示為5.0三設計程序1、255計數器程序編輯:ORG 0000H SJMP MAIN ORG 0030HMAIN: MOV TMOD,#50H ;定時器 T1初始化(T1計數模式) MOV 70H,#00H ;保存?zhèn)€位 MOV 71H,
12、#00H ;保存十位 MOV 72H,#00H ;保存百位 SETB TR1 ;啟動T1LOOP: MOV A,TL1 ACALL BCD ;調用BCD碼調整子程序 ACALL OUT ;調用顯示子程序 SJMP LOOP RETLACLL BCD: ;BCD碼調整子程序 MOV B,#64H DIV AB MOV 72H,A ;保存百位 MOV A,B MOV B,#0AH DIV AB MOV 71H,A ;保存十位 MOV 70H,B ;保存?zhèn)€位 RETLACLL OUT: ;顯示子程序 MOV R1,#70H MOV R5,#00H MOV DPTR,#TABLOOP1: MOV A,
13、R5 MOV P2,A MOV A,R1 MOVC A,A+DPTR MOV P0,A ACALL DELAY INC R1 INC R5 CJNE R5,#03H,LOOP1 RET MOV DELAY,#15 ;延時15ms子程序 MOV R7,#31 L1: MOV R6,#240 W1: DJNZ R6,W1 DJNZ R7,L1 MOV R4,#11 J1: DJNZ R4,J1 NOP RET2.0-50000計數的程序編輯ORG 0000H SJMP START ORG 0030H START : MOV DPTR,#0CFE9H /擦出數據 MOV A,#0D1H MOVX D
14、PTR,A NOP NOP NOP NOP NOP NOP NOP NOP MOV TL1,#0FFH /賦初始值及工作方式 MOV TH1,#0FFH MOV TMOD,#50H SETB TR1LOOP:MOV R0, TL1 MOV R1, TH1 LJMP HEXTOBCD /16進制轉10進制字程序CAOZUO:MOV A, R4 /把萬千百十個位分別存入R4 R3 R2 R1 R0。 MOV B, #16 DIV AB MOV R1, A MOV R0, B MOV A, R2 MOV R4, A MOV A, R3 MOV B, #16 DIV AB MOV R3, A MOV
15、R2, B IGHTA:MOV DPTR,#0CFE9H /選擇數碼管第一個燈并顯示出萬位 MOV A,#80H MOVX DPTR,A MOV DPTR,#TAB MOV A,R4 MOVC A,A+DPTR MOV DPTR,#0CFE8H MOVX DPTR,A CLR ALIGHTB:MOV DPTR,#0CFE9H / 選擇數碼管第二個燈并顯示出千位 MOV A,#81H MOVX DPTR,A MOV DPTR,#TAB MOV A,R3 MOVC A,A+DPTR MOV DPTR,#0CFE8H MOVX DPTR,A CLR ALIGHTC:MOV DPTR,#0CFE9H
16、/ 選擇數碼管第三個燈并顯示出百位 MOV A,#82H MOVX DPTR,A MOV DPTR,#TAB MOV A,R2 MOVC A,A+DPTR MOV DPTR,#0CFE8H MOVX DPTR,A CLR A LIGHTD:MOV DPTR,#0CFE9H / 選擇數碼管第四個燈并顯示出十位 MOV A,#83H MOVX DPTR,A MOV DPTR,#TAB MOV A,R1 MOVC A,A+DPTR MOV DPTR,#0CFE8H MOVX DPTR,A CLR A LIGHTE:MOV DPTR,#0CFE9H /選擇數碼管第五個燈并顯示出個位 MOV A,#84
17、H MOVX DPTR,A MOV DPTR,#TAB MOV A,R0 MOVC A,A+DPTR MOV DPTR,#0CFE8H MOVX DPTR,A CLR A LJMP LOOP TAB:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH HEXTOBCD: CLR A /清零 MOV R2, A MOV R3, A MOV R4, A MOV R5, #16 /共轉換十六位數 ZH: CLR C MOV A, R0 /從待轉換數的高端移出一位到Cy RLC A MOV R0, A MOV A, R1 RLC A MOV R1, A MOV A,
18、R4 / 送到BCD碼的低端 ADDC A, R4 / 帶進位加。自身相加,相當于左移一位 DA A /十進制調整,變成BCD碼 MOV R4, A MOV A, R3 ADDC A, R3 DA A MOV R3, A MOV A, R2 ADDC A, R2 MOV R2, A DJNZ R5, ZH /共轉換十六位數 LJMP CAOZUO /已經把TH1 TL1中的數字,轉換成BCD碼,送到了R2 R3 R43出租車計費系統(tǒng)程序:ORG 0000H ;匯編起始地址JMP MAIN ;無條件轉移到主程序ORG 0030H ;主程序的存放地址MAIN: MOV 20H,#0H ;20H存放
19、價格的角位 MOV 21H,#0H ;21H存放價格的元位 MOV 22H,#0 ;22H存放價格的十元位MOV 23H,#0 ;23H存放價格的百元位MOV 24H,#0 ;24H存放里程的個位 MOV 25H,#0 ;25H存放里程的十位MOV 26H,#0 ;26H存放里程的百位 MOV 27H,#0 ;27H存放里程的千位 MOV 28H,#0 ;20個脈沖的存儲單元 LCALL INIT8279 ;調用初始化程序8279MOV TMOD,#05H ;設置T0計數模式1MOV TH0,#0FFH;MOV TL0,#0FFH ;設置計數初值SETB TR0 ;啟動計數器M1: LCALL
20、 DISPLAY ;調用顯示JBC TF0,M2 ;有溢出則跳轉且TF0=0SJMP M1 ;等待溢出M2: LCALL TTT ;調用脈沖子程序LCALL JIFEI;LCALL DISPLAY ;調用顯示子程序LCALL DELAY ;調用延時子程序RENEW:MOV TMOD,#05H ;設置T0計數模式1MOV TH0,#0FFHMOV TL0,#0FFH ;設置計數初值SETB TR0 ;啟動計數器SJMP M1TTT: INC 28H ;脈沖數加1 INC 24H ;里程個位加1 MOV A,24H;CJNE A,#10,RETU ;里程個位不為10則轉RETUMOV 24H,#0
21、0H ;里程個位為10則清0INC 25H;里程十位加1MOV A,25HCJNE A,#10,RETU;里程十位不為10則轉RETUMOV 25H,#00H ;里程十位為十則清0INC 26H;里程百位加1MOV A,26HCJNE A,#10,RETU;里程百位不為10則轉RETUMOV 26H,#00H;里程百位為十則清0INC 27H;里程千位加1MOV A,27HCJNE A,#10,RETU;里程千位不為10則轉RETUMOV 27H,#00H;里程千位為十則清0LJMP RETURETU:NOP;空操作RET ;返回JIFEI:MOV A,28H;將脈沖數送ACLR C;將進位清
22、0CJNE A,#20,NEXT0;脈沖數不為0則轉RETNEXT0:JNC NEXT;CY=0無進位則轉NEXTRETNEXT:MOV A,28HMOV B,#5DIV AB;將脈沖數除5MOV 29H,B;余數送BMOV A,29H;商送AJZ NEXT1;商為0則轉RETNEXT1:MOV A,20HCJNE A,#0,NEXT4;角不為0轉ADD A,#8 ;將角加8角MOV 20H,A;將角送20H RETNEXT4:MOV 20H,AADD A,#8;將角加8角SUBB A,#10;將角減去10角得角MOV 20H,A;將角送20HINC 21H;元位加1MOV A,21HCJNE
23、 A,#10,RETU;元不為10轉MOV 21H,#00H;等于十則清0INC 22H;百位加1MOV A,22HCJNE A,#10,RETU;十元位不為10則轉MOV 22H,#00H;十元位為10 則清0INC 23H;百元位加1MOV A,23HRETDISLED : ;:顯示程序1PUSH DPH ;將高位入棧PUSH DPL ;將低位入棧PUSH ACC ;將累加器入棧MOV A,#LEDWRD ;送第一個數碼管地址ADD A,R4 ; 加上偏移量MOV DPTR,#Z8279 ;送控制命令字MOVX DPTR,AMOV DPTR,#LEDSEG ;送7段顯示管地址MOV A,R
24、5MOVC A,A+DPTR ;查表MOV DPTR,#D8279MOVX DPTR,APOP ACC ;將累加器出棧POP DPL ;將低位出棧POP DPH將高位出棧RETDISLED1:PUSH DPH ;將高位入棧PUSH DPL ;將低位入棧PUSH ACC ;將累加器入棧MOV A,#LEDWRD ;送第一個數碼管地址ADD A,R4MOV DPTR,#Z8279 ;送控制命令字MOVX DPTR,AMOV DPTR,#LEDSEG1 ;送7段顯示管地址MOV A,R5MOVC A,A+DPTR ;查表MOV DPTR,#D8279MOVX DPTR,APOP ACC ;將累加器出棧POP DPL ;將低位出棧POP DPH ;將高位出棧 RETDELAY : ;延時子程序 MOV R7,#1DEL1: MOV R2,#1 DJNZ R2,$ DJNZ R7,DEL1 RETLEDSEG: ;LED顯示段選碼(不帶點顯示) DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FHLEDSEG1: ;LED顯示段選碼(帶點顯示)DB 0BFH,86H,0DBH,0CFH,0E6H,0EDH,0FDH,87H,0FFH,0EFH END四、硬件仿真圖1、25
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 上海市12校聯考2025年高三下學期生物試題綜合練習三含解析
- 四川省甘孜市2025年高三考前第二次模擬考試歷史試題含解析
- 南寧師范大學師園學院《小學教師語技能》2023-2024學年第二學期期末試卷
- (三檢)南平市2025屆高中高三畢業(yè)班第三次質量檢測英語試卷(含答案)+聽力音頻
- 錫林郭勒市重點中學2025年高三階段性調研測試物理試題不含附加題含解析
- 西安航空職業(yè)技術學院《食品質量與安全控制》2023-2024學年第一學期期末試卷
- 2025年視覺傳達設計職業(yè)技能考試試卷及答案
- 江西泰豪動漫職業(yè)學院《流行作曲(1)》2023-2024學年第二學期期末試卷
- 內江職業(yè)技術學院《設計基礎與形態(tài)認知》2023-2024學年第二學期期末試卷
- 武漢輕工大學《專業(yè)英語與論文檢索寫作》2023-2024學年第一學期期末試卷
- 腫瘤的化學治療
- 《項目風險評估》課件
- 北京市2024年中考道德與法治真題試卷(含答案)
- 航空航天凝膠應用
- 陜西省2024年中考化學真題(含答案)
- 2024年度危廢培訓完整課件
- 中層管理干部團隊-執(zhí)行力與領導力提升培訓課件
- 2024秋期國家開放大學《可編程控制器應用實訓》一平臺在線形考(形成任務6)試題及答案
- 2024年美容師技能競賽考試題庫備賽500題(含答案)
- 結婚函調報告表
- 廣鐵招聘機考題庫
評論
0/150
提交評論