📄 lcd_dis.lst
字号:
169 1 }
170 //========================================================================
171 // 函数: void PutChar(unsigned char x,unsigned char y,unsigned char a)
172 // 描述: 写入一个标准ASCII字符
173 // 参数: x X轴坐标 y Y轴坐标
174 // a 要显示的字符在字库中的偏移量
175 // 返回: 无
176 // 备注: ASCII字符可直接输入ASCII码即可
177 // 版本:
178 // 2007/07/19 First version
C51 COMPILER V8.16 LCD_DIS 02/11/2009 00:49:30 PAGE 4
179 //========================================================================
180 void PutChar(unsigned char x,unsigned char y,unsigned char a)
181 {
182 1 //显示ASCII字符
183 1 SPI_SSSet(0); //SS置低电平
184 1 SPI_Send(7); //传送指令0x07
185 1 SPI_Send(x); //要显示字符的左上角的X轴位置
186 1 SPI_Send(y); //要显示字符的左上角的Y轴位置
187 1 SPI_Send(a); //要显示字符ASCII字符的ASCII码值
188 1 SPI_SSSet(1); //完成操作置SS高电平
189 1 }
190 //========================================================================
191 // 函数: void PutString(int x,int y,char *p)
192 // 描述: 在x、y为起始坐标处写入一串标准ASCII字符
193 // 参数: x X轴坐标 y Y轴坐标
194 // p 要显示的字符串
195 // 返回: 无
196 // 备注: 仅能用于自带的ASCII字符串显示
197 // 版本:
198 // 2007/07/19 First version
199 //========================================================================
200 void PutString(unsigned char x,unsigned char y,unsigned char *p)
201 {
202 1 while(*p!=0)
203 1 {
204 2 PutChar(x,y,*p);
205 2 x += X_Witch;
206 2 if((x + X_Witch) > Dis_X_MAX)
207 2 {
208 3 x = Dis_Zero;
209 3 if((Dis_Y_MAX - y) < Y_Witch) break;
210 3 else y += Y_Witch;
211 3 }
212 2 p++;
213 2 }
214 1 }
215 //========================================================================
216 // 函数: void PutChar_cn(unsigned char x,unsigned char y,unsigned short * GB)
217 // 描述: 写入一个二级汉字库汉字
218 // 参数: x X轴坐标 y Y轴坐标
219 // a GB码
220 // 返回: 无
221 // 备注:
222 // 版本:
223 // 2007/07/19 First version
224 // 2007/07/24 V1.2 for MCS51 Keil C
225 //========================================================================
226 void PutChar_cn(unsigned char x,unsigned char y,unsigned char * GB)
227 {
228 1 //显示ASCII字符
229 1 SPI_SSSet(0); //SS置低电平
230 1 SPI_Send(8); //传送指令0x08
231 1 SPI_Send(x); //要显示字符的左上角的X轴位置
232 1 SPI_Send(y); //要显示字符的左上角的Y轴位置
233 1
234 1 SPI_Send(*(GB++)); //传送二级字库中汉字GB码的高八位值
235 1 SPI_Send(*GB); //传送二级字库中汉字GB码的低八位值
236 1 SPI_SSSet(1); //完成操作置SS高电平
237 1 }
238 //========================================================================
239 // 函数: void PutString_cn(unsigned char x,unsigned char y,unsigned short *p)
240 // 描述: 在x、y为起始坐标处写入一串汉字字符
C51 COMPILER V8.16 LCD_DIS 02/11/2009 00:49:30 PAGE 5
241 // 参数: x X轴坐标 y Y轴坐标
242 // p 要显示的字符串
243 // 返回: 无
244 // 备注: 同PutChar_cn中的解释
245 // 版本:
246 // 2007/07/19 First version
247 // 2007/07/24 V1.2 for MCS51 Keil C
248 //========================================================================
249 void PutString_cn(unsigned char x,unsigned char y,unsigned char *p)
250 {
251 1 while(*p!=0)
252 1 {
253 2 if(*p<128)
254 2 {
255 3 PutChar(x,y,*p);
256 3 x += X_Witch+1;
257 3 if((x/* + X_Witch*/) > Dis_X_MAX)
258 3 {
259 4 x = Dis_Zero;
260 4 if((Dis_Y_MAX - y) < Y_Witch) break;
261 4 else y += Y_Witch_cn;
262 4 }
263 3 p+=1;
264 3 }
265 2 else
266 2 {
267 3 PutChar_cn(x,y,p);
268 3 x += X_Witch_cn+1;
269 3 if((x/* + X_Witch_cn*/) > Dis_X_MAX)
270 3 {
271 4 x = Dis_Zero;
272 4 if((Dis_Y_MAX - y) < Y_Witch_cn) break;
273 4 else y += Y_Witch_cn;
274 4 }
275 3 p+=2;
276 3 }
277 2 }
278 1 }
279 //========================================================================
280 // 函数: void SetPaintMode(unsigned char Mode,unsigned char Color)
281 // 描述: 绘图模式设置
282 // 参数: Mode 绘图模式 Color 像素点的颜色,相当于前景色
283 // 返回: 无
284 // 备注: Mode无效
285 // 版本:
286 // 2007/07/19 First version
287 //========================================================================
288 void SetPaintMode(unsigned char Mode,unsigned char Color)
289 {
290 1 unsigned char ucTemp=0;
291 1 ucTemp = (Mode<<4)|Color;
292 1 //设置绘图模式
293 1 SPI_SSSet(0); //SS置低电平
294 1 SPI_Send(0x83); //传送指令0x83
295 1 SPI_Send(ucTemp); //选择8X16的ASCII字体,字符色为黑色
296 1 SPI_SSSet(1); //完成操作置SS高电平
297 1 }
298 //========================================================================
299 // 函数: void PutPixel(unsigned char x,unsigned char y)
300 // 描述: 在x、y点上绘制一个前景色的点
301 // 参数: x X轴坐标 y Y轴坐标
302 // 返回: 无
C51 COMPILER V8.16 LCD_DIS 02/11/2009 00:49:30 PAGE 6
303 // 备注: 使用前景色
304 // 版本:
305 // 2007/07/19 First version
306 //========================================================================
307 void PutPixel(unsigned char x,unsigned char y)
308 {
309 1 //绘点操作
310 1 SPI_SSSet(0); //SS置低电平
311 1 SPI_Send(1); //送指令0x01
312 1 SPI_Send(x); //送第一个数据,即设置点的X轴位置
313 1 SPI_Send(y); //点的Y轴位置
314 1 SPI_SSSet(1); //完成操作置SS高电平
315 1 }
316 //========================================================================
317 // 函数: void Line(unsigned char s_x,unsigned char s_y,
318 // unsigned char e_x,unsigned char e_y)
319 // 描述: 在s_x、s_y为起始坐标,e_x、e_y为结束坐标绘制一条直线
320 // 参数: x X轴坐标 y Y轴坐标
321 // 返回: 无
322 // 备注: 使用前景色
323 // 版本:
324 // 2007/07/19 First version
325 //========================================================================
326 void Line(unsigned char s_x,unsigned char s_y,unsigned char e_x,unsigned char e_y)
327 {
328 1 //绘制直线
329 1 SPI_SSSet(0); //SS置低电平
330 1 SPI_Send(2); //送指令0x02
331 1 SPI_Send(s_x); //起点X轴坐标
332 1 SPI_Send(s_y); //起点Y轴坐标
333 1 SPI_Send(e_x); //终点X轴坐标
334 1 SPI_Send(e_y); //终点Y轴坐标
335 1 SPI_SSSet(1); //完成操作置SS高电平
336 1 }
337 //========================================================================
338 // 函数: void Circle(unsigned char x,unsigned char y,
339 // unsigned char r,unsigned char mode)
340 // 描述: 以x,y为圆心R为半径画一个圆(mode = 0) or 圆面(mode = 1)
341 // 参数:
342 // 返回: 无
343 // 备注: 画圆函数执行较慢,如果MCU有看门狗,请作好清狗的操作
344 // 版本:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -