找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

单片机小白被难倒了,为什么我的程序控制不了中断1

查看数: 1691 | 评论数: 3 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2021-5-9 13:42

正文摘要:

#include <reg51.h> #include <intrins.h> #define uchar unsigned char uchar L[]={0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00}; void delay() {   int i,j;   for(i=0;i<183;i++) &n ...

回复

ID:919514 发表于 2021-5-11 17:37
中断不要放太多代码
ID:918026 发表于 2021-5-11 16:48
wulin 发表于 2021-5-9 14:25
不是特别需求,中断函数里不要写过多的语句,特别不能有长延时。中断函数里只留标识即可,其它任务放在主函 ...

好的,谢谢大佬
ID:213173 发表于 2021-5-9 14:25
不是特别需求,中断函数里不要写过多的语句,特别不能有长延时。中断函数里只留标识即可,其它任务放在主函数处理。
  1. #include <reg51.h>
  2. #include <intrins.h>
  3. #define uchar unsigned char
  4. uchar L[]={0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00};
  5. bit flag=1;

  6. void delay()
  7. {
  8.         int i,j;
  9.         for(i=0;i<183;i++)
  10.                 for(j=0;j<500;j++);
  11. }
  12. void main()
  13. {
  14.         uchar i,j=0XFD,a,b=0XFE,k;
  15.         IT1 = 1;
  16.         EX1 = 1;
  17.         EA = 1;  
  18.         while(1)
  19.         {
  20.                 if(flag)
  21.                 {
  22.                         for(i=0;i<8;i++)
  23.                         {
  24.                                 P1=L[i];
  25.                                 delay();
  26.                         }
  27.                 }
  28.                 else
  29.                 {
  30.                         P1=0xff;
  31.                         for(k=0;k<5;k++)
  32.                         {
  33.                                 for(i=0;i<4;i++)
  34.                                 {
  35.                                         P1=_crol_(j,i*2);
  36.                                         delay();
  37.                                 }       
  38.                                 P1=0xff;
  39.                                 for(a=0;a<4;a++)
  40.                                 {
  41.                                         P1=_crol_(b,a*2);
  42.                                         delay();
  43.                                 }
  44.                         }
  45.                 }
  46.         }
  47. }

  48. void int1 () interrupt 2
  49. {
  50.         flag=~flag;       
  51. }
复制代码

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

Powered by 单片机教程网

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