网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
08月31日漏签0天
单片机吧 关注:212,107贴子:1,047,628
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 9回复贴,共1页
<<返回单片机吧
>0< 加载中...

中断函数中能不能有无限循环

  • 只看楼主
  • 收藏

  • 回复
  • 拉了xx
  • 上士
    5
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
中断函数中能不能有无限循环


  • 阳光小子sky
  • 大尉
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
去百度看看。 你在看书,突然有人敲门,你中断看书,去开门。 如果有无限循环,那你不是一直循环开门,不能回来看书了????


2025-08-31 23:08:02
广告
不感兴趣
开通SVIP免广告
  • 拉了xx
  • 上士
    5
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#include<reg51.h>
char led[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
static char a=0,j;
void yan(int x)
{
int i,j;
for(i=x;i>0;i--)
for(j=120;j>0;j--);
}
void liushui()
{
int i;
while(1)
{
for(i=0;i<8;i++)
{
P2=led[i];
yan(200);
}
for(i=6;i>=1;i--)
{
P2=led[i];
yan(200);
}
}
}
void int0_srv() interrupt 0{
a=!a;
if(a==1)
liushui();
else
P2=0xff;
}
void main()
{
IT0=1;
EA=1;
EX0=1;
while(1);
}
我想中断流水灯的运行,这样的函数我该怎么改


  • 54miniz2
  • 中校
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
那你就无法中断返回了...


  • 流叶落晴
  • 上校
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
中断里设标志,主函数循环里亮灯。


  • 咱俩玩一会儿呀
  • 中校
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#include "reg52.h" //此文件中定义了单片机的一些特殊功能寄存器typedef unsigned int u16; //对数据类型进行声明定义
typedef unsigned char u8;#define led P2//宏定义P1为led
#define cpuled P0//宏定义P1为led
ledzx[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
/*******************************************************************************
* 函 数 名 : Timer0Init
* 函数功能 : 定时器0初始化
* 输 入 : 无
* 输 出 : 无
*******************************************************************************/
void Timer0Init()
{
TMOD|=0X01;//选择为定时器0模式,工作方式1,仅用TR0打开启动。 TH0=0XFC; //给定时器赋初值,定时1ms
TL0=0X18;
ET0=1;//打开定时器0中断允许
EA=1;//打开总中断
TR0=1;//打开定时器
}/*******************************************************************************
* 函 数 名 : main
* 函数功能 : 主函数
* 输 入 : 无
* 输 出 : 无
*******************************************************************************/
void main()
{
Timer0Init(); //定时器0初始化
while(1);
}/*******************************************************************************
* 函 数 名 : void Timer0() interrupt 1
* 函数功能 : 定时器0中断函数
* 输 入 : 无
* 输 出 : 无
*******************************************************************************/
void Timer0() interrupt 1
{
u16 i;
TH0=0XFC; //给定时器赋初值,定时1ms
TL0=0X18;
i++;
if(i==1000)
{ u8 j;
i=0;
led=ledzx[j];
j++;
if(j==8)
{j=0;
}
}
}
你需要学习一下,单片机资料分配


  • 璐村惂鐢ㄦ埛_5JJZV2Z馃惥
  • 新兵
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
我可以帮你,你的企鹅号是多少。你的邮箱是多少的?


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 9回复贴,共1页
<<返回单片机吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示