单片机液晶显示驱动程序(用C语言写的)
要求是:RS232接口单片机液晶显示模块PC机上使用串口调试助手的设置如下:
串口设置:波特率9600,无奇偶校验,数据位8位,停止位1位。
发送数据时必须以$开始,无结束字符。如$1234,就可以直接发送。
TMOD=0x20;
TH1=0xfd;
TL1=0xfd;
PCON=0x00;
SCON=0x50;
TR1=1;
ES=0;
#include <reg52.h>
#include <absacc.h>
#include <math.h>
sbit RS = P2^5;
sbit RW = P2^6;
sbit Enable = P2^7;
sbit cs =P1^0;
sbit sck =P1^1;
sbit si =P1^3;
sbit so =P1^2;
sbit clflag0 =ACC^0;
void CheckBF(void);
void LCD_WtoiR(char datas);
void LCD_WtData(char datas);
void LCD_Clr(void);
void LCD_Init(void);
void LCD_SFLine(void);
void LCD_SSLine(void);
void LCD_printf(char lines, char *p);
void ReadLine(char lines, char *p);
void outbyt(char k);
char inbyt(void);
void wren_cmd(char k);
char rdsr_cmd(void);
void wip_poll(void);
void wrsr_cmd(void);
void CheckBF() /* 检查忙碌状态 */
{
char flag;
flag=0xff;
while((flag & 0x80)!=0)
{
RS=0;
RW=1;
Enable=0;
Enable=1;
flag=P0;
Enable=0;
}
单片机printf函数 RW=0;
}
void LCD_WtoiR(char datas) /* 指令函数 */
{
CheckBF();
Enable=0;
RS=0;
Enable=1;
P0=datas;
Enable=0;
}
void LCD_WtData(char datas) /* 数据写入 */
{
CheckBF();
Enable=0;
RS=1;
RW=0;
Enable=1;
P0=datas;
Enable=0;
}
void LCD_Clr() /* 清零 */
{
LCD_WtoiR(1);
}
void LCD_Init() /* 初始化 */
{
LCD_WtoiR(0x38); /* (0x3c)? 第一行或第二行 */
LCD_WtoiR(0x0e); /* (0x0c)? 是否显示光标 */
LCD_WtoiR(0x06); /* (0x07)?光标左移或右移 */
}
void LCD_SFLine() /* 显示第一行 */
{
LCD_WtoiR(0x80);
}
void LCD_SSLine() /* 显示第二行 */
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论