图3-9 8255的工作方式选择控制字
C口置/复位控制字:
8255C口8位中的任意一位可进行位操作,该操作是通过写入控制口的置位/复位控制字实现的。各位含义如图3-10所示。
图3-10 C口置/复位控制字
由于8255的工作方式选择控制字与C口置/复位控制字共用一个控制寄存器,故特别设置D7为标志位,D7=0表示控制寄存器为C口置/复位控制字,D7 = 1表示为工作方式选择控制字。D6D5D4不用,常取000。D3D2D1为C口8个引脚PC0~PC7的选择位。D0为置位或清0选择位。
系统8255扩展如图3-11,采用8255扩展芯片,74LS373锁存芯片和74LS138译码器来对87C51单片机进行扩展。
18
10k10k343332313029282753698356ABCE1E2E3Y0Y1Y2Y3Y4Y5Y6Y715141312111097D0D1D2D3D4D5D6D7RDWRA0A1RESETCSPA0PA1PA2PA3PA4PA5PA6PA7PB0PB1PB2PB3PB4PB5PB6PB7PC0PC1PC2PC3PC4PC5PC6PC78255A432140393837181920212223242514151617131211101918XTAL1XTAL29RSTP0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD393837363534333221222324252627281011121314151617347813141718111D0D1D2D3D4D5D6D7OELE74LS373123645Q0Q1Q2Q3Q4Q5Q6Q7256912151619293031PSENALEEA12345678P1.0/T2P1.1/T2EXP1.2/ECIP1.3/CEX0P1.4/CEX1P1.5/CEX2P1.6/CEX3P1.7/CEX4P87C51FA2374ALS138 图3-11 8255扩展图 2.6 显示器接口设计 1.LED显示器的结构与原理 常用的LED显示器为8段(a.b.c.d.e.f.g.dp段),每一段对应一个发光二级管,其中DP为小数点。这种显示器有共阴极和共阳极两种。结构分别如图3-12所示。
19
图3-12 引脚结构
其中:从a—g管脚输入不同的段码,可显示不同的数字或字符。共阴极和
共阳极的字段码互为反码 。
2.LED显示器工作原理 2.1 LED静态显示方式
LED显示器工作于静态显示方式时,各位的共阴极(或共阳极)连接在一起并接地(或十5V);每位的段选线(a—dp)分别与8位的锁存输出相连。显示器中的各位相互独立,而且各位的显示字符一经确定,相应锁存器的输出将维持不变,直到显示另一个字符为止。也正因为如此,静态显示器的亮度都较高。
该电路各位可独立显示,由于各位分别由一个8位输出口控制段选码,故在同一时间里,每一位显示的字符可以各不相同。这种显示方式接口,编程容易,付出的代价是占用口线较多。如果显示器位数增多,则静态显示方式更是无法适应。因此在显示位数较多的情况下,一般都采用动态显示方式。 2.2 LED动态显示方式
在多位LED显示时,为了简化硬件电路,通常将所有位的段选线相应地并联
在一起,由一个8位I/O口控制,形成段选线的多路复用。而各位的共阳极或共阴极分别由相应的I/O口线控制,实现各位的分时选通。
其中段选线占用一个8位I/O口,而位选线占用一个位选I/O口。由于各 位的段选线并联,段选码的输出对各位来说都是相同的。因此,在同一时刻,只让某一位的位选线处于选通状态,而其它各位的位选线处于关闭状态,同时,段选线上输出相应位要显示字符的字型码即可。如此循环下去,就可以使各位显示出将要显示的字符,虽然这些字符是在不同时刻出现的,而且同—时刻,只有一位显示,其它各位熄灭,但由于人眼有视觉暂留现象,只要每位显示间隔足够短便可造成多位同时亮的假象,达到显示的目的。
LED不同位显示的时间间隔可以通过定时中断完成。如对8位LED显示器,
扫描显示频率为50Hz,假若显示一位保持1ms时间.则显示完所有8位之后,只需8ms,于是另外12msCPU完全可以处理其它工作。上述保持1ms的时间应根据实际情况而定。不能太小,因为发光二极管从导通到发光有一定的延时,导通时间太小,发光太弱人眼无法看清。但也不能大大,因为毕竞要受限于临界闪烁频率,而且此时间越长,占用CPU时间也越多。另外,显示位增多,也将占用大量的CPU时间,因此动态显示实质是以牺牲CPU时间换取元件和能耗的减少。
20
3. LED显示器与单片机的接口 3.1 静态显示
图3-13是一个两位数码管硬件译码静态显示的接口电路图。
图3-13 硬件静态译码显示接口
3.2 动态显示
图3-14是一个8位动态显示的接口电路图。图中用数据锁存器提高驱动能力接LED显示器,LED显示器采用动态显示方式,位选线与8051的P1口位线相连,段码线通过数据锁存器分别与8051的P0口相连。P1口输出段码数据使LED显示器显示相应的字符。
图3-14 动态显示
4. 系统显示电路:
本机显示采用动态显示,系统显示电路如图3-13所示。 采用动态显示的理由如下:
1)如果用静态显示,单片机的接口资源肯定不够用,那么还要进行接口的扩展,增加了系统的复杂度。
2)如果要制成印刷线路板,得占相当大一块面积。
21
3)另外,采用动态显示,可以明显的降低功耗,因为每一时刻只有一个LED发光,其功耗为静态显示的1/8。一个LED最大电流为120mA,如用静态显示,8个LED就耗电流960mA,那么变压器就得选32V/32W,价格提高近一倍,稳压块得选7805C(Im=1A),这种管是椭圆壳,在印刷线路板上也得占相当大的面积。综上分析,采用动态显示才是最经济的方案。
在显示的时候,只要把显示的字码输送到P2口,再经过74LS373进行数据锁存,P3口作为位选控制信号。由于采用的是共阴极数码管,当需要显示哪一位的时候,只要在相应的位选控制信号输出低电平就行。例如,要在第一个数码管显示P,那么在P2口就要输出73H字段码,同时P3口输出FEH位选码。
)10k10k10k10k10k10k1210k10k343332313029282753698356D0D1D2D3D4D5D6D7RDWRA0A1RESETCSPA0PA1PA2PA3PA4PA5PA6PA7PB0PB1PB2PB3PB4PB5PB6PB7PC0PC1PC2PC3PC4PC5PC6PC78255A43214039383718192021222324251415161713121110401064010640106401064010610401064010624340106246113359811R10(2)110k 图3-15 系统显示电路 2.7 4*4行列式键盘设计 键盘如3-16图在单片机应用系统中,实现输入数据、传送命令的功能。是人工 干预的主要手段。键盘分两大类:编码键盘和非编码键盘。
编码键盘:编码键盘本身带有实现接口主要功能所需的硬件电路,不仅能自动检测被按下的键并完成去抖动防串键等功能,而且能提供与被按键功能对应的
22