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

📄 test.lis

📁 液晶屏源代码
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 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 + -