51单片机控制的 12864 液晶显示系统编程实现以下显示内容: a. 第一行居中显示“南阳理工学院”; b. 第二行居中显示“www.nyist.edu.cn”; c. 第三行居中显示“电子信息工程专业”; d. 第四行居中显示尚春芳
时间: 2023-12-23 14:01:57 浏览: 44
好的,这是一个基于51单片机的液晶显示系统,需要编写程序实现以下显示内容:
```c
#include <reg51.h> // 51单片机头文件
#define LCD_DATA P0 // 液晶屏数据口
sbit RS = P2^6; // 液晶屏RS引脚
sbit RW = P2^5; // 液晶屏RW引脚
sbit EN = P2^7; // 液晶屏EN引脚
void delay_ms(unsigned int ms) // 延时函数
{
unsigned int i, j;
for (i = 0; i < ms; i++)
for (j = 0; j < 120; j++);
}
void lcd_write_cmd(unsigned char cmd) // 写入命令到液晶屏
{
RS = 0; // RS置0,表示写入命令
RW = 0; // RW置0,表示写入操作
LCD_DATA = cmd; // 将命令写入数据口
EN = 1; // EN置1
delay_ms(1); // 延时1ms
EN = 0; // EN置0
}
void lcd_write_data(unsigned char dat) // 写入数据到液晶屏
{
RS = 1; // RS置1,表示写入数据
RW = 0; // RW置0,表示写入操作
LCD_DATA = dat; // 将数据写入数据口
EN = 1; // EN置1
delay_ms(1); // 延时1ms
EN = 0; // EN置0
}
void lcd_init() // 液晶屏初始化函数
{
lcd_write_cmd(0x38); // 设置显示模式,8位数据接口,2行显示,5x8字符点阵
lcd_write_cmd(0x0C); // 开启显示,关闭光标
lcd_write_cmd(0x06); // 设置光标移动方式,光标右移,字符不动
lcd_write_cmd(0x01); // 清屏
delay_ms(5); // 延时5ms
}
void lcd_display_str(unsigned char x, unsigned char y, unsigned char *str) // 在指定位置显示字符串
{
unsigned char i;
if (y == 1) // 第一行
{
for (i = 0; str[i] != '\0'; i++);
x = (16 - i) / 2; // 居中显示
lcd_write_cmd(0x80 + x); // 设置光标的横坐标
}
else if (y == 2) // 第二行
{
for (i = 0; str[i] != '\0'; i++);
x = (16 - i) / 2; // 居中显示
lcd_write_cmd(0x80 + 0x40 + x); // 设置光标的横坐标
}
else if (y == 3) // 第三行
{
lcd_write_cmd(0x80 + 0x10); // 设置光标移动到第三行
for (i = 0; str[i] != '\0'; i++);
x = (16 - i) / 2; // 居中显示
lcd_write_cmd(0x80 + x); // 设置光标的横坐标
}
else if (y == 4) // 第四行
{
lcd_write_cmd(0x80 + 0x50); // 设置光标移动到第四行
for (i = 0; str[i] != '\0'; i++);
x = (16 - i) / 2; // 居中显示
lcd_write_cmd(0x80 + x); // 设置光标的横坐标
}
for (i = 0; str[i] != '\0'; i++)
lcd_write_data(str[i]); // 逐个写入字符
}
void main()
{
lcd_init(); // 初始化液晶屏
lcd_display_str(0, 1, "南阳理工学院"); // 第一行居中显示
lcd_display_str(0, 2, "www.nyist.edu.cn"); // 第二行居中显示
lcd_display_str(0, 3, "电子信息工程专业"); // 第三行居中显示
lcd_display_str(0, 4, "尚春芳"); // 第四行居中显示
while (1); // 程序不结束
}
```
注意:此处代码只是参考,具体实现可能需要根据硬件环境和实际情况进行修改。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)