投票器设计说明书word版本.doc

上传人:牧羊曲112 文档编号:4263951 上传时间:2023-04-12 格式:DOC 页数:24 大小:789.50KB
返回 下载 相关 举报
投票器设计说明书word版本.doc_第1页
第1页 / 共24页
投票器设计说明书word版本.doc_第2页
第2页 / 共24页
投票器设计说明书word版本.doc_第3页
第3页 / 共24页
投票器设计说明书word版本.doc_第4页
第4页 / 共24页
投票器设计说明书word版本.doc_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《投票器设计说明书word版本.doc》由会员分享,可在线阅读,更多相关《投票器设计说明书word版本.doc(24页珍藏版)》请在三一办公上搜索。

1、投票器设计说明书单片机课程设计说明书 课题:班级投票显示器 班级: 机电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 前言 单片机技术

2、是现代电子工程领域一门迅速发展的技术,它的应用已渗透到各种嵌入式系统中。毫不夸张地说:掌握单片机技术信息类学生就业的一个重要条件。同时单片机技术又是一门实践性很强的学科。课程设计教学环节的设计和实施,在很大程度上决定了我们对单片机的掌握程度。为了更好的完成课程设计这一重要教学环节,我们采用Proteus软件与Keil软件整合构建单片机虚拟实验平台。首先在PC上利用Proteus软件自己搭建硬件电路,并利用系统提供的功能完成电路分析,系统调试和输出现实的硬件设计部分,同时在Keil软件中编制程序,进行相应的编译和仿真,完成系统的软件设计部分。当系统的设计工作完成后,就可以在PC上看到最终的运行效

3、果。最后在通过Proteus设计PCB,在完成真正硬件的调试。采用以上方案具有以下优势:有利于促进课程和教育改革,更有利于人才的培养;从经济性、可移植性、可推广性角度讲,建立这样的课程设计平台是非常有意义的,利用仿真系统,可以节约开发时间和开发成本,利用仿真系统具有很大的灵活性和可扩展性。第一章 绪论1.1 概述 目前投票显示系统电路的应用可以说非常广泛,班级投票,公司竞选,文娱节目等许多不记名投票活动都经常会用到各式各样的投票器,虽然这些投票器外观和样式都有所不同,功能可能也有多有少,但他们的原理都大同小异。因此现将基本原理熟练掌握,以后再进行功能扩展就简单易行了。本文论述了利用单片机制作投

4、票系统的全过程,包括阐述该系统的基本工作原理,利用WAVE软件进行程序编与调试和Proteus ISIS仿真软件进行电路模拟仿真,实物制作与调试。1.2 设计目的(1)加强对单片机和C51语言的认识,充分掌握和理解设计各部分的工作原理、设计过程、选择芯片器件、模块化编程等多项知识。(2)用单片机模拟实现具体应用,使个人设计能够真正应用。(3)把理论知识好实践相结合,充分发挥个人能力,并在实践中锻炼。(4)提高利用已学知识分析和解决问题的能力。(5)提高实践动手能力。1.3 设计任务和内容 1.3.1 设计任务分组按照选定题目的设计任务,设计各种单片机应用系统,设计工作量至少要包含: (1) 用

5、MCS-51单片机,12MHz时钟,常规的上电和手动复位电路; (2) 3个以上的按键; (3) LED或/和数码管或/和LCD显示及其接口; (4) 至少2路输入信号,可以是模拟量或数字量。 1.3.2 设计要求 (1)设计一个投票系统,具有计票显示功能;(2)可实现6人同时进行投票,累计票数在显示器上显示;(3)主持人使用一个按键开关控制开始投票,终止投票和清零;(4)投票开始后每人能且仅能投一次票,多投无效;创新:(1)增加发光二极管显示有效性; (2)增加LED显示器显示投票轮数; 1.3.3 设计内容 (1)编写项目功能说明书,确定应用系统的功能和具体参数; (2)设计电路原理图;

6、(3)编写汇编语言或C语言源程序,程序中加注必要的注解说明; (4)编写设计说明书。第二章总体设计及核心器件简介2.1 总体设计 整个设计以AT89C51单片机为核心,点触开关控制信号通过单片机I/O口,单片机处理信号并将结果通过LED数码管显示。以发光二极管显示信号输入的有效性,最终上电复位单片机。总体设计如下图。 信号源LED数码管显示I/O口8051单片机时钟电路复位电路 2.2 MCS-51单片机 2.2.1 AT89C51单片机内部结构 AT89C51是一种低电压,高性能CMOS 8位单片机,采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8

7、位中央处理器(CPU)和4K字节FLASH(FPEROMFlash Programmable and Erasable Read Only Memory)存储单元,功能强大AT89C51单片机可为您提供许多高性能比的应用场合,可灵活应用在各种控制领域。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C51是它的一种精简版本。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方

