




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、單片機(jī)原理及其應(yīng)用課程設(shè)計(報告) 單片機(jī)課程設(shè)計報告課題名稱:單片機(jī)原理與應(yīng)用課程設(shè)計學(xué)院(部):電氣與信息工程學(xué)院專 業(yè):電子信息工程 班 級:電信1203班 學(xué)生姓名: 學(xué) 號: 指導(dǎo)老師: 賀正蕓目 錄一設(shè)計任務(wù)與要求1. 主要任務(wù)及目標(biāo)2. 單片機(jī)最小系統(tǒng)硬件資源介紹二總體設(shè)計方案1. 設(shè)計思路2. 芯片功能介紹3. 255計數(shù)器程序流程圖45000計數(shù)程序流程圖.5出租車計費系統(tǒng)程序流程圖三程序的設(shè)計1. 255計數(shù)器程序設(shè)計2.50000計數(shù)程序設(shè)計2. 出租車計費程序設(shè)計四 硬件仿真圖1. 255計數(shù)器硬件仿真2.50000計數(shù)器硬件仿真2. 出租車計費系統(tǒng)硬件仿真五設(shè)計體會一
2、設(shè)計任務(wù)與要求1. 主要任務(wù)及目標(biāo)11 外部脈沖自動計數(shù),自動顯示。111設(shè)計一個255計數(shù)器:0255計數(shù),計滿后自動清0,重新計數(shù)(在數(shù)碼管中顯示)。112設(shè)計一個50000計數(shù)器:050000計數(shù),計滿后自動清0,重新計數(shù)(在數(shù)碼管中顯示)。12 設(shè)計一個出租車計費系統(tǒng): 起步價為5元(2km以內(nèi)),2km后,0.8元/0.5km;要求每500m刷新計費一次,在8位數(shù)碼管中,前4位顯示數(shù)碼管顯示里程數(shù),后4位數(shù)碼管顯示價錢(角,元,十元,百元)2、單片機(jī)最小系統(tǒng)硬件資源介紹:二總體設(shè)計方案1. 設(shè)計思路 1、255計數(shù):255可用8位二進(jìn)制數(shù)表示,故本設(shè)計可直接采用可以重裝載的計數(shù)器T1
3、模式二進(jìn)行計數(shù)。然后對TL1的內(nèi)容進(jìn)行相應(yīng)的二進(jìn)制-十進(jìn)制轉(zhuǎn)換:首先TL1的內(nèi)容除以64H,所的商就是十進(jìn)制的百位,然后用余數(shù)除以0AH,所得的商就是十進(jìn)制數(shù)的十位,余數(shù)即相應(yīng)的十進(jìn)制的個位。接著將相應(yīng)的十進(jìn)制數(shù)進(jìn)行譯碼,并在LED數(shù)碼管上顯示出來。每來一個脈沖其顯示的結(jié)果加一,直加至255然后T1重新開始計數(shù)。20-5000計數(shù)由于50000計數(shù)采用八位寄存器顯然會一處,因此設(shè)計時數(shù)器T0采用工作方式1外部計數(shù),16位寄存器技術(shù)范圍到65536,符合50000計數(shù)的需要。然后通過數(shù)據(jù)轉(zhuǎn)換,將計數(shù)器的值轉(zhuǎn)換成為十進(jìn)制數(shù),通過數(shù)碼管顯示。2、出租車計費系統(tǒng):本設(shè)計所設(shè)計的出租車數(shù)字計數(shù)器的主要功
4、能有:金額輸出、路程輸出、數(shù)據(jù)復(fù)位、計時計價等。輸出采用2個4位8段共陽數(shù)碼管,車輛行走時前4位顯示路程,后4位顯示金額。起步價為5元(2km以內(nèi)),2km后,0.8元/0.5km;要求每500m,刷新計費一次。2. 芯片功能介紹AT89S51是一款低功耗、高性能CMOS8位微控制器,具有4K可編程 Flash存儲器。使用 Atmel 公司高密度非易失性存儲器技術(shù)制造,與工業(yè) 80C51 產(chǎn)品指令和引腳完全兼容。AT89S51具有以下標(biāo)準(zhǔn)功能:4K字節(jié)Flash, 256字節(jié)RAM,32 位 I/O 口線,看門狗定時器,2 個數(shù)據(jù)指針,三個 16 位定時器/計數(shù)器,一個6向量 2級中斷結(jié)構(gòu),全
5、雙工串行口,片內(nèi)晶振及時鐘電路。其引腳如圖3-2所示,下面簡要介紹其引腳功能:圖 1 AT89S51引腳圖VCC:電源。本設(shè)計中接電源正極。GND:地。本設(shè)計中接電源負(fù)極。P0口:P0口是一個8位漏極開路的雙向I/O口。作為輸出口,每位能驅(qū)動8個TTL邏輯電平。對P0端口寫"1"時,引腳用作高阻抗輸入。P1口:P1口是一個具有內(nèi)部上拉電阻的8 位雙向I/O口,P1輸出緩沖器能驅(qū)動4個TTL邏輯電平。對 P1 端口寫"1"時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流。P2口:P2口是一個
6、具有內(nèi)部上拉電阻的8位雙向I/O口,P2輸出緩沖器能驅(qū)動4個TTL邏輯電平。對P2端口寫"1"時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流。P3口:P3口是一個具有內(nèi)部上拉電阻的8位雙向I/O口,P3輸出緩沖器能驅(qū)動4個TTL邏輯電平。對P3端口寫"1"時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流。RST:復(fù)位輸入。晶振工作時,RST腳持續(xù)2個機(jī)器周期高電平將使單片機(jī)復(fù)位??撮T狗計時完成后,RST腳輸出96個晶振周期
7、的高電平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能無效。DISRTO默認(rèn)狀態(tài)下,復(fù)位高電平有效。EA/VPP:訪問外部程序存儲器控制信號。為使能從0000H到FFFFH的外部程序存儲器讀取指令,EA必須接GND。為了執(zhí)行內(nèi)部程序指令,EA應(yīng)該接VCC。本設(shè)計中不需要外部程序存儲器,因此需接高電平。ALE/PROG:地址鎖存控制信號(ALE)是訪問外部程序存儲器時,鎖存低8位地址的輸出脈沖。PSEN:外部程序存儲器選通信號(PSEN)是外部程序存儲器選通信號。當(dāng)AT89S52從外部程序存儲器執(zhí)行外部代碼時,PSEN在每個機(jī)器周期被激活兩次,而在訪問外部數(shù)據(jù)存儲器時,PSEN
8、將不被激活。XTAL1:振蕩器反相放大器和內(nèi)部時鐘發(fā)生電路的輸入端。XTAL2:振蕩器反相放大器的輸出端。3. 255計數(shù)程序流程圖開始初始化堆棧,定時器初始化清零相關(guān)RAM地址單元TF1=1?調(diào)用顯示子程序脈沖數(shù)加1即20H加120H=100?21H加120清零計算出脈沖數(shù)的個,十,百位分別存放于30H,31H,32H(20H=54)&(21H=2?)脈沖數(shù)計到255后重新計數(shù)即20H,21H清零說明:1. 20H存放脈沖的個位和十位數(shù)值,21H存放脈沖的百位和千位數(shù)值。 2.計算脈沖數(shù)的個位和十位數(shù)值:(20H)/10的商即十位數(shù)值存放于31H,余數(shù)即個位數(shù)值存放于30H。 3.
9、計算脈沖數(shù)的百位數(shù)值:(20H)/10的余數(shù)即百位數(shù)值存放于32H。例如:脈沖數(shù)212(十進(jìn)制),(20H)=12,(21H)=2。脈沖的個位數(shù)值(30H)=2, 脈沖的十位數(shù)值(31H)=1, 脈沖的百位數(shù)值(32H)=2. 圖2 255計數(shù)程序流程圖0-50000計數(shù)流程圖開始初始化,T0初始化,設(shè)置延時TF1=1?調(diào)用顯示子程序脈沖數(shù)加1計數(shù)是否大于50000計數(shù)清0計算出脈沖數(shù)的個,十,百位,千位萬位(20H=54)&(21H=2?)脈沖數(shù)計到50000后從新計數(shù)4. 出租車計費程序流程圖開始初始化堆棧,8279,定時器清零相關(guān)RAM地址單元TF1=1?調(diào)用顯示子程序里程數(shù)加1
10、即24H加124H=500?25H加124清零計算里程數(shù)的個,十,百,千位數(shù)值分別存放于24H,25H,26H,27H(24H=99?)&(25H=99?)里程數(shù)計到500后重新計數(shù)即24H,25H清零說明:1.里程數(shù)存放于24H,25H中,其中24H存放脈沖的個位和十位數(shù)值,25H存放脈沖的百位和千位數(shù)值。 2.計算里程數(shù)的個位和十位數(shù)值:(24H)/10的商即十位數(shù)值存放于26H,余數(shù)即個位數(shù)值存放于27H。 3. 計算里程數(shù)的百位數(shù)值:(21H)/10的商即千位數(shù)值存放于33H,余數(shù)即百位數(shù)值存放于32H。例如:里程數(shù)6798(十進(jìn)制),(24H)=98,(25H)=1。里程的個
11、位數(shù)值(30H)=8, 里程的十位數(shù)值(31H)=9,. 里程的百位數(shù)值(32H)=7,里程的千位數(shù)值(33H)=6計算價格(22H)-20/5商24H,余數(shù)23H(20H)=0?價格(25H)=商(24H)9+50價格(25H)= 商(24H)+19+50(23H)=0?價格的各位數(shù)值分別存放于20H,21H,22H,23H中(22H)-20<0?價格顯示為5.0三設(shè)計程序1、255計數(shù)器程序編輯:ORG 0000H SJMP MAIN ORG 0030HMAIN: MOV TMOD,#50H ;定時器 T1初始化(T1計數(shù)模式) MOV 70H,#00H ;保存?zhèn)€位 MOV 71H,
12、#00H ;保存十位 MOV 72H,#00H ;保存百位 SETB TR1 ;啟動T1LOOP: MOV A,TL1 ACALL BCD ;調(diào)用BCD碼調(diào)整子程序 ACALL OUT ;調(diào)用顯示子程序 SJMP LOOP RETLACLL BCD: ;BCD碼調(diào)整子程序 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計數(shù)的程序編輯ORG 0000H SJMP START ORG 0030H START : MOV DPTR,#0CFE9H /擦出數(shù)據(jù) 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進(jìn)制轉(zhuǎn)10進(jìn)制字程序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 /選擇數(shù)碼管第一個燈并顯示出萬位 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 / 選擇數(shù)碼管第二個燈并顯示出千位 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、/ 選擇數(shù)碼管第三個燈并顯示出百位 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 / 選擇數(shù)碼管第四個燈并顯示出十位 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 /選擇數(shù)碼管第五個燈并顯示出個位 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 /共轉(zhuǎn)換十六位數(shù) ZH: CLR C MOV A, R0 /從待轉(zhuǎn)換數(shù)的高端移出一位到Cy RLC A MOV R0, A MOV A, R1 RLC A MOV R1, A MOV A,
18、R4 / 送到BCD碼的低端 ADDC A, R4 / 帶進(jìn)位加。自身相加,相當(dāng)于左移一位 DA A /十進(jìn)制調(diào)整,變成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 /共轉(zhuǎn)換十六位數(shù) LJMP CAOZUO /已經(jīng)把TH1 TL1中的數(shù)字,轉(zhuǎn)換成BCD碼,送到了R2 R3 R43出租車計費系統(tǒng)程序:ORG 0000H ;匯編起始地址JMP MAIN ;無條件轉(zhuǎn)移到主程序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 ;調(diào)用初始化程序8279MOV TMOD,#05H ;設(shè)置T0計數(shù)模式1MOV TH0,#0FFH;MOV TL0,#0FFH ;設(shè)置計數(shù)初值SETB TR0 ;啟動計數(shù)器M1: LCALL
20、 DISPLAY ;調(diào)用顯示JBC TF0,M2 ;有溢出則跳轉(zhuǎn)且TF0=0SJMP M1 ;等待溢出M2: LCALL TTT ;調(diào)用脈沖子程序LCALL JIFEI;LCALL DISPLAY ;調(diào)用顯示子程序LCALL DELAY ;調(diào)用延時子程序RENEW:MOV TMOD,#05H ;設(shè)置T0計數(shù)模式1MOV TH0,#0FFHMOV TL0,#0FFH ;設(shè)置計數(shù)初值SETB TR0 ;啟動計數(shù)器SJMP M1TTT: INC 28H ;脈沖數(shù)加1 INC 24H ;里程個位加1 MOV A,24H;CJNE A,#10,RETU ;里程個位不為10則轉(zhuǎn)RETUMOV 24H,#0
21、0H ;里程個位為10則清0INC 25H;里程十位加1MOV A,25HCJNE A,#10,RETU;里程十位不為10則轉(zhuǎn)RETUMOV 25H,#00H ;里程十位為十則清0INC 26H;里程百位加1MOV A,26HCJNE A,#10,RETU;里程百位不為10則轉(zhuǎn)RETUMOV 26H,#00H;里程百位為十則清0INC 27H;里程千位加1MOV A,27HCJNE A,#10,RETU;里程千位不為10則轉(zhuǎn)RETUMOV 27H,#00H;里程千位為十則清0LJMP RETURETU:NOP;空操作RET ;返回JIFEI:MOV A,28H;將脈沖數(shù)送ACLR C;將進(jìn)位清
22、0CJNE A,#20,NEXT0;脈沖數(shù)不為0則轉(zhuǎn)RETNEXT0:JNC NEXT;CY=0無進(jìn)位則轉(zhuǎn)NEXTRETNEXT:MOV A,28HMOV B,#5DIV AB;將脈沖數(shù)除5MOV 29H,B;余數(shù)送BMOV A,29H;商送AJZ NEXT1;商為0則轉(zhuǎn)RETNEXT1:MOV A,20HCJNE A,#0,NEXT4;角不為0轉(zhuǎn)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轉(zhuǎn)MOV 21H,#00H;等于十則清0INC 22H;百位加1MOV A,22HCJNE A,#10,RETU;十元位不為10則轉(zhuǎn)MOV 22H,#00H;十元位為10 則清0INC 23H;百元位加1MOV A,23HRETDISLED : ;:顯示程序1PUSH DPH ;將高位入棧PUSH DPL ;將低位入棧PUSH ACC ;將累加器入棧MOV A,#LEDWRD ;送第一個數(shù)碼管地址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 ;送第一個數(shù)碼管地址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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 建筑工程財務(wù)記賬代理服務(wù)協(xié)議
- 大數(shù)據(jù)產(chǎn)業(yè)園廠房租賃與數(shù)據(jù)安全物業(yè)管理服務(wù)合同
- 2025年互聯(lián)網(wǎng)金融平臺合規(guī)整改與區(qū)塊鏈技術(shù)融合研究報告
- 2025年中國碳 13 代謝探針行業(yè)市場前景預(yù)測及投資價值評估分析報告
- 農(nóng)村環(huán)境保護(hù)責(zé)任書與資金扶持協(xié)議
- 現(xiàn)代農(nóng)業(yè)科技推廣與應(yīng)用協(xié)議
- 智能化農(nóng)貿(mào)市場管理合作協(xié)議
- 創(chuàng)意股權(quán)投資資金監(jiān)管及權(quán)益保障協(xié)議范本
- 食堂考試題庫判斷題及答案
- 網(wǎng)絡(luò)資源試題及答案
- 2024-2025學(xué)年人教版(2024)初中英語七年級下冊(全冊)知識點歸納
- 企業(yè)ESG實踐與創(chuàng)新績效關(guān)系研究
- 加油賒欠合同標(biāo)準(zhǔn)文本
- 水井打井施工中的技術(shù)難點與解決措施
- 水果配送合同協(xié)議
- 家庭醫(yī)生簽約基本服務(wù)包清單(試行)2025
- 2025年山東魯華龍心生物科技股份有限公司招聘筆試參考題庫含答案解析
- 特種設(shè)備事故壓力容器應(yīng)急預(yù)案演練記錄
- 2025-2030液壓動力元件行業(yè)市場發(fā)展分析及前景趨勢與投資研究報告
- 廣西柳州市2025屆高三第三次模擬考試思想政治試題(含答案)
- 大型旅游團(tuán)隊接待
評論
0/150
提交評論