郭天祥的那本教材中源代码无法复现
时间:10-02
整理:3721RD
点击:
除了批注,代码基本与书上一致,可奇怪是开发板没反应(灯没亮)
//通过定时器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; //让发光二极管状态取反
}
}
//通过定时器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; //让发光二极管状态取反
}
}
是否硬件有问题
应该是256吧,6是个什么东西
换到定时器2试一试,或者看看单片机脚有没有问题
定时器0的中断号是1
你把定时器的中断号0改为1就可以了
不知道你指的是?我发现问题了,中断函数那要写interrupt 1
楼下正解,是我粗心了
是中断序号错了
不错,我错粗心了。谢谢。
如果是这样 能否选我为最佳答案 就差两个就可以晋级了 谢谢
大神QQ多少。能加下吗
其实是5楼回答的额... 算了,成人之美...