单片机课程设计报告—带蜂鸣器闹钟的七段数码时间显示表

上传人:龙*** 文档编号:107742246 上传时间:2019-10-20 格式:DOCX 页数:16 大小:1.65MB
返回 下载 相关 举报
单片机课程设计报告—带蜂鸣器闹钟的七段数码时间显示表_第1页
第1页 / 共16页
单片机课程设计报告—带蜂鸣器闹钟的七段数码时间显示表_第2页
第2页 / 共16页
单片机课程设计报告—带蜂鸣器闹钟的七段数码时间显示表_第3页
第3页 / 共16页
单片机课程设计报告—带蜂鸣器闹钟的七段数码时间显示表_第4页
第4页 / 共16页
单片机课程设计报告—带蜂鸣器闹钟的七段数码时间显示表_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《单片机课程设计报告—带蜂鸣器闹钟的七段数码时间显示表》由会员分享,可在线阅读,更多相关《单片机课程设计报告—带蜂鸣器闹钟的七段数码时间显示表(16页珍藏版)》请在金锄头文库上搜索。

1、单片机课程设计报告带蜂鸣器闹钟的七段数码时间显示表专业:通信工程指导老师:陈麟小组成员:任浩然 季平王慧丽 马元索引一前言.3二设计功能.3三电路原理图的组成部分.3四设计过程(附图片).4五程序代码.6六问题及解决15七设计分工16八总结与感想16前言:这个学期我们学习了单片机原理及接口技术这门课,由于这门课对实践操作能力有更高的要求,所以陈老师在开课的时候就告诉我们考察的方式将以小组完成设计来呈现。这次小组设计的过程,不仅仅是对我们所学习单片机的知识的检验,教会我们如何从理论到实践,更培养了我们如何计划一件事情,如何合作完成一件事情的能力。在整个设计过程中,大家分工设计,相互探讨,相互监督

2、,学会了互相合作,互相宽容,学会了互相理解,在经历了几个晚上的努力,我们终于完成了我们最后的设计。设计功能:一个带有蜂鸣器闹钟的七段数码时间显示表电路原理图的组成部分:(从左往右,从上往下)USB:供电1117-3.3:变压器(把5V电压转化为3.3V)LED灯:检测是否通电(没有用)(两个)蜂鸣器:闹钟提醒(一个)Header10X2:程序输入端口NRST:电路板复位(恢复出厂设置)LED灯:装饰(闹钟响的时候亮)(四个)开关:S1:切换闹钟,时间,星期 S2:设置时切换前两位和后两位 S3;改变数值 S4:关屏&显屏PCF8563:时钟芯片STM32F103:单片机七段数码管(四位)程序实

3、现软件:Keil: 编写程序Alitum: 电路板的实现设计过程:电路原理图电路板软件图正面完成后的实体电路板正面电路板软件图背面完成后的实体电路板背面焊好CPU后的板程序实现(部分主程序)#includestm32f10x.h#includePCF8563.h#includeBasic_configuration.h#includeDigital_tube.h#define time 1#define alarm 2void normal_show(void);void min_flicker(int time_alarm);void hur_flicker(int time_alarm);

4、void time_menu(void);void alarm_show(void);void alarm_open(void);void alarm_menu(void);static u32 RTC_VAR_Hour=12,RTC_VAR_Minute=0;/实时时钟小时和分钟静态变量static u32 Alarm_VAR_Hour=12,Alarm_VAR_Minute=1;/闹铃小时和分钟静态变量int function_var=1;/按键功能变量 1代表function 2代表minute_hour_select 3代表screen_off 4代表alarmu8 bit_sel=0

