📄 avr320240.lis
字号:
.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 + -