0 卖盘信息
BOM询价
您现在的位置: 首页 > 技术方案 >工业控制 > 基于51单片机+LCD1602的数字时钟设计方案

基于51单片机+LCD1602的数字时钟设计方案

来源: toutiao
2020-08-05
类别:工业控制
eye 105
文章创建人 拍明

原标题:基于51单片机的数字时钟设计方案

  一起来来了解吧 数字时钟设计飞起来 基于(数码管和LCD显示)两种显示方法

  一,针对初学者的要求

  1、掌握单片机定时/计数器的工作原理和控制方法。

  2、熟练掌握单片机定时/计数器的几种不同工作方式特点及其选择方法。

  3、掌握实验系统中数码管显示部分的电路结构和特点。

  4、掌握数字时钟系统的常见构成方法和软件设计技巧。

  二,基础内内容:

  基本要求(必须完成):用定时/计数器完成简单时钟功能,并利用数码管显示时间,起始时间建议设置为23:59:55,方便观察到零点时显示时间的跳变。

  提高部分:可在此基础上,利用独立按键K1-K4实现闹钟、调时等功能。

  三,显示部分仍然可借鉴前面讲过的数码管动态显示子函数。

  基本1秒的时间可通过定时计数器(如T0)产生50ms,循环20次,到达1秒;以此类推。设计思路、,但应注意电路不同,可以采用采用LCD1602显示,因此只能部分参考。

  三,电路图

  数码管显示电路

  1.jpg

  2,LCD显示电路

  

基于<a target=51单片机的数字时钟设计(数码管和LCD显示)" src="https://supp.iczoom.com/images/public/202008/1596598867473094607.jpg" width="640" height="363"/>

  废话不多说,看程序

  四,基于数码管显示

  代码

  #include #define uchar unsigned char #define uint unsigned int sbit DUAN=P2^6;sbit WEI=P2^7;sbit K1=P3^4;sbit K2=P3^5;sbit K3=P3^6;sbit K4=P3^7;uchar h,m,s,j=0;uchar data led[6]={5,5,9,5,3,2};uchar data ledwei[6]={0xdf,0xef,0xf7,0xfb,0xfd,0xfe};uchar data displaytab[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};void delay() /*ÑÓʱº¯Êý,Ô¼1mS*/{ uchar x,y; for(x=2; x>0; x--) for(y=250; y>0; y--); }void display() /*Ö÷³ÌÐò*/{ uchar i; for (i=0;i<6;i++) { P0=displaytab[led[i]]; DUAN=1; DUAN=0; P0=ledwei[i]; WEI = 1; WEI = 0; delay(); P0=0xff; /*ÏûÓ°2£¬Î»Ñ¡È«²¿¹Ø¶Ï*/ WEI = 1; WEI = 0; P0=0x00; /*ÏûÓ°1£¬Ï¨Ãð¶ÏÂë*/ DUAN = 1; DUAN = 0; } }void main(){ TMOD=0x01; TH0=(65536-46080)/256; TL0= (65536-46080)%256; EA=1; ET0=1; TR0=1; h=23; m=59; s=55; while(1) { display(); }}void T0_int() interrupt 1{ j++; if(j==20) { j=0; s++; if(s==60) { s=0; m++; } if(m==60) { m=0; h++; } if(h==24){ h=0; }} led[5]=h/10;led[4]=h%10;led[3]=m/10; led[2]=m%10;led[1]=s/10; led[0]=s%10;TH0=(65536-46080)/256;TL0=(65536-46080)%256; }

  2.结果显示

  

基于51单片机的数字时钟设计(数码管和LCD显示)

  五,基于LCD显示

  1.代码

  #include#include#define uchar unsigned char#define uint unsigned intuchar int_time;uchar second;uchar minute;uchar hour;uchar code date[]=" L.T.T CHINA ";uchar code time[]=" TIME 23:59:55 ";uchar second=55,minute=59,hour=23;void clock_init(){ uchar i,j; for(i=0;i<16;i++) { write_data(date[i]); }write_com(0x80+0x40);for(j=0;j<16;j++){ write_data(time[j] ); }}void write_sfm(uchar wei,uchar date1){uchar shi,ge;shi=date1/10;ge=date1%10;write_com(0x80+wei);write_data(0x30+shi);write_data(0x30+ge);}void clock_write(uint s,uint m,uint h){ write_sfm(0x47,h); write_sfm(0x4a,m); write_sfm(0x4d,s); }void main(){ init1602(); clock_init(); TMOD=0x01; EA=1; ET0=1; TH0=(65536-46080)/256; TL0= (65536-46080)%256; TR0=1; int_time=0; second=55; minute=59; hour=23; while(1) { clock_write(second,minute,hour); }}void T0_interserve(void) interrupt 1 using 1{ int_time++;if(int_time==20){ int_time=0; second ++; } if(second==60) { second=0; minute ++; }if(minute==60){ minute=0; hour ++; } if(hour==24) { hour=0; } TH0=(65536-46080)/256; TL0= (65536-46080)%256; }

  2.结果显示

  

基于51单片机的数字时钟设计(数码管和LCD显示)


责任编辑:David

【免责声明】

1、本文内容、数据、图表等来源于网络引用或其他公开资料,版权归属原作者、原发表出处。若版权所有方对本文的引用持有异议,请联系拍明芯城(marketing@iczoom.com),本方将及时处理。

2、本文的引用仅供读者交流学习使用,不涉及商业目的。

3、本文内容仅代表作者观点,拍明芯城不对内容的准确性、可靠性或完整性提供明示或暗示的保证。读者阅读本文后做出的决定或行为,是基于自主意愿和独立判断做出的,请读者明确相关结果。

4、如需转载本方拥有版权的文章,请联系拍明芯城(marketing@iczoom.com)注明“转载原因”。未经允许私自转载拍明芯城将保留追究其法律责任的权利。

拍明芯城拥有对此声明的最终解释权。

相关资讯

方案推荐
基于MC33771主控芯片的新能源锂电池管理系统解决方案

基于MC33771主控芯片的新能源锂电池管理系统解决方案

AMIC110 32位Sitara ARM MCU开发方案

AMIC110 32位Sitara ARM MCU开发方案

基于AMIC110多协议可编程工业通信处理器的32位Sitara ARM MCU开发方案

基于AMIC110多协议可编程工业通信处理器的32位Sitara ARM MCU开发方案

基于展讯SC9820超低成本LTE芯片平台的儿童智能手表解决方案

基于展讯SC9820超低成本LTE芯片平台的儿童智能手表解决方案

基于TI公司的AM437x双照相机参考设计

基于TI公司的AM437x双照相机参考设计

基于MTK6580芯片的W2智能手表解决方案

基于MTK6580芯片的W2智能手表解决方案