⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 电量计.lst

📁 《深入浅出AVR单片机——从ATmega48/88/168开始》的实例程序源代码
💻 LST
📖 第 1 页 / 共 2 页
字号:
__text_start:
__start:
    001B EFCF      LDI	R28,0xFF
    001C E0D2      LDI	R29,2
    001D BFCD      OUT	0x3D,R28
    001E BFDE      OUT	0x3E,R29
    001F 52C0      SUBI	R28,0x20
    0020 40D0      SBCI	R29,0
    0021 EA0A      LDI	R16,0xAA
    0022 8308      STD	Y+0,R16
    0023 2400      CLR	R0
    0024 E0E1      LDI	R30,1
    0025 E0F1      LDI	R31,1
    0026 E011      LDI	R17,1
    0027 30E1      CPI	R30,1
    0028 07F1      CPC	R31,R17
    0029 F011      BEQ	0x002C
    002A 9201      ST	R0,Z+
    002B CFFB      RJMP	0x0027
    002C 8300      STD	Z+0,R16
    002D E3E4      LDI	R30,0x34
    002E E0F0      LDI	R31,0
    002F E0A0      LDI	R26,0
    0030 E0B1      LDI	R27,1
    0031 E010      LDI	R17,0
    0032 33E5      CPI	R30,0x35
    0033 07F1      CPC	R31,R17
    0034 F021      BEQ	0x0039
    0035 95C8      LPM
    0036 9631      ADIW	R30,1
    0037 920D      ST	R0,X+
    0038 CFF9      RJMP	0x0032
    0039 D053      RCALL	_main
_exit:
    003A CFFF      RJMP	_exit
