单片机中的Timer0Interrupt(void) interrupt 1下的程序是用来做什么的?

定义好了中断,后面的中断子程序是Timer0Interrupt(void)interrupt1?然后这下面的程序是用来做什么的?希望有达人对中断了解的为我详细说明中断的一... 定义好了中断,后面的中断子程序是Timer0Interrupt(void) interrupt 1?
然后这下面的程序是用来做什么的?
希望有达人对中断了解的为我详细说明中断的一些知识,谢谢了!!
可以帮写一个程序吗?主程序是P0.0亮,每过5秒,中断一次中断时P0.0灭,P0.1亮。
写出程序的话再加30分。
展开
 我来答
流鼻涕的大黑鱼
2011-07-17 · TA获得超过115个赞
知道答主
回答量:65
采纳率:0%
帮助的人:34.1万
展开全部
那是中断服务程序,看你贴出来那个函数名称貌似是定时器0的中断,定时器你装完初值,开定时器后,定时器就开始计时,定时器有四种工作模式,比如工作方式0,16位定时器,可以定时65536us,当从初值加到65536后,产生溢出,定时器向cpu申请中断,cpu转去执行中断服务程序,执行完后回到main函数,51单片机共有5个中断源,外部中断0,定时器0,外部中断1,定时器1,外加串行口中断、
浅水戏东风
推荐于2018-03-29
知道答主
回答量:19
采纳率:0%
帮助的人:7.3万
展开全部
#include <reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar time,temp,l;
void delay()
{
uchar h,i,j,k;
for(h=5;h>0;h--)
for(i=4;i>0;i--)
for(j=116;j>0;j--)
for(k=214;k>0;k--)
;
}
void chuzhi()
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
temp=0xfe;
P0=temp;
}
void main()
{
chuzhi();
while(1)
{
if(time==100)
{
time=0;
TR0=0;
temp=0xfd;
P0=temp;

}
delay();
P0=0xfe;
TR0=1;

}
}
void time0() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
time++;

}
花了我一个小时,程序终于编完了,我试了一下,效果还行!!!编的可能不太完美,毕竟我也开始学,但是功能有了!你说的中断一次中断时P0.0灭,P0.1亮,我又让它在中断完之后,重新让P0.0亮,P0.1灭,然后再过五秒、中断、P0.0灭,P0.1亮。。。一直循环下去。如果需要,你也可以在中间加上中断循环次数。。。
更多追问追答
追问
我要的其实不是程序,我要的是让我能看明白,能学懂。
程序是最直接的方法,但你写的程序中有太多疑问,能写简单点吗?或者你把这整个程序给我讲一下?
不胜感激!
追答
你试了么,是不是和你的要求一样啊,如果一样我在讲,不一样也没讲的必要了           你想理解的话,可以一个子程序一个子程序的理解。像void delay()这其实就是一个1s延时函数;而void  chuzhi()呢,就是设置一些初值,TH0、TL0是定时计数,EA、ET、TR0是开启定时中断T0;void time()interrupt 1是中断计时的,剩下的主函数就是实现你的功能的。。。。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jeason_young
2011-07-17 · 超过15用户采纳过TA的回答
知道答主
回答量:57
采纳率:0%
帮助的人:37.2万
展开全部
void INT0()interrupt 0 using 1
{....
.....
}
interrupt 0 指明是外部中断0;
interrupt 1 指明是定时器中断0;
interrupt 2 指明是外部中断1;
interrupt 3 指明是定时器中断1;
interrupt 4 指明是串行口中断;

using 0 是第0组寄存器;
using 1 是第1组寄存器;
using 2 是第2组寄存器;
using 3 是第3组寄存器;

51单片机内的寄存器是R0--R7(不是R0-R3)

R0-R7在数据存储器里的实际地址是由特殊功能寄存器PSW里的RS1、RS0位决定的。

using 0时设置 RS1=0,RS0 =0,用第0组寄存器,R0--R7的在数据存储区里的实际地址是00H-07H。R0(00H)....R7(07H)

using 1时设置 RS1=0,RS0 =1,用第1组寄存器,R0--R7的在数据存储区里的实际地址是00H-07H。R0(08H)....R7(0FH)

using 2时设置 RS1=1,RS0 =0,用第2组寄存器,R0--R7的在数据存储区里的实际地址是08H-0FH。R0(10H)....R7(17H)

using 3时设置 RS1=1,RS0 =1,用第3组寄存器,R0--R7的在数据存储区里的实际地址是00H-07H。R0(18H)....R7(1FH)
学单片机一定要对程序执行的过程、步骤分析清楚:什么时候程序运行到哪儿,下一步走向哪儿
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
徐龙成2008
2011-07-17
知道答主
回答量:68
采纳率:0%
帮助的人:17.3万
展开全部
这是中断程序啊,就是你单片机的定时时间到了之后,你想让他干嘛就把程序写在这个中断下面。不懂追问。
追问
你可以帮写一个程序吗?主程序是P0.0亮,每过5秒,中断一次中断时P0.0灭,P0.1亮。
写出程序的话再加30分。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式