电子技术课程设计基于STC51单片机实现八路抢答器与七路多数表决器功能合成Word文档下载推荐.docx
《电子技术课程设计基于STC51单片机实现八路抢答器与七路多数表决器功能合成Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《电子技术课程设计基于STC51单片机实现八路抢答器与七路多数表决器功能合成Word文档下载推荐.docx(10页珍藏版)》请在冰豆网上搜索。
学会并联开关的联线方法;
练习在万用板上布线;
练习电路的手工焊接技术。
意义:
通过完成这个课程设计可以对我们的学过的几门课程如《数字电子技术》,《模拟电子技术》,《微机接口技术》,《单片机技术》,《C语言》等有一个很好的总结与复习。
因为是以小组的形式完成的这个设计,而且要做出成品,所以对于大家的团队意识的培养有很大的帮助。
二设计要求:
因为我们要在五天之内(这五天中还要参加期末考试)完成定题目,选器件,设计电路,程序编写,焊接电路,完成成品,产品测试,完成报告等一系列工作。
所以我们把在最短的时间内完成成品作为第一个设计要求。
第二个设计要求就是能把两个小组(八路抢答器和七路多数表决器)的成果在一套硬件设备上实现(因为在五天里做出两套硬件设备难度太大)。
第三个设计要求是可以实现便携式应用,就是说要使设备拿出来就可以用,环境里没有电源也可以用,所以我们要给设备加上供电系统。
三题目分析:
我们小组的题目是《基于STC51单片机实现八路抢答器与七路多数表决器功能合成》,我们知道,要找到抢答器的资料和表决器的资料可以,但是多是四路抢答器和三路表决器,要找八路抢答器和七路表决器的资料根本没有,所以我们看到题目首先要明确,我们要有改进。
另外我们还要实现两种功能在一套设备里的合成。
再有要在尽可能短的时间里完成。
我们知道,一个产品要添加新的功能有两种方法,一是在硬件方面改进,二是在软件方面改进。
两种方法中硬件改进无疑从速度和专用性上都是最好的,但是它费钱,也费时费工。
我们时间有限,资金也有限,在这种情况下,改进软件成了我们唯一的选择。
所以我们决定用可编程的集成电路模块来完成产品,首选就是51单片机。
我们选的是STC80C51。
四整体构思:
我们要做八路抢答器,就说明我们首先要有一套输入的设备,我们叫它输入按键,因为是八路,所以至少要八个输入按键。
另外还要做七路多数表决器这八个输入按键可以重复使用(最重要的是节省成本,又省钱有好用,好开心,呵呵),八路与七路差一个开关,为了充分利用资源,我们在第八号开关上利用软件在上电时对八号按键进行检测可以用八号按键巧妙选择打开八路抢答器和七路表决器的功能选择(这个巧妙设计是我们小组感到最满意的一个部分)。
输入设备的问题解决了,就是运算处理设备,我们用的是一个STC80C51单片机的最小系统,它负责接收输入型号,实现功能转换,还有信号输出。
最后就是输出设备,我们用了一个一位数码管作为输出设备,开始的时候我们为了省钱打算不用给数码管加驱动电路的,但是效果不好,直接把单片机和数码管连在一起后因为51单片机的电流驱动能力不够使得数码管的亮度太低,阳光强一点的话根本看不见数码管显示的是什么,最后本组长英明果断的决定提高数码管的待遇,忍痛给它配个驱动电路(又加大了预选,好心疼,可是为了性能的优越性该花的还要花),我们给他配的是74HC573锁存器,这东西又便宜,又简单。
所有问题都解决了,我们还要实现它的便携性,所以要加个电源,单片机的标准电源是5V的,有专用的5V锂电池当然最好,可惜就是太贵,我们用三节五号电池加电池盒解决战斗,省钱又方便,只要三节电池够劲,4.5V的电压也能让整个系统跑起来。
五具体实现:
本小组长把小组分成两个小组,一组主要负责八路抢答器,一组主要负责七路表决器。
具体分工如下:
组长:
逄博(0707010222)
表决器小组:
谢应东(0707010229)
高贞(0707010227)
韩晋吉(0707010230)
唐兴华(0707010224)
抢答器小组:
唐伟(0707010223)
宫磊(0707010220)
陈慧(0707010218)
张洪飞(0707010211)
1先让大家去查资料,让大了解我们想要做什么东西,其他人是怎么做的。
2大家查完资料后,坐在一起讨论我们要怎么做这个东西,把方案定下来。
3去哈工程那的船舶电子大世界三楼,把要用到的器件全买回来。
4把电路焊接好(最简单的描述,最累人的工作)。
5两个小组同时开始软件编写,并且实现两个小组的单独的功能在硬件上可以成功实现。
6把两个小组的成果合成到一起,实现一套设备可以实现两种功能。
7对系统开始测试,硬件焊接有问题就重新焊接,软件运行有问题就改写软件。
8完成报告。
六各部分定性说明及定量计算:
本课程设计的总体框架图:
本课程设计的电路图原理图如下页所示:
本课程设计的程序框架图:
本课程设计的软件程序源代码如下:
#include<
reg51.h>
sbitLE573=P3^0;
#defineucharunsignedchar
#defineuintunsignedint
ucharcodeshuma[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
ucharcodeNO=0xc8;
ucharcodeYES=0x91;
ucharjianpan;
ucharhe;
void_delay_ms(unsignedinta)
{
unsignedintb;
unsignedintc;
for(b=0;
b<
a;
b++)
for(c=0;
c<
112;
c++);
}
voiddisplay(ucharKK)
{
P2=KK;
LE573=1;
_delay_ms
(1);
LE573=0;
voidmain()
while
(1)
{
_delay_ms(100);
P1=0xff;
jianpan=P1;
if((jianpan&
0x80)==0x80)//S8没有按下,进入抢答器状态
{
display(~shuma[0]);
while
(1)
{
P1=0xff;
jianpan=P1;
if(jianpan!
=0xff)
{
_delay_ms(9);
P1=0xff;
jianpan=P1;
if(jianpan!
{
if(jianpan==0xfe)
{
display(~shuma[1]);
while
(1);
}
if(jianpan==0xfd)
display(~shuma[2]);
if(jianpan==0xfb)
display(~shuma[3]);
if(jianpan==0xf7)
display(~shuma[4]);
if(jianpan==0xef)
display(~shuma[5]);
if(jianpan==0xdf)
display(~shuma[6]);
if(jianpan==0xbf)
display(~shuma[7]);
if(jianpan==0x7f)
display(~shuma[8]);
else
display(~shuma[0]);
}
}
}
}
0x80)==0x00)//S8按下,进入表决器状态
display(NO);
he=0;
P1=0xff;
jianpan=P1;
he=((jianpan&
0x40)==0x00)+((jianpan&
0x20)==0x00)
+((jianpan&
0x10)==0x00)+((jianpan&
0x08)==0x0)
0x04)==0x00)+((jianpan&
0x02)==0x0)
0x01)==0x00);
if(he>
=4)
{display(YES);
else
{display(NO);
}
}
七设计心得体会:
通过完成这次课程设计,我有了很大的收获。
这五天的时间,我过得即忙碌又充实,大家在一起为了完成一个目标而努力,一起分析问题,一起研究问题,一起解决问题。
要靠个人的力量在这五天的时间里完成这个东西,定题目,选器件,设计电路,程序编写,焊接电路,完成成品,产品测试,再到写报告是不可能的。
但是九个人在一起分工协作,每个人完成一部分工作,最后在把学习成果共享,这样我们就能在五天的时间里,即完成这个设计,有不耽误期末考试。
这使我充分认识到了老师为什么说要让我们学会团队工作,建立团队意识。
通过完成本课程设计,我还很好的复习了过去的一些课程,比如《数字电子技术》,《模拟电子技术》,《微机接口技术》,《单片机技术》,《C语言》等。
过去有时觉得学这些东西好像用不着,现在发现学校,老师教我们的每一门课程都是有用的,只有先慢慢积少才能渐渐成多。
知识这个东西只要学了,早晚是会用到的。
我们现在要做的就是好好学就OK了。
八成品使用方法
1八路抢答器:
我们的成品有八个输入键盘,每个键盘上都接了两个并联的开关,一个是有自锁功能的(白色),一个是会自动弹起的(黑色)。
首先确认八个键盘上的所有有自锁功能的按键全处于弹起状态。
然后给系统上电(我说的上电包含打开电源和复位两种情况,下同),这时数码管会显示数字0,接下来就可以用每个键盘上的会自动弹起的按键进行抢答了。
裁判宣布开始抢答后,8人尽快按下会自动弹起的按键(黑色),谁先按下,数码管上就会显示谁的号码(1—8)。
抢答完一次,要进行一下复位,就能进行下次抢答了,一个定要记住,作为抢答器时要保证八个键盘上的有自锁功能的按键始终保持抬起状态,而且在上电和复位过程中黑色的按键也不要按下。
2七路多数表决器:
要作为七路多数表决器,首先要把八号键盘上的有自锁功能的白色按键按下(1—7号键盘不要按下),然后再上电或复位就可以当作七路多数表决器使用了。
这时数码管显示字母N,然后用1---7号键盘上的有自锁功能的白色按键进行表决,同意就按下有自锁功能的白色按键,当同意的人数超过3个时,数码管上就会显示字母Y。
注:
需要说明的是,当七路多数表决器时一次上电可以反复使用,而作为八路抢答器时,每抢答完一次都要进行复位。
3成品的照片
八参考文献:
1《数字电子技术基础》主编:
阎石高等教育出版社
2《模拟电子技术基础简明教程》主编:
杨素行高等教育出版社
3STC89C51datasheet
4《单片机原理及应用》李全利清华大学出版社
574HC573datasheet
6《单片机的C语言应用程序设计》马忠梅北京航空航天大学出版社