8914|11

73

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

51单片机与8255的连接控制问题 [复制链接]

最近正在做一个小实验,就是利用51连接8255控制端口输出。
简言之,我想控制8个二极管,以前是直接用P1口控制,比如输入P1=0xfe;我现在想试试将8255与51相连,8个灯与8255的PA口相连,但小弟不知两点:1、8255与51引脚如何连线;2、51如何通过控制8255将所需输出的信息(如0xfe)送到PA口。
请大家帮忙解一下,最好写上一小段C程序(不需要全部了,大约包含初始化8255、将0xfe送到PA口就行了)

感谢大家啊,这点我不太懂,昨夜搞到夜里3点也没弄出个样子~~

最新回复

有点问题。你应该对PA的地址进行定义,然后直接就能对PA进行赋值了  详情 回复 发表于 2011-7-1 13:44
点赞 关注

回复
举报

64

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
这样和你说对51来说8255是他的一个设备,51对设备的操作是由一个地址、8255有A口、B口、C口、和一个控制端口中、对控制端口写入数据就是对A、B、C口的模式控制设置好模式后就可以对口的操作
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
应该看看数据手册
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

4
 
(*^__^*) 嘻嘻……
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

5
 
引用 1 楼 zhk1124 的回复:
这样和你说对51来说8255是他的一个设备,51对设备的操作是由一个地址、8255有A口、B口、C口、和一个控制端口中、对控制端口写入数据就是对A、B、C口的模式控制设置好模式后就可以对口的操作

嗯,这大概的步骤我是知道的,可就是不知道怎么在51中设置8255,以及如何将数据如0xfe从PA口输出。麻烦你帮忙写个小段程序吧,这个我会看的更清楚些,麻烦了~~
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

6
 
建议你看北航的《单片机基础》 有详细的简绍
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

7
 
网上有中文的datasheet。楼主可以去参考。

其实8255,就是一个并口扩展出3个并口,至于你当前使能哪个并口,就靠A0.A1来选择。当A0=1,A1=1时就选择控制寄存器。
不知道楼主对硬件了解多少,其实它就相当于三个数据锁存器。然后通过A0,A1来切换使能这个三个锁存器。
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

8
 
引用 6 楼 peasant_lee 的回复:
网上有中文的datasheet。楼主可以去参考。

其实8255,就是一个并口扩展出3个并口,至于你当前使能哪个并口,就靠A0.A1来选择。当A0=1,A1=1时就选择控制寄存器。
不知道楼主对硬件了解多少,其实它就相当于三个数据锁存器。然后通过A0,A1来切换使能这个三个锁存器。

嗯,谢谢额,我刚学单片机不久,对它的外围设备还不怎么十分了解~~
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

9
 
不客气,你找到那个datasheet,重点看看,A0,A1两个引脚的作用。当他们取不同值时(四个状态),8255有所变化的。

硬件连线。首先,你的mcu的某一个P口(比如P1口)接到8255的D0-D7。然后用另外一个P口(比如P2口)的某些脚来接8255的几个控制脚(A0,A1,RD,WR,CS)。然后先通过控制这几个控制脚,在适当的时序下,你的P1的数据就有可能从8255的任一并口读进来,或者写出去。你要做的工作是,根据你要实现的功能,配适当的时序(控制控制脚)。
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

10
 
引用 8 楼 peasant_lee 的回复:
不客气,你找到那个datasheet,重点看看,A0,A1两个引脚的作用。当他们取不同值时(四个状态),8255有所变化的。

硬件连线。首先,你的mcu的某一个P口(比如P1口)接到8255的D0-D7。然后用另外一个P口(比如P2口)的某些脚来接8255的几个控制脚(A0,A1,RD,WR,CS)。然后先通过控制这几个控制脚,在适当的时序下,你的P1的数据就有可能从8255的任一并口读进来……

恩,我知道了,可还是不对,请你也请大家帮我看看问题出在哪,我觉得没问题啊
PA口接8只二极管
#include
#include
sbit L1=P2^0;  //接8255的A1
sbit L2=P2^1;  //接A0
sbit L3=P2^2;  //接/RD(低电平有效)
sbit L4=P2^3;  //接/WR(低电平有效)
sbit L5=P2^4;  //接/CS(低电平有效)
main()
{
   L1=1;
   L2=1;
   L3=1;
   L4=0;
   L5=0;
   P1=0x80;  //控制字,选中PA口输出
   L1=0;
   L2=0;
   L3=1;
   L4=0;
   L5=0;
   P1=0xaa; //输出0xaa,二极管(共阴)应该相间亮灭,但全灭(即PA口为0)
   while(1);
}
大家多指点啊,谢谢了~~
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

11
 
顶一下~~
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(中级)

12
 

回复 10楼 lmx5078 的帖子

有点问题。你应该对PA的地址进行定义,然后直接就能对PA进行赋值了
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表