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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 2291|回復(fù): 1
收起左側(cè)

電子琴程序在單片機(jī)上運(yùn)行時(shí)有幾個(gè)按鍵按了后不會(huì)停止

[復(fù)制鏈接]
ID:991401 發(fā)表于 2021-12-13 12:42 | 顯示全部樓層 |閱讀模式
120黑幣
本帖最后由 2449748936 于 2021-12-13 16:52 編輯

ORG   00H           ;主程序起始地址
        JMP   START          ;跳至主程序
        ORG   0BH            ;T0中斷起始地址
        JMP   TIM0           ;跳至T0中斷子程序            設(shè)置初值
START: MOV  TMOD,#00000001B ;設(shè)T0在MODE1
        MOV   IE,#10000010B  ;開通中斷
        SETB  TR0            ;啟動(dòng)定時(shí)器T0                 啟動(dòng)定時(shí)器
L1:    ACALL KEY    ;調(diào)用KEY,判斷是否有鍵按下             開始掃描
        CLR   EA             ; 中斷屏蔽
        JB    F0,L1    ;沒按則F0=1,有按則F0=0
        MOV   A,22H    ;將取碼指針暫存地址載入A
        RL    A              ;向左移1位乘
       MOV   DPTR,#TABLE    ;存表
        MOVC  A,@A+DPTR ;至TABLE取碼,取T的值
        MOV   TH0,A     ;取到的高位字節(jié)存入TH0
        MOV   21H,A    ;取到的高位字節(jié)存入(21H)
        MOV   A,22H          ;再載入取碼指針值
        RL    A              ;向左移1位
        INC   A              ;加1
        MOVC  A,@A+DPTR ;至表取低位字節(jié)計(jì)數(shù)值
        MOV   TL0,A     ;取到的低位字節(jié)存入TL0            取碼裝入定
        MOV   20H,A     ;取低位字節(jié)存入(20H)             時(shí)器初值
L2:    ACALL KEY       ;調(diào)用KEY判斷有按否?
        SETB  EA             ;開通中斷
        JB    F0,L1          ;有按否?
        JMP   L2             ;有則跳至L2                  再掃描確認(rèn)
KEY:   SETB  F0             ;設(shè)F0=1
        MOV   R3,#0F7H       ;掃描初值(P3.3=0)
        MOV   R1,#00H        ;取碼指針初值
L3:    MOV   A,R3           ;載入掃描指針
         MOV   P3,A      ;輸出至P3,開始掃描
         MOV   A,P3           ;讀入P3              
         SETB   C             ;令C=1
         MOV   R5,#04H        ;檢測(cè)P3.7~P3.4
L4:    RLC   A              ;左移一位
         JNC   KEYIN     ;檢測(cè)行C=0,表示被按
         INC   R1             ;沒按則取碼指針加1
         DJNZ  R5,L4          ;4列檢測(cè)完畢了?
         MOV   A,R3           ;載入掃描指針
         SETB   C             ;使C=1
         RRC   A              ; 掃描下一行
         MOV   R3,A     ;存回R3掃描指針寄存器
         JC    L3       ;C=0表示行掃描完畢
         RET            ;子程序返回                         掃描子程序
  KEYIN: MOV   22H,R1   ;取碼指針存入22H地址
         CLR   F0       ;令F0=0                            存指針并標(biāo)出
         RET            ;子程序返回                         有按鍵(F0=0)

  TIM0:  PUSH  ACC      ;將A的值暫存堆棧
         PUSH  PSW      ;將PSW的值暫存于堆棧
         MOV   TL0,20H  ;重設(shè)計(jì)數(shù)值
         MOV   TH0,21H  ;
         CPL   P1.5     ;將P2.4位反相
         POP   PSW      ;至堆棧取回PSW的值
         POP   ACC      ;至堆棧取回A的值
         RETI           ;返回主程序                          中斷子程序
  TABLE: DW  64021,64103,64260,64400 ;
         DW  64524,64580,64684,64777 ;
         DW  64820,64898,64968,65030 ;
         DW  65058,65110,65157,65178 ;                        編碼表
         END                         ;                        程序結(jié)束



程序如上圖所示,單片機(jī)下載后有四個(gè)按鍵按下后不會(huì)自動(dòng)終止,需要再次點(diǎn)擊第一個(gè)按鍵才能終止是為什么?

回復(fù)

使用道具 舉報(bào)

ID:983020 發(fā)表于 2021-12-16 09:46 | 顯示全部樓層
不理解這是什么形式的程序,是轉(zhuǎn)文本的時(shí)候沒轉(zhuǎn)清嗎,可以發(fā)一個(gè)清晰的嘛
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 亚洲精品国产精品国自产在线 | 日本精品视频在线观看 | 精品一区二区在线看 | 极品销魂美女一区二区 | 91亚洲国产成人久久精品网站 | 人人干在线| 男人天堂社区 | 欧美激情一区 | 国产成人在线一区二区 | 逼逼网| 91亚洲一区 | 天天干天天插 | 亚洲欧美精品久久 | 欧美一区二区三区大片 | 国产精品久久二区 | 免费在线成人 | 精品99在线 | 91久久| 免费欧美| 日日干日日操 | 亚洲一区二区在线播放 | 一本大道久久a久久精二百 国产成人免费在线 | 国产aⅴ | 中文字幕在线视频精品 | 鸳鸯谱在线观看高清 | 亚洲综合色视频在线观看 | 欧美日韩精品在线一区 | 91久久 | 91大神在线看 | 久久午夜视频 | 国产视频二区在线观看 | 国产精品久久久久久久岛一牛影视 | 爱综合| 能看的av网站 | 国产99久久精品一区二区300 | 手机在线不卡av | 日韩精品一区二区不卡 | 亚洲视频二区 | 日韩精品一区二区三区中文字幕 | 91精品久久久久 | av网站在线免费观看 |