您当前的位置:五五电子网电子知识电子制作自动控制-单片机利用外中断方式按键控制灯的状态 正文
利用外中断方式按键控制灯的状态

利用外中断方式按键控制灯的状态

点击数:7311 次   录入时间:03-04 11:53:18   整理:http://www.55dianzi.com   自动控制-单片机

     这一课,我们学习外中断的用法。也就是外部IO的中断INT0,和INT1。对应的引脚是P32和P33。在我们的电路图中,P32也就是接在K1的引脚。所以当我们按下P32接到地的时候,可以触发一个INT0中断,当然,必须预先初始化才会启动。

    这种中断方式的按键,可以实现按键的立即响应。对于需要快速响应的场合是很有用的。外部IO中断还常用在用IO模拟通讯的场合,可以对数据的到来立即响应。

    下面请看代码:

    ―――――――――――――――――

    #define uchar unsigned char //定义一下方便使用

    #define uint unsigned int

    #define ulong unsigned long

    #include //包括一个52标准内核的头文件

    sbit P10 = P1^0; //头文件中没有定义的IO就要自己来定义了

    sbit P11 = P1^1;

    sbit P12 = P1^2;

    sbit P13 = P1^3;

    sbit K1= P3^2;

    bit ldelay=0; //长定时溢出标记,预置是0

    uchar speed=10; //设置一个变量保存默认的跑马灯的移动速度

    uchar speedlever=0; //保存当前的速度档次

    char code dx516[3] _at_ 0x003b;//这是为了仿真设置的

    //用外中断方式读按键K1,点亮一个LED

    void main(void) // 主程序

    {

    IT0=1; //外中断跳变产生中断

    EX0=1;

    EA=1; //打开总中断

    while(1) //主程序循环

    {

    }

    }

    //外中断0

    int0() interrupt 0

    {

    P10=0; //在中断里点亮LED

    }

    ――――――――――――――――――――――――――――――――――

    这个程序里,按一下K1(P32)之后,就会触发INT0中断,在该中断里点亮LED灯。

    请编译运行,并看结果。可以看到,在按下K1之后,LED1变处于亮着的状态。

    作业:

    用中断方式的按键K1,控制一个LED灯的亮和灭两种状态

    提示:需要去抖操作,否则按键抖动会引起多种中断。




本文关键字:暂无联系方式自动控制-单片机电子制作 - 自动控制-单片机

《利用外中断方式按键控制灯的状态》相关文章>>>