片8255的片选信号CS一片连接各个8255的控制端口A1和A0。通过3个单脉冲开关按钮实现对整个电路的控制。原理框图如下所示
f3硬件原理电路图的设计及分析31整体电路图
f32各模块功能原理分析
321CPU模块
选定8086工作在最小模式下地址选通信
号连接两片74LS373用于地址锁存RD和WR
信号连接3片8255的RD和WR引脚。
32274LS373模块
CPU的总线连到两片74LS373的输入端
AD0AD7接第一片用于三片8255和8253的
A1、A0的选择控制AD8AD15接第二片用
于连到74LS138并对三片8255和8253的CS
片选信号进行选择。LE信号连接CPU的地址
选通引脚ALEOE信号固定接地使之一直能
够把锁存器中的数据传送到输出端。
32374LS138模块
74LS138为常用的三线八线译码器我们用
它来进行3片8255和8253的选择设置E1、
E2、E3为有效电平使之工作CBA为三线输入
000选择Y0端口输出001选择Y1端口010
选择Y2端口100选择Y4端口。
由此三片8255和8253的端口地址已经可以确定如下表所示
端口IOAOUT0IOBOUT1IOCOUT2IOCONCON18255A08000H8002H8004H8006H
8255A19000H9008H9010H9018H
8255A20A000H0A020H0A040H0A060H
8253A0C000H0C002H0C004H0C006H
3248253模块
8253是定时计数器使计时器0工作在模式3
我们设置为60次记01公里。实现了车轮转速和公
里数的转换。
f3258255模块
8255是通用的并行接口在本次设计中
我们把PA口当做输入PB和PC口当做输出
PB07和PC14连接LED灯做控制和显示作
用。由于三片8255的连线一致所以我们把控
制字统一设置为90H使PA口做输入工作
在方式0PB口做输出亦工作在方式0PC
的高四位和低四位都工作在输出状态。
3267段LED数码管显示模块
7段LED数码管分为共阳极和共阴极
两种本次设计我们采用共阴极
ABCDEFG是每一段LED的引脚1234
为位选通信号由于是共阴极所以是低
电平有效采用动态显示的方法显示每一
位数码管。由此可以得到数字09相
对的ABCDEFG电平如下表所示
0123456789
3FH06H5BH4FH66H6DH7DH07H7FH6FH
若要加入小数点显示则十六进制的第二位全部加8即可具体如下表所示
0123456789
0BFH86H0DBH0CFH0E6H0EDH0FDH87H0FFH0EFH
f4程序设计与分析41程序框图
f42各模块程序分析
DATASEGMENT
COUNTDB05单价计数器初值为5COUNT1DB00公里计数器初值为0SHIWEIDB单价十位
GEWEIDB单价个位
BAIWEI1DB公里百位
SHIWEI1DB公里十位
GEWEI1DB公里个位
BAIWEI2DB总价百位
SHIWEI2DB总价十位
GEWEI2DB总价个位
TEMPDB0以下三个为按钮判断值TEMP1DB0
TEMP2DB0
SEGTABDB3FH06H5BH4FH66H
DB6DH7DH07H7FH6FH
不带小数点的7段LED数码管码制SEGTAB1DB0BFH86H0DBH0CFH0E6H
DB0EDH0FDH87H0FFH0EFHr