zoukankan      html  css  js  c++  java
  • C51 中断 个人笔记

    总架构图

    IE寄存器

    控制各个中断源的屏蔽与允许

    TCON寄存器

    各个中断源的请求标志位&有效信号的规定

    中断源及其优先级

    中断号写程序的时候要用

    CPU处理中断三原则

    1.CPU同时接收到几个中断时,首先响应优先级别最高的中断请求。
    2.正在进行的中断过程不能被新的同级或低优先级的中断请求所中断。
    3.正在进行的低优先级中断服务,能被高优先级中断请求所中断。

    中断响应条件

    1. 中断源有中断请求;
    2. 此中断源的中断允许位为1;
    3. CPU开中断(即EA=1)。

    代码写法

    main函数中:

    //以外部中断0为例
    EA=1;//打开总中断开关
    EX0=1;//允许外部中断0 (或其他中断源对应的允许位)
    IT0=0/1;//设置外部中断的触发方式(或其他中断源)
    

    中断服务函数

    模板:

    void 函数名 ()  interrupt 中断号
    {
    do anything that you want
    }
    

    例子:

    void  int0  ()  interrupt  0
    {
    do anything that you want
    }
    

    外部中断0 控制led灯

    #include <reg51.h>
    #define u16 int
    #define u8 unsigned char
    #define delaytime 500000
    sbit led = P0^0;
    sbit k = P3^2;			   //p32 用导线连接一个独立按键,按下按键时led状态发生改变
    
    
    void delay(u16 i)
    {
        while(i--);
    }
    void Int0Init()
    {
    	 IT0 = 1;	//触发方式为下降沿有效
    	 EX0 = 1;	//中断0 允许
    	 EA = 1; 	//总开关
    }
    void main(void)
    {
        Int0Init();
        while(1);
    }
    //外部中断0的调用程序
    void Int0() interrupt 0			  //	P3^2 下降沿调用
    {
    	delay(1000);	   
    	if(k == 0)					  //延迟10ms仍然按下(防抖)
    	{
    		led = ~led;
    	}
    }
    
  • 相关阅读:
    AndroidApplication Fundamentals(Android应用基础)
    当汇错款时该怎么办?
    VS2005控制台程序修改nb0文件
    nand flash 扇区的管理以及初始化
    Androidz之Activity概要学习
    Android开发者必备的42个链接
    Android Activity形象描述
    一个前端妹子的悲欢编程之路
    提高工作效率的几个小技巧
    前端几个常用简单的开发手册拿走不谢
  • 原文地址:https://www.cnblogs.com/YuQiao0303/p/9896367.html
Copyright © 2011-2022 走看看