#include<reg52.h>
#define uchar unsigned char//宏定义
#define uint unsigned int//宏定义
sbit dula=P2^6;//控制数码管
sbit wela=P2^7;
sbit rs=P3^5;//控制液晶数据名命令选择
sbit lcden=P3^4;//液晶写数据控制
sbit s1=P3^0;//控制矩阵键盘的S9
sbit s2=P3^1;//控制矩阵键盘的S13
sbit s3=P3^2;//控制矩阵键盘的S17
sbit rd=P3^7;//申明RD的位
uchar count,date,shi,fen,miao,s1num;
uchar code table[]=" 2017-10-17 MON";//初始化显示日期
uchar code table1[]=" 19:28:20";//初始化显示时间
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void write_com(uchar com)//写指令函数
{
rs=0;//数据置低
lcden=0;//lcden拉低
P0=com;
delay(5);
lcden=1;//拉高
delay(5);//稳定五毫秒
lcden=0;//拉低
}
void write_date(uchar date)//写指数据函数
{
rs=1;//数据置高
lcden=0;//lcden拉低
P0=date;
delay(5);
lcden=1;//拉高
delay(5);//稳定五毫秒
lcden=0;//拉低
}
void init()
{
uchar num;
dula=0;//关闭数码管
wela=0;
lcden=0;//通过1602的资料显示lcden初始为低
/* 一定注意这里的赋值与程序开头的自定义赋值,当二者赋值一致的时候才会正常走动,不也一样时就会出现错误,原因未知*/
fen=28;
miao=20;
shi=19;
/***************************************************/
write_com(0x38);//设置16X2显示,5X7点阵,8位数据接口
delay(5);
write_com(0x0c);//00001100开显示,不显示光标
write_com(0x06);//00000110,读入一个字符后指针和光标都加一,整屏不移动
write_com(0x01);//清零,不清零会显示出错
write_com(0x8
基于51的1602时钟显示
最新推荐文章于 2023-05-19 12:31:48 发布