找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1671|回复: 7
收起左侧

单片机中断程序 有些地方不太理解

[复制链接]
ID:711481 发表于 2020-4-30 11:08 来自手机 | 显示全部楼层 |阅读模式
#include<reg52.h>
#define uchar unsigned char
uchar i=0,j=0;
bit b=0;
void main()
{
  uchar sum[]={0xc0,0xf9,0xa4,
  0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
  EX0=1;
  IT0=1;
  EX1=1;
  IT1=1;
  EA=1;
  ET0=1;
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
         TR0=1;
        while(1)
        {
           P0=sum[j/10];
           P1=sum[j%10];
        }
}
void time() interrupt 1
{
  i++;
  TH0=(65536-50000)/256;
  TL0=(65536-50000)%256;
  if(i==20)
  {
  i=0;
  j++;
  }
          if(j==60)
          {
             j=0;

          }
}
void time2()  interrupt 0
{
   if(b==0)
   {
   TR0=0;
   b=1;
   }
else
{
    b=0;
        TR0=1;
}
}
void time3() interrupt 2
{
     j=0;
         i=0;
  TH0=(65536-50000)/256;
  TL0=(65536-50000)%256;
  TR0=1;
   }
有些地方不太理解
如果定时时间到了,跳到中断,什么时候返回主函数
如果正在计时器中断中运行,外部中断启动,会不会跳到外部中断?
EX0=1;
  IT0=1;
  EX1=1;
  IT1=1;
  EA=1;
  ET0=1;这几个有没有顺序?
回复

使用道具 举报

ID:452950 发表于 2020-4-30 14:47 | 显示全部楼层
中断优先级外部中断0-定时器0-外部中断1-定时器1-串口
回复

使用道具 举报

ID:539117 发表于 2020-4-30 16:34 | 显示全部楼层
发现你们这些人等级挺高的,但是知识量不够啊,第一个问题:当然是处理完中断就返回啊,如果有新的中断产生根据优先级判断是否继续处理新产生的中断。下面那我写了优先级我就不说了,51是优先级数越低优先级越高,interrupt 0是外部中断0,后面1 2 3 4分别定时器0 外部中断 1定时器1 串口中断,所以你的第二个问题是看定时器假如是定时器0的话,外部中断是外部中断0就会跳,外部中断1就不跳,等处理完了会去处理外部中断1然后在返回main。
回复

使用道具 举报

ID:735148 发表于 2020-4-30 16:44 | 显示全部楼层
中断都必须有中断服务函数的。不同的中断在同一优先级也有天然的优先顺序
回复

使用道具 举报

ID:311846 发表于 2020-4-30 17:53 | 显示全部楼层
哪里不理解?不说出来全给你分析么?
回复

使用道具 举报

ID:711481 发表于 2020-4-30 21:18 来自手机 | 显示全部楼层
lzw1997 发表于 2020-4-30 16:34
发现你们这些人等级挺高的,但是知识量不够啊,第一个问题:当然是处理完中断就返回啊,如果有新的中断产生 ...

第一学期开课,好多东西不懂,谢谢您了
回复

使用道具 举报

ID:711481 发表于 2020-4-30 21:21 来自手机 | 显示全部楼层
权威人物 发表于 2020-4-30 17:53
哪里不理解?不说出来全给你分析么?

刚开始学,就是觉得不理解,如果进入中断函数,在中断函数中改变的值,他是直接影响到主函数,还是等中断函数全部执行完,返回主函数时才会影响主函数的值
回复

使用道具 举报

ID:420457 发表于 2020-4-30 22:12 | 显示全部楼层
中断是有优先级的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表