找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 2338|回復(fù): 9
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)代碼中斷為什么始終沒起作用?哪位大神幫忙看一下

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
  1. #include<reg52.h>                                  //正常情況下流水燈正常顯示,按下按鍵K3,后8個(gè)流水燈同時(shí)亮滅一次,時(shí)間間隔是0.5s

  2. #define u8 unsigned char
  3. #define u16 unsigned int

  4. sbit k3=P3^2;

  5. void delay0_5s()           //T0 工作方式1 0.5s延時(shí)
  6. {
  7. u8 i;
  8. for(i=0;i<10;i++)
  9. {
  10. TH1=0x3c;
  11. TL1=0xb0;
  12. TR0=1;
  13. while(!TF0);
  14. TF0=0;
  15. }


  16. }



  17. void delay( u8 t)
  18. {
  19. u8 i;
  20.   for(i=0;i<t;i++)
  21.   delay0_5s();
  22. }      

  23. void int_0() interrupt 0
  24. {
  25. delay();
  26. if(k3==0)
  27. {
  28. P2=0xff;
  29. delay0_5s;
  30. P2=0x00;
  31. delay0_5s;
  32. }

  33. }      

  34. void Intoint()
  35. {
  36.    IT0=1;                   //觸發(fā)方式
  37. EX0=1;
  38. EA=1;
  39. }

  40. void main()
  41. {
  42. u8 i,w;
  43.   void Intoint();
  44. TMOD=0x01;


  45. while(1)
  46. {
  47.   w=0x01;
  48.   for(i=0;i<8;i++)
  49.    {
  50.            P2=~w;
  51.         w<<=1;
  52.            delay(2);

  53.    }


  54. }


  55. }


復(fù)制代碼


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:272719 發(fā)表于 2018-3-25 00:36 | 只看該作者
開了中斷么
回復(fù)

使用道具 舉報(bào)

板凳
ID:213173 發(fā)表于 2018-3-25 06:47 | 只看該作者
這么多錯(cuò)誤能通過編譯??
回復(fù)

使用道具 舉報(bào)

地板
ID:155507 發(fā)表于 2018-3-25 07:03 | 只看該作者
  1. #include<reg52.h>                                  //正常情況下流水燈正常顯示,按下按鍵K3,后8個(gè)流水燈同時(shí)亮滅一次,時(shí)間間隔是0.5s

  2. #define u8 unsigned char
  3. #define u16 unsigned int

  4. sbit k3=P3^2;

  5. void delay0_5s()           //T0 工作方式1 0.5s延時(shí)
  6. {
  7.         u8 i;
  8.         for(i=0;i<10;i++)
  9.         {
  10.                 TH0=0x3c;  // TH1=0x3c;
  11.                 TL0=0xb0;  // TL1=0xb0;
  12.                 TR0=1;
  13.                 while(!TF0);
  14.                 TF0=0;
  15.         }

  16. }


  17. void delay( u8 t)
  18. {
  19.         u8 i;
  20.         for(i=0;i<t;i++)
  21.         delay0_5s();
  22. }      

  23. void int_0() interrupt 0  using 1 // IT0外部中斷0(中斷號(hào)0,外部觸發(fā)管腳3.2)
  24. {
  25.         delay();
  26.         if(k3==0)
  27.         {
  28.                 P2=0xff;
  29.                 delay0_5s();
  30.                 P2=0x00;
  31.                 delay0_5s();
  32.         }

  33. }      

  34. void Intoint()
  35. {
  36.         EA=1; //全局中斷開
  37.         EX0=1; //外部中斷0開
  38.         IT0=1;                   //觸發(fā)方式 //下降沿觸發(fā)

  39. }

  40. void main()
  41. {
  42.         u8 i,w;

  43.         //TMOD=0x01;
  44.         TMOD |= 0x01;          //使用模式1,16位定時(shí)器,使用"|"符號(hào)可以在使用多個(gè)定時(shí)器時(shí)不受影響       
  45.         TH0=0x3c;
  46.         TL0=0xb0;
  47.         Intoint();
  48.         ET0=1;           //定時(shí)器中斷打開
  49.         //TR0=1;           //定時(shí)器開關(guān)打開

  50.         while(1)
  51.         {
  52.                 w=0x01;
  53.                 for(i=0;i<8;i++)
  54.                 {
  55.                         P2=~w;
  56.                         w<<=1;
  57.                         delay(2);
  58.                 }

  59.         }

  60. }
復(fù)制代碼
回復(fù)

使用道具 舉報(bào)

5#
ID:287575 發(fā)表于 2018-3-25 09:33 | 只看該作者
第一下邊程序部分有毛。
void main()
{
u8 i,w;
  void Intoint();  //此處取消void,否則編譯器不執(zhí)行改語句,中斷未初始化,當(dāng)然不能中斷了
TMOD=0x01;

第二你給定時(shí)器1賦初值,運(yùn)行的卻是定時(shí)器0,
void delay0_5s()           //T0 工作方式1 0.5s延時(shí)
{
u8 i;
for(i=0;i<10;i++)
{
TH1=0x3c;  //應(yīng)改為TH0
TL1=0xb0;  //TL0
TR0=1;
while(!TF0);
TF0=0;
}

評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

6#
ID:111634 發(fā)表于 2018-3-25 09:43 | 只看該作者
先看看別人正確的案例,自己對(duì)照查錯(cuò)。不要刊出一堆錯(cuò)誤,讓別人查錯(cuò),你以為別人吃飽了撐著?
回復(fù)

使用道具 舉報(bào)

7#
ID:287575 發(fā)表于 2018-3-25 09:44 | 只看該作者
第三 delay()中沒帶參數(shù),delay0_5沒帶括號(hào)
void int_0() interrupt 0
{
delay();
if(k3==0)
{
P2=0xff;
delay0_5s;
P2=0x00;
delay0_5s;
}

第四你要設(shè)是電平觸發(fā)中斷,還是邊沿觸發(fā)中斷,把按鍵放到中斷中用法有問題,因?yàn)橐醚訒r(shí)取抖,影響中斷的實(shí)時(shí)性

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

8#
ID:237065 發(fā)表于 2018-3-25 15:56 | 只看該作者

開了啊,沒報(bào)錯(cuò)
回復(fù)

使用道具 舉報(bào)

9#
ID:237065 發(fā)表于 2018-3-25 15:57 | 只看該作者
wulin 發(fā)表于 2018-3-25 06:47
這么多錯(cuò)誤能通過編譯??

沒報(bào)錯(cuò)啊,keil4
回復(fù)

使用道具 舉報(bào)

10#
ID:237065 發(fā)表于 2018-3-25 16:10 | 只看該作者
zhangxiaozi 發(fā)表于 2018-3-25 09:44
第三 delay()中沒帶參數(shù),delay0_5沒帶括號(hào)
void int_0() interrupt 0
{

多謝大佬,括號(hào)和void的錯(cuò)誤找著了,T0和T1的沒找到,
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表