收藏 分销(赏)

单片机资源扩展.pptx

上传人:w****g 文档编号:4166615 上传时间:2024-08-08 格式:PPTX 页数:46 大小:2.66MB
下载 相关 举报
单片机资源扩展.pptx_第1页
第1页 / 共46页
单片机资源扩展.pptx_第2页
第2页 / 共46页
单片机资源扩展.pptx_第3页
第3页 / 共46页
单片机资源扩展.pptx_第4页
第4页 / 共46页
单片机资源扩展.pptx_第5页
第5页 / 共46页
点击查看更多>>
资源描述

1、单片机原理及应用单片机原理及应用(第八章(第八章 单片机资源扩展)单片机资源扩展)教学内容教学内容u单片机扩展的总线结构单片机扩展的总线结构u存储器扩展存储器扩展u简单输入简单输入/输出口扩展输出口扩展u可编程并行接口可编程并行接口8255A8255Au可编程接口可编程接口81558155DATE:2024/8/8 周四PAGE:2一、单片机扩展的总线结构4单片机资源扩展的典型结构是总线结构。4各扩展部件通过总线与单片机连接起来,相当于系统中各部件挂在总线上,分时利用总线与CPU通讯。4当选中某部件时,可对该部件进行读写及控制,而其它部件与总线间处于“高阻态”,相当于与总线断开。DATE:20

2、24/8/8 周四PAGE:3一、单片机扩展的总线结构单片机系统的三总线构造方法如下:4以P0口线作数据总线/低位地址总线:先由P0口线作地址总线把低8位地址送锁存器,由锁存器提供给系统,然后再将P0口线作数据总线读写数据,从而实现地址总线的低8位地址信号和数据总线共用P0口线而不产生冲突。4以P2口线作高位地址总线:P2口线最多可提供8位高位地址,加上P0口线提供的低8位地址,最多可提供16位地址,可使单片机系统的寻址范围最大达到64KB。4采用功能引脚形成控制总线:由 RD(P3.6引脚)和 WR(P3.7引脚)作为读写选通信号线;由ALE作为地址锁存信号线,以配合P0口实现分时复用;PS

3、EN以 作为片外程序存储器读选通信号线;以EA 作为片内和片外程序存储器的选择信号。DATE:2024/8/8 周四PAGE:4二、存储器扩展存储器片选方法4线选法:单片机系统的地址线与存储芯片的地址线从低到高依次相接后,由用剩余的高位地址线直接与芯片片选引脚相连作为片选信号。线选法连线简单,但地址空间不连续,适用于扩展容量较小且芯片数目较少的情况。4译码法:单片机系统的地址线与存储芯片的地址线相接后,剩余的高位地址线与译码器相连,以译码器的输出作为芯片的片选信号。译码法能有效利用存储空间,且地址连续,适用于多芯片下的扩展。常用译码器芯片有74LS138等。DATE:2024/8/8 周四PA

4、GE:5二、存储器扩展4程序存储器扩展程序存储器扩展4地址线:地址是由P0和P2口提供的。ROM的地址线(A0A15)中,低8位A0A7通过锁存器74LS373与P0口连接,高8位A8A11直接与P2口的P2.0P2.7连接。4数据线:片外ROM的8位数据线直接与单片机的P0口相连。DATE:2024/8/8 周四PAGE:6二、存储器扩展4控制线:CPU执行ROM中存放的程序指令时,取指阶段就是对ROM进行读操作。读操作控制线有以下几条:地址锁存信号ALE:单片机的ALE管脚与锁存器的锁存使能端,G相连,用于单片机从片外ROM在读指令时给出低8位地址的锁存信号。片选信号CS:低电平有效。如果

