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

📄 12864.lis

📁 数显温度万年历
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 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 + -