?? ad.lis
字號:
0174 _BCD_ASCII::
0174 .dbline -1
0174 .dbline 131
0174 ; }
0174 ;
0174 ;
0174 ; /******************************************************************************/
0174 ; //函數(shù)功能:將BCD碼轉(zhuǎn)換為ASCII碼函數(shù)
0174 ; //輸入數(shù)據(jù):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轉(zhuǎn)換為ASCII
017C 095C subi R16,201 ; addi 55
017E 01C0 xjmp L47
0180 L46:
0180 .dbline 136
0180 ; else
0180 ; bcd += '0'; // 將0~9轉(zhuǎn)換為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 + -