C51教程 第五个C51程序:内部资源之定时计数器

您所在的位置:网站首页 计时器的内部结构图 C51教程 第五个C51程序:内部资源之定时计数器

C51教程 第五个C51程序:内部资源之定时计数器

#C51教程 第五个C51程序:内部资源之定时计数器| 来源: 网络整理| 查看: 265

内部资源之定时器 16位计数器:T0 分为 TH0(高八位) 和 TL0(低八位) T1 分为TH1(高八位) 和 TL1(低八位) (1)相关口线:T0:P3.4,定时计数器0外部脉冲输入端;如果是内部时钟,则工作时钟为fosc/12,此时P3.4作IO口使用 T1:P3.5,定时计数器1外部脉冲输入端;如果是内部时钟,则工作时钟为fosc/12,此时P3.5作IO口使用 输入信号下降沿有效,前一个机期周期为高电平 ,后一个机期周期为低电平表示有脉冲,信号周期: T>=2Tfr=2*12*Tosc,即信号的频率f (1/f)>=(24/fosc) >> f>C=1000 000 /(zi*0.707*3) nf t=(2^n-初值)Tfr 1000=2^n-x x=2^13-1000=8192-1000=7192 f=38k T=1s/f t=T/2 13us=(2^n-x)Tfr 13=2^n-x x=2^n-13=2^8-13

定时器是什么?定时器顾名思义是用来计时的,比如led闪烁的频率可以用定时器来控制,它比延时函数更加精确,而且最重要的是它可以不占用CPU的资源单独运行。

定时器在程序中的含义就是:每隔一段时间就执行定时器中断服务函数一次,隔多久可以自行编程

接下来我们通过一个最简单的定时器实验来具体学习

定时器之一个发光二极管闪烁

首先创建一个名为定时器的一个文件夹, 在这里插入图片描述然后,打开仿真,布置电路图,所需元件:AT89C51、LED-YELLOW、RES在这里插入图片描述 点击保存到刚刚创建的文件夹下,在这里插入图片描述 打开keil4,新建一个定时器工程,写下代码

#include void main(void) { //相关控制字 TMOD = 0x01; //定时方式,计数器的工作脉冲来自内部时钟信号 TCON = 0x30; //定时计数器启动 ET0 = 1; //打开定时器0中断 EA = 1; //打开总中断 TH0 = (65535-5000)/256; //设置定时器时间为50ms TL0 = (65535-5000)%256; while(1); } timer0(void) interrupt 1 { static char n = 0; //记录中断响应次数n n++; TH0 = (65535-50000)/256; //响应中断后会清零,要从新赋值 TL0 = (65535-50000)%256; if(n == 20) //记录到响应了20次 也就是1秒,执行下程序 { n = 0; //录记响应次数清零 P1 = ~P1; } }

编译,烧录 在这里插入图片描述 在这里插入图片描述

代码以及仿真文件包:定时器.rar



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3