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

📄 queryad.lis

📁 AVR 单片机 多路AD转换采集程序
💻 LIS
📖 第 1 页 / 共 2 页
字号:
                        .module QueryAD.C
                        .area text(rom, con, rel)
 0000                   .dbfile D:\ICC_H\Software.H
 0000                   .dbfunc e speaData _speaData fV
 0000           ;              y -> y+4
 0000           ;              j -> y+0
 0000           ;              i -> R10
 0000           ;            len -> R12
 0000           ;            dat -> y+16
                        .even
 0000           _speaData::
 0000 0E940000          xcall push_arg4
 0004 0E940000          xcall push_gset4
 0008 2897              sbiw R28,8
 000A CC88              ldd R12,y+20
 000C                   .dbline -1
 000C                   .dbline 116
 000C           ; /*********************************************************************
 000C           ;       微 雪 电 子   WaveShare   http://www.waveShare.net              
 000C           ;                                                                       
 000C           ; 目    的:   建立使用内部AD的查询示例程序
 000C           ;       
 000C           ; 目标系统:   基于AVR单片机
 000C           ;                                                                               
 000C           ; 应用软件:   ICCAVR
 000C           ;                                                                               
 000C           ; 版    本:   Version 1.0                                                          
 000C           ;                                                                               
 000C           ; 圆版时间:   2005-06-25
 000C           ;       
 000C           ; 开发人员:   SEE
 000C           ; 
 000C           ; 说    明:   若用于商业用途,请保留此段文字或注明代码来源
 000C           ;       
 000C           ;       深 圳 市 微 雪 电 子 有 限 公 司 保 留 所 有 的 版 权     
 000C           ; *********************************************************************/
 000C           ; 
 000C           ; /*01010101010101010101010101010101010101010101010101010101010101010101
 000C           ; ----------------------------------------------------------------------
 000C           ; 版本更新记录:
 000C           ; 
 000C           ; ----------------------------------------------------------------------
 000C           ; 实验内容:
 000C           ; 使用查询检测AD0口,使用PB/PD口的LED指示AD读到的数据。
 000C           ; ----------------------------------------------------------------------
 000C           ; 硬件连接:    
 000C           ; 将“ADJ0.AD0”引针与“MCU.AD0” 引针使用短路帽短接。
 000C           ; 将PB/PD口的LED指示灯使能开关切换到"ON"状态。
 000C           ; ----------------------------------------------------------------------
 000C           ; 注意事项: 
 000C           ; (1)若有加载库函数,请将光盘根目录下的“库函数”下的“ICC_H”文件夹拷到D盘
 000C           ; (2)请详细阅读:光盘根目录下的“产品资料\开发板实验板\SMK系列\SMK1632\说明资料”
 000C           ;               
 000C           ; ----------------------------------------------------------------------
 000C           ; 10101010101010101010101010101010101010101010101010101010101010101010*/
 000C           ; 
 000C           ; #include <iom16v.h>
 000C           ; #include "D:\ICC_H\CmmICC.H"
 000C           ; 
 000C           ; #define H_VAL_DISP_DDR  DDRD
 000C           ; #define L_VAL_DISP_DDR  DDRB
 000C           ; #define H_VAL_DISP_PORT PORTD
 000C           ; #define L_VAL_DISP_PORT PORTB
 000C           ; 
 000C           ; const uint8 ADEnStatus[8] = {0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F};
 000C           ; 
 000C           ; uint8 AdcMux;                   //ADC通道
 000C           ; uint16 AdcVal;                          //ADC转换值
 000C           ; 
 000C           ; /*--------------------------------------------------------------------
 000C           ; 函数名称:
 000C           ; 函数功能:
 000C           ; 注意事项:
 000C           ; 提示说明:
 000C           ; 输    入:
 000C           ; 返    回:
 000C           ; --------------------------------------------------------------------*/
 000C           ; void adc_init()
 000C           ; {
 000C           ;       /*--------
 000C           ;       设置对应的IO口为输入高阻态
 000C           ;       --------*/
 000C           ;       DDRA &= ADEnStatus[AdcMux];        
 000C           ;       PORTA &= ADEnStatus[AdcMux];
 000C           ; 
 000C           ;       ADCSR = 0x00;                           //disable adc
 000C           ;       ADMUX = (1<<REFS0)|(AdcMux&0x0F);       //set AVcc as Vref, set adc input channel
 000C           ;       ACSR = (1<<ACD);                        //close analog comparator
 000C           ;       //ADCSRA=(1<<ADEN)|(1<<ADIE)|(1<<ADSC)|(1<<ADPS2)|(1<<ADPS1);//64分频
 000C           ; }
 000C           ; /*--------------------------------------------------------------------
 000C           ; 函数名称:
 000C           ; 函数功能:
 000C           ; 注意事项:
 000C           ; 提示说明:
 000C           ; 输    入:
 000C           ; 返    回:
 000C           ; --------------------------------------------------------------------*/
 000C           ; void main(void)
 000C           ; {
 000C           ;       H_VAL_DISP_DDR = 0xFF;
 000C           ;       L_VAL_DISP_DDR = 0xFF;
 000C           ;       AdcMux = 0;                             //使用ADC通道0
 000C           ;       adc_init(); 
 000C           ;       while(1)
 000C           ;       { 
 000C           ;               ADCSRA=(1<<ADEN)|(1<<ADSC)|(1<<ADPS2)|(1<<ADPS1);       
 000C           ;               while(!ADSC);
 000C           ;               H_VAL_DISP_PORT = (ADC&0x300)>>8;       //ADC的高2位Val
 000C           ;               L_VAL_DISP_PORT = ADC&0xFF;                     //ADC的低8位Val
 000C           ;       }
 000C           ; }
 000C           ; }
 000C           ; }
 000C           ; }
 000C           ; }
 000C           ; }
 000C           ; }
 000C           ; }
 000C           ; }
 000C           ; }
 000C           ; }
 000C           ; }
 000C           ; }
 000C           ; }
 000C           ; }
 000C           ; }
 000C           ; }
 000C           ; }
 000C           ; }
 000C           ; }
 000C           ; }
 000C           ; }
 000C                   .dbline 119
 000C           ; }
 000C           ; }
 000C           ; }
 000C AA24              clr R10
 000E 41E0              ldi R20,1
 0010 50E0              ldi R21,0
 0012 60E0              ldi R22,0
 0014 70E0              ldi R23,0
 0016 FE01              movw R30,R28
 0018 4083              std z+0,R20
 001A 5183              std z+1,R21
 001C 6283              std z+2,R22
 001E 7383              std z+3,R23
 0020 46C0              xjmp L5
 0022           L2:
 0022                   .dbline 120
 0022                   .dbline 121
 0022 FE01              movw R30,R28
 0024 2080              ldd R2,z+0
 0026 3180              ldd R3,z+1
 0028 4280              ldd R4,z+2
 002A 5380              ldd R5,z+3
 002C FE01              movw R30,R28
 002E 6088              ldd R6,z+16
 0030 7188              ldd R7,z+17
 0032 8288              ldd R8,z+18
 0034 9388              ldd R9,z+19
 0036 5A92              st -y,R5
 0038 4A92              st -y,R4
 003A 3A92              st -y,R3
 003C 2A92              st -y,R2
 003E 8301              movw R16,R6
 0040 9401              movw R18,R8
 0042 0E940000          xcall div32u
 0046 FE01              movw R30,R28
 0048 0483              std z+4,R16
 004A 1583              std z+5,R17
 004C 2683              std z+6,R18
 004E 3783              std z+7,R19
 0050                   .dbline 122
 0050 4AE0              ldi R20,10
 0052 50E0              ldi R21,0
 0054 60E0              ldi R22,0
 0056 70E0              ldi R23,0
 0058 FE01              movw R30,R28
 005A 2480              ldd R2,z+4
 005C 3580              ldd R3,z+5
 005E 4680              ldd R4,z+6
 0060 5780              ldd R5,z+7
 0062 7A93              st -y,R23
 0064 6A93              st -y,R22
 0066 5A93              st -y,R21
 0068 4A93              st -y,R20
 006A 8101              movw R16,R2
 006C 9201              movw R18,R4
 006E 0E940000          xcall mod32u
 0072 80E0              ldi R24,<_dataElem
 0074 90E0              ldi R25,>_dataElem
 0076 EA2D              mov R30,R10
 0078 FF27              clr R31
 007A E80F              add R30,R24
 007C F91F              adc R31,R25
 007E 0083              std z+0,R16
 0080                   .dbline 123
 0080 FE01              movw R30,R28
 0082 2080              ldd R2,z+0
 0084 3180              ldd R3,z+1
 0086 4280              ldd R4,z+2
 0088 5380              ldd R5,z+3
 008A 4AE0              ldi R20,10

⌨️ 快捷键说明

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