⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 demo_6961.asm

📁 LED driver 6961 包括初始化
💻 ASM
📖 第 1 页 / 共 3 页
字号:
;.symbols
;==============================================
pt6312_dout      bit      p3.1                  ;set pt6312 dout pin
pt6312_din       bit      p3.1                  ;set pt6312 din  pin
pt6312_clk       bit      p3.4                  ;set pt6312 clk  pin
pt6312_stb       bit      p3.3                 ;set pt6312 stb  pin
;sbit PIN_6961_DI =                  P3^1;
;sbit PIN_6961_DO =                  P3^1;
;sbit PIN_6961_STB =                 P3^3; 
;sbit PIN_6961_CLK =                 P3^4;
srs_flag         bit      20h.0
ubs_flag         bit      20h.1
pgm_flag         bit      20h.2
ran_flag         bit      20h.3
rpt_flag         bit      20h.4
rock_flag        bit      20h.5
jazz_flag        bit      20h.6
am_flag          bit      20h.7
clas_flag        bit      21h.0
hall_flag        bit      21h.1
vol_flag         bit      21h.2
l_flag           bit      21h.3
k1_flag          bit      21h.4
k2_flag          bit      21h.5
k3_flag          bit      21h.6
khz_flag         bit      21h.7
play_flag        bit      22h.0
mhz_flag         bit      22h.1
sg11_flag        bit      22h.2
pt_flag          bit      22h.3
onoff_flag       bit      22h.4
dim_flag         equ      31h
pt6312_buf       equ      32h                   ;set pt6312 patern buffer
key_number       equ      33h                   ;set key number buffer
shift_buf        equ      34h                   ;set patern shift times buffer
first_key        equ      35h                   ;read first key buffer
repeat_key       equ      36h                   ;read repeat key buffer
adr_buf          equ      37h
data_buf         equ      38h
d1_q70           equ      24h                   ;set pt6312 display ram
d2_q70           equ      39h
d3_q70           equ      26h
d4_q70           equ      28h
d1_qf8           equ      23h
d2_qf8           equ      25h
d3_qf8           equ      27h
d4_qf8           equ      29h
d5_q70           equ      2ah
d6_q70           equ      2bh
d7_q70           equ      2ch
d5_qf8           equ      2dh
d6_qf8           equ      2eh
d7_qf8           equ      2fh
time_count       equ      43h
time_hour_10     equ      44h
time_hour        equ      45h
time_min_10      equ      46h
time_min         equ      47h
time_sec_10      equ      48h
time_sec         equ      49h
;==============================================
                 org      00h
                 jmp      start
                ;org      0bh
                ;jmp      timer0
                ;org      1bh
                ;jmp      timer1
start:
                 mov      sp,#60h
                 mov      pt6312_buf,#0
                 mov      key_number,#0
                 mov      shift_buf,#0
                 mov      first_key,#0ffh
                 mov      repeat_key,#0ffh
                 mov      adr_buf,#0
                 mov      data_buf,#0
                 mov      time_count,#0
                 mov      time_hour_10,#0
                 mov      time_hour,#0
                 mov      time_min_10,#0
                 mov      time_min,#0
                 mov      time_sec_10,#0
                 mov      time_sec,#0
                 mov      dim_flag,#7
                 mov      d1_qf8,#0fbh
                 mov      d2_qf8,#0fbh
                 mov      d3_qf8,#0fbh
                 mov      d4_qf8,#0fah
                 mov      d5_qf8,#0fah
                 mov      d6_qf8,#0fbh
                 mov      d7_qf8,#0fbh
                 setb     srs_flag
                 setb     ubs_flag
                 setb     pgm_flag
                 setb     ran_flag
                 setb     rpt_flag
                 setb     rock_flag
                 setb     jazz_flag
                 setb     clas_flag
                 setb     hall_flag
                 setb     vol_flag
                 setb     l_flag
                 setb     k1_flag
                 setb     k2_flag
                 setb     k3_flag
                 setb     khz_flag
                 clr      mhz_flag
                 clr      sg11_flag
                 clr      pt_flag
                 clr      onoff_flag
                 clr      play_flag
                 setb     am_flag
                 setb     pt6312_dout
                 setb     pt6312_din
                 setb     pt6312_clk
                 setb     pt6312_stb
            ;     mov      tmod,#00010001b
            ;     mov      ie,#10001010b
                call     strobe_set
                mov      pt6312_buf,#03h
                call     pt6312_pat
                call     strobe_set
                mov      pt6312_buf,#8fh
                call     pt6312_pat
                call     clr_6312_ram
                call     clr_6312_ram
         ;      mov      th1,#56;60536 ;>(65536-5000)
         ;      mov      tl1,#56;60536 ;<(65536-5000)
                setb     tr1
                call     setb_6312_ram
                call     load_delay
                call     load
                call     clr_6312_ram
                ;call     on
                call     strobe_set
                mov      pt6312_buf,#8fh
                call     pt6312_pat
                call     load_delay