5、系统中只扩展了一片程序存储器芯片,可将该片选端直接接地,使该芯片一直有效。若同时扩展多片,需通过线选法或译码法来完成片选工作。读选通信号OE:低电平有效。该引脚接8051的片外ROM读选通信号端PSEN。在访问片外程序存储器时,只要端出现负脉冲,即可从ROM中读出指令或数据。片外程序存储器的选用控制信号EA:当EA引脚接高电平时,CPU只访问单片机内部的程序存储器并执行内部程序存储器中的指令,但当程序存储量超过内部程序存储器的最大容量时,将自动转去执行单片机外部程序存储器内的程序。当输入信号 引脚接低电平(接地)时,CPU只访问外部程序存储器并执行外部程序存储器中的指令。DATE:2024/8

6、/8 周四PAGE:7二、存储器扩展4在执行片外ROM读指令时,单片机自动进行的操作时序:(1)首先由PO口和P2口给出16位地址,然后ALE出现下降沿通知锁存器74LS373将P0口的低8位地址锁存;(2)PSEN出现低电平,使片外ROM有效;(3)根据锁存器74LS373和P2口提供的地址取出指令并送P0口,由P0口读入单片机执行。在上述过程中,数据存储器RAM读写信号端WR和RD一直处于高电平状态,使RAM与总线隔离。DATE:2024/8/8 周四PAGE:8二、存储器扩展二、存储器扩展4例8-1 根据下图电路编写程序用数码管显示0-9共10个数字循环显示。DATE:2024/8/8

7、周四PAGE:9二、存储器扩展二、存储器扩展#includeunsignedcharled=0 xC0,0 xF9,0 xA4,0 xB0,0 x99,0 x92,0 x82,0 xF8,0 x80,0 x90;/字型码字型码intmain(void)unsignedchari;while(1)for(i=0;i10;i+)/循环显示循环显示10个数字个数字P1=ledi;delay();/延时一段时间延时一段时间 DATE:2024/8/8 周四PAGE:10voiddelay()/延时函数延时函数inti,j;for(i=0;i3000;i+)for(j=0;j5;j+);二、存储器扩展二

8、、存储器扩展数据存储器扩展 数据存储器RAM的扩展主要用到以下3个控制信号:ALE:低8位地址锁存控制信号,通常接地址锁存器的LE引脚;WR:外部RAM写信号,低电平有效,接数据存储器的WR引脚;RD:外部RAM读信号,低电平有效,接数据存储器的RD引脚。DATE:2024/8/8 周四PAGE:11二、存储器扩展二、存储器扩展4在执行片外RAM读写指令时,单片机自动进行的操作时序与读ROM相似:(1)首先由PO口和P2口给出16位地址,然后ALE出现下降沿将P0口的低8位地址锁存,改由锁存器74LS373提供;(2)在读数据时RD出现低电平,WR出现高电平,使读片外RAM有效,并根据锁存器7

9、4LS373和P2口提供的地址取出指令并送P0口输出,由P0口读入单片机。(3)在写数据时时首先将数据加载到P0口线上,然后RD引脚出现高电平,WR引脚出现低电平,使写片外RAM有效,并根据锁存器74LS373和P2口提供的地址将P0口线上的数据写入片外RAM。DATE:2024/8/8 周四PAGE:12二、存储器扩展二、存储器扩展4例8-2 根据图8-4编写程序将数码管显示0-9共10个数字的字型码存储到6264中,然后从6264中循环读出字型码并送数码管显示。DATE:2024/8/8 周四PAGE:13二、存储器扩展二、存储器扩展#include#includeunsignedchar

10、led=0 xC0,0 xF9,0 xA4,0 xB0,0 x99,0 x92,0 x82,0 xF8,0 x80,0 x90;/字型码字型码intmain(void)unsignedchari;for(i=0;i10;i+)/存储存储10个数字字型码个数字字型码XBYTE0 x8000+i=ledi;while(1)for(i=0;i10;i+)/循环显示循环显示10个数字个数字P1=XBYTE0 x8000+i;delay();/延时一段时间延时一段时间 DATE:2024/8/8 周四PAGE:14voiddelay()/延时函数延时函数inti,j;for(i=0;i30000;i+)

11、for(j=0;j5;j+);三、简单输入三、简单输入/输出口扩展输出口扩展简单输入/输出口扩展简单输入扩展主要采用三态数据缓冲器实现,目的是使被选通的输入设备能独占数据总线向单片机输入数据,而未被选通的设备与数据总线隔离。常用的三态数据缓冲器芯片有74LS244、74LS245等。简单输出扩展主要采用三态数据锁存器实现,目的是使单片机能通过数据总线向被选通的设备输出数据,而未被选通的设备与数据总线隔离。常用的三态数据锁存器芯片有74LS373、74LS273、74LS573等。DATE:2024/8/8 周四PAGE:15三、简单输入三、简单输入/输出口扩展输出口扩展4例8-3 如图8-6示

12、,8051单片机使用74LS373和74LS245展I/O口,分别连接发光二极管和拨码开关,要求编写控制程序,通过开关的拨动控制发光二极管的亮灭。DATE:2024/8/8 周四PAGE:16三、简单输入三、简单输入/输出口扩展输出口扩展#include#include#definePORTXBYTE0 xFFFF/地址写什么都可以地址写什么都可以intmain(void)unsignedchartemp;while(1)temp=PORT;/读存储单元操作,即通过读存储单元操作,即通过74LS245获取开关数据获取开关数据PORT=temp;/写存储单元操作,即通过写存储单元操作,即通过74

13、LS373用开关数据控制发用开关数据控制发光二极管光二极管DATE:2024/8/8 周四PAGE:17四、可编程并行接口四、可编程并行接口8255A8255A在简单I/O扩展中,一个缓冲器或锁存器只能扩展8位,而且芯片功能单一,不利于单片机灵活地改变扩展方法解决实际需要。8255A可通过软件编程的方式确定或改变其工作方式,广泛用于单片机系统的I/O端口扩展。DATE:2024/8/8 周四PAGE:18四、可编程并行接口四、可编程并行接口8255A8255A(1)和外设相连的引脚PA7PA0:A端口数据信号引脚PB7PB0:B端口数据信号引脚PC7PC0:C端口数据信号引脚DATE:2024

14、/8/8 周四PAGE:19四、可编程并行接口四、可编程并行接口8255A8255ADATE:2024/8/8 周四PAGE:20(2)和CPU相连的引脚RESET:复位信号,高电平有效。当该引脚为高电平时,所有内部寄存器都被清除,同时A、B、C三个数据端口被自动设为输入端口。D7D0:8255A的数据线,和系统数据总线相连。RD:读引脚,低电平时,CPU可以从8255A选中的端口读出数据,经系统数据总线送入CPU。WR:写引脚,低电平时,CPU可以向8255A选中的端口写入数据。CS:片选引脚,低电平时,可以选中对该芯片操作。四、可编程并行接口四、可编程并行接口8255A8255ADATE:

15、2024/8/8 周四PAGE:21(2)和CPU相连的引脚 A1、A0:端口选择信号,接系统地址总线。8255A内部有3个数据端口和1个控制端口,共4个端口。A1、A0不同组合时,对应选中不同端口,如下表所示:四、可编程并行接口四、可编程并行接口8255A8255A8255A的控制 8255A共有两个控制字,一个是方式选择控制字,另一个是C端口的置位/复位控制字,这两个控制字通过第7位来区分。如果第7位为1,则该控制字是方式选择控制字,否则是C端口的置位/复位控制字。(1)方式选择控制字 方式选择控制字用于设定8255A各端口的工作方式,具体格式如下:DATE:2024/8/8 周四PAGE

