📄 lcd.c
字号:
#include "reg52.h"
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long
extern char getbyte(void); //从接收缓冲区取一个byte,如不想等待则在调用前检测inbufsign是否为1。
extern putbyte(char c); //放入一个字节到发送缓冲区
extern putstring(uchar *puts); //发送一个定义在程序存储区的字符串到串口
extern putbytes(uchar *outplace,uint j);//放一串数据到发送缓冲区,需要定义发送的字节数
extern puthex(uchar c); //发送一个字节的hex码,分成两个字节发。
extern bit inbufsign; //串口接收到数据标志
#define CR putstring("\r\n") //发送一个回车换行
extern void serial_init (void); //串口初始化
void delay(uint dtime)
{
uint n;
uint i;
for(i=0;i<dtime;i++)
for(n=0;n<2100;n++);
}
//清屏
void lcd_cls(void)
{
delay(4);
putbyte(0x1b);
putbyte(0x32);
}
//打开/关闭模块背光 0开背光,1关背光
void Set_module_light(uchar module)
{
while(inbufsign)getbyte();
putbyte(0x1b);
putbyte(0x25);
putbyte(module);
getbyte();getbyte();
}
// 设置光标位置(横向位置(0-19) 行位置(0-4))
void lcd_cursor(uchar x, uchar y)
{
while(inbufsign)getbyte();
putbyte(0x1b);
putbyte(0x33);
putbyte(x);
putbyte(y);
getbyte();getbyte();
}
//显示字符串
void lcd_string(uchar attr,uchar *string)
{
delay(5);
putbyte(0x1b);
putbyte(0x37);
putbyte(attr);
putstring(string);
putbyte(0x00);
}
//画线
void lcd_line(uchar attr,uchar x0,uchar y0,uchar x1,uchar y1)
{
delay(10);
putbyte(0x1b);
putbyte(0x39);
putbyte(attr);
putbyte(x0);
putbyte(y0);
putbyte(x1);
putbyte(y1);
}
//画矩形
void lcd_rect(uchar x1,uchar y1,uchar x2,uchar y2)
{
lcd_line(1,x1,y1,x2,y1);
lcd_line(1,x1,y1,x1,y2);
lcd_line(1,x2,y1,x2,y2);
lcd_line(1,x1,y2,x2,y2);
}
//在光标处显示数0正显,1反显
void lcd_char(uchar attr,uchar num)
{
uchar str[3];
uchar tem;
str[2]='\0';
tem=num%10;
num/=10;
str[1] = tem+0x30;
str[0] = num+0x30;
lcd_string(attr,str);
}
//在光标处显示1个数0正显,1反显
void lcd_char1(uchar attr ,uchar num)
{
uchar str[2];
str[1]='\0';
str[0] = num%10+0x30;
//str[0] = num+0x30;//这一句和上一句对于本程序效果一样
lcd_string(attr,str);
}
// 画图片,*picture_data指向图片数据,图片数据的第一二个字节是图片宽度和图片高度
void lcd_picture(uchar attr,uchar x0,uchar y0,uchar *picture_data)
{
putbyte(0x1b);
putbyte(0x42);
putbyte(attr);
putbyte(x0);
putbyte(y0);
putbytes(picture_data,(((*picture_data)+7)/8)*(*(picture_data+1))+2);
getbyte();getbyte();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -