📄 em78p458_adc_demo.lst
字号:
1 ;================================================================================================================
2 ; EM78P458 内部PWM1、PWM2 资源应用程序
3 ; 说明:本例设置PWM1输出周期为500uS,占空比为10uS 的方波信号
4 ; 设置PWM2输出周期为100uS,占空比为50uS的方波信号,EM
5 ; 78P458外接3.587MHz晶振作为工作时钟,TMR2、TMR1预分
6 ; 频系数均设定为2,仿真器采用Elan的E8-ICE for 458 ver 1.0, 头
7 ; 文件EM78P458.h定义了单片机内部寄存器单元标号。
8 ;================================================================================================================
9
10 include "EM78P458.h" ;寄存器定义文件
1 C ;================================================================================================================
2 C ; EM78P458寄存器定义
3 C ;================================================================================================================
4 C
5 C ;----------------------------------------------------------------------------------------------------
6 C ;操作寄存器定义
7 C ;----------------------------------------------------------------------------------------------------
8 C ;以 “ register_功能缩写” 形式定义0x00-0x0f的操作寄存器
9 0000 C register_IAR equ 0x00 ;间接寻址指针
10 0001 C register_TCC equ 0x01 ;定时器/计数器控制寄存器
11 0002 C register_PC equ 0x02 ;程序指针和堆栈
12 0003 C register_SR equ 0x03 ;状态寄存器
13 0004 C register_RSR equ 0x04 ;RAM选择寄存器
14 0005 C register_PORT5 equ 0x05 ;PORT5端口I/O寄存器
15 0006 C register_PORT6 equ 0x06 ;PORT6端口I/O寄存器
16 0009 C register_AD_CON equ 0x09 ;AD控制寄存器
17 000A C register_AD_DATA equ 0x0a ;ADC转换结果寄存器
18 000B C register_TMR1L equ 0x0b ;8位通用寄存器
19 000C C register_TMR1H equ 0x0c ;两位寄存器,bit0 与 bit1 可用
20 000D C register_TMR2L equ 0x0d ;8位通用寄存器
21 000E C register_TMR2H equ 0x0e ;两位寄存器,bit0 与 bit1 可用
22 000F C register_INT_ISR equ 0x0f ;中断状态寄存器
23 C
24 C ;以 “register_Rx” 形式定义0x00-0x0f的操作寄存器
25 0000 C register_R0 equ 0x00
26 0001 C register_R1 equ 0x01
27 0002 C register_R2 equ 0x02
28 0003 C register_R3 equ 0x03
29 0004 C register_R4 equ 0x04
30 0005 C register_R5 equ 0x05
31 0006 C register_R6 equ 0x06
32 0007 C register_R7 equ 0x07
33 0008 C register_R8 equ 0x08
34 0009 C register_R9 equ 0x09
35 000A C register_RA equ 0x0a
36 000B C register_RB equ 0x0b
37 000C C register_RC equ 0x0c
38 000D C register_RD equ 0x0d
39 000E C register_RE equ 0x0e
40 000F C register_RF equ 0x0f
41 C
42 C ;----------------------------------------------------------------------------------------------------
43 C ;操作寄存器位定义
44 C ;----------------------------------------------------------------------------------------------------
45 C ;register_SR 状态寄存器的各位
46 0000 C bit_C equ 0 ;进位标志位
47 0001 C bit_DC equ 1 ;辅助进位标志
48 0002 C bit_Z equ 2 ;零标志位
49 0003 C bit_P equ 3 ;低功耗标志位
50 0004 C bit_T equ 4 ;溢出标志位
51 0005 C bit_PS0 equ 5 ;程序页面选择位0
52 0006 C bit_PS1 equ 6 ;程序页面选择位1
53 0007 C bit_CMPOUT equ 7 ;比较器结果标志位
54 C ;register_AD_CON AD控制寄存器
55 0000 C bit_ADIS0 equ 0 ;模拟信号输入选择0
56 0001 C bit_ADIS1 equ 1 ;模拟信号输入选择1
57 0002 C bit_ADIS2 equ 2 ;模拟信号输入选择2
58 0003 C bit_ADPD equ 3 ;AD低功耗模式位:1正常模式 0进入低功耗模式
59 0004 C bit_ADRUN equ 4 ;AD开始运行位:置1开始 转换结束硬件自动清0
60 0005 C bit_IOCS equ 5 ;输出寄存器段选择位:为0选择段0(IOC50-IOCF0),为1选择段1(IOC51-IOCF1)
61 C ;register_INT_ISR 中断状态寄存器
62 0000 C bit_TCIF equ 0 ;TCC溢出中断标志位
63 0001 C bit_ICIF equ 1 ;PORT6 输入变化中断标志位
64 0002 C bit_EXIF equ 2 ;外部中断标志位,/INT下降沿有效
65 0003 C bit_ADIF equ 3 ;AD转换结束标志位
66 0004 C bit_PWM1IF equ 4 ;PWM1中断标志位
67 0005 C bit_PWM2IF equ 5 ;PWM2中断标志位
68 0006 C bit_CMPIF equ 6 ;比较器中断标志位
69 C
70 C ;----------------------------------------------------------------------------------------------------
71 C ;特殊功能寄存器定义
72 C ;----------------------------------------------------------------------------------------------------
73 C ;以 “ sfr_功能缩写” 形式定义特殊功能寄存器
74 0005 C sfr_PORT5_CON equ 0x05 ;PORT5 I/O 控制寄存器
75 0006 C sfr_PORT6_CON equ 0x06 ;PORT6 I/O 控制寄存器
76 0009 C sfr_G_CON equ 0x09 ;增益控制寄存器
77 000A C sfr_AD_CMP_CON equ 0x0a ;AD与比较器控制寄存器
78 000B C sfr_PULLDOWN_CON equ 0x0b ;下拉输出控制寄存器
79 000C C sfr_OPENDRAIN_CON equ 0x0c ;开漏输出控制寄存器
80 000D C sfr_PULLHIGH_CON equ 0x0d ;上拉输出控制寄存器
81 000E C sfr_WDT_CON equ 0x0e ;看门狗控制寄存器
82 000F C sfr_INT_IER equ 0x0f ;中断使能控制寄存器
83 C
84 0005 C sfr_PWM_CON equ 0x05 ;PWM控制寄存器
85 0006 C sfr_DT1L equ 0x06 ;PWM1占空比低8位
86 0007 C sfr_DT1H equ 0x07 ;PWM1占空比高8位
87 0008 C sfr_PRD1 equ 0x08 ;PWM1周期
88 0009 C sfr_DT2L equ 0x09 ;PWM2占空比低8位
89 000A C sfr_DT2H equ 0x0a ;PWM2占空比高8位
90 000B C sfr_PRD2 equ 0x0b ;PWM2周期
91 000C C sfr_DL1L equ 0x0c ;PWM1占空比锁存器低8位,read only
92 000D C sfr_DL1H equ 0x0d ;PWM1占空比锁存器高2位,read only
93 000E C sfr_DL2L equ 0x0e ;PWM2占空比锁存器低8位,read only
94 000F C sfr_DL2H equ 0x0f ;PWM2占空比锁存器高2位,read only
95 C
96 C ;以 “ sfr_IOCx0/1” 形式定义特殊功能寄存器
97 0005 C sfr_IOC50 equ 0x05 ;PORT5 I/O 控制寄存器
98 0006 C sfr_IOC60 equ 0x06 ;PORT6 I/O 控制寄存器
99 0009 C sfr_IOC90 equ 0x09 ;增益控制寄存器
100 000A C sfr_IOCA0 equ 0x0a ;AD与比较器控制寄存器
101 000B C sfr_IOCB0 equ 0x0b ;下拉输出控制寄存器
102 000C C sfr_IOCC0 equ 0x0c ;开漏输出控制寄存器
103 000D C sfr_IOCD0 equ 0x0d ;上拉输出控制寄存器
104 000E C sfr_IOCE0 equ 0x0e ;看门狗控制寄存器
105 000F C sfr_IOCF0 equ 0x0f ;中断使能控制寄存器
106 C
107 0005 C sfr_IOC51 equ 0x05 ;PWM控制寄存器
108 0006 C sfr_IOC61 equ 0x06 ;PWM1占空比低8位
109 0007 C sfr_IOC71 equ 0x07 ;PWM1占空比高8位
110 0008 C sfr_IOC81 equ 0x08 ;PWM1周期
111 0009 C sfr_IOC91 equ 0x09 ;PWM2占空比低8位
112 000A C sfr_IOCA1 equ 0x0a ;PWM2占空比高8位
113 000B C sfr_IOCB1 equ 0x0b ;PWM2周期
114 000C C sfr_IOCC1 equ 0x0c ;PWM1占空比锁存器低8位,read only
115 000D C sfr_IOCD1 equ 0x0d ;PWM1占空比锁存器高2位,read only
116 000E C sfr_IOCE1 equ 0x0e ;PWM2占空比锁存器低8位,read only
117 000F C sfr_IOCF1 equ 0x0f ;PWM2占空比锁存器高2位,read only
118 C
119 C ;特殊功能寄存器A、CONT的地址不知道,所以未列出
120 C ; sfr_A equ A ;累加器
121 C ; sfr_CONT equ CONT ;控制寄存器
122 C
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -