根据芯片STC89C52在显示屏上显示单片机和123给出具体的代码
以下是使用STC89C52芯片的C语言代码,使用LCD1602液晶显示屏显示“单片机和123”:
#include <reg52.h>
#define LCD1602_DB P0 // 数据总线连接到P0口
#define LCD1602_RS P2_0 // RS引脚连接到P2.0口
#define LCD1602_RW P2_1 // RW引脚连接到P2.1口
#define LCD1602_E P2_2 // E引脚连接到P2.2口
void delay_ms(unsigned int ms) // 延时函数,单位为毫秒
{
unsigned int i, j;
for (i = 0; i < ms; i++)
for (j = 0; j < 114; j++);
}
void lcd1602_write_cmd(unsigned char cmd) // 写命令函数
{
LCD1602_RS = 0; // RS = 0,选择命令寄存器
LCD1602_RW = 0; // RW = 0,选择写入模式
LCD1602_DB = cmd; // 将命令写入数据总线
LCD1602_E = 1; // E = 1,使能写入
delay_ms(1); // 等待一段时间
LCD1602_E = 0; // E = 0,结束写入
}
void lcd1602_write_data(unsigned char data) // 写数据函数
{
LCD1602_RS = 1; // RS = 1,选择数据寄存器
LCD1602_RW = 0; // RW = 0,选择写入模式
LCD1602_DB = data;// 将数据写入数据总线
LCD1602_E = 1; // E = 1,使能写入
delay_ms(1); // 等待一段时间
LCD1602_E = 0; // E = 0,结束写入
}
void lcd1602_init() // 初始化函数
{
lcd1602_write_cmd(0x38); // 8位数据总线,2行显示,5x7点阵字符
lcd1602_write_cmd(0x0C); // 显示开,光标不显示,光标闪烁不显示
lcd1602_write_cmd(0x06); // 光标右移,字符不移动
lcd1602_write_cmd(0x01); // 清屏
}
void lcd1602_display(unsigned char row, unsigned char col, unsigned char *str)
{
unsigned char addr;
if (row == 0)
addr = 0x80 + col; // 第一行地址从0x80开始
else if (row == 1)
addr = 0xC0 + col; // 第二行地址从0xC0开始
lcd1602_write_cmd(addr); // 设置显示地址
while(*str)
lcd1602_write_data(*str++); // 逐个字符写入
}
void main()
{
lcd1602_init(); // 初始化液晶显示屏
lcd1602_display(0, 0, "单片机和123"); // 在第一行第一列显示“单片机和123”
while(1); // 程序无限循环
}
``
原文地址: https://www.cveoy.top/t/topic/hshq 著作权归作者所有。请勿转载和采集!