《单片机原理及接口技术》课件第九章 常用接口扩展_第1页
《单片机原理及接口技术》课件第九章 常用接口扩展_第2页
《单片机原理及接口技术》课件第九章 常用接口扩展_第3页
《单片机原理及接口技术》课件第九章 常用接口扩展_第4页
《单片机原理及接口技术》课件第九章 常用接口扩展_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

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

文档简介

第九章MCS-51单片机与常用可编程接口芯片的扩展应用技术基本要求:能熟练地使用常用接口芯片8255、8155、8279、

8253;熟悉A/D和D/A转换原理,能正确画出以上各类芯片与单片机的连接,并正确使用。

常用接口芯片概述通用I/O接口(可编程):并行I/O接口----8255/8255A、8279

定时/计数器----8253(T0、T1、T2)RAM/IO/CTC扩展器----8155

串行通信接口----8251A

中断控制器----8259A简单接口(锁存器、缓冲器):

74LS377、74LS273、74LS244、74LS245一、8255内部结构A组控制B组控制A口上C口下C口B口数据总线缓冲器读/写扩展逻辑DB0-7/RD/WRA0A1RESET/CSPA7-PA0PC7-PC4PC3-PC0PB7-PB0图9-1第一节可编程并行接口8255的扩展应用技术数据总线缓冲器(DBUS缓冲)读/写控制逻辑A组控制线路和B组控制线路A口、B口、C口主要组成:8255工作方式:

方式A口B口C口方式0基本I/O基本I/O基本I/O

方式1应答式I/O应答式I/O作A、B口应答信号方式2应答双向作A口应答信号二、8255A的外部引脚信号(40引脚,双列直插式)40个管脚去掉3个并行口(24根)后剩下8根:VCC、GND、RESET、/RD、/WR、/CS、A1、A0A1A0:地址选择端

00------A口

01------B口

10------C口

11------控制口三、8255的编程控制字1.方式控制字1D6D5D4D3D2D1D0下C口1=输入0=输出B口1=输入0=输出B口方式0=方式01=方式1A口方式00=方式001=方式11*=方式2A口1=输入0=输出上C口1=输入0=输出图9-3(a)2.C口置位/复位字0***D3D2D1D0置位/复位1=置位0=复位位选择000---PC0001---PC1010---PC2011---PC3100---PC4101---PC5110---PC6111---PC7图9-3(b)四、8255工作方式:方式0、方式1、方式2注:1B口无方式2工作方式2每种方式下的控制字管脚含义由下图所示PC4PC5PC3INTEAPA7-0PC6,72I/OINTRA/STBAIBFAPC2PC1PC0INTEBPB7-0INTRB/STBBIBFB

方式1输入左图为A口,右图为B口图9-4方式1时输入端口对应的控制字图9-5方式1时输出端口对应的控制字

图9-6方式1的两种组合

图9-8方式2的控制字及控制信号

例1.8255与8031连接如图7-11所示

1.试确定8255A的端口地址

2.欲使A口:方式0.输出口.B口:方式1.输入口.

上C口:方式0.输入口.

试初始化编程

3欲使8051内部RAM30H的内容通过PA口输出,试编程

4.欲使PC3向外输出一个正脉冲信号,试编程.五、8255的扩展应用举例

/RD/WRP0.7P0.6…P0.1P0.08031ALEP2.7D7Q7D6Q674LS373D1Q1D0GQ0/RD/WRPA7-08255A1PB7-0A0D7D6PC7-0D0/CS………1.确定地址

P2P00*************00A口

01B口

10C口

11控制口7FFCH(0000H)7FFDH(0001H)7FFEH(0002H)7FFFH(0003H)A口7FFCH(0000H)B口7FFDH(0001H)C口7FFEH(0002H)控制口7FFFH(0003H)MOVDPTR,#7FFFHMOVA,#07HMOVX@DPTR,AACALLDELAY1DECAMOVX@DPTR,AACALLDELAY23.MOVA,30HMOVDPTR,#7FFCHMOVX@DPTR,A2.MOVDPTR,#7FFFHMOVA,#8EHMOVX@DPTR,A题意改成:编程,从B口输入一个数?例2设单片机通过8255来控制一顺序控制过程,该系统连接如图9-12,A口输出6路顺序控制信号,以指示灯指示,6道工序,每道工序时间为10秒。PC0输入启动信号,PC7输入停止信号,分别与SA1和SA2相连。试编写此应用程序。图9-128255A的应用举例(2)端口的工作方式为方式0,A口为输出口,C口为输入口,

8255的控制字为89H。(1)分析8255四个端口的地址为:××××,××00,××××,××00BA口地址:FCFCH××××,××00,××××,××01BB口地址:FCFDH××××,××00,××××,××10BC口地址:FCFEH××××,××00,××××,××11B控制寄存器地址:FCFFH(3)程序如下:

ORG0100HMA:MOVDPTR,#0FCFFH;控制寄存器地址

MOVA,#89H;控制字

MOVX@DPTR,A;控制字送控制寄存器

MOVDPTR,#0FCFEH;C口地址

QD:MOVXA,@DPTR;读C口

JNBACC.0,QD;判断有无启动信号LOOP:MOVDPTR,#0FCFCH;A口地址

MOVA,#01H;第一路控制信号LOOP1:MOVX@DPTR,A;输出第一路控制信号

ACALLDELAY;延迟10秒

RLA;下一路控制信号

JNBACC.6,LOOP1;判断6路控制信号有无输出完

MOVDPTR,#0FCFEH;C口地址

MOVXA,@DPTR;读C口

JBACC.7,TZ;判断有无停止信号

SJMPLOOP;无停止信号则进行下一轮控制

TZ:MOVDPTR,#0FCFCH;有停止信号则使A口输出清零

CLRAMOVX@DPTR,ASJMP$ORG1000H;延时子程序DELAY:MOV22H,#50HL1:MOV21H,#100HL2:MOV20H,#250HL3:NOPNOPDJNZ20H,L3DJNZ21H,L2DJNZ22H,L1RET例3举例说明工作方式1时,查询式数据输入/输出的编程方法。8255与8031的连接如图9-12所示,但输入/输出口的设置为:A口为输入口,B口为输出口,C口作为查询状态口。解:通过分析四个端口的地址为:

A口:FCFCH;B口:FCFDH;C口:FCFEH;控制口:FCFFH(1)设置工作方式

MOVDPTR,#0FCFFHMOVA,#10111101B;送方式1,A口入,B口出

MOVX@DPTR,A;控制字→8255(2)输入操作

MOVDPTR,#0FCFEH;C口地址→DPTRLOOPI:MOVA,@DPTR;从C口取状态字

ANLA,#20H;检测状态字IBFA(D5位)状态,

JZLOOPI;如IBFA=0,等待数据输入,

MOVDPTR,#0FCFCH;如IBFA=1,CPU可以从A口读入数据

MOVXA,@DPTR;(3)输出操作(若输出数据存于R1中)

MOVDPTR,#0FCFEH;C口地址→DPTRLOOPO:MOVA,@DPTR;从C口取状态字

ANLA,#02H;检测B(D1位)

JNZLOOPO;若≠0,等待CPU送出新的数据;

MOVDPTR,#0FCFD;若=0表示CPU已将数据8255B口

MOVA,R1;

MOVXA,@DPTR;数据从8255B口输出一、8155内部结构及引脚IO/MALE/CE/RD/WRRESETTIMERINTIMEROUTAD0-AD7第二节可编程8155的扩展应用技术

256*8静态RAMA定时器BCIO/MAD0-7/CEALE/RD/WRRESETPA0-7PB0-7PC0-5TIMERINTIMEROUT图9-138155内部结构二、8155的地址编码及工作方式1.地址编码A7A6A5A4A3A2A1A0I/O口*****000命令状态口

001PA口

010PB口

011PC口

100定时器低8位

