单片机七人表决器

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一.方案设计

1.设计题目:七人表决器。

2.实训要求

利用AT89S51单片机设计并制作会议表决计票器电路。具体要求如下:

1、可供57个人进行表决,每个人有一个“同意”和一个“反对”按键,表决时两个键先按下的一个有效,若再按另一个键将清楚前一次按键的效能;每次表决每个按键只能是第一次按的有效,多按的次数无效,除非前一次按键的效能已被清楚或没有生效。

2、会议主持人可利用按键控制表决开始和结束;开始表决后,点亮黄色指示灯,表示可以进行表决,同时清楚原来的表决结果;结束表决后显示表决结果;“同意”多于“反对”点亮绿色指示灯,反之点亮红色指示灯。

3、在实现上述功能的基础上增加“同意”数和“反对”数的显示。

二.硬件电路设计和原理。

1.硬件设计思路:

设计题目为5—7人表决器,题目选为七人表决器,七个按键表示同意,七个按键表示反对,各按键与单片机的输入端口相连,因此可选用单片机的四个I/O口,因为在单片机内部P1和P2都有上啦电阻,而P0没有上啦电阻,要在外部加上一个上拉电阻,为了简化电路,把P1和P2口选为按键同意和反对的输入端,因为表决考试和结束要

利用主持人按键来控制,我采用外部中断0和外部中断一来控制其开始和结束;设计要求中需要四张灯,分别为2个红灯,一个黄灯,一个绿灯,其中三个灯用于输出显示,可用单片机的I/O口,另外一个红灯作为电源灯来显示,判断是否通电,因为P1口和P2口用做按键的同意和反对,把P2剩余的I/O口与三个灯连接,分别连接在P2.3,P2.4,P2.5口,因为P0口是低电平有效所以我的P0口与LED现实器相连用于显示反对与同意的人数的多少,采用动态显示的方式,为了保证两个显示器不再相同时间显示相同的数字,所以LED显示器的公共端受另外一组信号的控制,采用延时的方式让它们分别显示出来。

2.元件参数确定:

设计中需要四盏灯,分别为两个红灯,一个绿灯,一个黄灯,P0口的输出端输出高电平一般为5伏左右,最大电流为五毫安,因此必须加上限流电阻,我选用的是470欧的电阻,然后将单片机的最小系统加入此次的电路中。

3.元件清单:

14个开关用于7人同意与反对按键,另外两个开关用做控制投票开始和结束的总开关。

电容:用于单片机的最小系统。

发光二极管:用于表示投票开始与结束,和最后同意与反对票数的对比情况。

电阻:用于限流。

单片机8051芯片:用于编程。

电源接头:提供电源。

LED显示器:用于显示投票中同意与反对票数的多少。

4.电路工作原理简述。

当主持人按下开始键,外部中断0响应后,黄灯亮起,到外部中断服务程序,开始进行投票,7人开始表决,7个人分别按下同意或反对,然后有团建来处理和分析“同意”和“反对”的人数的多少,当主持人按下结束键时,停止投票。当最后结果“同意”人数多于“反对”人数时,亮起绿灯,当最后结果“同意”人数少于“反对”人数时,亮起红灯,把其最后的结果显示在两个LED显示器上面,最终达到设计的基本目标。

5.电路工作原理图:

6.电路实物图:

三.内容

1.软件设计思路:

1).软件初始化:

根据硬件开关与显示灯的接法对单片机进行初始值的设计,因为是低电平有效,故初始化设置为高电平有效。

2.)模块设计思路与各模块之间的联系:

用查询的方式来看按键是否被按下,若按下,点亮黄灯,开始表决,若同意或反对就在其对应的寄存器中自加一,知道总开关呢按键结束后,在比较其大小,并把最后结果存放在LED显示器当中。

2.软件总体功能:

1)用于检测开始键是否被按下,按下时表决器才有用才开始表决。

2)开始表决后循环检测对应的同意和反对是否被按下,并统计其同意总数和反对总数。

3)等待中断若结束按键被按下,在中断处理中比较,并点亮相应的显示灯。

4)把同意的票数和反对的票数分别显示在LED显示器上。

3.程序:

ORG 0000H

AJMP MAIN

ORG 0003H

SETB F0

SETB TR0

RETI

ORG 000BH

AJMP INTT0

ORG 001BH

AJMP INTT1

ORG 0030H

MAIN: MOV SP,#60H

MOV TMOD,#11H

MOV TL0,#0B0H

MOV TH0,#03CH

MOV R1,#20

MOV R2,#5

CLR P3.0

SETB EA

SETB ET0

SETB EX0

SETB IT0

INDEX:MOV A,P1

ANL A,#0FH

MOV 28H,A

LCALL DELAY

MOV A,P1

ANL A,#0FH

CJNE A,28H,RETURN KEY: CJNE A,#0EH,KEY2 CLR P1.0

JB F0,DD

SETB P3.0

LCALL SIXUNHUAN DD: LCALL AST

KEY2: CJNE A, #0DH,KEY3 CLR P1.1

JB F0,DD1

SETB P3.0;

LCALL SIXUNHUAN DD1: LCALL AST

KEY3: CJNE A,#0BH,KEY4 CLR P1.2

JB F0,DD2

SETB P3.0

LCALL SIXUNHUAN DD2: LCALL AST

KEY4: CJNE A,#07H,KEY5 CLR P1.3

JB F0,DD3

SETB P3.0

LCALL SIXUNHUAN DD3: LCALL AST

KEY5: CJNE A, #0DH,KEY6 CLR P1.4

JB F0,DD4

SETB P3.0;

LCALL SIXUNHUAN DD4: LCALL AST

相关文档
最新文档