單片機產(chǎn)品設(shè)計(簡)ppt課件_第1頁
單片機產(chǎn)品設(shè)計(簡)ppt課件_第2頁
單片機產(chǎn)品設(shè)計(簡)ppt課件_第3頁
單片機產(chǎn)品設(shè)計(簡)ppt課件_第4頁
單片機產(chǎn)品設(shè)計(簡)ppt課件_第5頁
已閱讀5頁,還剩42頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、設(shè)計要求總體方案硬件設(shè)計軟件設(shè)計系統(tǒng)調(diào)試與運轉(zhuǎn)第10章單片機的運用系統(tǒng)設(shè)計與開發(fā) 本章內(nèi)容Single Chip Microcomputer.一、 設(shè)計要求 設(shè)計并制造出具有如下功能的電腦鐘: (1) 自動計時,由6位LED顯示器顯示時、分、秒。 (2) 具備校準(zhǔn)功能,可以直接由09數(shù)字鍵設(shè)置當(dāng)前時間。 (3) 具備定時起鬧功能。 (4) 一天時差不超越1秒鐘。.二、 總體方案1. 計時方案 方案一:采用實時時鐘芯片。 方案二:軟件控制。2. 鍵盤/顯示方案 方案一:串口擴展,LED靜態(tài)顯示。 方案二:8155擴展,LED動態(tài)顯示。顯示方式框圖(a) 靜態(tài)顯示框圖;(b) 動態(tài)顯示框圖.三、

2、硬件設(shè)計 1. 電路原理圖.2. 系統(tǒng)任務(wù)流程本電腦鐘具備以下功能: (1) 時鐘顯示:6位LED從左到右依次顯示時、分、秒,采用24小時計時。 (2) 鍵盤功能:采用43鍵盤,包括:09 數(shù)字鍵,鍵號為00H09HC/R鍵 時間設(shè)定/啟動計時鍵,鍵號為0AH ALM鍵 鬧鐘設(shè)置/啟鬧/停鬧鍵,鍵號為0BH (1) 時間顯示:上電后,系統(tǒng)自動進入時鐘顯示,從00:00:00開場計時,此時可以設(shè)定當(dāng)前時間。(2) 時間調(diào)整:按下C/R鍵,系統(tǒng)停頓計時,進入時間設(shè)定形狀,系統(tǒng)堅持原有顯示,等待鍵入當(dāng)前時間。按下09數(shù)字鍵可以順序設(shè)置時、分、秒,并在相應(yīng)LED管上顯示設(shè)置值,直至6位設(shè)置終了。系統(tǒng)將

3、自動由設(shè)定后的時間開場計時顯示。 (3) 鬧鐘設(shè)置/啟鬧/停鬧:按下ALM鍵,系統(tǒng)繼續(xù)計時,顯示00:00:00,進入鬧鐘設(shè)置形狀,等待鍵入啟鬧時間。按下09數(shù)字鍵可以順序進展相應(yīng)的時間設(shè)置,并在相應(yīng)LED管上顯示設(shè)置值,直至6位設(shè)置終了。這將啟動定時啟鬧功能,并恢復(fù)時間顯示。定時時間到,蜂鳴器鳴叫,直至重新按下ALM鍵停鬧,并取消鬧鐘設(shè)置。.四、軟件設(shè)計1. 系統(tǒng)資源分配地 址功 能名 稱初始化值30H35H顯示緩沖區(qū),小時、分、秒高位在前DISP0DISP500H3CH3FH計時緩沖區(qū),時、分、秒、100 msHOUR,MIN,SEC,MSEC00H40H42H鬧鐘值存放區(qū),時、分、秒AH

4、OUR,AMIN,ASECFFH50H7FH堆棧區(qū)PSW.5計時顯示允許位1:制止,0:允許F00PSW.1鬧鐘標(biāo)志位1:正在鬧響,0:未鬧響F10電子鐘控制軟件片內(nèi)RAM及標(biāo)志位分配表.2. 軟件流程圖9.3 主程序流程圖.圖9.4 計時程序流程圖.圖9.5 時間設(shè)置/鬧鐘定時流程圖 .圖9.6 鍵盤設(shè)置子程序流程圖.圖9.7 鍵盤掃描流程圖 (4) 鍵盤掃描程序模塊KEYSCAN:流程圖如圖9.7所示。 .圖9.8 顯示流程圖.圖9.9 定時比較流程圖.ORG0000HAJMPMAINORG 000BHAJMPCLOCKORG 0030HPORT EQU 8000HPORTA EQU 80

5、01HPORTB EQU 8002H;*主程序MAIN*.PORTCEQU 8003HDISP0 EQU 30HDISP1 EQU 31HDISP2 EQU 32HDISP3 EQU 33HDISP4 EQU 34HDISP5 EQU 35HHOUR EQU 3CH. MIN EQU 3DH SEC EQU 3EH MSEC EQU 3FH AHOUR EQU 40H AMINEQU 41H ASEC EQU 42H F1 BIT PSW.1MAIN:MOV SP,#50H ;設(shè)置堆棧區(qū) MOVX DPTR,#PORT MOVA,#03H. MOVX DPTR,A;8155初始化CLR F1;

