郭天祥的那本教材中源代码无法复现

2019-07-15 12:02发布

除了批注,代码基本与书上一致,可奇怪是开发板没反应(灯没亮)

//通过定时器0中断使二级管1s间隔闪烁
#include<reg52.h>
#define uc unsigned char
sbit led1=P1^0;
uc num;
void main()
{
        TMOD=0x01; //设置定时器0模式,工作方式1(M1M0=01)
        TH0=(65536-45872)/256;
        TL0=(65536-45872)%256;
        EA=1; //开总中断
        ET0=1; //打开定时0中断
        TR0=1; //打开定时器0
        while(1);
}

void timer0() interrupt 0
{
        TH0=(65536-45872)/256;
        TL0=(65536-45872)%256;
        num++; //num每加一次判断是否到20次(即1s)
        if(num==20)        //判断是否到1s
        {
                num=0; //清零
                led1=~led1; //让发光二极管状态取反
        }       
}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
12条回答
李爱柚
1楼-- · 2019-07-16 06:54
王栋春 发表于 2017-2-4 13:31
是否硬件有问题

楼下正解,是我粗心了
李爱柚
2楼-- · 2019-07-16 10:56
youyou0527 发表于 2017-2-4 12:09
换到定时器2试一试,或者看看单片机脚有没有问题

是中断序号错了
李爱柚
3楼-- · 2019-07-16 13:01
xiaoguohaoyun 发表于 2017-2-4 19:53
定时器0的中断号是1

不错,我错粗心了。谢谢。
李春明
4楼-- · 2019-07-16 14:35
李爱柚 发表于 2017-2-22 13:11
楼下正解,是我粗心了

如果是这样 能否选我为最佳答案  就差两个就可以晋级了 谢谢
离歌初学者
5楼-- · 2019-07-16 16:24
 精彩回答 2  元偷偷看……
李爱柚
6楼-- · 2019-07-16 19:22
王栋春 发表于 2017-2-22 20:09
如果是这样 能否选我为最佳答案  就差两个就可以晋级了 谢谢

其实是5楼回答的额... 算了,成人之美...

一周热门 更多>