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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2184|回復: 9
收起左側

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

[復制鏈接]
ID:237065 發表于 2018-3-24 23:54 | 顯示全部樓層 |閱讀模式

原理圖

原理圖
  1. #include<reg52.h>                                  //正常情況下流水燈正常顯示,按下按鍵K3,后8個流水燈同時亮滅一次,時間間隔是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延時
  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;                   //觸發方式
  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. }


復制代碼


回復

使用道具 舉報

ID:272719 發表于 2018-3-25 00:36 | 顯示全部樓層
開了中斷么
回復

使用道具 舉報

ID:213173 發表于 2018-3-25 06:47 | 顯示全部樓層
這么多錯誤能通過編譯??
回復

使用道具 舉報

ID:155507 發表于 2018-3-25 07:03 | 顯示全部樓層
  1. #include<reg52.h>                                  //正常情況下流水燈正常顯示,按下按鍵K3,后8個流水燈同時亮滅一次,時間間隔是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延時
  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(中斷號0,外部觸發管腳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;                   //觸發方式 //下降沿觸發

  39. }

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

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

  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. }
復制代碼
回復

使用道具 舉報

ID:287575 發表于 2018-3-25 09:33 | 顯示全部樓層
第一下邊程序部分有毛病:
void main()
{
u8 i,w;
  void Intoint();  //此處取消void,否則編譯器不執行改語句,中斷未初始化,當然不能中斷了
TMOD=0x01;

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

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:111634 發表于 2018-3-25 09:43 | 顯示全部樓層
先看看別人正確的案例,自己對照查錯。不要刊出一堆錯誤,讓別人查錯,你以為別人吃飽了撐著?
回復

使用道具 舉報

ID:287575 發表于 2018-3-25 09:44 | 顯示全部樓層
第三 delay()中沒帶參數,delay0_5沒帶括號
void int_0() interrupt 0
{
delay();
if(k3==0)
{
P2=0xff;
delay0_5s;
P2=0x00;
delay0_5s;
}

第四你要設是電平觸發中斷,還是邊沿觸發中斷,把按鍵放到中斷中用法有問題,因為要用延時取抖,影響中斷的實時性

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:237065 發表于 2018-3-25 15:56 | 顯示全部樓層

開了啊,沒報錯
回復

使用道具 舉報

ID:237065 發表于 2018-3-25 15:57 | 顯示全部樓層
wulin 發表于 2018-3-25 06:47
這么多錯誤能通過編譯??

沒報錯啊,keil4
回復

使用道具 舉報

ID:237065 發表于 2018-3-25 16:10 | 顯示全部樓層
zhangxiaozi 發表于 2018-3-25 09:44
第三 delay()中沒帶參數,delay0_5沒帶括號
void int_0() interrupt 0
{

多謝大佬,括號和void的錯誤找著了,T0和T1的沒找到,
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 成人亚洲视频 | av电影手机版 | 中文字幕1区2区3区 亚洲国产成人精品女人久久久 | 在线播放亚洲 | 中文字幕在线一区 | 欧美日韩不卡合集视频 | 国产成人免费视频网站视频社区 | 天天操伊人 | 狠狠视频| 久久不卡 | 紧缚调教一区二区三区视频 | 91久久婷婷 | 久久久免费电影 | 欧美性生交大片免费 | 久久久精品网站 | 91精品久久久久久久久久小网站 | 久久人体视频 | 欧美激情精品久久久久久 | 欧美黄色一区 | 日韩欧美手机在线 | 视频在线h | 国产视频第一页 | 日韩久久久久 | 毛片区| 国产亚洲精品久久情网 | 五月激情婷婷网 | 国产黄色精品在线观看 | 免费视频中文字幕 | 黄色欧美在线 | 999视频在线播放 | 日韩视频专区 | 日本超碰 | 在线观看中文视频 | 日韩www视频 | 欧美福利在线 | 91精品国产91久久久 | 色综合99| 国产精品一区在线观看 | 欧美日韩在线免费观看 | 日本三级播放 | 看亚洲a级一级毛片 |