led-1(dingshi).lst
来自「义隆单片机控制8个LED的渐明渐暗」· LST 代码 · 共 76 行
LST
76 行
1 ; ===========================================
2 ;中断方式实现内部TCC功能
3 ;晶振=4MHZ,指令周期为4个时钟
4 ;============================================
5 ;--------------------------------------------------
6 ; 定义变量
7 ;-------------------------------------------------------
8 0001 TCC == 0x01
9 0003 status == 0x03 ; 状态寄存器
10 0005 PORT5 == 0x05 ; PORT5端口
11 000B IOCB == 0x0b
12 000E IOCE == 0x0E ; WDT控制寄存器
13 000F IOCF == 0x0F ; 中断控制寄存器
14 000F ISR == 0x0F ; 中断状态寄存器
15 0010 A_BUF == 0x10 ; 保存中断前A的值
16 0011 TCC_Count == 0x11 ; 自定义计数器
17 0012 flag == 0x12
18 00F6 num == 246
19 0002 Z == 2
20 ;----------------------------主程序------------------------------;
21 ORG 0x00
22 00000 1415 JMP tcc_start
23 ORG 0x08
24 ;----------------------------------------------------------------------;
25 00008 TCC_INT:
26 00008 0050 MOV A_BUF, A ; 保存A的值
27 00009 180E mov a,@0x0e
28 0000A 0041 mov TCC,a
29 0000B 18FE MOV A, @0xFE
30 0000C 02CF AND ISR, A ; 清中断标志位
31 0000D 0551 INC TCC_Count ; 每中断一次TCC_Count计数器加1
32 0000E 0E83 JBS status,Z ; 判断TCC_Count是否溢出
33 0000F 1413 JMP TCC_out ; 没有溢出
34 00010 18F6 mov a,@num
35 00011 0051 mov TCC_Count,a
36 00012 0A12 bs flag,0
37 00013 TCC_out:
38 00013 0410 MOV A, A_BUF ; 恢复A的值
39 00014 0013 RETI ; 中断返回
40 ;----------------------------------------------------------------------;
41 00015 tcc_start:
42 00015 1800 MOV A, @0x00
43 00016 000E IOW IOCE ; 关闭看门狗
44 00017 1802 MOV A, @0x02
45 00018 0005 IOW PORT5 ; Port5为输出口
46 00019 18FD mov a,@0xfd
47 0001A 000B IOW IOCB
48 0001B 0805 BC PORT5,0 ; 关闭LED灯
49 0001C 0812 bc flag,0
50 0001D 18F6 mov a,@num
51 0001E 0051 mov TCC_Count,a
52 0001F 18D0 MOV A, @0b11010000 ; 保留不需要设置的状态位
53 00020 1902 OR A, @0b00000010 ; 预除数为8
54 00021 0002 CONTW
55 00022 1801 MOV A, @0x01 ; 允许计数器中断
56 00023 000F IOW IOCF
57 00024 0010 ENI ; 开中断
58 00025 main:
59
60 00025 0E45 jbs port5,1
61 00026 1430 jmp main_out
62 00027 0E12 jbs flag,0
63 00028 1430 jmp main_out
64 00029 0812 bc flag,0
65 0002A 0E45 jbs port5,1
66 0002B 1430 jmp main_out
67 0002C 0A05 bs port5,0
68 0002D main_in:
69 0002D 0C45 jbc port5,1
70 0002E 142D jmp main_in
71 0002F 0805 bc port5,0
72
73 00030 main_out:
74 00030 1425 jmp main
75 END
0 Error(s), 0 Warning(s), 0 User Message(s)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?