汇编语言:
ORG 0000H ;复位入口
SJMP START
ORG 0003H ;INT0中断入口
JNB P32, $ ;低电平原地转移
RETI ;高电平时结束中断
START:
SETB IT0 ;设为下降沿触发中断
MOV IE, #10000001B ;开放外部中断0
SJMP $ ;等待
END
单片机中的外部中断低电平触发和下降沿触发区别为:触发条件不同、触发次数不同、退出不同。
一、触发条件不同
1、外部中断低电平触发:外部中断低电平触发是检测到引脚为低电平就触发,从而进入中断函数中处理这个中断。
2、下降沿触发:下降沿触发是检测到信号有下降沿时的开关动作就触发,从而进入中断函数中处理这个中断。
二、触发次数不同
1、外部中断低电平触发:外部中断低电平触发只要引脚为低电平时间内中断一直有效,那么就会一直进入中断,直到电平变化为高电平。
2、下降沿触发:下降沿触发中断只会触发一次,只有在下次电平发生变化时才会重新触发中断。
三、退出不同
1、外部中断低电平触发:如果在电平没有恢复之前就退出中断程序,在退出后又再次进入不会引起外部中断低电平触发。
2、下降沿触发:如果在电平没有恢复之前就退出中断程序,那么会在退出后又再次进入下降沿触发中断。
1、首先注意51单片机上电的时候会有个复位的 *** 作,复位的时候不执行单片机内部程序,复位之后51单片机的所有IO口都为高电平;
2、在单片机复位之后在main函数里执行程序,如果要使Io口初始化为低电平,就要在while循环的上方把IO置低;例如:
一般程序的结构是这样的:
void main()
{
IO = 0 ; //在while的上方对IO置低,
while(1)
{
}
}
3、基于上面的原理,在设计单片机外围电路的时候,为了不让外围电路误动作,一般把外围电路设置成单片机IO口低电平的时候 尽心动作,
比如: 点亮LEd灯的时候,,一般把LEd的负极接IO口,,这样单片机上电的时候,没有进入程序之前,LED是不会亮的,
这个是芯片决定的。一个寄存器里有的电位代表了存储的内容,有门电路去控制,一个高电平电位输出后就把引脚的高电平送出了。至于为什么要看单片机的引脚图。代码在单片机内 实际是很多的电平来表示的,只是人们为了方便理解就 用代码来指示里面所有的电平关系。一个芯片内部可以装多少电平 也就代表了 具有多大的容量。这就是为什么一般芯片更大 制造工艺越小 (即多少纳米)所具有的功能就越强大。因为能够装更多的电平。
1对于传统的51单片机,在复位之后所有端口都输出1,即高电平,avr单片机则是portx=0x00,ddrx=0x00的高阻态,pic单片机也是这样。
2如果你要让led受控,那应该反着接,即在端口输出0的时候才点亮led,另外对于常用的51单片机,高电平输出的电流较小,而低电平能吸收的电流较大,这是你需要了解的。当然,stc的单片机使用了推挽式端口,无论输出1和0时能承受的电流都很大。
3当然,在单片机复位之后端口状态就是确定的高电平(如51单片机),或者高阻态(avr等),在程序中初始化一下也不算有错嘛!有的编译器能自动生成代码(比如avr单片机的cvavr编译器),都在程序开始时初始化端口为高阻态,如果为了节省代码空间,可以把这些代码去掉。
以上就是关于51单片机中断程序 P32为低电平时进入中断,P32为高时结束中断,回到程序暂停的地方全部的内容,包括:51单片机中断程序 P32为低电平时进入中断,P32为高时结束中断,回到程序暂停的地方、单片机中的外部中断低电平触发和下降沿触发有什么区别、怎样使单片机上电时IO口为低电平呀等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)