16、:22四、可编程并行接口四、可编程并行接口8255A8255AC端口按位置1/清0控制字4C端口按位置1/置0控制字可以对C端口中的任何一位进行置位/复位,具体格式如下图所示:DATE:2024/8/8 周四PAGE:23四、可编程并行接口四、可编程并行接口8255A8255A 8255A的应用 8255A与单片机在采用线选法的情况下最多可连接6片8255,可满足一般情况下的需要。三总线构成如下:地址总线:地址线A0和A1连接P2.6和P2.5;数据总线:8255A的数据线D0D7同8051单片机的P0端口相连;DATE:2024/8/8 周四PAGE:24四、可编程并行接口四、可编程并行接口

17、8255A8255A4控制总线:(1)片选信号线CS连接单片机P2.7。(2)在工作方式0下,因为A口、B口和C口都作为I/O口,将8255A的RESET、RD和WR引脚与单片机信号线连接。(3)在方式1和方式2下,C口作为联络信号,要根据外设的情况将C口的某些位与单片机或外设相连。DATE:2024/8/8 周四PAGE:25四、可编程并行接口四、可编程并行接口8255A8255A4例8-4 如图8-11所示,8255A的A端口和B端口分别连接两个7段数码管,编程实现两数码管分别静态显示“0”和“1”。DATE:2024/8/8 周四PAGE:26四、可编程并行接口四、可编程并行接口8255

18、A8255A#include#include#definePORT_AXBYTE0 x1FFF/A15=0,A14A13=00#definePORT_BXBYTE0 x3FFF/A15=0,A14A13=01#definePORT_CTLXBYTE0 x7FFF/A15=0,A14A13=11intmain(void)PORT_CTL=0 x80;/设定设定A、B两组工作在方式两组工作在方式0,A和和B都是输出口都是输出口;PORT_A=0 xC0;/写写“0”字型到字型到8255A的的A端口,送数码管显示端口,送数码管显示PORT_B=0 xF9;/写写“1”到到8255A的的B端口,送数码

19、管显示端口,送数码管显示while(1);DATE:2024/8/8 周四PAGE:27四、可编程并行接口四、可编程并行接口8255A8255A例8-5 应用8255构成键盘/数码管接口电路,如图8-12所示。8255的PC0PC3与四位数码管的位选端相连,PA0PA7与数码管的段选端相连,PB0PB3与键盘列线相连,PC0PC3与键盘行线相连。编写控制程序,实现按下某按键后,计算相应键值的3次方,并送四位数码管显示。DATE:2024/8/8 周四PAGE:28四、可编程并行接口四、可编程并行接口8255A8255A#include#include#defineucharunsignedch

20、ar#defineuintunsignedint#definePORT_AXBYTE0 x1FFF/A15=0,A14A13=00#definePORT_BXBYTE0 x3FFF/A15=0,A14A13=01#definePORT_CXBYTE0 x5FFF/A15=0,A14A13=10#definePORT_CTLXBYTE0 x7CFF/A15=0,A14A13=11unsignedcharLed=0 xC0,0 xF9,0 xA4,0 xB0,0 x99,0 x92,0 x82,0 xF8,0 x80,0 x90,0 xff;/0-9的字型码unsignedcharcodeSeg=

21、0 x01,0 x02,0 x04,0 x08;/定义无符号字符型数组/延时函数voiddelay(uinti)uintj;for(j=i;j0;j-);DATE:2024/8/8 周四PAGE:29四、可编程并行接口四、可编程并行接口8255A8255AbitCheckKey()/检测有无按键按下的子函数uchari;PORT_A=0 x00;/列线加低电平i=(PORT_C&0 xf0);/取行线状态if(i=0 xf0)return(0);elsereturn(1);/行线都为高电平,则无键按下,返回0,否则返回0ucharKeyScan()/键盘扫描子函数/无按键返回oxff,有则返回

