CPU与外设之间的数据传输方式有:无条件、查询和中断传送。而中断的效率最佳。
所谓的中断,CPU在运行过程中,暂停正在运行的主程序,而转去处理单片机内部或者外部突发的程序-
中断服务程序,中断处理程序),待中断服务程序处理完之后在返回原来的地方(中断点),继续执行主程序。
中断的产生由中断源通过中断标志传输给CPU进行相关的处理
通常情况下有五个可用的
中断源
外部中断
1、低电平触发方式
2、下降沿触发方式
定时器/计数器中断
串行中断
而
中断标志有(它们分别在特殊功能寄存器TCON,SCON的相应的位)
一、定时器控制寄存器(TCON)
(1)、IE0和IE1:外部中断请求标志位。当CPU在INT0(P3.2)/INT1(P3.3)引脚上采样到有效的中断请求信号时,IE0和IE1位的硬件置1。在中断响应完成后,再由硬件将该位自动清0.
(2)、IT0和IT1:外部中断请求触发控制位。IT0(ITI)=1时为下降沿触发方式,IT0(ITI)=0时为低电平触发方式。
(3)、TF0和TF1:定时器/计数器溢出中断请求标志位。TF0或TF1=1时,表示对应计数器的技术值已经有全1变成全0,计数器计数溢出,相应的溢出标志位由硬件置1.
(4)、TR0和TR1:定时器和计数器的运行控制位。当TR0或TR1为零时,定时器/计数器停止工作;当TR0TR1为1时计数器
/定时器启动工作。
二、串行口控制寄存器(SCON)
(1)、串行发送中断请求标志位标志,
(2)、串行口接收中断请求标志位
这次是进行简单的外部中断的处理,我们只是进行小小的处理;
通过外部中断来控制发光二极管的。主要用(P3.2)和(P3.3)来链接两个按键,利用外部中断请求触发控制位来实现控制
#include<reg51.h> void LedOn(void); void LedOff(void); void int0(void); void int1(void); //主函数 main() { EX0=1;//允许外部中断0的中断请求 EX1=1;//允许外部中断1的中断请求 EA=1;//开房总中断开关 IT0=1;//设置外部中断0为下降沿触发 IT1=1;//设置外部中断1为下降沿触发 P1=0xff;//熄灭发光二极管 while(1) {;} } void etern0_ISR() interrupt 0//外部中断服务子程序1 { LedOn(); } void extern1_ISR() interrupt 3//外部中断服务子程序3 { LedOff(); } void LedOn() { P1=0x00; } void LedOff() { P1=0xff; }
后续在做补充,,,,,,