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

📄 avr320240.lis

📁 AVR单片机驱动C320240单色液晶模块的C语言程序
💻 LIS
📖 第 1 页 / 共 5 页
字号:
                        .module avr320240.c
                        .area text(rom, con, rel)
 0000                   .dbfile D:\iccv7avr\AVR_C320240\avr320240.c
                        .area lit(rom, con, rel)
 0000           _ParaSysTable8::
 0000 3087              .byte 48,135
 0002 0727              .byte 7,39
 0004 42F0              .byte 'B,240
 0006 2800              .byte 40,0
 0008                   .dbsym e ParaSysTable8 _ParaSysTable8 A[8:8]kc
 0008           _ParaScrTableA::
 0008 0000              .byte 0,0
 000A F000              .byte 240,0
 000C 40F0              .byte 64,240
 000E 0080              .byte 0,128
 0010 0000              .byte 0,0
 0012                   .dbsym e ParaScrTableA _ParaScrTableA A[10:10]kc
                        .area text(rom, con, rel)
 0000                   .dbfile D:\iccv7avr\AVR_C320240\avr320240.c
 0000                   .dbfunc e userinit _userinit fV
                        .even
 0000           _userinit::
 0000                   .dbline -1
 0000                   .dbline 83
 0000           ; /******************************************************************************
 0000           ; **
 0000           ; **      西安博控电子科技有限公司.
 0000           ; **
 0000           ; **  文件名:  C320240.C     
 0000           ; **
 0000           ; **  用途:    C320240 LCM 底层驱动函数库
 0000           ; **
 0000           ; **  编译环境:ICCAVR 7.0
 0000           ; **  修改时间:  $  2007 年 10月  11日       shw$
 0000           ; ******************************************************************************/
 0000           ; 
 0000           ; #include "avr320240.h"
 0000           ; //#include "ascii.h"
 0000           ; //#include "HZK.h"
 0000           ; unsigned char const hzdot[];
 0000           ; unsigned char const ASC_MSK[];
 0000           ; unsigned int const hzIndex[];
 0000           ; //--------------------------------------------------------------------------
 0000           ; //控制器SED1335 相关命令和参数定义
 0000           ; #define SystemSet 0x40 
 0000           ; Uchar const ParaSysTable8[]= {
 0000           ; 0x30,0x87,0x07,0x27,0x42,0xf0,0x28,0x00 // P1-P8参数
 0000           ; };
 0000           ; #define Scroll 0x44 
 0000           ; #define BasePart1 0x00
 0000           ; #define BasePart2 0x40
 0000           ; #define BasePart3 0x80
 0000           ; #define BasePart4 0x00
 0000           ; Uchar const ParaScrTableA[]= {
 0000           ; 0x00,BasePart1,0xF0,0x00,BasePart2,0xF0,0x00,BasePart3,0x00,BasePart4
 0000           ; };
 0000           ; #define SleepIn 0x53
 0000           ; #define DispOn 0x59
 0000           ; #define DispOff 0x58
 0000           ; #define Ovlay 0x5b
 0000           ; #define HdotScr 0x5a
 0000           ; #define CsrForm 0x5d
 0000           ; #define CgramAdr 0x5c
 0000           ; #define CsrDirR 0x4c
 0000           ; #define CsrDirL 0x4d
 0000           ; #define CsrDirU 0x4e
 0000           ; #define CsrDirD 0x4f
 0000           ; #define CsrW 0x46
 0000           ; #define CsrR 0x47
 0000           ; #define mWrite 0x42
 0000           ; #define mRead 0x43
 0000           ; //bit wAttrib; 
 0000           ; #define Busy 0x40
 0000           ; #define paraP9 0x28
 0000           ; //--------------------------------------------------------------------------
 0000           ; 
 0000           ; 
 0000           ; //extern const Uchar code ASC_MSK[];
 0000           ; 
 0000           ; 
 0000           ; //信号引脚连接定义
 0000           ; //--------------------------------------------------------------------------
 0000           ; 
 0000           ; #define databus PORTA
 0000           ; /*
 0000           ; sbit a0=P1^3; 
 0000           ; sbit read=P1^1; 
 0000           ; sbit write=P1^0;
 0000           ; 
 0000           ; sbit cs=P1^2; 
 0000           ; sbit rst=P1^4; 
 0000           ; */
 0000           ; 
 0000           ; //---------------------------------------------------------------------------
 0000           ; /******************************************************************************
 0000           ; **  函数名:             void userinit(void)
 0000           ; 
 0000           ; **  描述:                       用户初始化
 0000           ; 
 0000           ; **  修改的全局变量: 
 0000           ; 
 0000           ; **  输入参数:
 0000           ; 
 0000           ; **  返回值: 
 0000           ; *******************************************************************************/
 0000           ; void userinit(void)
 0000           ; {
 0000                   .dbline 84
 0000           ; Delay(30);
 0000 0EE1              ldi R16,30
 0002 10E0              ldi R17,0
 0004 A4D0              xcall _Delay
 0006                   .dbline 85
 0006           ; LcmInition();
 0006 CED0              xcall _LcmInition
 0008                   .dbline 86
 0008           ; WriteCommand(DispOff);
 0008 08E5              ldi R16,88
 000A B6D0              xcall _WriteCommand
 000C                   .dbline 87
 000C           ; LcmClear();
 000C F8D0              xcall _LcmClear
 000E                   .dbline 88
 000E           ; WriteCommand(DispOn);
 000E 09E5              ldi R16,89
 0010 B3D0              xcall _WriteCommand
 0012                   .dbline 89
 0012           ; WriteCommand( Ovlay ); 
 0012 0BE5              ldi R16,91
 0014 B1D0              xcall _WriteCommand
 0016                   .dbline 90
 0016           ; WriteData( 0x0C );    
 0016 0CE0              ldi R16,12
 0018 BAD0              xcall _WriteData
 001A                   .dbline -2
 001A           L1:
 001A                   .dbline 0 ; func end
 001A 0895              ret
 001C                   .dbend
 001C                   .dbfunc e Displayonebmp _Displayonebmp fV
 001C           ;              i -> R22
 001C           ;              X -> R20,R21
 001C           ;              j -> R12
 001C           ;           puts -> R10,R11
                        .even
 001C           _Displayonebmp::
 001C 0E940000          xcall push_xgsetF03C
 0020 5801              movw R10,R16
 0022                   .dbline -1
 0022                   .dbline 105
 0022           ; }
 0022           ; 
 0022           ; /******************************************************************************
 0022           ; **  函数名:           void Displayonebmp (Uchar *puts)
 0022           ; 
 0022           ; **  描述:                 显示一幅320*240点阵图片
 0022           ; 
 0022           ; **  修改的全局变量: 
 0022           ; 
 0022           ; **  输入参数:     Uchar *puts :图片所在地址
 0022           ; 
 0022           ; **  返回值: 
 0022           ; *******************************************************************************/
 0022           ; void Displayonebmp (Uchar *puts)   //显示320*240图片
 0022           ; {
 0022                   .dbline 108
 0022           ; Uint X;
 0022           ; Uchar i,j;
 0022           ; X=0;
 0022 4427              clr R20
 0024 5527              clr R21
 0026                   .dbline 109
 0026           ; WriteCommand( CsrDirR );
 0026 0CE4              ldi R16,76
 0028 A7D0              xcall _WriteCommand
 002A                   .dbline 110
 002A           ; WriteCommand( CsrW ); 
 002A 06E4              ldi R16,70
 002C A5D0              xcall _WriteCommand
 002E                   .dbline 111
 002E           ; WriteData(0); 
 002E 0027              clr R16
 0030 AED0              xcall _WriteData
 0032                   .dbline 112
 0032           ; WriteData(0);
 0032 0027              clr R16
 0034 ACD0              xcall _WriteData
 0036                   .dbline 113
 0036           ; WriteCommand( mWrite ); 
 0036 02E4              ldi R16,66
 0038 9FD0              xcall _WriteCommand
 003A                   .dbline 114
 003A           ; for(i=0;i<240;i++)
 003A 6627              clr R22
 003C 0EC0              xjmp L6
 003E           L3:
 003E                   .dbline 115
 003E           ; {
 003E                   .dbline 116
 003E           ; for(j=0;j<40;j++)
 003E CC24              clr R12
 0040 08C0              xjmp L10
 0042           L7:
 0042                   .dbline 117
 0042           ; {
 0042                   .dbline 118
 0042           ; WriteData(puts[X]);
 0042 FA01              movw R30,R20
 0044 EA0D              add R30,R10
 0046 FB1D              adc R31,R11
 0048 0081              ldd R16,z+0
 004A A1D0              xcall _WriteData
 004C                   .dbline 119
 004C           ; X++;
 004C 4F5F              subi R20,255  ; offset = 1
 004E 5F4F              sbci R21,255
 0050                   .dbline 120
 0050           ; }
 0050           L8:
 0050                   .dbline 116
 0050 C394              inc R12
 0052           L10:
 0052                   .dbline 116
 0052 8C2D              mov R24,R12
 0054 8832              cpi R24,40
 0056 A8F3              brlo L7
 0058           X0:
 0058                   .dbline 121
 0058           ; } 
 0058           L4:
 0058                   .dbline 114
 0058 6395              inc R22
 005A           L6:
 005A                   .dbline 114
 005A 603F              cpi R22,240
 005C 80F3              brlo L3
 005E           X1:
 005E                   .dbline -2
 005E           L2:
 005E                   .dbline 0 ; func end
 005E 0C940000          xjmp pop_xgsetF03C
 0062                   .dbsym r i 22 c
 0062                   .dbsym r X 20 i
 0062                   .dbsym r j 12 c
 0062                   .dbsym r puts 10 pc
 0062                   .dbend
 0062                   .dbfunc e LCD_putpixel _LCD_putpixel fV
 0062           ;            C_H -> R10
 0062           ;            C_L -> R12
 0062           ;        dot_sum -> y+0
 0062           ;          shift -> R20
 0062           ;             Ry -> R10,R11
 0062           ;             Rx -> R20,R21
                        .even
 0062           _LCD_putpixel::
 0062 0E940000          xcall push_xgset303C
 0066 5901              movw R10,R18
 0068 A801              movw R20,R16
 006A 2497              sbiw R28,4
 006C                   .dbline -1
 006C                   .dbline 137
 006C           ; 
 006C           ; }
 006C           ; 
 006C           ; /******************************************************************************
 006C           ; **  函数名:            void LCD_putpixel(Uint Rx,Uint Ry)
 006C           ; 
 006C           ; **  描述:                      在指定位置显示一个点
 006C           ; 
 006C           ; **  修改的全局变量: 
 006C           ; 
 006C           ; **  输入参数:         Rx:0-319;Ry:0-239
 006C           ; 
 006C           ; **  返回值: 
 006C           ; *******************************************************************************/
 006C           ; void LCD_putpixel(Uint Rx,Uint Ry)   //
 006C           ; {
 006C                   .dbline 141
 006C           ; Uchar shift;
 006C           ; unsigned long dot_sum;
 006C           ; Uchar C_L,C_H;
 006C           ; dot_sum=Ry*40+(Rx/8);
 006C 08E2              ldi R16,40
 006E 10E0              ldi R17,0
 0070 9501              movw R18,R10
 0072 0E940000          xcall empy16s
 0076 1801              movw R2,R16
 0078 2A01              movw R4,R20
 007A 5694              lsr R5
 007C 4794              ror R4
 007E 5694              lsr R5
 0080 4794              ror R4
 0082 5694              lsr R5
 0084 4794              ror R4
 0086 240C              add R2,R4
 0088 351C              adc R3,R5
 008A 4424              clr R4
 008C 5524              clr R5
 008E 2882              std y+0,R2
 0090 3982              std y+1,R3
 0092 4A82              std y+2,R4
 0094 5B82              std y+3,R5
 0096                   .dbline 142
 0096           ; C_L=(Uchar)dot_sum;
 0096 2880              ldd R2,y+0
 0098 3980              ldd R3,y+1
 009A 4A80              ldd R4,y+2
 009C 5B80              ldd R5,y+3
 009E C22C              mov R12,R2
 00A0                   .dbline 143
 00A0           ; C_H=(Uchar)(dot_sum>>8);
 00A0 88E0              ldi R24,8
 00A2 90E0              ldi R25,0
 00A4 8101              movw R16,R2
 00A6 9201              movw R18,R4
 00A8 8A93              st -y,R24
 00AA 0E940000          xcall lsr32
 00AE A02E              mov R10,R16
 00B0                   .dbline 144
 00B0           ; shift=Rx%8;
 00B0 4770              andi R20,7
 00B2 5070              andi R21,0
 00B4                   .dbline 145
 00B4           ; shift=8-shift-1;
 00B4 88E0              ldi R24,8
 00B6 841B              sub R24,R20

⌨️ 快捷键说明

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