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

📄 adc.lis

📁 adc检测串口反馈到PC上,数据不断发送
💻 LIS
📖 第 1 页 / 共 3 页
字号:
                        .module adc.c
                        .area text(rom, con, rel)
 0000                   .dbfile C:\DOCUME~1\Administrator\桌面\调试成功\adc/abs.h
 0000                   .dbfunc e WDT_ON _WDT_ON fV
                        .even
 0000           _WDT_ON::
 0000                   .dbline -1
 0000                   .dbline 9
 0000           ; #include<iom16v.h>
 0000           ; #include<macros.h>
 0000           ; #include "abs.h" 
 0000           ; 
 0000           ;           /*   七段译码字形表     */        
 0000           ; /*const unsigned char tabel[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,
 0000           ; 0x88,0x83,0xc6,0xa1,0x86,0x8e};*/
 0000           ; //放一个串口通讯时自己能看懂的数据简单处理
 0000           ; const unsigned char tabel[]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x10,0x11,0x12,0x13,0x14,0x15};
 0000                   .dbline 10
 0000           ;           /*     显示缓冲区       */
 0000 A895              wdr
 0002                   .dbline 11
 0002           ; unsigned int d[]={0,0,0,0,0,0,0,0,0,0,0};
 0002 81B5              in R24,0x21
 0004 8F61              ori R24,31
 0006 81BD              out 0x21,R24
 0008                   .dbline 12
 0008           ; void port_init(void)//端口初始化
 0008 81B5              in R24,0x21
 000A 8F7E              andi R24,239
 000C 81BD              out 0x21,R24
 000E                   .dbline -2
 000E           L1:
 000E                   .dbline 0 ; func end
 000E 0895              ret
 0010                   .dbend
 0010                   .dbfunc e WDT_OFF _WDT_OFF fV
                        .even
 0010           _WDT_OFF::
 0010                   .dbline -1
 0010                   .dbline 16
 0010           ;  {
 0010           ;     PORTA = 0x00;DDRA  = 0xff;  PORTB = 0x00;DDRB  = 0x00;
 0010           ;     PORTC = 0x00;DDRC  = 0x00;  PORTD = 0xff;DDRD  = 0x00;
 0010           ;       DDRA  =0xff&((~(1<<PA3))|(~(1<<PA6)) );
 0010                   .dbline 17
 0010           ;  }
 0010 A895              wdr
 0012                   .dbline 18
 0012           ; void display()
 0012 81B5              in R24,0x21
 0014 8861              ori R24,24
 0016 81BD              out 0x21,R24
 0018                   .dbline 19
 0018           ; {
 0018 2224              clr R2
 001A 21BC              out 0x21,R2
 001C                   .dbline -2
 001C           L2:
 001C                   .dbline 0 ; func end
 001C 0895              ret
 001E                   .dbend
 001E                   .dbfunc e delay_1ms _delay_1ms fV
 001E           ;              i -> R16,R17
                        .even
 001E           _delay_1ms::
 001E                   .dbline -1
 001E                   .dbline 22
 001E           ;   USART_Transmit8(tabel[d[3]]);      //送数据
 001E           ;   delay_nms(10);
 001E           ;   USART_Transmit8(tabel[d[2]]);
 001E                   .dbline 24
 001E           ;   delay_nms(10);
 001E           ;   USART_Transmit8(tabel[d[1]]);
 001E 0027              clr R16
 0020 1127              clr R17
 0022 03C0              xjmp L7
 0024           L4:
 0024                   .dbline 25
 0024 A895              wdr
 0026           L5:
 0026                   .dbline 24
 0026 0F5F              subi R16,255  ; offset = 1
 0028 1F4F              sbci R17,255
 002A           L7:
 002A                   .dbline 24
 002A 0639              cpi R16,150
 002C E0E0              ldi R30,0
 002E 1E07              cpc R17,R30
 0030 C8F3              brlo L4
 0032                   .dbline -2
 0032           L3:
 0032                   .dbline 0 ; func end
 0032 0895              ret
 0034                   .dbsym r i 16 i
 0034                   .dbend
 0034                   .dbfunc e delay_nms _delay_nms fV
 0034           ;              i -> R20,R21
 0034           ;              n -> R22,R23
                        .even
 0034           _delay_nms::
 0034 0E940000          xcall push_gset2
 0038 B801              movw R22,R16
 003A                   .dbline -1
 003A                   .dbline 29
 003A           ;   delay_nms(10);
 003A           ;   USART_Transmit8(tabel[d[0]]); 
 003A           ;   delay_nms(10);
 003A           ; }
 003A           ; 
 003A                   .dbline 31
 003A           ; unsigned int ad_con;//存放PA0的AD转换结果
 003A           ; /*      将AD结果转换成电压     */
 003A 4427              clr R20
 003C 5527              clr R21
 003E 03C0              xjmp L12
 0040           L9:
 0040                   .dbline 32
 0040                   .dbline 33
 0040 EEDF              xcall _delay_1ms
 0042                   .dbline 34
 0042           L10:
 0042                   .dbline 31
 0042 4F5F              subi R20,255  ; offset = 1
 0044 5F4F              sbci R21,255
 0046           L12:
 0046                   .dbline 31
 0046 4617              cp R20,R22
 0048 5707              cpc R21,R23
 004A D0F3              brlo L9
 004C                   .dbline 35
 004C           ; #define vref   502
 004C           ; void adctovol(unsigned int adc)
 004C           ;     {
 004C           ;        unsigned int temp;
 004C A895              wdr
 004E                   .dbline -2
 004E           L8:
 004E 0E940000          xcall pop_gset2
 0052                   .dbline 0 ; func end
 0052 0895              ret
 0054                   .dbsym r i 20 i
 0054                   .dbsym r n 22 i
 0054                   .dbend
 0054                   .dbfunc e LED_Wait_ISP _LED_Wait_ISP fV
                        .even
 0054           _LED_Wait_ISP::
 0054                   .dbline -1
 0054                   .dbline 40
 0054           ;        unsigned char i;
 0054           ;        unsigned char *char_p;
 0054           ;      temp=(unsigned int)(((unsigned long)((unsigned long)adc*vref))/1024);
 0054           ;      for(i=0;i<3;i++)
 0054           ;        {
 0054                   .dbline 41
 0054           ;         d[i]=temp%10;
 0054 DD98              cbi 0x1b,5
 0056                   .dbline 41
 0056 08EC              ldi R16,200
 0058 10E0              ldi R17,0
 005A ECDF              xcall _delay_nms
 005C                   .dbline 41
 005C DD9A              sbi 0x1b,5
 005E                   .dbline 41
 005E 08EC              ldi R16,200
 0060 10E0              ldi R17,0
 0062 E8DF              xcall _delay_nms
 0064                   .dbline 42
 0064           ;               temp=temp/10;
 0064 DC98              cbi 0x1b,4
 0066                   .dbline 42
 0066 08EC              ldi R16,200
 0068 10E0              ldi R17,0
 006A E4DF              xcall _delay_nms
 006C                   .dbline 42
 006C DC9A              sbi 0x1b,4
 006E                   .dbline 42
 006E 08EC              ldi R16,200
 0070 10E0              ldi R17,0
 0072 E0DF              xcall _delay_nms
 0074                   .dbline 43
 0074           ;       }
 0074 DD98              cbi 0x1b,5
 0076                   .dbline 43
 0076 08EC              ldi R16,200
 0078 10E0              ldi R17,0
 007A DCDF              xcall _delay_nms
 007C                   .dbline 43
 007C DD9A              sbi 0x1b,5
 007E                   .dbline 43
 007E 08EC              ldi R16,200
 0080 10E0              ldi R17,0
 0082 D8DF              xcall _delay_nms
 0084                   .dbline 44
 0084           ;       }
 0084 DC98              cbi 0x1b,4
 0086                   .dbline 44
 0086 08EC              ldi R16,200
 0088 10E0              ldi R17,0
 008A D4DF              xcall _delay_nms
 008C                   .dbline 44
 008C DC9A              sbi 0x1b,4
 008E                   .dbline 44
 008E 08EC              ldi R16,200
 0090 10E0              ldi R17,0
 0092 D0DF              xcall _delay_nms
 0094                   .dbline 45
 0094           ;       
 0094 DD98              cbi 0x1b,5
 0096                   .dbline 45
 0096 08EC              ldi R16,200
 0098 10E0              ldi R17,0
 009A CCDF              xcall _delay_nms
 009C                   .dbline 45
 009C DD9A              sbi 0x1b,5
 009E                   .dbline 45
 009E 08EC              ldi R16,200
 00A0 10E0              ldi R17,0
 00A2 C8DF              xcall _delay_nms
 00A4                   .dbline 46
 00A4           ; /*      AD转换程序     */
 00A4 DC98              cbi 0x1b,4
 00A6                   .dbline 46
 00A6 08EC              ldi R16,200
 00A8 10E0              ldi R17,0
 00AA C4DF              xcall _delay_nms
 00AC                   .dbline 46
 00AC DD9A              sbi 0x1b,5
 00AE                   .dbline 46
 00AE 08EC              ldi R16,200
 00B0 10E0              ldi R17,0
 00B2 C0DF              xcall _delay_nms
 00B4                   .dbline -2
 00B4           L13:
 00B4                   .dbline 0 ; func end
 00B4 0895              ret
 00B6                   .dbend
 00B6                   .dbfunc e LED_Texting_ISP _LED_Texting_ISP fV
                        .even
 00B6           _LED_Texting_ISP::
 00B6                   .dbline -1
 00B6                   .dbline 49
 00B6           ; #pragma interrupt_handler adc_isr:15
 00B6           ; void adc_isr(void)
 00B6           ;    {
 00B6                   .dbline 50
 00B6           ;     unsigned int temp=0;
 00B6 DC98              cbi 0x1b,4
 00B8                   .dbline 51
 00B8           ;       while(temp<6)
 00B8 DD98              cbi 0x1b,5
 00BA                   .dbline 51
 00BA 08EC              ldi R16,200
 00BC 10E0              ldi R17,0
 00BE BADF              xcall _delay_nms
 00C0                   .dbline 51
 00C0 DD9A              sbi 0x1b,5
 00C2                   .dbline 51
 00C2 08EC              ldi R16,200
 00C4 10E0              ldi R17,0
 00C6 B6DF              xcall _delay_nms
 00C8                   .dbline 52
 00C8           ;           temp++;
 00C8 DD98              cbi 0x1b,5
 00CA                   .dbline 52
 00CA 08EC              ldi R16,200
 00CC 10E0              ldi R17,0
 00CE B2DF              xcall _delay_nms
 00D0                   .dbline 52
 00D0 DD9A              sbi 0x1b,5
 00D2                   .dbline 52
 00D2 08EC              ldi R16,200
 00D4 10E0              ldi R17,0
 00D6 AEDF              xcall _delay_nms
 00D8                   .dbline 53
 00D8           ;       ad_con=ADC;    
 00D8 DD98              cbi 0x1b,5
 00DA                   .dbline 53
 00DA 08EC              ldi R16,200
 00DC 10E0              ldi R17,0
 00DE AADF              xcall _delay_nms
 00E0                   .dbline 53
 00E0 DD9A              sbi 0x1b,5
 00E2                   .dbline 53
 00E2 08EC              ldi R16,200
 00E4 10E0              ldi R17,0
 00E6 A6DF              xcall _delay_nms
 00E8                   .dbline -2
 00E8           L14:
 00E8                   .dbline 0 ; func end
 00E8 0895              ret
 00EA                   .dbend
 00EA                   .dbfunc e USART_InitM1681 _USART_InitM1681 fV
 00EA           ;            tmp -> R10,R11
 00EA           ;           baud -> R10,R11
                        .even
 00EA           _USART_InitM1681::
 00EA 0E940000          xcall push_gset3
 00EE 5801              movw R10,R16
 00F0                   .dbline -1
 00F0                   .dbline 57
 00F0           ;       ADCSR|=(1<<ADSC);//启动转换
 00F0           ;       } 
 00F0           ; //将AD转换结果转换成电压数值
 00F0           ; void main(void)
 00F0                   .dbline 60
 00F0           ; {
 00F0           ; unsigned char i;

⌨️ 快捷键说明

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