娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2025年01月25日(星期六)

2018年01月25日 | 合泰單片機矩陣鍵盤程序

發(fā)布者:mb5362443 來源: eefocus關(guān)鍵字:合泰單片機  矩陣鍵盤 手機看文章 掃描二維碼
隨時隨地手機看文章

合泰HOLTE單片機 寫的,對初學者來說里面的分析思路很有幫助。 
#include ht48c10-1.inc 
;------------------------------------------------------- 
data .section ’data’            ;== data section ==


temp    db      ?               ;temporary data register 
disp    db      ?               ;key display register 
count1  db      ?               ;delay loop counter 
mask    db      ?               ;mask register 
matrix  db      ?               ;key matrix register 
;------------------------------------------------------- 
code .section at 0 ’code’       ;== program section == 
        org     00h             ; 
        jmp     start           ; 
        org     04h             ;external interrupt subroutine 
        reti                    ;for guarantee 
        org     08h             ;timer/event 0 interrupt subroutine 
        reti                    ;for guarantee 
        org     0ch             ;timer/event 1 interrupt subroutine 
        reti                    ;for guarantee 
         
start:                          ; 
        clr     iNTC            ;initialize registers 
        clr     tmrc            ;to guarantee performance 
        clr     tmr             ;(interrupts) 
        set     PAC             ;(ports) 
        set     pbc             ;(input mode) 
        set     pCC             ; 
main: 
        set     pac         ;(1);set port A to input mode 
        clr     pbc             ;set port B to output mode 
        clr     pa              ;zero port A (latch=0) 
        set     pb              ;off LED
keyloop:                        ; 
         MOV      a,0feh      ;(2);sCAN first row of keys 
         MOV      matrix,a        ;hold scan code 
         MOV      pac,a           ;pa.0 output 0 (latch) 
         MOV      a,pa            ;read input state 
        cpl     acc             ;;distill input state 
        and     a,0f0h          ;; 
        sz      acc             ;if any input? 
        jmp     get_key         ;yes. get input info 
         MOV      a,0fdh      ;(2);no. scan second row 
         MOV      matrix,a        ;hold scan code 
         MOV      pac,a           ;pa.1 output 0 (latch) 
         MOV      a,pa            ;read input state 
        cpl     acc             ;;distill input state 
        and     a,0f0h          ;; 
        sz      acc             ;if any input? 
        jmp     get_key         ;yes. get input info 
         MOV      a,0fbh      ;(2);no. scan third row 
         MOV      matrix,a        ;hold scan code 
         MOV      pac,a           ;pa.2 output 0 (latch) 
         MOV      a,pa            ;read input state 
        cpl     acc             ;;distill input state 
        and     a,0f0h          ;; 
        sz      acc             ;if any input? 
        jmp     get_key         ;yes. get input info 
         MOV      a,0f7h      ;(2);no. scan fourth row 
         MOV      matrix,a        ;hold scan code 
         MOV      pac,a           ;output pa.3 0 (latch) 
         MOV      a,pa            ;read input state 
        cpl     acc             ;;distill input state 
        and     a,0f0h          ;; 
        sz      acc             ;if any input? 
        jmp     get_key         ;yes. get input info 
        jmp     keyloop         ;repeat from keyloop 
get_key:                        ;get input key info 
        call    delays          ;debounce 
         MOV      a,pa            ;test port A 
        or      a,0fh           ; 
        cpl     acc             ; 
        sz      acc             ;any key hold? 
        jmp     go_on           ;yes. go on (some key is pressed) 
        jmp     keyloop         ;no. return to scan key again 
go_on: 
        call    key_in     ;(3) ;calculate table index 
        tabrdl  disp       ;(10);load display data 
         MOV      a,disp          ;;output data to port B 
         MOV      pb,a       ;(11);; 
        jmp     keyloop         ;repeat keyloop 
