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

📄 1.lis

📁 在车头有4个光敏电阻做的寻找光源的小车程序 具有笔战功能 ICC-AVR ATmega16L 做的控制器 找到光源后停车
💻 LIS
📖 第 1 页 / 共 5 页
字号:
                        .module _1.c
                        .area text(rom, con, rel)
 0000                   .dbfile C:\DOCUME~1\qiuqiu\桌面\测试\1\1.c
                        .area data(ram, con, rel)
 0000                   .dbfile C:\DOCUME~1\qiuqiu\桌面\测试\1\1.c
 0000           _tab::
 0000                   .blkb 2
                        .area idata
 0000 3031              .byte 48,49
                        .area data(ram, con, rel)
 0002                   .dbfile C:\DOCUME~1\qiuqiu\桌面\测试\1\1.c
 0002                   .blkb 2
                        .area idata
 0002 3233              .byte 50,51
                        .area data(ram, con, rel)
 0004                   .dbfile C:\DOCUME~1\qiuqiu\桌面\测试\1\1.c
 0004                   .blkb 2
                        .area idata
 0004 3435              .byte 52,53
                        .area data(ram, con, rel)
 0006                   .dbfile C:\DOCUME~1\qiuqiu\桌面\测试\1\1.c
 0006                   .blkb 2
                        .area idata
 0006 3637              .byte 54,55
                        .area data(ram, con, rel)
 0008                   .dbfile C:\DOCUME~1\qiuqiu\桌面\测试\1\1.c
 0008                   .blkb 2
                        .area idata
 0008 3839              .byte 56,57
                        .area data(ram, con, rel)
 000A                   .dbfile C:\DOCUME~1\qiuqiu\桌面\测试\1\1.c
 000A                   .dbfile C:\DOCUME~1\qiuqiu\桌面\测试\1\lcd.h
 000A                   .dbsym e tab _tab A[10:10]c
                        .area text(rom, con, rel)
 0000                   .dbfile C:\DOCUME~1\qiuqiu\桌面\测试\1\lcd.h
 0000                   .dbfunc e LCD_init _LCD_init fV
                        .even
 0000           _LCD_init::
 0000                   .dbline -1
 0000                   .dbline 34
 0000           ; 
 0000           ; #define LCD_EN_PORT    PORTB   //以下2个要设为同一个口
 0000           ; #define LCD_EN_DDR     DDRB
 0000           ; #define LCD_RS_PORT    PORTB   //以下2个要设为同一个口
 0000           ; #define LCD_RS_DDR     DDRB
 0000           ; #define LCD_DATA_PORT  PORTB  //以下3个要设为同一个口
 0000           ; #define LCD_DATA_DDR   DDRB   //一定要用高4位
 0000           ; #define LCD_DATA_PIN   PINB
 0000           ; 
 0000           ; #define LCD_RS         (1<<PB7) //0x80   portB7       out 
 0000           ; #define LCD_EN         (1<<PB6) //0x60   portB6       out 
 0000           ; #define LCD_DATA       ((1<<PB5)|(1<<PB4)|(1<<PB3)|(1<<PB2)) 
 0000           ; 
 0000           ; unsigned char tab[]={'0','1','2','3','4','5','6','7','8','9'};
 0000           ; /*--------------------------------------------------------------------------------------------------
 0000           ; 函数声明    
 0000           ; --------------------------------------------------------------------------------------------------*/
 0000           ; void LCD_init(void);
 0000           ; void LCD_en_write(void);
 0000           ; void LCD_write_command(unsigned  char command) ;
 0000           ; void LCD_write_data(unsigned char data);
 0000           ; void LCD_set_xy (unsigned char x, unsigned char y);
 0000           ; void LCD_write_string(unsigned char X,unsigned char Y,unsigned char *s);
 0000           ; void LCD_write_char(unsigned char X,unsigned char Y,unsigned char data);
 0000           ; 
 0000           ; /*补充*/
 0000           ; void LCD_write_shu(unsigned int x,unsigned int t,unsigned int n);
 0000           ; /*补充*/
 0000           ; 
 0000           ; void delay_nus(unsigned int n);
 0000           ; void delay_nms(unsigned int n);
 0000           ; 
 0000           ; void LCD_init(void)         //液晶初始化
 0000           ; {
 0000                   .dbline 35
 0000           ;   LCD_DATA_DDR|=LCD_DATA;   //数据口方向为输出
 0000 87B3              in R24,0x17
 0002 8C63              ori R24,60
 0004 87BB              out 0x17,R24
 0006                   .dbline 36
 0006           ;   LCD_EN_DDR|=LCD_EN;       //设置EN方向为输出
 0006 BE9A              sbi 0x17,6
 0008                   .dbline 37
 0008           ;   LCD_RS_DDR|=LCD_RS;       //设置RS方向为输出
 0008 BF9A              sbi 0x17,7
 000A                   .dbline 38
 000A           ;   LCD_write_command(0x28); 
 000A 08E2              ldi R16,40
 000C 14D0              xcall _LCD_write_command
 000E                   .dbline 39
 000E           ;   LCD_en_write();
 000E 0DD0              xcall _LCD_en_write
 0010                   .dbline 40
 0010           ;   delay_nus(40);
 0010 08E2              ldi R16,40
 0012 10E0              ldi R17,0
 0014 F8D0              xcall _delay_nus
 0016                   .dbline 41
 0016           ;   LCD_write_command(0x28);  //4位显示
 0016 08E2              ldi R16,40
 0018 0ED0              xcall _LCD_write_command
 001A                   .dbline 42
 001A           ;   LCD_write_command(0x0c);  //显示开
 001A 0CE0              ldi R16,12
 001C 0CD0              xcall _LCD_write_command
 001E                   .dbline 43
 001E           ;   LCD_write_command(0x01);  //清屏
 001E 01E0              ldi R16,1
 0020 0AD0              xcall _LCD_write_command
 0022                   .dbline 44
 0022           ;   delay_nms(2);
 0022 02E0              ldi R16,2
 0024 10E0              ldi R17,0
 0026 07D1              xcall _delay_nms
 0028                   .dbline -2
 0028           L1:
 0028                   .dbline 0 ; func end
 0028 0895              ret
 002A                   .dbend
 002A                   .dbfunc e LCD_en_write _LCD_en_write fV
                        .even
 002A           _LCD_en_write::
 002A                   .dbline -1
 002A                   .dbline 48
 002A           ; }
 002A           ; 
 002A           ; void LCD_en_write(void)  //液晶使能
 002A           ; {
 002A                   .dbline 49
 002A           ;   LCD_EN_PORT|=LCD_EN;
 002A C69A              sbi 0x18,6
 002C                   .dbline 50
 002C           ;   delay_nus(1);
 002C 01E0              ldi R16,1
 002E 10E0              ldi R17,0
 0030 EAD0              xcall _delay_nus
 0032                   .dbline 51
 0032           ;   LCD_EN_PORT&=~LCD_EN;
 0032 C698              cbi 0x18,6
 0034                   .dbline -2
 0034           L2:
 0034                   .dbline 0 ; func end
 0034 0895              ret
 0036                   .dbend
 0036                   .dbfunc e LCD_write_command _LCD_write_command fV
 0036           ;           temp -> R22
 0036           ;        command -> R20
                        .even
 0036           _LCD_write_command::
 0036 4A93              st -y,R20
 0038 6A93              st -y,R22
 003A 402F              mov R20,R16
 003C                   .dbline -1
 003C                   .dbline 55
 003C           ; }
 003C           ; 
 003C           ; void LCD_write_command(unsigned char command) //写指令 
 003C           ; { 
 003C                   .dbline 57
 003C           ;   unsigned char temp;
 003C           ;   command=((command&0b10000000)>>7)|((command&0b01000000)>>5)|((command&0b00100000)>>3)|((command&0b00010000)>>1)|((command&0b00001000)<<1)|((command&0b00000100)<<3)|((command&0b00000010)<<5)|((command&0b00000001)<<7);
 003C 842F              mov R24,R20
 003E 8074              andi R24,64
 0040 282E              mov R2,R24
 0042 2694              lsr R2
 0044 2694              lsr R2
 0046 2694              lsr R2
 0048 2694              lsr R2
 004A 2694              lsr R2
 004C 842F              mov R24,R20
 004E 8078              andi R24,128
 0050 382E              mov R3,R24
 0052 3694              lsr R3
 0054 3694              lsr R3
 0056 3694              lsr R3
 0058 3694              lsr R3
 005A 3694              lsr R3
 005C 3694              lsr R3
 005E 3694              lsr R3
 0060 3228              or R3,R2
 0062 842F              mov R24,R20
 0064 8072              andi R24,32
 0066 8695              lsr R24
 0068 8695              lsr R24
 006A 8695              lsr R24
 006C 382A              or R3,R24
 006E 842F              mov R24,R20
 0070 8071              andi R24,16
 0072 8695              lsr R24
 0074 382A              or R3,R24
 0076 842F              mov R24,R20
 0078 8870              andi R24,8
 007A 880F              lsl R24
 007C 382A              or R3,R24
 007E 842F              mov R24,R20
 0080 8470              andi R24,4
 0082 880F              lsl R24
 0084 880F              lsl R24
 0086 880F              lsl R24
 0088 382A              or R3,R24
 008A 842F              mov R24,R20
 008C 8270              andi R24,2
 008E 880F              lsl R24
 0090 880F              lsl R24
 0092 880F              lsl R24
 0094 880F              lsl R24
 0096 880F              lsl R24
 0098 382A              or R3,R24
 009A 842F              mov R24,R20
 009C 8170              andi R24,1
 009E 880F              lsl R24
 00A0 880F              lsl R24
 00A2 880F              lsl R24
 00A4 880F              lsl R24
 00A6 880F              lsl R24
 00A8 880F              lsl R24
 00AA 880F              lsl R24
 00AC 382A              or R3,R24
 00AE 432D              mov R20,R3
 00B0                   .dbline 58
 00B0           ;   delay_nus(16);
 00B0 00E1              ldi R16,16
 00B2 10E0              ldi R17,0
 00B4 A8D0              xcall _delay_nus
 00B6                   .dbline 59
 00B6           ;   temp=command<<2; 
 00B6 642F              mov R22,R20
 00B8 660F              lsl R22
 00BA 660F              lsl R22
 00BC                   .dbline 60
 00BC           ;   LCD_RS_PORT&=~LCD_RS;        //RS=0 
 00BC C798              cbi 0x18,7
 00BE                   .dbline 61
 00BE           ;   LCD_DATA_PORT&=0b11000011;         //清高四位 
 00BE 88B3              in R24,0x18
 00C0 837C              andi R24,195
 00C2 88BB              out 0x18,R24
 00C4                   .dbline 62
 00C4           ;   LCD_DATA_PORT|=temp&0b00111100; //写高四位 
 00C4 862F              mov R24,R22
 00C6 8C73              andi R24,60
 00C8 28B2              in R2,0x18
 00CA 282A              or R2,R24
 00CC 28BA              out 0x18,R2
 00CE                   .dbline 63
 00CE           ;   LCD_en_write(); 
 00CE ADDF              xcall _LCD_en_write
 00D0                   .dbline 64
 00D0           ;   command=command>>2;          //低四位移到高四位 
 00D0 4695              lsr R20
 00D2 4695              lsr R20
 00D4                   .dbline 65
 00D4           ;   LCD_DATA_PORT&=0b11000011;         //清高四位 
 00D4 88B3              in R24,0x18
 00D6 837C              andi R24,195
 00D8 88BB              out 0x18,R24
 00DA                   .dbline 66
 00DA           ;   LCD_DATA_PORT|=command&0b00111100; //写低四位 
 00DA 842F              mov R24,R20
 00DC 8C73              andi R24,60
 00DE 28B2              in R2,0x18
 00E0 282A              or R2,R24
 00E2 28BA              out 0x18,R2
 00E4                   .dbline 67
 00E4           ;   LCD_en_write(); 
 00E4 A2DF              xcall _LCD_en_write
 00E6                   .dbline -2
 00E6           L3:
 00E6                   .dbline 0 ; func end
 00E6 6991              ld R22,y+
 00E8 4991              ld R20,y+
 00EA 0895              ret
 00EC                   .dbsym r temp 22 c
 00EC                   .dbsym r command 20 c
 00EC                   .dbend
 00EC                   .dbfunc e LCD_write_data _LCD_write_data fV
 00EC           ;           temp -> R22
 00EC           ;           data -> R20
                        .even
 00EC           _LCD_write_data::
 00EC 4A93              st -y,R20
 00EE 6A93              st -y,R22
 00F0 402F              mov R20,R16
 00F2                   .dbline -1
 00F2                   .dbline 72
 00F2           ;    
 00F2           ; } 
 00F2           ; 
 00F2           ; void LCD_write_data(unsigned char data) //写数据 
 00F2           ; { 
 00F2                   .dbline 74
 00F2           ;   unsigned char temp;
 00F2           ;   data=((data&0b10000000)>>7)|((data&0b01000000)>>5)|((data&0b00100000)>>3)|((data&0b00010000)>>1)|((data&0b00001000)<<1)|((data&0b00000100)<<3)|((data&0b00000010)<<5)|((data&0b00000001)<<7);
 00F2 842F              mov R24,R20
 00F4 8074              andi R24,64
 00F6 282E              mov R2,R24
 00F8 2694              lsr R2
 00FA 2694              lsr R2
 00FC 2694              lsr R2
 00FE 2694              lsr R2
 0100 2694              lsr R2
 0102 842F              mov R24,R20
 0104 8078              andi R24,128
 0106 382E              mov R3,R24
 0108 3694              lsr R3
 010A 3694              lsr R3
 010C 3694              lsr R3
 010E 3694              lsr R3
 0110 3694              lsr R3
 0112 3694              lsr R3
 0114 3694              lsr R3
 0116 3228              or R3,R2
 0118 842F              mov R24,R20
 011A 8072              andi R24,32
 011C 8695              lsr R24
 011E 8695              lsr R24
 0120 8695              lsr R24
 0122 382A              or R3,R24
 0124 842F              mov R24,R20
 0126 8071              andi R24,16
 0128 8695              lsr R24
 012A 382A              or R3,R24
 012C 842F              mov R24,R20
 012E 8870              andi R24,8
 0130 880F              lsl R24
 0132 382A              or R3,R24
 0134 842F              mov R24,R20
 0136 8470              andi R24,4
 0138 880F              lsl R24
 013A 880F              lsl R24
 013C 880F              lsl R24
 013E 382A              or R3,R24
 0140 842F              mov R24,R20
 0142 8270              andi R24,2
 0144 880F              lsl R24
 0146 880F              lsl R24
 0148 880F              lsl R24
 014A 880F              lsl R24
 014C 880F              lsl R24
 014E 382A              or R3,R24
 0150 842F              mov R24,R20
 0152 8170              andi R24,1
 0154 880F              lsl R24
 0156 880F              lsl R24

⌨️ 快捷键说明

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