📄 led-2.lst
字号:
1 ;==========================================
2 ;153IN_Tcc.dt源码(以中断方式实现内部TCC功能)
3 ;crystal=4MHZ
4 ;============================================
5 ;----------------------------------------------------------------------;
6 ; Define MCU RAM or Variable Value
7 ;----------------------------------------------------------------------;
8 0001 TCC == 0x01 ; TCC计数器
9 0003 STATUS == 0x03 ; 状态寄存器
10 0005 PORT5 == 0x05 ; PORT5端口
11 000E IOCE == 0x0E ; WDT控制寄存器
12 000F IOCF == 0x0F ; 中断控制寄存器
13 000F ISR == 0x0F ; 中断状态寄存器
14 0020 TEMP_A == 0x20 ; 保存中断前A的值
15 0021 TCC_Count == 0x21 ; 自定义计数器
16 0006 num == 6
17 ;----------------------------MAIN PROGRAM------------------------------;
18 ORG 0x00
19 00000 1416 JMP TCC_Start
20
21 ORG 0x08
22 ;----------------------------------------------------------------------;
23 00008 TCC_int:
24 00008 0060 MOV TEMP_A, A ; 保存A的值
25 00009 1806 MOV A, @0x06 ; TCC计数次数=250
26 0000A 0041 MOV TCC, A ; 置TCC初始
27 0000B 18FE MOV A, @0xFE ; 保留不需要设置的状态位
28 0000C 02CF AND ISR, A ; 清中断标志位
29
30 0000D 0561 INC TCC_Count ; 每中断一次TCC_Count计数器加1
31 0000E 0E83 JBS STATUS, 2 ; 判断TCC_Count是否溢出
32 0000F 1414 JMP Int_out ; 没有溢出
33 00010 1806 MOV A, @num ; 溢出
34 00011 0061 MOV TCC_Count, A ; 重新置TCC初值
35
36 00012 1802 MOV A, @0x02 ; 每半秒PORT5.1(可接LED灯)取反
37 00013 0345 XOR PORT5, A
38 00014 Int_out:
39 00014 0420 MOV A, TEMP_A ; 恢复A的值
40 00015 0013 RETI ; 中断返回
41 ;----------------------------------------------------------------------;
42 00016 TCC_Start:
43 00016 1800 MOV A, @0x00
44 00017 000E IOW IOCE ; 关闭看门狗
45 00018 1800 MOV A, @0x00
46 00019 0005 IOW PORT5 ; Port5为输出口
47 0001A 0845 BC PORT5, 1 ; 关闭LED灯
48
49 0001B 0014 CONTR
50 0001C 18D0 MOV A, @0b11010000 ; 保留不需要设置的状态位
51 0001D 1903 OR A, @0b00000011 ; 预除数为16
52 0001E 0002 CONTW
53
54 0001F 1801 MOV A, @0x01 ; 允许计数器中断
55 00020 000F IOW IOCF
56 00021 0010 ENI ; 开中断
57
58 00022 1422 JMP $
59 END
0 Error(s), 0 Warning(s), 0 User Message(s)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -