?? c1335_driver.lst
字號:
C51 COMPILER V7.07 C1335_DRIVER 03/10/2006 09:06:40 PAGE 1
C51 COMPILER V7.07, COMPILATION OF MODULE C1335_DRIVER
OBJECT MODULE PLACED IN c1335_driver.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE c1335_driver.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include "..\uv2_prj\config.h"
2 #include "config.h"
3 #include "c1335_define.h"
4 #include "c1335_driver.h"
5 #include "c1335_font.h"
6
7 //#include<math.h>
8 //#include<intrins.h>
9 #define paraP9 0x28 // 相對于320 X 240
10 unsigned char code OnlyBitTable[8] = {0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};
11 /*======================================================================**
12 **函 數 名:void DispBitmap(uchar *addr,uchar LineX,uchar RowY); **
13 **功能介紹:顯示 2 區圖形方式顯示16*16漢字 **
14 **傳人參數:漢字字符串地址 *addr,定位坐標LineX(0~239),RowY(0~39) **
15 ** **
16 **======================================================================*/
17 void DispBitmap( unsigned char *addr,
18 unsigned char X,
19 unsigned char Y,
20 unsigned char color,
21 unsigned char Length)
22 {
23 1 unsigned char i;
24 1 unsigned int XYtemp;
25 1 i = color;
26 1 XYtemp = Y * 40 + X+BasePart2*256; //計算顯示位置
27 1 WriteCMD(CSR_DIR_D);
28 1 WriteCMD(CSR_W);
29 1 WriteDATA((unsigned char)XYtemp);
30 1 WriteDATA((unsigned char)(XYtemp >> 8));
31 1 WriteCMD(MEM_WRITE);
32 1 for(i=0;i<Length;i++,addr++)
33 1 {
34 2 if(!color) WriteDATA(*addr);
35 2 else WriteDATA(~(*addr));
36 2 }
37 1 }
38 void DispCHAR_16x8( unsigned char *addr,
39 unsigned char X,
40 unsigned char Y,
41 unsigned char color)
42 {
43 1 DispBitmap(addr,X,Y,color,16);
44 1 }
45 /*======================================================================**
46 **函 數 名:void DispHZ_16_16(uchar *addr,uchar LineX,uchar RowY); **
47 **功能介紹:顯示 2 區圖形方式顯示16*16漢字 **
48 **傳人參數:漢字字符串地址 *addr,定位坐標LineX(0~239),RowY(0~39) **
49 ** **
50 **======================================================================*/
51 void DispHZ_16_16( unsigned char *addr,
52 unsigned char X,
53 unsigned char Y,
54 unsigned char color)
55 {
C51 COMPILER V7.07 C1335_DRIVER 03/10/2006 09:06:40 PAGE 2
56 1 DispBitmap(addr, X, Y, color,16);
57 1 DispBitmap(addr+16, X+1, Y, color,16);
58 1 }
59
60 /*======================================================================**
61 **函 數 名:Disp_ASCII(uchar *addr,uchar LineX,uchar RowY,bit Inverse); **
62 **功能介紹:顯示 2 區圖形方式顯示ASCII,要求以'\0'結尾 **
63 **傳人參數:ASCII字符串地址 *addr,定位坐標LineX(0~239),RowY(0~39) **
64 ** -----(bit)Inverse,正常顯示(0),反白顯示(1) --- **
65 ========================================================================*/
66 void DispASCIIStr( unsigned char *addr,
67 unsigned char X,
68 unsigned char Y,
69 unsigned char color)
70 {
71 1 unsigned int p;
72 1
73 1 for ( ;*addr != 0;addr++ )
74 1 {
75 2 if(*addr < 0x80)//ASICII 字符
76 2 {
77 3 p = (*addr - 0x20)*16 ;
78 3 DispCHAR_16x8(ASCII_16+p,X,Y,color); //DispCHAR_16x8(&Ascii_16[p],Y0,X0,color);
79 3 X++;
80 3 }
81 2 else // >=0x80,漢字
82 2 {
83 3 p = (*addr - 0x80)*32 ;
84 3 DispHZ_16_16(HZ_16X16+p,X,Y,color); //DispCHAR_16x8(&Ascii_16[p],Y0,X0,color);
85 3 X +=2;
86 3 }
87 2 }
88 1 }
89 void NumberToChar(unsigned int nDecadeData,
90 unsigned char * pChar,
91 unsigned char Length)
92 {
93 1 unsigned char uc;
94 1 for (uc = Length;uc ; )
95 1 {
96 2 pChar[--uc] = nDecadeData%10 + 0x30;
97 2 nDecadeData /=10;
98 2 }
99 1 }
100 #define memset(x,y,z);
101 /*======================================================================**
102 **函 數 DispBmp16x24(uchar *addr,uchar X,uchar Y,color); **
103 **功能介紹:顯示 2 區圖形方式顯示位圖 **
104 **傳人參數: **
105 ** -----color,正常顯示(0),反白顯示(1) --- **
106 ========================================================================*/
107 void DispDecimalNum( unsigned int nDecadeData,
108 unsigned char X,
109 unsigned char Y,
110 unsigned char Length,
111 unsigned char color)
112 {
113 1 unsigned char ucTemp[5];
114 1 memset(ucTemp,0,sizeof(ucTemp));
115 1 NumberToChar(nDecadeData,ucTemp,Length);
116 1 DispASCIIStr(ucTemp,X,Y,color);
117 1 }
C51 COMPILER V7.07 C1335_DRIVER 03/10/2006 09:06:40 PAGE 3
118 /*======================================================================**
119 **函 數 DispBmp16x24(uchar *addr,uchar X,uchar Y,color); **
120 **功能介紹:顯示 2 區圖形方式顯示位圖 **
121 **傳人參數: **
122 ** -----color,正常顯示(0),反白顯示(1) --- **
123 ========================================================================*/
124 void DispBmp16x24(unsigned char *addr,
125 unsigned char X,
126 unsigned char Y,
127 unsigned char color)
128 {
129 1 DispBitmap(addr, X, Y, color,16);
130 1 DispBitmap(addr+16, X+1, Y, color,16);
131 1 DispBitmap(addr+16+16, X+2, Y, color,16);
132 1 }
133
134 void HorLine(unsigned char Data,
135 unsigned char X,
136 unsigned char Y,
137 unsigned char Length)
138 {
139 1 unsigned char i;
140 1 unsigned int XYtemp;
141 1 XYtemp = (Y) * 40 + X + BasePart2*256;
142 1 WriteCMD(CSR_DIR_R);
143 1 WriteCMD(CSR_W);
144 1 WriteDATA((unsigned char)XYtemp);
145 1 WriteDATA((unsigned char)(XYtemp >> 8));
146 1 WriteCMD(MEM_WRITE);
147 1 for(i=0;i<Length;i++)
148 1 WriteDATA(Data);
149 1 }
150 void VerLine(unsigned char Data,
151 unsigned char X,
152 unsigned char Y,
153 unsigned char Length)
154 {
155 1 unsigned char i;
156 1 unsigned int XYtemp;
157 1 XYtemp = (Y) * 40 + X + BasePart2*256;
158 1 WriteCMD(CSR_DIR_D);
159 1 WriteCMD(CSR_W);
160 1 WriteDATA((unsigned char)XYtemp);
161 1 WriteDATA((unsigned char)(XYtemp >> 8));
162 1 WriteCMD(MEM_WRITE);
163 1 for(i=0;i<Length;i++)
164 1 WriteDATA(Data);
165 1 }
166 /*=================================================================**
167 **函 數 名:void DrawRect(unsigned int X,unsigned char Y,unsigned char attr);**
168 **功能介紹:在(x,y)坐標繪制一個點。x=[0,319],y=[0,239] **
169 **傳人參數:attr是 (1)畫點,(0)消點 **
170 ===================================================================*/
171 void DrawRect(unsigned int X,unsigned char Y,unsigned char attr)
172 {
173 1 unsigned char i,Data;
174 1 if(attr) Data = 0xc0;
175 1 else Data = 0x00;
176 1 VerLine(Data,X, Y,24);
177 1
178 1 if(attr) Data = 0x03;
179 1 else Data = 0x00;
C51 COMPILER V7.07 C1335_DRIVER 03/10/2006 09:06:40 PAGE 4
180 1 VerLine(Data,X+4, Y,24);
181 1
182 1 if(attr) Data = 0xff;
183 1 else Data = 0x00;
184 1 for(i=0;i<2;i++)
185 1 HorLine(Data,X,Y+i,5);
186 1 for(i=22;i<24;i++)
187 1 HorLine(Data,X,Y+i,5);
188 1 }
189 /*======================================================================**
190 **函 數 名:DispRegNO(RowX,ColumnY,X,Y); **
191 **功能介紹:顯示 2 區圖形方式顯示ASCII,要求以'\0'結尾 **
192 **傳人參數:ASCII字符串地址 *addr,定位坐標LineX(0~239),RowY(0~39) **
193 ** -----(bit)Inverse,正常顯示(0),反白顯示(1) --- **
194 ========================================================================*/
195 void DispRegNO( unsigned char RowX,
196 unsigned char ColumnY,
197 unsigned char X,
198 unsigned char Y,
199 unsigned char color)
200 {
201 1 unsigned int p;
202 1 unsigned char ucTemp;
203 1 ucTemp = ColumnY*12 +RowX;
204 1 if(ucTemp < 31)
205 1 {
206 2 p = 32*ucTemp;
207 2 DispHZ_16_16(PROVINCE_NAME+p,X,Y,color);
208 2 }
209 1 else if ((ucTemp > 30)&&(ucTemp < 72))
210 1 {
211 2 if(ucTemp < 46) p = (ucTemp-20)*16;
212 2 else p = (ucTemp-13)*16 ;
213 2 DispCHAR_16x8(ASCII_16+p,X,Y,color);
214 2 }
215 1 }
216 /*======================================================================**
217 **函 數 名:initLCD(); **
218 **功能介紹:初始化LCD **
219 **傳人參數:無 **
220 ** .
221 0**
222 **======================================================================*/
223 void initLCD()
224 {
225 1 unsigned int i;
226 1
227 1 C8155=0x02; //B output,C&A input
228 1 C8155=0x02; //B output,C&A input
229 1
230 1 WriteCMD(SYSTEM_SET);//C1335=0x40;
231 1 for(i=0;i<8;i++)
232 1 {
233 2 WriteDATA(SYSTEMSET_PARAM[i]);//D1335 = SYS_PARA_TABLE8[i];
234 2 }
235 1 WriteCMD(SCROLL);//C1335=0x44;
236 1 for(i=0;i<10;i++)
237 1 {
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -