三选二选择器.docx
《三选二选择器.docx》由会员分享,可在线阅读,更多相关《三选二选择器.docx(13页珍藏版)》请在冰豆网上搜索。
![三选二选择器.docx](https://file1.bdocx.com/fileroot1/2023-2/21/03608cb2-549e-4f63-b797-fc6e47a3e5af/03608cb2-549e-4f63-b797-fc6e47a3e5af1.gif)
三选二选择器
自动化技术综合实训报告
实训题目:
三选二选择器
院系:
信息工程与自动化学院
专业:
自动化
班级:
姓名:
学号:
指导教师:
实训地点:
开课时间:
摘要:
三个裁判各控制一个按钮,按下表示该裁判认可通过,则对应的指示灯亮;总裁判控制一个复位按钮,按下时,表示下一次表决开始;当满足3选2条件时,PASS灯亮。
三个裁判按键:
K1,K5,K9总裁判按键:
K13
Abstract:
Threerefereeseachcontrolabutton,presssaidthejudgeapprovedthroughtheindicatorlight,thecorresponding;Thechiefcontrolaresetbutton,press,saidthenextvotestart;Whenmeetthreechoosetwoconditions,PASSlight.
Threerefereeskeys:
K1,K5,K9refereebutton:
K13
一.任务介绍
了解三选二选择器的要求,熟悉单片机最小系统的设计,根据实训课题要求拟定相应的硬件配置;熟悉KeilC51、Protel、Proteus等软件的应用;查阅资料熟悉相关芯片硬件及编程原理,进行系统硬件电路图的设计,并用Protel或Proteus软件绘制硬件电路图;用KeilC51编写完成三选二选择器功能的应用程序;用Proteus软件进行程序和硬件电路的仿真调试运行;运行正确后生成PCB制版图购买及准备设计相关材料(如元器件、导线、工具等)进行硬件电路板的焊接、调试运行等。
二.硬件设计
绘制原理图如下:
器件选型:
AT89S51:
AT89S51芯片
AT89S51是一个低功耗,高性能CMOS8位单片机,片内含4kBytesISP(In-systemprogrammable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISPFlash存储单元,AT89S51在众多嵌入式控制应用系统中得到广泛应用。
主要性能特点:
1、4kBytesFlash片内程序存储器;
2、128bytes的随机存取数据存储器(RAM);
3、32个外部双向输入/输出(I/O)口;
4、5个中断优先级、2层中断嵌套中断;
5、6个中断源;
6、2个16位可编程定时器/计数器;
7、2个全双工串行通信口;
8、看门狗(WDT)电路;
9、片内振荡器和时钟电路;
10、与MCS-51兼容;
11、全静态工作:
0Hz-33MHz;
12、三级程序存储器保密锁定;
13、可编程串行通道;
14、低功耗的闲置和掉电模式。
下载程序:
AT89SXX系列单片机实现了ISP下载功能,故而取代了89CXX系列的下载方式,也是因为这样,ATMEL公司已经停止生产89CXX系列的单片机,现在市面上的AT89CXX多是停产前的库存产品。
74LS240:
PCB图:
三.软件设计
流程图:
源程序:
#include
sbitpass1=P1^4;
sbitpass2=P1^5;
sbitpass3=P1^6;
sbitpass=P1^7;
sbitsb1=P1^0;
sbitsb2=P1^1;
sbitsb3=P1^2;
intnum=0,temp;
voiddelay(intz)//延时函数
{
intx,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
voidscankey()
{
sb1=1;
temp=sb1;
while(temp==0)
{
delay(5);
temp=sb1;
while(temp==0)
{
pass1=1;
num++;
while(temp==0)
temp=sb1;
}
}
sb2=1;
temp=sb2;
while(temp==0)
{
delay(5);
temp=sb2;
while(temp==0)
{
pass2=1;
num++;
while(temp==0)
temp=sb2;
}
}
sb3=1;
temp=sb3;
while(temp==0)
{
delay(5);
temp=sb3;
num++;
while(temp==0)
{
pass3=1;
while(temp==0)
temp=sb3;
}
}
}
voidmain()
{
P1=0x00;
while
(1)
{
scankey();
if(num>=2)
{
pass=1;
num=0;
}
}
}
四.仿真实现
按K5之后D2灯亮,PASS灯不亮:
再按K9按钮,之后D3灯也亮,PASS灯也跟着亮:
五.实物实现
六.总结
经过两个星期短暂而又充实的实训,我感受最深的,有以下三点:
第一、实训是对每个人综合能力的检验。
要想做好任何事,除了自己平时要有一定的功底外,我们还需要一定的实践动手能力,操作能力。
第二、此次实训,我深深体会到了积累知识的重要性。
俗话说:
“要想为事业多添一把火,自己就得多添一捆材”。
我对此话深有感触,特别是单片机编程部分,其他的如proteus和keil软件,只要付出了努力是可以在短时间内掌握基本操作的。
第三、纸上得来终觉浅,绝知此事要躬行!
在短暂的实习过程中,让我很深的感觉到自己在实际运用中的专业知识的匮乏,刚开始的一段时间里,对一些工作感到无从下手,茫然不知所措,此后,通过与同学的不断交流,不断地在网上查找资料,才渐渐地明白。
我们做的是三选二选择器,是一个相对简单的题目,遇到的主要难题是单片机的编程和程序的写入。
我的感受是编程是不能速成的,只能熟能生巧。
写入程序时,需要编程器和烧录软件,我从同学那借了编程器,可是他们的烧录软件是STC-ISP,不能用来烧录AT89S51芯片,所以我自己下了一个easypro51软件,然后根据网上查到的资料操作软件。
因为我和我的同学都不太熟悉这个软件,所以在实际操作时,出现了一些问题。
总之,在这次实训中,我们出现了一些问题,也学到了一些东西。
最后,衷心感谢张老师的悉心指导。