8、案。 AT89C51单片机的主要工作特性:内含4KB的FLASH存储器,擦写次数1000次;内含28字节的RAM;具有32根可编程I/O线;具有2个16位可编程定时器;具有6个中断源、5个中断矢量、2级优先权的中断结构;具有1个全双工的可编程串行通信接口;具有一个数据指针DPTR;两种低功耗工作模式,即空闲模式和掉电模式;具有可编程的3级程序锁定定位;AT89C51的工作电源电压为5(10.2)V且典型值为5V,最高工作频率为24MHz.AT89C51各部分的组成及功能:外部中断TXDRXDP0 P1 P2 P3扩展控制振荡器和时钟电路数据存储器128字节程序存储器14KBCPU两个16位定时

9、器计数器中断控制总线扩展控制器并行可编程I/O口可编程串行口内部总线 图2-1还有,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到出现下一个硬件复位。 2.2.2 AT89C51单片机的引脚说明1. 引脚排列及功能AT89C51的封装形式有PDIP,TQFP,PLCC等,现以PDIP为例。 (1)I/O口线 P0口 8位、漏极开路的双向I/O口。 当使用片外存储器及外扩I/O口时,P0口作为低字节地址/数据复用线

10、。在编程时,P0口可用于接收指令代码字节;程序校验时,可输出指令字节。P0口也可做通用I/O口使用,但需加上拉电阻。作为普通输入时,应输出锁存器配置1。P0口可驱动8个TTL负载。P1口 8位、准双向I/O口,具有内部上拉电阻。 P1口是为用户准备的I/O双向口。在编程和校验时,可用作输入低8位地址。用作输入时,应先将输出锁存器置1。P1口可驱动4个TTL负载。P2口 8位、准双向I/O口,具有内部上拉电阻。 当使用外存储器或外扩I/O口时,P2口输出高8位地址。在编程和校验时,P2口接收高字节地址和某些控制信号。P3口 8位、准双向I/O口,具有内部上拉电阻。 P3口可作为普通I/O口。用作

11、输入时,应先将输出锁存器置1。在编程/校验时,P3口接收某些控制信号。它可驱动4个TTL负载。 图2-2 引脚位置 (2)控制信号线 RST 复位输入信号,高电平有效。在振荡器稳定工作时,在RST脚施加两个机器周期以上的高电平,将器件复位。 EA/VPP 外部程序存储器访问允许信号EA.当EA信号接地时,对ROM的读操作限定在外部程序存储器,地址为0000H-FFFFH;当EA接VCC时,对ROM的读操作从内部程序存储器开始,并可延续至外部程序存储器。在编程时,该引脚可接编程电压5V或12V。在编程校验时,该引脚可接VCC。 PSEN 片外程序存储器读选通信号PSEN,低电平有效。在片外程序存

12、储器取指期间,当PSEN有效时,程序存储器的内容被送至P0口;在访问外部RAM时,PSEN 无效。 ALE/PROG 低字节锁存信号ALE.在系统扩展时,ALE的下降沿将P0口输出的低8位地址锁存在外接的地址锁存器中,以实现低字节地址和数据的分时传送。此外,ALE端连续输出正脉冲,频率为晶振频率的1/6,可做外部定时脉冲使用。 (3)外部晶振引线 XTAL1 片内振荡器反向放大器和时钟发生线路的输入端。使用片内振荡器时,连接外部石英晶体和微调电容。XTAL2 片内振荡器反相放大器的输出端。当使用片内振荡器时,外接石英晶体和微调电容。 2.2.3 AT89C51单片机复位方式 8051的复位方式

13、可以是自动复位(左图),也可以是手动复位(右图),见下图 。此外,RESET/Vpd还是一复用脚,Vcc掉电期间,此脚可接上备用电源,以保证单片机内部RAM的数据部丢失。 图2-2 图2-3 此投票器使用自动复位如图2-22.3 数码管LED数码管(LED Segment Displays)是由多个发光二极管封装在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极。LED数码管常用段数一般为7段有的另加一个小数点,还有一种是类似于3位“+1”型。位数有半位,1,2,3,4,5,6,8,10位等等.,LED数码管根据LED的接法不同分为共阴和共阳两类, LED数码管

14、有共阳极和共阴极两种结构。如下图了解LED的这些特性,对编程是很重要的,因为不同类型的数码管,除了它们的硬件电路有差异外,编程方法也是不同的。共阴和共阳极数码管的内部电路发光原理是一样的,只是它们的电源极性不同而已。颜色有红,绿,蓝,黄等几种。LED数码管广泛用于仪表,时钟,车站,家电等场合。选用时要注意产品尺寸颜色,功耗,亮度,波长等。下面将介绍常用LED数码管内部引脚图。 图2-3-1 这是一个7段两位带小数点 10引脚的LED数码管图 2-3-1引脚定义 每一笔划都是对应一个字母表示 DP是小数点.图 2-3-2 共阴极LED数码管的内部结构原理图LED数码管要正常显示,就要用驱动电路来

15、驱动数码管的各个段码,从而显示出我们要的数位,因此根据LED数码管的驱动方式的不同,可以分为静态式和动态式两类。表1.1 显示数字对应的二进制电平信号显 示 数 字abcdefg011111101011000021101101311110014011001151011011600111117111000081111111900011012.4 发光二级管发光二极管正向导通,反向截止,当通入正向电时发光。 图2-5第三章 投票显示系统电路设计与仿真3.1 投票显示系统总体功能实现利用单片机设计投票显示系统,应先掌握单片机的结构与功能,在设计中充分利用好单片机各管脚,并配合外部电路,坚持简单易懂,

