版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
可編輯Kkkjjh課程名稱:單片機(jī)原理與接口技術(shù)第十章 單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)1可編輯一、設(shè)計(jì)要求設(shè)計(jì)并制作出具有如下功能的電腦鐘:
(1)自動(dòng)計(jì)時(shí),由6位LED顯示器顯示時(shí)、分、秒。
(2)具備校準(zhǔn)功能,可以直接由0~9數(shù)字鍵設(shè)置當(dāng)前時(shí)間。
(3)具備定時(shí)起鬧功能。
(4)一天時(shí)差不超過1秒鐘。第十章 單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)2可編輯二、總體方案1.計(jì)時(shí)方案方案一:采用實(shí)時(shí)時(shí)鐘芯片。方案二:軟件控制。2.鍵盤/顯示方案方案一:串口擴(kuò)展,LED靜態(tài)顯示。方案二:8155擴(kuò)展,LED動(dòng)態(tài)顯示。顯示方式框圖
(a)靜態(tài)顯示框圖;(b)動(dòng)態(tài)顯示框圖
3可編輯三、硬件設(shè)計(jì)
1.電路原理圖4可編輯2.系統(tǒng)工作流程本電腦鐘具備以下功能:
(1)時(shí)鐘顯示:6位LED從左到右依次顯示時(shí)、分、秒,采用24小時(shí)計(jì)時(shí)。
(2)鍵盤功能:采用4×3鍵盤,包括:0~9數(shù)字鍵,鍵號(hào)為00H~09HC/R鍵時(shí)間設(shè)定/啟動(dòng)計(jì)時(shí)鍵,鍵號(hào)為0AHALM鍵鬧鐘設(shè)置/啟鬧/停鬧鍵,鍵號(hào)為0BH(1)時(shí)間顯示:上電后,系統(tǒng)自動(dòng)進(jìn)入時(shí)鐘顯示,從00:00:00開始計(jì)時(shí),此時(shí)可以設(shè)定當(dāng)前時(shí)間。(2)時(shí)間調(diào)整:按下C/R鍵,系統(tǒng)停止計(jì)時(shí),進(jìn)入時(shí)間設(shè)定狀態(tài),系統(tǒng)保持原有顯示,等待鍵入當(dāng)前時(shí)間。按下0~9數(shù)字鍵可以順序設(shè)置時(shí)、分、秒,并在相應(yīng)LED管上顯示設(shè)置值,直至6位設(shè)置完畢。系統(tǒng)將自動(dòng)由設(shè)定后的時(shí)間開始計(jì)時(shí)顯示。
(3)鬧鐘設(shè)置/啟鬧/停鬧:按下ALM鍵,系統(tǒng)繼續(xù)計(jì)時(shí),顯示00:00:00,進(jìn)入鬧鐘設(shè)置狀態(tài),等待鍵入啟鬧時(shí)間。按下0~9數(shù)字鍵可以順序進(jìn)行相應(yīng)的時(shí)間設(shè)置,并在相應(yīng)LED管上顯示設(shè)置值,直至6位設(shè)置完畢。這將啟動(dòng)定時(shí)啟鬧功能,并恢復(fù)時(shí)間顯示。定時(shí)時(shí)間到,蜂鳴器鳴叫,直至重新按下ALM鍵停鬧,并取消鬧鐘設(shè)置。5可編輯四、軟件設(shè)計(jì)1.系統(tǒng)資源分配地址功能名稱初始化值30H~35H顯示緩沖區(qū),小時(shí)、分、秒(高位在前)DISP0~DISP500H3CH~3FH計(jì)時(shí)緩沖區(qū),時(shí)、分、秒、100msHOUR,MIN,SEC,MSEC00H40H~42H鬧鐘值寄存區(qū),時(shí)、分、秒AHOUR,AMIN,ASECFFH50H~7FH堆棧區(qū)
PSW.5計(jì)時(shí)顯示允許位(1:禁止,0:允許)F00PSW.1鬧鐘標(biāo)志位(1:正在鬧響,0:未鬧響)F10電子鐘控制軟件片內(nèi)RAM及標(biāo)志位分配表62.軟件流程
主程序流程圖BeijingInstituteofPetro-chemicalTechnology7計(jì)時(shí)程序流程圖BeijingInstituteofPetro-chemicalTechnology8時(shí)間設(shè)置/鬧鐘定時(shí)流程圖
BeijingInstituteofPetro-chemicalTechnology9鍵盤設(shè)置子程序流程圖BeijingInstituteofPetro-chemicalTechnology10鍵盤掃描流程圖(4)鍵盤掃描程序模塊KEYSCAN:流程圖如圖9.7所示。BeijingInstituteofPetro-chemicalTechnology11顯示流程圖
BeijingInstituteofPetro-chemicalTechnology12定時(shí)比較流程圖BeijingInstituteofPetro-chemicalTechnology13可編輯ORG 0000HAJMP MAINORG 000BHAJMP CLOCKORG 0030HPORT EQU 8000HPORTAEQU 8001HPORTBEQU 8002H;*****************主程序MAIN******************14可編輯PORTC EQU 8003HDISP0 EQU 30HDISP1 EQU 31HDISP2 EQU 32HDISP3 EQU 33HDISP4 EQU 34HDISP5 EQU 35HHOUR EQU 3CH15MIN EQU 3DHSEC EQU3EHMSEC EQU3FHAHOUR EQU 40HAMIN EQU41HASEC EQU42HF1BITPSW.1MAIN:MOVSP,#50H ;設(shè)置堆棧區(qū)
MOVXDPTR,#PORT MOV A,#03HBeijingInstituteofPetro-chemicalTechnology16MOVX@DPTR,A ;8155初始化
CLR F1 ;清零鬧鐘標(biāo)志位
CLR F0 ;允許計(jì)時(shí)顯示
MOV AHOUR,#0FFHMOV AMIN,#0FFHMOV ASEC,#0FFHMOV R7,#10HMOV R0,#DISP0 CLR ABeijingInstituteofPetro-chemicalTechnology17LOOP:MOV @R0,AINC R0 DJNZR7,LOOP ;設(shè)置初值
MOVTMOD,#01H MOVTL0,#0B0H MOV TH0,#3CH ;定時(shí)器0初始化,定時(shí)時(shí)間100ms SETB TR0 ;啟動(dòng)定時(shí)器
SETB EA SETBET0 ;開中斷
BeijingInstituteofPetro-chemicalTechnology18BEGIN:ACALLALARM ;調(diào)用定時(shí)比較
ACALLKEYSCAN ;調(diào)用鍵盤掃描
CJNEA,#0AH,NEXT1;是CLR/RST鍵否?
CLRTR0 ;是則暫時(shí)停止計(jì)時(shí)
MOVR1,#HOUR ;地址指針指向計(jì)時(shí)緩沖區(qū)首地址
AJMP MODBeijingInstituteofPetro-chemicalTechnology19NEXT1:CJNEA,#0BH,BEGIN;是ALARM鍵否?
JB F1,NEXT2 ;鬧鐘正在鬧響否?
MOV R1,#AHOUR;地址指針指向鬧鐘值寄存區(qū)首地址
MOD:SETB F0 ;置位時(shí)間設(shè)置/鬧鐘定時(shí)標(biāo)志,禁止顯示計(jì)時(shí)時(shí)間
ACALL MODIFY;調(diào)用時(shí)間設(shè)置/鬧鐘定時(shí)程序
SETB TR0 ;重新開始計(jì)時(shí)
CLR F0 ;清零時(shí)間設(shè)置/鬧鐘定時(shí)標(biāo)志,恢復(fù)顯示計(jì)時(shí)時(shí)間BeijingInstituteofPetro-chemicalTechnology20AJMP BEGIN NEXT2:SETB P1.0 ;鬧鐘正在鬧響,停鬧
CLR F1 ;清零鬧鐘標(biāo)志
AJMP BEGIN;**************時(shí)間設(shè)置/鬧鐘定時(shí)模塊MODIFY************MODIFY:ACALL KEYIN ;調(diào)用鍵盤設(shè)置子程序
ACALLCOMB ;調(diào)用合字子程序
RET鍵盤設(shè)置子程序KEYIN:KEYIN: PUSH PSW PUSH ACCBeijingInstituteofPetro-chemicalTechnology21SETB RS1 ;保護(hù)現(xiàn)場
MOV R0,#DISP0 ;R0指向顯示緩沖區(qū)首地址
MOV R7,#06H ;設(shè)置鍵盤輸入次數(shù)L1:CLR RS1ACALL KEYSCAN ;調(diào)用鍵盤掃描程序取按下鍵的鍵號(hào)
SETB RS1CJNE A,#0AH,L2;鍵入數(shù)合法性檢測(是否大于9)BeijingInstituteofPetro-chemicalTechnology22L2: JNC L1 ;大于9,重新鍵入
MOV @R0,A ;鍵號(hào)送顯示緩沖區(qū)
INC R0 DJNZ R7,L1 ;6位時(shí)間輸入完否?未完繼續(xù),否則返回
POP ACC POP PSW CLR RS1 ;恢復(fù)現(xiàn)場
RETBeijingInstituteofPetro-chemicalTechnology23
;**********鍵盤掃描子程序KEYSCAN***********KEYSCAN:ACALL TEST ;調(diào)判按鍵是否按下子程序TESTJNZREMOV;有鍵按下調(diào)消抖延時(shí)
ACALL DISPLAY ACALL ALARM AJMPKEYSCAN;無鍵按下繼續(xù)判是否按鍵
REMOV:ACALL DISPLAY;調(diào)用顯示子程序延時(shí)消抖
ACALL TEST ;再判是否有鍵按下BeijingInstituteofPetro-chemicalTechnology242023/12/725JNZ LIST ;有鍵按下轉(zhuǎn)逐列掃描
ACALL DISPLAYACALL ALARMAJMP KEYSCAN ;無鍵按下繼續(xù)判是否按鍵
LIST: MOV R2,#0FEH ;首列掃描字送R2 MOV R3,#00H ;首列鍵號(hào)送R3LINE0:MOV DPTR,#PORTA;DPTR指針指向8155的A口BeijingInstituteofPetro-chemicalTechnology26MOVA,R2 ;首列掃描字送R2 MOVX @DPTR,A ;首列掃描字送8155的A口
MOVDPTR,#PORTC;DPTR指針指向8155的C口
MOVX A,@DPTR ;讀入C口的行狀態(tài)
JB ACC.0,LINE1 ;第0行鍵無鍵按下轉(zhuǎn)第1行
MOV A,#00H;第0行有鍵按下,行首鍵號(hào)送A AJMP TRYK ;求鍵號(hào)BeijingInstituteofPetro-chemicalTechnology27NEXT:INC R3 ;掃描下一列
MOV A,R2 ;列掃描字送A JNB ACC.3,EXIT;4列掃描完,重新進(jìn)行下一輪掃描
RL A ;4列未掃描完,掃描字左移掃描下一列
MOV R2,A ;掃描字送A AJMPLINE0 ;轉(zhuǎn)向掃描下一列BeijingInstituteofPetro-chemicalTechnology28EXIT:AJMPKEYSCAN ;等待下一次按鍵TRYK:ADD A,R3 ;按公式計(jì)算鍵碼,求得鍵號(hào)
PUSHACC ;鍵號(hào)入棧保護(hù)LETK: ACALLTEST ;等待按鍵釋放
JNZ LETK ;按鍵未釋放,繼續(xù)等待
POP ACC ;按鍵釋放,鍵號(hào)出棧
RET ;鍵盤掃描結(jié)束,返回BeijingInstituteofPetro-chemicalTechnology29TEST: MOV DPTR,#PORTA;DPTR指針指向8155的A口
MOV A,#00H MOVX@DPTR,A;全掃描字00H送8155的A口
MOV DPTR,#PORTC;DPTR指針指向8155的C口
MOVXA,@DPTR ;讀入C口行狀態(tài)
CPL A ;A取反,以高電平表示有鍵按下
ANL A,#07H ;屏蔽高5位
RET BeijingInstituteofPetro-chemicalTechnology30;**************顯示子程序DISPLAY*************DISPLAY: JBF0,DISP;允許時(shí)間顯示標(biāo)志F0=1轉(zhuǎn)DISP ACALLSEPA;否則調(diào)用SEPA刷新顯示緩沖區(qū)
DISP:push psw ;動(dòng)態(tài)掃描顯示子程序
Push acc setb rs0 MOV dptr,#PORTABeijingInstituteofPetro-chemicalTechnology31 MOV A,#0FFH MOVX @DPTR,A ;關(guān)顯示
mov r0,#disp0 mov r7,#00hmov r6,#06h mov r5,#0fehdis1: mov dptr,#tab mov a,@r0 movc a,@a+dptr mov dptr,#portbBeijingInstituteofPetro-chemicalTechnology32 movx @dptr,a mov dptr,#porta mov a,r5 movx @dptr,ahere: djnz r7,here inc r0 mov a,r5 rl aBeijingInstituteofPetro-chemicalTechnology33 mov r5,a djnz r6,dis1 clr rs0 pop acc pop psw rettab: db3fh,06h,5bh,4fh,66h,6dh,7dh,07h db7fh,6fh,77h,7ch,39h,5eh,79h,71h ;共陰極字型碼表BeijingInstituteofPetro-chemicalTechnology34;*****************合字子程序COMB******************COMB:MOVR0,#DISP1;R0指向顯示緩沖區(qū)小時(shí)低位
ACALLCOMB1 ;合字
CJNEA,#24H,CHK ;小時(shí)大于24否?CHK:JNC EXIT1 ;大于24則取消本次設(shè)置,退出
MOV @R1,A ;否則小時(shí)送計(jì)時(shí)緩沖區(qū)
/鬧鐘值寄存區(qū)小時(shí)單元
INC R1BeijingInstituteofPetro-chemicalTechnology35MOV R0,#DISP3 ;R0指向顯示緩沖區(qū)分低位
ACALL COMB1CJNE A,#60H,CHK1CHK1:JNC EXIT1 MOV@R1,A INC R1 MOVR0,#DISP5 ;R0指向顯示緩沖區(qū)秒低位
ACALLCOMB1 CJNE A,#60H,CHK2BeijingInstituteofPetro-chemicalTechnology36CHK2: JNC EXIT1MOV @R1,A RETEXIT1:AJMP MAIN ;輸入不合法退出,重新清零計(jì)時(shí)COMB1:MOVA,@R0 ANLA,#0FH ;取出低位
MOV 43H,A ;暫存于43H單元
DEC R0 ;指向高位BeijingInstituteofPetro-chemicalTechnology37MOV A,@R0 ANL A,#0FH SWAP A ;高位送高4位
ORL A,43H ;高低位合并
RET;***************拆字子程序SEPA***************SEPA:PUSHPSW PUSHACC SETB RS0 BeijingInstituteofPetro-chemicalTechnology38MOV R0,#DISP5 ;指向顯示緩沖區(qū)秒低位
MOV A,SEC ACALL SEPA1MOV A,MINACALL SEPA1MOV A,HOURACALL SEPA1POP ACCPOP PSWBeijingInstituteofPetro-chemicalTechnology39 RETSEPA1:MOV44H,A ;暫存44H ANLA,#0FH ;取出低位
MOV@R0,A ;送顯示緩沖區(qū)低位
DEC R0 ;指向顯示緩沖區(qū)高位
MOVA,44H ANL A,#0F0H ;取出高位
SWAP A ;高位送往低4位形成高位數(shù)據(jù)BeijingInstituteofPetro-chemicalTechnology40MOV @R0,A ;高位數(shù)據(jù)送顯示緩沖區(qū)高位
RET;**************定時(shí)比較模塊ALARM****************ALARM: MOV A,ASEC CJNE A,SEC,BACK ;秒單元相同則繼續(xù)比較,否則返回
MOV A,AMIN CJNE A,MIN,BACK ;分單元相同則繼續(xù)比較,否則返回
MOV A,AHOUR
BeijingInstituteofPetro-chemicalTechnology41CJNEA,HOUR,BACK;小時(shí)單元相同定時(shí)時(shí)間到
CLR P1.0 ;啟動(dòng)鬧鐘鳴叫
SETB F1 ;置位鬧鐘標(biāo)志BACK:RET;***************定時(shí)器0中斷服務(wù)子程序CLOCK***************CLOCK:MOVTL0,#
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 量子態(tài)相變與臨界現(xiàn)象的研究-洞察及研究
- 2026年ERP系統(tǒng)應(yīng)用操作教程與問題解析
- 2026年服務(wù)態(tài)度與問題解決能力培訓(xùn)教程
- 復(fù)制信息錯(cuò)誤校正
- 信貸風(fēng)險(xiǎn)預(yù)測模型演進(jìn)
- 未來五年托兒所服務(wù)企業(yè)數(shù)字化轉(zhuǎn)型與智慧升級(jí)戰(zhàn)略分析研究報(bào)告
- 未來五年就業(yè)援助服務(wù)企業(yè)ESG實(shí)踐與創(chuàng)新戰(zhàn)略分析研究報(bào)告
- 未來五年飛機(jī)場保潔服務(wù)企業(yè)數(shù)字化轉(zhuǎn)型與智慧升級(jí)戰(zhàn)略分析研究報(bào)告
- 未來五年大馬哈魚企業(yè)數(shù)字化轉(zhuǎn)型與智慧升級(jí)戰(zhàn)略分析研究報(bào)告
- 未來五年油橄欖果企業(yè)縣域市場拓展與下沉戰(zhàn)略分析研究報(bào)告
- 中建項(xiàng)目安全總監(jiān)競聘
- 中建給排水施工方案EPC項(xiàng)目
- 公司股權(quán)分配方案模板
- 電氣工程及自動(dòng)化基于PLC的皮帶集中控制系統(tǒng)設(shè)計(jì)
- 舊設(shè)備拆除方案
- 醫(yī)學(xué)教材 常見輸液反應(yīng)的處理(急性肺水腫)
- FURUNO 電子海圖 完整題庫
- 急診科護(hù)士長述職報(bào)告
- 分子對(duì)稱性和點(diǎn)群
- 物業(yè)前臺(tái)崗位職責(zé)6篇
- 《現(xiàn)代田徑運(yùn)動(dòng)技術(shù)與訓(xùn)練》讀書筆記
評(píng)論
0/150
提交評(píng)論