久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: 關于51單片機中斷的問題,求大神幫忙解決,謝謝 [打印本頁]

作者: barret.zhang    時間: 2019-4-29 11:14
標題: 關于51單片機中斷的問題,求大神幫忙解決,謝謝
#include <reg51.h>
sbit LED=P3^7;
sbit LED1=P3^6;
unsigned char second;
unsigned char tcount ,t,a;
void delay(unsigned int c);
void time_int();
void main()
{
   int d;
   time_int();
   a=1;
   
   delay(100);


   for(d=0;d<3;d++)
   {
     LED1=0;
     LED=0;
     delay(100);
     LED1=1;
     LED=1;
     delay(100);
   }
  while(1);
}
void t0() interrupt 1 using 0
{


  int i;
  TH0=0Xd8;                //重裝50ms初值,TH0=(65536-50000)/256
  TL0=0Xf0;                //              TL0=(65536-50000)/256
  if(a==1)
  {
  
   while(1)
  {
   for(i=0;i<3;i++)
   {
   LED=0;
   delay(1000);  
   LED=1;
   delay(1000);
   }
  a=0; break;
  }


   if(a==0)
{ while(1) //本段程序功能為顯示
  {
  
         LED1=0;
         delay(1000);
     LED1=1;
         delay(1000);
         break;


}
}
        
}


}


void time_int()
{


        TMOD=0x01;        //定時器0工作在工作方式1下
        TH0=0Xd8;        //設置50ms定時時計數器的初值,TH0=(65536-50000)/256
        TL0=0Xf0;        //                            TL0=(65536-50000)/256
        EA=1;                //CPU開總中斷
        ET0=1;                //T0開中斷
        TR0=1;                //啟動T0
          tcount=0;
          second=0;
        t=0;




}
void delay(unsigned int c)
{
unsigned int x,y;
for(x=c;x>0;x--)
   for(y=110;y>0;y--);
}










這是一個中斷的實驗
當檢測到a==1的時候,進入中斷,當執行完中斷的函數后,為何不能
執行主函數的

for(d=0;d<3;d++)
   {
     LED1=0;
     LED=0;
     delay(100);
     LED1=1;
     LED=1;
     delay(100);
   }




我是菜鳥,求大神解答下,謝謝!!!


shiyan.rar

41.75 KB, 下載次數: 6

程序和仿真


作者: tigerlyt    時間: 2019-4-29 11:53
再看看書吧

中斷都沒有初始化,沒有再主函數打開中斷

初值裝的也不對,算不出來數值直接用人家的算式寫上去吧,我算的分別是0x3c和0xb0

中斷函數也是不對的

你編譯都不可能通過的吧,怎么可能通過呢

好多錯,T0也不是隨意就可以攜程t0吧,嚴格區別大小寫的吧
作者: qsgang    時間: 2019-4-29 12:48
執行了三次后,主程序停在了 while(1);這里了,只在中斷里轉悠
作者: zf@@zf    時間: 2019-4-29 13:18
你中斷是什么問題
作者: 二狼神666    時間: 2019-4-29 14:19
程序沒怎么看,但是這個函數的順序有問題,你自己定義的函數必須寫在主函數的上面,不然編譯的時候也會報錯的,至于你的程序中有沒有問題沒太在意,你改下順序看下
作者: f556    時間: 2019-4-29 14:35
一看就是新手,程序問題很大。為什么進Time中斷后會用while(1),而且是2個,邏輯混亂。進time中斷是因為a==1嗎,不是。是定時器計數溢出后觸發中斷。50ms中斷要怎么觀測,要想清楚。就算是進入中程序的while(1)(第3個!!!),又如何觀測。
作者: barret.zhang    時間: 2019-4-30 09:23
zf@@zf 發表于 2019-4-29 13:18
你中斷是什么問題

編譯是通過了,就是沒有沒有執行

for(d=0;d<3;d++)
   {
     LED1=0;
     LED=0;
     delay(100);
     LED1=1;
     LED=1;
     delay(100);
   }


不知啥問題
作者: barret.zhang    時間: 2019-4-30 09:26
f556 發表于 2019-4-29 14:35
一看就是新手,程序問題很大。為什么進Time中斷后會用while(1),而且是2個,邏輯混亂。進time中斷是因為a= ...

我真的很菜,可以寫個簡單的我看下嗎?   會感激你的  




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: www.久草.com | 国内自拍视频在线观看 | 欧美高清视频一区 | 亚洲精品久久久一区二区三区 | 成人欧美一区二区 | 国产一区二区三区高清 | 久久久久久久久久一区二区 | 在线播放一区二区三区 | 久久99精品久久久久蜜桃tv | 国产九九精品 | 黄色网址在线免费观看 | 在线日韩福利 | 成人免费xxxxx在线视频 | 99精品久久久久 | 在线观看 亚洲 | 欧美性大战久久久久久久蜜臀 | 亚洲天堂中文字幕 | 久久网站黄 | 最新国产视频 | 国产欧美在线视频 | 欧美日韩亚洲视频 | aaa大片免费观看 | 日日射夜夜骑 | 成人精品一区二区三区 | 亚洲一区二区视频 | 免费一级黄色电影 | 国产高清区 | 免费看国产一级特黄aaaa大片 | 大久| 国产欧美精品区一区二区三区 | 99re视频这里只有精品 | 日韩插插 | 亚洲欧美综合 | 人妖无码 | 91秦先生艺校小琴 | 亚洲精品粉嫩美女一区 | 97影院2| 欧美一级在线视频 | 在线国产视频观看 | av网站免费 | 精品国产精品国产偷麻豆 |