




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、51單片機(jī)架構(gòu)下時(shí)鐘控制程序;KEYA A鍵功能程序 開啟/關(guān)閉定時(shí)器 ;KEYB B鍵功能程序 時(shí)值加1;KEYC C鍵功能程序 分值加1;KEYDD鍵功能程序 秒值加1;KEYEE鍵功能程序 12/24時(shí)值轉(zhuǎn)換;BEEP_BL整點(diǎn)報(bào)時(shí);P0 顯示接口 ;系統(tǒng)初始化程序* KEYA EQU P3.0 ;單片機(jī)控制設(shè)置 KEYB EQU P3.1 ;單片機(jī)控制設(shè)置 KEYC EQU P3.2 ;單片機(jī)控制設(shè)置 KEYD EQU P3.3 ;單片機(jī)控制設(shè)置 KEYE EQU P3.4 ;單片機(jī)控制設(shè)置 BEEP EQU P3.7 ;單片機(jī)控制設(shè)置 ORG 0000H AJMP MAIN;轉(zhuǎn)到系統(tǒng)
2、初始化程序 ORG 000BH AJMP PITO;轉(zhuǎn)到定時(shí)器0中斷服務(wù)程序 ORG 0100H MAIN: MOV SP, #60H;確立堆棧區(qū) MOV TMOD, #01H;設(shè)定定時(shí)器0為工作方式1 MOV TL0, #0DCH;裝計(jì)數(shù)器初值 MOV TH0, #0BH CLR 21H.0 CLR TR0;TR0置0,定時(shí)關(guān)閉 SETB EA;EA置1,中斷總允許 SETB ET0 ; ET0置1,定時(shí)器0中斷 ; 允許 MOV 30H, #10H;循環(huán)次數(shù) MOV 7EH, #0AH;P.點(diǎn)顯示初始化 MOV R0, #79H MOV R1, #05H PP: MOV R0, #0BH
3、INC R0 DJNZ R1, PP MOV R0, #31H;時(shí)、分、秒值存儲(chǔ)單元清零 MOV R1, #06H Q00: MOV R0, #00H INC R0 DJNZ R1, Q00;監(jiān)控程序* LOOP: LCALL DIR;調(diào)顯示子程序 LCALL KEY ;調(diào)鍵掃描子程序 LOOP1: JB 20H.0, KEYA ; A鍵是否按下,是跳轉(zhuǎn)到A鍵功能程序 開啟/關(guān)閉定時(shí)器 JB 20H.1, KEYB ; B鍵是否按下,是跳轉(zhuǎn)到B鍵功能程序 時(shí)值加1 JB 20H.2, KEYC ; C鍵是否按下,是跳轉(zhuǎn)到C鍵功能程序 分值加1 JB 20H.3, KEYD ; D鍵是否按下,是
4、跳轉(zhuǎn)到D鍵功能程序 秒值加1JB 20H.4, KEYE ; E鍵是否按下,是跳轉(zhuǎn)到E鍵功能程序 12/24時(shí)值轉(zhuǎn)換 LCALL DIR LJMP LOOP;跳轉(zhuǎn)到監(jiān)控程序;A鍵功能子程序* KEYA: CPL TR0 ;開啟/關(guān)閉定時(shí)器 SETB 21H.0 AJMP LOOP ;返回;B鍵功能子程序* KEYB: JB TR0, KEYB1 ; 定時(shí)器是否運(yùn)行,是跳轉(zhuǎn) JNB 21H.0, KEYB2 MOV R0, #36H; 時(shí)值存儲(chǔ)單元地址送R0 LCALL DAAD1 ; 調(diào)加1子程序 MOV A, R3 ; 時(shí)值加1后的值送累加器ALCALL BEEP_BL ; 整點(diǎn)報(bào)時(shí) XRL
5、 A, #12H ;時(shí)值是否到12時(shí)JNZ KEYB0 ; BACK: XRL A, #24H;判是否到24時(shí) JNZ KEYB1 ; 時(shí)值是否到24時(shí),否返回 LCALL CLR0; 時(shí)值存儲(chǔ)單元清零 KEYB0: JB 20H.4, KEYB1; 是否啟用12時(shí)值,否返回 LCALL CLR0; 時(shí)值存儲(chǔ)單元清零 KEYB1: MOV 7DH, 35H MOV 7EH, 36H KEYB2: LJMP LOOP; 返回監(jiān)控程序;C鍵功能子程序* KEYC: JB 8CH, KEYC1 ; 定時(shí)器是否運(yùn)行,否跳轉(zhuǎn) JNB 21H.0, KEYC2 MOV R0, #34H; 分值存儲(chǔ)單元地址
6、送R0 LCALL DAAD1; 調(diào)加1子程序 MOV A, R3; 分值加1后的值送累加器A XRL A, #60H ; JNZ KEYC1; 分值是否到60分,否返回 LCALL CLR0; 分值存儲(chǔ)單元清零 KEYC1: MOV 7CH, 34H MOV 7BH, 33H KEYC2: LJMP LOOP; 返回監(jiān)控程序;D鍵功能子程序* KEYD: JB 8CH, KEYD1 ; 定時(shí)器是否運(yùn)行,否跳轉(zhuǎn) JNB 21H.0, KEYD2 MOV R0, #32H ; 秒值存儲(chǔ)單元地址送R0 LCALL DAAD1 ; 調(diào)加1子程序 MOV A, R3 ; 秒值加1后的值送R0 XRL
7、A, #60H JNZ KEYD1;秒值是否到60秒,否返回 LCALL CLR0;秒值存儲(chǔ)單元清0 KEYD1: MOV 79H, 31H MOV 7AH, 32H KEYD2: LJMP LOOP;返回監(jiān)控程序;中斷服務(wù)程序* PITO: PUSH PSW;中斷服務(wù)程序,現(xiàn)場保護(hù) PUSH A SETB RS0;選第三組通用寄存器 SETB RS1 MOV TL0, #0DCH;計(jì)數(shù)器重新加載 MOV TH0, #0BH MOV A, 30H;循環(huán)次數(shù)減1 DEC A MOV 30H, A JNZ RETO;不滿16次,轉(zhuǎn)RET0返回 MOV 30H, #10H;滿16次開始計(jì)時(shí)操作 MO
8、V R0, #32H;秒顯示單元地址 ACALL DAAD1;秒加1 MOV A, R3;加1后秒值在R3中 XRL A, #60H;判是否到60秒 JNZ RETO;不到轉(zhuǎn)RET0返回 ACALL CLR0;到60秒顯示單元清0 MOV R0, #34H;分顯示單元地址 ACALL DAAD1;分加1 MOV A, R3;加1后分值在R3中 XRL A, #60H;判是否到60分 JNZ RETO;不到轉(zhuǎn)RET0返回 ACALL CLR0;到60分顯示單元清0 MOV R0, #36H;時(shí)顯示單元地址 ACALL DAAD1;時(shí)加1 MOV A, R3 ;加1后時(shí)值在R3中LCALL BEE
9、P_BL; 整點(diǎn)報(bào)時(shí) XRL A, #12H ; 時(shí)值是否到12時(shí)JNZ KEYB3 ; XRL A, #24H;判是否到24時(shí) JNZ RETO;不到轉(zhuǎn)RET0返回 ACALL CLR0;到24時(shí)顯示單元清0 KEYB3:JB 20H.4, RETO; 是否啟用12時(shí)值,否返回 ACALL CLR0; 時(shí)值存儲(chǔ)單元清零 RETO: CLR RS0;返回第0組通用寄存器 CLR RS1 POP A;現(xiàn)場恢復(fù) POP PSWMOV 79H, 31H;時(shí)、分、秒值放緩沖區(qū) MOV 7AH, 32H MOV 7BH, 33H MOV 7CH, 34H MOV 7DH, 35H MOV 7EH, 36
10、H RETI ;中斷返回;加1子程序* DAAD1: MOV A, R0 ; 加1子程序,十位送A DEC R0 SWAP A;十位數(shù)占高4位 ORL A, R0;個(gè)位數(shù)占低4位 ADD A, #01H;加1 DA A;十進(jìn)制調(diào)整 MOV R3, A;全值暫存R3中 ANL A, #0FH;屏蔽十位數(shù),取出個(gè)位數(shù) MOV R0, A;個(gè)位值送顯示緩沖單元 MOV A, R3 INC R0 ANL A, #0F0H;屏蔽個(gè)位數(shù)取出十位數(shù) SWAP A;使十位數(shù)占低四位 MOV R0, A;十位數(shù)送緩沖單元 RET;返回 CLR0: CLR A;清緩沖單元子程序 MOV R0, A;十位緩沖單元清
11、0 DEC R0 MOV R0, A;個(gè)位數(shù)緩沖單元清0 RET;返回 ;鍵盤掃描子程序* KEY: LCALL KEYCHULI;調(diào)鍵值處理子程序 JZ EXIT;沒有鍵按下轉(zhuǎn)到返回 LCALL DIR LCALL DIR;調(diào)顯示去抖動(dòng) LCALL KEYCHULI;調(diào)鍵值處理子程序 JZ EXIT;沒有鍵按下轉(zhuǎn)到返回 MOV B, 20H ;保存鍵值 KEYSF: LCALL KEYCHULI;調(diào)鍵值處理子程序 JZ KEY1;鍵釋放,轉(zhuǎn)到恢復(fù)鍵值 LCALL DIR;調(diào)顯示子程序延時(shí) AJMP KEYSF;等到鍵釋放 KEY1: MOV 20H, B;鍵值送20H單元保存 EXIT: R
12、ET;返回 KEYCHULI: PUSH PSW;保護(hù)現(xiàn)場 CLR RS1;改變寄存器組號 SETB RS0 MOV P1, #0FFH;先向P1口寫1 MOV A, P1;P1口值送累加器A CPL A;A值取反 ANL A, #0FH;保存P1口的低4位 MOV 20H, A;A值送20H保存 CLR RS1;改變寄存器組號 CLR RS0; POP PSW;恢復(fù)現(xiàn)場 RET;顯示子程序* DIR: PUSH PSW ; 恢復(fù)現(xiàn)場 SETB RS1; 改變寄存器組號 CLR RS0 MOV R0, #79H;建立顯示緩沖區(qū)首地址 MOV R3, #0FBH;設(shè)置位控碼 LD0: MOV P
13、2, R3;送位控碼 MOV A, R0; 緩沖區(qū)值送累加器A DISP1: ADD A, #1BH MOVC A, A+PC;取段控碼并送A中 DISP2: MOV P0, A;送段控碼 MOV R2, #09H;設(shè)置延時(shí)循環(huán)次數(shù) ACALL DEY;延時(shí)點(diǎn)亮 INC R0;緩沖區(qū)地址加1 MOV A, R3;位控碼送A JNB ACC.1, HERE;是否到最高位,是轉(zhuǎn)到返回 JBACC.5, LD2 RL A RL A;不到向顯示器高位移位 LD2:RL A MOV R3, A; 位控值保存到R4中 AJMP LD0;繼續(xù)掃描 HERE: CLR RS0 ;改變寄存器組號 CLR RS1 POP PSW ;恢復(fù)現(xiàn)場 RET ;返回 DBB: DB 0C0H DB 0F9H DB 0A4H DB 0B0H DB 99H DB 92H DB 82H DB 0F8H DB 80H DB 90H DB 0CH DB 0FFH;整點(diǎn)報(bào)時(shí)* BEEP_BL: MOV R6,#100 BL1:CALL BL2 CPL BEEP DJNZ R6,BL1
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度商業(yè)綜合體水電費(fèi)結(jié)算與管理合同
- 2025年度股權(quán)收益權(quán)轉(zhuǎn)讓與回購合同模板
- 二零二五年度新材料勞動(dòng)合同法條知識產(chǎn)權(quán)保護(hù)合同
- 二零二五年度金融產(chǎn)品銷售業(yè)務(wù)員傭金分配協(xié)議
- 二零二五年度魚塘使用權(quán)及養(yǎng)殖廢棄物處理轉(zhuǎn)讓合同
- 四川省通信產(chǎn)業(yè)服務(wù)有限公司成都市分公司招聘筆試參考題庫附帶答案詳解
- 2025重慶九洲隆瓴科技有限公司招聘軟件技術(shù)員等崗位30人筆試參考題庫附帶答案詳解
- 校園安全知識培訓(xùn)課件
- 2025浙江溫州市白鹿人才科技發(fā)展有限公司招聘項(xiàng)目部工作人員2人筆試參考題庫附帶答案詳解
- 2025江西吉安市創(chuàng)新投資集團(tuán)有限公司面向社會(huì)招聘臨聘人員1人筆試參考題庫附帶答案詳解
- 烹飪(西餐)第三屆全省職業(yè)技能大賽烹飪(西餐)項(xiàng)目技術(shù)文件
- 四川政采評審專家入庫考試基礎(chǔ)題練習(xí)試題附答案
- 《血管活性藥物靜脈輸注護(hù)理》團(tuán)體標(biāo)準(zhǔn)解讀
- 文旅新媒體運(yùn)營 課件 第8章 文旅新媒體運(yùn)營技能
- 2024年商丘職業(yè)技術(shù)學(xué)院單招職業(yè)技能測試題庫附答案
- 公路建設(shè)期全生命周期碳排放量化研究
- 防雷應(yīng)急演練
- CQI-9 第四版 熱處理系統(tǒng)審核表中文完整版-
- 學(xué)校機(jī)考考場改造方案
- 2025新譯林版英語七年級下Unit 2 Neighborhood單詞表
- 《新能源汽車》課件 課題四 純電動(dòng)汽車
評論
0/150
提交評論