亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ht7289b.asm

?? LED顯示和按鍵管理芯片HT7289B,功能超強: SPI接口
?? ASM
字號:
; ht7289b.asm
; ht48f10e, 4.0MHz XTAL
; Created by u-hwa 2008,8
#include "ht48f10e.inc"

; spi pin defination
#define CS     PB.0
#define SDA    PB.1
#define SCK    PB.2 
#define CS_C   PBC.0
#define SDA_C  PBC.1
#define SCK_C  PBC.2


; variables
var_da      .section     'data'
timeCount      db          ?
byteCount      db          ?
bitCount       db          ?
temp           db          ?
count          db          ?
flag           db          ?
byteCount_1    db          ?
spiBuffer      db    16 dup(?)
;
#define        KEY_ARQ     flag.0       ; 重發標志
#define        DAT_ARQ     flag.1
;
reset_co    .section    at 0000h 'code' 
        jmp     Start 
start_co    .section    'code'
Start:
        clr     INTC            ; 關中斷
        mov     A, 05h
        mov     TMR, A
        mov     A, 93h          ; fosc/16, 打開timer
        mov     TMRC, A
        mov     A, 0ffh
        mov     PBC, A          ; 上電時全作為輸入

        mov     A, 9Ch
        mov     timeCount, A
Loop:
        snz     TF
        jmp     Loop            ; 等待4ms定時到

        clr     INTC            ; 清TF標志
        mov     A, 05h
        mov     TMR, A
        clr     WDT             ; 清WDT

        siz     timeCount       
        jmp     Loop            ; 等待100ms
  
        mov     A, 9Ch
        mov     timeCount, A   

        clr     KEY_ARQ
        clr     DAT_ARQ
; *********************************************************         
; =================100ms讀取一次按鍵=======================
; *********************************************************
ReadKey:
        mov     A, 0C0h               ; 讀鍵盤指令
        mov     spiBuffer[0], A
        mov     A, 03h
        mov     spiBuffer[1], A
        mov     A, 0Ah
        mov     spiBuffer[2], A
        mov     A, 03h                
        mov     byteCount, A
        call    PutSPI
        
        call    Delay20us            ; 延時20us讀返回值(3 bytes)

        call    GetSPIByte       
        mov     spiBuffer[0], A
        call    GetSPIByte
        mov     spiBuffer[1], A
        call    GetSPIByte
        mov     spiBuffer[2], A
        
        call    StopSPI               ; 結束SPI通訊
; 
        mov     A, spiBuffer[0]
        xor     A, 0ACh
        snz     Z
        jmp     KeyError              ; 數據無效

        mov     A, spiBuffer[2]
        xor     A, 0Ah
        snz     Z
        jmp     KeyError              ; 數據無效

        mov     A, spiBuffer[1]
        and     A, 7fh
        sub     A, 38h
        sz      C
        jmp     KeyEnd                ; 無按鍵
; 有效按鍵處理
        sz      spiBuffer[1].7
        jmp     KeyEnd                ; 本演示程序不處理連擊鍵

        mov     A, spiBuffer[1]
        xor     A, 00h
        sz      Z
        jmp     DoKey0            ; 處理0#鍵
 
        xor     A, 01h
        sz      Z
        jmp     DoKey1            ; 處理1#鍵
        
        xor     A, 02h XOR 01h
        sz      Z
        jmp     DoKey2            ; 處理2#鍵

        xor     A, 03h XOR 02h
        sz      Z
        jmp     DoKey3            ; 處理3#鍵

        xor     A, 08h XOR 03h
        sz      Z
        jmp     DoKey8            ; 處理8#鍵

        xor     A, 09h XOR 08h
        sz      Z
        jmp     DoKey9            ; 處理9#鍵

        xor     A, 0Ah XOR 09h
        sz      Z
        jmp     DoKeyA            ; 處理A#鍵

        xor     A, 0Bh XOR 0Ah
        sz      Z
        jmp     DoKeyB            ; 處理B#鍵

        xor     A, 10h XOR 0Bh
        sz      Z 
        jmp     DoKey10           ; 處理10#鍵
     
        xor     A, 11h XOR 10h
        sz      Z
        jmp     DoKey11           ; 處理11#鍵

        xor     A, 12h XOR 11h
        sz      Z
        jmp     DoKey12           ; 處理12#鍵

        xor     A, 13h XOR 12h
        sz      Z
        jmp     DoKey13           ; 處理13#鍵

        xor     A, 18h XOR 13h
        sz      Z
        jmp     DoKey18           ; 處理18#鍵

        xor     A, 19h XOR 18h
        sz      Z
        jmp     DoKey19           ; 處理19#鍵

        xor     A, 1Ah XOR 19h
        sz      Z
        jmp     DoKey1A           ; 處理1A#鍵
      
        xor     A, 1Bh XOR 1Ah
        sz      Z
        jmp     DoKey1B           ; 處理1B#鍵
        jmp     KeyEnd            ; 所有鍵結束

