你的位置:首页 > 软件开发 > 操作系统 > 单片机中断的应用

单片机中断的应用

发布时间:2015-11-19 15:00:26
51单片机: P3.2 引脚为INT0 中断 P3.3引脚为INT1 中断按钮 P3.2 P3.3按钮低电平触发: while(PB0==0); dela ...

单片机中断的应用

51单片机:

       P3.2 引脚为INT0 中断

       P3.3引脚为INT1 中断

按钮 P3.2    P3.3

按钮低电平触发:

    while(PB0==0);

    delay();

#include <reg51.h>     #define  SEG  P0       //  定义七节显示器接至Port 0sbit  LED = P2^0;   // 定义LED灯接至P2.0sbit  com = P1^0 ;   // 数码管 com 口sbit  OC = P1^1;   // 定义573锁存器使能口,我是用的573驱动7段数码管 void delay10ms(int x);  //  声明延迟函数 10ms * x; sbit  PB0=P3^2;   //按钮0sbit  PB1=P3^3;   //按钮1 unsigned char code TAB[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7c,0x07,0x7f,0x67 };  // 共阴极 main()           {   OC = 0;     //锁存置0 ,点亮数码管  com = 0;     //点亮SEG    EA =1;       //总中断   EX0 = 1;     //外部中断 INT0   EX1 = 1;     //外部中断 INT1     TR0 = 1;     //  运行INT 0中断   TR1 = 1;     // 运行INT1 中断  //TCON = 0x05;   //  设置信号触发方式为负边沿触发  while(1)   {      int i;     for(i=0;i<10;i++)  //  显示0-9(上数)    {  SEG=TAB[i];         delay10ms(40);  //  延迟 0.4s    }  }         }           void my_int0(void) interrupt 0  // INT 0{   int i;   while(PB0==0);   delay10ms(25);      for (i=9;i>=0;i--)    //  for循环显示9-0(下数)    {       SEG=TAB[i];        //  显示数字至七节显示器     delay10ms(40);      //  延迟 0.4s    }           }           void my_int1(void) interrupt 2     //INT 1{    int i;    while(PB1==0);    delay10ms(25);     for(i=0;i<10;i++)     {     LED = 0;       delay10ms(25);     LED = 1;     delay10ms(25);    }}/* 延迟函数,延迟约x*1ms */void delay10ms(int x)      //  延迟函数开始 {      int i,j;           for (i=0;i<x;i++)    //  计数x次,延迟x*10ms     for (j=0;j<1200;j++);  //  计数1200次,延迟10ms  1200*8us}           

 

海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com

原标题:单片机中断的应用

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录