《第7章单片机并行IO口的扩展》由会员分享,可在线阅读,更多相关《第7章单片机并行IO口的扩展(75页珍藏版)》请在金锄头文库上搜索。
1、第第7 7章章 单片机并行单片机并行I/OI/O口的扩展口的扩展7.1 I/O7.1 I/O接口扩展概述接口扩展概述I/O(I/O(输入输入/ /输出输出) )接口是接口是MCS-51MCS-51与外设与外设交换数字信交换数字信 息息的的桥梁桥梁。MCS-51MCS-51真正用作真正用作I/OI/O口线的口线的只有只有P1P1口的口的8 8位位I/OI/O线和线和 P3P3口的某些位线口的某些位线。在多数应用系统中,在多数应用系统中,MCS-51MCS-51单片机都需要外扩单片机都需要外扩I/OI/O接口电路。接口电路。忧弓抉胚扫兹妈友橱筷宽颠按氦堤渐胖鲍耀半添翘洲僻趁侯鱼浓褐疮切陌第7章单片
2、机并行IO口的扩展第7章单片机并行IO口的扩展7.1.1 I/O7.1.1 I/O口扩展的原因口扩展的原因1.I/O1.I/O信息的组成信息的组成(1 1)数据信息)数据信息CPUCPU与外设交换的基本信息就是数据信息,数据的与外设交换的基本信息就是数据信息,数据的传送可采用并行传送(传送可采用并行传送(n n位同时传送)和串行传送位同时传送)和串行传送(一位一位地传送)两种形式。(一位一位地传送)两种形式。(2 2)状态信息)状态信息状态信息是指在状态信息是指在CPUCPU与外设之间交换数据时的联络与外设之间交换数据时的联络信息。信息。CPUCPU通过对外设状态信息的读取,可知其工通过对外设
3、状态信息的读取,可知其工作状态。了解状态信息是作状态。了解状态信息是CPUCPU与与I/OI/O设备正确进行设备正确进行数据交换的重要条件。数据交换的重要条件。(3 3)控制信息)控制信息控制信息指控制信息指CPUCPU发给外设命令信息,发给外设命令信息,CPUCPU通过发送通过发送控制信息控制外设的工作。控制信息控制外设的工作。星晒批抨押键肖授她廷占涧论循亦辞店症慌埋储句赔驮烷弛钢笛持削辞园第7章单片机并行IO口的扩展第7章单片机并行IO口的扩展2.I/O2.I/O口接口的作用口接口的作用 CPU CPU与与I/OI/O设备交换信息情况较为复杂,所以通常设备交换信息情况较为复杂,所以通常I/
4、OI/O设备并不直接与设备并不直接与CPUCPU进行信息交换,而是通过相应进行信息交换,而是通过相应的输入的输入/ /输出接口(称为输出接口(称为I/OI/O接口)来进行的。接口)来进行的。I/OI/O接口接口是是CPUCPU和和I/OI/O设备之间进行信息交换的中间环节,其主设备之间进行信息交换的中间环节,其主要功能如下:要功能如下:(1 1)对输入输出数据进行缓冲、隔离和锁存,实现速)对输入输出数据进行缓冲、隔离和锁存,实现速度匹配。度匹配。(2 2)完成信息格式的变换,如串并转换。)完成信息格式的变换,如串并转换。(3 3)实现电气特性的匹配。)实现电气特性的匹配。(4 4)选择设备或地
5、址译码等。)选择设备或地址译码等。 往贼完庶于匙贯搪食臻费额柄壹醉烦蝗停瓦骄探栈生炎诣钠歧状溪验彰祝第7章单片机并行IO口的扩展第7章单片机并行IO口的扩展3.3.单片机单片机I/OI/O扩展的原因扩展的原因 I/O ( I/O (输入输入/ /输出输出) )接口是接口是MCS-51MCS-51与外设交换数字信息与外设交换数字信息的桥梁,的桥梁,MCS-51MCS-51系列单片机有系列单片机有4 4个并行个并行I/OI/O口口(P0(P0,P1P1,P2P2,P3P3口口) ),但对一个稍微复杂的应用系统来说,由于,但对一个稍微复杂的应用系统来说,由于P0P0口和口和P2P2口配合使用用于系统
6、扩展、口配合使用用于系统扩展、P3P3口是一个多功能口是一个多功能口每个引脚都具有第二功能,所以真正可供用户使用的口每个引脚都具有第二功能,所以真正可供用户使用的并行口,只有并行口,只有P1P1口,况且常常因扩展口,况且常常因扩展I2CI2C和和SPISPI等需占用等需占用P1P1口某些引脚,这使用户不得不扩展并行口以满足实际口某些引脚,这使用户不得不扩展并行口以满足实际的需要。因此,当在的需要。因此,当在I/OI/O口线不够用的情况下我们需要口线不够用的情况下我们需要扩展并行扩展并行I/OI/O口。口。 荔混粥三臆掺求珐春炼眷稍列馆兄苛减溢胜刹笛砒拴肾早兽甄授规舅咙都第7章单片机并行IO口的
7、扩展第7章单片机并行IO口的扩展图7-1 并行接口连接CPU与外设示意图遏眩厕骄捏憎遮拈蛹开茄钢墒珍窃外闯妻毅搂凌晨实峭保鳖绊戚斯寇腾厅第7章单片机并行IO口的扩展第7章单片机并行IO口的扩展7.1.2 I/O7.1.2 I/O口数据的传递方式口数据的传递方式MCS-51MCS-51单片机为了实现数据的输入单片机为了实现数据的输入/ /输出传送,通常使输出传送,通常使用以下用以下4 4种方式传递数据。种方式传递数据。(1)(1)无无条条件件传传送送方方式式:当当外外设设和和单单片片机机能能够够同同步步工工作作时时,可可以以采采用用无无条条件件方方式式进进行行传传送送,即即数数据据可可以以随随时
8、时进进行行传送。传送。(2)(2)查查询询方方式式:查查询询方方式式又又称称为为有有条条件件传传送送方方式式,即即数数据据的的传传送送是是有有条条件件的的。在在进进行行I/OI/O操操作作之之前前,用用户户要要通通过过软软件件查查询询外外设设是是否否为为数数据据传传送送做做好好准准备备,只只有有确确认认外外设设为为数数据据传传送送做做好好准准备备。单单片片机机才才能能执执行行数数据据的的输输入入/ /输出(输出(I/OI/O)操作。)操作。逛漆笆困煞绸恒伊铱艇藻乐构镍时桶礁他披蕴劫扳薯驹樱谦躬垦箭羚障客第7章单片机并行IO口的扩展第7章单片机并行IO口的扩展(3)(3)中断方式:当外设和计算机
9、进行数据交换时,中断方式:当外设和计算机进行数据交换时,外设向单片机发出中断请求。单片机接到中断请外设向单片机发出中断请求。单片机接到中断请求后,就作出响应,暂停正在执行的程序,而转求后,就作出响应,暂停正在执行的程序,而转去为设备的数据输入去为设备的数据输入/ /输出服务。当服务完成后,输出服务。当服务完成后,程序返回,单片机再继续执行被中断的程序。程序返回,单片机再继续执行被中断的程序。(4)DMA(4)DMA方式:方式:DMA(Direct Memory AccessDMA(Direct Memory Access,直接,直接内存存取内存存取) ) 中断方式虽提高了中断方式虽提高了CPU
10、CPU的效率,但仍然的效率,但仍然是通过是通过CPUCPU执行程序来实现数据传送。其缺点是大执行程序来实现数据传送。其缺点是大量的数据在磁盘与内存间交换需大量的时间,高量的数据在磁盘与内存间交换需大量的时间,高速速I/OI/O设备时或成组数据交换时,显得速度太慢。设备时或成组数据交换时,显得速度太慢。DMADMA方式就是在外设与内存间直接传送数据,方式就是在外设与内存间直接传送数据,DMADMA的速度取决于内存的工作速度。的速度取决于内存的工作速度。档绣豺颖锌曙荔匀姨手孽思慎仲硷攫爆肥礼辣瘩搬舵胳军胃寨路乓喘约引第7章单片机并行IO口的扩展第7章单片机并行IO口的扩展7.1.3 I/O7.1.
11、3 I/O端口的编址方式端口的编址方式I/OI/O端口编址是给所有端口编址是给所有I/OI/O接口中的寄存器编址。接口中的寄存器编址。 I/O I/O端口编址两种方式端口编址两种方式:独立编址独立编址与与统一编址统一编址。1 1独立编址方式独立编址方式 I/O I/O寄存器地址空间和存储器地址空间寄存器地址空间和存储器地址空间分开编址分开编址,但需专门读写但需专门读写I/OI/O的指令和控制信号。的指令和控制信号。2 2统一编址方式统一编址方式 I/O I/O寄存器与数据存储器单元同等对待寄存器与数据存储器单元同等对待,统一编址。,统一编址。不需要专门的不需要专门的I/OI/O指令,直接使用访
12、问数据存储器。指令,直接使用访问数据存储器。的指令进行的指令进行I/OI/O操作,简单、方便且功能强。操作,简单、方便且功能强。 镍蘑磅絮阑徒豌匀扎草擒苑野稍陌娘赣峰祭劈羔他鲸馅玻妖羚芋肮恶汗抗第7章单片机并行IO口的扩展第7章单片机并行IO口的扩展常用的外围常用的外围I/OI/O接口芯片有:接口芯片有: (1 1)82558255:可编程的通用并行接口电路(:可编程的通用并行接口电路(3 3个个8 8位位I/OI/O口)。口)。(2 2)81558155:可编程的:可编程的IO/RAMIO/RAM扩展接口电路(扩展接口电路(2 2个个8 8位位I/OI/O口口,1,1个个6 6位位I/OI/
13、O口口, , 256256个个RAMRAM字节单元,字节单元,1 1个个1414位的减法定时器位的减法定时器/ /计数器计数器)。)。可与可与MCS-51MCS-51单片机单片机直接连接直接连接,接口逻辑十分简单。,接口逻辑十分简单。此外,此外,74LS74LS系列的系列的TTLTTL电路电路也可以作为也可以作为MCS-51MCS-51的扩展的扩展I/OI/O口,如口,如74LS24474LS244、 74LS273 74LS273等。等。熙床牟凑哩瘤整雨郡挛家刻士踏粪铁皇诽字臭曰泼键榨磕碌硝辗妮懦搂胯第7章单片机并行IO口的扩展第7章单片机并行IO口的扩展7.2 7.2 简单简单I/OI/O
14、口的扩展口的扩展 简单简单I/O口的扩展是口的扩展是利用利用74LS27374LS273和和74LS24474LS244,将,将P0P0口扩展成简单的输入、输出口的电路口扩展成简单的输入、输出口的电路。 如图如图7-27-2所示所示74LS27374LS273输出端接输出端接8 8个个LEDLED发光二极管,发光二极管,以以显示显示8 8个按钮开关状态个按钮开关状态,某位低电平时二极管发光。,某位低电平时二极管发光。 74LS244 74LS244是缓冲驱动器,扩展输入口,是缓冲驱动器,扩展输入口,接接8 8个按钮开个按钮开关。关。 74LS273 74LS273和和74LS24474LS24
15、4的工作受的工作受80318031的的P2.0P2.0、RDRD* *、WRWR* *三条控制线控制。三条控制线控制。电路的工作原理如下电路的工作原理如下: : 当当P2.0=0,WRP2.0=0,WR* *=0(RD=0(RD* *= =) )选中写选中写74LS27374LS273, 80318031通过通过P0P0口输出数据到口输出数据到74LS27374LS273,;,; 当当P2.0=0,RDP2.0=0,RD* *=0(WR=0(WR* *=1)=1)时选中读时选中读74LS244,74LS244, 某开关某开关按下时则对应位输入为按下时则对应位输入为“0”“0”。组霞掏啊毕凛誉掉
16、睡毫博泽束贼图活埃塘狰大珠杆添接康伶毙泽增砷骗鸿第7章单片机并行IO口的扩展第7章单片机并行IO口的扩展图图7-2 7-2 简单简单I/OI/O扩展实例扩展实例岗沈魂臻材拷铀娥锹靡矣舷搭沥祭碱乃躬段冠贿诉蹿咨完反慑脏携翁锦落第7章单片机并行IO口的扩展第7章单片机并行IO口的扩展输出程序段:输出程序段:(1 1)汇编语言)汇编语言MOV A,#data MOV A,#data ;数据;数据AAMOV DPTR,#0FEFFHMOV DPTR,#0FEFFH;I/OI/O地址地址DPTRDPTRMOVX DPTR,A MOVX DPTR,A ;WRWR* *为低,数据经为低,数据经74LS273
17、74LS273口输出口输出(2 2)C C语言语言 #define PORT XBYTE0xFEFF #define PORT XBYTE0xFEFF; A= data A= data; PORT= A PORT= A;仓鲜抚霜呆共熏啃妖谎订逢耪虎剃耗庚怯姓灌川崇娩砚胃陕腮讫俊舆限坷第7章单片机并行IO口的扩展第7章单片机并行IO口的扩展输入程序段:输入程序段:(1 1)汇编语言)汇编语言 MOV DPTR,#0FEFFH ;I/O地址地址DPTR MOVX A,DPTR;RD*为低,为低,74LS244口,数口,数据读入内部据读入内部RAM(2 2)C C语言语言#define PORT X
18、BYTE0xFEFF;A=PORT;闰醉棚撕哇括浊碱套雇钓瞎磊俄首铀髓帝妄而泼赛盼柞抬盏丽枫冲柳蓑缺第7章单片机并行IO口的扩展第7章单片机并行IO口的扩展【例题【例题7-17-1】编写程序把按钮开关状态通过图】编写程序把按钮开关状态通过图7-27-2中的发光中的发光二极管显示出来。二极管显示出来。(1 1)汇编语言)汇编语言DDIS:DDIS:MOV DPTR,#0FEFFH MOV DPTR,#0FEFFH ;输入口地址;输入口地址DPTRDPTRLP:LP: MOVX A,DPTR MOVX A,DPTR ;按钮开关状态读入;按钮开关状态读入A A中中MOVX DPTR,AMOVX DP
19、TR,A ;A A中数据送输出口中数据送输出口SJMP LP SJMP LP ;反复连续执行;反复连续执行(2 2)C C语言语言#define PORT XBYTE0xFEFF#define PORT XBYTE0xFEFF;whilewhile(1 1) A=PORTA=PORT;PORT=APORT=A; 望慷坚存谰躁检贴瘸簇蛇标迫毗哦光蜕怪崇桑执些扒亢跋嘉危农再属氮凡第7章单片机并行IO口的扩展第7章单片机并行IO口的扩展7.3 7.3 8255A可编程并行接口芯片扩展可编程并行接口芯片扩展I/OI/O口口8255A8255A芯片介绍:芯片介绍:8255A8255A是是IntelInt
20、el公司生产的公司生产的可编程可编程并行并行I/OI/O接口芯片,接口芯片, 具有具有3 3个个8 8位位的的并行并行I/OI/O口口,3 3种工作方式种工作方式,可通过,可通过 编程改变其功能,因而编程改变其功能,因而使用灵活方便,通用性强使用灵活方便,通用性强。 就认吻祥肇匹郑滇苦薯感杜您掷蝉里屿帮臼狐氢撼紧和灭须乐岂嫉钻了胎第7章单片机并行IO口的扩展第7章单片机并行IO口的扩展7.3.1.7.3.1.内部结构内部结构图7-3 8255A内部编程结构舵蛋苯靳类剐果糙宋训耻览巩沫了怒状必瞳脸捏挎渐闪赌蝶任忠柬泽铣铭第7章单片机并行IO口的扩展第7章单片机并行IO口的扩展(1 1)端口)端口
21、A A、B B、C C功能和结构上有些差异功能和结构上有些差异 PA PA口口:输出锁存和缓冲;输入锁存:输出锁存和缓冲;输入锁存 PB PB口口:输出锁存和缓冲;输入缓冲:输出锁存和缓冲;输入缓冲 PC PC口口:输出锁存;数据输入缓冲:输出锁存;数据输入缓冲 PC PC口可在软件的控制下,口可在软件的控制下,分为两个分为两个4 4位端口位端口,作为,作为PAPA口、口、PBPB口选通方式操作时的状态控制信号。口选通方式操作时的状态控制信号。丢蘑胀抑陛舜灌撞谋拽贾南剐壶分揽渴欠炮泪淖喳祥惠绣沮溉勺洽稳根客第7章单片机并行IO口的扩展第7章单片机并行IO口的扩展(2)A(2)A组和组和B B组
22、控制电路组控制电路A A组:组:PAPA口和口和PCPC口的上半部(口的上半部(PC7PC7PC4PC4););B B组:组:PBPB口和口和PCPC口的下半部(口的下半部(PC3PC3PC0PC0), ,可根据可根据“命命 令字令字”对对PCPC口口按位按位“置置1”1”或或“清清0”0”。(3)(3)数据总线缓冲器线线数据总线缓冲器线线 三态双向,作为三态双向,作为8255A8255A与单片机数据线之间接口,与单片机数据线之间接口,传送数据、指令、控制命令及外部状态信息。传送数据、指令、控制命令及外部状态信息。(4)(4)读读/ /写控制逻辑电路线写控制逻辑电路线 该电路接收该电路接收CP
23、UCPU发来的控制信号、发来的控制信号、RESETRESET、地址信、地址信号号A1A1、A0A0等。对端口进行读写。等。对端口进行读写。各端口的工作状态与控制信号的关系各端口的工作状态与控制信号的关系如表如表7-17-1所示。所示。姑徐崇术谓棋稍涛杠刺胳贷稀室隐谜肥腿瘴僻蔡仰姻栅蓟钢痒荷厚哀抄查第7章单片机并行IO口的扩展第7章单片机并行IO口的扩展表表7-1 8255A7-1 8255A端口工作状态选择端口工作状态选择A1A1A0A0RDRD* *WRWR* *CSCS* *工作状态工作状态0 00 00 01 10 0读端口读端口A A:A A口数据口数据数据总线数据总线读端口读端口B
24、B:B B口数据口数据数据总线数据总线 读端口读端口C C:C C口数据口数据数据总线数据总线0 01 10 01 10 01 10 00 01 10 00 00 01 10 00 0写端口写端口A A:总线数据总线数据A A口口写端口写端口B B:总线数据总线数据B B口口写端口写端口C C:总线数据总线数据C C口口写控制字:写控制字:总线数据总线数据控制字寄控制字寄 存器存器0 01 11 10 00 01 10 01 10 00 01 11 11 10 00 01 1数据总线为三态数据总线为三态1 11 10 01 10 0非法状态非法状态1 11 10 0数据总线为三态数据总线为三态
25、小糯屑佩菠挎执呆槽钢霄秃都丢梦柱括绸惧涪屯碾庞氓瞳姿晕昨缓币凳关第7章单片机并行IO口的扩展第7章单片机并行IO口的扩展图7-4 8255A芯片引脚图7.3.2 7.3.2 引脚功能引脚功能泊斌钳羊譬热寅席惫驻澡珍迎氏宠域摆办垦损墒锗垃果醒音疮壕嚎兹牧想第7章单片机并行IO口的扩展第7章单片机并行IO口的扩展D7D7D0D0:三态双向数据线,与单片机数据总线连接三态双向数据线,与单片机数据总线连接CSCS* *:片选信号线,低电平有效,表示本芯片被选中片选信号线,低电平有效,表示本芯片被选中RDRD* *:读出信号线,控制读出信号线,控制8255A8255A中数据的读出高中数据的读出高WRWR
26、* *:写入信号线,控制向写入信号线,控制向8255A8255A数据的写入。数据的写入。VccVcc:+5V+5V电源。电源。PA7PA7PA0PA0:A A口输入口输入/ /输出线。输出线。PB7PB7PB0PB0:B B口输入口输入/ /输出线。输出线。PC7PC7PC0PC0:C C口输入口输入/ /输出线。输出线。A1A1、A0A0:地址线,用来选择地址线,用来选择8255A8255A内部的内部的4 4个端口。个端口。歌婪拯涎飘课泄艰葬手轧悟俱纽母浇十螺听瘪土见侮谩胺彭舜拥霸佣龄准第7章单片机并行IO口的扩展第7章单片机并行IO口的扩展7.3.3 8255A7.3.3 8255A的三种
27、工作方式的三种工作方式1.1.方式方式0 0基本的输入基本的输入/ /输出方式。输出方式。外设的外设的I/OI/O数据可在数据可在8255A8255A的各端口得到锁存和缓冲的各端口得到锁存和缓冲MCS-51MCS-51可对可对8255A8255A进行数据的进行数据的无条件传送。无条件传送。例如例如: :从口线从口线读入一组开关状态读入一组开关状态,向端口输出数字量,向端口输出数字量,控制一组指示灯的亮、灭。控制一组指示灯的亮、灭。不需要联络信号不需要联络信号,菜襟锤牧来芯励蛙蝎矫孟兵巢仟提泳滚台纲招绒层枢牧排挞臭醋疗削是射第7章单片机并行IO口的扩展第7章单片机并行IO口的扩展基本功能为:基本
28、功能为:(1 1)具有两个)具有两个8 8位端口(位端口(A A、B B)和两个)和两个4 4位端口(位端口(C C的上半部分和下半部分)。的上半部分和下半部分)。(2 2)任一个端口都可以设定为输入或输出,各端口)任一个端口都可以设定为输入或输出,各端口的输入、输出可构成的输入、输出可构成1616种组合。种组合。(3 3)数据输出锁存,输入不锁存。)数据输出锁存,输入不锁存。例例 假设假设8255A8255A的的控制字寄存器地址控制字寄存器地址为为FF7FHFF7FH,则令,则令A A口口和和C C口的高口的高4 4位工作在方式位工作在方式0 0输出,输出, B B口和口和C C口的低口的低
29、4 4位位工作于方式工作于方式0 0输入输入,初始化程序:初始化程序:MOV DPTRMOV DPTR,#0FF7FH #0FF7FH ;控制字寄存器地址送;控制字寄存器地址送DPTR DPTR MOV AMOV A,#83H #83H ;方式控制字;方式控制字83H83H送送A AMOVX DPTRMOVX DPTR,A A ;83H83H送控制字寄存器送控制字寄存器爸笑斋堰翅剿褒赣滓颂吻结洒茵建恿淬拐陋盯抛桨谆两沫呈征抠腑垄过剑第7章单片机并行IO口的扩展第7章单片机并行IO口的扩展2. 2. 方式方式1 1 选通输入选通输入/ /输出工作方式。输出工作方式。A A口和口和B B口通常用于
30、口通常用于I/OI/O数数据传送,据传送,C C口用作口用作A A口和口和B B口的联络线,以中断方式传口的联络线,以中断方式传送数据。送数据。 (1) (1) 方式方式1 1输入输入 控制联络信号如下图所示,控制联络信号如下图所示,STBSTB* *与与IBFIBF构成了一构成了一对应答联络信号对应答联络信号,联络信号的功能如下图:联络信号的功能如下图:夹诚皋链娥晤揽喝朔凭烛噶挟薯孝殉奥刊洽掉中曳春丢德股牙翁绘甩鬃慨第7章单片机并行IO口的扩展第7章单片机并行IO口的扩展晓骄瓦丑窟詹巢私弥汲兹莱架娇僧显航峻汁岂泊埠妆膜怜培虱绷钱撰借垢第7章单片机并行IO口的扩展第7章单片机并行IO口的扩展S
31、TBSTB* *:选通输入,是由输入外设送来的输入信号。选通输入,是由输入外设送来的输入信号。IBFIBF:输入缓冲器满,高电平有效。表示数据已送入输入缓冲器满,高电平有效。表示数据已送入 8255A 8255A的输入锁存器,它由的输入锁存器,它由STBSTB* *信号的下降沿置信号的下降沿置 位,由信号的上升沿使其复位位,由信号的上升沿使其复位INTRINTR:中断请求信号,高电平有效。由中断请求信号,高电平有效。由8255A8255A输出,输出, 向单片机发中断请求。向单片机发中断请求。INTE AINTE A:A A口中断允许,由口中断允许,由PC4PC4控制,控制, INTE BINT
32、E B:B B口中断允许,由口中断允许,由PC2PC2控制。控制。A A口的方式口的方式1 1输入输入工作方式见下图。工作方式见下图。优臻锈搅疤惦慨腑醇酉泉蝇唬李凳沤朱抠烘告铣食锥帐振挨益申撵秒灰钢第7章单片机并行IO口的扩展第7章单片机并行IO口的扩展震胸挖颐伯似菱丹颤蛹廖炼囤乘股梁砖寒缆丝踪咒狈届侍炭肾邓镭镰娜递第7章单片机并行IO口的扩展第7章单片机并行IO口的扩展(2 2)方式)方式1 1输出输出 如下图所示。如下图所示。OBFOBF* *与与ACKACK* *构成了一对应答联络信构成了一对应答联络信号号,各信号的功能如下:各信号的功能如下:OBFOBF* *:输出缓冲器满信号,输出缓
33、冲器满信号,8255A8255A给外设的联络信号,给外设的联络信号,外设可以将数据取走。外设可以将数据取走。ACKACK* *:外设的响应信号,外设已将数据取走。外设的响应信号,外设已将数据取走。INTRINTR* *:中断请求信号。表示该数据已被外设取走,中断请求信号。表示该数据已被外设取走, 请求单片机继续输出下一个数据。请求单片机继续输出下一个数据。INTE AINTE A:中断允许,由:中断允许,由PC6PC6控制。控制。INTE BINTE B:中断允许,由:中断允许,由PC2PC2控制控制。躺懒窿蠕恢检你扶杭详态嫂朱皖哉姓目摆瑶距选报强浙酪业闪兆峡寇红襄第7章单片机并行IO口的扩展
34、第7章单片机并行IO口的扩展午汲俗澈斋浙吃密遥榔速寨渴醒儒坤缚金版邦霖谎慷酶焰畏酒悲携蟹握蚀第7章单片机并行IO口的扩展第7章单片机并行IO口的扩展B B口的口的方式方式1 1输出输出如下图所示:如下图所示:骨镍醋酶锌驮冷咖苯综锑歇帕籽舒木援度殴裸惧谊流散休洗嘴嗽瞧筷蛆迁第7章单片机并行IO口的扩展第7章单片机并行IO口的扩展3.3.方式方式2 2只有只有A A口才能设定为方式口才能设定为方式2 2。下。下图为方式图为方式2 2工作示意图。工作示意图。在方式在方式2 2下,下,PA7PA7PA0PA0为双向为双向I/OI/O总线。总线。 当当输入输入时,时,PA7PA7PA0PA0受受STBA
35、STBA* *和和IBFAIBFA控制,其工作控制,其工作过程和方式过程和方式1 1输入时相同;输入时相同; 当当输出输出时,时,PA7PA7PA0PA0受受OBFAOBFA* *、ACKAACKA* *控制,其工作控制,其工作过程和方式过程和方式1 1输出时相同。输出时相同。迢蔫馆犬百摘记伟种梭职熟槐膀臻掺炸形体俺帝归馒亚寇徊雨乖衡忙如付第7章单片机并行IO口的扩展第7章单片机并行IO口的扩展纽斗群恋莆屠蒸韭节媒皿庄压梗蝴颇馈古乌犀阀善宾让浆汀忽娃病懒比重第7章单片机并行IO口的扩展第7章单片机并行IO口的扩展7.3.4 8255A7.3.4 8255A的控制字的控制字8255A8255A有
36、三种工作方式:有三种工作方式: (1) (1) 方式方式0 0:基本输入输出;基本输入输出;(2) (2) 方式方式1 1:选通输入输出;选通输入输出;(3) (3) 方式方式2 2:双向传送(仅双向传送(仅A A口有)。口有)。1.1.工作方式选择控制字工作方式选择控制字三种工作方式由方式控制字来决定。三种工作方式由方式控制字来决定。控制字格式如下。控制字格式如下。溪厌线摈薯颜赎粗赣被逃仁垢杀踌立健掇侦噶汾恶纠诺量棒输雀屡猎彬疡第7章单片机并行IO口的扩展第7章单片机并行IO口的扩展宽高人汕尖唱胯馋倘烷嫌桔厉氛具伎霞抡呆三速泣尚毅揭掩单柴仑横骇鞭第7章单片机并行IO口的扩展第7章单片机并行I
37、O口的扩展C C口上半部分(口上半部分(PC7PC7PC4PC4)随)随A A口称为口称为A A组组,C C口下半部分(口下半部分(PC3PC3PC0PC0)随)随B B口称为口称为B B组组。 其中其中A A口口可工作于方式可工作于方式0 0、1 1、和、和2 2,而,而B B口口只能工作在只能工作在方式方式0 0和和1 1。例如:例如:写入工作方式控制字写入工作方式控制字95H95H可将可将8255A8255A编程为:编程为:A A口口方式方式0 0输入输入,B B口口方式方式1 1输出输出,C C口的上半部分口的上半部分(PC7PC7 PC4 PC4)输出,)输出,C C口的下半部分口的
38、下半部分(PC3PC3PC0PC0)输入。)输入。块缉谎享戌巢置遵餐桂秀锋纲秤慎疼砌闰逢理停心拄荧锹呻殉堰侵裔凉肤第7章单片机并行IO口的扩展第7章单片机并行IO口的扩展2. C2. C口按位置位口按位置位/ /复位控制字复位控制字可对可对C C口口8 8位中的任一位置位中的任一位置“1”“1”或清或清“0”“0”。用于。用于位控位控。碧圈苇毯睬措造卫厅蘸圾蚊铲慧凿刻仰拘猴教拭蜕偿伍幸咨槛醛烁钻穴纠第7章单片机并行IO口的扩展第7章单片机并行IO口的扩展【例题【例题7-27-2】 如下图是在如下图是在PROTEUSPROTEUS软件中绘制的用软件中绘制的用80518051扩展扩展1 1片片82
39、558255的电路,的电路,82558255的的PAPA口接输出设备口接输出设备(八个发光二极管)、(八个发光二极管)、PBPB口接输入设备(八个开口接输入设备(八个开关)关)PCPC口不用,均采用方式口不用,均采用方式0 0,将,将8255 B8255 B口输入的口输入的开关置的数据从开关置的数据从A A口输出,要求开关合上的对应口输出,要求开关合上的对应LEDLED亮,编出相关汇编语言和亮,编出相关汇编语言和C C语言程序段。语言程序段。鞭筑鹿豺赏撒咐唬费心枉调脊孝倚茸芭廊宠荚芦叙尖勇蛀煽糊谦膜顺隶艾第7章单片机并行IO口的扩展第7章单片机并行IO口的扩展绚灶镇丈负攒唇融咎蝉医饥霞驭搏辞斥
40、坠惜括钡待颤按俩腰撰涸条陛镇京第7章单片机并行IO口的扩展第7章单片机并行IO口的扩展分析:由图分析:由图7-87-8可知,可知,P2.7=0P2.7=0才选中该片才选中该片82558255,A1 A1 A0(P2.1 P2.0)A0(P2.1 P2.0)为为00 0100 01对应对应PAPA口和口和PBPB口、为口、为1111时对应控制时对应控制口。其余地址写口。其余地址写1 1,A A口、口、B B口、控制口地址分别为口、控制口地址分别为7CFFH7CFFH、 7DFFH7DFFH、7FFFH7FFFH。设定。设定PAPA口方式口方式0 0输出输出, B, B口方式口方式0 0输入,控输
41、入,控制字制字10000010B10000010B82H82H,编程如下:,编程如下:(1 1)汇编语言)汇编语言MOV DPTR, #7FFFH ;DPTRMOV DPTR, #7FFFH ;DPTR指向控制口指向控制口MOV A, #82H MOV A, #82H MOVX DPTR, A ; MOVX DPTR, A ; 控制字写入控制口控制字写入控制口MOV DPTR, #7DFFH ;DPTRMOV DPTR, #7DFFH ;DPTR指向指向PBPB口口MOVX A, DPTR ;MOVX A, DPTR ;从从PBPB口输入数据口输入数据CPL A ;CPL A ;开关合上的对应
42、开关合上的对应LEDLED亮亮DEC DPL ;DPTRDEC DPL ;DPTR指向指向PAPA口口MOVX DPTR, A ;MOVX DPTR, A ;从从PAPA口输出口输出SJMP $SJMP $堆牌祭薪昌肄妨猪讳牲划咙潦启遍蛋绚杏临冤河轧黑棵盏痉蛊校痴竹嚣夯第7章单片机并行IO口的扩展第7章单片机并行IO口的扩展(2 2)C C语言语言#include#include#include#include#define COM8255 XBYTE0x7FFF#define COM8255 XBYTE0x7FFF#define PA8255 XBYTE0x7CFF#define PA825
43、5 XBYTE0x7CFF#define PB8255 XBYTE0x7DFF#define PB8255 XBYTE0x7DFF#define PC8255 XBYTE0x7EFF#define PC8255 XBYTE0x7EFF#define uchar unsigned char#define uchar unsigned charmain( )main( ) char a;char a;COM8255=0x82; /* COM8255=0x82; /* 写方式控制写方式控制*/*/a=PB8255; /*Ba=PB8255; /*B口输入口输入*/*/PA8255=a; /*APA8
44、255=a; /*A口输出口输出*/*/意挟湃苦杏替干田膊枕栗运鸽馏丧伎很嫡卸蜒燕棱帅羞熏腺兹愈温真窒辫第7章单片机并行IO口的扩展第7章单片机并行IO口的扩展【例题【例题7-37-3】 在在82558255的的PC7PC7引脚接一个引脚接一个LED,LED,用置位用置位/ /复位控复位控制字使其闪烁。制字使其闪烁。 8255 8255和单片机的连接同例和单片机的连接同例7-27-2。由图可知,由图可知,82558255的控制口地为的控制口地为7FFFH7FFFH(1 1)汇编语言)汇编语言MOV DPTR,#7FFFH MOV DPTR,#7FFFH ;指向控制口;指向控制口MOV A,#8
45、0H MOV A,#80H ;先写方式控制字;先写方式控制字MOVX DPTR,AMOVX DPTR,AMOV A,#7FH MOV A,#7FH ;使;使PC7PC7位置位位置位PNOT:MOVX DPTR,APNOT:MOVX DPTR,AACALL DAYACALL DAYXRL A, #01H XRL A, #01H ;使;使PC7PC7位变反位变反SJMP PNOTSJMP PNOT鼓仑化憋缴租枚萎诅币恒筋尾纤极屏赊陆却酷锄赫庐迷顷捅卵囊陛雪咀哦第7章单片机并行IO口的扩展第7章单片机并行IO口的扩展(2)C语言#include#include#define COM8255 XBYT
46、E0x7FFF#define uchar unsigned charmain( )uchar i;COM8255=0x80; /* 设置工作方式*/while(1)COM8255=0x7f; /*使PC7位置位*/for(i=0;i5000;i+); /*延时*/ COM8255=0x7e; /*使PC7位复位*/for(i=0;i5000;i+); /*延时*/榆稠嗡抨缆辆玛举谭乙久迎儿胡净佳溃祟厕檄果为吵补环凯獭倚晰暑坟垃第7章单片机并行IO口的扩展第7章单片机并行IO口的扩展7.3.5 7.3.5 单片机和单片机和8255A8255A的接口举例的接口举例1.1.硬件接口电路硬件接口电路
47、如下图是如下图是80318031扩展扩展1 1片片8255A8255A的电路图。的电路图。74LS37374LS373是地是地址锁存器,址锁存器,P0.1P0.1、P0.0P0.0经经74LS37374LS373与与8255A8255A的地址线的地址线A1A1、A0A0连接;连接; P0.7P0.7经经74LS37374LS373与片选端相连,其他地址线悬空。与片选端相连,其他地址线悬空。2.2.端口地址确定端口地址确定图中图中8255A8255A各端口寄存器的地址为:各端口寄存器的地址为:A A口:口: FF7CH FF7CHB B口:口: FF7DH FF7DHC C口:口: FF7EH
48、FF7EH控制寄存器:控制寄存器: FF7FH FF7FH悦憎甥卿新慈官调沈谁怪囱贺借杆抽偿眠邹棠拧扶峡捞椅贪惋搅呵师深拿第7章单片机并行IO口的扩展第7章单片机并行IO口的扩展毫即赐怔毒欠砍跳夫愉枉惫水雷边豌妙墒俺厩歧扒公芝隋议侦陕鸡柠猜障第7章单片机并行IO口的扩展第7章单片机并行IO口的扩展 3.3.软件编程软件编程例:例: 要求要求8255A8255A工作在方式工作在方式0 0,且,且A A口作为输入,口作为输入,B B口、口、 C C口作为输出,口作为输出,程序如下:程序如下:MOV MOV A,#90H A,#90H ;A A口方式口方式0 0输入,输入,B B口、口、 ;C C口
49、输出的控制字送口输出的控制字送A AMOVMOVDPTR,#0FF7FH DPTR,#0FF7FH ;控制寄存器地址;控制寄存器地址DPTRDPTRMOVX DPTR,AMOVX DPTR,A ;方式控制字;方式控制字控制寄存器控制寄存器MOVMOVDPTR,#0FF7CH DPTR,#0FF7CH ;A A口地址口地址DPTRDPTRMOVX A,DPTRMOVX A,DPTR ;从;从A A口读数据口读数据MOV DPTR,#0FF7DH MOV DPTR,#0FF7DH ;B B口地址口地址DPTRDPTRMOV MOV A,#DATA1A,#DATA1 ;要输出的数据;要输出的数据DA
50、TA1ADATA1AMOVX DPTR,A MOVX DPTR,A ;将;将DATA1DATA1送送B B口输出口输出MOV DPTR,#0FF7EH MOV DPTR,#0FF7EH ;C C口地址口地址DPTRDPTR启握苹正奈洱咱柏仿蛹宵厢坊碟似匠岩崖厩闷畜核奢箩摈镶萝速处竞洱猾第7章单片机并行IO口的扩展第7章单片机并行IO口的扩展MOV A,#DATA2MOV A,#DATA2 ;DATA2ADATA2AMOVX DPTR,AMOVX DPTR,A ;将数据;将数据DATA2DATA2送送C C口输出口输出例:例: 对端口对端口C C的置位的置位/ /复位。复位。把把PC5PC5置位
51、,控制字为置位,控制字为0BH 0BH MOV R1,#7FH MOV R1,#7FH ;控制口地址;控制口地址R1R1 MOVMOV A,#0BH A,#0BH ;控制字;控制字AAMOVX R1,A MOVX R1,A ;控制字;控制字控制口,控制口,PC5=1PC5=1把把PC5PC5复位,控制字为复位,控制字为0AH0AHMOV R1,#7FH MOV R1,#7FH ;控制口地址;控制口地址R1R1 MOV A,#0AH MOV A,#0AH ;控制字;控制字AAMOVX R1,A MOVX R1,A ;控制字;控制字控制口,控制口,PC5=0PC5=07.4 81557.4 815
52、5可编程并行接口芯片扩展可编程并行接口芯片扩展I/OI/O口口诛款撑湖沧借昭嫉绕剑著闯捶踊冕诀孩夸兔洽磺牌肖纷火纵疮楼筒甜狞哪第7章单片机并行IO口的扩展第7章单片机并行IO口的扩展7.4.1 81557.4.1 8155芯片介绍芯片介绍1.1.81558155的逻辑结构的逻辑结构如下图所示。如下图所示。迭赌线歌蚁明丝苍咽蚤容统逊航钡诡钳歼莽幽耍邀店噪绊龄惨南国圃厉剔第7章单片机并行IO口的扩展第7章单片机并行IO口的扩展2.81552.8155的引脚功能的引脚功能8155H8155H的引脚功能的引脚功能(1 1)AD7AD7AD0AD0(8 8条)条)(2 2)I/OI/O总线总线(2222
53、条)条)(3 3)控制总线()控制总线(8 8条)条) RESETRESET:复位输入线复位输入线 CECE* *和和IO/MIO/M* * RD RD* *和和WRWR* * ALE ALE:地址锁存允许地址锁存允许 TIMERIN TIMERIN和和TIMEROUTTIMEROUT* *:(4 4)电源线()电源线(2 2条)条) Vcc Vcc:+5V+5V电源电源 Vss Vss:地地哼接捌查乓沧虚播教欢涎挺暑烈牧珠急烫撩馅梧对流侍有跟上渔院颖钟钩第7章单片机并行IO口的扩展第7章单片机并行IO口的扩展CECE* *IO/MIO/M* *A7A7A6A6A5A5A4A4A3A3A2A2
54、A1A1A0A0所选的端口所选的端口0 01 10 00 00 0命令命令/ /状态寄存器状态寄存器0 01 10 00 01 1A A口口0 01 10 01 10 0B B口口0 01 10 01 11 1C C口口0 01 11 10 00 0计数器低计数器低8 8位位0 01 11 10 01 1计数器高计数器高6 6位位0 00 0RAMRAM单元单元3.CPU3.CPU对对8155 I/O8155 I/O端口的控制端口的控制(1) 8155(1) 8155各端口地址分配各端口地址分配平惠操塞酸芦匠儒尔散矗奠稽疟泌啥傈桩嗓兰痈胡遍夸石阿佣骋锻建采忙第7章单片机并行IO口的扩展第7章单
55、片机并行IO口的扩展(2 2)81558155的命令字的命令字狈四柑超帕打尾弦穷目擒匠犹装死雇未躁尝某蝉略创宵隧玫园虑韵面迈恋第7章单片机并行IO口的扩展第7章单片机并行IO口的扩展(3 3)81558155的状态字的状态字摧从箕磷冀光蛾翅刷皿癣曝拖迂抨捅赂撂捶蒜决在蚤弓离碧涝鲸逞详答庇第7章单片机并行IO口的扩展第7章单片机并行IO口的扩展7.4.2 81557.4.2 8155的工作方式的工作方式1.1.存储器方式存储器方式 对片内对片内RAMRAM单元进行读写,若单元进行读写,若IO/MIO/M* *=0=0和和CECE* *=0=0,则,则通过通过AD7AD7AD0AD0上的地址对上的
56、地址对RAMRAM存储器任一单元读写。存储器任一单元读写。2.I/O2.I/O方式方式 8155H 8155H的的I/OI/O方式分为方式分为基本基本I/OI/O和和选通选通I/OI/O两种工作两种工作方式,如表方式,如表9-39-3所示。可对片内任一寄存器读写,所示。可对片内任一寄存器读写,端口地址由端口地址由A2A2、A1A1、A0A0三位决定(见表三位决定(见表9-29-2)。)。千棍桔撬茧涅殆庶圭峰秃西勇矩瘤茄夷别爬想纲第鄙桩杨琶示芯季秉哈扒第7章单片机并行IO口的扩展第7章单片机并行IO口的扩展C C口口通用通用I/OI/O方式方式选通选通I/OI/O方式方式ALT1ALT1ALT2
57、ALT2ALT3ALT3ALT4ALT4PC0PC0输入输入输出输出AINTRAINTR(A A口口中断)中断)AINTRAINTR(A A口中断)口中断)PC1PC1输入输入输出输出ABFABF(A A口缓口缓冲器满)冲器满)ABFABF(A A口缓冲器满)口缓冲器满)PC2PC2输入输入输出输出ASTB* ASTB* (A A口选通)口选通)ASTBASTB* * (A A口选通)口选通)PC3PC3输入输入输出输出输出输出BINTRBINTR(B B口中断)口中断)PC4PC4输入输入输出输出输出输出BBFBBF(B B口缓冲器满)口缓冲器满)PC5PC5输入输入输出输出输出输出BSTB
58、BSTB* * (B B口选通)口选通)表表7-2 C7-2 C口在两种口在两种I/OI/O工作方式下各位定义工作方式下各位定义 羹插皂流制沫诞铀康挖看以其哦豁诺清骏痉梗扣篮相钒磷扦浩雹狄冻怀犬第7章单片机并行IO口的扩展第7章单片机并行IO口的扩展(1 1)基本)基本I/OI/O方式方式(2 2)选通)选通I/OI/O方式方式 ( (见右图)见右图) a.a.选通选通I/OI/O输入输入b.b.选通选通I/OI/O输出输出医魄物钞咒歌县熙琶袖剐植四燥偿筒昂老撮镭檬灿逗刚魏树栗粤矫棠崭缠第7章单片机并行IO口的扩展第7章单片机并行IO口的扩展3. 3. 内部定时器内部定时器/ /计数器及使用计
59、数器及使用 14 14位的减位的减1 1定时器定时器/ /计数器计数器,计数长度计数长度和和计数方式计数方式由写入计数寄存器的控制字来确定。由写入计数寄存器的控制字来确定。计数器的两个寄存器的格式如下图。计数器的两个寄存器的格式如下图。证我豆祥执戈律叭读岔款溪晶惰菠史凯骗拟啃敏殖谁吁炯肛犯女罐丢尝眺第7章单片机并行IO口的扩展第7章单片机并行IO口的扩展T13T13 T0:T0:计数器长度计数器长度M2M2、M1:M1:设置定时器的设置定时器的4 4种工作方式种工作方式4 4种工作方式及相应输出波形种工作方式及相应输出波形如下图。如下图。讫揽殷运终夹邑赖泛黎效铂侨玉偶劳钉赦椭蓖块邵栅晦郭灶鳃次
60、蘸退抓脏第7章单片机并行IO口的扩展第7章单片机并行IO口的扩展7.4.3 7.4.3 单片机与单片机与81558155接口及软件编程接口及软件编程1.1.硬件接口电路硬件接口电路叼筋斟泌棍郡潦氛刀蓉控叶瞻翁炎美饮篓趟萄陆轻僻蔽嘲肩量徽转与郑无第7章单片机并行IO口的扩展第7章单片机并行IO口的扩展2. 2. 编程举例编程举例8155H8155H( (1) 1) 初始化程序设计初始化程序设计例例 若若A A口定义为基本输入方式,口定义为基本输入方式,B B口定义为基本输出方口定义为基本输出方 式,对输入脉冲进行式,对输入脉冲进行2424分频,初始化程序如下:分频,初始化程序如下:START:M
61、OV DPTR, START:MOV DPTR, 7F04H 7F04H ;指针指向定时器低;指针指向定时器低8 8位位MOV A,MOV A,18H18H ;计数初值;计数初值2424送送A,A, MOVX DPTR,AMOVX DPTR,A ;计数初值低;计数初值低8 8位装入定时器位装入定时器INC DPTR INC DPTR ;指针指向定时器高;指针指向定时器高8 8位位MOV A,MOV A,40H 40H ;设定时器连续方波输出;设定时器连续方波输出MOVX DPTR,AMOVX DPTR,A ;计数初值高;计数初值高6 6位装入定时器位装入定时器MOV DPTR,MOV DPTR
62、,7F00H 7F00H ;指向命令;指向命令/ /状态口状态口MOV A,#0C2HMOV A,#0C2H ;设定命令控制字;设定命令控制字MOVX DPTR,AMOVX DPTR,A ;A A口输入,口输入,B B口输出口输出, ,开定时器开定时器隶肺肢裔弄胆庄沈椿苦烘佑树迟器迫砒阂又披价估返祁拢枢施酷掇啸肮第第7章单片机并行IO口的扩展第7章单片机并行IO口的扩展MOVX DPTR,AMOVX DPTR,A ;A A中数据送输出口中数据送输出口SJMP LP SJMP LP ;反复连续执行;反复连续执行7.5 7.5 单片机串行口到并行口的转换单片机串行口到并行口的转换7.5.1 7.5
63、.1 用用74LS16574LS165扩展并行输入口扩展并行输入口剖北名匹蜡天拳驾碑筑蛰郊靡弊盖涉酱捅没剿膊泽绽轴埔父椅吟寸他正选第7章单片机并行IO口的扩展第7章单片机并行IO口的扩展例例 从从1616位扩展口读入位扩展口读入5 5组组数据(每组二个字节),数据(每组二个字节),并把它们转存到内部并把它们转存到内部RAM 20HRAM 20H开始的单元中。开始的单元中。MOV R7,#05H MOV R7,#05H ;设置读入组数;设置读入组数MOV R0,#20H MOV R0,#20H ;设置内部;设置内部RAMRAM数据区首址数据区首址START: CLR P1.0START: CLR
64、 P1.0;并行置入数据,;并行置入数据,S/LS/L* *=0=0 SETB P1.0 SETB P1.0;允许串行移位,;允许串行移位,S/LS/L* *=1=1 MOV R1,#02H MOV R1,#02H;设置每组字节数,即外扩;设置每组字节数,即外扩 ;74LS16574LS165的个数的个数RXDAT: MOV SCON,#10H RXDAT: MOV SCON,#10H ;设串口方式;设串口方式0 0,允许接收,启动,允许接收,启动WAIT: JNB RI,WAIT WAIT: JNB RI,WAIT ;未接收完一帧,循环等待;未接收完一帧,循环等待CLR RICLR RI ;
65、清;清RIRI标志,准备下次接收标志,准备下次接收佩纽袁籽吻枯恼舅竞涤刽问胖径挝栅蜜纤氏岳爆苑嚏敦幻绥簇具肢睦烷虾第7章单片机并行IO口的扩展第7章单片机并行IO口的扩展MOV A,SBUFMOV A,SBUF;读入数据;读入数据MOV R0,AMOV R0,A;送至;送至RAMRAM缓冲区缓冲区INC R0INC R0;指向下一个地址;指向下一个地址DJNZ R1,RXDATA DJNZ R1,RXDATA ;未读完一组数据,继续;未读完一组数据,继续DJNZ R7,STARTDJNZ R7,START;5 5组数据未读完重新并行置入组数据未读完重新并行置入 ;对数据进行处理;对数据进行处理
66、狞虑拉惰邢真褪井屏搬概玉届插敲末决军诱簧臼撩片愤空镭桩协迟操成飞第7章单片机并行IO口的扩展第7章单片机并行IO口的扩展7.5.2 7.5.2 用用74LS16474LS164扩展并行输出口扩展并行输出口. .74LS16474LS164:8 8位串入并出移位寄存器。位串入并出移位寄存器。 下图是下图是利用利用74LS16474LS164扩展二个扩展二个8 8位并行输出口位并行输出口的接的接口电路。口电路。吕吊析向眷默钟碗筷张铣怎含谜肿枪捷文然信穷靠撤巳垮整亚霉婪赊赖娱第7章单片机并行IO口的扩展第7章单片机并行IO口的扩展例例 编写将内部编写将内部RAMRAM单元单元30H30H、31H31
67、H的内容经串行口的内容经串行口 由由74LS16474LS164并行输出子程序。并行输出子程序。START: MOV R7,#02HSTART: MOV R7,#02H;设置要发送的字节个数;设置要发送的字节个数 MOV R0,#30H MOV R0,#30H;设置地址指针;设置地址指针 MOV SCON,#00H MOV SCON,#00H ;设置串行口为方式;设置串行口为方式0 0SEND:SEND: MOV A,R0 MOV A,R0 MOV SBUF,A MOV SBUF,A ;启动串行口发送过程;启动串行口发送过程WAIT:WAIT: JNB TI,WAIT JNB TI,WAIT
68、;1 1帧数据未发完,循环等待帧数据未发完,循环等待 CLR TI CLR TI INC R0 INC R0 ;取下一个数;取下一个数 DJNZ R7,SEND DJNZ R7,SEND ;未完,发完从子程序返回;未完,发完从子程序返回 RETRET阜峡瘟帆衷悬匈孝括犯邵流缎帜砂琢折答履剩蓬凹妊骂儡估陛地畜陡宽秒第7章单片机并行IO口的扩展第7章单片机并行IO口的扩展7.6 7.6 日历时钟接口芯片及应用日历时钟接口芯片及应用7.6.1 7.6.1 并行接口日历时钟芯片并行接口日历时钟芯片DS12887DS12887是内置锂电池的实时日历时钟芯片,它可以产生秒、分、时、星期、日、月及年等7个时
69、标,并有供用户使用的114B带掉电保护的RAM,可以通过编程读取和修改这些时标,也可以编程产生定时间隔时间中断,使用十分方便。1. DS128871. DS12887芯片的引芯片的引脚脚宾尤匆纽洛黄汝丙摇虱圆锨栋唱做蛰戚脖晦惰丝塔掏喳糟直栈桂次葫率蚕第7章单片机并行IO口的扩展第7章单片机并行IO口的扩展2.片内结构和寄存器DS12887的内部有10B时标寄存器、4B状态寄存器、114B带掉电保护的RAM。其地址分配如右图所示。 陷漾舔实阴林撵肃韩坊伴毯赖察康挤翰抚生攻辨迹艳浇县肆洪芒兆判旭演第7章单片机并行IO口的扩展第7章单片机并行IO口的扩展1 1)时标寄存器)时标寄存器 10个时标寄存
70、器可用二进制表示,也可用BCD码表示。其功能和数值范围如下表所示。浅祭芹苯耶构菱黎予半披滋舜郸梨共脏凛浸瘫拍毛哦贫堕去绚窜疙膳摸蝇第7章单片机并行IO口的扩展第7章单片机并行IO口的扩展2)寄存器0AH寄存器0AH的格式如下图所示。BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0UIPDV2DV1DV0RS3RS2RS1RS0UIP:更新周期进行标志位,UIP = 1时,芯片正处于或将开始新周期,此期间不允许读写时标寄存器。DV2DV0:为010时晶振工作,其他组合时晶振停止。 RS3RS0:中断周期时间和SQW输出频率选择位。 驭借宏吏憋函皿痔慎攒党襟齐劣究嗽妹竿屿置惧住销读
71、冶握掣走掏吠倔配第7章单片机并行IO口的扩展第7章单片机并行IO口的扩展3)寄存器0BH寄存器0BH中的格式如下图所示。BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0SETPIEAIEUIESQWEDM24/12DSESET:为1时禁止更新。为0时正常。 PIE:为1时周期中断允许。AIE:为1时警报中断允许。UIE:为1时更新结束中断允许。SQWE:为1时方波输出允许。DM:为0时时间为BCD码,为1时为二进制。24/12:为1时是24小时进制。为0时是12小时进制。DSE:置0。 点爽氏祁忠磺咐驰嫂吮骗露鞠吻任拔坊舀海事洒日自呐恐押妨怠核捅桶竿第7章单片机并行IO口的扩展
72、第7章单片机并行IO口的扩展4)寄存器0CH寄存器0CH的格式如下图所示。BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0IRQFPFAFUF0000IRQF:中断申请标志。PF:周期中断标志。AF:警报中断标志。UF:更新结束中断标志。碾各隆节揽寝鹏闺琢堡社火雕杨恍仁态膊矩阅沟因蜗侣跟纺当谚媚馅芬仅第7章单片机并行IO口的扩展第7章单片机并行IO口的扩展5)寄存器0DH寄存器0DH格式如下图所示。BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0VRT0000000VRT:为0时表示内部锂电池耗尽。 汰涨薛疗赁腥由草客壤挤加患塔薪枫御遁痞漠年瘴厩咬籍广轧翘星丛臼
73、拳第7章单片机并行IO口的扩展第7章单片机并行IO口的扩展3. DS12887与与89C52的接口电路的接口电路下图是89C52与DS12887的接口电路,DS12887的片选信号接P2.4,即P2.4 = 0时,选中DS12887,设片内时标寄存器和掉电RAM的地址范围是:0E400H0E47FH。芦批喝晨滞杏硷遏磊宿诚萧解挟整唯冯备吟畜蝉蜕乏二苟佃矽阐驾戎腮傀第7章单片机并行IO口的扩展第7章单片机并行IO口的扩展时标寄存器设置的步骤为:(1)寄存器B的SET位置1,芯片停止工作。(2)时标寄存器置初值。秒、分、时、星期、年、月、日时标寄存器的地址顺序为:E400H、E402H、E404H
74、、E406H、E407H、E408H、E409H。(3)读寄存器C,以消除已有的中断标志。(4)读寄存器D,使片内寄存器和RAM数据有效。(5)寄存器B的SET位清0,启动DS12887开始工作。体狙绪靶徐炔湍碳棚凿选蕉艇斩挤猾溺烫溯肪港怔襟根站伴编垛凯湘诅分第7章单片机并行IO口的扩展第7章单片机并行IO口的扩展7.7 VF与FV接口近年来,慢速的A/D转换,多采用V/F(电压/频率式)转换器, D/A转换器也多采用和F/V(频率/电压)式等, 它们是把电压和一定频率的脉冲进行转换,因为单片机内都有定时/计数器,测量脉冲频率和产生一定频率的脉冲都是很方便的。这样的芯片如LM331、AD651
75、、LMX31、VFC32等。和使用A/D转换一样,先用传感器把被测的物理量如温度、湿度、压力等变成电压量,接入V/F芯片,V/F芯片外围按资料提供的电路,接必要的电阻电容,芯片输出接定时/计数器,测量出频率,经过换算得物理量数值。南数史撒韶拇材域瑶弧秆诧洽舱宜饺聊琉阜烩太词耳散滚育贸尽里寇伐背第7章单片机并行IO口的扩展第7章单片机并行IO口的扩展7.7.1 VF转换V/F转换器是把电压信号转换成频率信号的器件。它具有应用电路简单、较好的精度、较好的线性度且频率变化动态范围宽、抗干扰能力强、价格较低等诸多优点,因而在输入通道中广泛采用。在一些高精度、远距离数据传输而速度要求不高的场合取代A/D转换器,从而获得较好的性能价格比。酣厢证授藤猾扣瘦骏贱评辗叭撩演倪缠法耳泊够货痈入剁涵桐慎对室燃围第7章单片机并行IO口的扩展第7章单片机并行IO口的扩展7.7.2 FV转换频率信号是一种串行数据,它具有很高的信噪抑制比,因此采用频率信号输出占用线数少、易于远距离传输,所以在输出通道中常采用频率信号。但某些执行机构所需控制信号为电压信号,为此,这类输出通道中需设置频压(F/V)转换器。耻碧霖蒙转袒玻疥熊俯颗拯还咱挥曲牡泄府局侯帝柯椰阁厅赤殊抬恫蜀邓第7章单片机并行IO口的扩展第7章单片机并行IO口的扩展