MCS-51单片机在表决系统中的应用
摘要:为满足投票选举而设计的专业电子表决系统。选用80C31单片机组成主-从型“单片机网”系统。采用成熟可靠的串行通讯方式,实现表决电子化。文章描述了表决器的基本原理,并给出了系统的硬件和软件设计。
关键词:表决器;80C51;串行通讯
0 引言
随着我国社会主义民主的提高,表决器作为一种公正,迅速准确的表决工具,应用日益广泛。通过表决器,与会代表只需根据会议议程轻按表决器按钮,即可轻松地完成从签到到各类议案的电子表决工作。在不记名模式下,系统特有的保密功能使得代表按键能最大限度地反映其真实意愿,而不用担心被人窥视或记录追查。表决结果可自动统计产生,并根据会议要求以图文或报表方式来显示和打印。
1 设计方案
系统包括PC机:用于文件的编辑储存、打印、显示表决结果。大屏监视器显示表决结果及其它文件。表决采集网络:采集各代表的表决结果并做处理。经对系统功能要求的分析,认为单片机80C51最为适合多点分散,每单点功能相对简单的系统。从而组成主-从型“单片机网”。表决系统见图1。
2 硬件设计
单片机表决系统以一片主80C51及若干片从80C51组网,采用串行通讯方式。并由主80C51为PC机上报表决结果。
2.1 分机硬件
如图2终端(分机)设计为单人单机模式。系统为每位表决人各配一台分机,上限为255台。分机选用80C51为核心,利用单片机自有资源,通过锁存器373扩展外部程序存贮器。根据现有程序量,选用EPROM 27C64,作为程序存储器。80C51内置128B RAM能够满足数据处理要求,省去了外部扩展RAM而使分机简洁可靠。分机801251的P0口,P2口用于外部扩展EPROM的地址、数据线。键盘占用P1口的P1.0、P1.1、P1,2、P1.3、P1.4。对应“报到”、“同意”、“反对”、“弃权”及“发言”五个功能按键。P3口的P3.2、P3.3、P3.4、P3.5、P3.6、驱动LED发光分别显示“报到”、“同意”、“反对”、“弃权”、“发言”的状态。以便表决人确认。当本机发言请求被允许时P3.7高有效,接通麦克风。
输入输出部分:P3口中的P3.0、P3.1分别为第二功能的串行口接受(RXD)、发送(TXD)端,对应连接RS232集成电路MC1488、MC1489做串行通讯用。
全网络采用±10 V两路供电,以满足RS232工作需求。80C51及其辅助电路的+5 V电源由+10 V经7805稳压获得,以减少电源品种。以上方案为典型的单片机最小系统,充分发挥了单片机的性能。
2.2 主单片机硬件
主单片机任务之一是与各分机联系并采集分机表决结果,统计汇总,经串行口送PC机显示、打印。任务之二用于查询及仲裁各分机的讲话请求。按讲话的优先级发出“通”、“断”串行指令,解决发言竞争问题。与分机相似,主单片机硬件较为简单,P3.0、P3.1做为串行发送、接收口。其它分机及PC机都作为其从机。联为主-从网络。
3 软件设计
3.1 分机主程序及中断服务程序(见图3)
分机主程序初始化串行口为模式3,SM2=1,允许接收,波特率1.2 kHz。循环查询P1.0~P1.4按键状态,当某键按下后先延时12ms去除抖动及干扰,再检查按键,确认后进入相应按键处理程序。将其特征值记入内部RAM,再由P3口驱动对应的LED发光以便操作者确认。
为防止表决结果各项票数总合超出报到人数,程序规定:如未按报到键其它键操作无效。即表决前先行报到。程序设定若“发言”键按下(机械自锁)分机上报主机,经主机查询无“正在”发言状态的分机,则回复分机允许发言。分机收到命令后置P3.7高有效接通麦克风。
分机中断服务程序:当主机经串口发出一地址帧后,各分机进入中断服务程序,首先判断是否为本机地址,不是则返回主程序。是则继续接收命令帧(数据帧)。针对命令做如下回应:分机报到、表决结果特征值;有无讲话请求,开或关麦克风。返回主程序。另外子程序中还针对错误信号做了相应对策,以提高抗干扰能力。
3.2 主机程序(见图4)
系统加电复位后,先执行串口初始化程序,按编号顺序查询分机,并接收分机状态字,放入内存。分机访问完后,对结果分类、统计,并转换为ASCII码。按报到、同意、反对、弃权、未按键的顺序发给PC机,PC机以中断响应方式接收数据。
系统讲话控制策略:分两级“主持”,“成员”。如果“成员”正在发言,“主持”可以中断“成员”发言。同级中先请求发言者优先。
为防止系统启动加电后,分机没完成复位,主机先行查询致使通讯失败。主机在上电复位后软件程序延时20 ms以确保分机进入工作状态后,主机再访问。
3.3 串行通讯的约定
所有分机的SM2(SCON5)位置1,使它们置于接收地址帧状态;主机发送一帧地址信息,包含8位地址,第9位置1表示发送的是地址;分机接收到地址帧,各自中断响应,比较收到地址是否是本机。被寻址的分机清除SM2,以接收主机发来的后续命令。未被寻址的分机仍保持SM2= 1,直至收到新的地址帧。主机发送命令帧0AAH(第9位为0)给被寻址的分机。分机接收到命令帧,判是否为0AAH?是发分机结果及讲话请求状态,否调用调麦克风控制程序。分机地址编号可从0至FEH,本例为0到15H。共21位表决人。指定PC机地址为FFH。
单片机 相关文章:
- FPGA的DSP性能揭秘(06-16)
- 基于单片机通用引脚的软件UART设计(10-16)
- 分时操作系统思想在单片机中的具体应用 (10-30)
- 基于AT89C51+DSP的双CPU伺服运动控制器的研究(05-26)
- 关于RTX51 TINY的分析与探讨(05-30)
- 基于MC9S12DGl28单片机的智能寻迹车设计(04-03)