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

📄 st7920iccavrmega8.lis

📁 AVR学习开发 板
💻 LIS
📖 第 1 页 / 共 3 页
字号:
                        .module st7920iccavrmega8.c
                        .area data(ram, con, rel)
 0000           _AC_TABLE::
 0000                   .blkb 2
                        .area idata
 0000 8081              .byte 128,129
                        .area data(ram, con, rel)
 0002                   .blkb 2
                        .area idata
 0002 8283              .byte 130,131
                        .area data(ram, con, rel)
 0004                   .blkb 2
                        .area idata
 0004 8485              .byte 132,133
                        .area data(ram, con, rel)
 0006                   .blkb 2
                        .area idata
 0006 8687              .byte 134,135
                        .area data(ram, con, rel)
 0008                   .blkb 2
                        .area idata
 0008 9091              .byte 144,145
                        .area data(ram, con, rel)
 000A                   .blkb 2
                        .area idata
 000A 9293              .byte 146,147
                        .area data(ram, con, rel)
 000C                   .blkb 2
                        .area idata
 000C 9495              .byte 148,149
                        .area data(ram, con, rel)
 000E                   .blkb 2
                        .area idata
 000E 9697              .byte 150,151
                        .area data(ram, con, rel)
 0010                   .blkb 2
                        .area idata
 0010 8889              .byte 136,137
                        .area data(ram, con, rel)
 0012                   .blkb 2
                        .area idata
 0012 8A8B              .byte 138,139
                        .area data(ram, con, rel)
 0014                   .blkb 2
                        .area idata
 0014 8C8D              .byte 140,141
                        .area data(ram, con, rel)
 0016                   .blkb 2
                        .area idata
 0016 8E8F              .byte 142,143
                        .area data(ram, con, rel)
 0018                   .blkb 2
                        .area idata
 0018 9899              .byte 152,153
                        .area data(ram, con, rel)
 001A                   .blkb 2
                        .area idata
 001A 9A9B              .byte 154,155
                        .area data(ram, con, rel)
 001C                   .blkb 2
                        .area idata
 001C 9C9D              .byte 156,157
                        .area data(ram, con, rel)
 001E                   .blkb 2
                        .area idata
 001E 9E9F              .byte 158,159
                        .area data(ram, con, rel)
 0020                   .dbfile E:\AVR学习专区\AVR学习板\st7920iccavrmega8.c
 0020                   .dbsym e AC_TABLE _AC_TABLE A[32:32]c
 0020           _str2::
 0020                   .blkb 17
                        .area idata
 0020 BBB6D3ADB9E2C1D94156524C43442121  .byte 187,182,211,173,185,226,193,217,'A,'V,'R,'L,'C,'D,33,33
 0030 00                .byte 0
                        .area data(ram, con, rel)
 0031                   .dbfile E:\AVR学习专区\AVR学习板\st7920iccavrmega8.c
 0031                   .dbsym e str2 _str2 A[17:17]c
 0031           _str1::
 0031                   .blkb 65
                        .area idata
 0031 D4C6C4B8C6C1B7E7D6F2D3B0C9EEA3AC  .byte 212,198,196,184,198,193,183,231,214,242,211,176,201,238,163,172
 0041 B3A4BAD3BDA5C2E4CFFED0C7B3C1A1A3  .byte 179,164,186,211,189,165,194,228,207,254,208,199,179,193,161,163
 0051 E6CFB6F0D3A6BBDACDB5C1E9D2A9A3AC  .byte 230,207,182,240,211,166,187,218,205,181,193,233,210,169,163,172
 0061 B1CCBAA3C7E0CCECD2B9D2B9D0C4A1A3  .byte 177,204,186,163,199,224,204,236,210,185,210,185,208,196,161,163
 0071 00                .byte 0
                        .area data(ram, con, rel)
 0072                   .dbfile E:\AVR学习专区\AVR学习板\st7920iccavrmega8.c
 0072                   .dbsym e str1 _str1 A[65:65]c
                        .area text(rom, con, rel)
 0000                   .dbfile E:\AVR学习专区\AVR学习板\st7920iccavrmega8.c
 0000                   .dbfunc e SendByte _SendByte fV
 0000           ;              i -> R20
 0000           ;          Dbyte -> R16
                        .even
 0000           _SendByte::
 0000 00D0              rcall push_gset1
 0002                   .dbline -1
 0002                   .dbline 41
 0002           ; /****************************************************************************************
 0002           ;            LCM(DM12864M-带字库,ST7920控制芯片)mega8控制显示程序   
 0002           ;                                                               
 0002           ;              程序功能:该程序是用AVR来控制对DM12864M
 0002           ;                                  读写信号等的操作.
 0002           ;              硬件连接:采用串行方式显示,分配PB6=SID,PB7=SCK,PB1=LCD_ON
 0002           ;                                  三个I/O口分别作为LCM数据,时钟信号,背光开关
 0002           ;                                          的控制。
 0002           ;                                          CS和/RESET直接接VCC;PSB直接接GND 
 0002           ;                                                                        作者:张国旗
 0002           ;                                                                                                        2008年12月29号       
 0002           ; ****************************************************************************************/
 0002           ; #include <iom8v.h>
 0002           ; #include <macros.h>
 0002           ; #include <stdio.h>
 0002           ; 
 0002           ; #define LCDDDR        DDRB
 0002           ; #define LCDDDR_IN     LCDDDR&=~BIT(PB6);
 0002           ; #define LCDDDR_OUT    LCDDDR|=BIT(PB1)|BIT(PB6)|BIT(PB7);
 0002           ; /*===============================================================*/
 0002           ; #define LCDCTL      PORTB   
 0002           ; #define SID_ON      LCDCTL |= BIT(PB6)  //数据                            
 0002           ; #define SID_OFF     LCDCTL &= ~BIT(PB6)  
 0002           ; #define SCK_ON      LCDCTL |= BIT(PB7)  //时钟                          
 0002           ; #define SCK_OFF     LCDCTL &= ~BIT(PB7) 
 0002           ; #define LCD_ON      LCDCTL |= BIT(PB1)  //开启背光
 0002           ; #define LCD_OFF     LCDCTL &= ~BIT(PB1)  
 0002           ; //#define uchar unsigned char
 0002           ; /***********************函数体部分*********************************/
 0002           ; unsigned char  AC_TABLE[]={
 0002           ; 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,
 0002           ; 0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,
 0002           ; 0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,
 0002           ; 0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f,
 0002           ; };
 0002           ; unsigned char  str2[]="欢迎光临AVRLCD!!";
 0002           ; unsigned char  str1[]="云母屏风烛影深,长河渐落晓星沉。嫦娥应悔偷灵药,碧海青天夜夜心。";
 0002           ; unsigned char  bmp1[];//先声明一下就可以把表放在函数后面啦,呵呵
 0002           ; //=========发送一个字节程序=========
 0002           ; void SendByte(unsigned char Dbyte)
 0002           ; {
 0002                   .dbline 43
 0002           ;     unsigned char i;
 0002           ;     for(i=0;i<8;i++)
 0002 4427              clr R20
 0004 09C0              rjmp L5
 0006           L2:
 0006                   .dbline 44
 0006           ;       {
 0006                   .dbline 45
 0006           ;               if(Dbyte&0x80)SID_ON;
 0006 07FF              sbrs R16,7
 0008 02C0              rjmp L6
 000A                   .dbline 45
 000A C69A              sbi 0x18,6
 000C 01C0              rjmp L7
 000E           L6:
 000E                   .dbline 46
 000E           ;               else SID_OFF;
 000E C698              cbi 0x18,6
 0010           L7:
 0010                   .dbline 47
 0010 C79A              sbi 0x18,7
 0012                   .dbline 48
 0012 C798              cbi 0x18,7
 0014                   .dbline 49
 0014 000F              lsl R16
 0016                   .dbline 50
 0016           L3:
 0016                   .dbline 43
 0016 4395              inc R20
 0018           L5:
 0018                   .dbline 43
 0018 4830              cpi R20,8
 001A A8F3              brlo L2
 001C                   .dbline -2
 001C           L1:
 001C 00D0              rcall pop_gset1
 001E                   .dbline 0 ; func end
 001E 0895              ret
 0020                   .dbsym r i 20 c
 0020                   .dbsym r Dbyte 16 c
 0020                   .dbend
 0020                   .dbfunc e ReceiveByte _ReceiveByte fc
 0020           ;          temp2 -> R16
 0020           ;          temp1 -> R18
 0020           ;              i -> R20
                        .even
 0020           _ReceiveByte::
 0020 00D0              rcall push_gset1
 0022                   .dbline -1
 0022                   .dbline 54
 0022           ;               SCK_ON;
 0022           ;               SCK_OFF;
 0022           ;               Dbyte=Dbyte<<1;
 0022           ;       }
 0022           ; }
 0022           ; //接收一个字节程序((0xf0&temp1)+(0x0f&temp2))
 0022           ; unsigned char ReceiveByte(void)  
 0022           ; {
 0022                   .dbline 56
 0022           ;     unsigned char i,temp1,temp2;
 0022           ;     temp1=temp2=0;
 0022 0027              clr R16
 0024 2227              clr R18
 0026                   .dbline 57
 0026           ;     for(i=0;i<8;i++)
 0026 4427              clr R20
 0028 0BC0              rjmp L12
 002A           L9:
 002A                   .dbline 58
 002A           ;     {
 002A                   .dbline 59
 002A           ;           LCDDDR_IN;
 002A BE98              cbi 0x17,6
 002C                   .dbline 59
 002C                   .dbline 60
 002C           ;               temp1=temp1<<1;
 002C 220F              lsl R18
 002E                   .dbline 61
 002E           ;         if ((PINB&0x40)!=0)temp1++;  //与端口设置有关,主要修改端口时修改此位
 002E B69B              sbis 0x16,6
 0030 01C0              rjmp L13
 0032                   .dbline 61
 0032 2395              inc R18
 0034           L13:
 0034                   .dbline 62
 0034 87B3              in R24,0x17
 0036 826C              ori R24,194
 0038 87BB              out 0x17,R24
 003A                   .dbline 62
 003A                   .dbline 63
 003A C79A              sbi 0x18,7
 003C                   .dbline 64
 003C C798              cbi 0x18,7
 003E                   .dbline 65
 003E           L10:
 003E                   .dbline 57
 003E 4395              inc R20
 0040           L12:
 0040                   .dbline 57
 0040 4830              cpi R20,8
 0042 98F3              brlo L9
 0044                   .dbline 66
 0044           ;       LCDDDR_OUT;
 0044           ;               SCK_ON;
 0044           ;               SCK_OFF;
 0044           ;       }
 0044           ;     for(i=0;i<8;i++)
 0044 4427              clr R20
 0046 0BC0              rjmp L18
 0048           L15:
 0048                   .dbline 67
 0048           ;     {
 0048                   .dbline 68
 0048           ;           LCDDDR_IN;
 0048 BE98              cbi 0x17,6
 004A                   .dbline 68
 004A                   .dbline 69
 004A           ;               temp2=temp2<<1;
 004A 000F              lsl R16
 004C                   .dbline 70
 004C           ;         if ((PINB&0x40)!=0)temp2++;  //与端口设置有关,主要修改端口时修改此位
 004C B69B              sbis 0x16,6
 004E 01C0              rjmp L19
 0050                   .dbline 70
 0050 0395              inc R16
 0052           L19:
 0052                   .dbline 71
 0052 87B3              in R24,0x17
 0054 826C              ori R24,194
 0056 87BB              out 0x17,R24
 0058                   .dbline 71
 0058                   .dbline 72
 0058 C79A              sbi 0x18,7
 005A                   .dbline 73
 005A C798              cbi 0x18,7
 005C                   .dbline 74
 005C           L16:
 005C                   .dbline 66
 005C 4395              inc R20
 005E           L18:
 005E                   .dbline 66
 005E 4830              cpi R20,8
 0060 98F3              brlo L15
 0062                   .dbline 75
 0062           ;               LCDDDR_OUT;
 0062           ;               SCK_ON;
 0062           ;               SCK_OFF;

⌨️ 快捷键说明

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