久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2203|回復: 3
打印 上一主題 下一主題
收起左側(cè)

51單片機匯編:求大佬們幫我看看這個匯編程序,關(guān)于倒計時的

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:786805 發(fā)表于 2020-6-26 21:02 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
所要實現(xiàn)的功能:
1.外部放置的鍵盤不少于四個,用來設(shè)定不同的倒計時時間;
2.當時間到達設(shè)定值時,發(fā)光二極管和蜂鳴器發(fā)出信;(這個還沒加進去)
3在數(shù)碼管上顯示倒計時時間。
問題描述:
當?shù)谝淮伟聪码娫存I再按所需要倒計時的時間時,可以正常倒計時,暫停鍵也正常。但當我想要重置并且選擇另一個時間作為倒計時時,數(shù)碼管只顯示那個時間,但是沒有進行倒計時,然后再按下其他按鍵也沒有反應了。
代碼如下:
        ORG   0000H
                LJMP  MAIN
        ORG   0003H
        LJMP  TINT0 ;轉(zhuǎn)向外部中斷子程序(暫停功能)
                ORG   0013H
                LJMP  TINT1        ;轉(zhuǎn)向外部中斷1服務(wù)程序
                ORG   000BH
                LJMP  T0INT ;轉(zhuǎn)向定時中斷0服務(wù)程序
                ORG   0030H
                ;P0口接數(shù)碼管的段選(高電平有效)
                ;P2.0-P2.3接數(shù)碼管的位選(低電平有效)
MAIN:
     MOV P2,#00H ;初始化P2口
     MOV P0,#3FH ;讓6位數(shù)碼管顯示0
     SETB EA;中斷允許
     SETB ET0;定時器0中斷允許
     SETB EX0;外部中斷0允許
         SETB EX1 ;外部中斷1允許
         ;SETB IE1
         SETB PX1 ;外部中斷1為高優(yōu)先級
         SETB PX0 ;外部中斷0位高優(yōu)先級
         ;SETB PS
         CLR  PT0 ;定時器中斷0位低優(yōu)先級
     MOV TMOD,#01H;置定時器0為工作方式1
     MOV TH0,#3CH  ;12MHz50ms初值
     MOV TL0,#0B0H
     MOV R5,#00H
     MOV R6,#00H
         JB P1.0,MAIN
     SETB TR0  ;啟動定時器
         JNB                P3.0, S1OK        ;若按下P3.0,則跳轉(zhuǎn)至S1OK
         JNB                P3.1, S2OK        ;若按下P3.1,則跳轉(zhuǎn)至S2OK
         JNB                P3.4, S3OK        ;若按下P3.4,則跳轉(zhuǎn)至S3OK
         JNB                P3.6, S4OK        ;若按下P3.6,則跳轉(zhuǎn)至S4OK
         JMP                MAIN  

S1OK:
         MOV R4,#2
         ACALL DISP
         SJMP MAIN

S2OK:
         MOV R4,#3
         ACALL DISP
         SJMP MAIN

S3OK:
         MOV R4,#4
         ACALL DISP
         SJMP MAIN

S4OK:
         MOV R4,#5
         ACALL DISP
         SJMP MAIN




;==========================================
;=========鍵盤掃描程序=====================
DISP:
         
    ;計時顯示掃描
    ;R4為時鐘,R5為分,R6為秒
    ;顯示小時的十位
     MOV A,R4
     MOV B,#10
     DIV AB
     LCALL CHABIAO
     MOV P2,#03EH
     MOV P0,A
     LCALL DELAY1
     MOV P2,#03FH
     ;顯示小時的個位
     MOV A,B
     LCALL CHABIAO
     MOV P2,#03DH
     MOV P0,A
     LCALL DELAY1
     MOV P2,#03FH
     ;顯示分鐘的十位
     MOV A,R5
     MOV B,#10
     DIV AB
     LCALL CHABIAO
     MOV P2,#03BH
     MOV P0,A
     LCALL DELAY1
     MOV P2,#03FH
     ;顯示分鐘的個位
     MOV A,B
     LCALL CHABIAO
     MOV P2,#037H
     MOV P0,A
     LCALL DELAY1
     MOV P2,#03FH
     ;顯示秒鐘的十位
     MOV A,R6
     MOV B,#10
     DIV AB
     LCALL CHABIAO
     MOV P2,#02FH
     MOV P0,A
     LCALL DELAY1
     MOV P2,#03FH
     ;顯示秒鐘的個位
     MOV A,B
     LCALL CHABIAO
     MOV P2,#01FH
     MOV P0,A
     LCALL DELAY1
     MOV P2,#03FH
