基于8031与8255A的二位LED单片机多功能计算器设计

2017-03-16 70 0

设计要求:设计4×4键盘(10个数字键0~9,其余6个为“+”、“-”、“*”、“/”、“=”、“C”);设计二位LED接口电路;实现一位数的简单运算。

硬件设计
1. LED接口电路:用8031单片机经8255A扩展2位8段码LED显示器,8255A的A口作为段码(字形代码)数据口,PB0、PB1作为位控制端口。位控制口加集电极开路反相高压驱动器74LS06,提供驱动LED所需的足够大电流后接各数码管共阴极端;段码数据口通过集电极开路同相高压驱动器74LS07后接各段。
2. 键盘接口电路:需4×4行列式键盘,用8255A的B口和C口扩展——B口高4位作输出口、C口低4位作输入口。
3. 逻辑电路:将LED接口电路与键盘接口电路结合即得计算器逻辑电路。

软件设计
1. LED显示:七段LED显示器排列成“8”字形,加小数点共8段,字形代码长恰一个字节;给出数字0~9的共阴极字形代码表(0x3F、0x06、0x5B、0x4F、0x66、0x6D、0x7D、0x07、0x7F、0x6F)。
2. 读键输入:采用行扫描法识别按键,每个键对应一个键码。
3. 主程序:初始化后低位显示“0”、高位熄灭;扫描键盘,判断键码为数字键、清零键还是功能键(“+”“-”“*”“/”“=”)。数字键送显示并保存数值,清零键清屏,功能键中“=”计算最终结果、运算键则保存对应运算程序首地址。

提供完整的汇编源程序,实现显示、读键、加减乘除运算及清零功能。源码主体(含OUTBIT/OUTSEG端口定义、LEDMAP段码表、DisplayLED显示子程序、GetKey行扫描读键、Jia/Jian/Cheng/Chu运算子程序等)详见附图。

系统调试与注意事项:①打开程序须以项目形式编译运行,而非单文件;②使用WAVE6000前需对仿真器进行设置;③试验箱提供6位LED与4×6键盘,本计算器只用2位LED与4×4键盘,须用软件屏蔽前4位LED与键盘后2列;④十位无数字时不显示“0”(而作清零后个位显示“0”、其他位熄灭)。

相关文章

BTL桥式推挽功率放大器及其应用
基于MC145026/MC145027的无线鼠标改造电路
基于CD4069/CD4017/CD40174的五路平面彩灯控制器
小型变压器的设计原则和技巧
Protel 99 SE操作环境及特点
热转印法制作PCB板(一):原理与打印设置

发布评论