C51中断程序,程序用Keil4编写,用Proteus仿真 50

这是一个显示时间的程序,用proteus仿真,不知道为什么,就是不发生中断。显示的时间一直卡在那里,动都不动。#include<stdio.h>#include<reg5... 这是一个显示时间的程序,用proteus仿真,不知道为什么,就是不发生中断。显示的时间一直卡在那里,动都不动。
#include <stdio.h>
#include <reg51.h>

#define uchar unsigned char
#define uint unsigned int

sbit LE = P3^6;
uint count = 0;//中断计数,40次中断为1秒
uchar Hour = 0, min = 0, sec = 0;//时,分,秒

void Delay (void);
void Display(void);
void Init(void);

void Delay(void) //延时程序
{
uchar i;
for (i = 255; i > 0; i--);
}

void Display(void) //4位数码管显示程序,显示小时和分钟,这个子函数应该没有问题
{
uchar i = 0;
uchar num[10] = {0x3F,/*0*/0x06,/*1*/0x5B,/*2*/0x4F,/*3*/0x66,/*4*/0x6D,/*5*/0x7D,/*6*/0x07,/*7*/0x7F,/*8*/0x6F/*9*/};
uchar wei[4] = {0xf7, 0xfb, 0xfd, 0xfe};
uchar timenum[4] = {0, 0, 0, 0};
timenum[0] = Hour / 10, timenum[1] = Hour % 10, timenum[2] = min/ 10, timenum[3] = min% 10;
LE = 1;
while(1)
{
for(i = 0; i < 4; i++)
{
P2 = wei[i];
P0 = num[timenum[i]];
Delay();
}
}
}

void Init (void) //中断初始化程序
{
EA = 0;
TMOD = 0x01; //模式1
TH0 = 0x3c; //初值15536,每25000us(25ms)产生一次中断,40次中断为1秒 (晶振24MHz)
TL0 = 0xb0;
TR0 = 1; //启动定时器0
ET0 = 1; //允许定时器0中断
TF0 = 0;
EA = 1;
}

int main (void)
{
Init();
while(1)
{
Display ();
}
return 0;
}

void TimeInterrupt(void) interrupt 1
{
TH0 = 0x3c;
TL0 = 0xb0;
count++;
if (count >= 40)
{
count = 0;
sec++;
if (sec >= 60)
{
sec = 0;
min++;
if (min >= 60)
{
min = 0;
Hour++;
if (Hour >= 24)
{
Hour = 0;
}
}
}
}
}
还有就是每次仿真的时候Keil都提示这个,不中断是不是因为这个2K的代码限制造成的?

补充:后来我已经注册了,但还是不行。
展开
 我来答
东东向上Up
2013-07-30 · Up爱拼才会赢爱拼才会赢pU
东东向上Up
采纳数:12 获赞数:12

向TA提问 私信TA
展开全部

出现这个原因是因为你的软件没有完全破解所致,推荐使用如图的破解工具,。网上有很多,或者我也可以发给你

追问
就是用的这个工具
温都斯基
2013-07-30 · TA获得超过225个赞
知道小有建树答主
回答量:72
采纳率:0%
帮助的人:137万
展开全部
你的keil还是评估版,代码长度不能超过2KB,可以找一个注册机,将keil注册成完全版,如果需要注册机和具体使用方法请继续追问
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
样良定0U
2013-07-30 · TA获得超过483个赞
知道小有建树答主
回答量:666
采纳率:0%
帮助的人:186万
展开全部
你为什么把TF0 设置成 0 啊!你把定时器都关了!还怎么可以定时啊!把这一行删去! TF0 = 0;
追问
我只是在程序初始化的时候把溢出标志TF0清0了而已,要是溢出了TF0还可以被置1啊。
我试了,去掉了TF0 = 0这一行还是不行!
要不你在仔细看看,谢谢咯
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-07-30
展开全部
从你的提示信息看,你的代码受2k的限制,也就是,你的软件是试用版的
更多追问追答
追问
那我的问题是不是这外原因造成的吗?
追答
应该就是这个问题,你先处理好软件吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式