📄 p50的方波.lst
字号:
1 ; ===========================================
2 ; 中断方式实现内部TCC功能
3 ; 晶振=4MHZ,指令周期为4个时钟
4 ;============================================
5 ;--------------------------------------------------
6 ; 系统变量
7 ;-------------------------------------------------------
8 0001 tcc == 0x01 ; TCC计数器
9 0005 port5 == 0x05 ; PORT5端口
10 0005 ioc5 == 0x05 ; port5控制端口
11 000E IOCE == 0x0E ; WDT控制寄存器
12 000F IOCF == 0x0F ; 中断控制寄存器
13 000F intf == 0x0F ; 中断状态寄存器
14 ;---------------------------------------------------------------------
15 ;定义变量
16 ;---------------------------------------------------------------------
17 0010 a_buf == 0x10 ; 保存中断前A的值
18 ;----------------------------程序入口地址------------------------------;
19 org 0x00
20 00000 1411 jmp start ; 开始程序入口
21 org 0x08 ; 中断入口地址
22 ;----------------------------------------------------------------------;
23 00008 tcc_int:
24 00008 0050 mov a_buf, a ; 保存A的值
25 00009 180E mov a,@0x0e ; TCC计数初值
26 0000A 0041 mov tcc,a
27 0000B 18FE mov a, @0xfe
28 0000C 02CF and intf, a ; 清中断标志位
29 ;-----------------------------------------------------------------------
30 0000D 1801 mov a,@0x01
31 0000E 0345 xor port5,a ; 取反输出(P5.0LED)
32 ;----------------------------------------------------------------------
33 0000F tcc_out:
34 0000F 0410 mov a, a_buf ; 恢复A的值
35 00010 0013 reti ; 中断返回
36 ;---------------------主程序-----------------------------------------------;
37 00011 start:
38 00011 1800 mov a, @0x00
39 00012 000E iow ioce ; 关闭看门狗
40 ;---------------------设置IO口--------------------------------------------
41 00013 0080 clra
42 00014 0005 iow ioc5 ; Port5为输出口
43 ;------------------赋初值-------------------------------------------------;
44
45 ;--------------------------------------------------------------------------
46 00015 0805 bc port5,0
47 ;----------------------------------------------------------------
48 00016 18D0 mov a, @0b11010000 ; 保留不需要设置的状态位
49 00017 1900 or a, @0b00000000 ; 预除数2
50 00018 0002 contw
51 00019 1801 mov a, @0x01 ; 允许计数器中断
52 0001A 000F iow iocf
53 0001B 0010 eni ; 开中断
54 ;----------------------等待中断----------------------------------------------;
55 0001C main:
56 0001C 0000 nop
57 0001D 0000 nop
58 0001E main_out:
59 0001E 141C jmp main
60 END
0 Error(s), 0 Warning(s), 0 User Message(s)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -