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

📄 ex_support.lis

📁 《深入浅出AVR单片机——从ATmega48/88/168开始》的实例程序源代码
💻 LIS
字号:
                        .module EX_Support.c
                        .area text(rom, con, rel)
 0000                   .dbfile D:\设计项目\深入浅出AVR\光盘文件\实例程序源代码\实例13_电量计\实例13_电量计_噪声抑制方式\EX_Support.c
 0000                   .dbfunc s Driver_INIT _Driver_INIT fV
                        .even
 0000           _Driver_INIT:
 0000                   .dbline -1
 0000                   .dbline 82
 0000           ; /***********************************************************
 0000           ; *   函数库说明:底层硬件初始化驱动函数库                   *
 0000           ; *   版本:                                                 *
 0000           ; *   作者:                                                 *
 0000           ; *   创建日期:                                             *
 0000           ; * -------------------------------------------------------- *
 0000           ; *  [硬件说明]                                              *
 0000           ; *   处理器:                                               *
 0000           ; *   系统时钟:                                             *
 0000           ; * -------------------------------------------------------- *
 0000           ; *  [支 持 库]                                              *
 0000           ; *   支持库名称:HD_Support.h                               *
 0000           ; *   需要版本:  -----                                      *
 0000           ; *   支持库说明:底层硬件初始化声明库                       *
 0000           ; *                                                          *
 0000           ; *   支持库名称:EX_Support.h                               *
 0000           ; *   需要版本:  -----                                      *
 0000           ; *   支持库说明:底层硬件初始化驱动声明库                   *
 0000           ; *                                                          *
 0000           ; *   支持库名称:PF_Config.h                                *
 0000           ; *   需要版本:  -----                                      *
 0000           ; *   支持库说明:硬件平台配置声明库                         *
 0000           ; * -------------------------------------------------------- *
 0000           ; *  [版本更新]                                              *
 0000           ; *   修改:                                                 *
 0000           ; *   修改日期:                                             *
 0000           ; *   版本:                                                 *
 0000           ; * -------------------------------------------------------- *
 0000           ; *  [版本历史]                                              *
 0000           ; * -------------------------------------------------------- *
 0000           ; *  [使用说明]                                              *
 0000           ; ***********************************************************/
 0000           ; 
 0000           ; /********************
 0000           ; * 头 文 件 配 置 区 *
 0000           ; ********************/
 0000           ; #include "PF_Config.h"
 0000           ; #include "HD_Support.h"
 0000           ; #include "EX_Support.h"
 0000           ; 
 0000           ; /********************
 0000           ; *   系 统 宏 定 义  *
 0000           ; ********************/
 0000           ; 
 0000           ; /*------------------*
 0000           ; *   常 数 宏 定 义  *
 0000           ; *------------------*/
 0000           ; 
 0000           ; /*------------------*
 0000           ; *   动 作 宏 定 义  *
 0000           ; *------------------*/
 0000           ; 
 0000           ; /********************
 0000           ; *  模块结构体定义区 *
 0000           ; ********************/
 0000           ; 
 0000           ; /********************
 0000           ; *   函 数 声 明 区  *
 0000           ; ********************/
 0000           ; void System_INIT(void);
 0000           ; 
 0000           ; /********************
 0000           ; *   模块函数声明区  *
 0000           ; ********************/
 0000           ; static void Driver_INIT(void);
 0000           ; 
 0000           ; /********************
 0000           ; *   模块变量声明区  *
 0000           ; ********************/
 0000           ; 
 0000           ; /********************
 0000           ; *   全局变量声明区  *
 0000           ; ********************/
 0000           ; 
 0000           ; /***********************************************************
 0000           ; *   函数说明:软件驱动初始化函数                           *
 0000           ; *   输入:    无                                           *
 0000           ; *   输出:    无                                           *
 0000           ; *   调用函数:无                                           *
 0000           ; ***********************************************************/
 0000           ; static void Driver_INIT(void)
 0000           ; {
 0000                   .dbline -2
 0000           L1:
 0000                   .dbline 0 ; func end
 0000 0895              ret
 0002                   .dbend
 0002                   .dbfunc e System_INIT _System_INIT fV
                        .even
 0002           _System_INIT::
 0002                   .dbline -1
 0002                   .dbline 93
 0002           ;     //*在这里插入你的各类软件驱动初始化代码*//
 0002           ; }
 0002           ; 
 0002           ; /***********************************************************
 0002           ; *   函数说明:系统初始化函数                               *
 0002           ; *   输入:    无                                           *
 0002           ; *   输出:    无                                           *
 0002           ; *   调用函数:Device_INIT() Driver_INIT()                  *
 0002           ; ***********************************************************/
 0002           ; void System_INIT(void)
 0002           ; {
 0002                   .dbline 94
 0002           ;     CLI();
 0002 F894              cli
 0004                   .dbline 96
 0004           ;     
 0004           ;     Device_INIT();
 0004 00D0              rcall _Device_INIT
 0006                   .dbline 97
 0006           ;     Driver_INIT();
 0006 FCDF              rcall _Driver_INIT
 0008                   .dbline 101
 0008           ;     
 0008           ;     //*在这里插入你的系统环境变量初始化代码*//
 0008           ;     
 0008           ;     SEI();
 0008 7894              sei
 000A                   .dbline -2
 000A           L2:
 000A                   .dbline 0 ; func end
 000A 0895              ret
 000C                   .dbend
 000C                   .dbfunc e Insert_Adc_ISR_Code _Insert_Adc_ISR_Code fV
 000C           ;       ADCValue -> R10,R11
 000C           ;      PORTValue -> R20
 000C           ;    LoopCounter -> R22
                        .even
 000C           _Insert_Adc_ISR_Code::
 000C 00D0              rcall push_gset3
 000E                   .dbline -1
 000E                   .dbline 110
 000E           ; }
 000E           ; 
 000E           ; /***********************************************************
 000E           ; *  函数说明:ADC采样完成中断处理程序                       *
 000E           ; *  输入:    无                                            *
 000E           ; *  输出:    无                                            *
 000E           ; ***********************************************************/
 000E           ; void Insert_Adc_ISR_Code(void)
 000E           ; {
 000E                   .dbline 111
 000E           ;     unsigned int ADCValue = ADC;                        //获取ADC10位精度的采样结果
 000E A0907800          lds R10,120
 0012 B0907900          lds R11,120+1
 0016                   .dbline 112
 0016           ;     unsigned char LoopCounter = 0,PORTValue = 0;
 0016 6627              clr R22
 0018                   .dbline 112
 0018 4427              clr R20
 001A                   .dbline 114
 001A           ; 
 001A           ;     LoopCounter = ADCValue / 170;                       //转换为端口光柱显示
 001A 2AEA              ldi R18,170
 001C 30E0              ldi R19,0
 001E 8501              movw R16,R10
 0020 00D0              rcall div16u
 0022 602F              mov R22,R16
 0024 06C0              rjmp L5
 0026           L4:
 0026                   .dbline 117
 0026                   .dbline 118
 0026 162F              mov R17,R22
 0028 1150              subi R17,1
 002A 01E0              ldi R16,1
 002C 00D0              rcall lsl8
 002E 402B              or R20,R16
 0030                   .dbline 119
 0030 6A95              dec R22
 0032                   .dbline 120
 0032           L5:
 0032                   .dbline 116
 0032           ; 
 0032           ;     while(LoopCounter)
 0032 6623              tst R22
 0034 C1F7              brne L4
 0036                   .dbline 122
 0036           ;     {
 0036           ;         PORTValue |= 1<<(LoopCounter-1);
 0036           ;         LoopCounter--;
 0036           ;     }
 0036           ; 
 0036           ;     PORTB = PORTValue ^ 0xFF;                           //由于端口上的LED在低电平时点亮,为了适应习惯
 0036 8FEF              ldi R24,255
 0038 90E0              ldi R25,0
 003A 242E              mov R2,R20
 003C 3324              clr R3
 003E 2826              eor R2,R24
 0040 3926              eor R3,R25
 0042 25B8              out 0x5,R2
 0044                   .dbline 124
 0044           ;                                                         //在这里对端口数据做了反相的处理
 0044           ;     IfGotADCValue = True;                               //设置采样完成标志
 0044 81E0              ldi R24,1
 0046 80930000          sts _IfGotADCValue,R24
 004A                   .dbline -2
 004A           L3:
 004A 00D0              rcall pop_gset3
 004C                   .dbline 0 ; func end
 004C 0895              ret
 004E                   .dbsym r ADCValue 10 i
 004E                   .dbsym r PORTValue 20 c
 004E                   .dbsym r LoopCounter 22 c
 004E                   .dbend

⌨️ 快捷键说明

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