找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2314|回复: 1
打印 上一主题 下一主题
收起左侧

蓝桥杯电子钟程序设计

[复制链接]
跳转到指定楼层
楼主
单片机设计与开发项目模拟试题  程序设计部分
基于单片机的电子钟程序设计与调试
一、 基本要求
使用 CT107D 单片机竞赛板,完成“电子钟”功能的程序设计与调试。
二、 硬件框图
三、 功能描述
3.1 初始化
1)关闭蜂鸣器、继电器等无关外设;
2)设备初始化时钟为 23 时 59 分 50 秒,闹钟提醒时间 0 时 0 分 0 秒。
3.2 显示功能
1) 时间显示格式
1 2 - 0 0 - 0 2
12 时 间隔 0 分 间隔 2 秒
2) 温度显示格式
8 8 8 8 8 2 1 C
熄灭 温度
2 / 2
3.3 按键功能
1)按键 S7 定义为“时钟设置”按键,通过该按键可切换选择待调整的
时、分、秒,当前选择的显示单元以 1 秒为间隔亮灭,时、分、秒
的调整需注意数据边界属性。
2)按键 S6 定义为“闹钟设置”按键,通过该按键可进入闹钟时间设置
功能,数码管显示当前设定的闹钟时间。
3)按键 S5 定义为“加”按键,在“时钟设置”或“闹钟设置”状态下,
每次按下该按键当前选择的单元(时、分或秒)增加 1 个单位。
4)按键 S4 定义为“减”按键,在“时钟设置”或“闹钟设置”状态下,
每次按下该按键当前选择的单元(时、分或秒)减少 1 个单位。
5)按键功能说明:
按键 S4、S5 的“加”、“减”功能只在“时钟设置”或“闹钟设置”
状态下有效;
在 “时钟显示”状态下,按下 S4 按键,显示温度数据,松开按键,
返回“时钟显示”界面。
3.4 闹钟提示功能
1)指示灯 L1 以 0.2 秒为间隔闪烁,持续 5 秒钟;
2)闹钟提示状态下,按下任意按键,关闭闪烁提示功能。

单片机源程序如下:
  1. /*******************************************************************************  
  2. * 文件名称:基于单片机的电子钟程序设计与调试
  3. * 作 答 者:杨玉祥
  4. * 缺    陷:温度的显示不正确,闹钟的提示功能有问题。
  5. * 日期版本:2018-11-30/V1.0a
  6. *******************************************************************************/


  7. #include "head.h"
  8. #include <reg52.h>

  9. extern volatile int flag;
  10. sbit s4 = P3^3;
  11. sbit s5 = P3^2;
  12. sbit s6 = P3^1;
  13. sbit s7 = P3^0;

  14. void cls_buzz(void);
  15. void Delay1ms();
  16. void display();
  17. void time0();
  18. void SetTime();
  19. void Clock();
  20. void tem(void);

  21. void main()
  22. {         
  23.         P2 = (P2&0x1f)|0x80;
  24.         P0 = 0xff;
  25.         cls_buzz();                //关闭蜂鸣器
  26.         time0();                 //定时器中断

  27.         while(1)
  28.         {
  29.                 if(0 == s7)
  30.                         Clock();
  31.                 else if(0 == s6)
  32.                         SetTime();
  33.                 else if(0 == s4)
  34.                         tem();
  35.                                 
  36.         }
  37.         

  38. //        if(1 == flag)
  39. //                Clock();                   //钟表模式
  40. //        else if(2 == flag)
  41. //                SetTime();         //闹钟模式
  42. }
复制代码

全部资料51hei下载地址:
电子钟.zip (50.45 KB, 下载次数: 28)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:734566 发表于 2020-4-24 23:36 | 只看该作者
有问题还放在上面?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表