8255的C语言编程

8255的C语言编程,第1张

P0口不像P1P2P3那样内部有上拉电阻。若要输出高电平要接上拉电阻。

单片机不要直接连8255,P0通过一个地址锁存器(74LS373)连8255.要用p0口先发控制字,连在8255的A0A1和CS上。

A1A0若为01、10、11,分别选中8255的B口C口和控制口。若通过锁存器连在)P0.1和P0.0,地址用16为表示,没用到的端口设为1,则FF7CH、FF7DH、FF7EH、FF7FH分别是8255的ABC及控制口的地址。具体看你的硬件电路了。所以没有固定的。

先给控制口发工作方式,如段掘90H代表工作方式0。然后再与需要用到的口传输数据。不知道有没有芦尘说清楚。

你找一本单片机书好好看看,汇编并不难,看明白汇编,单片机就理解差不多了。握哗核

8255

管脚图的链接:

http://baike.baidu.com/image/58af236d558d92ce43169488

下面是8255

管脚设置,具体代码要看原理图中各管脚的连接情况。

reset

=

0

禁止复位

cs

=

0wr

=

0//允许CPU将数据或控制字写入8255

//

A1=1.A0=1;选择.控制寄存器

//假设00001111控制D口的数据,从A口输出;11110000控制D口的数据,从B口输出;实际情况由实际管脚连接决定。

d0

=

d1=d2=

d3=0

d4

=

d5=d6=d7

=

1

A1=0;A0=0;慎隐选择PA口

//pa口--数码管的段选

//根据原理图设置pa口各引脚,假设使pa输出00000001控制第1个数码管

pa0

=

pa1=pa2=pa3=pa4=pa5=pa6=

0

pa7

=

1

A1=0;A0=1;选择PB口

//PB口--数码管的位选

//根据原理图设置pb口各引脚,假设使pb输出00000001控制数码管显示0

pa0

=

pa1=pa2=pa3=pa4=pa5=pa6=

0

pa7

=

1

//=========

A1=1.A0=1;选择.控制寄存器

//假设00001111控制D口的数据,从A口输出;11110000控制D口的数据,从B口输出;实际情况由实际管脚连接决定。

d0

=

d1=d2=

d3=1

d4

=

d5=d6=d7

=

0

A1=0;A0=0;选择PA口

//pa口--数码管的段选丛隐

//根据原理图设置pa口各引脚,假设使pa输出00000010控制第2个数码管

pa0

=

pa1=pa2=pa3=pa4=pa5=pa7=

0

pa6

=

1

A1=0;A0=1;选择PB口

//PB口--数码管的位选

//根据原理图设置pb口各引脚,假设使pb输出00000001控制数码宽郑厅管显示0

pa0

=

pa1=pa2=pa3=pa4=pa5=pa6=

0

pa7

=

1

ADDR_8255A=0X0F

ADDR_8255B=0X00

temp1=ADDR_8255B

if(temp1!=0x00)//条件语句神拆为假

你的控制程序貌似就凳纳没有游粗枣执行!


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12342864.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-22
下一篇2023-05-22

发表评论

登录后才能评论

评论列表(0条)

    保存