16、节约成本的原则来设计电路。 图3-1投票显示系统电路原理图如图3-1所示,投票显示系统电路的核心是单片机AT89C51。单片机的P1.0口引脚接1个单刀单置开关,作为总控开关,控制投票系统的开始、停止和清零工作;单片机的P1.1口引脚接按键式开关,作为控制投票轮次的复位开关;P1.2P1.7接6个按键式开关,作为投票者的投票按键,并在总控开关上并联一发光二极管和非门串联的电路,当此发光二极管发红光时所有人投票有效,并在各投票按钮处设置蓝色发光二极管,发光时作为该投票的确认信号。单片机的P0.0P0.6口7个引脚接LED共阴显示器的段选码(a、b、c、d、e、f、g)的引脚上,实现LED显示器的

17、显示字符(即显示票数),电阻主要起限流作用。RST引脚接自动复位电路;XTAL1与XTAL2引脚接时钟电路。P2口与LED显示器相接,用于显示投票轮次。3.2 系统流程图 为了简化程序的复杂度,使设计过程简单易懂,该系统将分成主程序和子程序设计,具体流程如下图。票数清零轮次加1NY开始单片机P1口全置1P1.0=0?数码管显示不变,并不清零执行投票子程序,判断是否有键按下并显示票数YP1.1=0?Y轮次置1P1.2=0?YN票数累加1,并此按键不再影响数据变化模仿上面步骤顺序判断P1.3P1.7口,并进行票数累加NP1.0=0?N退出投票子程序,但数据不清零3.3 程序编写按照上面流程图进行源

18、程序编写,源程序如下:程序清单:#include reg51.h #includestdio.hsfr p2=0xa0;sfr p1=0x90;sfr p0=0x80;sbit P10=P10; /*位定义*/ sbit P11=P11; sbit P12=P12;sbit P13=P13;sbit P14=P14;sbit P15=P15;sbit P16=P16;sbit P17=P17;unsigned char dis11=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x67,0x00; /*定义字型表*/unsigned char num

19、,num2,num3,num4,num5,num6,num7;char nu=0;void disp() /*显示子程序*/ num=num2+num3+num4+num5+num6+num7; if(!P11) nu=1;p0=disnum;p2=disnu;void scan() while(!P10) /*判断总控开关是否一直保持接通状态,接通则进行投票过程循环,否则不执行程序,即投票按键无效*/ if(!P12) num2=1;while(!P12); /*对投票按键P1进行判断,按下则累加1并维持不变*/ if(!P13) num3=1;while(!P13); if(!P14) n

20、um4=1;while(!P14); if(!P15) num5=1;while(!P15); if(!P16) num6=1;while(!P16); if(!P17) num7=1;while(!P17); disp(); main() P1=0xff;P11=1; /*对P1口进行初始化*/ while(1) /*进入无限循环*/ if(!P10) /*判断总控开关,按下则执行以下程序*/ num=0;nu+;scan(); /*扫描按键,执行scan()子程序*/ else num2=0;num3=0;num4=0;num5=0;num6=0;num7=0; /*无按键输入则显示0*/

21、 (1)主程序部分这部分程序主要完成在总控开关控制下的开始投票、暂停投票和清零工作。(2)子程序部分子程序部分完成投票判断、票数累加工作。3.4 仿真与调试将源程序输入进111111软件中,保存为.hex文件并编译,无误后可以再烧进仿真软件Proteus ISIS文件中的单片机AT89C51中,方可运行仿真电路。单击仿真运行开始按钮,我们能清楚地观察到每一个引脚的电频变化,红色代表高电频,蓝色代表低电频。a bc de fg仿真过程如图,接通总控开关,最高处发光二极管发红光,既此时所有人投票有效,并可看见票数显示器显示“0”,轮次显示器显示“1”投票第一轮开始,进入投票阶段,如图(a);然后任

22、意按下一个投票按键如P3,同时可看到p3处发光二级管闪烁一次蓝光,即投票有效,此时票数显示器示数字变成“1”,轮次显示器“1”不变,如图(b);再按另一个P5,二极管闪烁蓝光后票数LED灯变成“2”,如图(c);此时再次按下第一次按过的按键P3,显示器仍保持数字“2”,如图(d);即可完成每个按键只能投票一次的功能。最后将总控开关断开,可看到显示器没有变化,可以继续显示投票结果,但红色发光二极管终止发光,此后在投票无效,再次按任意投票按键,投票显示器无反映,即完成投票暂停功能。再次接通总控,可发现票数显示器又回到初始阶段“0”,轮次显示器显示“2”,即进入第二轮投票,如图(e),若此后有4人投票,则票数显示器显示“4”,而轮次显示器“2”不变。即票数完成清零并进入新一轮投票阶段,如图(f),所有投票结束后按下轮次复位按钮,则所有显示器回复初始状态,如图(g),最终出现这个过程就已经意味着系统仿真成功!

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号