FILE: D:\设计项目\深入浅出AVR\光盘文件\实例程序源代码\实例13_电量计\实例13_电量计_噪声抑制方式\HD_Support.c
(0001) /***********************************************************
(0002) *   函数库说明:底层硬件初始化函数库                       *
(0003) *   版本:                                                 *
(0004) *   作者:                                                 *
(0005) *   创建日期:                                             *
(0006) * -------------------------------------------------------- *
(0007) *  [硬件说明]                                              *
(0008) *   处理器:                                               *
(0009) *   系统时钟:                                             *
(0010) * -------------------------------------------------------- *
(0011) *  [支 持 库]                                              *
(0012) *   支持库名称:HD_Support.h                               *
(0013) *   需要版本:  -----                                      *
(0014) *   支持库说明:底层硬件初始化声明库                       *
(0015) *                                                          *
(0016) *   支持库名称:PF_Config.h                                *
(0017) *   需要版本:  -----                                      *
(0018) *   支持库说明:硬件平台配置声明库                         *
(0019) * -------------------------------------------------------- *
(0020) *  [版本更新]                                              *
(0021) *   修改:                                                 *
(0022) *   修改日期:                                             *
(0023) *   版本:                                                 *
(0024) * -------------------------------------------------------- *
(0025) *  [版本历史]                                              *
(0026) * -------------------------------------------------------- *
(0027) *  [使用说明]                                              *
(0028) ***********************************************************/
(0029) 
(0030) /********************
(0031) * 头 文 件 配 置 区 *
(0032) ********************/
(0033) # include "PF_Config.h"
(0034) # include "HD_Support.h"
(0035) 
(0036) /********************
(0037) *   系 统 宏 定 义  *
(0038) ********************/
(0039) #pragma interrupt_handler ADC_ISR:iv_ADC
(0040) 
(0041) /*------------------*
(0042) *   常 数 宏 定 义  *
(0043) *------------------*/
(0044) 
(0045) /*------------------*
(0046) *   动 作 宏 定 义  *
(0047) *------------------*/
(0048) 
(0049) #ifndef INSERT_ADC_ISR_CODE
(0050)     #define INSERT_ADC_ISR_CODE
(0051) #endif
(0052) 
(0053) /********************
(0054) *  模块结构体定义区 *
(0055) ********************/
(0056) 
(0057) /********************
(0058) *   函 数 声 明 区  *
(0059) ********************/
(0060) void Device_INIT(void);
(0061) 
(0062) /********************
(0063) *   模块函数声明区  *
(0064) ********************/
(0065) static void Port_INIT(void);
(0066) void ADC_INIT(void);
(0067) 
(0068) /********************
(0069) *   模块变量声明区  *
(0070) ********************/
(0071) 
(0072) /********************
(0073) *   全局变量声明区  *
(0074) ********************/
(0075) 
(0076) BOOL IfGotADCValue = True;              //用于指示是否有ADC转换正在进行中的标志
(0077) 
(0078) /***********************************************************
(0079) *   函数说明:系统硬件初始化函数                           *
(0080) *   输入:    无                                           *
(0081) *   输出:    无                                           *
(0082) *   调用函数:Port_INIT()                                  *
(0083) ***********************************************************/
(0084) void Device_INIT(void)
(0085) {
(0086)     Port_INIT();
_Device_INIT:
    003B D00F      RCALL	_Port_INIT
(0087)     ADC_INIT();
    003C D01A      RCALL	_ADC_INIT
(0088)     //*在这里添加其他初始化函数*//
(0089) 
(0090)     MCUCR = 0x00;                       //使能口线内部弱上拉,中断向量在FLASH首部
    003D 2422      CLR	R2
    003E BE25      OUT	0x35,R2
(0091)     DIDR0 = 0x08;                       //关闭PC.3的数字输入缓冲
    003F E088      LDI	R24,0x8
    0040 9380007E  STS	0x7E,R24
(0092)     PRR = 0xCE;                         //使能ADC模块的电源供应
    0042 EC8E      LDI	R24,0xCE
    0043 93800064  STS	0x64,R24
(0093)     SMCR = 0x02;					    //使能ADC噪声抑制模式
    0045 E082      LDI	R24,2
    0046 BF83      OUT	0x33,R24
(0094) 
(0095)     TIMSK0 = BIT(TOIE0);                //启动定时器0溢出中断资源
    0047 E081      LDI	R24,1
    0048 9380006E  STS	0x6E,R24
    004A 9508      RET
(0096)     //*在这里添加其他全局寄存器的初始化代码*//
(0097) }
(0098) 
(0099) /***********************************************************
(0100) *   函数说明:系统端口初始化函数                           *
(0101) *   输入:    无                                           *
(0102) *   输出:    无                                           *
(0103) *   调用函数:无                                           *
(0104) ***********************************************************/
(0105) static void Port_INIT(void)
(0106) {
(0107)     //*在这里添加端口初始化代码*//
(0108)     
(0109)     PORTB = 0b11111111;                 //在PB口0..5上输出光柱效果
_Port_INIT:
    004B EF8F      LDI	R24,0xFF
    004C B985      OUT	0x05,R24
(0110)     PORTC = 0b11110111;                 //初始化PC口,PC.3设置为输入
    004D EF87      LDI	R24,0xF7
    004E B988      OUT	0x08,R24
(0111)     PORTD = 0b11111111;                 //没有使用的端口均设置为输入状态并开启内部上拉电阻
    004F EF8F      LDI	R24,0xFF
    0050 B98B      OUT	0x0B,R24
(0112)     
(0113)     DDRB = 0b11111111;
    0051 B984      OUT	0x04,R24
(0114)     DDRC = 0b11110111;
    0052 EF87      LDI	R24,0xF7
    0053 B987      OUT	0x07,R24
(0115)     DDRD = 0b00000000;
    0054 2422      CLR	R2
    0055 B82A      OUT	0x0A,R2
    0056 9508      RET
(0116) }
(0117) 
(0118) /***********************************************************
(0119) *  函数说明:ADC初始化程序                                 *
(0120) *  输入:    无                                            *
(0121) *  输出:    无                                            *
(0122) * -------------------------------------------------------- *
(0123) *  [说明]                                                  *
(0124) *            这里的代码是为了方便大家理解直接从代码生成器  *
(0125) *        中生成,经过简单错误修改后的代码。以后使用的时候,*
(0126) *        我们将采用更为规范的格式。                        *
(0127) ***********************************************************/
(0128) void ADC_INIT(void)
(0129) {
(0130)     ADMUX = 0x43;                       //选择AVCC,结果右对齐,选择ADC通道3
_ADC_INIT:
    0057 E483      LDI	R24,0x43
    0058 9380007C  STS	0x7C,R24
(0131)     ADCSRA = 0x8C;                      //ADC模块使能,未开始转换,自动触发关闭,中断使能,预分频比16
    005A E88C      LDI	R24,0x8C
    005B 9380007A  STS	0x7A,R24
(0132)     ADCSRB = 0x00;                      //ACME用于模拟比较器,这里忽略.由于没有使用自动触发功能,对ADTS的设置没有意义
    005D 2422      CLR	R2
    005E 9220007B  STS	0x7B,R2
    0060 9508      RET
_ADC_ISR:
    0061 D070      RCALL	push_lset
(0133) 
(0134)     /*
(0135)     ADMUX = (ADMUX_AREF<<REFS0)|(3<<MUX0);
(0136)     ADCSRA = (1<<ADEN)|(1<<ADIE)|(ADCSRA_PRESCALER_DIV_16<<ADPS0);
(0137)     ASCSRB = 0x00;
(0138)     */
(0139) }
(0140) 
(0141) /***********************************************************
(0142) *   函数声明:ADC转换完成中断处理程序                      *
(0143) *   输入:    无                                           *
(0144) *   输出:    无                                           *
(0145) *   调用函数:INSERT_ADC_ISR_CODE                          *
(0146) ***********************************************************/
(0147) 
(0148) void ADC_ISR (void)
(0149) {
(0150)     INSERT_ADC_ISR_CODE
    0062 9478      BSET	7
    0063 D008      RCALL	_Insert_Adc_ISR_Code
    0064 D084      RCALL	pop_lset
    0065 9518      RETI
FILE: D:\设计项目\深入浅出AVR\光盘文件\实例程序源代码\实例13_电量计\实例13_电量计_噪声抑制方式\EX_Support.c
(0001) /***********************************************************
(0002) *   函数库说明:底层硬件初始化驱动函数库                   *
(0003) *   版本:                                                 *
(0004) *   作者:                                                 *
(0005) *   创建日期:                                             *
(0006) * -------------------------------------------------------- *
(0007) *  [硬件说明]                                              *
(0008) *   处理器:                                               *
(0009) *   系统时钟:                                             *
(0010) * -------------------------------------------------------- *
(0011) *  [支 持 库]                                              *
(0012) *   支持库名称:HD_Support.h                               *
(0013) *   需要版本:  -----                                      *
(0014) *   支持库说明:底层硬件初始化声明库                       *
(0015) *                                                          *
(0016) *   支持库名称:EX_Support.h                               *
(0017) *   需要版本:  -----                                      *
(0018) *   支持库说明:底层硬件初始化驱动声明库                   *
(0019) *                                                          *
(0020) *   支持库名称:PF_Config.h                                *
(0021) *   需要版本:  -----                                      *
(0022) *   支持库说明:硬件平台配置声明库                         *
(0023) * -------------------------------------------------------- *
(0024) *  [版本更新]                                              *
(0025) *   修改:                                                 *
(0026) *   修改日期:                                             *
(0027) *   版本:                                                 *
(0028) * -------------------------------------------------------- *
(0029) *  [版本历史]                                              *
(0030) * -------------------------------------------------------- *
(0031) *  [使用说明]                                              *
(0032) ***********************************************************/
(0033) 
(0034) /********************
(0035) * 头 文 件 配 置 区 *
(0036) ********************/
(0037) #include "PF_Config.h"
(0038) #include "HD_Support.h"
(0039) #include "EX_Support.h"
(0040) 
(0041) /********************
(0042) *   系 统 宏 定 义  *
(0043) ********************/
(0044) 
(0045) /*------------------*
(0046) *   常 数 宏 定 义  *
(0047) *------------------*/
(0048) 
(0049) /*------------------*
(0050) *   动 作 宏 定 义  *
(0051) *------------------*/
(0052) 
(0053) /********************
(0054) *  模块结构体定义区 *
(0055) ********************/
(0056) 
(0057) /********************
(0058) *   函 数 声 明 区  *
(0059) ********************/
(0060) void System_INIT(void);
(0061) 
(0062) /********************
(0063) *   模块函数声明区  *
(0064) ********************/
(0065) static void Driver_INIT(void);
(0066) 
(0067) /********************
(0068) *   模块变量声明区  *
(0069) ********************/
(0070) 
(0071) /********************
(0072) *   全局变量声明区  *
(0073) ********************/
(0074) 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -