单片机C语言-第7章-并行扩展的C51编程-2课件_第1页
单片机C语言-第7章-并行扩展的C51编程-2课件_第2页
单片机C语言-第7章-并行扩展的C51编程-2课件_第3页
单片机C语言-第7章-并行扩展的C51编程-2课件_第4页
单片机C语言-第7章-并行扩展的C51编程-2课件_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1、8255内部结构7.2 可编程的I/O接口芯片8255A1、8255内部结构7.2 可编程的I/O接口芯片8255 2、8255A组成 8255A是一种通用的可编程并行I/O接口芯片,具有3个8位并行端口: (1) PA口:一个8位数据输出锁存器和缓冲器,一个8位数据输入锁存器; (2) PB口:一个8位数据输出锁存器/缓冲器,一个8位数据输入锁存器/缓冲器; (3) PC口:一个8位数据输出锁存器/缓冲器,一个8位数据输入缓冲器。 3个端口分2组控制: A组控制A口和C口的上半部; B组控制B口和C口的下半部。 3种可编程工作方式: 方式0:基本输入/输出方式 方式1:选通输入/输出方式

2、 方式2:双向总线方式(A口具有) 2、8255A组成3、外部引脚片选:CS读信号:WR写信号:RD端口选择:A1 A0 A1 A0 0 0 PA口 0 1 PB口 1 0 PC口 1 1 控制寄存器端口8255有4个端口地址: PA口、PB口、PC口、控制端口 3、外部引脚片选:CS4、8255A的控制字(1)方式控制字例如:设置8255A工作于方式0,且PA口为输出、PB口为输出、PC口为输入,则控制字为: 10001001B,即89H。4、8255A的控制字(1)方式控制字例如:设置8255A(2)PC口的置位/复位控制字例如:PC3置1,则控制字为:00000111B,即07H(2)P

3、C口的置位/复位控制字例如:PC3置1,则控制字为:5、工作方式方式0:基本输入/输出方式 无应答输入/输出场合,A口和B口可作为8位端口,C口的高4位和低4位可作为两个4位的端口。这4个端口的任何一个既可作为输入端口,又可作为输出端口,从而构成16种不同的输入/输出组合。C口的两半部分可构成一个8位端口。8255可构成3个8位的I/O端口,或者2个8位的I/O端口、 2个4位的I/O端口。5、工作方式方式0:基本输入/输出方式 无应答输入/输出方式1(应答输入/输出方式)在联络信号控制下进行的单向输入或单向输出工作方式,只有A和B口具有方式1,C口用作A口和B口的联络线。 如果一个口工作在方

4、式1,需要3根线产生或接收这些联络信号。方式2(双向总线方式)在联络信号控制下进行的既能输入又能输出的工作方式,只有A口才具有方式2,C口的PC3PC7作为联络线;B口及PC0PC3可设置为方式0或方式1。方式1(应答输入/输出方式)在联络信号控制下进行的单向输【例7-1】8255A的扩展举例。通过8255A扩展3个并行的I/O口,将PA的输入通过PB和PC输出。【例7-1】8255A的扩展举例。通过8255A扩展3个并#include#include#define PA XBYTE0 xfffc#define PB XBYTE0 xfffd#define PC XBYTE0 xfffe#de

5、fine PK XBYTE0 xffffvoid main( ) PK=0 x90; while(1) PB=PA; PC=PA; #include【例7-2】通过Intel8255A的PA、PB、PC0口作为三位共阴极数码管静态显示的输出口。静态轮流显示“123”和“ABC”。【例7-2】通过Intel8255A的PA、PB、PC0口作#include#include#define uchar unsigned char#define uint unsigned int#define COM8255 XBYTE0 xbfff#define PA8255 XBYTE0 xbcff#define

6、 PB8255 XBYTE0 xbdff#define PC8255 XBYTE0 xbeffuchar data dis_buf3;/显示缓冲区uchar code table18=0 x06,0 x5b,0 x4f,0 x77,0 x7c,0 x39; /显示的代码表 1、2、3、A、B、Cvoid dl(uint x ) /延时Xms uint t1,t2; for(t1=0; t1x; t1+) for(t2=0; t2120; t2+) ;#includevoid display(void)/显示函数 PA8255=tabledis_buf0; PB8255=tabledis_buf

7、1; PC8255=tabledis_buf2;void main(void)COM8255=0 x80;/8255A初始化while(1) dis_buf0=0;dis_buf1=1;dis_buf2=2;/显示123display( ); dl(500 ); dis_buf0=3;dis_buf1=4;dis_buf2=5;/显示ABC display( ); dl(500 );void display(void)/显示函数【例7-3】通过Intel8255A的PA、PB口作为6位共阴极数码管动态显示的输出口。【例7-3】通过Intel8255A的PA、PB口作为6位共#include#i

8、nclude#define uchar unsigned char#define uint unsigned int#define COM8255 XBYTE0 xbfff#define PA8255 XBYTE0 xbcff#define PB8255 XBYTE0 xbdff#define PC8255 XBYTE0 xbeffuchar data dis_buf6; /显示缓冲区uchar code table18=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f,0 x77,0 x7c,0 x39,0 x5e,0 x

9、79,0 x71,0 x40,0 x00;void dl_lms( );#includevoid display( ) data uchar segcode, bitcode, i; bitcode=0 xfe; for(i=0;i6;i+) segcode=dis_bufi; PA8255 =table segcode; PC8255=bitcode; dl_lms( ); PC8255=0 xff; bitcode=bitcode1; bitcode=bitcode|0 x01; void display( )void main(void) unsigned int i1; COM8255=0 x80;/8255A初始化 while(1) dis_buf0=1;dis_buf1=2; dis_buf2=3;dis_buf3=4; dis_buf4=5;dis_buf5=6; display( ); for(i1=0;i1300;i1+) display( ); void main(void) dis_buf0=10;dis_buf1=11; dis_buf2=12;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论