辜渝傧

13037102709

027-87870986

教学实训

您当前的位置:首页 > 教学资源 > 实训方案 >

无线传感网络实训|实验2.6 外部中断控制蜂鸣器

发布者:唯众    布时间:2020-11-27 15:25:45    点击量:

1.实验目的

1)、通过实验掌握CC2530芯片GPIO的配置方法,带你一步步走进嵌入式大门
2)、掌握蜂鸣器驱动电路及开关蜂鸣器的原理
3)、过按键KEY产生外部中断改变蜂鸣器的状态

2.实验设备

硬件:PC机1台、ZIGBEE节点板1套(底板、核心板、仿真器、USB 线)
软件:2000/XP/win7 系统,IAR 8.10 集成开发环境

3.实验相关电路图

实验2.6 外部中断控制蜂鸣器实验2.6 外部中断控制蜂鸣器

4.实验相关寄存器

5.源码分析

#include
#define uint unsigned int
#define uchar unsigned char
 
#define KEY  P2_0 //定义按键 S1 为 P20 口控制
//函数声明
void Delay(uint); //延时函数声明
void Initial(void); //初始化函数声明
void InitKey(void); //初始化按键函数声明
uchar KeyScan(void); //按键扫描函数声明
uchar Keyvalue = 0 ; //定义变量记录按键动作
uint KeyTouchtimes = 0 ; //定义变量记录按键次数
/****************************
//延时
*****************************/
void Delay(uint n)
{
uint i;
for(i = 0;i for(i = 0;i for(i = 0;i for(i = 0;i for(i = 0;i for(i = 0;i for(i = 0;i for(i = 0;i for(i = 0;i for(i = 0;i for(i = 0;i for(i = 0;i for(i = 0;i for(i = 0;i for(i = 0;i }
/****************************
//初始化按键为中断输入方式
*****************************/
void InitKeyINT(void)
{
       P2DIR &= ~0x01; //P20定义为输入
       KEY = 1;
      
    P2INP &= ~0X01; //配置P2.0口上拉下拉
    P2IEN |= 0X01;  //P2.0为中断模式
    PICTL |= 0X08;  //下降沿
       IEN2 |= 0X02;
P2IFG &= ~0x01;
EA = 1;
}
 
void InitIO(void)
{
       P1DIR |= 0x08;   //P13定义为输出
       BUZZER = 0;
       BUZZER = 1;
       BUZZER = 0;
}
/****************************
//中断处理函数
*****************************/
#pragma vector = P0INT_VECTOR
__interrupt void P0_ISR(void)
{
if(P0IFG>0) //按键中断
{
P0IFG = 0;
Delay(100);
if(P0IFG==0) //按键中断
{
Delay(100);
KeyTouchtimes = KeyTouchtimes+1; //每次中断发生时记录按键次数加 1
}
}
P0IF = 0; //清中断标志
}
/***************************
//主函数
***************************/
void main(void)
{
InitIO();
InitKeyINT(); //调用初始化函数
while(1)
{
if(KeyTouchtimes == 1)
{
BUZZER=!BUZZER
Delay(30000);
KeyTouchtimes = 0;
}
}
}

6.实验现象

       按下按键,蜂鸣器响;再次按下按键,蜂鸣器停止。


上一篇:无线传感网络实训|实验2.5 ADC采集实验

下一篇:无线传感网络实训|实验2.7 看门狗实验