; 0# key     
DoKey0:         
; 顯示復位
        mov     A, 0D0h
        mov     spiBuffer[0], A
        mov     A, 0AAh
        mov     spiBuffer[1], A
        mov     A, 55h
        mov     spiBuffer[2], A
        mov     A, 0Ah
        mov     spiBuffer[3], A

        mov     A, 04h
        mov     byteCount, A
        jmp     SendData

; 1# key
DoKey1:
; 直接顯示: DIG0-DIG7對應顯示A-DP段
        mov     A, 0D6h
        mov     spiBuffer[0], A
        mov     A, 80h
        mov     spiBuffer[1], A
        mov     A, 80h
        mov     spiBuffer[2], A
        mov     A, 40h
        mov     spiBuffer[3], A
        mov     A, 20h
        mov     spiBuffer[4], A
        mov     A, 10h
        mov     spiBuffer[5], A
        mov     A, 08h
        mov     spiBuffer[6], A
        mov     A, 04h
        mov     spiBuffer[7], A
        mov     A, 02h
        mov     spiBuffer[8], A
        mov     A, 01h
        mov     spiBuffer[9], A
        mov     A, 0Ah
        mov     spiBuffer[10], A

        mov     A, 0Bh
        mov     byteCount, A   
        jmp     SendData

; 2# key
DoKey2:
; 譯碼顯示: DIG0-DIG7對應顯示數字1-5,6(帶小數點),7-8
        mov     A, 0DCh
        mov     spiBuffer[0], A
        mov     A, 80h
        mov     spiBuffer[1], A
        mov     A, 01h
        mov     spiBuffer[2], A
        mov     A, 02h
        mov     spiBuffer[3], A
        mov     A, 03h
        mov     spiBuffer[4], A
        mov     A, 04h
        mov     spiBuffer[5], A
        mov     A, 05h
        mov     spiBuffer[6], A
        mov     A, 86h
        mov     spiBuffer[7], A
        mov     A, 07h
        mov     spiBuffer[8], A
        mov     A, 08h
        mov     spiBuffer[9], A
        mov     A, 0Ah
        mov     spiBuffer[10], A

        mov     A, 0Bh
        mov     byteCount, A
        jmp     SendData

; 3# key
DoKey3:
; 譯碼顯示: DIG0-DIG7對應顯示數字A-F, [blank], -
        mov     A, 0DCh
        mov     spiBuffer[0], A
        mov     A, 80h
        mov     spiBuffer[1], A
        mov     A, 0ah
        mov     spiBuffer[2], A
        mov     A, 0bh
        mov     spiBuffer[3], A
        mov     A, 0ch
        mov     spiBuffer[4], A
        mov     A, 0dh
        mov     spiBuffer[5], A
        mov     A, 0eh
        mov     spiBuffer[6], A
        mov     A, 0fh
        mov     spiBuffer[7], A
        mov     A, 10h
        mov     spiBuffer[8], A
        mov     A, 1eh
        mov     spiBuffer[9], A
        mov     A, 0Ah
        mov     spiBuffer[10], A

        mov     A, 0Bh
        mov     byteCount, A 
        jmp     SendData

; 8# key    
DoKey8:
; 位閃爍: DIG5閃爍
        mov     A, 0D0h
        mov     spiBuffer[0], A
        mov     A, 10h
        mov     spiBuffer[1], A
        mov     A, 04h
        mov     spiBuffer[2], A
        mov     A, 0Ah
        mov     spiBuffer[3], A

        mov     A, 04h
        mov     byteCount, A
        jmp     SendData

; 9# key
DoKey9:
; 段閃爍: DIG5的DP段閃爍
        mov     A, 0D0h
        mov     spiBuffer[0], A
        mov     A, 1Dh
        mov     spiBuffer[1], A
        mov     A, 01h
        mov     spiBuffer[2], A
        mov     A, 0Ah
        mov     spiBuffer[3], A

        mov     A, 04h
        mov     byteCount, A
        jmp     SendData  
      
; A# key        
DoKeyA:
; 閃爍頻率: 1Hz
        mov     A, 0D0h
        mov     spiBuffer[0], A
        mov     A, 20h
        mov     spiBuffer[1], A
        mov     A, 01h
        mov     spiBuffer[2], A
        mov     A, 0Ah
        mov     spiBuffer[3], A

        mov     A, 04h
        mov     byteCount, A
        jmp     SendData

