3Keil-C学习定时器定时1s资料_第1页
3Keil-C学习定时器定时1s资料_第2页
3Keil-C学习定时器定时1s资料_第3页
3Keil-C学习定时器定时1s资料_第4页
3Keil-C学习定时器定时1s资料_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

实例3-1:定时器中断来闪灯单片机的主程序是从0x0000开始运行的,单片机服务程序从哪里开始运行呢?在51里,有多个中断服务程序入口,0号入口是外中断0,地址在0x0003;1号入口是定时器0,在0x000B;2号入口是外中断1;地址在0x0013,3号入口是定时器2;地址在0x001B,等等。当中断发生时,程序就记下当前运行的位置,跳到对应的中断入口去运行中断服务程序,运行完之后,又跳回到原来的位置继续运行。在C51中,你不用理会中断服务程序放在哪里,会怎么跳转。你只要把某个函数标识为几号中断服务函数就可以了。在发生了对应的中断时,就会自动的运行这个函数。在定时器服务函数里,需要重新置入定时器的值,这样才能保证每次溢出时,都是你指定的时间。这里置入的是0x0006,还需要走0x10000-0x0006个机器周期才溢出。换成10进制也就是每65530个机器周期中断一次。我们仿真的晶振是22118400HZ,每12个时钟一个机器周期。65530×12/22118400=0.036秒。也就是差不多28HZ的闪烁频率。计算初值12M晶振50MS中断12M的晶振,则机器周期是1us(12个振荡周期为1个机器周期)方式1下定时时间=(65536-T0初值)*机器周期;最大定时时间=2的16字方*机器周期=0.065516s所以你可以选择50MS中断一次+1一直加到20就可以定时1s了

TH0=(65536-定时时间/机器周期)/256(取整)

TL0=(65536-定时时间/机器周期)%256(取余)实例3-2:定时器精确定位1秒钟(使用AT89C52的定时器2)要精确定时,必须使用自装载方式。这里我们使用T2定时器,让它工作在16bit自动装载方式,这时,有另一个位置专门装着16位预装载值,T2溢出时,预装载值立即被置入。这就保证了精确定时。即使是16位定时器,最长的溢出时间也就几十毫秒,要定时一秒,就需要一个变量来保存溢出的次数,积累到了多少次之后,才执行一次操作。这样就可以累加到1秒或者更长的时间才做一次操作了。如果使用T2定时器实现1秒精确定时?下面我们就来计算:仿真器的晶振是22118400HZ,每秒钟可以执行1843200个机器周期(12个时钟周期为1个机器周期)。而T2每次溢出最多65536个机器周期。我们尽量应该让溢出中断的次数最少,这样对主程序的干扰也就最小。选择每秒中断24次,每次溢出1843200/24=76800个机器周期,超出65536,无效。选择每秒中断30次,每次溢出1843200/30=61440个机器周期选择每秒中断32次,每次溢出1843200/32=57600个机器周期选择每秒中断36次,每次溢出1843200/36=51200个机器周期选择每秒中断40次,每次溢出1843200/40=46080个机器周期从上面可以看到我们可以选择方式有很多,但是最佳的是每秒中断30次,每次溢出61440个机器周期。也就是赋定时器T2初值65536-61440=4096,换成十六进制就是0x1000。我们在定时器服务函数里,设置了一个静态变量t,静态变量的值在进入函数时是不会被初始化的,而是保持上次的值。它用来计数定时器的溢出次数,也就是T2中断函数进入的次数,每溢出30次,就控制一次LED灯的反转显示。这时的时间就正好是1秒,而且是精确的1秒!只与晶振的精度有关。练习:MAX7219显示,参考3KeilC学习.ppt练习3:显示用MAX7219显示器用定时器显示2位(十位,个位)LED数码管的数字,个位显示0-9,加到9后十位加1,并个位为0.十位显示0-5.定时器1s自动加1。(可以使用其他的晶振时间,也可以选用AT89C51。12M晶振)任务书:电子钟设计显示电子钟的时、分、秒,并能进行自动加1s;秒加到59进分,分加到59进小时,时进到23重新开始计时。实例4

读IO,用按钮控制点灯

请看一下电路,今天我们要学习用单片机读取按键的值,并且使用一个按键K1(连接与P1.4)去控制点亮P1.0控制的LED,用另一个按键K2(连接与P1.5)去控制P1.1控制的LED。下面讲述一下识别按键的原理。在单片机中,我们可以读取某个IO的值。在51的IO口,如果处于输出1的状态(51上电后IO就默认为1),这时IO内部可以简化为有一个几十K的电阻上拉到电源VCC(P0除外),这时这个IO就可以作为输入脚用。如果直接读一个没有按下按键的IO,就会读到

温馨提示

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

评论

0/150

提交评论