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

📄 ad.lis

📁 基于ATMEGA16的AD转换的C程序源代码
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 0174           _BCD_ASCII::
 0174                   .dbline -1
 0174                   .dbline 131
 0174           ; }
 0174           ; 
 0174           ; 
 0174           ; /******************************************************************************/ 
 0174           ; //函数功能:将BCD码转换为ASCII码函数 
 0174           ; //输入数据:BCD
 0174           ; //输出:ASCII
 0174           ; //作者:韩红瑞
 0174           ; //修改时间:2006-08-31
 0174           ; /******************************************************************************/ 
 0174           ; unsigned char BCD_ASCII(unsigned char bcd) 
 0174           ; { 
 0174                   .dbline 132
 0174           ;     bcd &= 0x0F; 
 0174 0F70              andi R16,15
 0176                   .dbline 133
 0176           ;     if(bcd > 9)  
 0176 89E0              ldi R24,9
 0178 8017              cp R24,R16
 017A 10F4              brsh L46
 017C           X12:
 017C                   .dbline 134
 017C           ;     bcd +=('7');     // 将A~F转换为ASCII 
 017C 095C              subi R16,201    ; addi 55
 017E 01C0              xjmp L47
 0180           L46:
 0180                   .dbline 136
 0180           ;     else 
 0180           ;     bcd += '0';         // 将0~9转换为ASCII 0~9 
 0180 005D              subi R16,208    ; addi 48
 0182           L47:
 0182                   .dbline 137
 0182           ;     return(bcd); 
 0182                   .dbline -2
 0182           L45:
 0182                   .dbline 0 ; func end
 0182 0895              ret
 0184                   .dbsym r bcd 16 c
 0184                   .dbend
 0184                   .dbfunc e LCD_writeasc _LCD_writeasc fV
 0184           ;           data -> y+4
 0184           ;              y -> R12
 0184           ;              x -> R10
                        .even
 0184           _LCD_writeasc::
 0184 0E940000          xcall push_xgset003C
 0188 C22E              mov R12,R18
 018A A02E              mov R10,R16
 018C                   .dbline -1
 018C                   .dbline 142
 018C           ; } 
 018C           ;  
 018C           ; 
 018C           ; void  LCD_writeasc(unsigned char x, unsigned char y, unsigned char data)
 018C           ; {
 018C                   .dbline 143
 018C           ;     LCD_address(x,y);
 018C 2C2D              mov R18,R12
 018E 0A2D              mov R16,R10
 0190 B4DF              xcall _LCD_address
 0192                   .dbline 144
 0192           ;       WR_dat(data);
 0192 0C81              ldd R16,y+4
 0194 76DF              xcall _WR_dat
 0196                   .dbline -2
 0196           L48:
 0196                   .dbline 0 ; func end
 0196 0C940000          xjmp pop_xgset003C
 019A                   .dbsym l data 4 c
 019A                   .dbsym r y 12 c
 019A                   .dbsym r x 10 c
 019A                   .dbend
 019A                   .dbfunc e Lcd_INT _Lcd_INT fV
                        .even
 019A           _Lcd_INT::
 019A                   .dbline -1
 019A                   .dbline 148
 019A           ; }
 019A           ;   
 019A           ; void Lcd_INT()
 019A           ; {
 019A                   .dbline 149
 019A           ;   DDRA|=BIT(1);
 019A D19A              sbi 0x1a,1
 019C                   .dbline 150
 019C           ;   DDRA|=BIT(3);
 019C D39A              sbi 0x1a,3
 019E                   .dbline 151
 019E           ;   lcd_control();
 019E 97DF              xcall _lcd_control
 01A0                   .dbline -2
 01A0           L49:
 01A0                   .dbline 0 ; func end
 01A0 0895              ret
 01A2                   .dbend
 01A2                   .dbfunc e lcd_writechar _lcd_writechar fV
 01A2           ;         number -> R10
 01A2           ;              Y -> R14
 01A2           ;              X -> R12
                        .even
 01A2           _lcd_writechar::
 01A2 0E940000          xcall push_xgset00FC
 01A6 E22E              mov R14,R18
 01A8 C02E              mov R12,R16
 01AA AE80              ldd R10,y+6
 01AC                   .dbline -1
 01AC                   .dbline 155
 01AC           ; }
 01AC           ; 
 01AC           ; void lcd_writechar(unsigned char X,unsigned char Y,unsigned char number)
 01AC           ; {
 01AC                   .dbline 156
 01AC           ;     LCD_address(X,Y);
 01AC 2E2D              mov R18,R14
 01AE 0C2D              mov R16,R12
 01B0 A4DF              xcall _LCD_address
 01B2                   .dbline 157
 01B2           ;       WR_dat(BCD_ASCII(number>>4));
 01B2 0A2D              mov R16,R10
 01B4 0295              swap R16
 01B6 0F70              andi R16,#0x0F
 01B8 DDDF              xcall _BCD_ASCII
 01BA 63DF              xcall _WR_dat
 01BC                   .dbline 158
 01BC           ;       WR_dat(BCD_ASCII(number));
 01BC 0A2D              mov R16,R10
 01BE DADF              xcall _BCD_ASCII
 01C0 60DF              xcall _WR_dat
 01C2                   .dbline -2
 01C2           L50:
 01C2                   .dbline 0 ; func end
 01C2 0C940000          xjmp pop_xgset00FC
 01C6                   .dbsym r number 10 c
 01C6                   .dbsym r Y 14 c
 01C6                   .dbsym r X 12 c
 01C6                   .dbend
 01C6                   .dbfunc e lcd_write2 _lcd_write2 fV
 01C6           ;         number -> R10,R11
 01C6           ;              Y -> R14
 01C6           ;              X -> R12
                        .even
 01C6           _lcd_write2::
 01C6 0E940000          xcall push_xgset00FC
 01CA E22E              mov R14,R18
 01CC C02E              mov R12,R16
 01CE AE80              ldd R10,y+6
 01D0 BF80              ldd R11,y+7
 01D2                   .dbline -1
 01D2                   .dbline 162
 01D2           ; }
 01D2           ; 
 01D2           ; void lcd_write2(unsigned char X,unsigned char Y,unsigned int number)
 01D2           ; {
 01D2                   .dbline 163
 01D2           ;     LCD_address(X,Y);
 01D2 2E2D              mov R18,R14
 01D4 0C2D              mov R16,R12
 01D6 91DF              xcall _LCD_address
 01D8                   .dbline 164
 01D8           ;       WR_dat(a[(number/1000)]);
 01D8 28EE              ldi R18,1000
 01DA 33E0              ldi R19,3
 01DC 8501              movw R16,R10
 01DE 0E940000          xcall div16u
 01E2 F801              movw R30,R16
 01E4 80E0              ldi R24,<_a
 01E6 90E0              ldi R25,>_a
 01E8 E80F              add R30,R24
 01EA F91F              adc R31,R25
 01EC 0081              ldd R16,z+0
 01EE 49DF              xcall _WR_dat
 01F0                   .dbline 165
 01F0           ;       WR_dat(a[(number%1000/100)]);
 01F0 28EE              ldi R18,1000
 01F2 33E0              ldi R19,3
 01F4 8501              movw R16,R10
 01F6 0E940000          xcall mod16u
 01FA 24E6              ldi R18,100
 01FC 30E0              ldi R19,0
 01FE 0E940000          xcall div16u
 0202 F801              movw R30,R16
 0204 80E0              ldi R24,<_a
 0206 90E0              ldi R25,>_a
 0208 E80F              add R30,R24
 020A F91F              adc R31,R25
 020C 0081              ldd R16,z+0
 020E 39DF              xcall _WR_dat
 0210                   .dbline 166
 0210           ;       WR_dat(a[(number%100/10)]);
 0210 24E6              ldi R18,100
 0212 30E0              ldi R19,0
 0214 8501              movw R16,R10
 0216 0E940000          xcall mod16u
 021A 2AE0              ldi R18,10
 021C 30E0              ldi R19,0
 021E 0E940000          xcall div16u
 0222 F801              movw R30,R16
 0224 80E0              ldi R24,<_a
 0226 90E0              ldi R25,>_a
 0228 E80F              add R30,R24
 022A F91F              adc R31,R25
 022C 0081              ldd R16,z+0
 022E 29DF              xcall _WR_dat
 0230                   .dbline 167
 0230           ;       WR_dat(a[(number%10)]);
 0230 2AE0              ldi R18,10
 0232 30E0              ldi R19,0
 0234 8501              movw R16,R10
 0236 0E940000          xcall mod16u
 023A F801              movw R30,R16
 023C 80E0              ldi R24,<_a
 023E 90E0              ldi R25,>_a
 0240 E80F              add R30,R24
 0242 F91F              adc R31,R25
 0244 0081              ldd R16,z+0
 0246 1DDF              xcall _WR_dat
 0248                   .dbline -2
 0248           L51:
 0248                   .dbline 0 ; func end
 0248 0C940000          xjmp pop_xgset00FC
 024C                   .dbsym r number 10 i
 024C                   .dbsym r Y 14 c
 024C                   .dbsym r X 12 c
 024C                   .dbend
                        .area lit(rom, con, rel)
 0000           _Bitmap::
 0000 0000              .byte 0,0
 0002 0000              .byte 0,0
 0004 0080              .byte 0,128
 0006 0000              .byte 0,0
 0008 0000              .byte 0,0
 000A 0000              .byte 0,0
 000C 0000              .byte 0,0
 000E 0000              .byte 0,0
 0010 0000              .byte 0,0
 0012 0000              .byte 0,0
 0014 0082              .byte 0,130
 0016 0000              .byte 0,0
 0018 0000              .byte 0,0
 001A 0000              .byte 0,0
 001C 0000              .byte 0,0
 001E 0000              .byte 0,0
 0020 0000              .byte 0,0
 0022 0000              .byte 0,0
 0024 0106              .byte 1,6
 0026 0C00              .byte 12,0
 0028 0000              .byte 0,0
 002A 0000              .byte 0,0
 002C 0000              .byte 0,0
 002E 0000              .byte 0,0
 0030 0000              .byte 0,0
 0032 0000              .byte 0,0
 0034 0204              .byte 2,4
 0036 0800              .byte 8,0
 0038 0000              .byte 0,0
 003A 0000              .byte 0,0
 003C 0000              .byte 0,0
 003E 0000              .byte 0,0
 0040 0000              .byte 0,0
 0042 0000              .byte 0,0
 0044 0404              .byte 4,4
 0046 0800              .byte 8,0
 0048 0000              .byte 0,0
 004A 0000              .byte 0,0
 004C 0000              .byte 0,0
 004E 0000              .byte 0,0
 0050 0000              .byte 0,0
 0052 0000              .byte 0,0
 0054 0404              .byte 4,4
 0056 0800              .byte 8,0
 0058 0000              .byte 0,0
 005A 0000              .byte 0,0
 005C 0000              .byte 0,0
 005E 0000              .byte 0,0
 0060 0000              .byte 0,0
 0062 0000              .byte 0,0
 0064 0404              .byte 4,4
 0066 0800              .byte 8,0
 0068 0000              .byte 0,0
 006A 0000              .byte 0,0
 006C 0000              .byte 0,0
 006E 0000              .byte 0,0
 0070 0000              .byte 0,0
 0072 0000              .byte 0,0
 0074 0404              .byte 4,4
 0076 0800              .byte 8,0
 0078 0000              .byte 0,0
 007A 0000              .byte 0,0
 007C 0000              .byte 0,0
 007E 0000              .byte 0,0
 0080 0000              .byte 0,0
 0082 000F              .byte 0,15
 0084 FE04              .byte 254,4
 0086 0800              .byte 8,0
 0088 0000              .byte 0,0
 008A 0000              .byte 0,0
 008C 0000              .byte 0,0
 008E 0000              .byte 0,0
 0090 0000              .byte 0,0
 0092 0010              .byte 0,16
 0094 01FF              .byte 1,255
 0096 0800              .byte 8,0
 0098 0000              .byte 0,0
 009A 0000              .byte 0,0
 009C 0000              .byte 0,0
 009E 0000              .byte 0,0
 00A0 0000              .byte 0,0
 00A2 0000              .byte 0,0
 00A4 0000              .byte 0,0
 00A6 8800              .byte 136,0
 00A8 0000              .byte 0,0
 00AA 0000              .byte 0,0
 00AC 0000              .byte 0,0
 00AE 0000              .byte 0,0

⌨️ 快捷键说明

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