; B# key
DoKeyB:
; 閃爍頻率: 5Hz
        mov     A, 0D0h
        mov     spiBuffer[0], A
        mov     A, 20h
        mov     spiBuffer[1], A
        mov     A, 03h
        mov     spiBuffer[2], A
        mov     A, 0Ah
        mov     spiBuffer[3], A

        mov     A, 04h
        mov     byteCount, A
        jmp     SendData

; 10# key
DoKey10:
; 亮度調節: 1/16(最暗)
        mov     A, 0D0h
        mov     spiBuffer[0], A
        mov     A, 30h
        mov     spiBuffer[1], A
        mov     A, 01h
        mov     spiBuffer[2], A
        mov     A, 0Ah
        mov     spiBuffer[3], A

        mov     A, 04h
        mov     byteCount, A
        jmp     SendData

; 11# key
DoKey11:
; 亮度調節: 1/4
        mov     A, 0D0h
        mov     spiBuffer[0], A
        mov     A, 30h
        mov     spiBuffer[1], A
        mov     A, 04h
        mov     spiBuffer[2], A
        mov     A, 0Ah
        mov     spiBuffer[3], A

        mov     A, 04h
        mov     byteCount, A
        jmp     SendData

; 12# key
DoKey12:
; 亮度調節: 1/2
        mov     A, 0D0h
        mov     spiBuffer[0], A
        mov     A, 30h
        mov     spiBuffer[1], A
        mov     A, 08h
        mov     spiBuffer[2], A
        mov     A, 0Ah
        mov     spiBuffer[3], A

        mov     A, 04h
        mov     byteCount, A
        jmp     SendData

; 13# key
DoKey13:
; 亮度調節: 全亮
        mov     A, 0D0h
        mov     spiBuffer[0], A
        mov     A, 30h
        mov     spiBuffer[1], A
        mov     A, 00h
        mov     spiBuffer[2], A
        mov     A, 0Ah
        mov     spiBuffer[3], A

        mov     A, 04h
        mov     byteCount, A
        jmp     SendData

; 18# key
DoKey18:
; 位隱顯: DIG0隱顯
        mov     A, 0D0h
        mov     spiBuffer[0], A
        mov     A, 00h
        mov     spiBuffer[1], A
        mov     A, 80h
        mov     spiBuffer[2], A
        mov     A, 0Ah
        mov     spiBuffer[3], A

        mov     A, 04h
        mov     byteCount, A
        jmp     SendData

; 19# key
DoKey19:
; 位顯示: DIG0顯示
        mov     A, 0D0h
        mov     spiBuffer[0], A
        mov     A, 70h
        mov     spiBuffer[1], A
        mov     A, 80h
        mov     spiBuffer[2], A
        mov     A, 0Ah
        mov     spiBuffer[3], A

        mov     A, 04h
        mov     byteCount, A
        jmp     SendData

; 1A# key
DoKey1A:
; 段關閉: DIG1的G段關閉
        mov     A, 0D0h
        mov     spiBuffer[0], A
        mov     A, 09h
        mov     spiBuffer[1], A
        mov     A, 02h
        mov     spiBuffer[2], A
        mov     A, 0Ah
        mov     spiBuffer[3], A

        mov     A, 04h
        mov     byteCount, A
        jmp     SendData

; 1B# key
DoKey1B:
; 段點亮: DIG1的G段電亮
        mov     A, 0D0h
        mov     spiBuffer[0], A
        mov     A, 79h
        mov     spiBuffer[1], A
        mov     A, 02h
        mov     spiBuffer[2], A
        mov     A, 0Ah
        mov     spiBuffer[3], A

        mov     A, 04h
        mov     byteCount, A
        jmp     SendData  
 
; send data               
SendData:
; ******************************************************************************
; ===================連續兩次數據收發至少延時50us==============================
; ******************************************************************************
        call    Delay50us            ; 50us    

        mov     A, byteCount
        mov     byteCount_1, A       ; 備份以重發
        call    PutSPI
        mov     A, byteCount_1
        mov     byteCount, A

        call    Delay20us
        call    GetSPIByte        

        call    StopSPI

        xor     A, 0AAh
        sz      Z
        jmp     KeyEnd
; 接收0xAA應答錯誤
NoAck:  
   ; 延時500us重發
        sz      DAT_ARQ
        jmp     KeyEnd               ; 只重發一次
        
        call    Delay500us   
        set     DAT_ARQ              ; 置DATA已重發標志

        jmp     SendData
