361微机原理-基于8086投票器积分器系统设计
基于 8086 的投票器积分器系统设计
项目简介
投票表决类课设的难点不在按键本身,而在于多路输入怎样稳定汇总成一个可判断的结果。
这份设计以 8086 最小系统为核心,配合 8255 完成八路投票信号采集,再把统计结果送到数码管和 LED 端口显示,适合拿来练习 I/O 扩展、票数统计和表决判定这三部分内容。
从系统结构看,按钮开关只是前端入口,真正的重点在后端的数据整理。
八位输入如何采样、票数如何累加、通过与否怎样给出明确指示,决定了整个投票器是不是像一套完整装置,而不只是几个开关加几只灯的拼接。
相关资料截图
图一

图二

主要功能
- 支持八位投票按钮输入,模拟八名表决人员的投票动作
- 通过 8255 采集多路输入状态并送入 8086 处理
- 以七段数码管显示当前统计票数
- 通过 LED 给出是否通过决议的结果指示
方案设计
整套方案采用“输入采集、结果统计、结论显示”三层结构。
前端开关作为表决源,8255 负责把离散的输入状态整理成 CPU 可读取的数据,8086 完成计票和比较,最后再由输出端口驱动数码管和结果指示灯。
这类题目适合用接口方式来做,而不是把逻辑全部堆到单一循环里。
地址锁存、片选译码和并行口分工明确之后,程序结构会清楚很多,后续无论是扩展投票人数,还是增加复位和重计票逻辑,都比较顺手。
模块设计
1. 投票输入模块
八个按钮分别代表八路投票信号。
程序读取的不是某一个人的状态,而是一组并行输入的整体状态,这正是 8255 在这类课设里最常见的用法。
2. 统计判决模块
8086 在这一层完成票数累加以及“通过”“未通过”的判定。
票数统计和结果判断最好建立在同一次采样结果上,避免票数与结论显示不同步。
3. 显示输出模块
数码管负责显示总票数,LED 负责显示决议结果。
一个偏数量,一个偏结论,分工简单但非常直观。
程序流程与实现重点
系统上电后先完成 8255 和相关地址译码电路的初始化,把显示端口置于默认状态。
主循环中不断读取八位按钮输入,对当前有效票数进行统计,再根据设定的判决规则输出到数码管和 LED。
实现时要特别注意两点。
一是输入采样不能漏读或重复计数,二是显示刷新必须跟随最新统计结果同步更新,否则票数和表决灯不同步,整个系统看上去就会失去可信度。
调试与分析
投票器题目最容易出问题的地方,是按键状态切换瞬间带来的重复触发。
如果没有把一次投票过程和持续按下状态区分开,程序就可能把同一票重复累加。
另一个常见问题是“通过条件”没有提前定义清楚。
是半数通过、过半通过,还是必须全员参与之后再判断,应该在程序入口处就固定下来,否则系统虽然能亮能显,逻辑却站不住。
结语
这类投票器设计很适合作为 8086 并行接口课程的综合练习。
它把开关输入、并口扩展、数码管显示和结果判决串成了一条完整链路,做完之后,对多路输入汇总类题目的理解会明显更稳。

浙公网安备 33010602011771号