- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机(c语言版)定时器计数器资料.ppt
时间常数的计算 时间常数:定时器/计数器T0或T1的初始计数值,在T0或T1被启动后,每个机器周期使计数器中的计数值加1,计数器产生溢出后。 定时时间:计数器溢出时间,时间常数越大,定时时间就越短;时间常数越小,定时时间就越长。时钟的频率越高,定时时间越短;时钟的频率越低,定时时间越长。 设系统时钟的频率为fosc,计数器的初始值为N,定时器工作于方式1,则定时时间: T (216-N)×12/fosc 1 如果定时器工作于方式2或方式3,定时时间为: T (28-N)×12/fosc 2 例如:系统的时钟频率是12MHz,在方式1下,如果希望定时器/计数器T0的定时时间T为10ms,则初值N 216-T 65536-10000 55536 MCS-51单片机的定时器是可编程的,但在进行定时或计数之前要对程序进行初始化,具体步骤如下: (1)确定工作方式字:对TMOD寄存器正确赋值; (2)确定定时初值:计算初值,直接将初值写入寄存器的TH0、TL0或TH1、TL1; 初值计算:设计数器的最大值为M,则置入的初值X为: 计数方式:X M-计数值 定时方式:由 M-X T 定时值,得X M-定时值/T T为计数周期,是单片机的机器周期。 (模式0-M为213,模式1-M为216,模式2和3-M为28) (3)根据需要,对IE置初值,开放定时器中断; (4)启动定时/计数器,对TCON寄存器中的TR0或TR1置位,置位以后,计数器即按规定的工作模式和初值进行计数或开始定时。 6.4.1 P1口外接的8只LED每0.5s闪亮一次。 【例6-1】在AT89S51单片机的P1口上接有8只LED(电路见图4-7)。下面采用定时器T0的方式1的定时中断方式,使P1口外接的8只LED每0.5s闪亮一次。 (1)设置TMOD寄存器 方式1;计时工作模式;仅由TR0来控制;T1不使用。 TMOD寄存器应初始化为0x01 0000 0001B [案例2] 如图所示,P0口接8只发光二极管,编程使发光管轮流点亮,点亮时间为500ms,要求使用定时器T0来控制,设晶振为12MHz。 设计思想 我们可将P0口的初值设置为0xFE,对应于发光管D1亮,每隔500ms将P0的值循环左移一位,这一周期性的定时作业用T0来完成。 主函数 uchar count 0; //50ms定时中断次数计数器 void main void led 0xfe; TMOD 0x01; //T0工作于方式1 TH0 -50000/256; //定时时间为50ms TL0 -50000%256; ET0 1; //允许T0中断 TR0 1; //启动T0定时 EA 1; //CPU开中断 while 1 ; void time0 void interrupt 1 TH0 -50000/256; TL0 -50000%256; count++; if count 10 count 0; led _crol_ led,1 ; P0 led; [案例4] 用定时器来控制数码管的动态显示。 主程序 uchar bsel , n; void main void n 0; bsel 0xfe; //首先显示数码管的最低位 TMOD 0x01; //T0工作于定时方式2 TH0 -1000/256; //T0的定时时间为1000us TL0 -1000%256; ET0 1; //允许T0中断 TR0 1; //启动定时 EA 1; //开中断 while 1 ; void time0 void interrupt 1 TH0 -1000/256; TL0 -1000%256; P0 0xff; P2 bsel; P0 segtab[dbuf[n]]; bsel _crol_ bsel,1 ; n++; if n 4 n 0; bsel 0xfe; TL0 0xfc; /*向TL0写入初值低8位*/ EA 1; /*总中断允许*/ ET1 1; /*T1中断允许*/ TR1 1; /*启动T1*/ while 1 ; /*无穷循环,等待定时中断*/ /*以下为定时器T1的中断服务程序*/ void T1_int void interrupt 3 for ;; /*无限循环*/ P1 0xff; /*8位LED全灭*/ Delay 500 ; /*延时500ms*/ P1 0; /*8位LED全亮*/ Delay 500 ; /*延时500ms */ * 用定
您可能关注的文档
最近下载
- 普通高中音乐课程标准(2017年版2020年修订).docx
- T_JSFPSA -001-2022_全麦面包_标准.pdf VIP
- GB50702-2011砌体结构加固设计规范.docx VIP
- 《特高压电力管廊盾构隧道结构施工及运营期验收评估标准》.pdf VIP
- 15、推理综合 举一反三 2024—2025学年度 小学二年级奥数 教学课件PPT.pptx VIP
- 项目式学习在小学英语教学中的实践教学研究课题报告.docx
- matlab课件(西工大-孙蓬).pptx
- 香港上市(IPO)全流程介绍(最完整版).pdf VIP
- GBT50319-2013建设工程监理规范表格-全部[整理].doc VIP
- 09S302雨水斗选用及安装图集(清晰).pdf VIP
文档评论(0)