📄 447ex_tccquery.dt.txt
字号:
;================================================
;447EX_TccQuery.dt源码(以查询方式实现外部TCC功能)
;crystal=4MHZ
;================================================
TCC == 0x01 ; TCC计数器
STATUS == 0x03 ; 状态寄存器
PORT6 == 0x06 ; PORT5端口
IOCE == 0x0E ; WDT控制寄存器
IOCF == 0x0F ; 中断控制寄存器
ISR == 0x0F ; 中断状态寄存器
TCIF == 1
TCC_Buf == 0x20 ; 延时缓冲器
num == 6
;--------------------------Main Program--------------------------------;
ORG 0XFFF
JMP TCC_start
ORG 0x10
;----------------------------------------------------------------------;
TCC_Delay: ; 延时子程序
MOV TCC_buf, A
TCC_Delay_Loop:
DJZ TCC_buf
JMP TCC_Delay_Loop
RET
;----------------------------------------------------------------------;
TCC_start:
MOV A, @0x00
IOW IOCE ; 关闭看门狗
IOR PORT6
AND A, @0b01111101
IOW PORT6 ; 设置PORT6.1、PORT6.7脚为输出
BC PORT6, 1 ; 关闭LED灯
CONTR
AND A, @0b11110000 ; 保留不需要设置的状态位
OR A, @0b00110000 ; 设为外部TCC计数,下降沿触发,预除数为2
CONTW
MOV A, @0x01 ; 允许计数器中断
IOW IOCF
TCC_Loop:
JBS ISR, TCIF ; 判断TCC是否溢出
JMP TCC_Mch ; 没有溢出
MOV A, @0xFE
AND ISR, A ; 溢出,清中断标志位
MOV A, @0x06 ; TCC计数次数=250
MOV TCC, A ; 重新置TCC初值
MOV A, @0x02 ; 每200ms则PORT6.1取反一次
XOR PORT6, A ; PORT6.1脚接LED灯(每400毫秒闪一次)
JMP TCC_Loop ; 循环
TCC_Mch:
BS PORT6, 7 ; PORT6.7脚输出脉冲到TCC脚
MOV A, @0x82 ; 等待
CALL TCC_Delay
BC PORT6, 7 ; 下降沿到来
MOV A, @0x82 ; 等待
CALL TCC_Delay
JMP TCC_Loop
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -