单片机学习资料.ppt

上传人:b****3 文档编号:2757162 上传时间:2022-11-11 格式:PPT 页数:75 大小:296.50KB
下载 相关 举报
单片机学习资料.ppt_第1页
第1页 / 共75页
单片机学习资料.ppt_第2页
第2页 / 共75页
单片机学习资料.ppt_第3页
第3页 / 共75页
单片机学习资料.ppt_第4页
第4页 / 共75页
单片机学习资料.ppt_第5页
第5页 / 共75页
点击查看更多>>
下载资源
资源描述

单片机学习资料.ppt

《单片机学习资料.ppt》由会员分享,可在线阅读,更多相关《单片机学习资料.ppt(75页珍藏版)》请在冰豆网上搜索。

单片机学习资料.ppt

第四章80C51单片机的功能单元一、并行I/O接口80C51共有四个8位的并行双向口。

每位均有锁存器、输出驱动器和输入缓冲器组成。

它们在结构和功能上均有差异,下面逐一介绍之。

1.P1口P1口是一个8位口,可以字节访问也可以位访问。

其字节地址为90H,位地址为90H97H。

P1口结构和工作过程分析P1.i锁存器读锁存器VccP1.i引脚内部总线写锁存器读引脚BA内部上拉电阻DCLQQBUF2BUF1Q输出上拉结构QVCC+P1口特点输出锁存输出高电平能力弱,低电平能力强特殊的读、修改、写指令,只读锁存器的输出。

当目的操作数是断口时,下列指令读锁存器而不是管脚。

ANL、ORL、XRL、JBC、CPL、INCDEC、DJNZ、MOVPX.Y,C、CLR、SETBp1口举例P1口高电平输出能力差,对HMOS系列只有0.2mA以下,因此,直接驱动负载时应该用低电平驱动.低电平的拉电流能力强.+5VP1.Xp1口举例输入时应先把I/O口置高,如果置低,可能损坏I/O口.最好硬件电路设计上有所考虑.+5VGNDP1.x2.P3口P3口是一个多功能8位口,可以字节访问也可以位访问。

其字节地址为B0H,位地址为B0HB7H。

P3口结构和工作过程分析P3.i锁存器读锁存器VccP1.i引脚内部总线写锁存器读引脚BA内部上拉电阻DCLQQBUF2BUF1Q第二功能输入第二功能输出P3口第二功能P3.0RXD,串行口输入P3.1TXD,串行口输出P3.2INT0,外部中断0P3.3INT1,外部中断1P3.4T0,定时/计数器0P3.5T1,定时/计数器1P3.6WR,外部存储器写选通P3.7RD,外部存储器读选通3.P2口P2口是一个多功能8位口,可以字节访问也可以位访问。

其字节地址为A0H,位地址为A0HA7H。

其第二功能是作为外部存储器的高地址输出。

P2口结构和工作过程分析P2.i锁存器读锁存器VccP1.i引脚内部总线写锁存器读引脚BA内部上拉电阻DCLQQBUF2BUF1Q地址控制P2口的功能特点不输出地址时,作为双向I/O口使用可以作为高地址输出能驱动4个TTL门4.P0口P0口是一个多功能8位口,可以字节访问也可以位访问。

其字节地址为80H,位地址为80H87H。

其第二功能是作为外部存储器的低地址输出和数据输入输出。

P0口结构和工作过程分析P0.i锁存器读锁存器VccP0.i引脚内部总线写锁存器读引脚BADCLQQBUF2BUF1Q01地址/数据控制P0口的特点P0口作为总线时是地址、数据复用。

作为I/O口使用时是漏极开路应用。

P0口能驱动8个TTL门。

二、定时/计数器1、定时/计数器概述80C51系列单片机中总是包含T0,T1两个定时/计数器,有的型号还有定时/计数器T2,定时计数器的核心是一个加一计数器,其基本功能是加一操作。

如果对外部信号加一,就是计数器。

如果对时钟信号加一,就是定时器。

2、定时/计数器T0、T1内部结构16位计数器TH0、TL0和TH1、TL1特殊功能寄存器TMOD、TCON时钟分频器输入引脚T0、T1、INT0、INT1内部结构图TMOD(89H)不可位寻址TCON(88H)可位寻址TL1TH1TFTL1TH1TFINT1T1INT0T0CLK/12CLK/12TMOD方式寄存器GATED7C/TD6M1D5M0D4GATED3C/TD2M1D1M0D0T1T01.M0、M1,选择定时/计数器的模式0、1、2、32.C/T,选择定时或计数功能3.GATE,选择脉冲源TCON控制寄存器TFx,计数溢出时置1,进入中断程序时硬件清零。