5、,temporary_min,temporary_hou,menu=1,temporary_min_1,temporary_hou_1;static u16 RTC_VAR_SEC=0;int flag=0,flag_1=0,distance_hou=0,distance_min=0,alarm_flag=0;int main()gpio_configuration();RTC_configuration();GPIO_SetBits(GPIOB,GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15);NVIC_EnableIRQ(EXTI9_5_IR

6、Qn);NVIC_EnableIRQ(EXTI15_10_IRQn);/EXTI_GenerateSWInterrupt(EXTI_Line8);while (1)time_menu();void RTC_IRQHandler()RTC_VAR_SEC+;if(RTC_VAR_SEC59)RTC_VAR_Minute+;if(RTC_VAR_Minute=Alarm_VAR_Minute)&(RTC_VAR_Hour=Alarm_VAR_Hour)alarm_flag=1;if(RTC_VAR_Minute59)RTC_VAR_Hour+;if(RTC_VAR_Hour23)RTC_VAR_H

7、our=0;RTC_VAR_Minute=0;RTC_VAR_SEC=0;RTC_ClearFlag(RTC_FLAG_SEC);void normal_show(void)u16 i=0;for(i=550;i0;i-)DT_bitclose();DT_segdisplay(RTC_VAR_Hour/10);DT_bitdisplay(1);systick_delay_ms(1);DT_bitclose();DT_segdisplay(RTC_VAR_Hour%10);DT_bitdisplay(2);systick_delay_ms(1);DT_bitclose();DT_segdispl

8、ay(RTC_VAR_Minute/10);DT_bitdisplay(3);systick_delay_ms(1);DT_bitclose();DT_segdisplay(RTC_VAR_Minute%10);DT_bitdisplay(4);systick_delay_ms(1);for(i=550;i0;i-)DT_bitclose();DT_segdisplay(RTC_VAR_Hour/10);DT_bitdisplay(1);systick_delay_ms(1);DT_bitclose();DT_segdisplay(RTC_VAR_Hour%10);dot_show();DT_

9、bitdisplay(2);systick_delay_ms(1);DT_bitclose();DT_segdisplay(RTC_VAR_Minute/10);dot_close();DT_bitdisplay(3);systick_delay_ms(1);DT_bitclose();DT_segdisplay(RTC_VAR_Minute%10);DT_bitdisplay(4);systick_delay_ms(1);void min_flicker(int time_alarm)u16 i=0,var_hou,var_min;if(time_alarm=time)var_hou=tem

10、porary_hou;var_min=temporary_min;else var_hou=temporary_hou_1;var_min=temporary_min_1;for(i=100;i0;i-)DT_bitclose();DT_segdisplay(var_hou/10);DT_bitdisplay(1);systick_delay_ms(1);DT_bitclose();DT_segdisplay(var_hou%10);DT_bitdisplay(2);systick_delay_ms(1);/ DT_bitclose();/ DT_segdisplay(temporary_mi

11、n/10);/ DT_bitdisplay(3);/ systick_delay_ms(1);/ DT_bitclose();/ DT_segdisplay(temporary_min%10);/ DT_bitdisplay(4);/ systick_delay_ms(1);for(i=100;i0;i-)DT_bitclose();DT_segdisplay(var_hou/10);DT_bitdisplay(1);systick_delay_ms(1);DT_bitclose();DT_segdisplay(var_hou%10);dot_show();DT_bitdisplay(2);s

12、ystick_delay_ms(1);DT_bitclose();DT_segdisplay(var_min/10);dot_close();DT_bitdisplay(3);systick_delay_ms(1);DT_bitclose();DT_segdisplay(var_min%10);DT_bitdisplay(4);systick_delay_ms(1);void hur_flicker(int time_alarm)u16 i=0,var_hou,var_min;if(time_alarm=time)var_hou=temporary_hou;var_min=temporary_

13、min;else var_hou=temporary_hou_1;var_min=temporary_min_1;for(i=100;i0;i-)/ DT_bitclose();/ DT_segdisplay(temporary_hou/10);/ DT_bitdisplay(1);/ systick_delay_ms(1);/ DT_bitclose();/ DT_segdisplay(temporary_hou%10);/ DT_bitdisplay(2);/ systick_delay_ms(1);DT_bitclose();DT_segdisplay(var_min/10);DT_bitdisplay(3);systick_delay_ms(1);DT_b

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 学术论文 > 大学论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号