单片机设计与开发项目模拟试题 程序设计部分
基于单片机的电子钟程序设计与调试
一、 基本要求
使用 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)闹钟提示状态下,按下任意按键,关闭闪烁提示功能。
单片机源程序如下:
- /*******************************************************************************
- * 文件名称:基于单片机的电子钟程序设计与调试
- * 作 答 者:杨玉祥
- * 缺 陷:温度的显示不正确,闹钟的提示功能有问题。
- * 日期版本:2018-11-30/V1.0a
- *******************************************************************************/
- #include "head.h"
- #include <reg52.h>
- extern volatile int flag;
- sbit s4 = P3^3;
- sbit s5 = P3^2;
- sbit s6 = P3^1;
- sbit s7 = P3^0;
- void cls_buzz(void);
- void Delay1ms();
- void display();
- void time0();
- void SetTime();
- void Clock();
- void tem(void);
- void main()
- {
- P2 = (P2&0x1f)|0x80;
- P0 = 0xff;
- cls_buzz(); //关闭蜂鸣器
- time0(); //定时器中断
- while(1)
- {
- if(0 == s7)
- Clock();
- else if(0 == s6)
- SetTime();
- else if(0 == s4)
- tem();
-
- }
-
- // if(1 == flag)
- // Clock(); //钟表模式
- // else if(2 == flag)
- // SetTime(); //闹钟模式
- }
复制代码
全部资料51hei下载地址:
电子钟.zip
(50.45 KB, 下载次数: 28)
|