22、键码ucharScanCode;ucharCodeValue;uchark;uchari,j;DATE:2024/8/8 周四PAGE:30四、可编程并行接口四、可编程并行接口8255A8255Aif(CheckKey()=0)return(0 xff);/无按键,返回0 xffelsedelay(200);/延时if(CheckKey()=0)return(0 xff);/无按键,返回0 xffelseScanCode=0 xfe;/设置列扫描码,初始值最低位为0for(i=0;i4;i+)/逐列扫描8次k=0 x10;/行扫描码赋初值PORT_A=ScanCode;/送列扫描码CodeVa

23、lue=i;/键码和i值一致for(j=0;j4;j+)if(PORT_C&k)=0)/是否在当前列,while(CheckKey()!=0);/若是,则等待按键释放return(CodeValue);/返回键码elseCodeValue+=4;/键码加4,同一列的每一行上的键码恰好相差4k=1;/列扫描码k右移一位,扫描下一行ScanCode=1;/每一行都扫描完,列扫描码右移一位,扫描下一列return(0 xff);/返回无效键码DATE:2024/8/8 周四PAGE:31四、可编程并行接口四、可编程并行接口8255A8255Aintmain(void)uchari=0;bitflag

24、;ucharkey=0 x00;uintval5;PORT_CTL=0 x88;/*A、B两组工作在方式0,A口输出,B口输出,C口低4位输出,C口高4位输入*/while(1)key=KeyScan();if(key!=0 xff)val4=key*key*key;/计算键值的3次方val0=val4/1000;/计算千位val1=(val4%1000)/100;/计算百位val2=(val4%100)/10;/计算十位val3=val4%10;/计算个位DATE:2024/8/8 周四PAGE:32四、可编程并行接口四、可编程并行接口8255A8255Awhile(!CheckKey()/

25、如果没有按键按下,则动态显示数字for(i=0;i4;i+)if(vali=0)&(flag=0)continue;/*如果是“0”,且未出现过非0数,则不显示。*/elseflag=1;/*如果出现了非0数,则进行标记,后面所有的数都显示*/PORT_B=Ledvali;/*写数字到8255的B端口,送数码管显示*/PORT_C=Segi;/数码管位选delay(5000);/延迟以动态显示数字flag=0;/标记复位DATE:2024/8/8 周四PAGE:33五、可编程接口五、可编程接口8155815548155也是在单片机系统扩展中常用的可编程I/O接口芯片,其内部资源主要包括两个8位

26、端口PA和PB,一个6位端口PC,一个可编程的14位减法定时/计数器,此外还有256个字节的静态RAM和8位地址锁存器。DATE:2024/8/8 周四PAGE:34五、可编程接口五、可编程接口8155-8155-引脚引脚DATE:2024/8/8 周四PAGE:3548155采用40个引脚的DIP封装,各引脚功能如下:(1)和CPU相连的引脚ADOAD7:地址/数据总线。IO/M:IO口/RAM选择输入信号线,当该口输入高电平时,选择某个I/O端口;当输入低电平时选择内部RAM,地址可由AD0AD7引脚上输入。CS:片选信号线,低电平有效。ALE:地址锁存允许信号线,ALE为高电平时8155

27、将8051单片机送出的地址锁存到内部地址锁存器中。RD:读信号线,低电平有效。WR:写信号线,低电平有效。五、可编程接口五、可编程接口8155-8155-引脚引脚DATE:2024/8/8 周四PAGE:36(2)和外设相连的引脚TMRIN(TI):定时/计数器的外部计数脉冲输入线。TMROUT(TO):定时/计数器的输出信号线,根据定时器的工作方式,可输出方波或脉冲波。PA0PA7:A端口的8位并行I/O端口线。PB0PB7:B端口的8位并行I/O端口线。PC0PC5:C端口的6位并行I/O端口线。(3)其他引脚RESET:复位信号线,高电平有效。VCC:电源线。GND:地线。五、可编程接口

28、五、可编程接口8155-8155-编程控制编程控制4可使用控制字对其A、B、C端口及计数器进行控制;4可使用状态字判别各端口的工作状态;4控制字寄存器只能写不能读,而状态字寄存器只能读不能写,因此控制字和状态字寄存器可共用同一个端口地址而不会产生冲突。DATE:2024/8/8 周四PAGE:37五、可编程接口五、可编程接口8155-8155-编程控制编程控制8155的控制字4控制字的具体格式如图所示。DATE:2024/8/8 周四PAGE:38五、可编程接口五、可编程接口8155-8155-编程控制编程控制8155的状态字4状态字格式如图8-14所示。DATE:2024/8/8 周四PAG

29、E:39五、可编程接口五、可编程接口8155-8155-工作方式工作方式8155有3种工作方式,分为是存储器工作方式、基本I/O和选通I/O工作方式、定时/计数器工作方式。(1)存储器工作方式 当IO/M=0,且CE=0时,8155工作在存储器工作方式下,可通过低8位地址对片内256个字节的RAM进行读写。(2)基本I/O和选通I/O工作方式 基本I/O口工作方式相应的I/O端口作为普通端口,无固定的联络线、无中断功能。选通I/O工作方式有中断功能,联络线由硬件固定确定,不能通过软件更改。DATE:2024/8/8 周四PAGE:40五、可编程接口五、可编程接口8155-8155-工作方式工作

30、方式(3)定时/计数器工作方式48155内部提供一个14位的减法定时/计数器,实现对TMRIN引脚输入的时钟脉冲进行计数,每计数一次,定时/计数器的计数值减1,当减法结果溢出后,TMROUT引脚输出有效脉冲,且定时/计数器中断请求标志位TIMER置1。它有两个8位初值寄存器,其中高8位初值寄存器的最高两位确定定时/计数器的工作方式,其它6位存入计数初值的高6位;低8位初值寄存器用于存放计数初值的低8位。定时/计数器的寄存器格式如下图所示。DATE:2024/8/8 周四PAGE:41五、可编程接口五、可编程接口8155-8155-工作方式工作方式对于定时/计数器的使用要求如下:4 使用8155

31、定时/计数器之前,应首先设置其工作方式以及初值N。4 设置工作方式及初值后,必须访问控制寄存器启动定时/计数器。4 定时/计数器工作时可以重设新的计数初值或工作方式,但必须写入一条启动命令之后新的设置才会生效。4 可使用控制命令停止定时/计数器工作。DATE:2024/8/8 周四PAGE:42五、可编程接口五、可编程接口8155-8155-编程应用编程应用DATE:2024/8/8 周四PAGE:434由于8155内部有地址锁存器,所以不用再外接锁存器,由单片机P0端口与8155的AD0AD7相连形成数据总线和地址总线,如图所示;控制总线主要由以下几项构成:(1)IO/M:IO口/RAM选择

32、输入信号线,当IO/=1时,单片机访问端口。当IO/=0时,单片机访问内部RAM。(2)CS:片选信号线,低电平有效。(3)ALE:地址锁存允许信号线,ALE为高电平时8155将8051单片机送出的地址信号锁存到内部地址锁存器中。(4)RD:读信号线,低电平有效。(5)WR:写信号线,低电平有效。五、可编程接口五、可编程接口8155-8155-编程应用编程应用4表8-5是6个内部寄存器地址:DATE:2024/8/8 周四PAGE:44五、可编程接口五、可编程接口8155-8155-编程应用编程应用4例8-5 如下图,8155H的A端口和B端口分别连接两个7段数码管,编程实现两数码管分别显示“0”和“1”。DATE:2024/8/8 周四PAGE:45五、可编程接口五、可编程接口8155-8155-编程应用编程应用#include#includeintmain(void)XBYTE0 x7FF8=0 x03;/设置控制命令字设置控制命令字XBYTE0 x7FF9=0 xC0;/访问访问A端口,显示端口,显示“0”XBYTE0 x7FFA=0 xa4;/访问访问B端口,显示端口,显示“1”while(1);DATE:2024/8/8 周四PAGE:46

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服