如果不允许中断,需要软件清零。

TRx,控制计数定时脉冲的输入。

由软件控制。

其它位与中断控制有关,以后详述。

TF1D7TR1D6TF0D5TR0D4IE1D3IT1D2IE0D1IT0D0T1T088H8FH与中断控制有关定时/计数器T0、T1方式0TLx(5位)THx(8位)TFx申请中断12振荡器Tx引脚C/T=0C/T=1+TRxGATEINTx引脚AB控制x=0,1M1=0M0=0定时/计数器T0、T1方式1TLx(8位)THx(8位)TFx申请中断12振荡器Tx引脚C/T=0C/T=1+TRxGATEINTx引脚AB控制x=0,1M1=0M0=1定时/计数器T0、T1方式2TLx(8位)THx(8位)TFx申请中断12振荡器Tx引脚C/T=0C/T=1+TRxGATEINTx引脚AB控制x=0,1M1=1M0=0重装载方式3时定时/计数器T0TL0(8位)TF0申请中断T012振荡器T0引脚C/T=0C/T=1+TR0GATEINT0引脚AB控制M1=1M0=1TH0(8位)TF1申请中断T112振荡器TR1T0方式3时T1方式选择TL1(5,8)TH1(8位)串行口12振荡器T1引脚C/T=0C/T=1串行口12振荡器T1引脚C/T=0C/T=1TL1(8位)TH1(8位)重装载(a)T1方式1或0(b)T1方式2定时/计数器T2在51系列单片机中,8052子系列除了有定时/计数器T0、T1外,还具有功能更强的定时/计数器T2。

除了两个8位计数器TL2、TH2和控制寄存器T2CON及T2MOD之外,还有捕获寄存器RCAP2L和RCAP2H。

输入引脚T2(P1.0)是外部计数脉冲输入端。

输入引脚T2EX(P1.1)是外部控制信号输入端。

T2中的特殊功能寄存器位地址位功能0CFHTF20CEHEXF20CDHRCLK0CCHTCLK0CBHEXEN20CAHTR20C9HC/T20C8HCP/RL2T2CON控制寄存器:

C/T2=0功能选择为定时器C/T2=0功能选择为计数器T2中的特殊功能寄存器T2MOD是字节寻址的,字节地址为0C9H,只有最低位有定义。

D7-D1-D0DCENDCEN=1,减计数;DCEN=0,加计数;T2的工作方式RCLK+TCLKCP/RL2TR2工作方式001自动重装载方式011捕获方式1x1波特率发生器xx0关闭捕获方式TL2(8位)TF2申请中断12振荡器T2引脚C/T=0C/T=1控制TR2TH2(8位)RCAP2LRCAP2H控制EXF2EXEN2边沿检测T2EX引脚自动重装载方式(DCEN=0)TL2(8位)TF2申请中断12振荡器T2引脚C/T=0C/T=1控制TR2TH2(8位)RCAP2LRCAP2H控制EXF2EXEN2边沿检测T2EX引脚重载自动重装载方式(DCEN=1)TL2(8位)申请中断12振荡器T2引脚C/T=0C/T=1控制TR2TH2(8位)RCAP2LRCAP2H0FFH0FFHTF2T2EX管脚EXF2波特率发生器方式TL2(8位)TF212振荡器T2引脚C/T=0C/T=1控制TR2TH2(8位)RCAP2LRCAP2H控制EXF2EXEN2边沿检测T2EX引脚16重载中断申请定时器、计数器定时常数计算由于计数器是加1计数的,所以定时常数应该求补码。

t=Tc(2L-TC)=12/f(2L-TC)t:

定时时间;Tc:

机器周期;f:

震荡器频率;L:

计数器字长;计算举例:

要使定时时间为2ms,而晶体震荡频率为12MHz,求定时常数。

2ms=1us(216-TC)TC=216-2000=65536-2000=63536化成两个字节:

=0f830h定时/计数器编程写TMOD,只能用字节寻址(M0,M1,C/T,GATE)。

将时间常数或计数常数写入计数器寄存器。