; 讀取按鍵代碼錯     
KeyError:   
   ; 延時500us重發
        sz      KEY_ARQ
        jmp     KeyEnd
        
        call    Delay500us
        set     KEY_ARQ              ; 置KEY已重發標志 
        jmp     ReadKey
KeyEnd:
        jmp     Loop

; *********************************************************
; ================== SPI收發程序 ==========================
; *********************************************************
; delay 500us
Delay500us:
        mov     A, 165d
        sdz     ACC
        jmp     $ - 1
        nop
        ret 
; delay 50us
Delay50us:
        mov     A, 15d
        sdz     ACC
        jmp     $ - 1
        nop
        ret

; delay 20us
Delay20us:
        mov     A, 05d
        sdz     ACC
        jmp     $ - 1
        nop
        ret

; Get Data  from SPI
GetSPIByte:                   ; 字節之間時間間隔至少8us
        set     SDA_C             ; SDA as input   
        mov     A, 08h
        mov     bitCount, A
GetSPIByte_1:
        clr     SCK
        nop                       ; SCK拉低至少4us
        nop
        rl      temp
        clr     temp.0

        set     SCK               ; SCK為高至少4us
        nop
        sz      SDA
        set     temp.0
        
        sdz     bitCount
        jmp     GetSPIByte_1
        
        mov     A, temp
        ret

; Put Data to SPI
PutSPI:
        set     SCK              ; SCK輸出高
        clr     SCK_C
        clr     CS               ; CS拉低
        clr     CS_C
        clr     SDA_C    
        call    Delay50us        ; 從CS拉低到SCK下降沿延時50us

        clr     count
PutSPI_1:
        mov     A, count     ; 字節之間時間間隔至少8us 
        clr     BP               ; bank 0
        add     A, offset spiBuffer
        mov     MP0, A
        mov     A, IAR0
        mov     temp, A

        mov     A, 08h
        mov     bitCount, A
PutSPI_2:
        clr     SCK               ; SCK拉低至少4us
        clr     SDA
        sz      temp.7
        set     SDA
        rl      temp
        
        set     SCK               ; SCK為高至少4us
        nop
        sdz     bitCount
        jmp     PutSPI_2
        
        inc     count             ; 下一字節
        sdz     byteCount
        jmp     PutSPI_1

        set     SDA_C             ; 發送完畢SDA作為輸入
        ret
  
; Stop SPI
StopSPI:
        set     CS                ; CS拉高
        ret   

        END