101定时器高8位2.命令寄存器格式TM2TM1IEBIEAPC2PC1PBPA定义A口0=输入,1=输出B口中断:0=禁止;1=允许A口中断:0=禁止;1=允许定义B口0=输入,1=输出定时器命令定义C口00=ALT101=ALT210=ALT311=ALT4D7D6D5D4D3D2D1D0PC2PC100011011ALT1ALT2ALT3ALT4PC0入出AINTRAINTRPC1入出ABFABFPC2入出A/STBA/STBPC3入出出BINTRPC4入出出BBFPC5入出出B/STBTM2TM100----空操作

01----停止

10----回0时停止

11----启动3.状态寄存器格式*TIMER

INTEBINTRINTEAINTRBBFBABFAD7D6D5D4D3D2D1D0定时器中断标志B口中断允许标志B口缓冲器空/满标志A口缓冲器空/满标志A口中断允许标志B口中断请求标志A口中断请求标志4.定时器时间常数寄存器M1M2T13T12T11T10T9T8T7T6T5T4T3T2T1T000----单方波01----连续方波0----单脉冲11----连续脉冲(1)8155的定时器/计数器是减法计数,而MCS-51的定时器/计数器却是加法计数,因此,确定计数初值的方法是不同的。(2)MCS-51的定时器/计数器有多种工作方式,而8155的定时器/计数器则只有一种固定的工作方式,即14位计数。(3)MCS-51的定时器/计数器有两种计数脉冲。但8155的定时器/计数器,不论是定时工作还是计数工作,都需由外部提供计数脉冲,其信号引脚就是TIMERIN。(4)MCS-51的定时器/计数器,当计数溢出自动置位TCON寄存器的计数溢出标志位(TF),以供用户查询或中断处理使用;但8155的定时器/计数器,计数溢出时向芯片外部输出一个信号(TlMEROUT)。三、定时/计数器注:1、8155的定时器/计数器是一个14位的减法计数器,由两个8位寄存器构成,以其中的低14位组成计数器,剩下的两个高位(M2,M1)用于定义计数器输出的信号形式。2、8155的定时器/计数器与MCS-51单片机芯片内部的定时器/计数器,在功能上是完全相同的,同样具有定时和计数两种功能,但是,在使用上却与MCS-51的定时器/计数器有许多不同之处,具体表现在:例48031与8155的连接如图9-18所示。要求8155的工作方式为PA口为输入方式,PB口为输出方式,PC口为输出方式,禁止中断。要求对计数脉冲进行千分频,即计数1000个脉冲后,电平状态变化,并重新置数以产生连续方波。解:由图9-18可以看出8155的RAM地址为7E00H~7EFFH,I/O口地址为7F00H~7F05H。图9-18四、8155的扩展应用举例

MOVDPTR,#7F00H;命令/状态寄存器地址MOVA,#0C2H;命令字MOVX@DPTR,A;装入命令字MOVDPTR,#7F04H;计数器低8位地址MOVA,#0E8H;低8位计数值MOVX@DPTR,A;写入计数值低8位INCDPTR;计数器高8位地址MOVA,#43H;高8位计数值MOVX@DPTR,A;写入计数值高8位例5在单片机实验开发装置上实现变速的“8”字循环显示。首先以“8”字显示20ms的速度循环10次,然后变为慢速,以每个“8”字显示0.1秒的速度循环一次,然后再变为快速循环,如此不断重复,试编此有关的程序。单片机实验器和LED显示器通过8155连接,设连接图如图9-19所示。已知时钟频率为12MHz,LED为其阳极器件,“8”的显示代码为80H。图9-198031通过8155与LED显示器的连接电路

