以下是使用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);  // 程序无限循环
}
``
根据芯片STC89C52在显示屏上显示单片机和123给出具体的代码

原文地址: https://www.cveoy.top/t/topic/hshq 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录