//         JNB                P3.0, S1OK        ;若按下P3.0,則跳轉(zhuǎn)至S1OK
//         JNB                P3.1, S2OK        ;若按下P3.1,則跳轉(zhuǎn)至S2OK
//         JNB                P3.4, S3OK        ;若按下P3.4,則跳轉(zhuǎn)至S3OK
//         JNB                P3.6, S4OK        ;若按下P3.6,則跳轉(zhuǎn)至S4OK
         CJNE R0,#20,DISP
         MOV R0,#00H
         DEC R6
         CJNE R6,#0FFH,DISP
         MOV R6,#59
     DEC R5
     CJNE R5,#0FFH,DISP
     MOV R5,#59
     DEC R4
     CJNE R4,#0FFH,DISP
         MOV R4,#0
     CLR TR0
         RET

         
//     RET

;====================================
DELAY1:                MOV                20H,        #1                 ;延時20ms
                        AJMP    DEL1
DELAY2:                MOV     20H,    #100         ;延時2s
                        AJMP    DEL1
DEL1:                MOV                40H,        #125         ;延時子程序的跳轉(zhuǎn)程序
DEL11:                MOV                30H,        #20
DEL12:                DJNZ        30H,        DEL12
                        DJNZ        40H,        DEL11
                        DJNZ        20H, DEL1
               
                        RET
;==================================
;查表指令
CHABIAO:
     MOV DPTR,#TAB
     MOVC A,@A+DPTR
     RET
;============================
;定時中斷子程序

T0INT:
         INC R0
     MOV TH0,#3CH
     MOV TL0,#0B0H
     RETI     
EXIT:
     RETI
;================================================
;外部中斷0子程序
TINT0:
   
     CPL TR0     
     RETI

TINT1:
         JMP MAIN
         RETI

TAB:        DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H
                DB 7FH,6FH,77H,7CH,58H,5EH,79H,71H

                END

Pet.png (91.22 KB, 下載次數(shù): 81)

Pet.png
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:786805 發(fā)表于 2020-6-26 21:07 | 只看該作者
不好意思,發(fā)了才發(fā)現(xiàn)程序沒整理整齊
回復

使用道具 舉報

板凳
ID:235200 發(fā)表于 2020-6-28 01:33 | 只看該作者
R5 R6寄存器在按不同的鍵時未進行重新初始化
回復

使用道具 舉報

地板
ID:786805 發(fā)表于 2020-6-28 09:52 | 只看該作者
csmyldl 發(fā)表于 2020-6-28 01:33
R5 R6寄存器在按不同的鍵時未進行重新初始化

您的意思是說在下面的每個按鍵里面加上“MOV R5,#0    MOV R6,#0” 嗎?或者說應該怎么改?麻煩大佬再幫我看看,謝謝了。
S1OK:
         MOV R4,#2
         ACALL DISP
         SJMP MAIN

S2OK:
         MOV R4,#3
         ACALL DISP
         SJMP MAIN

S3OK:
         MOV R4,#4
         ACALL DISP
         SJMP MAIN

S4OK:
         MOV R4,#5
         ACALL DISP
         SJMP MAIN
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美一级黄色免费看 | www国产成人免费观看视频,深夜成人网 | 久久青青| 污视频免费在线观看 | 免费看的黄网站 | 情侣av| 婷婷色网 | 亚洲一区二区免费看 | 久久久国产网站 | 97影院在线午夜 | 欧美成视频 | 成人av一区 | 欧美精品乱码久久久久久按摩 | 色性av | 亚洲国产aⅴ成人精品无吗 综合国产在线 | 国产日韩一区 | 美女天天操 | jav成人av免费播放 | www.欧美.com| a级大毛片 | 久久久久国产一区二区三区 | 亚洲精品自拍 | 国产a视频 | 亚洲精品久久久久久久久久久 | 亚洲欧洲成人av每日更新 | 中文字幕一区二区三区四区五区 | 天天操操 | 在线看一区二区 | 久久se精品一区精品二区 | www日本高清 | 日本网站在线看 | 久久av一区二区三区 | 国产成人精品午夜 | 黄色av观看 | 91久久| 亚洲国产欧美一区 | 国产精品一区二区久久久久 | 蜜桃精品视频在线 | 久久在线 | 天天拍天天操 | 成人午夜视频在线观看 |