key_in proc                     ;get key number 
         MOV      a,pa            ;;hold port A state 
         MOV      temp,a     ;(4) ;; 
   get_release:                 ;wait for the key to be released 
         MOV      a,pa            ;;test port A state 
        cpl     acc             ;; 
        and     a,0f0h          ;; 
        sz      acc        ;(6) ;if release? 
        jmp     get_release     ;no. keep up waiting 
         MOV      a,0fh           ;yes. calculate key number 
        andm    a,matrix   ;(7) ;mask low nibble of scan code 
         MOV      a,0             ;keep table index at register A 
   get_row:                     ;calculate row number 
        rrc     matrix          ;;check each bit to get row number 
        snz     status.0        ;; 
        jmp     get_next        ;if bingo goto get_next 
        clr     c               ; 
        add     a,4h       ;(8) ;table index +4 (4 keys a row) 
        jmp     get_row         ;continue calculating 
   get_next:                    ; 
         MOV      tblp,a          ;hold table index at register TBLP 
         MOV      a,0efh          ; 
         MOV      mask,a          ;; mask = 0111 1111 
         MOV      a,0fh           ; 
        orm     a,temp          ;; temp = XXXX 1111 
   get_column:                  ;calculate column number 
         MOV      a,temp          ;load temp 
        xor     a,mask          ;;test column number 
        snz     z               ;; 
        jmp     index           ;no. test next column 
        ret                     ;yes. return (TBLP) 
   index:                       ;next column 
        inc     tblp       ;(9) ;table index +1 
        set     c               ; 
        rlc     mask            ;shift mask left (LSB=1) 
        jmp     get_column      ;repeat get_column 
key_in endp 
delays proc                     ;delay subroutine 
         MOV      a,0ffh          ;load counter 
         MOV      count1,a        ; 
d1: 
        sdz     count1          ;count down count1 
        jmp     d1 
        ret 
delays  endp 


關(guān)鍵字:合泰單片機  矩陣鍵盤 引用地址:合泰單片機矩陣鍵盤程序

上一篇:HT1380實時時鐘程序
下一篇:HT48R50A的 RS232串口示例程序

推薦閱讀

  據(jù)外媒報道,研究人員已經(jīng)開發(fā)出一種無人機的控制算法,讓它們模仿自行車和汽車通過城市地區(qū)的運動。許多無人機的應用大部分出現(xiàn)在空曠的空域,但是在街道上安全地移動通過密集的城區(qū)也是一個方便的功能。下面就隨網(wǎng)絡通信小編一起來了解一下相關(guān)內(nèi)容吧。  研究人員已經(jīng)提出了一種無人機控制系統(tǒng),通過向它們展示汽車和汽車的前行模式,使無人機能夠...
人工智能的普及,讓機器人寫新聞不再是天方夜譚。近年來,美聯(lián)社的Wordsth、華盛頓郵報的Heliograf、紐約時報的blossom、新華社的快筆小新、騰訊的Dreamwrir、今日頭條的張小明等新聞機器人輪番登場,大有一番取代傳統(tǒng)新聞記者的態(tài)勢。 新聞機器人實質(zhì)上是一種基于算法程序的新聞內(nèi)容生產(chǎn),相關(guān)機器人(實際上是寫作軟件)會根據(jù)算法來抓取數(shù)據(jù)、分析數(shù)...
臨近新春的西藏,沒有和風細雨,沒有游客喧鬧。車行駛在高山與平原間,冰封的雪山、圣潔的湖泊在湛藍天空的映襯下熠熠生輝。春節(jié)前,記者行進在阿里與藏中電網(wǎng)聯(lián)網(wǎng)工程的施工沿線,記錄這條“光明線”“幸福線”上建設(shè)者們的點點滴滴。 風雪中鏖戰(zhàn)吉隆 吉隆,為藏語“舒適村”之意。然而這里的冬天卻不那么“舒適”。上午風和日麗,一到下午卻狂風呼...
自從小米MIX引領(lǐng)全面屏發(fā)展以來,手機屏占比越來越高,但隨之而來的并不是手機尺寸的縮小,而是進一步增大,這個狀況也導致許多鐘愛小屏手機的用戶沒有理想的產(chǎn)品可用。隨著今年iPhone 12 mini的推出,已經(jīng)有許多手機廠商將視線重新移到小屏手機上來。近日,有國外官網(wǎng)曝光了一組索尼Xperia Compact的渲染圖,該機就搭載了一塊5.5英寸的水滴全面屏。得益...

