📄 mc44bc373-16-asm.txt
字号:
start:
scl equ p1.6 ;定义scl脚位
sda equ p1.7 ;定义sda脚位
clr scl ;发送起始位
nop
nop
setb sda
nop
nop
setb scl
nop
nop
clr sda
nop
nop
clr scl
nop
nop
read:mov dptr,#1ffh ;把数据表地址赋值给寄存器dptr
mov a,p3 ;获得拨位开关设置状态数据
rrc a ;右移
rrc a
rrc a
anl a,#00000111b ;获得有效数据位(P3.5,P3.4,P3.3)
movc a,@a+dptr ;查表得出对应的设置值
mov r0,a ;结果存在寄存器r0
mov a,p3
rr a
rr a
rr a
anl a,#10000000b ;获得有效数据位(P3.2)
orl a,#74h
mov r7,a ;结果存在寄存器r7
sendd:mov a,#0cah ;发送数据#0cah (CA 芯片地址)
acall send
mov a,#80h ;发送数据#80h (C1 控制参数)
acall send
mov a,#98h ;发送数据#98h (C0 控制参数)
acall send
mov a,r0 ;发送数据r0 (FM 含分频器N高段数据),频率F=N/4
orl a,#01000000b
acall send
mov a,r7 ;发送数据r7 (FL 含分频器N低段数据)
acall send
stop:clr scl ;发送停止位
nop
nop
clr sda
nop
nop
setb scl
nop
nop
setb sda
;发送数据子程序,待发送数据在寄存器a上
send:mov r2,#08h
senda:clr scl
rlc a
mov sda,c
nop
nop
setb scl
nop
nop
djnz r2,senda ;依次循环逐位发出a中的数据
clr scl
nop
nop
setb sda
nop
nop
setb scl
nop
nop
ret
org 01ffh ;数据表
db #1dh,#1eh,#1fh,#20h,#21h,#22h,#23h,#24h
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -