第11章 单片机应用系统接口扩展_第1页
第11章 单片机应用系统接口扩展_第2页
第11章 单片机应用系统接口扩展_第3页
第11章 单片机应用系统接口扩展_第4页
第11章 单片机应用系统接口扩展_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

1、第第1111章章 单片机应用单片机应用I/OI/O接口扩展接口扩展11.1 输入输出接口功能11.2 简单I/O接口扩展11.3串行口扩展并行输出接口11.4串行口扩展并行输入接口11.1 11.1 输入输入/ /输出接口的功能输出接口的功能 1.对单片机输出的数据锁存。锁存数据线上瞬间出现的数据,以解决单片机与I/O设备的速度协调问题。2.对输入设备的三态缓冲。外设传送数据时要占用总线,不传送数据时必须使总线呈高阻状态。利用I/O接口的三态缓冲功能,可以实现I/O设备与数据总线的隔离,便于其它设备的总线挂接。3.信号转换。利用接口完成信号类型(数字与模拟、电流与电压)、信号电平(高与低、正与

2、负)、信号格式(并行与串行)等的转换。4.时序协调。不同的I/O设备定时与控制逻辑是不同的,并与CPU的时序往往有很大差异,这就需要I/O接口进行时序的协调。11.211.2并行并行I/OI/O接口扩展接口扩展ORG 0000HLJMP LOOP ;转至LOOP程序段ORG 0100HLOOP: MOV DPTR, #0FEFFH ; 数据指针指向I/O口地址 MOVX A, DPTR ;从74LS244读入数据 MOVX DPTR, A ;向74LS273输出数据, ;驱动LED SJMP LOOP ;循环END【例11-1】编写程序实现:图2-28电路中按下输入键,对应位的LED发光 参考

3、汇编程序11.311.3串行接口扩展串行接口扩展MCS-51单片机串行口工作于方式0时,串行口作为同步移位寄存器使用,这时以RXD(P3.0)端作为数据移位的输入端或输出端,而由TXD(P3.1)端输出移位脉冲。如果把能实现“并入串出”或“串入并出”功能的移位寄存器与串行口配合使用,就可使串行口转变为并行输入或输出口使用。11.311.3串行接口扩展串行接口扩展扩展并行输入口时,可用并入串出移位寄存器芯片,如CMOS芯片4014和74LS165芯片。4014芯片的引脚信号如图10-29(a)所示。PI1PI8是8个并行输入端;SI是串行数据输入端;CLK是时钟脉冲端,时钟脉冲用于串行移位,也用

4、于数据的并行置入;Q8、Q7、Q6是移位寄存器高3位输出端;P/S是并/串选择端,当它为高电平时,并行数据可置入4014;低电平时,4014可串行移位。扩展并行输入口时,可用并入串出移位寄存器芯片,如CMOS芯片4014和74LS165芯片。PI1PI8:并行输入端;SI:串行数据输出端;CLK是时钟脉冲端,脉冲上升沿有效,用于串行移位,也用于数据的并行置入;Q8、Q7、Q6是移位寄存器高3位输出端;P/S是并/串选择端,当它为高电平时,并行数据可置入4014;低电平时,4014可串行移位。CD401474LS165SHIFT/LOAD:高电平时串行移位,低电平时是并行输入置数CLOCK:串行

5、移位在时钟脉冲的上升沿时实现,但并行数据进入与时钟无关A,B,C,D,E,F,G,H 并行输入端。 QH:串行输出端。CLOCK INHIBIT:高电平禁止时钟。低电平时,充许时钟输入。 SERIAL INPUT:串行数据输入扩展并行输出口时,可用串入并出移位寄存器芯片,如CMOS芯片4094和74LS164芯片。Q1Q8:并行输出端;DATA:串行数据输入端;CLK:时钟脉冲端,时钟脉冲既用于串行移位,也用于数据的并行输出;QS、/QS、Q8:最高位输出端;OE:并行输出允许端;STB:选通脉冲端,高电平时,选通移位,低电平时,并行输出。CD409474LS164A,B:串行数据输入CLOC

6、K :时钟输入端 CLEAR :同步清除输入端(低电平有效) QAQH :并行数据输出端 【例11-2】电路如图所示,编程实现从两个扩展的8位并行口输入数据存放到片内RAM的30H、31H。11.3.1 11.3.1 用串行口扩展并行输入口用串行口扩展并行输入口汇编参考源程序如下:ORG 0000HLJMP INPUT ORG 0100HINPUT:SETB P1.7 ;置4014于并行输入工作方式CLR P3.1 ;串行口未启动之前,P3.1上无同步移位脉冲SETB P3.1 ;并行置数,软件产生一个脉冲上升沿CLR P1.7 ;置4014于串行移位工作方式MOV SCON,#0001000

7、0B ;置串行口为工作方式0同时启动串行口接收数据JNB RI,$ ;检测串行口接收数据是否完毕,未完等待CLR RI ;接收完毕后清RI标志MOV R0,#30H ;数据指针赋值,(R0)=#30HMOV R0,SBUF ;将接收的8位数据送存30H单元MOV SCON,#00010000B ;再启动串行口接收4014(2)的8位数据JNB RI,$ ;检测串行口接收数据是否完毕,未完等待CLR RI ;接收完毕后清RI标志INC R0 ;地址加1(R0)=(R0)+1MOV R0,SBUF ;将接收到4014(2)的8位数据送存31H单元SJMP $END如图所示,只要置STB端为低电平,

8、在一个时钟上升沿的作用下,可将两个8位数据从扩展口输出。11.3.2 11.3.2 用串行口扩展并行输出口用串行口扩展并行输出口参考汇编程序ORG 0000HLJMP OUT ;跳转至OUT程序段ORG 0100HOUT: SETB P1.7 ;置4094于串行移位工作方式MOV SCON,#00H ;置串行口于工作方式0MOV R0,#31HMOV SBUF,R0 ;将31H单元的数写入SBUF,启动发送JNB TI,$ ;检测串行口发送数据是否完毕,未完等待CLR TI ;发送完毕后清TI标志DEC R0MOV SBUF,R0 ;将30H单元的数写入SBUF,再启动发送JNB TI,$ ;

9、检测串行口发送数据是否完毕,未完等待CLR TI ;发送完毕后清TI标志CLR P1.7 ;置4094于并行输出工作方式CLR P3.1 ;串行口数据发送完毕, ;P3.1上已停止同步移位脉冲SETB P3.1 ;为使4094并行输出数据, ;软件产生一个脉冲上升沿SJMP $END实例实例1 1 利用74LS16474LS164扩展并行输出口,并实现发光二极管循环控制功能74LS164为8位串并转换移位寄存器能将串行输入数据转为并行输出引脚功能描述A、B串行数据输入引脚QAQG并行数据输出引脚CLOCK移位脉冲输入端CLEAR移位寄存器清零端工作原理:1)CLEAR端若为低电平,输出端QAQ

10、G都为0;2)CLEAR端若为高电平,且CLOCK端出现上升沿脉冲,则 输出端锁存输入端的电平接线原理:数据发送端A(B)RXD ;同步时钟端CLKTXD;数据清除端CLRP1.0#includesbit MR=P10;void delay() /延时 unsigned int i; for (i=0; i20000; i+) void main() unsigned char index, LED; /定义LED指针和显示字模 SCON = 0; /设置串行模块工作在方式0 MR = 1; / CLEAR端1,允许输入数据 while (1) LED=0 xFE; for (index=0; index 8; index+) SBUF = LED; /控制L0灯点亮 do while(!TI); TI=0; /通过TI查询判别数据是否输出结束 LED = (LED1) |1); /左移1位,末位置1 if (LED= 0 xff) LED = 0 xfe; /若已循环一遍,准备重新开始 delay(); 实例1参考程序实例1运行效果优秀是一

温馨提示

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

评论

0/150

提交评论