课程设计报告投票器设计说明书书
- 格式:doc
- 大小:303.00 KB
- 文档页数:25
单片机课程设计说明书课题:班级投票显示器专业:测控技术与仪器班级:机122-1:许铎学号:201256502116指导老师:王东兴组员:贺茂森、段亚东、王向东烟台大学机电汽车工程学院目录第一章设计任务和内容 (3)1.1 设计任务 (3)1.2 设计要求 (3)1.3 设计内容 (3)第二章电路设计 (4)2.1 总体设计 (4)2.2 详细设计 (5)2.2.1 单片机引脚功能 (5)2.2.3时钟电路 (6)2.2.4复位电路 (7)2.2.5 数码管显示电路 (8)第三章程序设计与仿真 (10)3.1 投票显示系统总体功能实现 (10)2.2 系统流程图 (11)3.3 程序编写 (13)3.4 仿真与调试 (15)第四章总结和未来改良设想 (21)第一章设计任务和内容1.1 设计任务分组按照选定题目的设计任务,设计各种单片机应用系统,设计工作量至少要包含:〔1〕用MCS-51单片机,12MHz时钟,常规的上电和手动复位电路;〔2〕 3个以上的按键;〔3〕 LED或/和数码管或/和LCD显示及其接口;〔4〕至少2路输入信号,可以是模拟量或数字量。
1.2 设计要求〔1〕设计一个投票系统,具有计票显示功能;〔2〕可实现6人同时进行投票,累计票数在显示器上显示;〔3〕主持人使用一个按键开关控制开始投票,终止投票和清零;〔4〕投票开始后每人能且仅能投一次票,多投无效;1.3 设计内容〔1〕编写项目功能说明书,确定应用系统的功能和具体参数;〔2〕设计电路原理图;〔3〕编写C语言源程序,程序中加注必要的注解说明;(4)实物制作与调试;〔5〕编写设计说明书。
第二章电路设计2.1 总体设计整个设计以AT89C51单片机为核心,点触开关控制信号通过单片机I/O 口,单片机处理信号并将结果通过LED 数码管显示,最终按键复位单片机。
总体设计如下列图。
2.2 详细设计2.2.1 单片机引脚功能·P0口 8位、漏极开路的双向I/O口。
投票器设计说明书单片机课程设计说明书课题:班级投票显示器班级:机电101-4班姓名:刘洋指导老师:姜凤国同组成员:王仁、刘胜、赵强波、林巍烟台大学机电汽车工程学院目录前言 (3)第一章绪论 (4)1.1 概述 (4)1.2 设计目的 (4)1.3 设计任务和内容 (4)第二章总体设计及核心器件简介 (6)2.1 总体设计 (6)2.2 MCS-51单片机 (6)2.3 LED数码显示器 (10)2.4 发光二级管 (13)第三章投票显示系统电路设计与仿真 (14)3.1 投票显示系统总体功能实现 (14)3.2 系统流程图 (15)3.3 程序编写 (17)3.4 仿真与调试 (19)前言单片机技术是现代电子工程领域一门迅速发展的技术,它的应用已渗透到各种嵌入式系统中。
毫不夸张地说:掌握单片机技术信息类学生就业的一个重要条件。
同时单片机技术又是一门实践性很强的学科。
课程设计教学环节的设计和实施,在很大程度上决定了我们对单片机的掌握程度。
为了更好的完成课程设计这一重要教学环节,我们采用Proteus软件与Keil软件整合构建单片机虚拟实验平台。
首先在PC上利用Proteus软件自己搭建硬件电路,并利用系统提供的功能完成电路分析,系统调试和输出现实的硬件设计部分,同时在Keil软件中编制程序,进行相应的编译和仿真,完成系统的软件设计部分。
当系统的设计工作完成后,就可以在PC上看到最终的运行效果。
最后在通过Proteus设计PCB,在完成真正硬件的调试。
采用以上方案具有以下优势:有利于促进课程和教育改革,更有利于人才的培养;从经济性、可移植性、可推广性角度讲,建立这样的课程设计平台是非常有意义的,利用仿真系统,可以节约开发时间和开发成本,利用仿真系统具有很大的灵活性和可扩展性。
第一章绪论1.1 概述目前投票显示系统电路的应用可以说非常广泛,班级投票,公司竞选,文娱节目等许多不记名投票活动都经常会用到各式各样的投票器,虽然这些投票器外观和样式都有所不同,功能可能也有多有少,但他们的原理都大同小异。
沈阳工程学院微机原理及应用课程设计课程设计题目:模拟投票系统设计系别班级学生姓名学号指导教师职称起止日期:年月日起——至年月日止沈阳工程学院微机原理及应用课程设计任务书课程设计题目:模拟投票系统设计系别班级学生姓名学号指导教师职称课程设计进行地点:微机原理实验室(F106) 任务下达时间:年月日起止日期:年月日起——至年月日止教研室主任年月日批准一、设计目的通过课程设计使学生更进一步掌握微机原理及应用课程的有关知识,提高应用微机解决问题的能力,加深对微机应用的理解。
通过查阅资料,结合所学知识进行软、硬件的设计,使学生初步掌握应用微机解决问题的步骤及方法。
为以后学生结合专业从事微机应用设计奠定基础。
二、设计的原始资料及依据查阅可编程并行芯片8255、LED发光二级管等其他相关资料。
用简单的输入输出端口等硬件,结合实际投票过程进行模拟设计。
三、设计的主要内容及要求内容:利用微机原理实验箱,采用LED显示器显示得票数。
要求:(1)向上拨动开关表示“支持”,向下拨动开关表示“反对”(2)统计的票数显示在LED显示器上,不读票时LED数码管呈现霓虹灯状态。
四、对设计说明书撰写内容、格式、字数的要求1.课程设计说明书(论文)是体现和总结课程设计成果的载体,一般不应少于3000字。
2.学生应撰写的内容为:目录、正文、参考文献等。
课程设计说明书(论文)的结构及各部分内容要求可参照《沈阳工程学院毕业设计(论文)撰写规范》执行。
应做到文理通顺,内容正确完整,书写工整,装订整齐。
3.说明书(论文)手写或打印均可。
手写要用学校统一的课程设计用纸,用黑或蓝黑墨水工整书写;打印时按《沈阳工程学院毕业设计(论文)撰写规范》的要求进行打印。
4. 课程设计说明书(论文)装订顺序为:封面、任务书、成绩评定表、目录、正文、参考文献。
五、设计完成后应提交成果的种类、数量、质量等方面的要求;提交课程设计说明书一份。
在说明书中要有设计原理、硬件电路接线图、设计的程序及必要注释等。
一、课程设计的内容编程建立一个小型电子投票系统二、课程设计的要求与数据1.开发环境:Wintc2.需求分析:电子投票平台作为一个用来进行投票统计的应用软件1)编程建立一个小型电子投票系统,其中包含电子投票、票数统计功能,。
尽量做到提供一个简单的人机界面,系统界面友好,使用方便。
2)软件的使用者分为两类,一类为管理员,可以对候选人信息进行初始化和修改,还可浏览候选人信息介绍,可对候选人的票数进行排序以及对系统的用户进行管理,创建使用者用户名和密码,还可以对用户信息进行增加、删除、修改和查询操作等。
另一类为使用者—普通投票者,该类用户需要用管理员分配的用户名和密码正确登录系统,可以查询候选人介绍、投票等。
投票是只需做到输入自己想要投票的候选人编号即可完成投票。
3.功能需求描述电子投票系统是用来进行投票统计的系统软件,进入投票系统后应该需要先进行身份验证。
如果是投票人,就可以用浏览和查询的方式了解各个候选人的介绍信息,根据候选人的介绍信息决定将选票投向哪位候选人。
① 投票人的投票方式:输入要选举的候选人的编号,即可完成投票;②投票人了解候选人的方式:浏览候选人列表,输入序号查询候选人介绍。
如果是管理人员就可以进以下操作:①初始化候选人信息:在系统投入使用前需要先将需要投票选举的候选人信息录入系统中,以便投票和查看。
管理员的初始化工作就是将候选人的序号、姓名和简介录入系统。
②浏览候选人简介:为随时掌握候选人的信息,进行修改,管理员可以浏览候选人简介。
③修改候选人简介:当候选人信息有所变化时,输入候选人序号,对信息进行修改。
④查询投票情况:管理员有权查询当前各个候选人得票情况.⑤清除投票信息:当投票结束后,管理员可清除系统中所有候选人的票数,使之归零。
⑥安全管理:管理员可以对投票人信息进行管理,投票人只有用管理员规定的用户名和密码才能进入系统进行投票。
管理员还可以更改用户名、密码和权限,并对投票人信息进行增加、删除、查询、排序和初始化等操作。
软件开发新技术说明书题目: 在线投票系统院系:计算机科学与工程学院专业班级:计科14-3班学号: **********学生姓名:***指导教师:***2017 年 11 月 30 日安徽理工大学课程设计(论文)任务书摘要相较于传统投票方式,在线投票是任何一次商演(时间短、影响范围小)、电视(投入大,效果不明显)或者户外广告(不能快速吸引消费者眼球)在投入产出效率上都难以企及的。
在线投票能够迅速提升活动商家的广告价值,降低商家广告成本,提高知名度以及美誉度。
网络投票的主要目的就是人群放大:通过网络投票,可以吸引大量的选手及相关亲友的关注,通过以往的数据统计,一名选手参与投票,会带动60人参与。
这样可以最大程度的向客户展现实力,扩大社会影响力。
系统分为前台和后台两部分,前台主要是对普通用户开放。
普通用户将实现注册、投票、重选等操作;后台主要作用是管理员实现登录、投票管理、用户管理等操作。
依据前台和后台的不同权限需求,在线投票系统主要分为普通用户和管理员两个功能模块。
普通用户模块将实现用户注册、用户登录、用户投票以及投票重选和查看投票结果等功能。
管理员模块将实现管理员登录、发布新投票、撤消投票、查看所有投票、编辑和删除新投票以及用户管理等功能。
关键词:网上投票、JSP、MYSQL目录1系统分析 (5)1.1 系统简介 (5)1.2 系统功能 (5)2系统设计 (6)2.1 开发工具简介 (6)2.2 总体功能模块设计 (7)3系统实现 (10)3.1 数据库实现 (10)3.2 程序模块实现 (11)4总结 (16)4.1 设计体会 (16)4.2 系统改进 (16)参考文献 (18)1系统分析1.1 系统简介随着科技的飞速发展,计算机已经广泛的应用于各个领域之中,而且日趋普及。
在计算机应用中很重要的一部分就是编程语言,编程语言的出现打开了计算机应用的新篇章。
在这些编程语言中JSP占有着重要的地位,JSP拥有Java编程语言“一次编写,各处运行”的特点[1]。
EDA 课程设计报告书课题名称 七人表决器设计姓 名 学 号 院、系、部 电气系 专 业 电子信息工程指导教师2013年12月3日※※※※※※※※※ ※※ ※※ ※※ ※※※※※※※※※2011级EDA课程设计七人表决器设计一、设计目的1.熟悉Quartus II软件的使用。
2.熟悉EDA开发的基本流程。
二、设计要求所谓表决器就是对于一个行为,由多个人投票,如果同意的票数过半,就认为此行为可行;否则如果否决的票数过半,则认为此行为无效。
七人表决器顾名思义就是由七个人来投票,当同意的票数大于或者等于4人时,则认为同意;反之,当否决的票数大于或者等于4人时,则认为不同意。
实验中用7个拨挡开关来表示七个人,当对应的拨挡开关输入为‘1’时,表示此人同意;否则若拨挡开关输入为‘0’时,则表示此人反对。
表决的结果用一个LED表示,若表决的结果为同意,则LED被点亮;否则,如果表决的结果为反对,则LED不会被点亮。
三、流程图设计四、程序设计(程序代码)LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY asdfgh ISPORT(clk:IN STD_LOGIC;am:IN STD_LOGIC_VECTOR(6 DOWNTO 0);y:OUT STD_LOGIC;y1:OUT STD_LOGIC_VECTOR(6 DOWNTO 0));END ENTITY asdfgh;ARCHITECTURE one OF asdfgh ISSIGNAL q:STD_LOGIC;SIGNAL q1:STD_LOGIC_VECTOR(6 DOWNTO 0);BEGINPROCESS(am)VARIABLE shu:INTEGER;BEGINshu:=0;IF clk'EVENT AND clk='1' THENIF am(0)='1' THEN shu:=shu+1;END IF;IF am(1)='1' THEN shu:=shu+1;END IF;IF am(2)='1' THEN shu:=shu+1;END IF;IF am(3)='1' THEN shu:=shu+1;END IF;IF am(4)='1' THEN shu:=shu+1;END IF;IF am(5)='1' THEN shu:=shu+1;END IF;IF am(6)='1' THEN shu:=shu+1;END IF;CASE shu ISWHEN 0 => q<='0';q1<="0111111";WHEN 1 => q<='0';q1<="0000110";WHEN 2 => q<='0';q1<="1011011";WHEN 3 => q<='0';q1<="1001111";WHEN 4 => q<='1';q1<="1100110";WHEN 5 => q<='1';q1<="1101101";WHEN 6 => q<='1';q1<="1111101";WHEN 7 => q<='1';q1<="0000111";WHEN OTHERS => q<='Z';q1<="ZZZZZZZ";END CASE;y<=q;y1<=q1;END IF;END PROCESS;END ARCHITECTURE one;五、仿真图及结果图(结果说明)当a[6]-a[0]依次输入为1101001时,则数码管y1[6]-y1[0]为1100110,即数码管显示为4,LED灯即为高电平,即为亮。
目录一、方案设计 (2)二、硬件电路设计 (2)三、软件设计说明 (6)四、程序清单 (7)五、制作调试说明 (12)六、操作使用说明 (13)七、总结 (13)单片机课程设计一、方案设计1、设计题目:5人表决器2、设计要求:1)、可供5—7个人进行表决,每个人有一个“同意”和一个“反对”按键,故一个人需要两个按键,表决时两个键先按下的一个有效,同时按下则表示无效,每次表决每个按键只能是第一次按下的有效,多按无效,用单片机设计表决器是硬件电路与软件设计相结合的一种设计,因此在硬件电路只能实现按键的按下与释放,不能智能的实现检测按键被按下几次,则可用软件设计来实现其功能。
2)会议主持人可利用按键控制表决的开始与结束,点亮黄灯用于显示表决开始,熄灭黄灯表示结束,并将表决结果用红灯与绿灯显示。
当不相等时,“同意”多于“反对”点亮绿灯,“同意”少于“反对”点亮红灯。
3)在实现上述功能的基础上增加“同意”数和“反对”数的显示。
二、硬件电路设计1、硬件设计思路:此次设计的题目是5人表决器,分析得设计的硬件电路选用P1口与P2口作为同意与反对按键的输入端。
又表决的开始与结束是由主持人来控制的,因此需要两个按键来表示表决的开始与结束,因此可采用外部中断0与外部中断1来控制表决的开始于结束。
故设计总共需要按键12个。
设计要求中需要四盏灯,分变为一个黄灯,一个绿灯和二个红灯,三盏灯用于输出显示,因此也可以征用单片机的I/O口,由于P1口与P2口作为同意与反对按键的输入端且P0口当做输出端口时可以不用接上拉电阻,因此可将三个显示灯接在P0口用于显示表决的结果。
还有一盏红灯用来做电源指示灯。
2、元器件参数确定:设计要求中需要三盏灯(黄灯,绿灯和红灯)用于输出显示,选用P0口的3个端口与显示灯相连接用于输出,由于输出端口输出的高电平一般为5V,而发光二极管允许的最大电流为5mA,因此需要用到限流电阻,发光二极管可降2V的电压,则限流电阻上的压降为3V,那么限流电阻的最小阻值为R=3V/5mA=600欧姆,由于输出的高电平不是5V,故用510欧姆的限流电阻。
电子综合设计题目七人抢答器设计学院计信学院专业电子信息工程班级学生姓名指导教师2012 年 6 月18 日一、设计原理所谓表决器就是对于一个行为,由多个人投票,如果同意的票数过半,就认为此行为可行;否则如果否决的票数过半,则认为此行为无效。
七人表决器顾名思义就是由七个人来投票,当同意的票数大于或者等于 4 时,则认为同意;反之,当否决的票数大于或者等于4 时,则认为不同意。
二、分析讨论七人表决器这一功能可以用C语言、汇编语言或VHDL编程后下载到单片机上实现,不过用VHDL编程不仅技术含量高而且能让我们更熟练的掌握和使用quartus软件的步骤和方法。
所以我们是采用VHDL编程来实现的。
三、设计准备根据七人表决器的原理,我们的准备过程如下:1、使用Altera的Cyclone II器件,所用的芯片为EP2C35F672C8,开发平台为quartus II。
2、使用七个拨动开关(K1~K7)作为输入变量来表示七个投票人,当拨动开关输入为‘1’时,表示对应的人投同意票,否则当拨动开关输入为‘0’时,表示对应的人投反对票。
3、使用一个七段数码管来显示同意的票数。
4、使用七个LED(LED2~LED8)用来分别记录投票人的个人投票结果,当LED亮起时就表示对应的投票人同意,否则就表示不同意。
5、使用一个LED(LED1)来表示最终的投票结果,当LED1亮起时表示表决通过,不亮时就表示表决不通过。
6、使用一个拨动开关(K8)来达到复位要求,即需要复位时能够达到同时清零数码管的显示结果和LED的显示情况。
7、软件仿真成功后,通过专用的连接线再用硬件进行测试,并将硬件测试的结果以照片的形式做记录。
四、设计思路根据程序设计的一般步骤,我们首先设计出七人表决器的系统框图,也就是说先要确定一个大的设计方向;然后再根据设计要求并结合系统框图来设计程序流程图;由程序流程图来编写VHDL程序,并画出表决器的外围引脚图;再将程序用软件仿真,软件仿真成功后进行硬件测试。
十人投票机系统设计--电气控制技术课程设计说明书十人投票机系统设计--电气控制技术课程设计说明书电气控制技术课程设计说明书十人投票机系统设计院、部:电气与信息工程学院学生姓名:何鹏辉指导教师:陈华容职称高级实验师专业:电气工程及其自动化班级:电气本1304班完成时间:2016年6月4日湖南工学院电气控制技术课程设计课题任务书学院:电气与信息工程学院专业:电气工程及其自动化指导教师陈华容学生姓名何鹏辉课题名称十人投票机设计内容及任务一、目标设计一个基于PLC的十人投票机。
二、任务根据控制要求,明确设计任务,拟定设计方案与进度计划,运用所学的理论知识,进行十人投票机的硬件系统设计、软件系统设计,提高理论知识工程应用能力、系统调试能力、分析问题与解决问题的能力。
主要内容包括:1. 设计该系统电气控制硬件系统;2.PLC选择及其它电器元器件的选型;3.用计算机绘制PLC控制电路图;4.设计该系统PLC控制梯形图;5.进行系统仿真测试,并要有测试记录;6. 编写设计说明书。
三、要求1.运行PLC;2.当PLC运行时,[X12:计票开关]=OFF,则不执行投票计算。
3.当PLC运行时,再扳X12.[X12:计票开关]=ON,投票开始,并开始计时,此时需在15s内完成投票(赞成与不赞成),请扳动X0~X11(如赞成:X:ON,若反对X:OFF)。
4.[X12]=ON,15s后立即显示投票结果,若显示指示灯Y0亮:表示不通过(即反对人数较多) Y1亮:表示同票(即赞成与反对人数相等) Y2亮:表示通过(即赞成人数较多) 5.当投票结果显示后,就不再接受任何信息,即使再次投票显示灯仍不会改变其结果。
6.X13为归零按钮.在x13归零后,所有的显示灯熄灭,此时可再次进行投票。
主要参考资料[1]史国生主编,电气控制与可编程控制器技术[M]。
北京:化学工业出版社,2012。
[2]于广庆主编,可编程控制器原理及系统设计[M]。
单片机课程设计说明书课题:班级投票显示器专业:测控技术与仪器班级:机122-1:许铎学号:201256502116指导老师:王东兴组员:贺茂森、段亚东、王向东大学机电汽车工程学院目录第一章设计任务和容 (3)1.1 设计任务 (3)1.2 设计要求 (3)1.3 设计容 (3)第二章电路设计 (4)2.1 总体设计 (4)2.2 详细设计 (5)2.2.1 单片机引脚功能 (5)2.2.3时钟电路 (6)2.2.4复位电路 (7)2.2.5 数码管显示电路 (8)第三章程序设计与仿真 (10)3.1 投票显示系统总体功能实现 (10)2.2 系统流程图 (11)3.3 程序编写 (13)3.4 仿真与调试 (15)第四章总结和未来改进构想 (21)第一章设计任务和容1.1 设计任务分组按照选定题目的设计任务,设计各种单片机应用系统,设计工作量至少要包含:(1)用MCS-51单片机,12MHz时钟,常规的上电和手动复位电路;(2)3个以上的按键;(3)LED或/和数码管或/和LCD显示及其接口;(4)至少2路输入信号,可以是模拟量或数字量。
1.2 设计要求(1)设计一个投票系统,具有计票显示功能;(2)可实现6人同时进行投票,累计票数在显示器上显示;(3)主持人使用一个按键开关控制开始投票,终止投票和清零;(4)投票开始后每人能且仅能投一次票,多投无效;1.3 设计容(1)编写项目功能说明书,确定应用系统的功能和具体参数;(2)设计电路原理图;(3)编写C语言源程序,程序中加注必要的注解说明;(4)实物制作与调试;(5)编写设计说明书。
第二章电路设计2.1 总体设计整个设计以AT89C51单片机为核心,点触开关控制信号通过单片机I/O口,单片机处理信号并将结果通过LED数码管显示,最终按键复位单片机。
总体设计如下图。
2.2 详细设计2.2.1 单片机引脚功能·P0口 8位、漏极开路的双向I/O 口。
当使用片外存储器及外扩I/O 口时,P0口作为低字节地址/数据复用线。
在编程时,P0口可用于接收指令代码字节;程序校验时,可输出指令字节。
P0口也可做通用I/O 口使用,但需加上拉电阻。
作为普通输入时,应输出锁存器配置1。
·P1口 8位、准双向I/O 口,具有部上拉电阻。
P1口是为用户准备的I/O双向口。
在编程和校验时,可用作输入低8位地址。
用作输入时,应先将输出锁存器置1。
·P2口8位、准双向I/O口,具有部上拉电阻。
当使用外存储器或外扩I/O口时,P2口输出高8位地址。
在编程和校验时,P2口接收高字节地址和某些控制信号。
·P3口8位、准双向I/O口,具有部上拉电阻。
P3口可作为普通I/O口。
用作输入时,应先将输出锁存器置1。
在编程/校验时,P3口接收某些控制信号。
·RST 复位输入信号,高电平有效。
·EA/VPP外部程序存储器访问允许信号EA.当EA信号接地时,对ROM的读操作限定在外部程序存储器,地址为0000H-FFFFH;当EA接VCC时,对ROM 的读操作从部程序存储器开始,并可延续至外部程序存储器。
·PSEN 片外程序存储器读选通信号PSEN,低电平有效。
在片外程序存储器取指期间,当PSEN有效时,程序存储器的容被送至P0口;在访问外部RAM 时,PSEN 无效。
·ALE/PROG低字节锁存信号ALE.在系统扩展时,ALE的下降沿将P0口输出的低8位地址锁存在外接的地址锁存器中,以实现低字节地址和数据的分时传送。
·XTAL1 片振荡器反向放大器和时钟发生线路的输入端。
·XTAL2 片振荡器反相放大器和时钟发生线路的输出端。
2.2.3时钟电路51系列单片机的时钟信号产生通常有两种方式,部时钟方式和外部时钟方式我们采用部时钟方式,如图,引脚XTAL是片振荡器反向放大器和时钟发生线路的输入端。
XTAL2是片振荡器反相放大器的输出端。
当使用片振荡器时,外接石英晶体和微调电容。
2.2.4复位电路51系列单片机通常有上电复位和按键复位两种方式。
我们采用了最简单的一种上电复位及按键复位电路如图所示,上电后,由于电容充电,使RESET持续一段时间的高电平,完成复位操作;当单片机处于运行中或死锁时,按下“复位”按钮,也可使单片机进入复位状态。
通常选择C=10~30uF, R=100~1000Ω。
1、数码管显示方式数码管有静态显示方式和动态显示方式,我们采用的共阴极七段数码管静态显示方式,如上图所示。
就是当显示器显示某一个字符时,相应的发光二极管恒定地导通或截止。
2、驱动电路74LS245芯片用作驱动的电路,用来驱动七段数码管,它是8路同相三态双向总线收发器,可双向传输数据,8051单片机的P0口总线负载达到或超过P最大负载能力时,必须接入74LS245等总线驱动器。
当片选端/CE低电平时有效,AB接高电平时A→B,低电平时B→A第三章程序设计与仿真3.1 投票显示系统总体功能实现利用单片机设计投票显示系统,应先掌握单片机的结构与功能,在设计中充分利用好单片机各管脚,并配合外部电路,坚持简单易懂,节约成本的原则来设计电路。
2.2 系统流程图为了简化程序的复杂度,使设计过程简单易懂,该系统将分成主程序和子程序设计,具体流程如下图。
3.3 程序编写按照上面流程图进行源程序编写,源程序如下:(1)主程序部分#include "reg51.h"#include"stdio.h"sfr p2=0xa0;sfr p1=0x90;sfr p0=0x80;sbit P11=P1^1; /*位定义*/ sbit P12=P1^2;sbit P13=P1^3;sbit P14=P1^4;sbit P15=P1^5;sbit P16=P1^6;sbit P17=P1^7;Unsigned; chardis[11]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x67,0x00};/*定义字型表*/ unsigned char num,num2,num3,num4,num5,num6,num7;char nu=0;void scan();void disp() /*显示子程序*/{ num=num2+num3+num4+num5+num6+num7;p0=dis[num];p2=dis[nu];}void main(){ P1=0xff; /*对P1口进行初始化*/while(1) /*进入无限循环*/ {if(!P11) /*判断总控开关,按下则执行以下程序*/{num=0;nu++;scan();} /*扫描按键,执行scan()子程序*/else{num2=0;num3=0;num4=0;num5=0;num6=0;num7=0;}/*无按键输入则显示0*/}}void scan(){while(!P11) /*判断总控开关是否一直保持接通状态,接通则进行投票过程循环,否则不执行程序,即投票按键无效*/{ if(!P12){ num2=1;while(!P12);} /*对投票按键P1进行判断,按下则累加1并维持不变*/if(!P13){ num3=1;while(!P13);}if(!P14){ num4=1;while(!P14);}if(!P15){ num5=1;while(!P15);}if(!P16){ num6=1;while(!P16);}if(!P17){ num7=1;while(!P17);}disp();}} 子程序部分完成投票判断、票数累加工作。
3.4 仿真与调试将源程序输入进Keil软件中,保存为.hex文件并编译,无误后可以再烧进仿真软件Proteus ISIS文件中的单片机AT89C51中,方可运行仿真电路。
单击仿真运行开始按钮,我们能清楚地观察到每一个引脚的电频变化,红色代表高电频,蓝色代表低电频。
仿真过程如下1、接通总控开关,此时所有人投票有效,并可看见票数显示器显示“0”,轮次显示器显示“1”投票第一轮开始,进入投票阶段,如图2、任意按下一个投票按键如P3,此时票数显示器示数字变成“1”,轮次显示器“1”不变,如图3、按另一个P5,票数LED灯变成“2”,如图4、此时再次按下第一次按过的按键P3,显示器仍保持数字“2”,即完成每个按键只能投票一次的功能。
如图5、最后将总控开关断开,可看到显示器没有变化,可以继续显示投票结果,再次接通总控,可发现票数显示器又回到初始阶段“0”,轮次显示器显示“2”,即进入第二轮投票,如图6、若此后有4人投票,则票数显示器显示“4”,而轮次显示器“2”不变。
即票数完成清零并进入新一轮投票阶段,如图7、所有投票结束后按下轮次复位按钮,则所有显示器回复初始状态,仿真成功。
第四章总结和未来改进构想总结:通过本次课程设计不仅加强了对我们所学的单片机知识的认识,还掌握了Proteus电路图仿真软件和Keil编程软件等专业软件的应用。
通过实物制作,还很好的锻炼了我们的动手能力和团队合作的能力,在课设过程中,我们遇到了一些问题,比如仿真时P0口接的数码管不亮,经过我们的讨论和几次试验,我发现是上拉电阻阻值过大,我们及时改正,解决了这个问题。
还有在中期答辩时,我们忽略了驱动电路的问题,导致数码管显示电路出现错误,亮度不够,后来在老师的指导和我们对课本上的知识深入学习后修改了电路,解决了这一问题。
我觉得我们要扎实的掌握所学的知识的同时还要学会查资料,同时还要及时与老师交流,注重团队合作,这样才能把事情做得更好。
未来改进构想:我们在课程设计的过程中也做了创新,增加LED显示器显示投票轮数;我们觉得还可以在每个投票环节上增加投票状态(可以发光用二极管)确认是否投票成功,以及是否可以投票。
还可以设计上计时功能,以保证在规定时间完成投票。