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

          新聞中心

          智能定時插座程序

          作者: 時間:2012-10-27 來源:網(wǎng)絡(luò) 收藏

          ;**************************************************************
          ;電院 單片機設(shè)計
          :智能

          ;**************************************************************
          ;功能描述:帶鍵盤設(shè)置的時間計數(shù)器
          ;功能:實現(xiàn)1分鐘到99小時99分鐘內(nèi)的定時??啥〞r關(guān)機或定時開機。
          ;各個鍵的功能:
          ;S1:小時十位調(diào)整
          ;S2:小時個位調(diào)整
          ;S3;分鐘十位調(diào)整
          ;S4:分鐘各位調(diào)整
          ;可擴展功能:時間顯示
          ;硬件描述:
          ;P0口顯示字段。P2.0-2.3共陽控制端。P1.0-P1.3按鍵
          ;P3.4
          ;**************************************************************
          STARTRUN BIT 01H;開始運行標(biāo)志
          KEYOK BIT 00H;有鍵按下標(biāo)志
          SCOUNT EQU 21H;分計數(shù)器
          SETVAL EQU 22H;預(yù)置分值儲存單元
          SCOUNT2 EQU 26H;小時計數(shù)器
          SETVAL2 EQU 27H;預(yù)置小時儲存單元
          TCOUNT EQU 24H;;秒計數(shù)器
          TCOUNTER EQU 250;軟件計數(shù)器的計數(shù)值,X定時器4MS等于1S
          KEYVAL EQU 25H;鍵值儲存單元
          DISPBUF EQU 58H;顯示緩沖區(qū)
          COUNTER EQU 57H;計數(shù)器,顯示程序通過它得知現(xiàn)在正在顯示的
          TMRVAR EQU 61536;設(shè)定4MS。65536-4000定時器初值
          ORG 0000H
          JMP START
          ORG 0*8+3;INTO中斷入口
          RETI
          ORG 1*8+3;定時器0中斷入口
          LJMP INT_T0
          ORG 2*8+3
          RETI
          ORG 3*8+3
          RETI
          ORG 4*8+3
          RETI
          ;*******************主程序設(shè)定************************************
          START:
          MOV R7,#60
          MOV R4,#60
          MOV SP,#5FH
          MOV SCOUNT,#0
          MOV SCOUNT2,#0
          MOV SETVAL,#00;啟動程序默認(rèn)值為0
          MOV SETVAL2,#00
          MOV SCOUNT,SETVAL
          MOV SCOUNT2,SETVAL2
          CLR KEYOK
          CLR STARTRUN
          CALL INIT_T0
          SETB EA
          ;********************主程序開始***************************************
          LOOP:
          CALL KEY;調(diào)用鍵盤程序
          JB KEYOK,KEYPROC;如果有鍵按下,轉(zhuǎn)鍵盤處理程序
          NEXT:
          MOV A,SCOUNT;獲取分的數(shù)值
          MOV B,#10
          DIV AB
          NEXT1:
          MOV DISPBUF+2,A;送顯示緩沖區(qū)
          MOV DISPBUF+3,B
          NEXT2:
          MOV A,SCOUNT2;獲取小時的數(shù)值
          MOV B,#10
          DIV AB
          NEXT3:
          MOV DISPBUF,A
          MOV DISPBUF+1,B

          JMP LOOP
          ;*******************鍵值處理程序****************************************
          KEYPROC:
          MOV A,KEYVAL;取得鍵值
          JZ KEY1;如果鍵值是0,轉(zhuǎn)
          DEC A
          JZ KEY2;如果鍵值是1,轉(zhuǎn)
          DEC A
          JZ KEY3;如果鍵值是2,轉(zhuǎn)
          JMP KEY4;如果鍵值是3,轉(zhuǎn)
          KEY1:;對小時十位進(jìn)行操作
          INC DISPBUF;將顯示緩沖區(qū)的數(shù)加1
          MOV A,DISPBUF
          CJNE A,#9,EFT01
          MOV DISPBUF,#0
          SETB STARTRUN

          EFT01:;鍵值處理
          MOV B,#10
          MUL AB
          ADD A,DISPBUF+1
          MOV SETVAL2,A
          MOV SCOUNT2,SETVAL2
          SETB STARTRUN
          JMP LOOP
          KEY2:

          INC DISPBUF+1
          MOV A,DISPBUF+1
          CJNE A,#10,EFT02
          MOV DISPBUF+1,#0
          SETB STARTRUN
          EFT02:
          MOV A,DISPBUF
          MOV B,#10
          MUL AB
          ADD A,DISPBUF+1
          MOV SETVAL2,A
          MOV SCOUNT2,SETVAL2
          SETB STARTRUN
          JMP LOOP

          KEY3:
          INC DISPBUF+2
          MOV A,DISPBUF+2
          CJNE A,#6,LEFT0
          MOV A,#0
          SETB STARTRUN
          LEFT0:
          MOV B,#10
          MUL AB
          ADD A,DISPBUF+3
          MOV SETVAL,A
          MOV SCOUNT,SETVAL
          SETB STARTRUN
          JMP LOOP
          KEY4:
          INC DISPBUF+3
          MOV A,DISPBUF+3
          CJNE A,#10,REFT0
          MOV DISPBUF+3,#0
          SETB STARTRUN
          REFT0:
          MOV A,DISPBUF+2
          MOV B,#10
          MUL AB
          ADD A,DISPBUF+3
          MOV SETVAL,A
          MOV SCOUNT,SETVAL
          SETB STARTRUN
          JMP LOOP
          ;**************鍵盤程序********************************************************
          KEY:
          MOV P1,#0FFH
          CLR KEYOK
          MOV A,P1
          ORL A,#11110000B
          CPL A
          JZ KEY_RET
          CALL DELAY
          MOV A,P1
          ORL A,#11110000B
          CPL A
          JZ KEY_RET
          SETB KEYOK
          JNB ACC.0,KEY_1
          MOV KEYVAL,#0
          JMP KEY_RET
          KEY_1:
          JNB ACC.1,KEY_2
          MOV KEYVAL,#1
          JMP KEY_RET
          KEY_2:
          JNB ACC.2,KEY_3
          MOV KEYVAL,#2
          JMP KEY_RET
          KEY_3:

          MOV KEYVAL,#3


          上一頁 1 2 下一頁

          評論


          相關(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); })();