当前位置:首页 > 课程设计报告 - 自动打铃系统
电子信息工程专业单片机系统课程设计报告
开始 向缓冲区放数 指向缓冲区首地址 关显示 指向A口查段码,送段码 指向B口送出码 延时1ms 指向指向下一个缓冲单元 显示下一位 六位显示完 返回
显示程序流程图
9
电子信息工程专业单片机系统课程设计报告
4.2主程序设计 void main() {
uchar NowKey;
uchar BeforKey=0xff; uchar KeyCount=0; uchar i=0;
AlarmSingal=0; RayFlag=1; RayFlag2=1;
TMOD=0x10;//设置T1 EA=1; ET1=1; TH1=0x3c; TL1=0xb0; TR1=1; while(1) {
D_Scan(TimeData,0);//动态扫描 //按键控制
if(KeyCount==2) {
KeyCount=0;
NowKey=GetKey(); if(NowKey!=BeforKey) {
switch (NowKey) {
case 1:
TimeSet(); break; case 2:
AlarmSingal=0; break; default:
break; } }
BeforKey=NowKey; }
else KeyCount++; } }
10
电子信息工程专业单片机系统课程设计报告
4.3显示子程序的设计
void D_Scan(uchar *ShowAddress,uchar FlagBit) {
uchar ShowBit; uchar Show;
for(ShowBit=0;ShowBit<5;ShowBit++) {
if(FlagBit!=5) {
switch(ShowBit) {
case 0:Show=BCD_to_Text((*ShowAddress));break; case 1:Show=BCD_to_Text((*ShowAddress)/10);break;
case 2:Show=BCD_to_Text((*(ShowAddress+1)));break; case 3:Show=BCD_to_Text((*(ShowAddress+1))/10);break; case 4:Show=BCD_to_Text((*(ShowAddress+2)));break; } }
P2=0xff;
switch(FlagBit) {
case 0:P0=Show;break; case 1://设分闪动
if(RayFlag2 && (ShowBit==0||ShowBit==1))P0=0x40; else P0=Show; break; case 2://设时闪动
if(RayFlag2 && (ShowBit==2||ShowBit==3))P0=0x40; else P0=Show; break;
case 3://设上下午闪动
if(RayFlag2 && ShowBit==4)P0=0x40; else P0=Show; break; }
P2=GetClockBit(ShowBit); Delay(1); } }
11
电子信息工程专业单片机系统课程设计报告
五、调试及性能分析
5.1调试步骤
进入调试状态后应该在关键的地方设置断点然后按步运行,同时观察参数的变化,通过变化来判断程序运行的过程即可找出程序中混乱的部分,进行改正,这需要对软件熟练的掌握和对语言程序的很好的理解,实验板搭建成功后,我们就进入了程序的设计和调试阶段,开始编写程序时很顺利,但是后来在调试过程中出现了很多的错误,比如定时器准确度的设置,子程序的调用问题,最困难的就是对没步程序执行顺序的分析,由于程序中一些语句的错误理解和执行顺序的判断失误,让我掉进了误区,耽误了很长时间,最后在同学的帮助下终于找到了错误的关键点,更正成功了。看来对程序的调试能力我还需要加强,程序的调试需要耐心,而且需要熟练掌握软件的跟部分功能。
5.2性能分析
自动打铃系统在学校很工厂和日常生活中应用广泛,原理主要是通过单片机的计数器进行计时,同时通过定时器中断扫描定时时间点来判断是否到了打铃时间,到了打铃,同时可以手动灭铃,主要功能即计时和打铃,相当于闹钟,通过计时器DS1302的使用使电路在断电后依然有后备电源进行计数,设计很人性化。还可以通过按键来设置时间,如果想深入设计,也可以通过键盘来设置闹钟时间,使系统更加方便。
六、心得体会
本系统被子广泛用企事业单位,设计比较简单。经过一学期的学习,使我对单片机有了初步的认识,了解了一些软件编程的技巧。 经过这次的课程设计,使我学会了课堂上学不到的知识,颇有一番感受,对于单片机更加的了解了,对各种器件的使用方法更加熟悉,学会了电路的基本设计思路和原理,掌握单片机设计步骤,知道这门课程在工作中的重要性,因为需要大量的资料,所以我和我的合作者到图书馆查阅了大量的资料,也利用了互联网查找大量的资料,经过一番努力,第一周我们完成了电路图的设计,第二周我们领取了所需的元器件,开始了电路的装调,经过几天的努力,终于把电路装好了,但电路调试过程并不是那么的容易,但经过调试我们发现了电路的一些问题,但在老师和同学们的同共努力下都得到解决,最终看到了成果.我感谢老师,课程设计加深了学生对所学课程理论的理解,扩展了教学中的实验内容和要求,积累了实践体验和经验,让我们提前感受到毕业设计的大致过程,进而能顺利进入毕业设计,提高毕业设计质量和学生实际应用能力。
12
共分享92篇相关文档