1控制寄存器,PA,PB,PC,定时器高位和定时器低位分别为0000H,0001H,0002H,0003H,0004H和0005H。28155控制字应规定A口为输出(D0=l),C口为ALT2,即输出方式(D3D2=01),不需要中断,所以控制字为00000101B即05H。3单片机时钟为l2MHz,用T1作定时,设置为工作方式l,则其工作方式字为l0H20ms的定时初值为:-=45536=B1E0H对于0.1秒延时,由于不能直接用定时器产生,因此要用软件计数器,用20ms定时5次来获得0.1秒。4在中断服务程序中处理“8”字的快或慢速循环显示.为了区分这两种情况,利用程序状态寄存器PSW中的用户标志位F0,令F0=0为慢速显示,F0=l为快速显示。程序编制如下:ORG0000HLJMPMAINORG00lBHLJMPTlORGl000HMAIN:MOVSP,#52HMOVA,#05HMOVR0,#00HMOVX@R0,A;装8155控制字MOVTMOD,#10HMOVTH1,#0B1HMOVTL1,#0E0HMOVIE,#88H;开中断MOVA,#80H;“8”字显示代码INCR0;A口地址MOVX@R0,A;输出字形码MOV

A,#01H;LED最右一位位码MOV

R0,#03H;C口地址MOVX

@R0,A;位码输出MOV

R1,#10;快速循环10次MOV

R2,#5;慢速定时计数5次SETB

F0;先实现快速显示SETB

TR1SJMP$ORG1500HMOVTH1,#0B1HMOVTL1,#0E0HJNBF0,SLOW;F0为零转慢速JNBACC.5,NEXT2;设显示一遍,转出MOVA,#01H;显示一遍,重开始DJNZR1,NEXT3;不是10次,转出CLRF0;已l0次,转慢速MOVR1,#10;重装R1值SJMPNEXT3SLOW:DJNZR2,NEXT4;0.l秒不到,转出JNBACC.5,NEXT1;设显示一遍,转出MOVA,#0lH;显示一遍SETBF0;转为快速MOVR2,#05;重装R2值NEXT1:MOVR2,#05NEXT2:RLANEXT3:MOVX@R0,ANEXT4:RETI例68031与8155的接口如图示,试确定端口地址P0.0-P0.7ALEP2.7P2.0/WR/RDRESETAD0-AD7PAALE/CEPBIO/M/WRPC/RDRESETTINTOUT886命令状态口:7F00HPA口:7F01HPB:7F02HPC:7F03H定时器低:7F04H定时器高:7F05H80318155P2P00******1*****000001010011100101(1)把立即数72H送入8155片内RAM的20H单元MOVDPTR,#7E20HMOVA,#72HMOVX@DPTR,A(2)设8155的A口为选通输入方式,不允许中断,B口为基本输出方式,定时器对输入脉冲12分频输出连续方波.MOVDPTR,#7F04HMOVA,#0CHMOVX@DPTR,AINCDPTRMOVA,#40HMOVX@DPTR,AMOVDPTR,#7F00HMOVA,#CAHMOVX@DPTR,A第三节可编程键盘/显示器接口8279的扩展应用技术

利用前两节类似的方法了解8279的内部结构、外部引脚、使用方法及与MCS-51单片机的连接,下面直接举例。例7.在图9-24中,8279的命令/状态口地址为______H,数据口地址为______H,编写相关的初始化程序、显示器更新子程序、键输入中断服务程序

7FFFH7FFEH图9-24键盘/显示器与8279的接口电路(1)初始化子程序8279:MOVDPTR,#7FFFH;清除命令送8279MOVA,#0DlHMOVX@DPTR,AWNDU:MOVXA,@DPTR;等8279清除结束

JBACC.7,WNDUMOVA,#00H;方式命令送8279MOVX@DPTR,AMOVA,#34H;fosc=l2MHz时钟编程命令

MOVX@DPTR,AMOVIE,#84H;允许8279中断

RET(2)8279显示器更新子程序RDIR:MOVDPTR,#7FFFH;写显示RAM命令8279MOVA,#90HMOVX@DPTR;AMOVR0,#78H;显示缓冲器首地址s送R0MOVR7,#08HMOVDPTR,#7FFEHRDLO:MOVA,@R0;取显示数据

ADDA,#05H;加偏移量

MOVCA,@A+PC;查表转换为段数据8279MOVX@DPTR,AINCR0DJNZR7,RDLORETSEG:DB3FH,06H,5BH,4FH;根据硬件线路设计的字形数据

