📄 p50的方波.dt
字号:
; ===========================================
; 中断方式实现内部TCC功能
; 晶振=4MHZ,指令周期为4个时钟
;============================================
;--------------------------------------------------
; 系统变量
;-------------------------------------------------------
tcc == 0x01 ; TCC计数器
port5 == 0x05 ; PORT5端口
ioc5 == 0x05 ; port5控制端口
IOCE == 0x0E ; WDT控制寄存器
IOCF == 0x0F ; 中断控制寄存器
intf == 0x0F ; 中断状态寄存器
;---------------------------------------------------------------------
;定义变量
;---------------------------------------------------------------------
a_buf == 0x10 ; 保存中断前A的值
;----------------------------程序入口地址------------------------------;
org 0x00
jmp start ; 开始程序入口
org 0x08 ; 中断入口地址
;----------------------------------------------------------------------;
tcc_int:
mov a_buf, a ; 保存A的值
mov a,@0x0e ; TCC计数初值
mov tcc,a
mov a, @0xfe
and intf, a ; 清中断标志位
;-----------------------------------------------------------------------
mov a,@0x01
xor port5,a ; 取反输出(P5.0LED)
;----------------------------------------------------------------------
tcc_out:
mov a, a_buf ; 恢复A的值
reti ; 中断返回
;---------------------主程序-----------------------------------------------;
start:
mov a, @0x00
iow ioce ; 关闭看门狗
;---------------------设置IO口--------------------------------------------
clra
iow ioc5 ; Port5为输出口
;------------------赋初值-------------------------------------------------;
;--------------------------------------------------------------------------
bc port5,0
;----------------------------------------------------------------
mov a, @0b11010000 ; 保留不需要设置的状态位
or a, @0b00000000 ; 预除数2
contw
mov a, @0x01 ; 允许计数器中断
iow iocf
eni ; 开中断
;----------------------等待中断----------------------------------------------;
main:
nop
nop
main_out:
jmp main
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -