矿石收音机论坛

 找回密码
 加入会员

QQ登录

只需一步,快速开始

搜索
查看: 2736|回复: 10

求教89C52定时器2的使用

[复制链接]
     
发表于 2018-6-10 19:40:59 | 显示全部楼层 |阅读模式
为使用89c52的定时器2,编写了一段C语言程序,让一个灯闪烁。程序如下:
#include<reg52.h>

sbit led1 = P1^0;
int i = 0;

void timer1_inte()  //定时器初始化函数
{
        TMOD = 0x01;   //定时器T0选择工作方式1
        TH2 = 0x4c;           //设置初始值
        TL2 = 0x00;
        EA = 1;                   //打开总中断
        ET2 = 1;           //打开定时器T2中断
        TR2 = 1;           //启动定时器T2
}

void main()
{
        led1 = 0;
        timer1_inte();
        while(1)
        {       
                if(i==20)
                {       
                        led1 = ~led1;
                        i=0;
                }
        }
}

void tmer3() interrupt 3
{
        TF2 = 0;
        TH2 = 0x4c;                  //设置初始值
        TL2 = 0x00;
        i=i+1;
}
但烧录后不能运行,请高手指点。
     
发表于 2018-6-10 19:59:57 | 显示全部楼层
寄存器设置错误~~
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2018-6-10 20:13:47 | 显示全部楼层
寄存器设置
TMOD = 0x01;   //定时器T0选择工作方式1
是为了试一下T0定时器用的,将其去掉后仍是一样。
将程序中TH2等等改成TH0后,运行通过。也就是这个程序用T0定时器是成功的。
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2018-6-10 20:15:10 | 显示全部楼层
如果是其它寄存器设置,烦请告知。谢谢!
回复 支持 反对

使用道具 举报

     
发表于 2018-6-10 20:39:18 | 显示全部楼层
本帖最后由 huxiangming 于 2018-6-10 20:40 编辑

T2的中断号应该是5.
void timer2() interrupt 5
回复 支持 反对

使用道具 举报

     
发表于 2018-6-10 21:33:42 | 显示全部楼层
把 main() 写到最后

https://blog.csdn.net/u013020969/article/details/39588167
回复 支持 反对

使用道具 举报

     
发表于 2018-6-10 21:55:23 | 显示全部楼层
你这程序是直接用定时器1的程序改的吧?完全不对路,能正常运行才怪。建议好好看看Datasheet里关于Timer2的说明:中断号是5不是3,上面已经有人说了;初始化时不需要设置TMOD,而是T2CON=0x00.
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2018-6-11 16:46:43 | 显示全部楼层
把中断号3改成5,试验成功。TOMD不需要设置是知道的。T2CON的默认值是0,这里可以不设置。但中断号必须是5我真不知道,资料上只是说中断号是编译器识别不同中断的唯一编号,为什么必须是5就不知道了,现在仍然不知道。
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2018-6-11 16:47:12 | 显示全部楼层
谢谢各位高手的指点!
回复 支持 反对

使用道具 举报

     
发表于 2018-6-11 16:57:25 | 显示全部楼层
zls3210018 发表于 2018-6-11 16:46
把中断号3改成5,试验成功。TOMD不需要设置是知道的。T2CON的默认值是0,这里可以不设置。但中断号必须是5 ...

中断控制寄存器IE、IPL、IPH的位5,定义为T2的控制位。这是由硬件或微程序决定的,用户不可更改。
回复 支持 反对

使用道具 举报

     
发表于 2018-6-17 00:49:41 | 显示全部楼层
本帖最后由 ycx2002 于 2018-6-17 00:50 编辑

设置RCAP2H和2L即可,百度一下,方法一坨一坨的。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入会员

本版积分规则

小黑屋|手机版|矿石收音机 ( 蒙ICP备05000029号-1 )

蒙公网安备 15040402000005号

GMT+8, 2025-4-29 15:52

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表