main_loop:
                 call     read_key
                 mov      a,key_number
                 cjne     a,#0,have_key
                 jnb      play_flag,main_1
                 jb       onoff_flag,main_1
                 call     time_show
                 call     show_disp
                 call     strobe_set
                 mov      pt6312_buf,#03h
                 call     pt6312_pat
                 call     strobe_set
           ;      call     load
           ;      mov      pt6312_buf,#8fh
           ;      call     pt6312_pat
main_1:
                 jmp      main_loop
;-----------------------------------------------------------
have_key:
                 cjne     a,#3,key3
                 call     time_show
                 call     get_key
                 mov      key_number,#0
                 call     dn_delay
                 jmp      main_loop
                 mov      a,first_key
                 cjne     a,key_number,key2
  key3:
                 cjne     a,#4,key4
                 call     time_show
                 call     get_key
                 mov      key_number,#0
                 call     dn_delay
                 jmp      main_loop
                 mov      a,first_key
                 cjne     a,key_number,key2
  key4:
                 mov      a,repeat_key
                 cjne     a,key_number,key1
  key:
                 jb       onoff_flag,keya
                 jnb      play_flag,keya
                 call     time_show
                 call     show_disp
     keya:
                 call     read_key
                 mov      a,key_number
                 cjne     a,#0,key
                 mov      key_number,#0
                 mov      first_key,#0ffh
                 mov      repeat_key,#0ffh
                 jmp      main_loop
  key1:
                 mov      a,first_key
                 cjne     a,key_number,key2
                 mov      repeat_key,key_number
                 jmp      main_loop
  key2:
                 call     get_key
                 mov      first_key,key_number
                 mov      key_number,#0
                 jmp      main_loop
;================================================================
strobe_set:
                 setb     pt6312_stb
                 ;call     stb_delay
                 clr      pt6312_stb
                 ret
;================================================================
pt6312_pat:
                 clr      c
                 clr      a
                 mov      a,pt6312_buf
                 mov      shift_buf,#8
   pat_1:
                 rrc      a
                 jc       pat_2
                 clr      pt6312_din
                 call     pulse
                 djnz     shift_buf,pat_1
                 jmp      pat_3
   pat_2:
                 setb     pt6312_din
                 call     pulse
                 djnz     shift_buf,pat_1
   pat_3:
                 ret
;================================================================
pulse:
                 clr      pt6312_clk
                 call     stb_delay
                 setb     pt6312_clk
                 call     stb_delay
                 clr      pt6312_clk
                 call     stb_delay
                 ret
;================================================================
stb_delay:                                          ;delay=2+1+2=5us
                 mov      r7,#1                     ;2us
delay:
                 nop                                ;1us
                 djnz     r7,delay                  ;2us
                 ret
;================================================================
adr_da_set:
                 call     strobe_set
                 mov      pt6312_buf,#44h
                 call     pt6312_pat
                 call     strobe_set
                 mov      pt6312_buf,adr_buf        ;address set
                 call     pt6312_pat
                 mov      pt6312_buf,data_buf       ;data set
                 call     pt6312_pat
                 ret
