基于51单片机的数码管闹钟设计

news/2024/11/29 8:50:12/

系统功能:利用定时器实现时钟,时钟可以通过独立按键设置,设有一个闹钟,闹钟时间可通过按键进行设置,时钟界面和闹钟界面可通过按键切换,当时钟和闹钟时间相同,蜂鸣器响,提示闹钟时间到等。

此系统重点在于:数码管动态驱动的使用方法,单片机内部定时器的配置及使用方法、显示屏显示界面的切换设置方法、独立按键的驱动方法、蜂鸣器的驱动方法、以及各个模块整合为完整系统的方法等

系统所需硬件:51单片机最小系统(包括STC89C52芯片、晶振、电容、电阻、独立按键、上拉电阻等)、八位共阳极数码管、LED、三极管、蜂鸣器、独立按键等。

系统软件编写:采用C语言和keil4软件编译

系统电路搭建:采用Proteus8.10软件搭建

系统仿真过程:时钟界面

闹钟界面: 

系统编写的程序:

#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar dd[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf};
//数码管断码表
uchar shi=9,fen=59,miao=55; //时间初始值
uchar shi1=10,fen1=5,miao1=0;//闹钟初始值uchar yi,er,san,si,wu,liu,qi,ba;uchar count=0;//计数变量
sbit led=P1^0;	//LED端口
sbit buzz=P1^1;//蜂鸣器
sbit k1=P1^2; //模式切换sbit k2=P1^3; //加
sbit k3=P1^4; //减sbit k4=P1^5; //时间 时分秒切换
sbit k5=P1^6; //闹钟 时分秒切换bit k1_flag=0;
uchar k4_flag=0,k5_flag=0;void delay1ms()		//@11.0592MHz
{unsigned char i, j;_nop_();_nop_();_nop_();i = 11;j = 190;do{while (--j);} while (--i);
}//数码管显示时间
void display(uchar yi,uchar er,uchar san,uchar si,uchar wu,uchar liu,uchar qi,uchar ba)
{P3=0x01;	 //位选P2=dd[yi]; //段选delay1ms();P3=0x02;P2=dd[er];delay1ms();P3=0x04;	 //位选P2=dd[san]; //段选delay1ms();P3=0x08;P2=dd[si];delay1ms();P3=0x10;	 //位选P2=dd[wu]; //段选delay1ms();P3=0x20;P2=dd[liu];delay1ms();P3=0x40;	 //位选P2=dd[qi]; //段选delay1ms();P3=0x80;P2=dd[ba];delay1ms();}void keys()
{if(k1==0){delay1ms();if(k1==0)   //{  k1_flag=~k1_flag;if(k1_flag==0){ET0=1;}}while(k1==0);}if(k2==0){delay1ms();if(k2==0)   //{if(k4_flag==1){shi++;if(shi==24){shi=0;}}if(k4_flag==2){fen++;if(fen==60){fen=0;}}if(k4_flag==3){miao++;if(miao==60){miao=0;}}if(k5_flag==1){shi1++;if(shi1==24){shi1=0;}}if(k5_flag==2){fen1++;if(fen1==60){fen1=0;}}if(k5_flag==3){miao1++;if(miao1==60){miao1=0;}}}while(k2==0);}if(k3==0){delay1ms();if(k3==0)  // {if(k4_flag==1){shi--;if(shi==-1){shi=23;}}if(k4_flag==2){fen--;if(fen==-1){fen=59;}}if(k4_flag==3){miao--;if(miao==-1){miao=59;}}if(k5_flag==1){shi1--;if(shi1==-1){shi1=23;}}if(k5_flag==2){fen1--;if(fen1==-1){fen1=59;}}if(k5_flag==3){miao1--;if(miao1==-1){miao1=59;}}}while(k3==0);}if(k4==0){delay1ms();if(k4==0)  // {ET0=0;if(k1_flag==0){k4_flag++;if(k4_flag==4){ET0=1;k4_flag=0;}}	}while(k4==0);}if(k5==0){delay1ms();if(k5==0)  // {ET0=0;if(k1_flag==1){k5_flag++;if(k5_flag==4){k5_flag=0;}	}}while(k5==0);}
}void Timer0Init(void)		//100微秒@11.0592MHz
{TMOD = 0x01;		//设置定时器模式TL0 =(65536-50000)%256;		//设置定时初值TH0 =(65536-50000)/256;		//设置定时初值TF0 = 1;		//清除TF0标志TR0 = 1;		//定时器0开始计时EA=1;ET0=1;
}void serviceTimer0Init() interrupt 1
{TL0 =(65536-50000)%256;		//设置定时初值TH0 =(65536-50000)/256;	count++;if(count==20)  //20*50000=1秒{count=0;miao++;}if(miao==60)	  //{miao=0;fen++;}if(fen==60)	  //{fen=0;shi++;}if(shi==24){shi=0;}if((shi==shi1)&&(fen==fen1)&&(miao==miao1)){led=~led;buzz=0;}else {buzz=1;led=0;}
}//主函数
void main()
{yi=1,er=2,san=3,si=4,wu=5,liu=6,qi=7,ba=8;Timer0Init();led=0;buzz=1;while(1){if(k1_flag==0){yi=shi/10,er=shi%10,san=10,si=fen/10,wu=fen%10,liu=10,qi=miao/10,ba=miao%10;}else if(k1_flag==1){yi=shi1/10,er=shi1%10,san=10,si=fen1/10,wu=fen1%10,liu=10,qi=miao1/10,ba=miao1%10;}keys();display(yi,er,san,si,wu,liu,qi,ba);}
}

 下载链接:

(注意:若软件版本低于设计版本,则打不开图和程序)

链接:https://pan.baidu.com/s/1b8Pdt-RdxpJsRRiY-ARh7Q?pwd=na7e  提取码:na7e 


http://www.ppmy.cn/news/383402.html

相关文章

【基于容器的部署、扩展和管理】3.10 云原生容器运行时环境和配置管理

往期回顾&#xff1a; 第一章&#xff1a;【云原生概念和技术】 第二章&#xff1a;【容器化应用程序设计和开发】 第三章&#xff1a;【3.1 容器编排系统和Kubernetes集群的构建】 第三章&#xff1a;【3.2 基于容器的应用程序部署和升级】 第三章&#xff1a;【3.3 自动…

全方位剖析 清华同方 ,脉络千里

600100 &#xff27;同方 http://ike.126.com 2006-03-16最新简况→【1:业绩预告】【2:股权分置】【3: 最新分红扩股】【4:大事提醒】 ───────────────────────────────┌───────────┬─────…

同方服务器系统安装,安徽远教清华同方服务器安装流程

1.先用服务器驱动光盘引导服务器,做出SATA HostRAID卡驱动软盘;再用WINDOWS XP/2003光盘引导服务器,按F6键,插入软盘,对硬盘进行分区,C盘分为10G,D盘10G,E盘40G,剩余空间为F盘,选择C盘装系统,格式化后将光盘弹出,直接按F3键退出。 2.用服务器镜像恢复DVD光盘引导…

[ZT]入门级磁带机使用方法

大多数磁带驱动器使用SCSI接口&#xff0c;这意味着几乎所有的磁带驱动器只需要使用mt-st工具即可在Linux系统上进行操作。这些工具在Linux的每一版本中都有&#xff0c;而且使用方便。 Mt-st工具和带磁带驱动器的tar工具&#xff0c;可以提供进行备份的所有必要条件。 如果SC…

清华同方智能高速公路解决方案

一、高速公路智能监控系统 清华同方可为高速公路管理部门从收费站、监控分中心、监控中心直至监控总中心提供多级管理体系的公路监控方案。 收费站图象监控 收费站图像监控与收费系统紧密配合。 * 车道摄像机&#xff0c;监视出入口车辆&#xff0c;抓拍车辆图像、自动识别车牌…

入门级磁带机使用方法

大多数磁带驱动器使用SCSI接口&#xff0c;这意味着几乎所有的磁带驱动器只需要使用mt-st工具即可在Linux系统上进行操作。这些工具在Linux的每一版本中都有&#xff0c;而且使用方便。Mt-st工具和带磁带驱动器的tar工具&#xff0c;可以提供进行备份的所有必要条件。如果SCSI接…

清华同方数字电视系统本部 (北京市)

清华同方数字电视系统本部 (北京市) 工作性质&#xff1a;全职 职位类别&#xff1a;程序员 招聘人数&#xff1a;1人 最低工作经验&#xff1a;无工作经验 薪资待遇&#xff1a;面议 学历要求&#xff1a;其它 诚信招聘等级&#xff1a;本招聘为免费发布&#xff0c;注意求职…

邓铎:书中自有天地人

邓铎&#xff0c;一个优秀的艺术家&#xff0c;他的书法作品、理论文章自成一派&#xff0c;从书法中咀嚼出人生百味&#xff0c;大千世界&#xff0c;写下了他生命中“六十余载&#xff0c;书中天地人”的执着与坚持。 作为一名优秀的书法家&#xff0c;邓铎的艺术表达具有独…