当前位置:首页 > 单片机电子时钟设计报告 - 图文
九、 实习总结
基于单片机的应用广泛,设计的数字钟,构成了一个可编程的计时定时系统,具有体积小,可靠性高,功能强等特点,满足计时的功能,是人民日常生活的时间仪表。
课程设计确实是一门很复杂、很严密的课程,能很好的提高一个人的实践创新能力、思维能力。本次的设计使我从中学到了一些很重要的东西,我通过所学的知识,以及上网和图书馆查资料,同时在查找资料的过程中我学到了许多新的知识,在和同学协作过程中增进同学间的友谊,使我对团队精神的积极性和重要性有了更加充分的理解。学会了应用单片机的知识,理论与实践结合,用单片机设计电子时钟,在资料的帮助下再加上同学间的思想设计了一个简单电子时钟。通过这次的设计,我对单片机有了更深的了解,发现自己还有许多不足,我们应该不断完善自己的知识储备,在未来的工作和学习的道路上走的更加深远!
十、 参考文献
[1]李全利.单片机原理及接口技术.2版.北京:高等教育出版社,2010 [2]欧阳文.ATMEL89系列单片机的原理与开发实践.北京:中国电力出版社,2011.
[3]李学海.标准80C51单片机基础教程—原理篇.北京:北京航空航天大学出版社,2011.
[4]李群芳.单片机微型计算机与接口技术.2版.北京:电子工业出版社,2013. [5]胡学海.单片机原理及应用系统设计.北京:电子工业出版社,2012. [6]李朝青.单片机原理及接口技术.3版.北京:北京航空航天大学出版社,2011.
[7]陈光东.单片机微型计算机原理与接口技术.武汉:华中理工大学出版社,2011.
[8]张毅刚.MCS-51单片机应用设计.哈尔滨:哈尔滨工业大学出版社,2012.
附录
软件代码
#include \#include \#include \
#define u8 unsigned char #define s8 signed char #define u16 unsigned short #define s16 signed short #define u32 unsigned int #define s32 signed int #define fp32 float #define fp64 double void time_init(void); void delay_ms(u16 cnt); void delay_us(u16 cnt); sbit K1 = P1^0; sbit K2 = P1^1; sbit K3 = P1^2; sbit K4 = P1^3; sbit K5 = P1^4;
#define KEY_CHK_TIM 10 u8 __g_key_value; u8 tim_flag;
void init_all_hardware(void); #define DIG_SEG P0 #define DIG_PLA P2 u8 __g_window; u8 __g_winsta;
u8 __g_winsta_temp; u8 __g_set_sta_temp; u8 __g_tim_flg; u8 part;
s8 tim_temp[3] = {0}; u8 code u8DigTab[18] = {
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x00,0x39,0x5e,0x79,0x71, 0x40,0x00 };
//0、1、2、3、4、5、6、7、 //8、9、A、B、C、D、E、F、 //-
u8 idata u8DigShow1;
u8 idata u8DigShow2; u8 idata u8DigShow3; u8 idata u8DigShow4; u8 idata u8DigShow5; u8 idata u8DigShow6; u8 idata u8DigShow7; u8 idata u8DigShow8; u8 u8ParFlg; u8 u8Part; u8 u8ChaFlg;
u8 u8DigShowTemp = 0; #define FLIOPE 150 #define FLICLO 300 u16 sci_count; void DisDri(void); sbit BEEP = P1^5; s16 __g_voicnt; s16 __g_ledcnt; u8 __g_buzz_flag;
u8 __g_buzz_switch_flag; u8 __g_buzz_500ms_buff; u8 shi,fen,miao; u8 part;
void timebcd (u8 m,u8 f,u8 s) {
u8DigShow1=m/10; u8DigShow2=m; u8DigShow3=f/10; u8DigShow4=f; u8DigShow5=s/10; u8DigShow6=s; }
void main(void) {
init_all_hardware(); while(1) {
if ((fen==0)&&(miao==0)) {
tim_flag = 1; }
if(tim_flag == 1) {
if (sci_count == FLIOPE) {
timebcd(shi,fen,miao); }
else if (sci_count > FLICLO) {
sci_count = 0; u8DigShow1 = 17; u8DigShow2 = 17; u8DigShow3 = 17; u8DigShow4 = 17; u8DigShow5 = 17; u8DigShow6 = 17;
} }
else if(tim_flag == 0) {
timebcd(shi,fen,miao); } } }
void init_all_hardware(void) {
delay_ms(100);
time_init();
__g_voicnt = 100; __g_key_value = 0; __g_window = 1;
__g_set_sta_temp = 0; __g_buzz_500ms_buff = 0; __g_buzz_switch_flag = 0;
u8DigShow1 = 15;
共分享92篇相关文档