史海拾趣

問答坊 | AI 解惑

LCD軟件

點陣液晶仿真軟件…

查看全部問答∨

電子設(shè)計典型例程電子設(shè)計典型例程

電子設(shè)計典型例程電子設(shè)計典型例程…

查看全部問答∨

示波器進展(不斷更新中。。。)

1、全部器件圖,未焊接前: 2、由于有些器件還沒去買,所以只焊接了部分器件:…

查看全部問答∨

能否開啟這幾個功能???

很久沒來了,想直接查看一下這段時間以來我沒有拜讀的貼子,可是找了半天也沒有找到一個方便的方法能把這些貼子搜出來。我想能不能在“搜索”里加上一個“未讀”選項,可以直接搜出我未曾讀過的貼子??或者直接加一個未讀功能卡也可以。 還有,有 ...…

查看全部問答∨

請問誰有關(guān)于水塔供水系統(tǒng)控制器設(shè)計與實現(xiàn)的程序與電路圖?

該項目要求設(shè)計單片機最小系統(tǒng),并運用所設(shè)計的最小系統(tǒng)對水塔供水系統(tǒng)的水位、壓力進行監(jiān)測,對水泵進行自動啟、停控制,實現(xiàn)每天定時啟動自動停止,以及水位、壓力超限告警,發(fā)揮部分要求能夠在壓力過低時進行自動補償保持恒壓供水。 要求系統(tǒng)具 ...…

查看全部問答∨

興大豪科技高薪誠聘以下職位

興大豪科技高薪誠聘以下職位 VC工程師 待遇在8k 精通VC++ ,熟悉SQLServer數(shù)據(jù)庫和基于socket網(wǎng)絡編程;有數(shù)控系統(tǒng)人機界面開發(fā)經(jīng)驗者優(yōu)先考慮。 硬件開發(fā)工程師  待遇在8k 崗位一:有電機控制項目5年以上開發(fā)經(jīng)驗,熟悉DSP編程和電 ...…

查看全部問答∨

用ARM讀18B20

                                 哪位大俠做過這樣的程序,在STM32上,不知好做不?51上實現(xiàn)了。…

查看全部問答∨

USART上電總會錯誤的進入中斷

真見鬼,TXEIE關(guān)閉,IDLEIE關(guān)閉,上電時候還是產(chǎn)生這兩個中斷往服務程序里跑. 已經(jīng)是先設(shè)置USART->CR寄存器后開中斷允許了,已經(jīng)把SR能直接清除的先清除了, 還往中斷里跑. 而且在初試化IO設(shè)為AF之后,接著USART_Init(),這兩者之間如果不加延 ...…

查看全部問答∨

實習學STM32進展&求救二

上周五也就是第三天中午,老板拿來一個新板子,是萬利的,附帶的資料都挺完整的,,在IAR上也跑通了。 雖然在調(diào)試時費了不少心思。但總算可以做到在SRAM里仿真。 就是奇怪,一是沒辦法用FLASH仿真。 還有就是我們沒辦法通過它生成BIN 和HEX文件 ...…

查看全部問答∨
小廣播
設(shè)計資源 培訓 開發(fā)板 精華推薦

最新單片機文章

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發(fā)圈

 
機器人開發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號 京ICP備10001474號-1 電信業(yè)務審批[2006]字第258號函 京公網(wǎng)安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 鱼台县| 鹤庆县| 额济纳旗| 东方市| 南澳县| 红安县| 泸西县| 弥勒县| 泸水县| 时尚| 朔州市| 梨树县| 汶川县| 宿松县| 海南省| 镇巴县| 南通市| 广德县| 海宁市| 平乐县| 南投市| 新丰县| 阜宁县| 南汇区| 万安县| 岳普湖县| 芒康县| 合水县| 凤翔县| 嵊州市| 甘德县| 宜春市| 四平市| 师宗县| 抚顺县| 会理县| 从江县| 东明县| 日照市| 长汀县| 瓦房店市|