6、清零鬧鐘標(biāo)志位CLRF0;允許計時顯示 MOV AHOUR,#0FFH MOV AMIN,#0FFH MOV ASEC,#0FFH MOV R7,#10H MOV R0,#DISP0 CLR A.LOOP: MOV R0,A INCR0 DJNZ R7,LOOP ;設(shè)置初值 MOV TMOD,#01H MOV TL0,#0B0H MOV TH0,#3CH ;定時器0初始化,定時 時間100 ms SETB TR0;啟動定時器 SETB EA SETB ET0;開中斷 .BEGIN: ACALLALARM ;調(diào)用定時比較 ACALLKEYSCAN ;調(diào)用鍵盤掃描 CJNEA,#0AH,NEXT1

7、 ;是CLR/RST鍵否? CLR TR0 ;是那么暫時停頓計時 MOV R1,#HOUR ;地址指針指向計時緩沖區(qū)首地址 AJMPMOD.NEXT1:CJNE A,#0BH,BEGIN ;是ALARM鍵否? JBF1,NEXT2 ;鬧鐘正在鬧響否? MOVR1,#AHOUR ;地址指針指向鬧鐘值存放區(qū)首地址 MOD: SETBF0 ;置位時間設(shè)置/鬧鐘定時標(biāo)志,制止顯示計時時間 ACALLMODIFY ;調(diào)用時間設(shè)置/鬧鐘定時程序 SETBTR0 ;重新開場計時 CLRF0 ;清零時間設(shè)置/鬧鐘定時標(biāo)志,恢復(fù)顯示計時時間. AJMPBEGINNEXT2: SETBP1.0;鬧鐘正在鬧響,停鬧

8、 CLRF1;清零鬧鐘標(biāo)志 AJMPBEGIN ;*時間設(shè) 置/鬧鐘定時模塊MODIFY*MODIFY:ACALLKEYIN;調(diào)用鍵盤設(shè)置子程序 ACALL COMB;調(diào)用合字子程序RET鍵盤設(shè)置子程序KEYIN:KEYIN:PUSHPSWPUSHACC. SETBRS1 ;維護現(xiàn)場 MOVR0,#DISP0 ;R0指向顯示緩沖區(qū)首地址 MOVR7,#06H ;設(shè)置鍵盤輸入次數(shù)L1:CLRRS1 ACALLKEYSCAN ;調(diào)用鍵盤掃描程序取按下鍵 的鍵號 SETB RS1 CJNEA,#0AH,L2 ;鍵入數(shù)合法性檢測能否大 于9. L2:JNCL1;大于9,重新鍵入MOVR0,A;鍵號送顯

9、示緩沖區(qū)INCR0DJNZR7,L1;6位時間輸入完否?未 完繼續(xù),否那么前往POPACCPOPPSWCLRRS1;恢復(fù)現(xiàn)場RET. ;*鍵盤掃描子程序KEYSCAN* KEYSCAN:ACALLTEST ;調(diào)判按鍵能否按下子程序TEST JNZ REMOV ;有鍵按下調(diào)消抖延時 ACALLDISPLAY ACALLALARM AJMP KEYSCAN ;無鍵按下繼續(xù)判能否按鍵 REMOV: ACALL DISPLAY;調(diào)用顯示子程序延時消抖 ACALLTEST ;再判能否有鍵按下. JNZLIST ;有鍵按下轉(zhuǎn)逐列掃描 ACALLDISPLAY ACALL ALARM AJMPKEYSCAN

10、 ;無鍵按下繼續(xù)判能否按鍵 LIST:MOVR2,#0FEH ;首列掃描字送R2MOVR3,#00H ;首列鍵號送R3LINE0:MOVDPTR,#PORTA ;DPTR指針指向8155的A口. MOV A,R2 ;首列掃描字送R2 MOVXDPTR,A ;首列掃描字送8155的A口 MOV DPTR,#PORTC ;DPTR指針指向8155的C口 MOVXA,DPTR ;讀入C口的行形狀 JB ACC.0,LINE1 ;第0行鍵無鍵按下轉(zhuǎn)第1行 MOVA,#00H ;第0行有鍵按下,行首鍵號送A AJMPTRYK ;求鍵號. NEXT: INC R3;掃描下一列 MOV A,R2;列掃描字送

