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

📄 chengxu.lis

📁 015、AD转换的c语言编程
💻 LIS
📖 第 1 页 / 共 2 页
字号:
                        .module chengxu.c
                        .area data(ram, con, rel)
 0000           _Table::
 0000                   .blkb 2
                        .area idata
 0000 3F06              .byte 63,6
                        .area data(ram, con, rel)
 0002                   .blkb 2
                        .area idata
 0002 5B4F              .byte 91,'O
                        .area data(ram, con, rel)
 0004                   .blkb 2
                        .area idata
 0004 666D              .byte 'f,'m
                        .area data(ram, con, rel)
 0006                   .blkb 2
                        .area idata
 0006 7D07              .byte 125,7
                        .area data(ram, con, rel)
 0008                   .blkb 2
                        .area idata
 0008 7F6F              .byte 127,'o
                        .area data(ram, con, rel)
 000A                   .dbfile E:\Proteus\AVR单片机应用系统开发经典实例\015、AD转换的c语言编程\icc\chengxu.c
 000A                   .dbsym e Table _Table A[10:10]c
 000A           _Data::
 000A                   .blkb 2
                        .area idata
 000A 0000              .byte 0,0
                        .area data(ram, con, rel)
 000C                   .dbfile E:\Proteus\AVR单片机应用系统开发经典实例\015、AD转换的c语言编程\icc\chengxu.c
 000C                   .blkb 2
                        .area idata
 000C 0000              .byte 0,0
                        .area data(ram, con, rel)
 000E                   .dbfile E:\Proteus\AVR单片机应用系统开发经典实例\015、AD转换的c语言编程\icc\chengxu.c
 000E                   .dbsym e Data _Data A[4:4]c
                        .area text(rom, con, rel)
 0000                   .dbfile E:\Proteus\AVR单片机应用系统开发经典实例\015、AD转换的c语言编程\icc\chengxu.c
 0000                   .dbfunc e DelayMs _DelayMs fV
 0000           ;              j -> R20
 0000           ;              i -> R16,R17
                        .even
 0000           _DelayMs::
 0000 0E940000          xcall push_gset1
 0004                   .dbline -1
 0004                   .dbline 14
 0004           ; #include <iom16v.h>
 0004           ; #include <macros.h> 
 0004           ; #define uchar unsigned char
 0004           ; #define uint  unsigned int
 0004           ; /**********************************************************************
 0004           ;                                                               定义数组                                                                        
 0004           ; **********************************************************************/
 0004           ; uchar Table[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
 0004           ; uchar Data[4]={0,0,0,0};
 0004           ; /**********************************************************************
 0004           ;                                                               延时函数                                                                        
 0004           ; **********************************************************************/
 0004           ; void DelayMs(uint i)  //0.25ms
 0004           ; {uchar j;
 0004                   .dbline 15
 0004           ;  for(;i!=0;i--)
 0004 07C0              xjmp L5
 0006           L2:
 0006                   .dbline 16
 0006                   .dbline 16
 0006 4AEF              ldi R20,250
 0008 01C0              xjmp L9
 000A           L6:
 000A                   .dbline 16
 000A                   .dbline 16
 000A                   .dbline 16
 000A           L7:
 000A                   .dbline 16
 000A 4A95              dec R20
 000C           L9:
 000C                   .dbline 16
 000C 4423              tst R20
 000E E9F7              brne L6
 0010                   .dbline 16
 0010           L3:
 0010                   .dbline 15
 0010 0150              subi R16,1
 0012 1040              sbci R17,0
 0014           L5:
 0014                   .dbline 15
 0014 0030              cpi R16,0
 0016 0107              cpc R16,R17
 0018 B1F7              brne L2
 001A           X0:
 001A                   .dbline -2
 001A           L1:
 001A 0E940000          xcall pop_gset1
 001E                   .dbline 0 ; func end
 001E 0895              ret
 0020                   .dbsym r j 20 c
 0020                   .dbsym r i 16 i
 0020                   .dbend
 0020                   .dbfunc e Display _Display fV
 0020           ;            sel -> R20
 0020           ;              i -> R22
 0020           ;              p -> R10,R11
                        .even
 0020           _Display::
 0020 0E940000          xcall push_gset3
 0024 5801              movw R10,R16
 0026                   .dbline -1
 0026                   .dbline 23
 0026           ;   {for(j=250;j!=0;j--) {;}}
 0026           ; }
 0026           ; /**********************************************************************
 0026           ;                                           显示函数            
 0026           ; 注意:使用开发板时sel=0xef;
 0026           ; **********************************************************************/
 0026           ; void Display(uchar *p)         //动态显示函数,参数p为待显示的数组名
 0026           ; {uchar i,sel=0x01;           
 0026                   .dbline 23
 0026 41E0              ldi R20,1
 0028                   .dbline 24
 0028           ;  for(i=0;i<4;i++)
 0028 6627              clr R22
 002A 18C0              xjmp L14
 002C           L11:
 002C                   .dbline 25
 002C           ;   {PORTD=sel;                  //选通最右边的数码管
 002C                   .dbline 25
 002C 42BB              out 0x12,R20
 002E                   .dbline 26
 002E           ;    PORTB=~Table[p[i]];         //送字型码
 002E E62F              mov R30,R22
 0030 FF27              clr R31
 0032 EA0D              add R30,R10
 0034 FB1D              adc R31,R11
 0036 E081              ldd R30,z+0
 0038 FF27              clr R31
 003A 80E0              ldi R24,<_Table
 003C 90E0              ldi R25,>_Table
 003E E80F              add R30,R24
 0040 F91F              adc R31,R25
 0042 2080              ldd R2,z+0
 0044 2094              com R2
 0046 28BA              out 0x18,R2
 0048                   .dbline 27
 0048           ;    if(i==0){PORTB=PORTB&0X7f;} //增加小数点
 0048 6623              tst R22
 004A 19F4              brne L15
 004C                   .dbline 27
 004C                   .dbline 27
 004C 88B3              in R24,0x18
 004E 8F77              andi R24,127
 0050 88BB              out 0x18,R24
 0052                   .dbline 27
 0052           L15:
 0052                   .dbline 28
 0052 01E0              ldi R16,1
 0054 10E0              ldi R17,0
 0056 D4DF              xcall _DelayMs
 0058                   .dbline 29
 0058 440F              lsl R20
 005A                   .dbline 30
 005A           L12:
 005A                   .dbline 24
 005A 6395              inc R22
 005C           L14:
 005C                   .dbline 24
 005C 6430              cpi R22,4
 005E 30F3              brlo L11
 0060                   .dbline -2
 0060           L10:
 0060 0E940000          xcall pop_gset3
 0064                   .dbline 0 ; func end
 0064 0895              ret
 0066                   .dbsym r sel 20 c
 0066                   .dbsym r i 22 c
 0066                   .dbsym r p 10 pc
 0066                   .dbend
 0066                   .dbfunc e ADC_Convert _ADC_Convert fi
 0066           ;          temp1 -> R22,R23
 0066           ;          temp2 -> R20,R21
                        .even
 0066           _ADC_Convert::
 0066 0E940000          xcall push_gset2
 006A                   .dbline -1
 006A                   .dbline 36
 006A           ;    DelayMs(1);                 //显示延时    
 006A           ;    sel=sel<<1;                 //移位以显示前一位
 006A           ;   }
 006A           ; }
 006A           ; /**********************************************************************
 006A           ;                                                               电压值处理函数                                                                  
 006A           ; **********************************************************************/
 006A           ; uint ADC_Convert(void)
 006A           ; {uint temp1,temp2;
 006A                   .dbline 37

⌨️ 快捷键说明

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