📄 test.lis
字号:
00D2 .dbend
00D2 .dbfunc e LCD_init _LCD_init fV
.even
00D2 _LCD_init::
00D2 .dbline -1
00D2 .dbline 67
00D2 ; }
00D2 ;
00D2 ; //LCD初始化
00D2 ; void LCD_init(void)
00D2 ; {
00D2 .dbline 69
00D2 ; /**********LCD12232串口口线设置************/
00D2 ; lcd_port|=BIT(lcd_cs)|BIT(lcd_sclk)|BIT(lcd_std);
00D2 8BB3 in R24,0x1b
00D4 8C61 ori R24,28
00D6 8BBB out 0x1b,R24
00D8 .dbline 70
00D8 ; lcd_ddr|=BIT(lcd_cs)|BIT(lcd_sclk)|BIT(lcd_std);
00D8 8AB3 in R24,0x1a
00DA 8C61 ori R24,28
00DC 8ABB out 0x1a,R24
00DE .dbline 72
00DE ;
00DE ; lcd_write(command,0x30); //30---基本指令动作
00DE 20E3 ldi R18,48
00E0 0027 clr R16
00E2 B8DF xcall _lcd_write
00E4 .dbline 74
00E4 ; //lcd_write(command,0x04); //点设定:显示字符/光标从左到右移位,DDRAM地址加1
00E4 ; lcd_write(command,0x01); //清屏,地址指针指向00H
00E4 21E0 ldi R18,1
00E6 0027 clr R16
00E8 B5DF xcall _lcd_write
00EA .dbline 75
00EA ; lcd_write(command,0x06); //光标的移动方向
00EA 26E0 ldi R18,6
00EC 0027 clr R16
00EE B2DF xcall _lcd_write
00F0 .dbline 76
00F0 ; lcd_write(command,0x0c); //开显示,关游标
00F0 2CE0 ldi R18,12
00F2 0027 clr R16
00F4 AFDF xcall _lcd_write
00F6 .dbline 77
00F6 ; delay_ms(); //液晶初始化后延时
00F6 95DF xcall _delay_ms
00F8 .dbline -2
00F8 L36:
00F8 .dbline 0 ; func end
00F8 0895 ret
00FA .dbend
00FA .dbfunc e lcd_display _lcd_display fV
00FA ; i -> R20
00FA ; chn -> R10,R11
.even
00FA _lcd_display::
00FA 0E940000 xcall push_xgset300C
00FE 5801 movw R10,R16
0100 .dbline -1
0100 .dbline 82
0100 ; }
0100 ;
0100 ; //LCD全屏显示字符
0100 ; void lcd_display(unsigned char chn[30])
0100 ; {
0100 .dbline 84
0100 ; unsigned char i;
0100 ; lcd_write(command,0x30);
0100 20E3 ldi R18,48
0102 0027 clr R16
0104 A7DF xcall _lcd_write
0106 .dbline 85
0106 ; lcd_write(command,x1);
0106 20E8 ldi R18,128
0108 0027 clr R16
010A A4DF xcall _lcd_write
010C .dbline 86
010C ; for (i=0;i<15;i++)
010C 4427 clr R20
010E 08C0 xjmp L41
0110 L38:
0110 .dbline 87
0110 ; lcd_write(data,chn[i]);
0110 E42F mov R30,R20
0112 FF27 clr R31
0114 EA0D add R30,R10
0116 FB1D adc R31,R11
0118 2081 ldd R18,z+0
011A 01E0 ldi R16,1
011C 9BDF xcall _lcd_write
011E L39:
011E .dbline 86
011E 4395 inc R20
0120 L41:
0120 .dbline 86
0120 4F30 cpi R20,15
0122 B0F3 brlo L38
0124 X9:
0124 .dbline 88
0124 ; lcd_write(command,x2);
0124 20E9 ldi R18,144
0126 0027 clr R16
0128 95DF xcall _lcd_write
012A .dbline 89
012A ; for (i=0;i<15;i++)
012A 4427 clr R20
012C 08C0 xjmp L45
012E L42:
012E .dbline 90
012E ; lcd_write(data,chn[15+i]);
012E E42F mov R30,R20
0130 FF27 clr R31
0132 EA0D add R30,R10
0134 FB1D adc R31,R11
0136 2785 ldd R18,z+15
0138 01E0 ldi R16,1
013A 8CDF xcall _lcd_write
013C L43:
013C .dbline 89
013C 4395 inc R20
013E L45:
013E .dbline 89
013E 4F30 cpi R20,15
0140 B0F3 brlo L42
0142 X10:
0142 .dbline -2
0142 L37:
0142 .dbline 0 ; func end
0142 0C940000 xjmp pop_xgset300C
0146 .dbsym r i 20 c
0146 .dbsym r chn 10 pc
0146 .dbend
0146 .dbfunc e line1_display _line1_display fV
0146 ; i -> R20
0146 ; chn -> R10,R11
.even
0146 _line1_display::
0146 0E940000 xcall push_xgset300C
014A 5801 movw R10,R16
014C .dbline -1
014C .dbline 95
014C ; }
014C ;
014C ; //LCD第一行显示字符
014C ; void line1_display(unsigned char chn[15])
014C ; {
014C .dbline 97
014C ; unsigned char i;
014C ; lcd_write(command,0x30);
014C 20E3 ldi R18,48
014E 0027 clr R16
0150 81DF xcall _lcd_write
0152 .dbline 98
0152 ; lcd_write(command,x1);
0152 20E8 ldi R18,128
0154 0027 clr R16
0156 7EDF xcall _lcd_write
0158 .dbline 99
0158 ; for (i=0;i<15;i++)
0158 4427 clr R20
015A 08C0 xjmp L50
015C L47:
015C .dbline 100
015C ; lcd_write(data,chn[i]);
015C E42F mov R30,R20
015E FF27 clr R31
0160 EA0D add R30,R10
0162 FB1D adc R31,R11
0164 2081 ldd R18,z+0
0166 01E0 ldi R16,1
0168 75DF xcall _lcd_write
016A L48:
016A .dbline 99
016A 4395 inc R20
016C L50:
016C .dbline 99
016C 4F30 cpi R20,15
016E B0F3 brlo L47
0170 X11:
0170 .dbline -2
0170 L46:
0170 .dbline 0 ; func end
0170 0C940000 xjmp pop_xgset300C
0174 .dbsym r i 20 c
0174 .dbsym r chn 10 pc
0174 .dbend
0174 .dbfunc e line2_display _line2_display fV
0174 ; i -> R20
0174 ; chn -> R10,R11
.even
0174 _line2_display::
0174 0E940000 xcall push_xgset300C
0178 5801 movw R10,R16
017A .dbline -1
017A .dbline 105
017A ; }
017A ;
017A ; //LCD第二行显示字符
017A ; void line2_display(unsigned char chn[15])
017A ; {
017A .dbline 107
017A ; unsigned char i;
017A ; lcd_write(command,0x30);
017A 20E3 ldi R18,48
017C 0027 clr R16
017E 6ADF xcall _lcd_write
0180 .dbline 108
0180 ; lcd_write(command,x2);
0180 20E9 ldi R18,144
0182 0027 clr R16
0184 67DF xcall _lcd_write
0186 .dbline 109
0186 ; for (i=0;i<15;i++)
0186 4427 clr R20
0188 08C0 xjmp L55
018A L52:
018A .dbline 110
018A ; lcd_write(data,chn[i]);
018A E42F mov R30,R20
018C FF27 clr R31
018E EA0D add R30,R10
0190 FB1D adc R31,R11
0192 2081 ldd R18,z+0
0194 01E0 ldi R16,1
0196 5EDF xcall _lcd_write
0198 L53:
0198 .dbline 109
0198 4395 inc R20
019A L55:
019A .dbline 109
019A 4F30 cpi R20,15
019C B0F3 brlo L52
019E X12:
019E .dbline -2
019E L51:
019E .dbline 0 ; func end
019E 0C940000 xjmp pop_xgset300C
01A2 .dbsym r i 20 c
01A2 .dbsym r chn 10 pc
01A2 .dbend
01A2 .dbfile D:\iccavr\mega16\11\10bit_adc\test.c
01A2 .dbfunc e init_devices _init_devices fV
.even
01A2 _init_devices::
01A2 .dbline -1
01A2 .dbline 13
01A2 ; //ICC-AVR application builder : 2008-11-4 12:53:50
01A2 ; // Target : M16
01A2 ; // Crystal: 8.0000Mhz
01A2 ;
01A2 ; #include <iom16v.h>
01A2 ; #include <macros.h>
01A2 ;
01A2 ; #include "delay.h"
01A2 ; #include "lcd12232.h"
01A2 ; //#include "adc.h"
01A2 ; //call this routine to initialize all peripherals
01A2 ; void init_devices(void)
01A2 ; {
01A2 .dbline 15
01A2 ; //stop errant interrupts until set up
01A2 ; CLI(); //disable all interrupts
01A2 F894 cli
01A4 .dbline 16
01A4 ; LCD_init();
01A4 96DF xcall _LCD_init
01A6 .dbline 17
01A6 ; PORTD|=BIT(PD7);
01A6 979A sbi 0x12,7
01A8 .dbline 18
01A8 ; DDRD|=BIT(PD7);
01A8 8F9A sbi 0x11,7
01AA .dbline 20
01AA ;
01AA ; MCUCR = 0x00;
01AA 2224 clr R2
01AC 25BE out 0x35,R2
01AE .dbline 21
01AE ; GICR = 0x00;
01AE 2BBE out 0x3b,R2
01B0 .dbline 22
01B0 ; TIMSK = 0x00; //timer interrupt sources
01B0 29BE out 0x39,R2
01B2 .dbline 23
01B2 ; SEI(); //re-enable interrupts
01B2 7894 sei
01B4 .dbline -2
01B4 L56:
01B4 .dbline 0 ; func end
01B4 0895 ret
01B6 .dbend
01B6 .dbfunc e main _main fV
01B6 ; adc1 -> <dead>
01B6 ; adc0 -> <dead>
.even
01B6 _main::
01B6 .dbline -1
01B6 .dbline 29
01B6 ; //all peripherals are now initialized
01B6 ; }
01B6 ;
01B6 ; //
01B6 ; void main(void)
01B6 ; {
01B6 .dbline 31
01B6 ; unsigned int adc0,adc1;
01B6 ; init_devices();
01B6 F5DF xcall _init_devices
01B8 .dbline 33
01B8 ; //insert your functional code here...
01B8 ; lcd_display("LCD12232-9液晶 "" 显示测试 ");
01B8 00E0 ldi R16,<L58
01BA 10E0 ldi R17,>L58
01BC 9EDF xcall _lcd_display
01BE L59:
01BE .dbline 37
01BE ; //delay_nms(2000);
01BE ;
01BE ; while(1)
01BE ; {
01BE .dbline 43
01BE ; //adc0=GetAdcValue(0);
01BE ; //LCD_write_adc(7,0,adc0);
01BE ;
01BE ; //adc1=GetAdcValue(1);
01BE ; //LCD_write_adc(7,1,adc1);
01BE ; }
01BE L60:
01BE .dbline 36
01BE FFCF xjmp L59
01C0 X13:
01C0 .dbline -2
01C0 L57:
01C0 .dbline 0 ; func end
01C0 0895 ret
01C2 .dbsym l adc1 1 i
01C2 .dbsym l adc0 1 i
01C2 .dbend
.area data(ram, con, rel)
0000 .dbfile D:\iccavr\mega16\11\10bit_adc\test.c
0000 L58:
0000 .blkb 31
.area idata
0000 4C434431323233322D39D2BABEA72020 .byte 'L,'C,'D,49,50,50,51,50,45,57,210,186,190,167,32,32
0010 202020CFD4CABEB2E2CAD420202000 .byte 32,32,32,207,212,202,190,178,226,202,212,32,32,32,0
.area data(ram, con, rel)
001F .dbfile D:\iccavr\mega16\11\10bit_adc\test.c
001F ; }
001F ;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -