资源描述:
《《A应用举例必看》PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、例1:CPU通过8255A控制8个开关和发光二极管,要求发光二极管的亮灭和开关状态一致,设计电路并编写程序。解析:可以认为,处于方式0输出工作状态的PA、PB、PC端口实际上等同一个锁存器,而处于方式0输入工作状态的PA、PB、PC端口实际上等同一个缓冲器。电路如图所示。图18255控制开关、发光二极管电路首先根据电路确定8255A4个端口的地址。确定端口地址用下述方法进行,为了能够访问8255A,必须使8255A的片选信号CS=0,A9~A4的信号必须如下:A9A8A7A6A5A4A3A210011000PA端口01PB端口1
2、0PC端口11控制端口而A3、A2的组合和各个端口地址的关系也如上所示,由于A1、A0没有参与译码,其值对访问端口没有影响。综合以上讨论可以得出,PA、PB、PC和控制端口的地址分别是260H、264H、268H和26CH。在确定工作方式控制字时必须知道,PA端口为方式0输出,PB端口为方式0输入,而PC端口没有参与电路工作,其输入输出方式随意,由此可确定控制字为82H。10000010控制电路工作并使其保证开关状态和发光二极管亮灭一致的程序如下:MOVDX,26CHMOVAL,82HOUTDX,ALMOVDX,264HINAL
3、,DXNOTALMOVDX,260HOUTDX,AL例2:用一片8255A连接8个7段数码显示管,规定8255A的端口地址范围为340H~34FH,用74LS138译码器实现8255A的片选电路,并根据电路编写在8个7段数码管上显示数字0~7的程序。解:在设计电路前,首先要了解7段数码管,掌握数码管显示数字的原理。图2-1给出了共阴极7段数码管逻辑结构图。bcadfegabcdefgcomabcdefgcom(a)7段发光二极管标号(b)对应电路图(c)引脚分布图2-1共阴极7段数码管逻辑结构从图2-1可以看出。当com端接低电
4、平,a~g端接高电平,对应的发光二极管就发亮。如果想在7段数码管上显示数字0,需要在com端接低电平,a、b、c、d、e、f端接高电平,g端接低电平。七段数码管的字形代码表如下:显示字形gfedcba段码001111113fh1011000030h210110115bh310011114fh4110011066h511011016dh611111017dh7000011107h一片8255A只需4个端口地址,而题中给出的地址范围由16个地址,这意味着低4位地址中有些地址可以不参加地址译码。设计电路的第一部还需要设计出片选电路。必
5、须用指定地址范围内状态不变的地址信号作为片选电路的输入信号。A9A8A7A6A5A4A3A2A1A01101000000340H110100111134FH从上述分析中可以看出,指定地址范围内状态不变的地址信号是A9A8A7A6A5A4它们的状态分别是110100,这意味着A9~A4上出现的信号状态为110100,8255A的CS必须为低电平。下面讨论如何用74LS138译码器实现这一功能。设计片选电路的基本原则是:用A9~A4作为74LS138的输入,用74LS138其中一个输出Yi去连接8255的CS,当且仅当A9~A4=1
6、10100时,Yi才能变为低电平。图2-2中,用A6、A5、A4分别连接74LS138的G、G2A、G2B,只有当A6A5A4=100时74LS138才能进行译码操作,用A9、A8、A7分别连接74LS138的C、B、A,而用Y6输出连接8255的CS,这样,只有当A9A8A7=110时,Y6输出为低电平。图2-2 用74LS138译码器实现8255的片选电路用一片8255A连接8个7段数码管。且使8个7段数码管显示8个不同的数字。开始,似乎感到有点困难。实际上,任何时刻只显示一个7段数码管,其余7个7段数码管都没有显示状态,C
7、PU通过8255A逐个显示7段数码管,并在不同的7段数码管上显示不同的数字。在逐个显示完8个数码管后,又开始新一轮的逐个显示过程,当这个循环周期间隔足够短时,由于人的眼睛有滞后效应,使得人们发现每一个数码管都出于显示状态,且显示不同的数字。从电路中可以得出,8255A4个端口的地址分别是:340H(PA端口)、344H(PB端口)348H(PC端口)、34CH(控制口)程序的设计思路是先通过PB端口选中某个数码管(使其公共端为低电平),然后再从PA端口输出选中的数码管所对应的显示码,在完成当前数码管显示后,显示下一个数码管,在完
8、成一轮显示后,开始下一轮的显示。datasegmentorg100hbuff1db3fh,30h,5bh,4fh,66h,6dh,7dh,07h;定义0~7的显示码buff2db0feh,0fdh,0fbh,0f7h,0efh,0dfh,0bfh,7fh;定义位