设置中断开放或禁止。

启动计数器。

例1使用T0在P1.0脚产生周期为2ms方波,震荡器频率为6MHz。

设计思路是每1ms产生一个中断,中断程序中除了重新初始化计数器外,使P1.0电平反转。

选用模式1作为T0的工作模式。

即TMOD=01H由于震荡器频率为6MHz,即2微妙计数器计数一次。

计数500次就是1ms。

定时常数为65536-500=0FE0CH,即TH=0FEH,TL=0CH。

主程序先初始化定时计数器,然后开启计数器。

具体程序主程序段:

MOVTMOD,#01HMOVTH0,#0FEHMOVTL0,#0CHSETBET0SETBEASETBTR0中断程序:

ORG000BHMOVTH0,#0F0HMOVTL0,#0CHCPLP1.0RETI例2T0用方式3,这时TL0、TH0分别可作为两个8位计数器,产生两个方波。

定时常数为:

256-100*(12/11.0592)=147256-150*(12/11.0592)=93T1用方式2,自动重装载,定时常数0F9H。

使用80C51单片机,用T1为串行口提供波特率9600定时,同时希望产生两个方波,周期为200和300微妙。

为产生准确的标准波特率,震荡器通常选择频率为11.0592Mhz。

具体程序org0bh;tl0中断movtl0,#147cplp1.0retiorg1bh;th0中断movth0,#93cplp1.1reti主程序片段如下:

.movtmod,#23hmovtl0,#147movth0,#93movtl1,#0f9hmovth1,#0f9hsetbtr0setbtr1setbet0setbet1setbea.例3T0采用方式1,中断程序中通过判断p1.0是高电平还是低电平来重新设置计数器初始值。

计数器初始值从变量中得出,该变量的值同时由主程序动态给出,这样,PWM波的占空比等参数就由主程序决定了。

产生PWM波形,PWM波形的参数由主程序动态设置,只能使用一个定时器,比如T0。

具体程序;中断程序t0int:

cplp1.0jbp1.0,highmovtl0,low_level_lmovth0,low_level_hretihigh:

movtl0,high_level_lmovth0,high_level_hreti;主程序org0ljmpstartorg0bhljmpt0intorg100hstart:

movtmod,#1hclrp1.0movtl0,low_level_lmovth0,low_level_hsetbet0setbeasetbtr0;下面可以设定波形变量的值3.串行接口51系列单片机中有一个全双工异步串行接口,可以用来和其它串行设备通讯。

全双工意味着它可以同时接收和发送。

UART串行口结构接收寄存器和发送寄存器。

控制逻辑串行口控制寄存器串行数据输入输出引脚结构图SCON串行口控制逻辑接受SBUF发送SBUFTXRX申请中断定时器单元串行口的特殊功能寄存器状态控制寄存器(SCON):

位地址位功能9FHSM09EHSM19DHSM29CHREN9BHTB89AHRB899HTI98HRI功率控制寄存器D7SMOD与串行口无关PCON只有最高位SMOD与串行口有关:

串行数据寄存器发送SBUF接受SBUF写读串行口工作方式多机通讯模式0-同步移位寄存器方式数据输入时,数据由RXD引脚输入,同时TXD引脚给出同步时钟。

数据的输入由REN=1和RI=0启动。

数据输出时,数据有TXD引脚输出,同时TXD引脚给出同步时钟。

输出由对SBUF的写操作触发。

同步脉冲的频率是FCLK/12。

输入时序和电路D0D1D2D3D4D5D6D7RXDTXDCD4014CD4014QSQCLKCLKRXDTXD输出时序和电路D0D1D2D3D4D5D6D7RXDTXDCD4094CD4094DATAQDATACLKCLKRXDTXD方式1:

8个数据位通讯方式当SM0=0、SM1=1时,串行口选择方式1。

其波特率由定时计数器T1或T2的溢出速率决定。

它是全双工模式,输入由Rx引脚,输出由Tx引脚。

它的一帧数据由一个起始位

(1)、8个数据位和一个停止位(0)组成。

方式1帧格式D0D1D2D4D3D5D6D7起始停止1100100193H方式1发送和接收完成的条件单片机1单片机2RxTxRxTx写SBUF指令后,就触发一个发送过程。

发送完成时,Ti置位表明

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

当前位置:首页 > 高等教育 > 研究生入学考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1