8031与8155扩展:非编码键盘扫描程序设计

1 下载量 168 浏览量 更新于2024-06-24 收藏 347KB DOCX 举报
本次课程设计的目标是利用8031微控制器和8155扩展I/O口设计一个非编码键盘的扫描程序。学生需要构建一个6×6的行列式键盘,实现键盘的扫描和去抖动功能,并撰写设计说明书。 在设计过程中,首要任务是扩展I/O口以构建键盘矩阵。8155芯片是一种可编程I/O接口芯片,它提供额外的输入输出端口,便于扩展8031微控制器的外部设备接口能力。8155通常用于扩展存储器和控制接口,如在这种情况下用于键盘的行列扫描。 非编码键盘不包含内部编码电路,因此需要通过外部硬件和软件来识别按下的键。为了实现键盘扫描,设计者需要编写特定的程序,定期扫描行线和列线,通过检测电压变化来判断是否有按键按下。在此过程中,去抖动是关键步骤,因为机械开关的抖动可能导致误读。软件去抖动方法通常通过在读取开关状态后等待一段时间再次读取来实现,如果两次读取结果一致,则确认开关状态改变。 课程设计分为几个阶段:先是对任务进行理解和资料准备,然后进行硬件设计,接着编写和调试程序,最后撰写设计说明书。硬件设计部分涉及到绘制电路图,这可以通过像Protues这样的仿真软件完成。编程语言选择汇编语言,因为它对底层硬件控制有较好的支持。 在方案比较和确定阶段,讨论了去抖动的不同方法,包括硬件和软件方案。软件去抖动方案因其灵活性和较低的成本而被选中。此外,设计者需要确保键盘的每个按键都能被正确识别,这涉及到键盘扫描算法的设计,以及如何处理多个按键同时按下(多键冲突)的问题。 关键词涉及的8155芯片,是设计中的核心组件,它提供了扩展I/O口的能力。矩阵键盘的扫描则涉及到对行和列的轮流检测,以确定哪个按键被按下。而去抖动则是为了提高键盘输入的稳定性和准确性。 这个课程设计项目旨在提升学生在微控制器应用、I/O扩展、键盘扫描以及软件去抖动等方面的技术能力,同时通过实践加深对8031和8155芯片的理解。设计者在完成项目的过程中,不仅需要掌握硬件电路设计和编程,还需要具备良好的问题解决和文档编写技能。