找回密码
 注册
关于网站域名变更的通知
查看: 197|回复: 2
打印 上一主题 下一主题

单片机7人多数表决器源程序与电路原理图设计

  [复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2022-5-30 09:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
$ w& f* f3 T4 U) l4 B
设计一个七人多数表决器,表决器的功能是将所投票者的结果综合起来,超过半数赞成则表示结果通过,反之则不通过。而七人表决器由七个人来投票,当赞成的票数大于或者等于4人,则认为通过,通过则显示1;当反对的票数大于或者等于4人时,则认为不通过,不通过则显示为0。, e" E: o3 B, A) t: k3 e( h
  4 _' a5 e& I% [. Y' n  N8 @
  ) v7 K" s) M( J6 B: M
基本要求:
' R( @9 E" y$ q0 R(1)7人多数表决逻辑:多数通过。
8 e+ L, ~7 r1 J3 w, J9 _(2)在主持人控制下,10秒内表决有效。3 t* U0 F  N, D, e0 h
(3)采用数码管显示表决10秒倒计时。5 w0 e" n+ P2 ^  f" ?
(4)表决结束后用发光二极管及数码管显示表决结果,数码管显示结果:通过、不通过,同意人数。
2 a8 B% i/ T9 t(5)设主持人控制键、暂停键、复位键。控制键:启动表决,暂停键:暂停表决,复位键:系统复位。
" ]& }0 |) H9 K" K9 y; f6 X0 |6 f(6)支持表决者,则其对的LED就发光
+ v( E: u3 t: e" O5 k1 C7 {/ e6 `* C* L(7)表决开始采用声音提示。
; z$ b2 V' C4 M- j$ U  
# J5 A+ e( P, `+ w* e# O3 r& v6 c系统硬件电路设计

表决器器硬件电路由单片机最小系统模块、按键模块、显示模块、状态指示模块组成。图3-1所示为表决器电路原理图 。

图3-1  表决器电路原理图

0 V% _8 S( ], w% B2 \' x8 l* S- e+ {
$ f( K2 r. M# [! B

按键模块由10个按键组成,分为按键开始部分和表决部分。按键开始部分,分别接AT89C52单片机的P2端口的P2.0、P2.1、P2.2引脚。当主理人按下对应的按键,即给对应的引脚一个低电平。在软件设计的程序中写入相应的操作,即可实现开始、暂停和复位的功能。即当按下S1时,系统开始运行;当按下S2时,系统停止运行;当按下S3时,系统恢复初始状态。

表决按键部分由七个按键组成,分别是S4-S10在7个按。按键一端接地,一端连接AT89C52单片机的P1端口。在表决时,当表决人按下他们相对应的按键,即给对应的引脚一个低电平,系统就会对其进行记录,当表决时间结束后,就会在数码管第四位显示同意表决的人数。以此来统计投票情况。表决按键模块的电路原理图如图3-3所示。

图3-3  表决按键模块电路原理图

3.3 状态指示模块

状态指示模块由7个LED灯组成,LED一端接电源,另一端接单片机P3端口,LED灯用来指示表决时的表决人的状态,当表决人按了自己相对应的按键他自己相对应的LED灯就会发出黄色的光。在连接LED灯时,不能直接将LED灯连接到单片机的端口上,如果直接连接的话,LED灯就会烧掉,从而其不到相应的功能,这时我们需要在相应的LED灯的位置连接一个电阻来起到保险作用,而我们接的电阻的大小直接影响到LED灯的发光程度,最好选择200欧姆的电阻,也可以将全部的LED串到一个电阻上来实现这个功能。状态指示模块电路原理图如图3-4所示。

图3-4  状态指示模块电路原理图

3.4 显示模块

在应用场景中,还需显示表决倒计时的时间、表决的结果及同意表决的人数等信息,这部分由显示模块完成。表决倒计时的时间在系统开始运行时,数码管的第三和第四位显示;表决的结果在系统运行结束后,在数码管的第一位显示,如果显示数字“1”,这表示表决通过,如果显示数字“0”;表决的同意人数在数码管的第四位显示。这显示模块在本设计中,使用共阴极4位数码管连接到AT80C52的P0端口。我们在连接数码管的时候不能直接将数码管直接连接到P0端口上,这样连接了,你按下开始按键数码管也不会显示数字,我们在连接的时候需要并连一个排阻,也可以用8个1K的电阻来代替,因为P0端口在AT89C52单片机的内部没有驱动电阻,然而不接电阻的话就没有足够的电能来驱动数码管。如图3-4所示

图3-4  显示模块图

4系统软件设计
. w: l" ?/ e# f1 m
4.1主程序设计

系统主程序开始以后,首先是对系统环境进行初始化,包括设置串口、定时器、中断和端口。进入主程序之后,首先进行键盘扫描,检测主持人的开始抢答按键和复位按键的状态。如没有任何动作,则数码管与状态指示灯设置为初始状态;如果开始抢答按键按下,则为定时器0设置初值,并开启定时器0,开始抢答倒计时,从10到0倒数,并设置状态指示灯。这时开始检测是否有表决人按下按键。如果10s内没有表决人按下按键,则判断是否还要继续表决,并回到键盘扫描。如果 10s内有表决人按下按键,表决人对应的LED发光。倒计时10s结束,数码管第四位显示表决同意人数,如果表决同意人数大于等于4人,数码管第一位显示数字“1”,表决同意人数小于4人,数码管的第一位就显示数字“0”。表决完成,则由主持人按复位键,回到按键扫描状态。抢答器系统程序流程图如图4-1所示。

图4-1  主程序设计流程图

4.2子程序设计
! h6 }$ j. I& h/ X$ {2 ?6 @/ g
4.2.1 子程序设计1

系统开始10s倒计时,表决人按下按键,表决人对应的LED灯就会发光,10s倒计时结束,数码管的第四位显示表决同意通过的人数,如果表决的人数大于等于4人时,数码管的第一位显示数字“1”,如果表决人数小于4人,数码管的第一位显示数字“0”。主持人看是否进行下一次的表决,如果进行下次表决,主持人就按下复位按键,开始新一轮的表决。如图4-2所示。

图4-2  子程序设计1流程图

4.2.2 子程序设计2

系统10s倒计时结束,数码管的第四位显示表决同意的结果,如果表决同意的人数大于等于4人时,数码管的第一位显示数字“1”,如果表决的人数小于4人时,数码管的第一位显示数字“0”。主持人看是否进行下一次的表决,如果进行下次表决,主持人就按下复位按键,开始新一轮的表决。如图4-3所示。

图4-2  子程序设计2图

5系统性能测试和结果分析

系统开始运行,主持人按下开始按键,蜂鸣器发给“滴滴”声,数码管的第3,4位开始进行10s的倒计时。如图5-1所示,数码管倒计时显示倒计时到了9s时的图形。

图5-1 系统开始运行

系统运行中,主持人可以紧急情况下按暂停按键,暂停表决,表决人可以按下自己对应的按键进行表决,当表决人按下自己的按键时,他自己对应的LED就会发光。如图5-2所示,数码管倒计时到3s的时候,有2号、3号、5号和7号表决人按下了自己的表决按键。

图5-2 系统运行中的图

系统运行结束后,数码管不再显示倒计时的数据,数码管的第一位会显示表决是否通过,通过即显示数字“1”,不通过即显示数字“0”,数码管的四位显示表决同意的人数。表决结束要开始新的表决主持人可以按下复位按键进行下一次的表决。如图5-3所示,10s倒计时结束,数码管的第四位显示为四,则说明有4人同意表决,由LED可以看出是2号、3号、5号和7号表决人同意表决,数码管第一位显示为数字“1”,则显示表决通过。

图5-3 系统运行结束图


: I& `6 ], b) h! T) w

该用户从未签到

推荐
发表于 2022-5-30 11:24 | 只看该作者
有没有哪些特别注意的?* A$ k) t% k5 Z/ G

该用户从未签到

3#
发表于 2022-5-30 11:29 | 只看该作者
难啊,O(∩_∩)O哈哈~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-6-23 17:20 , Processed in 0.093750 second(s), 24 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表