单片机C语言第7章并行扩展的C51编程2课件.ppt

上传人:牧羊曲112 文档编号:1311528 上传时间:2022-11-07 格式:PPT 页数:17 大小:473.10KB
返回 下载 相关 举报
单片机C语言第7章并行扩展的C51编程2课件.ppt_第1页
第1页 / 共17页
单片机C语言第7章并行扩展的C51编程2课件.ppt_第2页
第2页 / 共17页
单片机C语言第7章并行扩展的C51编程2课件.ppt_第3页
第3页 / 共17页
单片机C语言第7章并行扩展的C51编程2课件.ppt_第4页
第4页 / 共17页
单片机C语言第7章并行扩展的C51编程2课件.ppt_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《单片机C语言第7章并行扩展的C51编程2课件.ppt》由会员分享,可在线阅读,更多相关《单片机C语言第7章并行扩展的C51编程2课件.ppt(17页珍藏版)》请在三一办公上搜索。

1、1、8255内部结构,7.2 可编程的I/O接口芯片8255A,1、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、外部引脚片选:CS,4、8255A的控制字(1)方式控制字,例如:设置8255A工作于方式0,且PA口为输出、PB口为输出、PC口为输入,则控制字为: 10001001B,即89H。,4、8255A的控制字(1)方式控制字例如:设置8255A,(2)PC口的置位/复位控制字,例如:PC3置1,则控制字为:00000111B

3、,即07H,(2)PC口的置位/复位控制字例如: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

5、PC XBYTE0 xfffe#define 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 PA82

6、55 XBYTE0 xbcff#define 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+) ;,#include,void display(void)/显示函数 PA8255=tabledis_b

7、uf0; PB8255=tabledis_buf1; 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】通过Intel

8、8255A的PA、PB口作为6位共,#include#include#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

9、,0 x77,0 x7c,0 x39,0 x5e,0 x79,0 x71,0 x40,0 x00;void dl_lms( );,#include,void 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 mai

10、n(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;dis_buf3=13; dis_buf4=14;dis_buf5=15; display( ); for(i1=0;i1300;i1+) display( ); void dl_lms( ) data unsigned int d; for(d=0;d125;d+) ;,dis_buf0=10;dis,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号