• 方案介绍
    • 1.  简介
    • 2.  主要功能
    • 3.  源程序(Keil5)
    • 4.  仿真proteus8.6
    • 5.  设计报告
    • 6.  资料清单
  • 附件下载
  • 相关推荐
申请入驻 产业图谱

基于51单片机的电子时钟系统设计(二)

04/11 09:44
397
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

单片机仿真设计合集资料获取.pdf

共1个文件

[相关器件] CSD97370Q5M

开关稳压器/控制器,CSD97370Q5M 30 V 25 A SON 5 x 6 mm synchronous buck NexFET power stage

资料清单:C程序+仿真+设计报告+使用说明+元件清单+操作视频

仿真版本:Proteus8.6及以上版本

程序编译:Keil5 C51

编程语言:C语言

设计编号:【I02】

1.  简介

  本文提出了一种基于51单片机的电子时钟系统。该系统由单片机系统、数码管显示系统、键盘、蜂鸣器等组成,通过单片机自身的定时计数器溢出标志产生最小计时单元,经过变量的累加和判断后,将数据送入数码显示屏显示。通过按键来控制单片机实现数字时钟的时分秒、闹钟等功能,并通过P0口的输出在数码管上显示。

2.  主要功能

a.通过三极管驱动数码管显示时分秒、闹钟,初始状态:00-00-00。

b.通过独立按键设置时分秒、闹钟。

c.通过蜂鸣器显示闹钟状态。

3.  源程序(Keil5)

本设计采用keil5 C51软件(内附安装包)实现程序设计。如需用keil4打开程序,可自行通过.c和.h文件新建工程即可。

#include  "Key.h"
#include  "led.h"

uchar timeSetBuff[8]={'0','0',LED_MODE_COUNT,'0','0',LED_MODE_COUNT,'0','0'};//时钟数据缓冲区 
uchar alarmSetBuff[8]={'0','0',LED_MODE_ALARM,'0','0',LED_MODE_ALARM,'0','0'};//闹钟时间数据缓冲区 
uchar timeDisMod=0x24;                //00100100
uchar secondTemp,minuteTemp,hourTemp;
uchar secondAlarm,minuteAlarm,hourAlarm;
uchar timer0Temp;
uint clock_value;     //用作闹钟用的
uchar alarmKeyCount;                   //闹钟起停键计数 
bit alarm_is_ok;                       //闹钟起停状态 
bit time_is_ok;                        //时间是否到 
bit interface_mod;                     // 显示界面模式,0为主时间界面,1为设置界面 

/********************************************************************************************
* 函数名称:定时器0
* 功    能:定时器0初始化
* 入口参数:无
* 出口参数:无
*********************************************************************************************/	   
void initTimer0(void)	              //定时10ms 
{
   TMOD |= 0x01;                        //GATE=0,TR=1运行;C/T=1,counter,0,timer;01十六进制  
   TH0 = 0xdc;
   TL0 = 0x00;
   TR0 = 1;	                          //timer0 控制位,为1时启动timer0
   ET0 = 1;                             //timer0 中断使能 
}

/********************************************************************************************
* 函数名称:时钟比较
* 功    能:比较时钟和闹钟的时间缓冲区,只比较时和分
* 入口参数:无
* 出口参数:无
*********************************************************************************************/
void timeCompare(void)	    
{
  if((minuteTemp == minuteAlarm) && (hourTemp == hourAlarm) && (secondTemp == secondAlarm))
  {
     time_is_ok = 1;
	 alarm_is_ok = 0;
	 interface_mod = 1;
  }   
}	

/********************************************************************************************
* 函数名称:主函数
* 功    能:调用并执行各个子函数
* 入口参数:无
* 出口参数:无
*********************************************************************************************/
void main()
{
 uchar keyRead;
 init_led();
 init_key();
 initTimer0();
 timer0Temp = 0x00;
 secondTemp = 0x00;
 minuteTemp = 0x00;
 hourTemp = 0x0c;
 secondAlarm = 0x00;
 minuteAlarm = 0x00;
 hourAlarm = 0x00;
 alarmKeyCount = 0x02;
 alarm_is_ok = 0;     //默认状态停止 
 time_is_ok = 0;      //默认时间未到 
 interface_mod = 0;
 sei();

4.  仿真proteus8.6

  本设计采用proteus8.6软件(内附安装包)实现仿真设计,如下图所示。proteus软件一般存在高低版本兼容问题,该仿真是通过proteus8.6导出的,所以请尽量使用proteus8.6打开文件,低于proteus8.6的版本不能够正常使用,高于proteus8.6的版本除了proteus8.8/8.9理论上可以正常使用。

时钟界面:

闹钟设置:

5.  设计报告

设计报告主要包括硬件电路、软件设计、仿真调试等等,仅供参考。

6.  资料清单

设计资料主要包括C程序+仿真+设计报告+使用说明+元件清单+操作视频等。

百度网盘下载链接:【I02】百度网盘下载链接

更多单片机仿真设计合集:单片机仿真设计合集

  • 单片机仿真设计合集资料获取.pdf
    下载
[相关器件] CSD97370Q5M

开关稳压器/控制器,CSD97370Q5M 30 V 25 A SON 5 x 6 mm synchronous buck NexFET power stage

点赞
收藏
评论
分享
加入交流群
举报

相关推荐

方案定制

去合作
方案开发定制化,2000+方案商即时响应!