; end of file

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧美一区二区视频| 韩国毛片一区二区三区| 久久午夜老司机| 久久久另类综合| 精品免费99久久| 久久久久久久久久美女| 国产精品久久看| 亚洲国产视频网站| 蜜乳av一区二区| 国产suv精品一区二区6| 国产精品一二二区| heyzo一本久久综合| 日本道色综合久久| 欧美系列日韩一区| 精品欧美乱码久久久久久| 精品国产乱码久久久久久影片| 国产午夜亚洲精品理论片色戒| 国产视频在线观看一区二区三区| 国产精品乱子久久久久| 国产精品乱码人人做人人爱| 亚洲综合激情另类小说区| 亚洲成人动漫在线免费观看| 美腿丝袜亚洲色图| 成人福利视频网站| 欧美肥胖老妇做爰| 成人午夜免费电影| 欧美午夜一区二区三区免费大片| 精品奇米国产一区二区三区| 9191成人精品久久| 国产精品卡一卡二卡三| 久久综合综合久久综合| 色婷婷综合久久久中文一区二区| 欧美精品v日韩精品v韩国精品v| 欧美经典一区二区三区| 亚洲成人1区2区| 成人黄色777网| 久久人人超碰精品| 精品一区二区三区久久久| 欧美妇女性影城| 青娱乐精品在线视频| 欧美猛男男办公室激情| 一区二区三区欧美久久| 色婷婷综合久久久久中文一区二区 | 国产欧美一区二区在线| 久久精品国产亚洲高清剧情介绍| 欧美精品粉嫩高潮一区二区| 亚洲综合久久久久| 欧美一区二区三区四区久久| 天天操天天色综合| 日韩女优制服丝袜电影| 国产成人免费网站| 亚洲一区中文在线| 欧美一区二区免费观在线| 麻豆精品在线看| 中文在线免费一区三区高中清不卡| 国产综合色产在线精品| 国产精品久久毛片av大全日韩| 不卡av在线网| 亚洲18女电影在线观看| 欧美精品在线观看播放| 日本vs亚洲vs韩国一区三区二区 | 丁香桃色午夜亚洲一区二区三区| 欧美一区在线视频| 国产在线播放一区三区四| 亚洲免费观看在线观看| 亚洲亚洲精品在线观看| 国产精品夜夜爽| 一区二区日韩电影| 欧美国产日韩精品免费观看| 欧美日韩一区二区三区在线| 美洲天堂一区二卡三卡四卡视频| 久久久久一区二区三区四区| 在线观看91视频| 国产黄色91视频| 午夜久久电影网| 国产精品看片你懂得 | 精品少妇一区二区三区在线播放| 99re热这里只有精品视频| 欧美精品一区二区三区高清aⅴ| 国产喷白浆一区二区三区| 欧美色欧美亚洲另类二区| 91在线视频播放| 久久99九九99精品| 天天操天天色综合| 亚洲一二三四在线| 亚洲免费观看视频| 日本韩国一区二区| 菠萝蜜视频在线观看一区| 国产成人精品免费| 成人一道本在线| 9人人澡人人爽人人精品| 国产69精品一区二区亚洲孕妇| 国产一区二区三区四区在线观看| 婷婷夜色潮精品综合在线| 91国产精品成人| 欧美三级电影在线看| 欧美一级二级三级蜜桃| 久久久激情视频| 亚洲欧洲成人自拍| 亚洲欧美另类图片小说| 午夜精品久久久| 精品国产乱码久久久久久牛牛| 91精品国产综合久久久久久久| 欧美mv日韩mv| 亚洲一二三区不卡| 成人精品高清在线| 欧美优质美女网站| 久久综合久久综合九色| 在线观看亚洲a| 精品久久久久香蕉网| 亚洲大片在线观看| 国产美女精品在线| 欧美三级电影在线观看| 久久精品日韩一区二区三区| 五月激情丁香一区二区三区| 成人午夜短视频| 亚洲午夜日本在线观看| 国产69精品久久久久毛片| 欧美日本乱大交xxxxx| 亚洲激情网站免费观看| 丁香婷婷综合五月| 欧美变态凌虐bdsm| 黄一区二区三区| 欧美嫩在线观看| 色999日韩国产欧美一区二区| 久久久亚洲国产美女国产盗摄 | 国产麻豆欧美日韩一区| 成人毛片视频在线观看| 欧美精品一区二区三区在线播放 | 欧美日韩一级黄| 亚洲综合在线免费观看| 成人午夜精品一区二区三区| 久久久午夜精品| 日本乱人伦一区| 中文字幕一区二区视频| 成人aa视频在线观看| 国产视频一区二区在线| 成人午夜在线视频| 一个色综合av| 日韩女优制服丝袜电影| 久久99热99| 国产欧美精品日韩区二区麻豆天美| 国产麻豆一精品一av一免费 | 亚洲一级二级在线| 日韩一区二区免费在线电影| 五月天久久比比资源色| 欧美大度的电影原声| 粉嫩在线一区二区三区视频| 欧洲一区在线电影| 激情欧美一区二区| 一区二区三区免费观看| 国产毛片精品一区| 中文字幕一区二区三区四区不卡 | 久久女同性恋中文字幕| 色哟哟一区二区在线观看 | 日本一区二区免费在线| 日本高清不卡aⅴ免费网站| 理论电影国产精品| 亚洲欧美另类小说视频| 久久这里只有精品首页| 欧洲亚洲国产日韩| 成人高清免费观看| 久久亚洲精精品中文字幕早川悠里 | 亚洲精品成人在线| 久久婷婷国产综合精品青草| 欧美三级在线看| 色94色欧美sute亚洲线路一ni| 国内外成人在线视频| 五月激情综合婷婷| 亚洲另类春色校园小说| 国产日产亚洲精品系列| 51精品秘密在线观看| 欧美日韩国产一级| 欧美在线观看视频一区二区 | 国产女主播视频一区二区| 日韩欧美在线影院| 欧美一区日韩一区| 这里是久久伊人| 日韩欧美的一区二区| 欧美成人福利视频| 国产欧美一区二区精品忘忧草| 亚洲精品一区二区三区香蕉 | 午夜欧美视频在线观看| 午夜国产精品一区| 奇米色一区二区三区四区| 丝袜a∨在线一区二区三区不卡| 性欧美大战久久久久久久久| 欧美久久高跟鞋激| 日韩精品一区二| 2021国产精品久久精品| 国产精品理伦片| 欧美三级电影在线看| 精品国产髙清在线看国产毛片| 精品国产网站在线观看| 久久久噜噜噜久久中文字幕色伊伊 | 欧美国产一区视频在线观看| 亚洲天堂a在线| 日韩激情在线观看| 色哟哟精品一区| 欧美一区国产二区|