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

📄 st7920iccavrmega8.lis

📁 AVR学习开发 板
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 0062           ;     }
 0062           ;         return ((0xf0&temp1)+(0x0f&temp2));
 0062 802F              mov R24,R16
 0064 8F70              andi R24,15
 0066 022F              mov R16,R18
 0068 007F              andi R16,240
 006A 080F              add R16,R24
 006C                   .dbline -2
 006C           L8:
 006C 00D0              rcall pop_gset1
 006E                   .dbline 0 ; func end
 006E 0895              ret
 0070                   .dbsym r temp2 16 c
 0070                   .dbsym r temp1 18 c
 0070                   .dbsym r i 20 c
 0070                   .dbend
 0070                   .dbfunc e CheckBusy _CheckBusy fV
                        .even
 0070           _CheckBusy::
 0070                   .dbline -1
 0070                   .dbline 79
 0070           ; }
 0070           ; //液晶忙检查CheckBusy
 0070           ; void CheckBusy( void )               
 0070           ; {
 0070           L22:
 0070                   .dbline 80
 0070           ;     do SendByte(0xfc);               //11111,RW(1),RS(0),0
 0070 0CEF              ldi R16,252
 0072 C6DF              rcall _SendByte
 0074           L23:
 0074                   .dbline 81
 0074           ;     while(0x80&ReceiveByte());
 0074 D5DF              rcall _ReceiveByte
 0076 07FD              sbrc R16,7
 0078 FBCF              rjmp L22
 007A                   .dbline -2
 007A           L21:
 007A                   .dbline 0 ; func end
 007A 0895              ret
 007C                   .dbend
 007C                   .dbfunc e WriteCommand _WriteCommand fV
 007C           ;          Cbyte -> R20
                        .even
 007C           _WriteCommand::
 007C 00D0              rcall push_gset1
 007E 402F              mov R20,R16
 0080                   .dbline -1
 0080                   .dbline 85
 0080           ; }
 0080           ; //========写命令========
 0080           ; void WriteCommand( unsigned char Cbyte )
 0080           ; {
 0080                   .dbline 86
 0080           ;       CheckBusy();
 0080 F7DF              rcall _CheckBusy
 0082                   .dbline 87
 0082           ;     SendByte(0xf8);                       //11111,RW(0),RS(0),0
 0082 08EF              ldi R16,248
 0084 BDDF              rcall _SendByte
 0086                   .dbline 88
 0086           ;     SendByte(0xf0&Cbyte);
 0086 042F              mov R16,R20
 0088 007F              andi R16,240
 008A BADF              rcall _SendByte
 008C                   .dbline 89
 008C           ;     SendByte(0xf0&Cbyte<<4);
 008C 042F              mov R16,R20
 008E 0F70              andi R16,#0x0F
 0090 0295              swap R16
 0092 007F              andi R16,240
 0094 B5DF              rcall _SendByte
 0096                   .dbline -2
 0096           L25:
 0096 00D0              rcall pop_gset1
 0098                   .dbline 0 ; func end
 0098 0895              ret
 009A                   .dbsym r Cbyte 20 c
 009A                   .dbend
 009A                   .dbfunc e WriteData _WriteData fV
 009A           ;          Dbyte -> R20
                        .even
 009A           _WriteData::
 009A 00D0              rcall push_gset1
 009C 402F              mov R20,R16
 009E                   .dbline -1
 009E                   .dbline 93
 009E           ; }
 009E           ; //========写数据========
 009E           ; void WriteData( unsigned char Dbyte )
 009E           ; {
 009E                   .dbline 94
 009E           ;     CheckBusy();
 009E E8DF              rcall _CheckBusy
 00A0                   .dbline 95
 00A0           ;     SendByte(0xfa);                           //11111,RW(0),RS(1),0
 00A0 0AEF              ldi R16,250
 00A2 AEDF              rcall _SendByte
 00A4                   .dbline 96
 00A4           ;     SendByte(0xf0&Dbyte);
 00A4 042F              mov R16,R20
 00A6 007F              andi R16,240
 00A8 ABDF              rcall _SendByte
 00AA                   .dbline 97
 00AA           ;     SendByte(0xf0&Dbyte<<4);
 00AA 042F              mov R16,R20
 00AC 0F70              andi R16,#0x0F
 00AE 0295              swap R16
 00B0 007F              andi R16,240
 00B2 A6DF              rcall _SendByte
 00B4                   .dbline -2
 00B4           L26:
 00B4 00D0              rcall pop_gset1
 00B6                   .dbline 0 ; func end
 00B6 0895              ret
 00B8                   .dbsym r Dbyte 20 c
 00B8                   .dbend
 00B8                   .dbfunc e ReadData _ReadData fc
                        .even
 00B8           _ReadData::
 00B8                   .dbline -1
 00B8                   .dbline 101
 00B8           ; }
 00B8           ; //========读数据========
 00B8           ; unsigned char ReadData( void )
 00B8           ; {
 00B8                   .dbline 102
 00B8           ;     CheckBusy();
 00B8 DBDF              rcall _CheckBusy
 00BA                   .dbline 103
 00BA           ;     SendByte(0xfe);                           //11111,RW(1),RS(1),0
 00BA 0EEF              ldi R16,254
 00BC A1DF              rcall _SendByte
 00BE                   .dbline 104
 00BE           ;     return ReceiveByte();
 00BE B0DF              rcall _ReceiveByte
 00C0                   .dbline -2
 00C0           L27:
 00C0                   .dbline 0 ; func end
 00C0 0895              ret
 00C2                   .dbend
 00C2                   .dbfunc e Delay _Delay fV
 00C2           ;            usn -> R20
 00C2           ;             us -> R22
 00C2           ;             MS -> R16,R17
                        .even
 00C2           _Delay::
 00C2 00D0              rcall push_gset2
 00C4                   .dbline -1
 00C4                   .dbline 108
 00C4           ; }
 00C4           ; //===延时程序 ,12M/ms==
 00C4           ; void Delay(unsigned int MS)
 00C4           ; {
 00C4 0CC0              rjmp L30
 00C6           L29:
 00C6                   .dbline 111
 00C6           ;     unsigned char us,usn;
 00C6           ;     while(MS!=0)                      //for 12M
 00C6           ;     { 
 00C6                   .dbline 112
 00C6           ;           usn = 2;
 00C6 42E0              ldi R20,2
 00C8 06C0              rjmp L33
 00CA           L32:
 00CA                   .dbline 114
 00CA           ;       while(usn!=0)
 00CA           ;         {
 00CA                   .dbline 115
 00CA           ;             us=0xf5;
 00CA 65EF              ldi R22,245
 00CC 01C0              rjmp L36
 00CE           L35:
 00CE                   .dbline 116
 00CE                   .dbline 116
 00CE 6A95              dec R22
 00D0                   .dbline 116
 00D0           L36:
 00D0                   .dbline 116
 00D0 6623              tst R22
 00D2 E9F7              brne L35
 00D4                   .dbline 116
 00D4                   .dbline 117
 00D4 4A95              dec R20
 00D6                   .dbline 118
 00D6           L33:
 00D6                   .dbline 113
 00D6 4423              tst R20
 00D8 C1F7              brne L32
 00DA                   .dbline 119
 00DA 0150              subi R16,1
 00DC 1040              sbci R17,0
 00DE                   .dbline 120
 00DE           L30:
 00DE                   .dbline 110
 00DE 0030              cpi R16,0
 00E0 0107              cpc R16,R17
 00E2 89F7              brne L29
 00E4           X0:
 00E4                   .dbline -2
 00E4           L28:
 00E4 00D0              rcall pop_gset2
 00E6                   .dbline 0 ; func end
 00E6 0895              ret
 00E8                   .dbsym r usn 20 c
 00E8                   .dbsym r us 22 c
 00E8                   .dbsym r MS 16 i
 00E8                   .dbend
 00E8                   .dbfunc e LcmInit _LcmInit fV
                        .even
 00E8           _LcmInit::
 00E8                   .dbline -1
 00E8                   .dbline 124
 00E8           ;             while (us!=0){us--;};
 00E8           ;             usn--;
 00E8           ;         }
 00E8           ;         MS--;
 00E8           ;     }
 00E8           ; }
 00E8           ; //=====液晶初始化======
 00E8           ; void LcmInit( void )          
 00E8           ; {
 00E8                   .dbline 125
 00E8           ;     WriteCommand(0x30); //基本指令,选择8位CPU控制方式,关图显
 00E8 00E3              ldi R16,48
 00EA C8DF              rcall _WriteCommand
 00EC                   .dbline 126
 00EC           ;     WriteCommand(0x03); //复位地址计数器
 00EC 03E0              ldi R16,3
 00EE C6DF              rcall _WriteCommand
 00F0                   .dbline 127
 00F0           ;     WriteCommand(0x0C); //开整体显示
 00F0 0CE0              ldi R16,12
 00F2 C4DF              rcall _WriteCommand
 00F4                   .dbline 128
 00F4           ;     WriteCommand(0x01); //清除屏显的数据
 00F4 01E0              ldi R16,1
 00F6 C2DF              rcall _WriteCommand
 00F8                   .dbline 129
 00F8           ;     WriteCommand(0x06); //设置地址计数器递增
 00F8 06E0              ldi R16,6
 00FA C0DF              rcall _WriteCommand
 00FC                   .dbline -2
 00FC           L38:
 00FC                   .dbline 0 ; func end
 00FC 0895              ret
 00FE                   .dbend
 00FE                   .dbfunc e LcmClearTXT _LcmClearTXT fV
                        .even
 00FE           _LcmClearTXT::
 00FE                   .dbline -1
 00FE                   .dbline 133
 00FE           ; }
 00FE           ; //=======清文字========
 00FE           ; void LcmClearTXT( void )     
 00FE           ; {
 00FE                   .dbline 134
 00FE           ;     LcmInit();
 00FE F4DF              rcall _LcmInit
 0100                   .dbline -2
 0100           L39:
 0100                   .dbline 0 ; func end
 0100 0895              ret
 0102                   .dbend
 0102                   .dbfunc e LcmClearBMP _LcmClearBMP fV
 0102           ;              i -> R20
 0102           ;              j -> R22
                        .even
 0102           _LcmClearBMP::
 0102 00D0              rcall push_gset2
 0104                   .dbline -1
 0104                   .dbline 138
 0104           ; }
 0104           ; //=======清图片========
 0104           ; void LcmClearBMP( void )    
 0104           ; {
 0104                   .dbline 140
 0104           ;     unsigned char i,j;
 0104           ;     WriteCommand(0x34);                       //关图显
 0104 04E3              ldi R16,52
 0106 BADF              rcall _WriteCommand
 0108                   .dbline 141
 0108           ;     for(i=0;i<32;i++)
 0108 4427              clr R20
 010A 0DC0              rjmp L44
 010C           L41:
 010C                   .dbline 142

⌨️ 快捷键说明

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