早教吧 育儿知识 作业答案 考试题库 百科 知识分享

单片机怎么从主函数跳到中断函数中例如:#include#defineuintunsignedint#defineucharunsignedcharsbitdula=P2^6;sbitwela=P2^7;sbitd1=P1^0;ucharnum,num1;tt;ucharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,

题目详情
单片机怎么从主函数跳到中断函数中
例如:
#include
#define uint unsigned int
#define uchar unsigned char
sbit dula=P2^6;
sbit wela=P2^7;
sbit d1=P1^0;
uchar num,num1;tt;
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
void delay(uint z);
void main()
{
num=0;
tt=0;
TMOD=0x11;//设置定时器0为工作方式1
TH0=(65536-10000)/256;
TL0=(65536-10000)%256;
TH1=(65536-20000)/256;
TL1=(65536-20000)%256;
// EA=1;//开总中断
ET0=1;//开定时器0中断
ET1=1;
TR0=1;//启动定时器0
TR1=1;
wela=1;//11101010
P0=0xea;
wela=0;
dula=1;
P0=0x3f;
dula=0;
while(1)
{
if(num1==25)
{
num1=0;
P1=~P1;
}
if(tt==100)
{
tt=0;
num++;
if(num==16)
num=0;
dula=1;
P0=table[num];
dula=0;
}
}
}
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void time0() interrupt 1
{
TH0=(65536-10000)/256;
TL0=(65536-10000)%256;
tt++;
}
void time1() interrupt 3
{
TH1=(65536-20000)/256;
TL1=(65536-20000)%256;
num1++;
}
我一不懂直搞!主函数怎么跳到定时器1中
主函数又 没有调用定时的函数~
▼优质解答
答案和解析
对于单片机的硬件,你熟悉吗?时钟和CPU是独立的,时钟中断程序时这样的:在CPU执行指令时,计数器(计时器)同时在计时,当计时器溢出时,就向CPU申请中断,如果允许响应中断,CPU就转到中断服务程序执行相关的程序.
单片机的时钟中断相应要满足两个条件:第一,允许中断源申请中断.第二,允许cpu响应中断.二者缺一不可.EA=1;//开总中断
ET0=1;//开定时器0中断
ET1=1;
TR0=1;//启动定时器0
TR1=1;
你这些语句,就允许了中断响应,所以,当你的程序跑起来时,时钟时间到了,CPU就转入中断服务程序了,执行完了再返回主程序.你可以在编译器中用DEBUG查看执行过程的.如果你用汇编语言写,就更清楚了,可以看清每一步的操作的.
硬件部分是这样:在每个机器周期的S5P2,单片机会来采样,判断是否有中断申请.所以一旦时钟计数溢出,就会转入中断服务程序.
这个打个比方吧,你在上课,相当于主程序,这时时间到了,打铃下课了,你就不读书了,跑出去玩了.这其实是一样的道理.你在上课,这和打铃不相关,并不是你让打铃的,学校的时钟在不停地走,到了时间自动打铃,这不受你上课的影响的.但是如果你把耳朵堵上了(不允许响应中断),就是把铃打碎了你也不知道下课了,所以你就一直读书.不知你明白没?
看了 单片机怎么从主函数跳到中断函...的网友还看了以下:

那些什么函数的看都看不懂还有解析式图像是怎么回事?怎么从函数图像中看函数式啊拜托了·······  2020-06-08 …

从m中任取n个数编写一个程序需要一个函数,它的功能是从m个数中任意取n个数,并且对于取出的数能索引  2020-06-28 …

我现在高二了函数从初中开始就一点都没学过现在数学基本上一点都不会想考个大学我现在高二了函数从初中开  2020-07-25 …

怎样从函数图像上直接看到其反函数图像?画出函数图像,然后直接通过原函数图像找出其对应的反函数图像有  2020-08-01 …

一个关于开区间函数最值问题老师说开区间函数最值只能在导函数为0的点取得,比如y=x3在(-1,1)  2020-08-01 …

1在运用三角函数求解的题目中要几何说理吗?可以直接写有题意得..不可以的话可以写简单点吗?2在用三角  2020-11-21 …

帮我破译一封信请破译出这封预告函中所指的地点与时间提示:1.预告函中的地点在现实生活中不存在,为虚拟  2020-11-23 …

英语翻译本文就商务英语信函的书写进行了简单的论述,分别从商务英语信函需要遵循的写作原则和如何灵活运用  2020-12-08 …

隐函数是函数吗?如果是,那么从函数的定义来说x^2+y^2=1并不是函数,可它是隐函数,这个怎么理解  2020-12-09 …

C语言题目。。。11.在C语言程序中,有关函数的描述正确的是A.函数的定义可以嵌套,但函数的调用不可  2020-12-15 …