<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于51單片機(jī)秒表的程序設(shè)計(jì)

          基于51單片機(jī)秒表的程序設(shè)計(jì)

          作者: 時(shí)間:2012-07-09 來源:網(wǎng)絡(luò) 收藏

          KE1: CLR EA ;關(guān)中斷

          CLR ET0 ;禁止T0中斷

          CLR TR1 ;關(guān)T1

          CLR TR0 ;關(guān)T0

          AJMP KEY

          KE2: CLR EA ;關(guān)中斷

          AJMP MAIN ;返回主程序進(jìn)行初始化

          ;――――――――――按鍵查詢子程序――――――――――――――

          KS: MOV DPTR,#4401H ;置8155PA口地址

          MOV A,#00H

          MOVX @DPTR,A ;全掃描字#00H送PA口

          INC DPTR ;指向PC口

          INC DPTR

          MOVX A,@DPTR ;讀入PC口狀態(tài)

          CPL A ;變正邏輯,高電平表示有鍵按下

          ANL A,#0FH ;屏蔽高4位

          RET ;返回,A≠0表示有鍵按下

          ;―――――――――LED動(dòng)態(tài)顯示子程序―――――――――――――

          DISP: PUSH ACC ;A入棧保護(hù)

          SETB RS0 ;保護(hù)第0組工作寄存器,啟用第1組工作寄存器

          MOV R2,#08H ;LED待顯示位數(shù)送R2

          MOV R1,#00H ;設(shè)定顯示時(shí)間

          MOV R3,#7FH ;選中最右端LED

          MOV R0,#30H ;顯示緩沖區(qū)首址送R0

          MOV A,@R0 ;秒顯示個(gè)位送A

          DISP1: MOV DPTR,#TAB ;指向字形表首址

          MOVC A,@A+DPTR ;查表取得字形碼

          MOV DPTR,#4402H ;指向8155PB口(段碼口)

          MOVX @DPTR,A ;字形碼送PB口

          MOV A,R3 ;取位選字

          MOV DPTR,#4401H ;指向8155PA口(位選口) , /O:P>

          MOVX @DPTR,A ;位碼送PA口

          DJNZ R1,$ ;延時(shí)0.5ms

          DJNZ R1,$ ;延時(shí)0.5ms

          RR A ;位選字移位

          MOV R3,A ;移位后的位選字送R3

          INC R0 ;指向下一位緩沖區(qū)地址

          MOV A,@R0 ;緩沖區(qū)數(shù)據(jù)送A

          DJNZ R2,DISP1 ;未掃描完,繼續(xù)循環(huán)

          CLR RS0 ;恢復(fù)第0組工作寄存器

          POP ACC ;A彈棧,恢復(fù)現(xiàn)場(chǎng)

          RET

          TAB: DB 3FH,06H,5BH,4FH,66H ;共陰極LED字形表

          DB 6DH,7DH,07H,7FH,6FH

          ;――――――――――定時(shí)器中斷服務(wù)程序―――――――――――――

          CONT: PUSH ACC ;保護(hù)現(xiàn)場(chǎng)

          MOV TH0,#3CH ;定時(shí)器T1重置初值

          MOV TL0,#0B0H

          MOV A,20H ;秒計(jì)數(shù)器送A

          AJMP CONT1

          REN: AJMP REN1

          CONT1: DJNZ 21H,REN ;1秒定時(shí)未到,中斷返回

          MOV 21H,#14H ;重置50ms計(jì)數(shù)初值

          CLR P3.5 ;軟件產(chǎn)生定時(shí)器T1計(jì)數(shù)脈沖

          NOP

          NOP

          SETB P3.5

          INC A ;1秒計(jì)數(shù)值加1

          DA A ;換算為10進(jìn)制計(jì)數(shù)

          JBC TF1,CONT2 ;60秒到,轉(zhuǎn)清零

          CONT3: MOV 20H,A ;計(jì)數(shù)值送60秒計(jì)數(shù)單元20H

          ANL A,#0FH ;屏蔽高4位

          MOV 30H,A ;個(gè)位待顯示數(shù)據(jù)送顯示緩沖區(qū)

          MOV A,20H

          SWAP A ;60秒計(jì)數(shù)單元高、低4位數(shù)據(jù)互換

          ANL A,#0FH ;屏蔽高4位

          MOV 31H,A ;十位待顯示數(shù)據(jù)送顯示緩沖區(qū)

          AJMP REN1

          CONT2: MOV A,#00H

          AJMP CONT3

          REN1: POP ACC ;恢復(fù)現(xiàn)場(chǎng)

          RET ;中斷返回

          END

          3. 總結(jié)與分析

          (1)實(shí)驗(yàn)采用七段碼LED設(shè)計(jì)(數(shù)碼管),顯示直觀;采用定時(shí)器中斷,計(jì)時(shí)更準(zhǔn)確;功能齊全,可隨時(shí)啟動(dòng)、停止、清零,后者智能化程度更高。

          (2)設(shè)計(jì)、調(diào)試大型程序時(shí),需先根據(jù)要求劃分模塊,優(yōu)化結(jié)構(gòu);再根據(jù)各模塊特點(diǎn)確定何為主程序,何為子程序,何為中斷服務(wù)程序,相互間如何調(diào)用;再根據(jù)各模塊性質(zhì)和功能將各模塊細(xì)化,設(shè)計(jì)出程序流程圖;最后才根據(jù)各模塊流程圖編制具體程序。調(diào)試時(shí)應(yīng)先調(diào)主程序,實(shí)現(xiàn)最基本最主要的功能,在此基礎(chǔ)上再將各模塊功能往主程序上堆砌,直至各模塊聯(lián)調(diào)、統(tǒng)調(diào),實(shí)現(xiàn)全部功能。本例子將整個(gè)程序劃分為鍵盤程序,動(dòng)態(tài)顯示程序,秒計(jì)時(shí)程序三大模塊,根據(jù)各自的特點(diǎn)確定鍵盤程序?yàn)橹鞒绦?,?dòng)態(tài)顯示程序?yàn)樽映绦颍胗?jì)時(shí)程序?yàn)槎〞r(shí)器中斷服務(wù)程序。主程序又細(xì)分為初始化程序,鍵盤查詢程序,鍵盤掃描程序,鍵盤處理程序四大部分。三大模塊之間的關(guān)系是:鍵盤程序在無鍵按下時(shí),不斷調(diào)用動(dòng)態(tài)顯示子程序;在有鍵按下時(shí),先調(diào)用動(dòng)態(tài)顯示子程序消抖,再進(jìn)入鍵盤處理程序,控制中斷服務(wù)程序的運(yùn)行;處理完畢后,再不斷調(diào)用動(dòng)態(tài)顯示子程序。經(jīng)上述處理后,三大模塊運(yùn)行協(xié)調(diào)一致,既保持了動(dòng)態(tài)顯示的穩(wěn)定性,又保持了鍵盤的可靠性,還保持了秒計(jì)時(shí)的準(zhǔn)確性,較好地實(shí)現(xiàn)了全部功能。

          (3)本例子只用到8位LED顯示中的兩位,只用到4×4鍵盤16個(gè)按鍵中的3個(gè),因此,其功能還有較大的擴(kuò)展空間。只要將上述程序稍加改動(dòng)即可實(shí)現(xiàn)秒、分、時(shí)、日顯示,并可作全方位修改的實(shí)時(shí)時(shí)鐘。如增加LED顯示位數(shù)或?qū)@示改為L(zhǎng)CD顯示模塊,可實(shí)現(xiàn)年、月、周、日、時(shí)、分、秒顯示。

          燃?xì)鈭?bào)警器相關(guān)文章:燃?xì)鈭?bào)警器原理

          上一頁(yè) 1 2 3 下一頁(yè)

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();