⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ext_int0.c

📁 CAN现场总线.rar
💻 C
字号:

//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
//功能描述:
//      INTO按键为计数按键,数码管显示按键的次数                                &
//      上电后数码管显示0,十进制显示                                          &
//      使用者可以进一步开发T1计数程序                                         &

//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
//【声明】 此程序仅用于学习与参考,引用请注明版权和作者信息!                   &
//【声明】 作者: PIAE小组
/*

*/

#include <reg52.h>
#include <intrins.h>
#include <ext_int0_def.h>

void INT0_Counter( void ) interrupt 0 using 1
{//INT0为计数按键
    EA = 0;
    Show_Data++; //计数单元加1
    EA = 1;
}

void main(void)
{
    CPU_init();
    _nop_();
    while(1)
    {
        NOPS;
///////////////////////数码管显示程序/////////////////////////////////
        led_seg7(1,Show_Data);
        LED_RED = !LED_RED;
        LED_GRE = !LED_GRE;

///////////////////////数码管显示程序/////////////////////////////////
    }//while 结束
}//main结束


void Delay(uchar delay_time)
{//延时程序
    while(delay_time--)
    {}
}


void CPU_init(void)
{//初始化CPU
    IT0 = 1;//外部中断0负边沿触发
    EX0 = 1;//打开外部中断0
    EA = 1; //打开总中断
    SJA1000_CS = 1;//片选无效
}


void led_seg7(uchar from,uchar number)  //from(1_4):数码管显示起始位置(从右到左),number:显示的数
{
    uchar digit,temp_l;
    uchar temp_h=0x7f;
    temp_h = _cror_(temp_h,from-1);   //确定从哪一位开始显示,即确定高四位
    temp_h = temp_h & 0xf0;           //取高四位
    temp_l = P2 & 0x0f;               //取P2的低四位
    P2 = temp_h | temp_l;             //设定P2口

    if(number==0)
    {
        P0 = led[0];
        Delay(5);
        P0 = 0xff;
    }
    else
    {
        while(number)
	{
            digit = number%10 ;
	    number /= 10;
            P0 = led[digit] ;
	    Delay(5);
            temp_h = P2 & 0xf0;               //取P2的高四位
            temp_h = temp_h | 0x0f;           //拼装 temp_h,进行位选
	    temp_h = _cror_(temp_h,1);
	    temp_h = temp_h & 0xf0;           //取高四位
            temp_l = P2 & 0x0f;               //取P2的低四位
            P0 = 0xff;
            P2 = temp_h | temp_l;             //设定P2口
        }//while结束
    }//else结束
    
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -