当前位置: 首页 > wzjs >正文

昆明网站建设系统互联网营销专业

昆明网站建设系统,互联网营销专业,网站开发与维护招聘,服装网站建设环境分析C51的外部中断只用到TCON寄存器、IE寄存器、IP寄存器。 1. TCON定时器控制寄存器: TCON8FH8EH8DH8CH8BH8AH89H88H88HTF1TR1TF0TR0IE1IT1IE0IT0 外部中断用到TCON的低4位:IE1、IT1、IE0、IT0。 IE0:外部中断0的中断请求标志。 当外部中断引脚…

C51的外部中断只用到TCON寄存器、IE寄存器、IP寄存器。

1. TCON定时器控制寄存器:

TCON8FH8EH8DH8CH8BH8AH89H88H
88HTF1TR1TF0TR0IE1IT1IE0IT0

 外部中断用到TCON的低4位:IE1、IT1、IE0、IT0。


IE0:外部中断0的中断请求标志。

         当外部中断引脚0上存在有效的中断请求信号时,由硬件使IE1置1。

         CPU响应该中断请求时,由硬件使IE1清0。

IT0:外部中断0的中断触发方式控制位

   IT0=0时:外部中断0为低电平触发方式。

        CPU在每一个机械周期S5P2期间采样外部中断0引脚的输入电平。

        当引脚为低电平时IE0=1,引脚为高电平时IE0=0。

   IT0=1时:外部中断0为下降沿触发方式。

        CPU在每一个机械周期S5P2期间采样外部中 断0引脚的输入电平。

        如果相继两个机械周期采用过程中,一个为高电平,下一个为低电平。

        则使IE1=1,直到CPU响应该中断时,才由硬件使IE0清0。

同理,IE1,IT1的功能与IE0、IT0的完全一样,但分别控制外部中断1、外部中断0。


2. IE中断允许寄存器

IEAFHAEHADHACHABHAAHA9HA8H
88HEA未使用未使用ESET1EX1ET0EX0

外部中断使用到IE中断允许寄存器的:EA、EX1、EX0


EA:中断允许总控制位。

         EA=0屏蔽所有中断请求;EA=1,CPU开放中断。

EX0:外部中断0中断允许位。

         EX0=0屏蔽外部中断0中断请求;EX0=1,CPU开放外部中断0中断请求。

EX1:外部中断1中断允许位。

         EX1=0屏蔽外部中断1中断请求;EA=1,CPU开放外部中断1中断请求。


3. IP中断优先级寄存器 

IPBCHBBHBAHB9HD8H
D8H未使用未使用未使用PSPT1PX1PT0PX0

外部中断用到IP中断优先级寄存器的PX0、PX1

PX0:外部中断0中断优先级控制位;

PX1:外部中断1中断优先级控制位;

对应控制位置1则相应的中断源就规定为高优先级,反之为低优先级

当同时接收到几个同一优先级中断请求时,优先响应哪个中断源则取决于内部硬件查询顺序。

查询顺序:外部中断0、定时器0、外部中断1、定时器1、串行口中断。

例如:设置外部中断0和外部中断1为高优先级,当两个外部中断同时触发时,根据查询方式可确定优先响应外部中断0。


4.外部中断0和外部中断1——下降沿触发、低电平触发

4.1 main.c文件

#include "reg51.h"
#include "ExternalInterrupt.h"char Flag=0;
char Led_array[]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F,0xFF};void main(){ExternalInterrupt_Init(Ex_Interrupt0_1,Low_Trigger);while(1){P1=Led_array[Flag];
}}

 通过修改ExternalInterrupt_Init(Ex_Interrupt0,Low_Trigger);函数的参数,达到开启不同外部中断,不同触发方式。

参数1:设置开启的外部中断               参数2:设置触发方式

Ex_Interrupt0Ex_Interrupt1Ex_Interrupt0_1Low_TriggerFalling_Trigger
开启外部中断0开启外部中断1开启外部中断0和1下降沿触发低电平触发

Ex_Interrupt0、Ex_Interrupt1、Ex_Interrupt0_1,Low_Trigger、Falling_Trigger

都声明在ExternalInterrupt.h文件中。

4.2 ExternalInterrupt.c文件

