lcd显示c语言程序,1602液晶简单显示程序

1602 液晶手册提供了一个初始化过程,由于不检测“忙”位,所以程序比较复杂,而我们总结了一个更加简易方便的过程提供给大家,手册上描述的那个,大家仅仅作为了解就可以了,下面我把程序写出来大家看下,我们的初始化只用了 4 条语句,没有像手册介绍的那么繁琐。

#include

#define LCD1602_DB P0

sbit LCD1602_RS = P1^0;

sbit LCD1602_RW = P1^1;

sbit LCD1602_E = P1^5;

void InitLcd1602();

void LcdShowStr(unsigned char x, unsigned char y, unsigned char *str);

void main(){

unsigned char str[] = "Kingst Studio";

InitLcd1602();

LcdShowStr(2, 0, str);

LcdShowStr(0, 1, "Welcome to KST51");

while (1);

}

/* 等待液晶准备好 */

void LcdWaitReady(){

unsigned char sta;

LCD1602_DB = 0xFF;

LCD1602_RS = 0;

LCD1602_RW = 1;

do {

LCD1602_E = 1;

sta = LCD1602_DB; //读取状态字

LCD

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单C语言程序,它使用单片机和1602液晶显示器来实现秒表功能。程序中使用了注释来帮助理解代码。 ```c #include <reg52.h> // 8051单片机头文件 #include <intrins.h> #define LCD_DATA P0 // 定义液晶数据口 sbit RS = P2^0; // 定义液晶命令口 sbit RW = P2^1; // 定义液晶读写控制口 sbit EN = P2^2; // 定义液晶使能口 unsigned char code table[] = { // 显示数字表格 0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f }; void delayms(unsigned int xms) { // 延时函数 unsigned int i,j; for(i=xms;i>0;i--) for(j=110;j>0;j--); } void write_com(unsigned char com) { // 发送命令函数 LCD_DATA = com; RS = 0; // 命令模式 RW = 0; // 写操作 EN = 1; // 使能 _nop_(); // 等待 EN = 0; // 关闭使能 } void write_data(unsigned char dat) { // 发送数据函数 LCD_DATA = dat; RS = 1; // 数据模式 RW = 0; // 写操作 EN = 1; // 使能 _nop_(); // 等待 EN = 0; // 关闭使能 } void init_lcd() { // 初始化液晶函数 write_com(0x38); // 8位数据,2行显示,5x7点阵 write_com(0x0c); // 显示开,光标关,闪烁关 write_com(0x06); // 光标右移,字符不动 write_com(0x01); // 清屏 } void display(unsigned char n) { // 显示数字函数 write_data(table[n/10]); // 显示十位 write_data(table[n%10]); // 显示个位 } void main() { // 主函数 unsigned char i,j,k; init_lcd(); // 初始化液晶 while(1) { // 循环执行 for(i=0;i<60;i++) { // 秒 for(j=0;j<60;j++) { // 分 for(k=0;k<24;k++) { // 时 write_com(0x80); // 设置首行第一列 write_data(k/10); // 显示小时的十位 write_data(k%10); // 显示小时的个位 write_data(':'); // 显示冒号 write_data(j/10); // 显示分钟的十位 write_data(j%10); // 显示分钟的个位 write_data(':'); // 显示冒号 write_data(i/10); // 显示秒钟的十位 write_data(i%10); // 显示秒钟的个位 delayms(1000); // 延时1秒 } } } } } ``` 该程序的主要思路是在一个三重循环中,依次显示小时、分钟和秒钟,并通过延时函数实现1秒钟的计时。在每次循环中,首先设置液晶显示器的光标位置,然后将要显示的数字分解成十位和个位,并通过显示数字函数在液晶显示出来。 需要注意的是,该程序中使用的是8051单片机和1602液晶显示器。如果使用其他类型的单片机和液晶显示器,需要根据具体情况进行相应的修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值