基于51单片机的LCD1602简单数字时钟
原理图:
源程序:
标题:LCD1602时钟
效果:在LCD1602
作者:皖绩小挺
说明:P0
key4:P3.6
宏定义
//定义LCD1602端口
sbit lcdrw=P1^1;
sbit lcden=P1^2;
sbit key1=P3^7; //定义按键端口
sbit key2=P3^6;
sbit key3=P3^5;
sbit key4=P3^4;
sbit key5=P3^3;
uchar tt; //设置全局变量
uchar hour,minute,second;
uchar table[]="HELLO WORLD" ; //第一行字符(11个)
uchar table1[]="00:00:00"; //第二行字符(8个)
/*******************************************************
延时函数
*******************************************************/
void delay(uint z) //delay(1)约1ms
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
LCD1602写命令
void write_lcdcom(uchar lcd_com)
{
lcdrs=0; //rs lcdrw=0; //rw
P0=lcd_com;
delay(5);
lcden=1;
delay(5);
}
{
lcdrs=1;
lcdrw=0;
P0=lcd_data;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
/*******************************************************
LCD1602读命令
*******************************************************/
void read_lcdcom(uchar lcd_com)
{
lcdrs=0;
lcdrw=1; //rw高电平进行读操作
P0=lcd_com;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
/*******************************************************
LCD1602读数据
*******************************************************/
void read_lcddata(uchar lcd_data)
{
lcdrs=1;
lcdrw=1;
P0=lcd_data;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
{
位,双行显示,5X7点阵
光标右移,不整屏移动
delay(5);
write_lcdcom(0x0c); //显示屏幕,光标不显示
delay(5);
hour=0; //赋系统时间初值
minute=0;
second=0;
key1=1;
key2=1;
key3=1;
key4=1;
key5=1;
write_lcdcom(0x80+2); //显示第一行
for(i=0;i<11;i++)
{
write_lcddata(table[i]);
//delay(5);
}
write_lcdcom(0x80+0x44); // 显示第二行
for(i=0;i<8;i++)
{
write_lcddata(table1[i]);
//delay(5);
}
TMOD=0x01; //
EA=1; // ET0=1; // TR0=1; }
{
shi=time/10; //取时间高位
ge=time%10;
write_lcdcom(0x80+0x40+add); //写入指令,显示位置
write_lcddata(0x30+shi);//写入数据,显示内容,利用液晶屏内部字符发生 write_lcddata(0x30+ge); //存储器(CGROM),直接写入需要显示字符的地址 //'0'的地址就是0x30
}
/***************************************************************** 定时器
************************************************************************/ void t0() interrupt 1
{
TH0=(65536-50000)/256; //重载初值
TL0=(65536-50000)%256;
tt++; //每50ms,tt加1
if(tt==20)
{
tt=0;
second++;
if(second==60)
{
second=0;
minute++;
if(minute==60)
{
minute=0;
hour++;
if(hour==24)
{
hour=0;
}
}
}
}
}
{
if(key1==0) //小时加1
{
delay(5);
if(key1==0)
{
TR0=0;
hour++;
if(hour==24) hour=0; write_hms(4,hour); delay(200); //使得调整的时候清晰可见,以免每按一次变化太大 TR0=1; } } if(key2==0) // 小时减1 { delay(5); if(key2==0) { TR0=0; hour--; if(hour>24) //当减到00时再减的数不是<0 hour=23; write_hms(4,hour); delay(200); TR0=1; } } if(key3==0) // { delay(5); if(key3==0) { TR0=0; } } if(key4==0) // 分钟减1 { delay(5); if(key4==0) { TR0=0; minute--;
if(minute>24)
minute=59;
write_hms(7,minute);
delay(200);
TR0=1;
}
}
if(key5==0) //秒钟清零
{
delay(5);
if(key5==0)
{
TR0=0;
second=0;
write_hms(10,second);
TR0=1;
}
}
}
主函数
void main(void)
{
lcdinit(); // while(1)
{
} }
…… 此处隐藏:821字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [求职职场]加法运算定律的运用练习题
- [求职职场]大型石油化工工业过程节能新技术
- [求职职场]2015-2020年中国箱纸板行业分析与投资
- [求职职场]NADEX-IWC5A点焊机故障代码
- [求职职场]英语阅读 非常有用
- [求职职场]鲁卫疾控发〔2012〕2号(联合,印发山东
- [求职职场]2014年莆田公务员行测技巧:数字推理的
- [求职职场]基于最近发展区理论的高中数学课堂有效
- [求职职场]与贸易有关的知识产权协议
- [求职职场]【王风范】微演说·职场演说三
- [求职职场]新时代国珍健康大课堂
- [求职职场]群论期末考试复习题
- [求职职场]施工现场消防安全专项施工方案(范本)-
- [求职职场]初中物理光学知识点归纳完美版
- [求职职场]毕业设计总结与体会范文
- [求职职场]江南大学2018年上半年展示设计第1阶段
- [求职职场]景尚乡民兵参战支前保障方案
- [求职职场]【优质】2019年工会职工之家建设工作总
- [求职职场]数据库技术与应用—SQL Server 2008(第
- [求职职场]汽车变速箱构造与工作原理
- 首钢工业区工业遗产资源保护与再利用研
- 第4课 《大学》节选
- 2016程序文件——检验检测结果发布程序
- 2011年高考试题文言文阅读全解释__2011
- 化学是一门基础的自然科学
- 海外做市商制度的借鉴意义
- 外国建筑史复习资料(
- 七年级下思想品德期末综合测试(二)
- 思政课部2013年上学期教学工作总结
- 电大国际公法任务3 0004
- 《圆的认识》教学设计
- 中国轨道交通牵引变流器行业市场发展调
- 中泰证券#定期报告:坚守时代硬科技和
- 浅论企业财务管理与企业经营投资风险的
- 大功率半导体激光器光纤耦合技术调研报
- 中国传统家具的现状与发展探讨
- Broadcom数字电视芯片助海尔扩展高清电
- 新HSK4词汇练习 超全(五)
- 2013届高考数学单元考点复习12
- 雨霖铃精品课件