#include "ExternalInterrupt.h"
#include "intrins.h"
extern char Flag;void Delay50ms()		//@11.0592MHz
{unsigned char i, j, k;_nop_();_nop_();i = 3;j = 26;k = 223;do{do{while (--k);} while (--j);} while (--i);
}void ExternalInterrupt_Init(char Flag,char Mode){if (Flag == 0) {  // 外部中断0IE |= 0x81;  // 使能外部中断0if (Mode == 1) {TCON |= 0x01;}  // 设置外部中断0为下降沿触发else {TCON &= ~0x01;}}  // 设置外部中断0为低电平触发 else if (Flag == 1) {  // 外部中断1IE |= 0x84;  // 使能外部中断1if (Mode == 1) {TCON |= 0x04;}  // 设置外部中断1为下降沿触发else {TCON &= ~0x04;}}  // 设置外部中断1为低电平触发else if (Flag == 2) {  // 外部中断1且设置为高优先级IE |= 0x85;  // 使能外部中断1、外部中断0if (Mode == 1) {TCON |= 0x05;}  // 设置外部中断1为下降沿触发else {TCON &= ~0x05;}  // 设置外部中断1为低电平触发IP |= 0x04;}  // 设置外部中断1为高优先级else IE &= 0x7F;
}void ExternalInterrupt0() interrupt 0 {Delay50ms();  // 延时一段时间Flag++;if(Flag>7){Flag=0;}}void ExternalInterrupt1() interrupt 2 {Delay50ms();  // 延时一段时间Flag--;if(Flag<0){Flag=7;}}

可以在 void ExternalInterrupt0() interrupt 0 和 void ExternalInterrupt1() interrupt 2 中断函数编写自己想要的功能函数。

4.3  ExternalInterrupt.h

#ifndef __EXTERNALINTERRUPT__H
#define __EXTERNALINTERRUPT__H
#include "reg51.h"
#define Ex_Interrupt0      0
#define Ex_Interrupt1      1
#define Ex_Interrupt0_1    2
#define Low_Trigger        0
#define Falling_Trigger    1
void ExternalInterrupt_Init(char Flag,char Mode);#endif

4.4 protues仿真 

5.注意事项

        当设置外部中断0和外部中断为低电平触发时,按下触发按键会导致发生多次触发中断。所以提供的代码中进行简单的延时消抖,快

速按下松开按键不会触发多次中断,但是长时间按下按键,还是会出发多次中断。

6. protues仿真文件下载

.........

http://www.dtcms.com/wzjs/188713.html

相关文章:

  • 商昊网站建设上海seo优化公司kinglink
  • wordpress 拿站怎么创建网站?
  • 昆山网站建设有限公司怎么样网站搜索查询
  • 如何建导航网站今日疫情实时数据
  • 泰州网站设计企业网站推广方法
  • 湖南昌华建设集团网站自学seo能找到工作吗
  • 淄博哪里有做网站的软文代写接单平台
  • seo排名优化有哪些seo免费诊断联系方式
  • 有专门为个人网站做推广的吗seo优化易下拉霸屏
  • 服装网站怎么做的企业邮箱域名
  • 松江注册公司seo sem论坛
  • 深圳中高端网站建设青岛网
  • 百度搜不到网站宁波seo咨询
  • 秦皇岛的网站建设公司厦门seo顾问
  • 郑州 高端网站建设百度贴吧网页版登录入口
  • 学习电子商务网站建设与管理的感想阿里云域名注册官网
  • 织梦网站上传路径不对站长工具综合查询官网
  • 网站建设费用摊销年限网站关键词怎么写
  • 青岛微网站制作国内新闻最新
  • 唐山网站主页制作苏州疫情最新情况
  • 有没有单纯做旅游攻略的网站域名历史查询工具
  • 淘宝联盟怎么建网站怎么在百度上投放广告
  • 用oracle做网站数据库资源优化排名网站
  • 网站制作 意向单广告宣传语
  • 辽宁省住房和建设厅网站免费职业技能培训网站
  • 微信模板图片肇庆seo排名
  • 化妆培训学校网站开发百度联系电话多少
  • 北京企业网站建设哪家服务好宁波seo关键词如何优化
  • 国外做鞋子的网站福州短视频seo服务
  • 怎样增加网站的权重网络推广和网站推广