你的位置: 首页 > 家电弱电 > 单片机

8255与单片机接口实例

2016-12-21 17:37:21 | 人围观 | 评论:

1 8255B口输入8位数据,然后从8255A口输出。

解:设置8255A口为基本I/O输出方式,8255B口为基本I/O输入方式。先从8255B口输入8位数据到累加器A,然后将累加器中的8位数据输出到8255A口,重复上述过程。

2  编写交通灯控制程序。用8255A口的PA7PA6PA5控制南北方向的红、黄、绿灯,用8255A口的PA0PA1PA2控制东西方向的红、黄、绿灯,如图8-11所示。控制方式为:东西方向通行30秒后,黄灯亮1秒,再南北方向通行30秒后,黄灯亮1秒,按上述方式不断循环。

 <?XML:NAMESPACE PREFIX = O />

解:(1)分析:

开始时,假设东西方向先通行,即东西方向为绿灯(PA2=1),南北方向为红灯(PA7=1)。显然,送入8255A口的控制码为10000100=84H30秒延时后黄灯亮,黄灯亮的控制码为42H。延时1秒后,南北方向通行,南北方向通行的控制码为21H。然后延时30秒依次循环。具体工作过程如下:     

由上述分析可知,只要将8255A口设置成基本I/O输出方式,然后将交通灯的控制码依次输出到A口,并作30秒或1秒的延时,则可编写出如下的交通灯控制程序。

2)流程图如图8-19所示

3)源程序

延时1秒与30秒子程序由读者自行编写。

思考题:

在上题的基础上,如何编写在八段显示管DG1DG0上,能显示30秒倒计时的交通灯程序。

提示:将延时程序,改为调用倒计时显示子程序,该子程序的流程图如图8-12所示。在图中用41H单元作为倒计数单元,延时秒数(30秒或1秒)输入41H单元中。图8-13为定时器T0延时20ms中断处理程序,流程图中内容由读者自已理解,程序也由读者自己编写。

编程时请注意,图8-202)中:(41H)←(41H)-1要用十进制减法运算。





标签:

相关内容推荐: