?? ht9200.asm
字號(hào):
include ht48c10.inc
data .section 'data'
HT9200A EQU 0
HT9200B EQU 1
SERIAL EQU 0
PARALLEL EQU 1
;-----------------------
DATA EQU PA.0
CE EQU PA.1
CLK EQU PA.2
;-----------------------
SP EQU PA.3
D0 EQU PB.0
D1 EQU PB.1
D2 EQU PB.2
D3 EQU PB.3
;-----------------------
count db ?
buffer db ?
bit_count db ?
send_data db ?
delay_count1 db ?
delay_count2 db ?
delay_count3 db ?
;-----------------------
TYPE_MODE MACRO TYPE,MODE
IFE TYPE
_TYPE EQU 0
_MODE EQU 0
ELSE
_TYPE EQU 1
IFE MODE
_MODE EQU 0
ELSE
_MODE EQU 1
ENDIF
ENDIF
ENDM
;-----------------------
_SERIAL_MODE MACRO
LOCAL loop,next
clr pac
clr SP
clr CE
set CLK
call delay
loop: mov a,18h
mov count,a
clr buffer
next: mov a,buffer
mov send_data,a
call send_byte
call delay
inc buffer
sdz count
jmp next
mov a,0ffh
mov send_data,a
call send_byte
call delay
jmp loop
ENDM
;-----------------------
_PARALLEL_MODE MACRO
LOCAL loop,next
clr pac
clr pbc
set SP
clr CE
loop: mov a,10h
mov count,a
clr buffer
next: mov a,buffer
mov pb,a
set CE
clr CE
call delay
inc buffer
sdz count
jmp next
jmp loop
ENDM
;---------------------------------
code .section at 0 'code'
org 00h
jmp start
org 04h
reti
org 08h
reti
;---------------------------------
send_byte proc
mov a,05h
mov bit_count,a
next_bit:
rrc send_data
sz c
jmp send_1
send_0:
clr DATA
jmp act
send_1:
set DATA
act:
clr CLK
set CLK
sdz bit_count
jmp next_bit
ret
send_byte endp
;---------------------------------
delay proc
mov a,02h
mov delay_count1,a
mov delay_count2,a
mov delay_count3,a
d: sdz delay_count1
jmp d
sdz delay_count2
jmp d
sdz delay_count3
jmp d
ret
delay endp
;---------------------------------
start:
; TYPE_MODE HT9200A/HT9200B,SERIAL/PARALLEL
TYPE_MODE HT9200A,SERIAL
IF _TYPE
IF _MODE
_PARALLEL_MODE
ELSE
_SERIAL_MODE
ENDIF
ELSE
_SERIAL_MODE
ENDIF
END
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -