文档副本单片机七人表决器Word格式文档下载.docx
- 文档编号:18520497
- 上传时间:2022-12-18
- 格式:DOCX
- 页数:12
- 大小:523.17KB
文档副本单片机七人表决器Word格式文档下载.docx
《文档副本单片机七人表决器Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《文档副本单片机七人表决器Word格式文档下载.docx(12页珍藏版)》请在冰豆网上搜索。
只有在计算机出现后,人们才见到了希望的曙光。
如今借助计算机逐渐实现了人类的梦想。
但是,计算机出现后的相当长的时间里,计算机作为科学武器,在科学的神圣殿堂里默默地工作,而工业现场的测控领域并没有得到真正的应用。
只有在单片机(Microcontroller)出现后,计算机才真正地从科学的神圣殿堂走入寻常百姓家,成为广大工程技术人员现代化技术革新,技术革命的有利武器。
目前,单片机在民用和工业测控领域得到最广泛的应用。
彩电,冰箱,空调,录像机,VCD,遥控器,游戏机,电饭煲等无处不见单片机的影子,单片机早已深深地溶入我们每个人的生活之中。
而且本题在单片机的教学中,这也是一个很好的案例。
常规的电子表决器,如应用数字逻辑电子元件设计的固定功能的表决器,虽然也能实现基本功能,但是要是想实现稍微复杂一点的功能,往往设计工作量会大大提高,而且系统功能固定,不可以随意定制,如果要修改器功能则要对整个系统进行重新设计,难以满足对功能要求越来越高的各行业客户需求。
本设计以AT89C52单片机为核心,以switch开关做为输入实现表决器的控制,完成了基本设计要求。
在设计中,采用了按键扫描的方法来实现表决器的实时输。
按键扫描就是把按键控制代码直接嵌入到单片机程序执行的循环中,这样做可以实时的响应按键的操作,具有很好的实时性。
表决器的输出结果由LED灯的点亮与熄灭来指示出来,设计中设有一个黄色LED灯和一个绿色LED灯,黄灯点亮表示结果不通过,绿色点亮表示结果通过。
设计中还设有一个LED7段数码管来统计表决状况即投赞成票的人的个数,表决状况可以由开关来控制其是否显示统计结果。
2设计目的与任务
2.1设计目的
毕业设计在培养大学生探求真理、强化社会意识、进行科学研究基本训练、提高综合实践能力与素质等方面,具有不可替代的作用,是教育与生产劳动和社会实践相结合的重要体现,是培养大学生的创新能力、实践能力和创业精神的重要实践环节。
1.巩固和提高学过的基础理论和专业知识;
2.提高运用所学专业知识进行独立思考和综合分析以解决实际生活中的问题的能力;
3.掌握正确的思维方法和利用软件和硬件解决实际问题的基本技能;
4.通过参与实际开发工作过程,了解本行业工作的特点,为以后工作打下扎实专业素质基础。
2.2设计任务要求
本题要求设计一个基于单片机的七人表决器:
1.实现功能:
A:
用七个开关作为表决器的七个输入变量,输入变量为逻辑“1”时表示表决者“赞同”;
输入变量为“0”时,表示表决者“不赞同”。
B:
当表决器的七个输入变量有四个以上(含四个)为“1”时,则表决器输出为“1”,既表决“通过”;
否则表决器输出为“0”。
C:
可用绿、黄灯分别表示“通过”和“未通过”。
专门设置一个表决命令开关,当表决命令开关为逻辑“1”时,表决器输出最后结果,当表决命令开关为逻辑“0”时,表决器无输出,这时绿、黄灯均暗。
2.收集资料并进行整理,了解相关领域的研究现状;
3.根据任务的要求制定出合理可行的工作计划;
4.完成七人表决器的方法和器件很多,制定适当的技术方案,并且通过
与其他方案比较加以论证;
5.独立完成系统或模块的设计,软件硬件的设计符合规范;
6.做出设计说明书;
7.根据拟定的计划来设计毕业论文。
3方案
3.1方案
3.1.1方案一
使用VHDL语言设计出七人表决器的数字逻辑电路:
VHDL语言是一种用于电路设计的高级语言。
VHDL翻译成中文就是超高速集成电路硬件描述语言,主要是应用在数字电路的设计中。
目前,它在中国的应用多数是用在FPGA/CPLD/EPLD的设计中。
VHDL主要用于描述数字系统的结构,行为,功能和接口。
除了含有许多具有硬件特征的语句外,VHDL的语言形式、描述风格以及语法是十分类似于一般的计算机高级语言。
VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可视部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。
在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。
这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。
设计思路:
1.使用Altera的CycloneII器件,FPGA型号为EP2C35F672C6N;
开发平台为QuartusII8.0
2.使用6个拨动开关用以进行表决,开关闭合时表示同意,断开时表示不同意;
3.使用6个LED用以显示表决的个人结果,用以显示记名时的情况。
LED亮起表示表决人同意,否则表示不同意;
4.使用一个七段数码管用以显示表决结果,通过显示P,否则显示E;
另外使用两个数码管用以分别显示同意与不同意的人数;
5.使用两个拨动开关控制是否记名,是否显示表决的人数结果;
6.其他电路按需要搭建。
VHDL方案设计框图如图3-1:
图3-1
3.1.2方案二
以AT89C52单片机为核心,加上适当外围电路,构成七人表决器系统:
1.以AT89C52单片机为核心,以switch开关做为输入达到表决器的控制,完成了基本设计要求。
2.在设计中,采用了按键扫描的方法来实现表决器的实时输。
3.表决器的输出结果由LED灯的点亮与熄灭来指示出来,设计中设有一个红色LED灯和一个绿色LED灯,红灯点亮表示结果不通过,绿色点亮表示结果通过。
4.设计中还设有一个LED7段数码管来统计表决状况即投赞成票的人的个数,表决状况可以由开关来控制其是否显示统计结果。
单片机方案设计框图如图3-2:
:
图3-2
3.2方案论证
方案一采用VHDL语言来设计电路,做出来的表决器,虽然功耗低,实时性较好,但是结构相对复杂,且功能固定,虽然能实现基本功能,但是要是想增加稍微复杂一点的功能,往往设计工作量会大大提高,而且系统功能固定,不可以随意定制,如果要修改器功能则要对整个系统进行重新设计,难以满足对功能要求越来越高、不断变化的各行业客户的需求。
方案二以AT89C52单片机为核心,以switch开关做为输入实现表决器的控制,完成了基本设计要求。
此方案采用按键扫描的方法来实现表决器的实时输。
整个系统比较简单并且具有启动功耗小、运行稳定的特点,还有很重要的一点是,使用单片机可以使灵活的控制系统的功能,只需要对系统做一些简单的修改就可以增加或者去掉系统的一些功能。
综上所述:
本设计将采用方案二,用单片机实现表决器。
4设计具体
4.1硬件设计
4.1.1原件
七人表决器需要用到的原件有:
原件
数量
用途
AT89C52单片机
1
主控芯片
绿色LED灯
8
显示表决赞成
黄色LED等
表决不通过
7段数码管
显示赞成人数
300欧电阻
限流电阻
7x1k排阻
上拉电阻
晶体振荡器
为单片机提供时钟
30PF电容
时钟电路
开关
10
各种按键
导线
若干
连接器件
4.1.2电路
电路设计使用proteus设计实现,简化设计工作,同时还可以仿真,使开发和调试工作更简单方便,电路图如图4-1。
图4-1
4.2软件设计
4.2.1概要设计
单片机程序设计中,通过定义个管脚参数来实现输入输出的控制。
在程序中设置循环和统计参数count初值为0,扫描按键状态,若按键按下则count自加1,否则不加。
扫描完所有按键后,判断统计值count大小,若大于等于4,则将结果置为通过,否则置为不通过。
1.P1^0-P1^6表决赞成确认LED灯;
2.P3^0-P3^6表决赞成输入;
3.P1^7表决结果;
4.P3^7表决结果显示允许;
5.P0^0-P^6赞成人数显示;
6.P2^0赞成人数显示允许
7.P2^6结果显示开关;
8.P2^7赞成人数显示开关。
4.2.2详细设计
一.主程序使用keil用单片机C语言编写
1.KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。
在开发大型软件时更能体现高级语言的优势。
2.与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。
用过汇编语言后再使用C来开发,体会更加深刻。
KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。
3.本题程序通过while实现主程序的循环。
4.在主程序循环中,通过不断扫描按键来实现按键的实时监控,在按键值发生变化时可以及时作出响应。
5.设置统计参数count初值为0,扫描按键状态,若按键按下则count自加1,否则不加。
6.扫描完所有按键后,判断统计值count大小,若大于等于4,则将结果端口LED灯点亮,否则熄灭。
7.根据count值,在7段数码管上输出赞成人数。
二.部分程序
#include<
REGX52.H>
sbitK1=P3^0;
sbitK2=P3^1;
sbitK3=P3^2;
sbitK4=P3^3;
sbitK5=P3^4;
sbitK6=P3^5;
sbitK7=P3^6;
sbitRP=P3^7;
sbitL1=P1^0;
sbitL2=P1^1;
sbitL3=P1^2;
sbitL4=P1^3;
sbitL5=P1^4;
sbitL6=P1^5;
sbitL7=P1^6;
sbitL8=P1^7;
sbitCP=P2^0;
sbitKC=P2^7;
sbitKR=P2^6;
intcount=0;
unsignedcharcodet[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x01};
voidmain(void)
{
while
(1){
count=0;
if(K1!
=1){L1=0;
count++;
}
elseL1=1;
if(K2!
=1){L2=0;
elseL2=1;
if(K3!
=1){L3=0;
}
elseL3=1;
if(K4!
=1){L4=0;
else_L4=1;
if(K5!
=1){L5=0;
}else_L5=1;
if(K6!
=1){L6=0;
else_L6=1;
if(K7!
=1){L7=0;
}else_L7=1;
if(KC!
=1)CP=0;
elseCP=1;
if(KR!
=1)RP=1;
elseRP=0;
if(count>
=4)L8=0;
elseL8=1;
switch(count){
case0:
P0=t[0];
break;
case1:
P0=t[1];
case2:
P0=t[2];
case3:
P0=t[3];
case4:
P0=t[4];
case5:
P0=t[5];
case6:
P0=t[6];
case7:
P0=t[7];
default:
P0=0x00;
5说明
1.表决器设有七个表决开关,表决开关按下去(闭合)表示赞成,开关打开表示不赞成。
在每一个开关旁边都设有一个LED灯来确认表决,灯亮表示赞成已经确认,灯不亮表示不赞成。
2.另外两个开关分别为表决结果显示开关和表决统计显示开关。
按下时为显示,不按下为不显示。
3.表决结果由两个LED灯来显示,黄灯亮表示表决未通过,绿灯亮表示表决未通过。
4.表决统计由一个7段数码管显示出来,由统计人数开关控制。
5.开始表决时,主持人打开表决器,然后表决人开始表决,表决完毕后,由主持人控制显示表决结果和表决结果统计。
见下图:
6总结
在本项目硬件部分,我们采用了AT89C52高性能CMOS8位微处理器作为主控芯片,使电路具有较高的运行效率。
显示部分采用LED和八段数码管,显示一目了然且程序编写简单。
软件部分,使用keil编写C语言程序,令程序编写也成为了一个简单的过程。
同时keil与proteus的联合仿真也为整个项目的开发带来了方便与无穷的乐趣。
在本次设计中,我们所学过的理论知识接受了实践的检验,增强我的综合运用所学知识的能力及动手能力,为以后的学习和工作打下了良好的基础。
致谢
通过这次课程设计,我受益匪浅。
首先,衷心感谢我的指导老师李老师。
本课题的大量研究工作都是在李老师的精心指导下完成的,在我们整个研究学业过程中,包括这个课题的完成,都受到李老师大量的帮助.从设计的选题,研制计划的安排到设计的具体的内容,李老师都给予了悉心的指导.至此课题完成之际,谨向李老师致以最崇高的谢意!
再一次向他表示衷心的感谢,感谢他为学生营造的浓郁学术氛围,以及学习,生活上的无私帮助!
其次,感谢学院的大力支持。
学院为我们提供了良好的实验设备,使我们有了足够的时间和机会做实验,了解了单片机在实际生活和生产中的应用,进一步学习了单片机在应用中的工作原理,更增加了我们对单片机深层次学习的浓厚兴趣,所以,在以后的学习中我一定会认真学好它们。
再次,这次课程设计是我们全身心的投入,从中确确实实学到了不少东西,使我们受益匪浅。
这次课程设计中有许多不足之处,设计的还不够完整,以后我们会吸取这些经验,同时把这些经验转换为知识应用到以后的此类设计中。
最后,衷心感谢在课程设计期间对我们无私帮助的老师,以及所有帮助过我们的同学,愿学院的教育事业蒸蒸日上,愿所有的老师身体健康,工作顺利,愿我们所有的同学都能在不久的日子里找到一份称心满意的工作!
参考文献
[1]张红军,王虹.VisualBasic6.0中文版高级应用与开发指南.北京:
人民邮电出版社,2001:
12-63.
[2]……
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 文档 副本单片机七人表决器 副本 单片机 七人 表决器