📄 12864.lis
字号:
00BC .dbline 83
00BC ; delay_ms(3);
00BC 03E0 ldi R16,3
00BE 10E0 ldi R17,0
00C0 A7DF rcall _delay_ms
00C2 .dbline 84
00C2 ; RST_1;
00C2 979A sbi 0x12,7
00C4 .dbline 85
00C4 ; delay_ms(3);
00C4 03E0 ldi R16,3
00C6 10E0 ldi R17,0
00C8 A3DF rcall _delay_ms
00CA .dbline 86
00CA ; CS_1;
00CA 949A sbi 0x12,4
00CC .dbline 87
00CC ; lcd_wcmd(0X34);
00CC 04E3 ldi R16,52
00CE BFDF rcall _lcd_wcmd
00D0 .dbline 88
00D0 ; delay_ms(5);
00D0 05E0 ldi R16,5
00D2 10E0 ldi R17,0
00D4 9DDF rcall _delay_ms
00D6 .dbline 89
00D6 ; lcd_wcmd(0X30);
00D6 00E3 ldi R16,48
00D8 BADF rcall _lcd_wcmd
00DA .dbline 90
00DA ; delay_ms(5);
00DA 05E0 ldi R16,5
00DC 10E0 ldi R17,0
00DE 98DF rcall _delay_ms
00E0 .dbline 91
00E0 ; lcd_wcmd(0X0C);
00E0 0CE0 ldi R16,12
00E2 B5DF rcall _lcd_wcmd
00E4 .dbline 92
00E4 ; delay_ms(5);
00E4 05E0 ldi R16,5
00E6 10E0 ldi R17,0
00E8 93DF rcall _delay_ms
00EA .dbline 93
00EA ; lcd_wcmd(0X01);
00EA 01E0 ldi R16,1
00EC B0DF rcall _lcd_wcmd
00EE .dbline 94
00EE ; delay_ms(5);
00EE 05E0 ldi R16,5
00F0 10E0 ldi R17,0
00F2 8EDF rcall _delay_ms
00F4 .dbline -2
00F4 L18:
00F4 .dbline 0 ; func end
00F4 0895 ret
00F6 .dbend
00F6 .dbfunc e lcd_clr _lcd_clr fV
.even
00F6 _lcd_clr::
00F6 .dbline -1
00F6 .dbline 99
00F6 ;
00F6 ; }
00F6 ; /********************清屏*********************/
00F6 ; void lcd_clr(void)
00F6 ; {
00F6 .dbline 100
00F6 ; lcd_wcmd(0X01);
00F6 01E0 ldi R16,1
00F8 AADF rcall _lcd_wcmd
00FA .dbline 101
00FA ; delay_ms(5);
00FA 05E0 ldi R16,5
00FC 10E0 ldi R17,0
00FE 88DF rcall _delay_ms
0100 .dbline -2
0100 L19:
0100 .dbline 0 ; func end
0100 0895 ret
0102 .dbend
0102 .dbfunc e locatexy _locatexy fV
0102 ; y -> R22
0102 ; x -> R20
.even
0102 _locatexy::
0102 4A93 st -y,R20
0104 6A93 st -y,R22
0106 622F mov R22,R18
0108 402F mov R20,R16
010A .dbline -1
010A .dbline 105
010A ; }
010A ; /********************位置定义***********************/
010A ; void locatexy(uchar x,uchar y)
010A ; {
010A .dbline 106
010A ; if(y==0){lcd_wcmd(0X80+x);}
010A 6623 tst R22
010C 21F4 brne L21
010E X4:
010E .dbline 106
010E .dbline 106
010E 042F mov R16,R20
0110 0058 subi R16,128 ; addi 128
0112 9DDF rcall _lcd_wcmd
0114 .dbline 106
0114 11C0 rjmp L22
0116 L21:
0116 .dbline 107
0116 ; else if(y==1){lcd_wcmd(0X90+x);}
0116 6130 cpi R22,1
0118 21F4 brne L23
011A X5:
011A .dbline 107
011A .dbline 107
011A 042F mov R16,R20
011C 0057 subi R16,112 ; addi 144
011E 97DF rcall _lcd_wcmd
0120 .dbline 107
0120 0BC0 rjmp L24
0122 L23:
0122 .dbline 108
0122 ; else if(y==2){lcd_wcmd(0X88+x);}
0122 6230 cpi R22,2
0124 21F4 brne L25
0126 X6:
0126 .dbline 108
0126 .dbline 108
0126 042F mov R16,R20
0128 0857 subi R16,120 ; addi 136
012A 91DF rcall _lcd_wcmd
012C .dbline 108
012C 05C0 rjmp L26
012E L25:
012E .dbline 109
012E ; else if(y==3){lcd_wcmd(0X98+x);}
012E 6330 cpi R22,3
0130 19F4 brne L27
0132 X7:
0132 .dbline 109
0132 .dbline 109
0132 042F mov R16,R20
0134 0856 subi R16,104 ; addi 152
0136 8BDF rcall _lcd_wcmd
0138 .dbline 109
0138 L27:
0138 L26:
0138 L24:
0138 L22:
0138 .dbline -2
0138 L20:
0138 .dbline 0 ; func end
0138 6991 ld R22,y+
013A 4991 ld R20,y+
013C 0895 ret
013E .dbsym r y 22 c
013E .dbsym r x 20 c
013E .dbend
013E .dbfunc e lcd_write_str _lcd_write_str fV
013E ; s -> R20,R21
013E ; y -> R12
013E ; x -> R10
.even
013E _lcd_write_str::
013E 00D0 rcall push_xgset303C
0140 C22E mov R12,R18
0142 A02E mov R10,R16
0144 4E81 ldd R20,y+6
0146 5F81 ldd R21,y+7
0148 .dbline -1
0148 .dbline 113
0148 ; }
0148 ; /********************显示内容***********************/
0148 ; void lcd_write_str(uchar x,uchar y,uchar *s)
0148 ; {
0148 .dbline 114
0148 ; locatexy(x,y);
0148 2C2D mov R18,R12
014A 0A2D mov R16,R10
014C DADF rcall _locatexy
014E 05C0 rjmp L31
0150 L30:
0150 .dbline 116
0150 ; while(*s)
0150 ; {
0150 .dbline 117
0150 ; lcd_wdat(*s);
0150 FA01 movw R30,R20
0152 0081 ldd R16,z+0
0154 97DF rcall _lcd_wdat
0156 .dbline 118
0156 ; s++;
0156 4F5F subi R20,255 ; offset = 1
0158 5F4F sbci R21,255
015A .dbline 119
015A ; }
015A L31:
015A .dbline 115
015A FA01 movw R30,R20
015C 2080 ldd R2,z+0
015E 2220 tst R2
0160 B9F7 brne L30
0162 X8:
0162 .dbline -2
0162 L29:
0162 .dbline 0 ; func end
0162 00C0 rjmp pop_xgset303C
0164 .dbsym r s 20 pc
0164 .dbsym r y 12 c
0164 .dbsym r x 10 c
0164 .dbend
.area data(ram, con, rel)
0000 .dbfile C:\DOCUME~1\Administrator\桌面\16实验\串口显示0\12864_chuankou_drive.h
0000 _temp::
0000 .blkb 2
.area idata
0000 0000 .word 0
.area data(ram, con, rel)
0002 .dbfile C:\DOCUME~1\Administrator\桌面\16实验\串口显示0\12864_chuankou_drive.h
0002 .dbfile C:\DOCUME~1\Administrator\桌面\16实验\串口显示0\DS18B20_drive.h
0002 .dbsym e temp _temp i
0002 _temp_data::
0002 .blkb 1
.area idata
0002 00 .byte 0
.area data(ram, con, rel)
0003 .dbfile C:\DOCUME~1\Administrator\桌面\16实验\串口显示0\DS18B20_drive.h
0003 .blkb 1
.area idata
0003 00 .byte 0
.area data(ram, con, rel)
0004 .dbfile C:\DOCUME~1\Administrator\桌面\16实验\串口显示0\DS18B20_drive.h
0004 .dbsym e temp_data _temp_data A[2:2]c
0004 _dis_buf_18b20::
0004 .blkb 1
.area idata
0004 00 .byte 0
.area data(ram, con, rel)
0005 .dbfile C:\DOCUME~1\Administrator\桌面\16实验\串口显示0\DS18B20_drive.h
0005 .blkb 2
.area idata
0005 0000 .byte 0,0
.area data(ram, con, rel)
0007 .dbfile C:\DOCUME~1\Administrator\桌面\16实验\串口显示0\DS18B20_drive.h
0007 .dbsym e dis_buf_18b20 _dis_buf_18b20 A[3:3]c
.area text(rom, con, rel)
0164 .dbfile C:\DOCUME~1\Administrator\桌面\16实验\串口显示0\DS18B20_drive.h
0164 .dbfunc e init_1820 _init_1820 fV
.even
0164 _init_1820::
0164 .dbline -1
0164 .dbline 30
0164 ; /*********************************************************************
0164 ; 返回三个值dis_buf_18b20[0]小数dis_buf_18b20[1]个位dis_buf_18b20[2]十位
0164 ; 调用Read_1820_temperature();
0164 ; **********************************************************************/
0164 ; #include <iom8v.h>
0164 ; #include <macros.h>
0164 ; #define ddrt DDRD
0164 ; #define port PORTD
0164 ; #define uchar unsigned char
0164 ; #define uint unsigned int
0164 ; #define D0 0x01 //18b20端口,PD.0
0164 ; #define pin PIND
0164 ; #define CL_DQ PORTD&=~(1<<PD0)
0164 ; #define SET_DQ PORTD|=(1<<PD0)
0164 ; #define SET_OUT DDRD|=(1<<PD0)
0164 ; #define SET_IN DDRD&=~(1<<PD0)
0164 ; #define IN_DQ PIND&(1<<PD0)
0164 ; unsigned int temp=0;
0164 ; unsigned char temp_data[2]={0};
0164 ; unsigned char dis_buf_18b20[3]={0};
0164 ; uchar temp_comp;
0164 ; void write_1820(unsigned char x) ;
0164 ; /*---------------------------------------------------------------------
0164 ; 函数名称:void init_1820()
0164 ; 函数功能: 18b20的复位
0164 ; 参 数:
0164 ; 返 回 值:
0164 ; ---------------------------------------------------------------------*/
0164 ; void init_1820(void)
0164 ; {
0164 .dbline 31
0164 ; SET_OUT; //设置端口输出
0164 889A sbi 0x11,0
0166 .dbline 32
0166 ; SET_DQ; //输出一个脉冲
0166 909A sbi 0x12,0
0168 .dbline 33
0168 ; CL_DQ; //低电平保持480us以上
0168 9098 cbi 0x12,0
016A .dbline 34
016A ; delay_us(500); //延时480us以上
016A 04EF ldi R16,500
016C 11E0 ldi R17,1
016E 48DF rcall _delay_us
0170 .dbline 35
0170 ; SET_DQ; //没有输出一个脉冲
0170 909A sbi 0x12,0
0172 .dbline 36
0172 ; SET_IN; //设置端口输入,即释放总线,外接上拉电阻,端口被拉高
0172 8898 cbi 0x11,0
0174 .dbline 37
0174 ; delay_us(60); //延时15~60us
0174 0CE3 ldi R16,60
0176 10E0 ldi R17,0
0178 43DF rcall _delay_us
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -