单片机液晶屏显示编程
时间: 2023-07-24 07:08:07 浏览: 91
单片机液晶屏显示编程,需要先了解液晶屏的基本原理和控制方式。液晶屏的显示原理是利用液晶分子在电场作用下的可控偏转来实现显示。控制方式一般有并口方式和串口方式,其中串口方式比较常用。
下面以STC89C52单片机和16x2字符型液晶屏为例,介绍液晶屏显示编程的基本流程:
1.引入头文件和定义引脚
```c
#include <reg52.h> //STC89C52头文件
#include <intrins.h> //延时函数头文件
#define LCD_data P0 //定义数据口
sbit RS=P2^0; //定义RS引脚
sbit RW=P2^1; //定义RW引脚
sbit EN=P2^2; //定义EN引脚
```
2.定义延时函数
```c
void delay_ms(unsigned int k) //延时函数
{
unsigned int i,j;
for(i=0;i<k;i++)
for(j=0;j<110;j++);
}
```
3.定义命令函数和数据函数
```c
void Write_com(unsigned char com) //写命令函数
{
RS=0;
RW=0;
LCD_data=com;
EN=1;
_nop_();
_nop_();
EN=0;
}
void Write_data(unsigned char dat) //写数据函数
{
RS=1;
RW=0;
LCD_data=dat;
EN=1;
_nop_();
_nop_();
EN=0;
}
```
4.初始化液晶屏
```c
void Init_LCD() //初始化函数
{
Write_com(0x38); //8位数据总线,2行显示,5x7点阵字符
Write_com(0x0c); //开显示,关光标,不闪烁
Write_com(0x06); //写入后指针地址自动加1,不移动屏幕
Write_com(0x01); //清屏
}
```
5.显示字符或字符串
```c
void Display_char(unsigned char x,unsigned char y,unsigned char dat) //显示单个字符
{
unsigned char addr;
if(y==0)
addr=0x80+x;
else
addr=0xc0+x;
Write_com(addr); //设置地址
Write_data(dat); //写入数据
}
void Display_string(unsigned char x,unsigned char y,unsigned char *s) //显示字符串
{
unsigned char addr,i;
if(y==0)
addr=0x80+x;
else
addr=0xc0+x;
Write_com(addr); //设置地址
for(i=0;s[i]!='\0';i++)
Write_data(s[i]); //写入数据
}
```
6.主函数调用
```c
void main()
{
Init_LCD(); //初始化液晶屏
Display_char(0,0,'H'); //显示单个字符
Display_char(1,0,'e');
Display_char(2,0,'l');
Display_char(3,0,'l');
Display_char(4,0,'o');
Display_char(5,0,',');
Display_char(6,0,'W');
Display_char(7,0,'o');
Display_char(8,0,'r');
Display_char(9,0,'l');
Display_char(10,0,'d');
Display_string(0,1,"Welcome!"); //显示字符串
while(1); //循环显示
}
```
以上就是液晶屏显示编程的基本流程,具体可以根据不同的单片机和液晶屏型号进行相应的调整。