1602.lis
来自「AVR M16单片机AD转换测试程序」· LIS 代码 · 共 505 行 · 第 1/2 页
LIS
505 行
00C6 ; LCD_en_write();
00C6 E1DF xcall _LCD_en_write
00C8 .dbline 68
00C8 ; data_temp=data_temp<<4;
00C8 660F lsl R22
00CA 771F rol R23
00CC 660F lsl R22
00CE 771F rol R23
00D0 660F lsl R22
00D2 771F rol R23
00D4 660F lsl R22
00D6 771F rol R23
00D8 .dbline 69
00D8 ; LCD_DATA_PORT&=0X0f;
00D8 88B3 in R24,0x18
00DA 8F70 andi R24,15
00DC 88BB out 0x18,R24
00DE .dbline 70
00DE ; LCD_DATA_PORT|=data_temp&0xf0; //写低四位
00DE CB01 movw R24,R22
00E0 807F andi R24,240
00E2 9070 andi R25,0
00E4 28B2 in R2,0x18
00E6 3324 clr R3
00E8 282A or R2,R24
00EA 392A or R3,R25
00EC 28BA out 0x18,R2
00EE .dbline 71
00EE ; LCD_en_write();
00EE CDDF xcall _LCD_en_write
00F0 .dbline 72
00F0 ; }
00F0 21C0 xjmp L12
00F2 L11:
00F2 .dbline 74
00F2 .dbline 75
00F2 AE98 cbi 0x15,6
00F4 .dbline 76
00F4 88B3 in R24,0x18
00F6 8F70 andi R24,15
00F8 88BB out 0x18,R24
00FA .dbline 77
00FA CA01 movw R24,R20
00FC 807F andi R24,240
00FE 9070 andi R25,0
0100 28B2 in R2,0x18
0102 3324 clr R3
0104 282A or R2,R24
0106 392A or R3,R25
0108 28BA out 0x18,R2
010A .dbline 78
010A BFDF xcall _LCD_en_write
010C .dbline 79
010C 440F lsl R20
010E 551F rol R21
0110 440F lsl R20
0112 551F rol R21
0114 440F lsl R20
0116 551F rol R21
0118 440F lsl R20
011A 551F rol R21
011C .dbline 80
011C 88B3 in R24,0x18
011E 8F70 andi R24,15
0120 88BB out 0x18,R24
0122 .dbline 81
0122 CA01 movw R24,R20
0124 807F andi R24,240
0126 9070 andi R25,0
0128 28B2 in R2,0x18
012A 3324 clr R3
012C 282A or R2,R24
012E 392A or R3,R25
0130 28BA out 0x18,R2
0132 .dbline 82
0132 ABDF xcall _LCD_en_write
0134 .dbline 83
0134 L12:
0134 .dbline -2
0134 L10:
0134 0E940000 xcall pop_gset4
0138 .dbline 0 ; func end
0138 0895 ret
013A .dbsym r data_temp 22 i
013A .dbsym r command_temp 20 i
013A .dbsym r data 12 i
013A .dbsym r command 10 i
013A .dbend
013A .dbfunc e delay_1us _delay_1us fV
.even
013A _delay_1us::
013A .dbline -1
013A .dbline 107
013A ; else
013A ; {
013A ; LCD_RS_PORT&=~LCD_RS; //RS=0
013A ; LCD_DATA_PORT&=0X0f;
013A ; LCD_DATA_PORT|=command_temp&0xf0; //写高四位
013A ; LCD_en_write();
013A ; command_temp=command_temp<<4;
013A ; LCD_DATA_PORT&=0x0f;
013A ; LCD_DATA_PORT|=command_temp&0xf0; //写低四位
013A ; LCD_en_write();
013A ; }
013A ; }
013A ; /*void main(void)
013A ; {
013A ; DDRA|=LCD_DATA; // 数据为输出
013A ; DDRC|=LCD_RS|LCD_EN; //置位RS.EN
013A ; LCD_init();
013A ; for(;;) //for循环
013A ; {
013A ; LCD_write_char(0x01,0);
013A ; delay_nms(2);
013A ; LCD_write_string(0,0,"Wellcome");
013A ; LCD_write_string(0,1,"www.OURAVR.com!");
013A ; delay_nms(5000);
013A ; LCD_write_string(0,0,"happy new year!");
013A ; LCD_write_string(0,1,"amork:everfriend");
013A ; delay_nms(5000);
013A ; }
013A ; }*/
013A ; /*-----------------------------------------------------------------------
013A ; 延时函数
013A ; 系统时钟:8M
013A ; -----------------------------------------------------------------------*/
013A ; void delay_1us(void) //1us延时函数
013A ; {
013A .dbline 108
013A ; asm("nop");
013A 0000 nop
013C .dbline -2
013C L13:
013C .dbline 0 ; func end
013C 0895 ret
013E .dbend
013E .dbfunc e delay_nus _delay_nus fV
013E ; i -> R20,R21
013E ; n -> R22,R23
.even
013E _delay_nus::
013E 0E940000 xcall push_gset2
0142 B801 movw R22,R16
0144 .dbline -1
0144 .dbline 112
0144 ; }
0144 ;
0144 ; void delay_nus(unsigned int n) //N us延时函数
0144 ; {
0144 .dbline 113
0144 ; unsigned int i=0;
0144 4427 clr R20
0146 5527 clr R21
0148 .dbline 114
0148 ; for (i=0;i<n;i++)
0148 03C0 xjmp L18
014A L15:
014A .dbline 115
014A F7DF xcall _delay_1us
014C L16:
014C .dbline 114
014C 4F5F subi R20,255 ; offset = 1
014E 5F4F sbci R21,255
0150 L18:
0150 .dbline 114
0150 4617 cp R20,R22
0152 5707 cpc R21,R23
0154 D0F3 brlo L15
0156 .dbline -2
0156 L14:
0156 0E940000 xcall pop_gset2
015A .dbline 0 ; func end
015A 0895 ret
015C .dbsym r i 20 i
015C .dbsym r n 22 i
015C .dbend
015C .dbfunc e delay_1ms _delay_1ms fV
015C ; i -> R16,R17
.even
015C _delay_1ms::
015C .dbline -1
015C .dbline 119
015C ; delay_1us();
015C ; }
015C ;
015C ; void delay_1ms(void) //1ms延时函数
015C ; {
015C .dbline 121
015C 0027 clr R16
015E 1127 clr R17
0160 02C0 xjmp L23
0162 L20:
0162 .dbline 121
0162 L21:
0162 .dbline 121
0162 0F5F subi R16,255 ; offset = 1
0164 1F4F sbci R17,255
0166 L23:
0166 .dbline 121
0166 ; unsigned int i;
0166 ; for (i=0;i<1140;i++);
0166 0437 cpi R16,116
0168 E4E0 ldi R30,4
016A 1E07 cpc R17,R30
016C D0F3 brlo L20
016E .dbline -2
016E L19:
016E .dbline 0 ; func end
016E 0895 ret
0170 .dbsym r i 16 i
0170 .dbend
0170 .dbfunc e delay_nms _delay_nms fV
0170 ; i -> R20,R21
0170 ; n -> R22,R23
.even
0170 _delay_nms::
0170 0E940000 xcall push_gset2
0174 B801 movw R22,R16
0176 .dbline -1
0176 .dbline 125
0176 ; }
0176 ;
0176 ; void delay_nms(unsigned int n) //N ms延时函数
0176 ; {
0176 .dbline 126
0176 ; unsigned int i=0;
0176 4427 clr R20
0178 5527 clr R21
017A .dbline 127
017A ; for (i=0;i<n;i++)
017A 03C0 xjmp L28
017C L25:
017C .dbline 128
017C EFDF xcall _delay_1ms
017E L26:
017E .dbline 127
017E 4F5F subi R20,255 ; offset = 1
0180 5F4F sbci R21,255
0182 L28:
0182 .dbline 127
0182 4617 cp R20,R22
0184 5707 cpc R21,R23
0186 D0F3 brlo L25
0188 .dbline -2
0188 L24:
0188 0E940000 xcall pop_gset2
018C .dbline 0 ; func end
018C 0895 ret
018E .dbsym r i 20 i
018E .dbsym r n 22 i
018E .dbend
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?