写一个关于51单片机lcd1602电子时钟的代码
时间: 2023-09-22 08:07:48 浏览: 51
好的,以下是一个简单的关于51单片机lcd1602电子时钟的代码:
```C
#include <reg51.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit RS = P2^5; //LCD1602的RS引脚
sbit RW = P2^6; //LCD1602的RW引脚
sbit E = P2^7; //LCD1602的E引脚
uchar code table[] = "2019/09/12"; //初始日期,需要根据实际情况修改
void delayms(uint x) //延时函数
{
uint i,j;
for(i = x; i > 0; i--)
for(j = 110; j > 0; j--);
}
void write_com(uchar com) //写指令函数
{
RS = 0;
RW = 0;
E = 0;
P0 = com;
delayms(1);
E = 1;
delayms(1);
E = 0;
}
void write_data(uchar dat) //写数据函数
{
RS = 1;
RW = 0;
E = 0;
P0 = dat;
delayms(1);
E = 1;
delayms(1);
E = 0;
}
void init_lcd() //初始化LCD1602
{
write_com(0x38); //显示模式设置:16×2,5×7点阵,8位数据接口
write_com(0x0C); //显示开,无光标,不闪烁
write_com(0x06); //字符输入模式,光标右移,不移动屏幕
write_com(0x01); //清屏
}
void show_time() //显示时间函数
{
uchar i;
uchar time[8];
//获取当前时间
time[0] = 20;
time[1] = 0x1;
time[2] = 0x1;
time[3] = 0x1;
time[4] = 0x1;
time[5] = 0x1;
time[6] = 0x1;
time[7] = 0x1;
//显示日期
write_com(0x80); //设置显示位置为第一行第一列
for(i = 0; i < 10; i++)
{
if(i == 4 || i == 7) //跳过日期分隔符
continue;
write_data(table[i]);
}
//显示时间
write_com(0xC0); //设置显示位置为第二行第一列
for(i = 0; i < 8; i++)
{
if(i == 2 || i == 5) //跳过时间分隔符
continue;
write_data(time[i]);
}
}
void main()
{
init_lcd(); //初始化LCD1602
while(1)
{
show_time(); //显示时间
delayms(1000); //延时1秒
}
}
```
在这个代码中,我们首先定义了RS、RW和E引脚,并定义了一个日期数组。然后,我们编写了delayms、write_com和write_data三个函数,分别用于延时、向LCD1602写指令和写数据。接着,我们编写了init_lcd函数,用于初始化LCD1602。最后,我们编写了show_time函数,用于显示当前时间,并在main函数中循环调用show_time函数,每隔1秒更新一次时间。
相关推荐
![c](https://img-home.csdnimg.cn/images/20210720083646.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)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)