单片机最小系统及应用概论.ppt

  1. 1、本文档共90页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机最小系统及应用概论

第五章 C51单片机最小系统及应用;5.1 并行输入/输出接口;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;3.溢出: 计数器溢出时,将使标志位TF0/TF1置“1”。一旦TF0/TF1由0变1,就会引发中断处理事件。 如:定时时间到,闹钟会响。;51子系列单片机有两个16位的可编程定时/计数器:定时/计数器T0和定时/计数器T1;52子系列有三个,还有一个定时/计数器T2 每个定时/计数器既可以对系统时钟计数,实现定时;也可以对外部脉冲信号计数,实现计数功能,通过编程设定来实现。 每个定时/计数器都有多种工作方式,其中T0有四种工作方式;T1有三种工作方式,T2有三种工作方式。通过编程可设定工作方式。 每一个定时/计数器定时或计数时间到时,产生溢出,使相应的溢出位置位,溢出可通过查询或中断方式处理。;5.3.2 定时/计数器T0、T1的结构及工作原理;;计数过程: 在每一个机器周期的S5P2时刻对T0(P3.4)或T1(P3.5)上信号采样一次,如果上一个机器周期采样到高电平,下一个机器周期采样到低电平,则计数器在下一个机器周期的S3P2时刻加1计数。因而需要两个机器周期才能识别一个计数脉冲,所以外部计数脉冲的频率应小于振荡频率的1/24。;5.2.3 定时/计数器的方式和控制寄存器;2.定时/计数器的方式寄存器TMOD;C/T:定时或计数方式选择位,当C/T=1时工作于计数方式;当C/T=0时工作于定时方式。 ;5.2.3 定时/计数器的工作方式;*;2.方式1;3.方式2;方式2是8位的定时/计数方式,最大计数值(满值)为2的8次幂,等于256。如计数值为N,则置入的初值X为: X=256-N 如定时/计数器T0的计数值为100,则初值为256-100=156,转换成二进制数,则TH0= TL0。 优点:能够进行自动重装载。 缺点:定时/计数范围要小于方式0和方式1;;5.2.4 定时/计数器的初始化编程及应用 ;二.定时/计数器的应用;汇编程序: ORG 0000H LJMP MAIN ORG 000BH ;中断处理 CPL P1.0 RETI ORG 0100H ;主程序 MAIN: MOV TMOD,#02H MOV TH0,#06H MOV TL0,#06H SETB EA SETB ET0 SETB TR0 SJMP $ END;(2)采用查询方式处理程序;注意: 如果定时时间大于65536μs,用一个定时/计数器直接处理不能实现,可用两个定时/计数器共同处理或一个定时/计数器配合软件计数方式处理。 ;汇编程序: ORG 0000H LJMP MAIN ORG 000BH LJMP INTT0 ORG 0100H MAIN: MOV TMOD,#01H MOV TH0,#0D8H MOV TL0,#0F0H MOV R2,#00H SETB EA SETB ET0 SETB TR0 SJMP $;C语言程序: # include reg51.h //包含特殊功能寄存器库 sbit P1_1=P1^1; char i; void main() { TMOD=0x01; TH0=0xD8;TL0=0xf0; EA=1;ET0=1; i=0; TR0=1; while(1); } void time0_int(void) interrupt 1 //中断服务程序 { TH0=0xD8;TL0=0xf0; i++; if (i= =50) {P1_1=! P1_1;i=0;} };(2) 用定时/计数器T1计数实现; ORG 0100H MAIN: MOV TMOD,#61H MOV TH0,#0D8H MOV TL0,#0F0H MOV TH1,#0E7H MOV TL1,#0E7H SETB EA SETB ET0 SETB ET1 SETB TR0 SETB TR1 SJMP $ END;C语言程序如下: # include reg51.h //包含特殊功能寄存器库 sbit P1_1=P1^1; sbit P3_5=P3^5; void main() { TMOD=0x61; TH0=0xD8;TL0=0xf0; TH1=0xE7; TL1=0xE7; EA=1; ET0=1;ET1=1; TR0=1;TR1=1; while(1); } void time0_int(v

文档评论(0)

***** + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档