proteus 51单片机驱动LCD12864
时间: 2023-09-08 14:10:25 浏览: 140
51单片机LCD12864驱动
Proteus是一款虚拟电路仿真软件,它可以模拟各种电路的运行情况。而51单片机是一种常用的微控制器,用于各种嵌入式系统的开发。在51单片机中,驱动LCD12864需要使用一些特定的端口和指令,以便将数据传输到LCD屏幕上。
下面是一个简单的51单片机驱动LCD12864的代码示例:
```
#include <reg51.h>
#include <intrins.h>
#define LCD_DB P0 //定义LCD数据口
sbit LCD_RS = P2^0; //定义LCD命令/数据选择口
sbit LCD_RW = P2^1; //定义LCD读/写选择口
sbit LCD_EN = P2^2; //定义LCD使能口
void delay(unsigned int i) //延时函数
{
while(i--);
}
void write_LCD_cmd(unsigned char cmd) //向LCD写入命令
{
LCD_RS = 0; //选择命令模式
LCD_RW = 0; //选择写入模式
LCD_EN = 1; //使能信号
LCD_DB = cmd; //写入数据
_nop_();
LCD_EN = 0; //关闭使能信号
delay(200); //延时等待
}
void write_LCD_data(unsigned char dat) //向LCD写入数据
{
LCD_RS = 1; //选择数据模式
LCD_RW = 0; //选择写入模式
LCD_EN = 1; //使能信号
LCD_DB = dat; //写入数据
_nop_();
LCD_EN = 0; //关闭使能信号
delay(200); //延时等待
}
void init_LCD(void) //初始化LCD
{
write_LCD_cmd(0x30); //初始化命令
delay(5000);
write_LCD_cmd(0x0c); //设置显示模式
delay(5000);
write_LCD_cmd(0x01); //清屏
delay(5000);
write_LCD_cmd(0x06); //设置输入方式
delay(5000);
}
void main(void)
{
init_LCD(); //初始化LCD
write_LCD_cmd(0x80); //设定显示位置
write_LCD_data('H'); //写入数据
write_LCD_data('e');
write_LCD_data('l');
write_LCD_data('l');
write_LCD_data('o');
while(1);
}
```
以上代码是一个简单的51单片机驱动LCD12864的代码示例,可以实现在LCD屏幕上输出字符串"Hello"。该代码需要先初始化LCD,然后设定显示位置,并逐个写入字母数据。
阅读全文