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

📄 12864.lis

📁 数显温度万年历
💻 LIS
📖 第 1 页 / 共 5 页
字号:
                        .module _12864.c
                        .area text(rom, con, rel)
 0000                   .dbfile C:\DOCUME~1\Administrator\桌面\16实验\串口显示0\12864.c
 0000                   .dbfile C:\DOCUME~1\Administrator\桌面\16实验\串口显示0\12864_chuankou_drive.h
 0000                   .dbfunc e delay_us _delay_us fV
 0000           ;              t -> R16,R17
                        .even
 0000           _delay_us::
 0000                   .dbline -1
 0000                   .dbline 21
 0000           ; #include<iom8v.h>
 0000           ; #include<macros.h>
 0000           ; #define uchar unsigned char
 0000           ; #define uint unsigned int
 0000           ; #define CS_0 PORTD&=~(1<<PDD4)                                         //片选RS
 0000           ; #define CS_1 PORTD|=(1<<PD4)
 0000           ; #define SID_0 PORTD&=~(1<<PD5)                                         //数据 RW
 0000           ; #define SID_1 PORTD|=(1<<PD5)                       
 0000           ; #define SCLK_0 PORTD&=~(1<<PD6)                                        //时钟 E
 0000           ; #define SCLK_1 PORTD|=(1<<PD6)
 0000           ; #define RST_0 PORTD&=~(1<<PD7)                                         //复位  RST
 0000           ; #define RST_1 PORTD|=(1<<PD7)            
 0000           ; /**********************函数声明***************************************/
 0000           ; void delay_us(int t);
 0000           ; void delay_ms(unsigned int t);
 0000           ; void send_byte(uchar bbyte);
 0000           ; void lcd_wcmd(uchar cmd);
 0000           ; void lcd_wdat(uchar dat);
 0000           ; //*******************延时 us 8****************************************
 0000           ; void delay_us(int t)
 0000           ; {
 0000           L2:
 0000                   .dbline 23
 0000           ; do
 0000           ;    t--;
 0000 0150              subi R16,1
 0002 1040              sbci R17,0
 0004           L3:
 0004                   .dbline 24
 0004           ; while(t>1);
 0004 81E0              ldi R24,1
 0006 90E0              ldi R25,0
 0008 8017              cp R24,R16
 000A 9107              cpc R25,R17
 000C CCF3              brlt L2
 000E           X0:
 000E                   .dbline -2
 000E           L1:
 000E                   .dbline 0 ; func end
 000E 0895              ret
 0010                   .dbsym r t 16 I
 0010                   .dbend
 0010                   .dbfunc e delay_ms _delay_ms fV
 0010           ;              t -> R20,R21
                        .even
 0010           _delay_ms::
 0010 4A93              st -y,R20
 0012 5A93              st -y,R21
 0014 A801              movw R20,R16
 0016                   .dbline -1
 0016                   .dbline 28
 0016           ; }
 0016           ; //*******************延时  ms *****************************************
 0016           ; void delay_ms(unsigned int t)
 0016           ; {
 0016 05C0              rjmp L7
 0018           L6:
 0018                   .dbline 30
 0018           ; while(t!=0)
 0018           ; {
 0018                   .dbline 31
 0018           ; delay_us(1142);
 0018 06E7              ldi R16,1142
 001A 14E0              ldi R17,4
 001C F1DF              rcall _delay_us
 001E                   .dbline 32
 001E           ; t--;}
 001E 4150              subi R20,1
 0020 5040              sbci R21,0
 0022                   .dbline 32
 0022           L7:
 0022                   .dbline 29
 0022 4030              cpi R20,0
 0024 4507              cpc R20,R21
 0026 C1F7              brne L6
 0028           X1:
 0028                   .dbline -2
 0028           L5:
 0028                   .dbline 0 ; func end
 0028 5991              ld R21,y+
 002A 4991              ld R20,y+
 002C 0895              ret
 002E                   .dbsym r t 20 i
 002E                   .dbend
 002E                   .dbfunc e send_byte _send_byte fV
 002E           ;              i -> R20
 002E           ;          bbyte -> R16
                        .even
 002E           _send_byte::
 002E 4A93              st -y,R20
 0030                   .dbline -1
 0030                   .dbline 36
 0030           ; }
 0030           ; /*********************发送1字节函数****************************/
 0030           ; void send_byte(uchar bbyte)
 0030           ; {
 0030                   .dbline 38
 0030           ;     uchar i;
 0030           ;       for(i=0;i<8;i++)
 0030 4427              clr R20
 0032 09C0              rjmp L13
 0034           L10:
 0034                   .dbline 39
 0034           ;       {
 0034                   .dbline 40
 0034           ;         if(bbyte&0X80)
 0034 07FF              sbrs R16,7
 0036 02C0              rjmp L14
 0038           X2:
 0038                   .dbline 41
 0038           ;                   {SID_1;}
 0038                   .dbline 41
 0038 959A              sbi 0x12,5
 003A                   .dbline 41
 003A 01C0              rjmp L15
 003C           L14:
 003C                   .dbline 43
 003C           ;               else 
 003C           ;                       {SID_0;}
 003C                   .dbline 43
 003C 9598              cbi 0x12,5
 003E                   .dbline 43
 003E           L15:
 003E                   .dbline 44
 003E           ;               SCLK_1;
 003E 969A              sbi 0x12,6
 0040                   .dbline 45
 0040           ;               SCLK_0;
 0040 9698              cbi 0x12,6
 0042                   .dbline 46
 0042           ;               bbyte<<=1;      
 0042 000F              lsl R16
 0044                   .dbline 47
 0044           ;       }
 0044           L11:
 0044                   .dbline 38
 0044 4395              inc R20
 0046           L13:
 0046                   .dbline 38
 0046 4830              cpi R20,8
 0048 A8F3              brlo L10
 004A           X3:
 004A                   .dbline -2
 004A           L9:
 004A                   .dbline 0 ; func end
 004A 4991              ld R20,y+
 004C 0895              ret
 004E                   .dbsym r i 20 c
 004E                   .dbsym r bbyte 16 c
 004E                   .dbend
 004E                   .dbfunc e lcd_wcmd _lcd_wcmd fV
 004E           ;          Ldata -> R20
 004E           ;          Hdata -> R22
 004E           ;      star_data -> R10
 004E           ;            cmd -> R20
                        .even
 004E           _lcd_wcmd::
 004E 00D0              rcall push_xgsetF00C
 0050 402F              mov R20,R16
 0052                   .dbline -1
 0052                   .dbline 51
 0052           ; }
 0052           ; /************************写命令函数**********************************/
 0052           ; void lcd_wcmd(uchar cmd)
 0052           ; {
 0052                   .dbline 53
 0052           ;     uchar star_data,Hdata,Ldata;
 0052           ;       star_data=0XF8;
 0052 88EF              ldi R24,248
 0054 A82E              mov R10,R24
 0056                   .dbline 54
 0056           ;       Hdata=cmd&0XF0;
 0056 642F              mov R22,R20
 0058 607F              andi R22,240
 005A                   .dbline 55
 005A           ;       Ldata=(cmd<<4)&0XF0;
 005A 842F              mov R24,R20
 005C 8F70              andi R24,#0x0F
 005E 8295              swap R24
 0060 807F              andi R24,240
 0062 482F              mov R20,R24
 0064                   .dbline 56
 0064           ;       send_byte(star_data);
 0064 0A2D              mov R16,R10
 0066 E3DF              rcall _send_byte
 0068                   .dbline 57
 0068           ;       delay_us(1);
 0068 01E0              ldi R16,1
 006A 10E0              ldi R17,0
 006C C9DF              rcall _delay_us
 006E                   .dbline 58
 006E           ;       send_byte(Hdata);
 006E 062F              mov R16,R22
 0070 DEDF              rcall _send_byte
 0072                   .dbline 59
 0072           ;       delay_us(1);
 0072 01E0              ldi R16,1
 0074 10E0              ldi R17,0
 0076 C4DF              rcall _delay_us
 0078                   .dbline 60
 0078           ;     send_byte(Ldata);
 0078 042F              mov R16,R20
 007A D9DF              rcall _send_byte
 007C                   .dbline 61
 007C           ;       delay_us(1);
 007C 01E0              ldi R16,1
 007E 10E0              ldi R17,0
 0080 BFDF              rcall _delay_us
 0082                   .dbline -2
 0082           L16:
 0082                   .dbline 0 ; func end
 0082 00C0              rjmp pop_xgsetF00C
 0084                   .dbsym r Ldata 20 c
 0084                   .dbsym r Hdata 22 c
 0084                   .dbsym r star_data 10 c
 0084                   .dbsym r cmd 20 c
 0084                   .dbend
 0084                   .dbfunc e lcd_wdat _lcd_wdat fV
 0084           ;          Ldata -> R20
 0084           ;          Hdata -> R22
 0084           ;      star_data -> R10
 0084           ;            dat -> R20
                        .even
 0084           _lcd_wdat::
 0084 00D0              rcall push_xgsetF00C
 0086 402F              mov R20,R16
 0088                   .dbline -1
 0088                   .dbline 65
 0088           ; }
 0088           ; /**************************写数据函数***************************************/
 0088           ; void lcd_wdat(uchar dat)
 0088           ; {
 0088                   .dbline 67
 0088           ;     uchar star_data,Hdata,Ldata;
 0088           ;       star_data=0XFA;
 0088 8AEF              ldi R24,250
 008A A82E              mov R10,R24
 008C                   .dbline 68
 008C           ;       Hdata=dat&0XF0;
 008C 642F              mov R22,R20
 008E 607F              andi R22,240
 0090                   .dbline 69
 0090           ;       Ldata=(dat<<4)&0XF0;
 0090 842F              mov R24,R20
 0092 8F70              andi R24,#0x0F
 0094 8295              swap R24
 0096 807F              andi R24,240
 0098 482F              mov R20,R24
 009A                   .dbline 70
 009A           ;       send_byte(star_data);
 009A 0A2D              mov R16,R10
 009C C8DF              rcall _send_byte
 009E                   .dbline 71
 009E           ;       delay_us(1);
 009E 01E0              ldi R16,1
 00A0 10E0              ldi R17,0
 00A2 AEDF              rcall _delay_us
 00A4                   .dbline 72
 00A4           ;       send_byte(Hdata);
 00A4 062F              mov R16,R22
 00A6 C3DF              rcall _send_byte
 00A8                   .dbline 73
 00A8           ;       delay_us(1);
 00A8 01E0              ldi R16,1
 00AA 10E0              ldi R17,0
 00AC A9DF              rcall _delay_us
 00AE                   .dbline 74
 00AE           ;     send_byte(Ldata);
 00AE 042F              mov R16,R20
 00B0 BEDF              rcall _send_byte
 00B2                   .dbline 75
 00B2           ;       delay_us(1);
 00B2 01E0              ldi R16,1
 00B4 10E0              ldi R17,0
 00B6 A4DF              rcall _delay_us
 00B8                   .dbline -2
 00B8           L17:
 00B8                   .dbline 0 ; func end
 00B8 00C0              rjmp pop_xgsetF00C
 00BA                   .dbsym r Ldata 20 c
 00BA                   .dbsym r Hdata 22 c
 00BA                   .dbsym r star_data 10 c
 00BA                   .dbsym r dat 20 c
 00BA                   .dbend
 00BA                   .dbfunc e lcd_init _lcd_init fV
                        .even
 00BA           _lcd_init::
 00BA                   .dbline -1
 00BA                   .dbline 80
 00BA           ;       
 00BA           ; }
 00BA           ; /**************************初始化函数*************************************/
 00BA           ; void lcd_init(void)
 00BA           ; {
 00BA                   .dbline 82
 00BA           ;     //PSB_0;
 00BA           ;       RST_0;
 00BA 9798              cbi 0x12,7

⌨️ 快捷键说明

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