单片机学习资料PPT课件_第1页
单片机学习资料PPT课件_第2页
单片机学习资料PPT课件_第3页
单片机学习资料PPT课件_第4页
单片机学习资料PPT课件_第5页
已阅读5页,还剩70页未读 继续免费阅读

下载本文档

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

文档简介

1 第四章80C51单片机的功能单元 2 一 并行I O接口 80C51共有四个8位的并行双向口 每位均有锁存器 输出驱动器和输入缓冲器组成 它们在结构和功能上均有差异 下面逐一介绍之 3 1 P1口 P1口是一个8位口 可以字节访问也可以位访问 其字节地址为90H 位地址为90H 97H 4 P1口结构和工作过程分析 5 输出上拉结构 Q 6 P1口特点 输出锁存输出高电平能力弱 低电平能力强特殊的读 修改 写指令 只读锁存器的输出 当目的操作数是断口时 下列指令读锁存器而不是管脚 ANL ORL XRL JBC CPL INCDEC DJNZ MOVPX Y C CLR SETB 7 p1口举例 P1口高电平输出能力差 对HMOS系列只有0 2mA以下 因此 直接驱动负载时应该用低电平驱动 低电平的拉电流能力强 5V P1 X 8 p1口举例 输入时应先把I O口置高 如果置低 可能损坏I O口 最好硬件电路设计上有所考虑 5V GND P1 x 9 2 P3口 P3口是一个多功能8位口 可以字节访问也可以位访问 其字节地址为B0H 位地址为B0H B7H 10 P3口结构和工作过程分析 11 P3口第二功能 P3 0 RXD 串行口输入P3 1 TXD 串行口输出P3 2 INT0 外部中断0P3 3 INT1 外部中断1P3 4 T0 定时 计数器0P3 5 T1 定时 计数器1P3 6 WR 外部存储器写选通P3 7 RD 外部存储器读选通 12 3 P2口 P2口是一个多功能8位口 可以字节访问也可以位访问 其字节地址为A0H 位地址为A0H A7H 其第二功能是作为外部存储器的高地址输出 13 P2口结构和工作过程分析 P2 i锁存器 读锁存器 Vcc P1 i引脚 内部总线 写锁存器 读引脚 B A 内部上拉电阻 D CL Q Q BUF2 BUF1 Q 地址 控制 14 P2口的功能特点 不输出地址时 作为双向I O口使用可以作为高地址输出能驱动4个TTL门 15 4 P0口 P0口是一个多功能8位口 可以字节访问也可以位访问 其字节地址为80H 位地址为80H 87H 其第二功能是作为外部存储器的低地址输出和数据输入输出 16 P0口结构和工作过程分析 P0 i锁存器 读锁存器 Vcc P0 i引脚 内部总线 写锁存器 读引脚 B A D CL Q Q BUF2 BUF1 Q 0 1 地址 数据 控制 17 P0口的特点 P0口作为总线时是地址 数据复用 作为I O口使用时是漏极开路应用 P0口能驱动8个TTL门 18 二 定时 计数器 19 1 定时 计数器概述 80C51系列单片机中总是包含T0 T1两个定时 计数器 有的型号还有定时 计数器T2 定时计数器的核心是一个加一计数器 其基本功能是加一操作 如果对外部信号加一 就是计数器 如果对时钟信号加一 就是定时器 20 2 定时 计数器T0 T1 21 内部结构 16位计数器TH0 TL0和TH1 TL1特殊功能寄存器TMOD TCON时钟分频器输入引脚T0 T1 INT0 INT1 22 内部结构图 TMOD 89H 不可位寻址 TCON 88H 可位寻址 TL1 TH1 TF TL1 TH1 TF INT1 T1 INT0 T0 CLK 12 CLK 12 23 TMOD方式寄存器 GATE D7 C T D6 M1 D5 M0 D4 GATE D3 C T D2 M1 D1 M0 D0 T1 T0 M0 M1 选择定时 计数器的模式0 1 2 3C T 选择定时或计数功能GATE 选择脉冲源 24 TCON控制寄存器 TFx 计数溢出时置1 进入中断程序时硬件清零 如果不允许中断 需要软件清零 TRx 控制计数定时脉冲的输入 由软件控制 其它位与中断控制有关 以后详述 TF1 D7 TR1 D6 TF0 D5 TR0 D4 IE1 D3 IT1 D2 IE0 D1 IT0 D0 T1 T0 88H 8FH 与中断控制有关 25 定时 计数器T0 T1方式0 TLx 5位 THx 8位 TFx 申请中断 12 振荡器 Tx引脚 C T 0 C T 1 TRx GATE INTx引脚 A B 控制 x 0 1 M1 0M0 0 26 定时 计数器T0 T1方式1 TLx 8位 THx 8位 TFx 申请中断 12 振荡器 Tx引脚 C T 0 C T 1 TRx GATE INTx引脚 A B 控制 x 0 1 M1 0M0 1 27 定时 计数器T0 T1方式2 TLx 8位 THx 8位 TFx 申请中断 12 振荡器 Tx引脚 C T 0 C T 1 TRx GATE INTx引脚 A B 控制 x 0 1 M1 1M0 0 重装载 28 方式3时定时 计数器T0 TL0 8位 TF0 申请中断T0 12 振荡器 T0引脚 C T 0 C T 1 TR0 GATE INT0引脚 A B 控制 M1 1M0 1 TH0 8位 TF1 申请中断T1 12 振荡器 TR1 29 T0方式3时T1方式选择 TL1 5 8 TH1 8位 串行口 12 振荡器 T1引脚 C T 0 C T 1 串行口 12 振荡器 T1引脚 C T 0 C T 1 TL1 8位 TH1 8位 重装载 a T1方式1或0 b T1方式2 30 定时 计数器T2 在51系列单片机中 8052子系列除了有定时 计数器T0 T1外 还具有功能更强的定时 计数器T2 除了两个8位计数器TL2 TH2和控制寄存器T2CON及T2MOD之外 还有捕获寄存器RCAP2L和RCAP2H 输入引脚T2 P1 0 是外部计数脉冲输入端 输入引脚T2EX P1 1 是外部控制信号输入端 31 T2中的特殊功能寄存器 位地址 位功能 0CFH TF2 0CEH EXF2 0CDH RCLK 0CCH TCLK 0CBH EXEN2 0CAH TR2 0C9H C T2 0C8H CP RL2 T2CON控制寄存器 C T2 0功能选择为定时器C T2 0功能选择为计数器 32 T2中的特殊功能寄存器 T2MOD是字节寻址的 字节地址为0C9H 只有最低位有定义 D7 D1 D0 DCEN DCEN 1 减计数 DCEN 0 加计数 33 T2的工作方式 34 捕获方式 TL2 8位 TF2 申请中断 12 振荡器 T2引脚 C T 0 C T 1 控制 TR2 TH2 8位 RCAP2L RCAP2H 控制 EXF2 EXEN2 边沿检测 T2EX引脚 35 自动重装载方式 DCEN 0 TL2 8位 TF2 申请中断 12 振荡器 T2引脚 C T 0 C T 1 控制 TR2 TH2 8位 RCAP2L RCAP2H 控制 EXF2 EXEN2 边沿检测 T2EX引脚 重载 36 自动重装载方式 DCEN 1 TL2 8位 申请中断 12 振荡器 T2引脚 C T 0 C T 1 控制 TR2 TH2 8位 RCAP2L RCAP2H 0FFH 0FFH TF2 T2EX管脚 EXF2 37 波特率发生器方式 TL2 8位 TF2 12 振荡器 T2引脚 C T 0 C T 1 控制 TR2 TH2 8位 RCAP2L RCAP2H 控制 EXF2 EXEN2 边沿检测 T2EX引脚 16 重载 中断申请 38 定时器 计数器定时常数计算 由于计数器是加1计数的 所以定时常数应该求补码 t Tc 2L TC 12 f 2L TC t 定时时间 Tc 机器周期 f 震荡器频率 L 计数器字长 39 计算举例 要使定时时间为2ms 而晶体震荡频率为12MHz 求定时常数 2ms 1us 216 TC TC 216 2000 65536 2000 63536化成两个字节 0f830h 40 定时 计数器编程 写TMOD 只能用字节寻址 M0 M1 C T GATE 将时间常数或计数常数写入计数器寄存器 设置中断开放或禁止 启动计数器 41 例1 使用T0在P1 0脚产生周期为2ms方波 震荡器频率为6MHz 设计思路是每1ms产生一个中断 中断程序中除了重新初始化计数器外 使P1 0电平反转 选用模式1作为T0的工作模式 即TMOD 01H由于震荡器频率为6MHz 即2微妙计数器计数一次 计数500次就是1ms 定时常数为65536 500 0FE0CH 即TH 0FEH TL 0CH 主程序先初始化定时计数器 然后开启计数器 42 具体程序 主程序段 MOVTMOD 01HMOVTH0 0FEHMOVTL0 0CHSETBET0SETBEASETBTR0 中断程序 ORG000BHMOVTH0 0F0HMOVTL0 0CHCPLP1 0RETI 43 例2 T0用方式3 这时TL0 TH0分别可作为两个8位计数器 产生两个方波 定时常数为 256 100 12 11 0592 147256 150 12 11 0592 93T1用方式2 自动重装载 定时常数0F9H 使用80C51单片机 用T1为串行口提供波特率9600定时 同时希望产生两个方波 周期为200和300微妙 为产生准确的标准波特率 震荡器通常选择频率为11 0592Mhz 44 具体程序 org0bh tl0中断movtl0 147cplp1 0retiorg1bh th0中断movth0 93cplp1 1reti 主程序片段如下 movtmod 23hmovtl0 147movth0 93movtl1 0f9hmovth1 0f9hsetbtr0setbtr1setbet0setbet1setbea 45 例3 T0采用方式1 中断程序中通过判断p1 0是高电平还是低电平来重新设置计数器初始值 计数器初始值从变量中得出 该变量的值同时由主程序动态给出 这样 PWM波的占空比等参数就由主程序决定了 产生PWM波形 PWM波形的参数由主程序动态设置 只能使用一个定时器 比如T0 46 具体程序 中断程序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 下面可以设定波形变量的值 47 3 串行接口 51系列单片机中有一个全双工异步串行接口 可以用来和其它串行设备通讯 全双工意味着它可以同时接收和发送 48 UART串行口结构 接收寄存器和发送寄存器 控制逻辑串行口控制寄存器串行数据输入输出引脚 49 结构图 SCON 串行口控制逻辑 接受SBUF 发送SBUF TX RX 申请中断 定时器单元 50 串行口的特殊功能寄存器 状态控制寄存器 SCON 位地址 位功能 9FH SM0 9EH SM1 9DH SM2 9CH REN 9BH TB8 9AH RB8 99H TI 98H RI 51 功率控制寄存器 D7 SMOD 与串行口无关 PCON只有最高位SMOD与串行口有关 52 串行数据寄存器 发送SBUF 接受SBUF 写 读 53 串行口工作方式 多机通讯 54 模式0 同步移位寄存器方式 数据输入时 数据由RXD引脚输入 同时TXD引脚给出同步时钟 数据的输入由REN 1和RI 0启动 数据输出时 数据有TXD引脚输出 同时TXD引脚给出同步时钟 输出由对SBUF的写操作触发 同步脉冲的频率是FCLK 12 55 输入时序和电路 D0 D1 D2 D3 D4 D5 D6 D7 RXD TXD CD4014 CD4014 Q S Q CLK CLK RXD TXD 56 输出时序和电路 D0 D1 D2 D3 D4 D5 D6 D7 RXD TXD CD4094 CD4094 DATA Q DATA CLK CLK RXD TXD 57 方式1 8个数据位通讯方式 当SM0 0 SM1 1时 串行口选择方式1 其波特率由定时计数器T1或T2的溢出速率决定 它是全双工模式 输入由Rx引脚 输出由Tx引脚 它的一帧数据由一个起始位 1 8个数据位和一个停止位 0 组成 58 方式1帧格式 D0 D1 D2 D4 D3 D5 D6 D7 起始 停止 11001001 93H 59 方式1发送和接收完成的条件 单片机1 单片机2 Rx Tx Rx Tx 写SBUF指令后 就触发一个发送过程 发送完成时 Ti置位表明发送寄存器空 可以写入新内容 当Ri清除和REN置位后 接受到起始位触发一个接受过程 接收完成后 置位Ri并出发中断 只有Ri清0后 表明数据已被处理 新的数据才能接受成功 60 方式2 3 9位数据方式 当SM0 1 SM1 0时 串行口选择方式2 当SM0 1 SM1 1时 串行口选择方式3 发送和接收一帧信息为11位 一个起始位 1 9个数据位和一个停止位 0 组成 数据除了8位要发送数据外 还包含第九位 发送由TB8组成 接收由RB8组成 考虑SM2 0的情况 这时第九位常用来作奇偶校验位 在SM2 0时 接受到完整字符包括第九位时置位Ri 产生中断 发送完成时 置位Ti产生中断 方式2和3的区别在于方式2的波特率是固定的 为f 32或f 16 而方式3的波特率由定时器的溢出速率决定 61 方式2 3的帧格式 D0 D1 D2 D4 D3 D5 D6 D7 起始 停止 110010010 93H 0 D8 62 多机通讯 主机 从机机号1 从机机号2 从机机号3 TXD RXD RXD RXD RXD TXD TXD TXD 63 多机通讯的设置 单片机设有多机通讯位SM2 SCON 5 当串行口工作于方式2或3时 若设置SM2 1 只有接收到的第九位 RB8 为1 才置位RI 触发中断 否则 数据将会丢失 利用这个特点可以实现多机通讯 每次通讯从主机对从机点名开始 各从机先设定SM2 1 通讯时主机先发送某从机的机号 并使第九位为1 这时所有从机接收并产生中断 从机把接收到的机号和自己的机号比较 如果是自己 就接着进行下面的通讯过程 否则结束通讯 并继续保持SM2 1 接下来主机和被点名的从机继续通讯 但这时都设置SM2 0 并且发送的数据第九位0 这时不会打扰其它从机 64 多机通讯 这样能够使主机发送数据或命令时 只有发送机号的字节使所有从机中断 发送其它字节时并不干扰不通讯的从机 还可以定义广播方式 比如假设机号0是广播地址 当收到机号0时 所有从机接受数据 65 波特率发生器和计算 方式2的波特率是固定的 为 波特率 f 2SMOD 64方式1 3的波特率用T1产生 波特率 定时器T1的溢出率 2SMOD 32用定时器T2产生波特率 波特率 定时器T1的溢出率 16 66 波特率计算举例 设震荡器频率为f 11 0592MHz 方式1 3 用T1方式2产生波特率9600 计算T1溢出率 定时器初始值 定时器T1溢出率 9600 32 30720011059200 307200 36初始值 256 36 220 0DCH 67 例1 把片内RAM内容从50h开始16字节发送出去 接收方接收16字节后存储于50h开始的内部RAM中 使用方式1 68 中断系统 突发事件的处理机制中断源 触发中断的事件中断优先级

温馨提示

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

最新文档

评论

0/150

提交评论