/*单片机中断反应 */
//==声明区=====================================================================================================
#include
#define uint unsigned int
#define uchar unsigned char
void delay(uint a);
bit c,b;
//==主程序区===================================================================================================
void main()
{
EA=1;//打开总中断
EX0=1;//打开外部中断0
IT0=0;//将中断0设置为电平触发
IT1=0;//将中断0设置为电平触发
EX1=1;//打开外部中断1
while(1)
{
P1=0xfe;//关掉INT0里面的LED
P0=0xff;//关掉INT1里面的数码管
P0=0x00;
P2=0xf8;
P1=0xfe;
while(1);
}
}
//=子程序区=====================================================================================================
void delay(uint a)
{
uint b,c;
for(b=a;b>0;b--)
for(c=110;c>0;c--);
}
void Int0() interrupt 0//外部中断0的服务子程序不用在声明区声明的
{
uint a;
a=10;
while(a--)//这里不能用while(1)如果不是的话当外部中断已经成了高电平,但无法跳出中断服务子程序
{
P0=0x00;
P2=0xf8;
P1=0xff;
delay(1000);
P1=0x00;
delay(1000);
}
}
void Int1() interrupt 2//外部中断1 的服务子程序也是不用在声明区声明的。
{
delay(1);
c=P3^3;
if(c==0)
{
delay(1);
if(c==0)
{
uint a;
a=10;
while((a--))//这里不能用while(1)如果不是的话当外部中断已经成了高电平,但无法跳出中断服务子程序
{
P1=0xff;
P2=0xf8;
P0=0x3f;
delay(1000);
P2=0xf9;
P0=0x00;
delay(1000);
P2=0xf8;
P0=0x06;
delay(1000);
P2=0xf8;
P0=0x5b;
delay(1000);
P2=0xf8;
P0=0x4f;
delay(1000);
P2=0xf8;
P0=0x66;
delay(1000);
P2=0xf8;
P0=0x6d;
delay(1000);
}
}
}
}
/*程序功能是第一个LED亮的,P3^2口是低电平是进入中断程序,中断实现功能是八个LED一起闪烁。P3^3口是低电平是进入外部中断1,
外部中断1的程序实现是,第一个数码管显示0,1,2,3,4,5.但我还没有弄明白为什么0和1转换的时候有一个时间间隔而大家的延时
都是一样,但是在显示就不一样了。
程序实现在中断结束以后INT0的8个LED还是在点亮的,INT1的最后的一个数码管还是点亮的,因为没有在主程序里面关掉LED和数码管。
注意我的开发板P0口是接数码管(是共阴极的)P2口是74HC138,P1口是LED*/
关键字:单片机 中断应用
引用地址:
单片机中断应用程序
推荐阅读最新更新时间:2024-03-16 14:26
单片机的两大系列进行PK_MSP430和AVR
单片机种类有很多,好多厂商都推出了自己的MCU,对于众多品牌的单片机,我比较看重MSP430和AVR系列的,下面就从他们各自的特点,分几个方面,进行PK分析。 既然进行PK,如同体育竞赛,要选择相同等级的进行对比,为此,选择MSP430G2553和ATMEGA88PA-AU,性能差不多,以此作为比较。 一、处理器位数和频率 两种芯片都支持片内振荡器 MSP430G2553 16位 16MHZ 大部分指令系单指令周期 ATMEGA88PA 8位 20MHZ 单指令周期 若按8位的标准来计算,处理器速度应是8位的2倍,这对运算速度是好事。但在实际中16位处于一个很尴尬的境地,若与高端的相比,上有32
[单片机]
51单片机——I2C总线
UART 属于异步通信,比如电脑发送给单片机,电脑只负责把数据通过TXD 发送出来即可,接收数据是单片机自己的事情。而 I2C 属于同步通信, SCL 时钟线负责收发双方的时钟节拍, SDA 数据线负责传输数据。 I2C 的发送方和接收方都以 SCL 这个时钟节拍为基准进行数据的发送和接收。 I2C总线包括SCL,SDA 两根信号线,其中SCL是时钟线,SDA是数据线。 1、起始信号 UART 通信是从一直持续的高电平出现一个低电平标志起始位;而 I2C 通信的起始信号的定义是 SCL 为高电平期间, SDA 由高电平向低电平变化产生一个下降沿,表示起始信号。 2、数据传输 UART 是低位在前,高位在后;而
[单片机]
单片机 RS485 通信接口、控制线、原理图及程序实例
RS232 标准是诞生于 RS485 之前的,但是 RS232 有几处不足的地方: 接口的信号电平值较高,达到十几 V,使用不当容易损坏接口芯片,电平标准也与 TTL 电平不兼容。 传输速率有局限,不可以过高,一般到一两百千比特每秒(Kb/s)就到极限了。 接口使用信号线和 GND 与其它设备形成共地模式的通信,这种共地模式传输容易产生干扰,并且抗干扰性能也比较弱。 传输距离有限,最多只能通信几十米。 通信的时候只能两点之间进行通信,不能够实现多机联网通信。 针对 RS232 接口的不足,就不断出现了一些新的接口标准,RS485 就是其中之一,它具备以下的特点: 采用差分信号。我们在讲 A/D 的时候,
[单片机]
基于AVR单片机与FPGA的低频数字式相位测量仪设计
在工业领域中经常要用到低频数字式相位仪来精确测量两信号之问的相位差,比如在电力系统、频率特性的研究、激光测距等领域均有广泛的应用,相位检测的精度直接决定系统的整体性能。这就要求测量仪逐渐向智能化和测试自动化方向发展,本设计采用MCU和FPGA相结合的系统方案,以AVR单片机ATmega128和Altera公司的Cyclone系列EP1C3T100为核心,充分发挥各自的优势,如AVR单片机先进的RISC结构和强劲的运算、控制功能,Altera公司的FPGA运算速度快、资源丰富以及易编程的特点,合理设计,此方案的相位仪具备速度快、稳定可靠、精度高等优点,而且容易实现“智能化”和“自动化”。 1 系统方案设计 1.1 测量方法的比较
[单片机]
汽车的智能感官之“心”:适于检测及传感应用的MCU
Renesas(瑞萨电子)一直以来在汽车电子应用中具有重要地位,MCU R5F1177A属于Renesas RL78系列微控制器产品,该款MCU具有极低的功耗,丰富的模拟功能以及出色的低功耗表现,这使R5F1177A可以完美的应用于对功耗敏感的汽车电子应用,尤其是检测及传感器应用。 完备的模拟功能 世强代理的R5F1177A,集成了丰富的模拟功能,包括运算放大器、模式转换器、窗口比较器等。 同时该款MCU内部集成了4路运算放大器,2路窗口比较器,在外部配合简单的电阻电容设计,即可完成对信号的放大、滤波以及信号的监测,配合内部集成的分辨率高达12位的模数转换器,R5F1177A以极小的设计面积就可以完成对外部信号的测
[汽车电子]
Dialog最新蓝牙低功耗无线多核MCU系列,为用户设立未来标准
SmartBond™产品线最新成员,提供基于集成ARM Cortex M33的专用应用处理器等先进特性 高度集成定制和可配置电源管理、AC/DC电源转换、充电和蓝牙低功耗技术供应商Dialog半导体公司宣布,推出其最先进、功能最丰富的无线连接多核微控制器单元(MCU)SmartBond™ DA1469x蓝牙低功耗SoC系列。该新产品系列包括4个型号,建立在Dialog SmartBond™产品线的成功基础之上,为广泛的IoT连网消费类应用提供更强大的处理能力、更多资源、更大的覆盖范围、和更长的电池续航能力。 DA1469x产品系列旨在帮助设备制造商利用Dialog经过验证的SmartBond™技术,拓展其可以创造的应
[嵌入式]
单片机基础(八):单片机串行口结构与工作方式及应用
单片机串行口结构 串行口结构如上图 发送时,SBUF中写入数据后,串行口通过发送控制器,将SBUF中的数据逐个逐位地通过串行输出口TXD引脚逐个发出,当一个字节发送结束后,触发TI中断位,通知单片机发送结束 接收时,先向REN引脚写1,外部引脚RXD会实时检测电平变化,当满足串行接收数据的条件时,会逐位接收数据并保存到SBUF,当一个字节接收结束后,触发RI中断位,通知单片机接收结束 串行口控制寄存器SCON SM0、SM1用于设定串行口工作方式 fosc :晶振频率 SM2:多机通信控制位 REN:允许接收控制位 TB8/RB:发送/接收的第9位数据 TI:发送中断标志位 RI:接收中断标志位
[单片机]
循环冗余校验码的单片机及CPLD实现
摘要: 循环冗余码校验(CRC)是一种可靠性很高的串行数据校验方法。介质循环冗余码校验的基本原理,并分别用单片机和CPLD作了循环冗余码验的软件实现和硬件实现。包括汇编语言和VHDL语言源程序。
关键词: 差错校验 查表法 CPLD
1 基本原理
串行数据的差错检验是保证数据正确的必要手段,通常采用奇遇校验法和循环冗余校验法。这两种方法都是通过冗余数据来提供必要信息。奇偶校验法适用于以字节为单位数据传输。例如用偶校验传送1个ASCII字符时,要附加1个校验位,从而使全部9位中“1”的个数为偶数。奇偶校验简单易行,但当数据崩溃或出现多位错误时,往往不能检验出来,因而可靠性不高。
循环冗余码
[半导体设计/制造]