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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

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

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:786805 發(fā)表于 2020-6-26 21:02 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
所要實現(xiàn)的功能:
1.外部放置的鍵盤不少于四個,用來設(shè)定不同的倒計時時間;
2.當時間到達設(shè)定值時,發(fā)光二極管和蜂鳴器發(fā)出信;(這個還沒加進去)
3在數(shù)碼管上顯示倒計時時間。
問題描述:
當?shù)谝淮伟聪码娫存I再按所需要倒計時的時間時,可以正常倒計時,暫停鍵也正常。但當我想要重置并且選擇另一個時間作為倒計時時,數(shù)碼管只顯示那個時間,但是沒有進行倒計時,然后再按下其他按鍵也沒有反應(yīng)了。
代碼如下:
        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ù)

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

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

您的意思是說在下面的每個按鍵里面加上“MOV R5,#0    MOV R6,#0” 嗎?或者說應(yīng)該怎么改?麻煩大佬再幫我看看,謝謝了。
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
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 色播99 | 亚洲激情自拍偷拍 | 天天综合干 | 亚洲九九| 日本免费在线 | 国产成人在线观看免费 | 五月综合激情在线 | 色免费视频 | 欧美日韩国产精品激情在线播放 | 欧美日韩在线一区 | 亚洲精品免费视频 | av网站免费 | 久久国内 | 99精品99| 久久综合一区二区三区 | 毛片软件 | 欧美激情 亚洲 | 国产在线精品一区 | 欧美高清视频一区 | 中文字幕亚洲区一区二 | 中文字幕精品一区 | 天天干天天干 | 免费观看a级毛片在线播放 黄网站免费入口 | 日韩中文字幕av | 亚洲午夜精品一区二区三区他趣 | 中文字幕 在线观看 | 亚洲国产精品久久久久婷婷老年 | 亚洲国产一区二区视频 | 欧美日韩精品中文字幕 | 亚洲精品高清视频 | av色站| 欧美嘿咻 | av日韩精品 | 91精品国产综合久久久久蜜臀 | 欧美成人高清视频 | 毛片入口 | 日日天天 | 7777精品伊人久久精品影视 | 亚洲视频观看 | 欧美日韩国产一区二区三区 | 欧美a级网站 |