欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    (35)--[7.1.5] 定时器计数器的应用.ppt

    • 资源ID:96450687       资源大小:19.31MB        全文页数:12页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    (35)--[7.1.5] 定时器计数器的应用.ppt

    定定 时时 器器 计计 数数器器 的的 应应 用用7.1.5 定时器/计数器的应用例设系统时钟频率为12MHz,利用定时器/计数器T0编程实现从P1.0输出周期为20ms的方波。从P1.0输出周期为20ms的方波,只需P1.0每隔10ms取反一次。当系统时钟为12MHz,定时器/计数器T0工作于方式1时,最大的定时时间为65536us,满足10ms的定时要求。系统时钟为12MHz,计数值为10000,初值X=65536-10000=D8F0H,则TH0=D8H、TL0=F0H。1采用查询方式编程汇编语言参考程序为:汇编语言参考程序为:ORG 0000HORG 0000H AJMP MAIN AJMP MAIN ORG 0300H ORG 0300H MAIN MAIN:MOV TMODMOV TMOD,#01H#01H ;定时器,计数嚣;定时器,计数嚣T0T0工作于方式工作于方式1 1 HH1 HH1:MOV TH0MOV TH0,#0D8H#0D8H MOV TL0 MOV TL0,#0F0H#0F0H SETB TR0 SETB TR0 LOOP LOOP:JBC TF0JBC TF0,NEXT NEXT ;查询计数溢出;查询计数溢出 SJMP LOOPSJMP LOOP NEXT NEXT:CPL P1.0CPL P1.0 SJMP HH1 SJMP HH1 SJMP$SJMP$7.1.5 定时器/计数器的应用1采用查询方式编程C C语言参考程序为:语言参考程序为:#include#include sbit P1_0=P1 sbit P1_0=P10;0;void main()void main()char i;char i;TMOD=0 x01;TMOD=0 x01;TR0=1;TR0=1;For(;)For(;)TH0=0 xD8;TL0=0 xF0;TH0=0 xD8;TL0=0 xF0;do while (!TF0)do while (!TF0)P1_0=!P1_0;TF0=0;/P1_0=!P1_0;TF0=0;/查询计数溢出查询计数溢出 7.1.5 定时器/计数器的应用2采用中断方式编程 ORG 0000H ORG 0000H LJMP MAIN LJMP MAIN ORG 000BH ORG 000BH ;中断处理程序;中断处理程序 CPL P1.0CPL P1.0 MOV TH0 MOV TH0,#0D8H#0D8H MOV TL0 MOV TL0,#0F0H#0F0H RETI RETI ORG 0200H ORG 0200H ;主程序;主程序7.1.5 定时器/计数器的应用MAINMAIN:MOV TMODMOV TMOD,#01H#01H MOV TH0 MOV TH0,#0D8H#0D8H MOV TL0 MOV TL0,#0F0H#0F0H SETB EA SETB EA SETB ET0 SETB ET0 SETB TR0 SETB TR0 SJMP$SJMP$汇编语言参考程序为:汇编语言参考程序为:2采用中断方式编程 C C语言参考程序为:语言参考程序为:#include /#include /包含特殊功能寄存嚣库包含特殊功能寄存嚣库sbit P1_0=P1sbit P1_0=P10;0;void main()void main()TMOD=0 x01;TMOD=0 x01;TH0=0 xD8;TL0=0 xF0;TH0=0 xD8;TL0=0 xF0;EA=1;ET0=1;EA=1;ET0=1;TR0=1;TR0=1;while(1);while(1);7.1.5 定时器/计数器的应用C C语言参考程序为:语言参考程序为:void time0_int(void)interrupt 1 /void time0_int(void)interrupt 1 /中断服务程序中断服务程序 P1_0=!P1_0;P1_0=!P1_0;TH0=0 xD8;TL0=0 xF0;TH0=0 xD8;TL0=0 xF0;n如果定时时间大于如果定时时间大于6553665536s s,这时用一个定,这时用一个定时时/计数器直接处理不能计数器直接处理不能实现,这时可用:实现,这时可用:1 1个个定时定时/计数器配合软件计计数器配合软件计数方式处理;数方式处理;2 2个定时个定时/计数器共同处理。计数器共同处理。7.1.5 定时器/计数器的应用例n当 fosc=6MHz时,工作方式0、1、2均不能满足定时1s的要求。如,16位定时最大为216 2s=131.072ms,显然不能满足要求,可用以下两种方法解决。如图所示,在P1.7端接一个发光二极管LED,要求利用定时控制使LED亮1s灭1s周而复始地闪烁,设时钟频率fosc=6MHZ。7.1.5 定时器/计数器的应用 ORG 0000H ORG 0000H AJMP MAIN AJMP MAIN ORG 000BH ORG 000BH ;T0T0中断服务程序入口中断服务程序入口 AJMP IP0AJMP IP0 ORG 0030H ORG 0030H ;主程序开始;主程序开始 MAINMAIN:CLR P1.7CLR P1.7 MOV TMOD MOV TMOD,#01H#01H ;T0T0定时定时100ms100ms MOV TH0 MOV TH0,#3CH#3CH MOV TL0 MOV TL0,#0B0H#0B0H SETB ET0 SETB ET0 SETB EA SETB EA MOV R4 MOV R4,#0AH#0AH ;中断;中断1010次计数次计数 SETB TR0SETB TR0 SJMP$SJMP$;等待中断;等待中断 IP0 IP0 :DJNZ R4DJNZ R4,RET0 RET0 ;未到;未到1010次转重新定时次转重新定时 MOV R4MOV R4,#0AH#0AH ;到;到1010次次 CPL P1.7 CPL P1.7 ;P1.7P1.7的灯变反的灯变反 RET0RET0:MOV TH0MOV TH0,#3CH#3CH ;重新定时;重新定时100ms100ms MOV TL0 MOV TL0,#0B0H#0B0H SETB TR0 SETB TR0 RETI RETI方法1:T0每隔100ms中断一次,利用软件对T0的中断次数进行计数,中断10次即实现了1s的定时。7.1.5 定时器/计数器的应用汇编参考程序为:汇编参考程序为:方法2:采用T0产生周期为200ms脉冲,即P1.0每100ms取反一次作为T1的计数脉冲,T1对下降沿计数,因此T1计5个脉冲正好1s。通过P1.7反相,改变LED的状态。T0采用方式1,定时100ms。计数初值为:X=216100103/2=3CB0H。T1采用方式2,计5个脉冲,计数初值:X=285=FBH。均采用查询方式,其流程图如图所示。7.1.5 定时器/计数器的应用7.1.5 定时器/计数器的应用ORG 0000H MAIN:CLR P1.7 SETB P1.0 MOV TMOD,#61H MOV TH1,#0FBH MOV TL1,#0FBH SETB TR1 LOOP1:CPL P1.7 LOOP2:MOV TH0,#3CH MOV TL0,#0B0H SETB TR0 LOOP3:JBC TF0,LOOP4 SJMP LOOP3 LOOP4:CPL P1.0 JBC TF1,LOOP1 AJMP LOOP2 END汇编参考程序为:汇编参考程序为:7.1.5 定时器/计数器的应用#includesbit P1_0=P10;sbit P1_7=P17;timer0 interrupt 1 using 1 /*T0中断服务程序*/P1_0=!P1_0;/*10ms定时时间到,P1.0反相*/TH0=(65536-50000)/256;/*计数初值重装载*/TL0=(65536-50000)%256;timer1 interrupt 3 using 2 /*T1中断服务程序入口*/P1_7=!P1_7;/*1s定时时间到,灯改变状态*/main()P1_7=0;/*置灯初始灭*/P1_0=1;/*保证第1次反相便开始计数*/TMOD=0 x61;/*T0工作在方式1定时,T1工作在方式2计数*/TH0=(65536-50000)/256;/*预置计数初值*/TL0=(65536-50000)%256;TH1=256-5;TL1=256-5;IP=0 x08;/*置优先级寄存器*EA=1;/*CPU开中断*/ET0=1;/*开T0中断*/ET1=1;/*开T1中断*/TR0=1;/*启动T0*/TR1=1;/*启动T1*for(;)C C语言参考程序为:语言参考程序为:

    注意事项

    本文((35)--[7.1.5] 定时器计数器的应用.ppt)为本站会员(刘静)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开