51学习之外部中断
时间:11-23
来源:互联网
点击:
学习外部中断,因为不了解,直接粘了程序来执行。
void ISR0_Key() interrupt 0 using 1
{
}
{
}
void Main()
{
}
执行结果好像有点乱。不太了解,边沿和电平触发的区别。从网上看了,能理解,可实际执行是不一样的。
1、在第1次扫描到键盘按下时,结果如前面我们说的一样,不论是低电平触发还是下降沿触发结果都会触发事件,这里触发时即指示灯点亮。然后程序继续运行……
2、当程序继续运行到第2次扫描键盘时按键还没放开,结果就不一样了。
低电平触发:触发条件依然为低电平,触发条件成立,那么执行事件,指示灯状态改变,此时指示灯由亮变灭;
下降沿触发:触发条件依然为低电平,下降沿触发条件不成立,那么不执行事件,指示灯维持原来的亮的状态。
呵呵,明天再研究吧!
还有就是中断处理程序的一些问题。
中断服务程序通过使用 interrupt 关键字和中断号(0 到 31)来实现中断服务程序处理的是哪一个中断。 using 关键字用来指定中断服务程序使用的寄存器组。用法是:using 后跟一个0 到3 的数,对应着 4 组工作寄存器。一旦指定工作寄存器组,默认的工作寄存器组就不会被压栈,这将节省 32 个处理周期,因为入栈和出栈都需要 2 个处理周期。 今天只试了进入中断这种方式。明天试下查询的方式,应该和定时器是一样的。 |
51学习外部中 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)