;================================================================
load:
                 ;mov      r1,#4
  ;load1:
                 call     strobe_set
                 mov      pt6312_buf,#44h
                 call     pt6312_pat
                 mov      adr_buf,#0c0h
                 mov      data_buf,#0ffh
                 call     adr_da_set
                 mov      adr_buf,#0c2h
                 mov      data_buf,#0ffh
                 call     adr_da_set
                 mov      adr_buf,#0c4h
                 mov      data_buf,#0ffh
                 call     adr_da_set
                 mov      adr_buf,#0c6h
                 mov      data_buf,#0ffh
                 call     adr_da_set
                 mov      adr_buf,#0c8h
                 mov      data_buf,#0ffh
                 call     adr_da_set
                 mov      adr_buf,#0cah
                 mov      data_buf,#0ffh
                 call     adr_da_set
                 mov      adr_buf,#0cch
                 mov      data_buf,#0ffh
                 call     adr_da_set
                 call     load_delay
                 call     clr_6312_ram
                 call     load_delay
                 call     strobe_set
                 mov      pt6312_buf,#8fh
                 call     pt6312_pat
                 ;djnz     r1,load1
                 ret
;================================================================
load_delay:                                         ;load_delay 605ms
                 mov      r2,#12
   l1:
                 mov      r3,#100
   l2:
                 mov      r4,#100
   l3:
                 nop
                 nop
                 djnz     r4,l3
                 djnz     r3,l2
                 djnz     r2,l1
                 ret
;================================================================
dn_delay:                                         ;load_delay 303ms
                ;mov      r2,#6
  ;d1:
                 mov      r3,#10
   d2:
                 mov      r4,#10
   d3:
                 nop
                 nop
                 call     time_show
                 djnz     r4,d3
                 djnz     r3,d2
   ;             djnz     r2,d1

                 ret
;----------------------------------------------------------------------------------------------------------------
on:
            call     strobe_set
                 mov      pt6312_buf,#44h
                 call     pt6312_pat
                 mov      adr_buf,#0c0h
                 mov      data_buf,#0ffh
                 call     adr_da_set
                 mov      adr_buf,#0c1h
                 mov      data_buf,#0ffh
                 call     adr_da_set
                 mov      adr_buf,#0c2h
                 mov      data_buf,#0ffh
                 call     adr_da_set
                 mov      adr_buf,#0c3h
                 mov      data_buf,#0ffh
                 call     adr_da_set
                 mov      adr_buf,#0c4h
                 mov      data_buf,#0ffh
                 call     adr_da_set
                 mov      adr_buf,#0c5h
                 mov      data_buf,#0ffh
                 call     adr_da_set
                 mov      adr_buf,#0c6h
                 mov      data_buf,#0ffh
                 call     adr_da_set
             mov      adr_buf,#0c7h
                 mov      data_buf,#0ffh
                 call     adr_da_set
                 mov      adr_buf,#0c8h
                 mov      data_buf,#0ffh
                 call     adr_da_set
                 mov      adr_buf,#0c9h
                 mov      data_buf,#0ffh
                 call     adr_da_set
                 mov      adr_buf,#0cah
                 mov      data_buf,#0ffh
                 call     adr_da_set
                 mov      adr_buf,#0cbh
                 mov      data_buf,#0ffh
                 call     adr_da_set
                 mov      adr_buf,#0cch
                 mov      data_buf,#0ffh
                 call     adr_da_set
                 mov      adr_buf,#0cdh
                 mov      data_buf,#0ffh
                 call     adr_da_set
            mov      adr_buf,#0ceh
                 mov      data_buf,#0ffh
                 call     adr_da_set
             ret
;================================================================
clr_6312_ram:
                 call     strobe_set
                 mov      pt6312_buf,#40h           ;write data display mode
                 call     pt6312_pat
                 call     strobe_set

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -