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

📄 system.lis

📁 《深入浅出AVR单片机——从ATmega48/88/168开始》的实例程序源代码
💻 LIS
字号:
                        .module System.c
                        .area text(rom, con, rel)
 0000                   .dbfile D:\设计项目\深入浅出AVR\光盘文件\实例程序源代码\实例13_电量计\实例13_电量计_查询方式\System.c
 0000                   .dbfunc e main _main fV
 0000           ;        Voltage -> R10,R11
 0000           ;     Port_Value -> R20
 0000           ;   Loop_Counter -> R22
                        .even
 0000           _main::
 0000                   .dbline -1
 0000                   .dbline 64
 0000           ; /*********************************************************/
 0000           ; /*                                                       */
 0000           ; /*             实例13   电量计 查询方式                  */
 0000           ; /*                                                       */
 0000           ; /*                 程序设计 江海波                       */
 0000           ; /*                                                       */
 0000           ; /*        编写时间 : 2007-05     版本 : V1.0             */
 0000           ; /*                                                       */
 0000           ; /*     提示 : 代码受版权保护,示例程序用于工程应谨慎      */
 0000           ; /*                                                       */
 0000           ; /*           E-mail : soundman@sohu.com                  */
 0000           ; /*-------------------------------------------------------*/
 0000           ; /* 硬件环境:                                             */
 0000           ; /*                                                       */
 0000           ; /*     实验电路板,ATmega48单片机,CPU时钟1MHz             */
 0000           ; /* ------------------------------------------------------*/
 0000           ; /* 软件环境:                                             */
 0000           ; /*                                                       */
 0000           ; /*     ICCAVR 6.31A                                      */
 0000           ; /* ------------------------------------------------------*/
 0000           ; /* 最后修改时间:                                         */
 0000           ; /*                                                       */
 0000           ; /*-------------------------------------------------------*/
 0000           ; /* 历史版本纪录:                                         */
 0000           ; /*                                                       */
 0000           ; /*********************************************************/
 0000           ; 
 0000           ; /********************
 0000           ; * 头 文 件 配 置 区 *
 0000           ; ********************/
 0000           ; # include "PF_Config.h"
 0000           ; 
 0000           ; /********************
 0000           ; *   系 统 宏 定 义  *
 0000           ; ********************/
 0000           ; 
 0000           ; /*------------------*
 0000           ; *   常 数 宏 定 义  *
 0000           ; *------------------*/
 0000           ; 
 0000           ; /*------------------*
 0000           ; *   动 作 宏 定 义  *
 0000           ; *------------------*/
 0000           ; 
 0000           ; /********************
 0000           ; *  模块结构体定义区 *
 0000           ; ********************/
 0000           ; 
 0000           ; /********************
 0000           ; *   模块函数声明区  *
 0000           ; ********************/
 0000           ; 
 0000           ; /********************
 0000           ; *   模块变量声明区  *
 0000           ; ********************/
 0000           ; 
 0000           ; /***********************************************************
 0000           ; *   函数说明:主函数                                       *
 0000           ; *   输入:    无                                           *
 0000           ; *   输出:    无                                           *
 0000           ; *   调用函数:System_INIT()                                *
 0000           ; ***********************************************************/
 0000           ; void main(void)
 0000           ; {    
 0000                   .dbline 68
 0000           ;       unsigned int Voltage;
 0000           ;       unsigned char Loop_Counter, Port_Value;
 0000           ; 
 0000           ;       System_INIT();                          //调用初始化器件函数
 0000 00D0              rcall _System_INIT
 0002                   .dbline 70
 0002           ; 
 0002           ;       SEI();                                          //器件初始化完成,允许中断
 0002 7894              sei
 0004 25C0              rjmp L3
 0006           L2:
 0006                   .dbline 73
 0006           ; 
 0006           ;       while(TRUE)
 0006           ;       {
 0006                   .dbline 74
 0006           ;               ADCSRA |= 1<<ADSC;                      //置位ADSC位,启动一次转换
 0006 80917A00          lds R24,122
 000A 8064              ori R24,64
 000C 80937A00          sts 122,R24
 0010           L5:
 0010                   .dbline 75
 0010           L6:
 0010                   .dbline 75
 0010           ;               while(!(ADCSRA&(1<<ADIF)));             //查询方式等待转换完成
 0010 20907A00          lds R2,122
 0014 24FE              sbrs R2,4
 0016 FCCF              rjmp L5
 0018                   .dbline 77
 0018           ; 
 0018           ;               Voltage = ADC;                          //读入ADCH和ADCL中的转换结果
 0018 A0907800          lds R10,120
 001C B0907900          lds R11,120+1
 0020                   .dbline 79
 0020           ; 
 0020           ;               Loop_Counter = Voltage/170;             //转换为光柱显示
 0020 2AEA              ldi R18,170
 0022 30E0              ldi R19,0
 0024 8501              movw R16,R10
 0026 00D0              rcall div16u
 0028 602F              mov R22,R16
 002A                   .dbline 81
 002A           ; 
 002A           ;               Port_Value = 0x00;
 002A 4427              clr R20
 002C 06C0              rjmp L9
 002E           L8:
 002E                   .dbline 83
 002E                   .dbline 84
 002E 162F              mov R17,R22
 0030 1150              subi R17,1
 0032 01E0              ldi R16,1
 0034 00D0              rcall lsl8
 0036 402B              or R20,R16
 0038                   .dbline 85
 0038 6A95              dec R22
 003A                   .dbline 86
 003A           L9:
 003A                   .dbline 82
 003A 2224              clr R2
 003C 2616              cp R2,R22
 003E B8F3              brlo L8
 0040                   .dbline 88
 0040 8FEF              ldi R24,255
 0042 90E0              ldi R25,0
 0044 242E              mov R2,R20
 0046 3324              clr R3
 0048 2826              eor R2,R24
 004A 3926              eor R3,R25
 004C 422D              mov R20,R2
 004E                   .dbline 89
 004E 25B8              out 0x5,R2
 0050                   .dbline 90
 0050           L3:
 0050                   .dbline 72
 0050 DACF              rjmp L2
 0052           X0:
 0052                   .dbline -2
 0052           L1:
 0052                   .dbline 0 ; func end
 0052 0895              ret
 0054                   .dbsym r Voltage 10 i
 0054                   .dbsym r Port_Value 20 c
 0054                   .dbsym r Loop_Counter 22 c
 0054                   .dbend

⌨️ 快捷键说明

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