2019年12月17日

  • 1、51单片机中断函数
void Timer1() interrupt 3
{
 static u16 i;
 TH1=0XFC; //给定时器赋初值,定时1ms
 TL1=0X18;
 i++;
 if(i==1000)
  {
    i=0;
    P0=~smgduan[n++];
    if(n==16)n=0; 
  } 
}

这里面的3是关键,按照52单片机中断级别表。注意,若没有人为操作优先级寄存器,单片机会按照默认的一套优先级自动处理。即下表!
在这里插入图片描述
这里函数使用的是T1定时/计数器1中断,那么序号定了就是***3***,函数也是根据这个数字,判断是你们几个中断源中,谁的中断函数!
外部中断0的中断函数:

void Int0() interrupt 0  //外部中断0的中断函数
{
 delay(1000);  //延时消抖
 if(k3==0)
  {
    led=~led;
  }
}

外部中断1的中断函数:

void Int1() interrupt 2  //外部中断1的中断函数
{
 delay(1000);  //延时消抖
 if(k4==0)
 {
  led=~led;
 }
}
  • 2、51的中断寄存器(中断允许寄存器IE和中断优先级寄存器IP)
    中断允许寄存器IE
    在这里插入图片描述6个具体中断开关好对应上面6个中断源!!!大开关EA统领!

1)EA,全局中断允许位
EA=1,打开全局中断控制,在此条件下,由各个中断控制位确定相应中断的打开或关闭;
EA=0,关闭全部中断。

2)ET2,定时器/计数器2中断允许位
ET2=1,打开T2中断;
ET2=0,关闭T2中断。

3)ES,串行口中断允许位
ES=1,打开串行口中断;
ES=0,关闭串行口中断。

4)ET1-定时器/计数器1中断允许位
ET1=1,打开T1中断;
ET1=0,关闭T1中断。

5)ET0,定时器/计数器0中断允许位
ET0=1,打开外部中断0中断;
EX0=0,关闭外部中断0中断。
中断允许寄存器用来设定各个中断源的打开和关闭。IE在特殊功能寄存器中,字节地址为A8H,位地址(有低位到高位)分别是A8H~AFH,该寄存器可进行位寻址,即可对该寄存器的每一位进行单独操作。单片机复位时IE全部被清0.以字母E开头
中断优先级寄存器IP
在这里插入图片描述
1)PS,串行口中断优先级控制位
PS=1,串行口中断定义为高优先级
PS=0,串行口中断定义为低优先级

2)PT1,定时器/计数器1中断优先级控制位
PT1=1,定时器/计数器1中断定义为高优先级中断
PT1=0,定时器/计数器1中断定义为低优先级中断

3)PX1,外部中断1中断优先级控制位
PX1=1,外部中断1定义为高优先级中断
PX1=0,外部中断1定义为低优先级中断

4)PT0,定时器/计数器0中断优先级控制位
PT0=1,定时器/计数器0中断定义为高优先级中断
PT0=0,定时器/计数器0中断定义为低优先级中断

5)PX0,外部中断0中断优先级控制位
PX0=1,外部中断0定义为高优先级中断
PX0=1,外部中断0定义为低优先级中断

中断优先级寄存器在特殊功能寄存器中,字节地址为B8H,位地址(由低位到高位)分别是B8H~BFH,IP用来设定各个中断源属于两级中断中的哪一级。该寄存器可进行位寻址,即对该寄存器每一位进行单独操作。单片机复位时IP全部被清0.
在51单片机系列中,高优先级中断能够打断低优先级中断以形成嵌套中断,同优先级中断之间,或低级对高级中断则不能形成中断嵌套。若几个同级中断同时向CPU请求中断响应,**在没有设置中断优先级情况下,按照默认终端级别响应中断,在设置中断优先级后,则按照设置顺序确定响应的先后顺序。**字母P开头

  • 3、单片机的定时/计数器

51单片机内部共有2个16位可编程的定时/计数器,即定时/计数器T0和定时/计数器T1.52单片机内部多一个T2定时/计数器。

  • 4、关于Keil uVision5上同时允许C51和STM32

在这里插入图片描述
安装完软件后,既要安装相应的芯片包,也要破解(管理员身份)
这样,新建项目的时候,才找得到芯片,这里,我们就能愉快的找到ATMEL的51芯片和STC公司的STM32芯片了。会增添一个新文件夹,里面有编译器那些哦。。
在这里插入图片描述
在这里插入图片描述
用汇编写程序的时候不要加,其他无所谓的。
跳入C函数之前执行的一段汇编代码,不加就用默认的启动代码,加了你没修改这段代码,那还是相当于用默认的启动代码,这时加和没加都一样。
比如说,你想另外设置SP的值,不用默入的,就可以加入,然后修改SP。

  • 一个小秘密

1)STC调试时可以点Debug,开始调试,ISP技术?而你用STM32的时候就不行了,它会凶狠的告诉你,你丫没连仿真器调试个卵蛋?
2)51单片机12个时钟周期为一个机器周期

5、52单片机定时器2
52单片机与51单片机相比,除了其内部存储容量增大,还多了一个T2定时器/计数器。定时器2是一个16位定时器/计数器,通过设置特殊功能寄存器T2CON中的C/T2(T2有上划线)位,可将其设置为定时器或计数器;通过设置T2CON中的工作模式可将定时器2设置为三种工作模式,分别为捕获、自动重装载(递增或递增技术)和波特率发生器。
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值