第四章-3-MCS-51单片机的内部资源及其编程-定时-计数器编程实例-zxl..ppt_第1页
第四章-3-MCS-51单片机的内部资源及其编程-定时-计数器编程实例-zxl..ppt_第2页
第四章-3-MCS-51单片机的内部资源及其编程-定时-计数器编程实例-zxl..ppt_第3页
第四章-3-MCS-51单片机的内部资源及其编程-定时-计数器编程实例-zxl..ppt_第4页
第四章-3-MCS-51单片机的内部资源及其编程-定时-计数器编程实例-zxl..ppt_第5页
免费预览已结束,剩余13页可下载查看

下载本文档

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

文档简介

第四章MCS 51单片机的内部资源及其编程 单片机技术与应用 4 3 定时 计数器编程实例 数码管显示实验 实现数值0 65535的变化显示 问题 如何使数值变化的速度减慢 如每隔1秒数值加1 voidmain void unsignedchari j unsignedintuiTemp 0 while 1 convert uiTemp for i 0 i 6 i P2 LED seg i 送段码P0 LED bit i 送位码delay1ms 5 5ms延迟 j if j 33 约1秒 uiTemp j 0 方法一 方法二 voidmain void unsignedchari j gluiTemp 0 TMOD 0 x01 TH0 65536 50000 256 TL0 65536 50000 256 ET0 1 EA 1 TR0 1 while 1 convert gluiTemp for i 0 i 6 i P2 LED seg i 送段码P0 LED bit i 送位码delay1ms 5 5ms延迟P0 0 例1 实现数值0 65535的变化显示 每隔50ms数值加1 设晶振频率为12MHz includeunsignedintgluiTemp voidTimer0 interrupt1using1 TH0 65536 50000 256 TL0 65536 50000 256 gluiTemp voidmain void unsignedchari j gluiTemp 0 glucCounter 0 TMOD 0 x01 TH 65536 50000 256 TL 65536 50000 256 ET0 1 EA 1 TR0 1 while 1 convert gluiTemp for i 0 i 6 i P2 LED seg i 送段码P0 LED bit i 送位码delay1ms 5 5ms延迟P0 0 例1 实现数值0 65535的变化显示 每隔1s数值加1 设晶振频率为12MHz includeunsignedcharglucCounter unsignedintgluiTemp voidTimer0 interrupt1using1 TH0 65536 50000 256 TL0 65536 50000 256 glucCounter if glucCounter 20 gluiTemp glucCounter 0 定义一个全局变量 实现计数功能 例2 设晶振频率fosc 6MHz 要求在P2 0脚上输出周期为2ms的方波 解 采用定时器T0的方式1进行编程思路 采用定时间隔1ms 每次时间到P2 0取反并且启动下一次定时 从而实现2ms周期的方波 定时所需计数次数n 1000us 2us 500由于计数器递增计数 为得到500个计数之后的定时器溢出 必须给定时器置初值65536 500 MCU P2 0 2ms 2 3 定时 计数器的使用 includesbitP2 0 P2 0 voidT0 ISR interrupt1using1 T0中断服务程序入口 TH0 65536 500 256 计数初值重载TL0 65536 500 256 P2 0 P2 0 P2 0取反 voidmain void TMOD 0 x01 T0工作在定时器方式lTH0 65536 500 256 计数初值TL0 65536 500 256 ET0 1 EA 1 中断使能TR0 1 启动T0while 1 使用中断方式进行编程 includesbitP2 0 P2 0 voidmain void TMOD 0 x01 T0工作在定时器方式lTH0 65536 500 256 计数初值TL0 65536 500 256 TR0 1 启动T0while 1 TH0 65536 500 256 计数初值TL0 65536 500 256 while TF0 P2 0 P2 0 TF0 0 使用查询方式进行编程 查询TF0是否为 1 如果为 1 则说明溢出 定时时间到 例3 设单片机fosc 6MHz 要求在P2 0引脚上输出周期为2ms 占空比为75 的矩形波 在例2基础上应作何修改 2ms 占空比50 2ms 占空比75 1ms 1ms 1 5ms 0 5ms 2 3 定时 计数器的应用实例 2ms 占空比75 解 采用定时器T0的方式1进行编程思路 采用定时间隔0 5ms 并设置一个全局变量i对定时器的中断次数进行计数 小于等于3时输出高电平 等于4时输出低电平 以此循环 2 3 定时 计数器的应用实例 例3 设单片机fosc 6MHz 要求在P2 0引脚上输出周期为2ms 占空比为75 的矩形波 在例2基础上应作何修改 include reg51 h sbitP1 0 P1 0 unsignedchari voidTIMER0 ISR void interrupt1 TH0 65536 250 256 TL0 65536 250 256 i if i 3 P1 0 1 if I 4 P1 0 0 i 0 voidmain void TMOD 0 x01 TH0 65536 250 256 TL0 65536 250 256 ET0 1 EA 1 TR0 1 i 0 P1 0 1 while 1 2 3 定时 计数器的应用实例 例3 设单片机fosc 6MHz 要求在P2 0引脚上输出周期为2ms 占空比为75 的矩形波 在例2基础上应作何修改 include reg51 h sbitP1 0 P1 0 unsignedchari voidTIMER0 ISR void interrupt1 TH0 65536 250 256 TL0 65536 250 256 i if i 3 P1 0 0 if I 4 P1 0 1 i 0 voidmain void TMOD 0 x01 TH0 65536 250 256 TL0 65536 250 256 ET0 1 EA 1 TR0 1 i 0 P1 0 1 while 1 2 3 定时 计数器的应用实例 例3 设单片机fosc 6MHz 要求在P2 0引脚上输出周期为2ms 占空比为75 的矩形波 在例2基础上应作何修改 思考 如果周期2ms占空比要求是35 可以采用采用定时间隔0 5ms吗 不可以 思路 高电平持续时间35 低电平持续时间65 应考虑取其公约数 一般取最大公约数 所以可取时间间隔为0 1ms 高电平持续7个定时间隔 低电平持续13个时间间隔 include reg51 h sbitP1 0 P1 0 unsignedchari voidTIMER0 ISR void interrupt1 TH0 65536 50 256 TL0 65536 50 256 i if i 7 P1 0 0 if I 20 P1 0 1 i 0 voidmain void TMOD 0 x01 TH0 65536 50 256 TL0 65536 50 256 ET0 1 EA 1 TR0 1 i 0 P1 0 1 while 1 2 3 定时 计数器的应用实例 例3 设单片机fosc 6MHz 要求在P2 0引脚上输出周期为2ms 占空比为65 的矩形波 在例2基础上应作何修改 例4 设晶振频率fosc 6MHz 要求在P2 0脚上输出周期为2s的方波 同例1 思路 定时间隔为1秒 使用T0无法直接得到1秒的定时 因此 需要使用多次定时复合的方法来得到较长时间的定时 长定时的实现 2 3 定时 计数器的应用实例 P1 0 T1 P1 7 MCU 200ms 满5次溢出从而实现1秒定时 方法一使用两个定时 计数器实现1秒定时 T0工作在定时方式1 定时100ms 从而控制P1 0输出周期为200ms的方波 将这个方波输入到T1 T1工作在计数方式2 计数5次后溢出 控制P2 0反向 从而实现周期为2秒的方波输出 includesbitP1 0 P1 0 sbitP1 7 P1 7 voidTimer0 interrupt1using1 TH0 65536 50000 256 TL0 65536 50000 256 P1 0 P1 0 voidTimer1 interrupt3using2 P1 7 P1 7 voidmain P1 7 0 P1 0 1 程序代码 TMOD 0 x61 TH0 65536 50000 256 TL0 65536 50000 256 TH1 256 5 TL1 256 5 IP 0 x08 EA 1 ET0 1 ET1 1 TR0 1 TR1 1 while 1 方法二仅使用一个定时 计数器实现使用方法一时需要使用两个定时器和两个IO引脚 资源消耗比较多 如何使用较少的资源实现同样的定时功能 includesbitWAVE P1 7 unsignedcharglucCounter voidTimer0 interrupt1using1 TH0 65536 50000 256 TL0

温馨提示

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

评论

0/150

提交评论