DB66H,6DHDB7DH,07H,7FH,,6FHDB77H,7CHDB39H,5EH,79H,71HDB73H,3EHDB,31H,6FH,lC,23H,40H,03HDB18H,38H,00H(3)键输入中断眼务子程序PKEY1:PUSHPSWPUSHDPLPUSHDPHPUSHACCPUSHBSETBPSW.3;选工作寄存器区1MOVDPTR,#7FFFH;读FIFO状态字

MOVXA,@DPTRANLA,#0FHJZPKYR;判FIFO中是否有数据?MOVA,#40H;读FIF0命令8279MOVX@DPTR,AMOVDPTR,#7FFEH;读数据

MOVXA,@DPTRMOVR2,AANLA,#38H;计算键号

RRARRARRAMOVB,#04HMULABXCHA,R2ANLA,#07HADDA,R2MOVR0,#40H;键号(40H)指出的环形缓冲器单元

MOV@R0,AINCR0MOVA,R0ANLA,#3FH;环形缓冲器指针处理(设缓冲器区为30H~3FH)ORLA,#30HMOV40H,ASETBC;置标志供主程序查询处理

POPBPOPACCPOPDPHPOPDPLPOPPSWPKYR:RETI第四节可编程定时/计数器8253的扩展应用技术例8.用图9-36中的8253计数器2输出频率为40kHz的方波。程序如下:MOVDPTR,#7FFFH;写方式控制字MOVA,#0B6HMOVX@DPTR,A;MOVDPTR,#7FFEH;写计数初值MOVA,#32HMOVX@DPTR,ACLRAMOVX@DPTR,ASJMP$利用前两节类似的方法了解8253的内部结构、外部引脚、使用方法及与MCS-51单片机的连接,下面直接举例。图9-36MCS-51与8253的接口电路

例9.某单片机系统利用8253,从某时刻起延迟1ms向8031发出中断申请,其硬件电路图仍如图9-36所示。

初始化程序如下:MOVDPTR,#7FFFH;控制寄存器地址送DPTRMOVA,#B1H;控制字送8253控制寄存器MOVX@DPTR,AMOVDPTR,#7FFEH;初值低8位送计数器2MOVA,#00HMOVX@DPTR,AMOVA,#20H;初值高8位送计数器2MOVX@DPTR,ARET

第五节A/D转换器(ADC0809)ADC0809…………一、ADC0809简介(28管脚)8路模拟输入IN0----IN78路模拟输入选择端ADDCADDBADDA

000----IN0001----IN1

……

111----IN78位分辨率D0---D7START启动转换EOC转换结束OE数据输出锁存ALE地址允许锁存二、转换数据的传送

即:CPU读转换结果有三种方式:

查询方式、中断方式、软件延时方式ALEP08051/WRP2.7/RD/INT0D7Q7D0Q0CLKCBAD7ADC0809D0STARTALEOEEOC++……………8个通道地址:P2P00************0007FF8H7FF9H7FFAH…7FFFH88IN0IN7例10图示,依次对IN0,IN1,…,IN7采样一次,存入

8051片内40H---47H单元中,试编程。

(1)查询方式:MOVR0,#40HMOVDPTR,#7FF8HMOVR7,#08HCLREX0LOOP:MOVX@DPTR,AMOVR2,#20HDELY:DJNZR2,DELYSETBP3.2DONE:JBP3.2DONEMOVXA,@DPTRMOV@R0,AINCR0INCDPTRDJNZR7,LOOP注:如果将EOC连接到P1.0,程序中P3.2改成P1.0。(2)中断方式:ORG0000HAJMPMAINORG0003HAJMPSUBX1MAIN:MOVR0,#40HMOV48H,#08HSETBIT0SETBEASETBEX0MOVDPTR,#7FF8HMOVX@DPTR,ASJMP$SUBX1:MOVXA,@DPTRMOV@R0,AINCR0INCDPTRDJNZ48H,NEXTCLREX0SJMPDONENEXT:MOVX@DPTR,ADONE:RETI(3)延时方式(设ADC0809转换时间200ms)注:EOC不需连接MOVDPTR,#7FF8H

温馨提示

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

评论

0/150

提交评论