11、A JNBACC.3,EXIT ;4列掃描完,重新進展 下一輪掃描 RL A;4列未掃描完,掃描字左移掃描下一列 MOV R2,A;掃描字送A AJMP LINE0 ;轉(zhuǎn)向掃描下一列. EXIT: AJMP KEYSCAN;等待下一次按鍵TRYK: ADD A,R3;按公式計算鍵碼,求得鍵號 PUSH ACC;鍵號入棧維護LETK:ACALL TEST;等待按鍵釋放 JNZLETK;按鍵未釋放,繼續(xù)等待 POPACC;按鍵釋放,鍵號出棧RET;鍵盤掃描終了,前往.TEST:MOVDPTR,#PORTA ;DPTR指針指向8155的A口MOV A,#00HMOVX DPTR, A ;全掃描字00

12、H送8155的A口MOVDPTR,#PORTC ;DPTR指針指向8155的C口MOVX A,DPTR ;讀入C口行形狀CPLA ;A取反,以高電平表示有 鍵按下ANLA,#07H ;屏蔽高5位RET .;*顯示子程序DISPLAY*DISPLAY:JB F0,DISP ;允許時間顯示標(biāo)志F0=1轉(zhuǎn)DISPACALL SEPA ;否那么調(diào)用SEPA刷新顯示緩沖區(qū) DISP: push psw ;動態(tài)掃描顯示子程序 Pushacc setb rs0 MOV dptr,#PORTA. MOV A,#0FFH MOVX DPTR,A ;關(guān)顯示 mov r0,#disp0 mov r7,#00h mo

13、v r6,#06h mov r5,#0fehdis1: mov dptr,#tab mov a,r0 movc a,a+dptr mov dptr,#portb.movxdptr,a mov dptr,#porta mov a,r5 movx dptr,ahere: djnz r7,here inc r0 mov a,r5 rl a. mov r5,a djnz r6,dis1 clr rs0 pop acc pop psw ret tab: db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h db 7fh,6fh,77h,7ch,39h,5eh,79h,71h;共陰極字型碼

14、表 .;*合字子程序COMB*COMB: MOV R0,#DISP1 ;R0指向顯示緩沖區(qū)小時 低位 ACALL COMB1 ;合字 CJNE A,#24H,CHK ;小時大于24否?CHK: JNCEXIT1 ;大于24那么取消本次設(shè) 置,退出 MOVR1,A ;否那么小時送計時緩沖區(qū) /鬧鐘值存放區(qū)小時單元 INCR1. MOVR0,#DISP3;R0指向顯示緩沖區(qū)分低位 ACALLCOMB1 CJNEA,#60H,CHK1CHK1:JNC EXIT1 MOV R1,A INCR1 MOV R0,#DISP5 ;R0指向顯示緩沖區(qū)秒低位 ACALL COMB1 CJNEA,#60H,CHK

15、2. CHK2:JNCEXIT1 MOVR1,ARET EXIT1: AJMPMAIN ;輸入不合法退出,重新清 零計時COMB1:MOV A,R0 ANL A,#0FH ;取出低位 MOV43H,A;暫存于43H單元 DECR0;指向高位. MOVA,R0 ANLA,#0FH SWAPA;高位送高4位 ORLA,43H;高低位合并RET;*拆字子程序SEPA*SEPA:PUSH PSW PUSH ACC SETBRS0 . MOVR0,#DISP5;指向顯示緩沖區(qū)秒低位 MOVA,SEC ACALLSEPA1 MOVA,MIN ACALLSEPA1 MOVA,HOUR ACALLSEPA1

16、POPACC POPPSW. RETSEPA1:MOV 44H,A;暫存44H ANLA, #0FH;取出低位 MOV R0,A;送顯示緩沖區(qū)低位 DEC R0 ;指向顯示緩沖區(qū)高位 MOV A,44H ANL A,#0F0H;取出高位 SWAPA;高位送往低4位構(gòu)成高位數(shù)據(jù). MOVR0,A ;高位數(shù)據(jù)送顯示緩沖區(qū)高位RET;*定時比較模塊ALARM*ALARM:MOVA,ASECCJNEA,SEC,BACK ;秒單元一樣那么繼續(xù)比較,否那么前往 MOVA,AMINCJNEA,MIN,BACK;分單元一樣那么繼續(xù)比較,否那么前往MOVA,AHOUR. CJNE A,HOUR,BACK ;小時

17、單元一樣定時時間到 CLRP1.0 ;啟動鬧鐘鳴叫 SETBF1 ;置位鬧鐘標(biāo)志BACK: RET;*定時器0中斷效力子程序CLOCK*CLOCK:MOV TL0,#0B7H MOVTH0,#3CH ;重裝初值,時間校正. PUSHPSWPUSHACC;維護現(xiàn)場INCMSECMOVA,MSECCJNEA,#0AH,DONEMOVMSEC,#00HMOVA,SECINCA. DAA;二十進制轉(zhuǎn)換 MOVSEC,A CJNEA,#60H,DONE MOVSEC,#00H MOVA,MIN INCA DAA MOVMIN,A. CJNEA,#60H,DONEMOVMIN,#00HMOVA,HOURINCADAAMOVHOUR,ACJNEA,#24H,DONEMOVHOUR,#00H. DONE:POPACCP

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論