找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6672|回復: 0
打印 上一主題 下一主題
收起左側

51單片機:中斷,C語言代碼

[復制鏈接]
跳轉到指定樓層
樓主
ID:103513 發(fā)表于 2016-1-17 01:17 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
  1. #include<reg52.h>
  2. #define uint unsigned int
  3. #define uchar unsigned char
  4. sbit dula=P2^5;
  5. sbit wela=P2^6;
  6. sbit d1=P1^0; //LED燈定義
  7. sbit d2=P1^1;
  8. sbit d3=P1^2;
  9. sbit d4=P1^4;
  10. const unsigned char table[]=

  11. {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E};
  12. void delay(uint z)
  13. {
  14. uint x,y;
  15. for(x=z;x>0;x--)
  16.   for(y=110;y>0;y--);
  17. }

  18. void main()
  19. {
  20. uchar num;
  21. EA=1;    //開總中斷
  22. EX0=1;   //開外部中斷0 INT0  
  23. EX1=1;   //開外部中斷1 INT1  手動去中斷即外部中斷只有2個。T0和T1是定時器的中斷

  24. TCON=0x01;    //設為跳變沿觸發(fā)方式,即IT0=1;
  25. wela=1;     
  26. P0=0xea;   //11101010    只要1、3、5數碼管亮
  27. wela=0;
  28. while(1)
  29. {
  30.   for(num=0;num<16;num++)
  31.    {
  32.     d1=1; d3=1;
  33.     dula=1;
  34.     P0=table[num];
  35.     dula=0;
  36.     delay(1000);
  37.    }
  38. }
  39. }

  40. void exter0() interrupt  0
  41. {
  42. d1=0;
  43. }

  44. void exter2() interrupt 2
  45. {
  46. d3=0;
  47. }

  48. /*
  49. 我的結果很奇怪,INTO時斷時續(xù)的,INT1正常;INT1用杜綁線去卡,一卡就停了,一拿掉立馬恢復。

  50. INT0卻不行
  51. */

復制代碼


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

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表