主页 > 游戏开发  > 

51单片机学习之旅——在LCD1602上显示时钟

51单片机学习之旅——在LCD1602上显示时钟
新建工程

打开软件

LCD1602模块代码添加

因为我们在LCD1602上显示时钟,因此我们需要添加LCD1602的模块代码

跳转到这条博客51单片机学习之旅——模块化编程集_51单片机ruminant-CSDN博客,复制相关代码跳转到这条博客51单片机学习之旅——模块化编程集_51单片机ruminant-CSDN博客,复制相关代码

定时器0模块代码添加

本次项目在LCD1602上显示时钟,要用到定时器中断,因此我们下来添加定时器中断模块代码跳转到这条博客51单片机学习之旅——模块化编程集_51单片机ruminant-CSDN博客,复制相关代码跳转到这条博客51单片机学习之旅——模块化编程集_51单片机ruminant-CSDN博客,复制相关代码

main.c文件代码: #include <REGX52.H> #include "LCD1602.h"//头文件的作用是声明,我这里要用到啥啥啥 #include "timer0.h"//让程序知道到哪里去找,相当于“任意门” unsigned char s=0,m=0,h=0;//s秒m分钟h小时 void main()//键盘Insert键会让输入竖线变下划线 { //初始化 LCD_Init();//LCD1602屏幕初始化 Timer0_Init();//定时器0初始化 //不用实时更新的部分 LCD_ShowString(1,1,"Clock:");//从第一行第一列开始显示Clock: LCD_ShowString(2,1," : :");//从第二行第一列开始显示 : : while(1)//需要实时更新的部分写在循环里 { LCD_ShowNum(2,1,h,2);//从第二行第一列开始以两位宽显示变量h LCD_ShowNum(2,4,m,2);//从第二行第四列开始以两位宽显示变量m LCD_ShowNum(2,7,s,2);//从第二行第七列开始以两位宽显示变量s } } void Timer0_Routine() interrupt 1//定时器0中断函数 { static unsigned int T0Count;//累计1秒 TL0=0x18;//定时器0配置的是01模式1:16位不重载模式,且单片机是12MHz,12T分频 TH0=0XFC;//所以TL0=(65536-1000)%256,TH0=(65536-1000)/256 T0Count++; if(T0Count==1000)//如果时间够1秒 { T0Count=0;//归零重新计数 s++;//秒累加1s++等同于s=s+1 } if(s==60) { s=0;//满60秒进位1分钟,秒归零重新累加 m++; } if(m==60) { m=0;//满60分钟进位1小时,分钟归零重新累加 h++; } if(h==24) { h=0;//一天24个小时 } }
标签:

51单片机学习之旅——在LCD1602上显示时钟由讯客互联游戏开发栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“51单片机学习之旅——在LCD1602上显示时钟