毕业设计键控秒表详解.docx
《毕业设计键控秒表详解.docx》由会员分享,可在线阅读,更多相关《毕业设计键控秒表详解.docx(12页珍藏版)》请在冰点文库上搜索。
![毕业设计键控秒表详解.docx](https://file1.bingdoc.com/fileroot1/2023-4/30/50c01883-57ea-4d96-9d91-f97794e3ed5f/50c01883-57ea-4d96-9d91-f97794e3ed5f1.gif)
毕业设计键控秒表详解
毕
业
论
文
论文题目键控秒表
学校鄂东职院
专业班级电子1111
姓名闫伦
指导教师姓名、职称祖一康
2013年10月23日
毕业设计指导教师评语
(要求对学生的工作态度、工作能力以及选题意义、研究内容和完成情况等做出评价)
评定成绩:
(百分制)
指导教师签名:
年月日
毕业设计评阅教师评审意见
(要求对学生的工作态度、工作能力以及选题意义、研究内容和完成情况等做出评价)
评定成绩:
(百分制)
评阅教师签名:
年月日
毕业设计答辩记录
答辩小组提出的问题和学生回答内容摘要(不少于3个问题)
答辩小组秘书(签名):
年月日
毕业设计成绩评定表
评定者
分数(百分制)
占百分比
折合分数
备注
指导教师
评阅教师
答辩小组
总评定分数
(百分制)
答辩委员会意见
负责人签字:
年月日
毕业设计工作进展记录
检查时间
检查方式
毕业设计当前进展情况
下次需检查的内容
摘要
二十世纪跨越了三个“电”的时代,即电气时代,电子时代和现已进入的电脑时代。
但是,实际工作中,并不是需要计算机的场合都需要计算机很高的性能。
应用的关键是看能否够用,是否有很好的性能价格比。
单片机又称单片微控制器,它不是完成某一个逻辑工程的芯片,而是把一个计算机系统集成到一个芯片上。
概括的讲:
一个芯片就成了一台计算机。
它的体积小、质量轻、价格便宜,为学习、应用和开发提供了便利条件。
自从1976年问世以来,单片机获得了巨大的发展,纵观我们现在生活的各个领域,从导弹的导航装置,到飞机上的各种仪表的控制,从计算机的网络通讯与数据传输,到工业自动化过程的实时控制和数据处理,这些都离不开单片机。
所以,学习单片机在我国是有着广泛前景的。
关键词:
单片机,快速,高性能
一、课题研究目的
1.通过本次课程设计加深对单片机课程的全面认识复习和掌握,对单片机课程的应用进一步的了解。
2.掌握键控秒表系统的制作,进一步熟悉单片机计数器结构的工作方式,初始值设置和停止等基本应用方法,掌握C语言控制单片机的基本技能。
3.通过此次课程设计能够将单片机软硬件结合起来,对程序进行编辑,校验。
4.该实验通过单片机的键控原理,设计简单的系统,拥有正确的增一、减一、清零、自动加一功能,并同时可以用数码管显示,在现实生活中应用广泛,具有现实意义。
5.通过本次设计,提高自身电路设计能力,并锻炼团队合作精神。
二、实验内容及要求
1、实验内容
利用AT89C52设计一个2位LED数码管显示“秒表”,可显示时间为00~59秒。
并设计一个“增一”按键,一个“减一”按键,一个“清零”按键,一个“自动增一”按键。
按键说明:
按“增一”按键,系统加一计数,数码管显示数字加一;
按“减一”按键,系统减一计数,数码管显示数字减一;
按“清零”按键,系统清零,数码管显示“00”;
按一下“自动加一”按键,系统自动进行加一循环,并在数码管上显示,再按一下“自动加一”按键,系统会暂停自动加一循环,数码管显示的数字将停留在当前显示值上。
2、实验要求
了解AT89c52芯片的的工作原理和工作方式,使用该芯片对LED数码管进行显示控制,实现用单片机的端口控制数码管,显示数字,并能用按键实现秒表增一、减一、清零复位功能。
画出使用单片机控制LED数码管显示的电路图,并编程完成软件部分,最后调试秒表的增一、减一、清零、自动加一。
三、仿真原理图
四、系统程序
#include
#defineucharunsignedchar
#defineuintunsignedint
#defineduanP0
sbitwei_1=P2^7;
sbitwei_2=P2^6;
sbitkey1=P2^0;//加1
sbitkey2=P2^1;//减1
sbitkey3=P2^2;//清0
sbitkey4=P2^3;//按下自动加1,再按停下不变
ucharcodetable[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//共阳
ucharn=0,num=0;
voiddisplay(ucharnum1);
voiddelay(uintxms)
{
uintx,y;
for(x=xms;x>0;x--)
for(y=110;y>0;y--);
}
voidkeyscan()
{
if(key1==0)
{
delay(10);
if(key1==0)
{
num++;
if(num==60)
num=0;
while(!
key1);
}
}
if(key2==0)
{
delay(10);
if(key2==0)
{
if(num==0)
num=60;
num--;
while(!
key2);
}
}
if(key3==0)
{
delay(10);
if(key3==0)
{
num=0;
while(!
key3);
}
}
if(key4==0)
{
delay(10);
if(key4==0)
{
while(!
key4);
TR0=~TR0;
}
}
}
voidmain()
{
ucharshi,ge,num1;
shi=num1/10;
ge=num1%10;
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;//定时中断0
TR0=0;
while
(1)
{
keyscan();
display(num);
}
}
voiddisplay(ucharnum1)
{
ucharshi,ge;
shi=num1/10;
ge=num1%10;
P0=0;
wei_2=1;
duan=table[shi];
delay(8);
wei_2=0;
P0=0;
wei_1=1;
duan=table[ge];
delay(8);
wei_1=0;
}
voidtimer0()interrupt1//定时中断0
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
n++;
if(n==20)
{
n=0;
num++;
if(num==60)
num=0;
}
}
五、材料清单
名称
型号
符号
数量
备注
单片机
AT89C52
1个
无
数码管
5202BS
LED
1个
无
锁存器
74HC573
1个
无
弹性按键
K
5个
无
晶振
12M
1个
无
独石电容
30PF
C
2个
无
电解电容
22uF
C
1个
无
万能板
7*9
PCB
1个
无
电阻
5.6K
R
5个
无
排阻
A103J
RP
1个
无
底座
20PIC
1个
无
单片机锁座
40P
1个
无
电源线
1根
无
六、心得及体会
1.根据课程设计的要求和芯片的功能写出相应的程序。
然后再进行程序调试和相应的修改,达到了本次设计的目的。
2.通过本次设计,我从中感受到了自己优缺点。
优点是我能很好并迅速的将电路布置并组装好,但是对于电路组线设计还有很多不足。
虽然元器件布置比较美观,但是自己感觉不是很满意。
3.在本次设计过程中,我做的准备工作相对于其他同学来说是做得最好的,需要的相关工具我都准备的很齐全,以至于在制作的时候很多同学来我这里借东西,所以我感觉,无论做什么事情,准备工作一定要做好,才能一气呵成,减少走的弯路。
4.在本次设计中,在写程序时,我得到了一些启发。
就是在写程序时候,要尽量做到由各个子程序组成,在有些程序后面最好加注释,这样在程序出错的检查过程中可以更容易查找的到,也更简洁,更明白易懂。
5.本次设计,最大的收获就是让我学会将理论知识与实际相结合,并从中收获到一些书本和课堂上学不到的知识
七、总结
通过这次的设计,我对单片机这门课程有了更深的了解,同时也尝试着去怎么应用自己所掌握的知识,将知识以最好的方式融入到现实中。
在这其中,深感自己在电路线路设计排布这方面还需很大的努力,单片机课程设计不仅给我提供了展现应用自己所掌握的知识平台,又是检验自己所学知识的一次考核。
在设计过程中,难免会遇到一些困难,尤其在调试过程中,会因为某些原因出不来结果,但通过同学的鼓励和老师的帮助,我还是顺利完成了。
从中我明白要把所学到的理论转化为实践需要一段努力学习的过程。
在学习过程中,一定要注意理论和实践同步进行,光有理论知识还是远远不够的,要用时间去检验理论,用理论指导实践。
社会在进步,我们不论在什么地方,什么岗位我门都要以学为主.学以学以置用,才能把我们的工作做的更好。
并要坚持不懈的去努力,不能因为困难而懦弱,要遇强更强,以最大的信心去接受更严峻的挑战。
附录
键控秒表实物图
参考文献
参考单片机应用技术(C语言版)主编:
王静霞
参考祖一康老师的教学课件