1、 1 单片机课程设计报告单片机课程设计报告 题目:题目:电子秒表电子秒表 专业:专业: 自动化自动化 班级:班级: 1 1 班班 姓名:姓名: 日期:日期:20132013 年年 3 3 月月 1515 日日 2 一一 设计目的设计目的 1、利用单片机定时器/计数器中断设计秒表,从而实现秒、毫秒、分钟的计时。 2、综合运用所学的单片机原理与应用理论知识,通过实践加强对所学知识的理解,具 备设计单片机应用系统的能力。 3、 通过本次课程设计加深对单片机掌握定时器、 外部中断的设置和编程原理的全面认识复 习和掌握,对单片机实际的应用作进一步的了解。 4、 通过本次试验,增强自己的动手能力。认识单片
2、机在日常生活中的应用的广泛性,实用 性。 二二 设计要求和方案选择设计要求和方案选择 1 设计要求设计要求 使用 STC89C52 单片机作为芯片,1602 液晶显示屏为显示,实现秒表功能。 2 方案选择方案选择 在这次课程设计中,本来计划使用定时中断加外部中断实现秒表功能,但是由于 1602 的显 示需要时间,其中最小的显示时间大于 10ms,所以我们小组决定在这次设计做出来的秒钟的 最小计时的时间是 100ms。 为了是设计出来的秒钟可以用于实际上, 本作品可以实现连续三 次计时。由于 1602 显示时间的影响,没有采用之前定下的定时中断来计时,而是采用延时 函数来延时, 为了更加准时通过
3、单步调试来计算运行时间从而达到准确计时的目的。 对于计 时健的设置, 我们在程序中采用外部中断来实现, 目的是为了在按下按键的时刻立刻记下准 确的时间。 三三 硬件部分硬件部分 1 使用的元器件使用的元器件 电阻,电容,STC89C52RC,1602 液晶显示器, 2 电路图电路图 protues 仿真图 3 PCB图 四四 软件设计软件设计 液晶显示屏的显示函数: 4 主函数: void main() init(); write_com(0x80);/初始化屏幕 for(num=0;num12;num+) write_data(tablenum); delay(5); write_com(0
4、x80+0x40); write_data(0x70); for(num=0;num7;num+) write_data(table2num); delay(5); write_com(0x80+0x48); write_data(table10); 5 for(num=0;num7;num+) write_data(table2num); delay(5); while(1) if(key1=0) while(1) init1(); delay(10); ms+; if(ms=10) ms=0; s+; if(s=60) s=0; feng+; if(feng=60) feng=0; xia
5、nshi(); if(keynum=3|key2=0) break; while(1)if(key2=0)break; if(key2=0) break; 计时健的中断函数: void int0() interrupt 0 EX0=0; keynum+; if(keynum=1) 6 ms1=ms;ges1=ges;shis1=shis;shifeng1=shifeng;gefeng1=gefeng; delay(1); if(keynum=2) ms2=ms;ges2=ges;shis2=shis;shifeng2=shifeng;gefeng2=gefeng; delay(1); EX0=
6、1; 五五 调试及运行结果调试及运行结果 六六 总结总结(感想和心得等)(感想和心得等) 此次单片机课程设计,我们小组选择了课题电子秒表。这是我们这学期 在老师的指导下运用自身所学知识所设计的电子秒表电路, 它经过多次修改和整 启动界面 计时中 7 理,已是一个可以实现较好功能的设计。但因为我个人能力水平有限,此次课程 设计过程中很多设计模块都是我的同伴给我讲解相关的理论知识, 并很有耐心的 帮助我编写实现功能的程序, 我很感谢她对我的帮助。 我们经过多次修改和整理, 最终实现了电子秒表清零、暂停、继续、退出等功能的电子秒表电路。它可以较 好的实现设计要求。 首先我们通过网络和书本知识寻找了许多关于单片机, 熟悉了电子秒表的各 个功能以及输入输出形式,对电子秒表的各