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

📄 main.lis

📁 本程序是基于avr单片机的atmega48的控制16*4点阵型液晶。其中main文件调用LCD.c和LCD.h文件。用户可以直接把工程中的LCD.c和LCD.h文件放到自己的程序目录下即可。
💻 LIS
📖 第 1 页 / 共 3 页
字号:
                        .module main.c
                        .area text(rom, con, rel)
 0000                   .dbfile F:\avrprojs\lcd_block/lcd.h
 0000                   .dbfunc e LCD_init _LCD_init fV
                        .even
 0000           _LCD_init::
 0000                   .dbline -1
 0000                   .dbline 22
 0000           ; #include "lcd.h"
 0000           ; #include "uart.h"
 0000           ; void uart0_rx_isr();
 0000           ; int i,j;
 0000           ; /*
 0000           ; #pragma interrupt_handler uart0_rx_isr:19
 0000           ; void uart0_rx_isr(void)
 0000           ; {
 0000           ;  
 0000           ;  unsigned char c;
 0000           ;  c=UDR0;
 0000           ;  LCD_display_char(0,0,c);
 0000           ;  if(i>=15)
 0000           ;  {
 0000           ;   i=0;
 0000           ;   j=j+1;
 0000           ;   if(j>=4)
 0000           ;    {
 0000           ;    j=0;
 0000           ;    LCD_write_char(0x01,0);
 0000           ;    } 
 0000           ;  }
 0000                   .dbline 23
 0000           ; 
 0000 02E0              ldi R16,2
 0002 10E0              ldi R17,0
 0004 D3D0              rcall _delay_nms
 0006                   .dbline 24
 0006           ;  //uart has received a character in UDR
 0006 2227              clr R18
 0008 3327              clr R19
 000A 08E3              ldi R16,56
 000C 10E0              ldi R17,0
 000E 8BD0              rcall _LCD_write_char
 0010                   .dbline 26
 0010           ; }
 0010           ; */
 0010 06E0              ldi R16,6
 0012 10E0              ldi R17,0
 0014 CBD0              rcall _delay_nms
 0016                   .dbline 27
 0016           ; void main(void)
 0016 2227              clr R18
 0018 3327              clr R19
 001A 08E3              ldi R16,56
 001C 10E0              ldi R17,0
 001E 83D0              rcall _LCD_write_char
 0020                   .dbline 29
 0020           ; {
 0020           ;    unsigned char c,c_temp;
 0020 02E0              ldi R16,2
 0022 10E0              ldi R17,0
 0024 C3D0              rcall _delay_nms
 0026                   .dbline 30
 0026           ;       init_devices();
 0026 2227              clr R18
 0028 3327              clr R19
 002A 08E3              ldi R16,56
 002C 10E0              ldi R17,0
 002E 7BD0              rcall _LCD_write_char
 0030                   .dbline 32
 0030           ;       LCD_init();
 0030           ;         uart0_init();
 0030 2227              clr R18
 0032 3327              clr R19
 0034 08E3              ldi R16,56
 0036 10E0              ldi R17,0
 0038 76D0              rcall _LCD_write_char
 003A                   .dbline 33
 003A           ;         j=3;
 003A 02E0              ldi R16,2
 003C 10E0              ldi R17,0
 003E B6D0              rcall _delay_nms
 0040                   .dbline 34
 0040           ;         i=12;
 0040 2227              clr R18
 0042 3327              clr R19
 0044 01E0              ldi R16,1
 0046 10E0              ldi R17,0
 0048 6ED0              rcall _LCD_write_char
 004A                   .dbline 35
 004A           ;                LCD_write_char(0x01,0);
 004A 02E0              ldi R16,2
 004C 10E0              ldi R17,0
 004E AED0              rcall _delay_nms
 0050                   .dbline 36
 0050           ;               // LCD_display_char(5,2,'8');
 0050 2227              clr R18
 0052 3327              clr R19
 0054 08E0              ldi R16,8
 0056 10E0              ldi R17,0
 0058 66D0              rcall _LCD_write_char
 005A                   .dbline 37
 005A           ;       
 005A 01E0              ldi R16,1
 005C 10E0              ldi R17,0
 005E A6D0              rcall _delay_nms
 0060                   .dbline 39
 0060           ;          LCD_write_string(4,0,"Wellcome");
 0060           ;          LCD_write_string(0,1,"www.OURAVR.com!");
 0060 2227              clr R18
 0062 3327              clr R19
 0064 06E0              ldi R16,6
 0066 10E0              ldi R17,0
 0068 5ED0              rcall _LCD_write_char
 006A                   .dbline 40
 006A           ;          LCD_write_string(0,2,"happy new year!");
 006A 01E0              ldi R16,1
 006C 10E0              ldi R17,0
 006E 9ED0              rcall _delay_nms
 0070                   .dbline 43
 0070           ;          LCD_write_string(0,3,"amork:everfriend");
 0070           ;                delay_nms(5000);
 0070           ;                 LCD_write_char(0x01,0);
 0070 2227              clr R18
 0072 3327              clr R19
 0074 0CE0              ldi R16,12
 0076 10E0              ldi R17,0
 0078 56D0              rcall _LCD_write_char
 007A                   .dbline 45
 007A           ;      while(1)    //for循环
 007A           ;      {
 007A 2227              clr R18
 007C 3327              clr R19
 007E 01E0              ldi R16,1
 0080 10E0              ldi R17,0
 0082 51D0              rcall _LCD_write_char
 0084                   .dbline -2
 0084           L1:
 0084                   .dbline 0 ; func end
 0084 0895              ret
 0086                   .dbend
 0086                   .dbfunc e LCD_write_string _LCD_write_string fV
 0086           ;              s -> R20,R21
 0086           ;              Y -> R10,R11
 0086           ;              X -> R22,R23
                        .even
 0086           _LCD_write_string::
 0086 00D0              rcall push_gset3
 0088 5901              movw R10,R18
 008A B801              movw R22,R16
 008C 4E81              ldd R20,y+6
 008E 5F81              ldd R21,y+7
 0090                   .dbline -1
 0090                   .dbline 50
 0090           ;            LCD_write_string(4,0,"Wellcome");
 0090           ;          //LCD_write_string(0,1,"www.OURAVR.com!");
 0090           ;          LCD_write_string(0,1,"happy new year!");
 0090           ;          
 0090           ;          c_temp=uart_rec();
 0090                   .dbline 51
 0090           ;        LCD_display_char(i,j,c_temp);
 0090 9501              movw R18,R10
 0092 8B01              movw R16,R22
 0094 0FD0              rcall _LCD_set_xy
 0096 08C0              rjmp L4
 0098           L3:
 0098                   .dbline 54
 0098                   .dbline 55
 0098 FA01              movw R30,R20
 009A 2081              ldd R18,z+0
 009C 3327              clr R19
 009E 0027              clr R16
 00A0 1127              clr R17
 00A2 41D0              rcall _LCD_write_char
 00A4                   .dbline 56
 00A4 4F5F              subi R20,255  ; offset = 1
 00A6 5F4F              sbci R21,255
 00A8                   .dbline 57
 00A8           L4:
 00A8                   .dbline 53
 00A8           ;            i=i+1;
 00A8           ;        if(i>=16)
 00A8 FA01              movw R30,R20
 00AA 2080              ldd R2,z+0
 00AC 2220              tst R2
 00AE A1F7              brne L3
 00B0                   .dbline -2
 00B0           L2:
 00B0 00D0              rcall pop_gset3
 00B2                   .dbline 0 ; func end
 00B2 0895              ret
 00B4                   .dbsym r s 20 pc
 00B4                   .dbsym r Y 10 I
 00B4                   .dbsym r X 22 I
 00B4                   .dbend
 00B4                   .dbfunc e LCD_set_xy _LCD_set_xy fV
 00B4           ;        address -> R20
 00B4           ;              y -> R22,R23
 00B4           ;              x -> R20,R21
                        .even
 00B4           _LCD_set_xy::
 00B4 00D0              rcall push_gset2
 00B6 B901              movw R22,R18
 00B8 A801              movw R20,R16
 00BA                   .dbline -1
 00BA                   .dbline 62
 00BA           ;          {
 00BA           ;              i=0;
 00BA           ;              j=j+1;
 00BA           ;               if(j>=4)
 00BA           ;               {
 00BA           ;                 j=2;
 00BA           ;                 LCD_write_char(0x01,0);
 00BA           ;               } 
 00BA           ;           }
 00BA                   .dbline 65
 00BA           ;                
 00BA           ; 
 00BA           ;      }
 00BA 04E6              ldi R16,100
 00BC 10E0              ldi R17,0
 00BE 5FD0              rcall _delay_nus
 00C0                   .dbline 66
 00C0           ; }
 00C0 4F70              andi R20,15
 00C2 5070              andi R21,0
 00C4                   .dbline 67
 00C4           ; }
 00C4 6030              cpi R22,0
 00C6 6707              cpc R22,R23
 00C8 69F0              breq L9
 00CA           X0:
 00CA 6130              cpi R22,1
 00CC E0E0              ldi R30,0
 00CE 7E07              cpc R23,R30
 00D0 51F0              breq L10
 00D2 6230              cpi R22,2
 00D4 E0E0              ldi R30,0
 00D6 7E07              cpc R23,R30
 00D8 41F0              breq L11
 00DA 6330              cpi R22,3
 00DC E0E0              ldi R30,0
 00DE 7E07              cpc R23,R30
 00E0 31F0              breq L12
 00E2 06C0              rjmp L8
 00E4           X1:
 00E4                   .dbline 68
 00E4           ; }
 00E4           L9:
 00E4                   .dbline 70
 00E4           ; }
 00E4           ; }
 00E4                   .dbline 71
 00E4           ; }
 00E4 05C0              rjmp L8
 00E6           L10:
 00E6                   .dbline 73
 00E6           ; }
 00E6           ; }
 00E6 405C              subi R20,192    ; addi 64
 00E8                   .dbline 74
 00E8           ; }
 00E8 03C0              rjmp L8
 00EA           L11:
 00EA                   .dbline 76
 00EA           ; }
 00EA           ; }
 00EA 405F              subi R20,240    ; addi 16
 00EC                   .dbline 77
 00EC           ; }
 00EC 01C0              rjmp L8
 00EE           L12:
 00EE                   .dbline 79
 00EE           ; }
 00EE           ; }
 00EE 405B              subi R20,176    ; addi 80
 00F0                   .dbline 80
 00F0           ; }
 00F0                   .dbline 82
 00F0           ; }
 00F0           ; }
 00F0           L8:
 00F0                   .dbline 84
 00F0           ; }
 00F0           ; }
 00F0 4068              ori R20,128
 00F2                   .dbline 85
 00F2           ; }
 00F2 2227              clr R18
 00F4 3327              clr R19
 00F6 042F              mov R16,R20
 00F8 1127              clr R17
 00FA 15D0              rcall _LCD_write_char
 00FC                   .dbline -2
 00FC           L6:
 00FC 00D0              rcall pop_gset2
 00FE                   .dbline 0 ; func end
 00FE 0895              ret
 0100                   .dbsym r address 20 c
 0100                   .dbsym r y 22 I
 0100                   .dbsym r x 20 I
 0100                   .dbend
 0100                   .dbfunc e LCD_en_write _LCD_en_write fV
                        .even
 0100           _LCD_en_write::
 0100                   .dbline -1
 0100                   .dbline 91
 0100           ; }
 0100           ; }
 0100           ; }
 0100           ; }
 0100           ; }
 0100           ; }
 0100                   .dbline 92
 0100           ; }
 0100 5C9A              sbi 0xb,4
 0102                   .dbline 93
 0102           ; }
 0102 01E0              ldi R16,1
 0104 10E0              ldi R17,0
 0106 3BD0              rcall _delay_nus
 0108                   .dbline 94
 0108           ; }
 0108 5C98              cbi 0xb,4
 010A                   .dbline -2
 010A           L13:
 010A                   .dbline 0 ; func end
 010A 0895              ret
 010C                   .dbend

⌨️ 快捷键说明

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