第6章-2单片机_第1页
第6章-2单片机_第2页
第6章-2单片机_第3页
第6章-2单片机_第4页
第6章-2单片机_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

1、6.4 定时定时/计数器的编程和应用计数器的编程和应用 6.4.1 定时功能应用举例定时功能应用举例 6.4.2 计数功能应用举例计数功能应用举例实例实例5 定时器中断控制的流水灯采用定时中断方式,实现下图流水灯控制功能。要求灯的循环速率为每秒1次。分析:分析:利用定时器直接进行1s延时是无法实现的,但可以将定时中断与软件计数联合起来增加延时长度,即利用定时中断进行中断次数统计利用定时中断进行中断次数统计。例如,1s延时可以视为20次50ms定时中断的累积延时量。若采用12MHz频率定时方式1,则计数初值为: a = -50000 = 0 x3cb0实例5运行效果视频6.4 定时定时/计数器的

2、编程和应用计数器的编程和应用 6.4.1 定时功能应用举例定时功能应用举例 6.4.2 计数功能应用举例计数功能应用举例计数器方式要点:计数器方式要点:由引脚T0(P3.4)和T1(P3.5)输入外部脉冲信号;当T0或T1脚出现由1到0 负跳变脉冲时,计数器值加1;当计数器溢出时,TFx硬件置1;由于检测一个负跳变需要2个机器周期,即24个振荡周期,故最高计数频率=oscf241补充实例补充实例2 将第5章实例5“计数显示器”中的查询法按键检测改用T0中断方式实现。分析分析 将T0设置为计数器方式2,设法使其在1个外部脉冲到来时就能溢出(即计数溢出周次为1)产生中断请求。计数初值a =最大计数

3、空间 - 计数溢出周次 = 28 1 = 255 = 0 xff初始化,TMOD = 0000 0110B = 0 x06补充实例2程序:补充实例2运行效果:外部中断的扩展问题(5.4.2)1、利用查询法扩展外部中断源利用查询法扩展外部中断源通过门电路连接多个外部中断源,利用输入端口线作为各个中断源的识别线。2、利用定时器扩展外部中断源利用定时器扩展外部中断源通过定时器引脚连接外部中断源,利用工作在计数器方式下的1个计数脉冲信号产生溢出中断。main() P0=P2=table0;/显示初值“00” TMOD=0 x06;/T0计数方式2 TH0=TL0=0 xff; /计数初值 ET0=1;

4、 EA=1; /开中断 TR0=1;/启动T0 while(1);实例实例2 测量从P3.2(INT0)输入的正脉冲的宽度,测量结果以BCD码形式存放在片内RAM 40H开始的单元处(设40H地址存放个位,系统时钟为12MHz,被测脉冲信号周期不超过100ms) 。原理分析原理分析:GATE=TR0=1时允许INT0的脉冲控制定时器的启停,即INT0=1可启动定时器,INT0=0可关闭定时器。若T0为定时器方式(计数初值为0),则根据T0先启动、再关闭后的计数值可算出被测脉冲宽度。实例实例2参考程序参考程序T0实例实例2电路电路 脉冲设置脉冲设置(100ms)在在Proteus软件中实现软件中

5、实现C51源码级调试源码级调试的方法:形成OMF (absolute objectmodule format files,绝对目标文件) 格式文件。 omf文件文件设置设置omf文件加载启动调试omf文件窗口片内RAM窗口实例2的运行结果结果:计数值为50000脉冲脉宽值为50ms。运行到光标实例2的运行结果视频实例实例2小结小结1、测量未知脉冲宽度的方法利用INTx引脚接入待测脉冲设置Tx定时方式 THx和TLx清零利用查询语句辅助计时用Tx计数值计算脉宽值;2、C51对存储器单元的操作方法定义指针变量并赋地址值按指针变量对数据进行读写操作;3、十六进制数转BCD码的方法从最低位开始反复进行

6、模10计算 取模后删去最低位(整除10)直至整除10的结果为0 ;4、在Proteus中进行C51调试的方法改变keil 的输出设置形成omf格式编译文件在Proteus中加载omf文件利用类似汇编调试方法进行调试。实例实例3 设计一个波形展宽程序。设由P3.4输入一个低频窄脉冲信号。当P3.4波形发生负跳变时,由P3.0口输出一个500s宽的同步脉冲(设系统频率为6MHz)。1)将T0设置为1次计数方式次计数方式2,初值设为0 xff。这样P3.4一旦发生负跳变T0就会产生溢出;2)查询TF0标志位。当TF0=1时将T0设置为500 s定定时方式时方式2,初值设为-250(=-5006/12

7、),同时使P3.0输出低电平;3)查询TF0标志位。待T0再次溢出后使P3.0输出高电平,然后将T0设置为1次计数方式次计数方式2,如此往复进行。分析:分析:可以采取如下做法:T0实例3参考程序实例3电路图实例3仿真运行效果实例4 采用10MHz晶振,在P1.0脚上输出周期为2.5s,占空比为20%的脉冲信号。分析:10兆晶振,方式1最大定时为78.643ms;若取10ms产生定时,则2.5s对应于250次溢出;高电平占20%(500ms),则对应于50次溢出。a = -1000010/12=-8333 t =(2n-a)12/fosc ( s)2.5s0.5s次数=50?次数=250?中断函数流程图实例4参考程序实例4仿真运行效果本章小结1、定时/计数器的工作原理是,利用加1计数器对时钟脉冲或外来脉冲进行自动计数。当计满溢出时可引起中断标志(TFx)硬件置位。据此表示定时时间到或计数次数到。定时器本质上是计数器,前者是对时钟脉冲进行计数,后者则是对外来脉冲进行计数。2、51单片机包括两个16位定时器T0 (TH0、TL0)和T1 (TH1、TL1),还包括两个控制寄存器TCON和TMOD。通过TMOD控制字可以设置定时与计数两种模式,设置方式0方式3四种工作方式;通过T

温馨提示

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

最新文档

评论

0/150

提交评论