嵌入式仿真项目:报警器 中断

这篇博客详细介绍了如何使用STM32进行嵌入式开发,重点讲解了控制灯移位、数码管显示、外部中断控制以及中断计数在自动防盗报警器项目中的实现,包括中断优先级的设定和扩展外部中断的应用。
摘要由CSDN通过智能技术生成

控制灯移位(c):

/*中断控制灯移位实验(查询方式) */
//===================声明区=================================
#include	<reg51.h>		// 定义8051暂存器之标头档 
#define LED  P0            //定义LED端口
unsigned char SHIFT=0x01;         //LED显示初始状态
unsigned char i;
//===================主程序==================================
main()							// 主程序开始 
{	
	LED=0x00;//LED熄灭
	IT0=1;   //外部中断1控制为边沿触发方式(下降沿有效)	
	EX0=1;   //允许INT0中断
	EA=1;    //开放所有中断
	while(1)              // 无穷回圈,程序一直跑
    {
	while(IE0)			  //等待中断标志位	 
	{
		LED=(SHIFT<<i);   //左移一位	
		i=(++i)%8;        //调整移位位置
        IE0=0;            //清中断标志位
	}
	}	
}							// 主程序结束 

控制数码管(c):

/*数码管中断控制实验 (数码管七段输出8闪烁,若有中断产生,
七段笔划A、B、C、D、E、F依次来回逐个点亮3轮后又循环复原。)*/
//===================声明区=================================
#include	<reg51.h>		// 定义8051暂存器之标头档 
#define LED  P2            //定义LED端口
unsigned char SHIFTL=0x01;         //LED显示初始状态
unsigned char SHIFTR=0x20;         //LED显示初始状态
unsigned char i;
void delay1ms(int x);     //延迟函数
//===================中断程序================================
void service_int0(void) interrupt 0 using 1
{   
	unsigned char j;
	for(j=0;j<3;j++)
		{
			while(LED!=0xdf)   //七段笔划A、B、C、D、E、F依次顺时针方向逐个点亮3轮
			{
				LED=~(SHIFTL<<i);      
				delay1ms(500);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值