Zigbee术基础实验四.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Zigbee术基础实验四

Zigbee技术基础实验搭建;Zigbee技术基础实验搭建;2. 硬件原理:(如图4-所示)   按键SB2连接CC2531的管脚P1_1。不按下按键SB2时,管脚P1_1为高电平3.3V,即逻辑1。按下按键SB2时,管脚P1_1由高电平3.3V变为低电平0V,即由逻辑1变为逻辑0。 CC2531有21个可编程的I/O口引脚,P0、P1口是完全的8 位口,P2 口只有5 个可使用的位(P2_4,P2_3,P2_2,P2_1,P2_0),全部21个数字I/O口引脚都具有响应外部中断的能力。如果需要响应外部设备,可对I/O口引脚产生中断,同时外部中断事件也能被用来唤醒休眠模式。;Zigbee技术基础实验搭建;Zigbee技术基础实验搭建;Zigbee技术基础实验搭建;P1IEN寄存器使能或禁止P1口对应位的中断功能。向对应位写入0,则禁止其中断功能,向对应位写入1,则使能其中断功能。复位值为0x00,即默认为禁止所有位的中断功能。 PICTL(中断控制寄存器):;本实验使用的端口为P1,因此只需设置PICTL的第1位P1ICON为1,即下降沿触发。;P1IFG(P1口中断标志寄存器):;  本实验使用的端口为P1,因此只需设置IEN2的第4位P1IE为1,即使能P1口中断。;4. 中断的使用方法 为了使能任一中断功能,应当采取下列步骤: l 清除中断标志。 l 如果有,则设置SFR 寄存器中对应的各中断使能位为1。 l 设置寄存器IEN0、IEN1 和IEN2 中对应的中断使能位为1。 l 设置IEN0 中的EA 位为1 使能全局中断。 l 在该中断对应的向量地址上,运行该中断的服务程序。;5. 实验相关函数:;/***************************************** //io及LED初始化 *****************************************/ void Init_IO_AND_LED(void) { P2DIR |= 0x01; P0DIR |= 0x20; RLED = 1; YLED = 0; //黄灯亮表示系统开始工作 P1IEN = 0X03; //开P1_0 ,P1_1中断掩码 PICTL = 0X02; //P1下降沿触发 EA = 1; //开总中断 IEN2 |= 0X10; // P1IE = 1; P1IFG |= 0x00; //中断标志初始化位0 };;/***************************************** //主函数 *****************************************/ void main(void) { Init_IO_AND_LED(); while(1) { }; };/***************************************** //延时 *****************************************/ void Delay(uint n) { uint ii; for(ii=0;iin;ii++); for(ii=0;iin;ii++); for(ii=0;iin;ii++); for(ii=0;iin;ii++); for(ii=0;iin;ii++); };#pragma vector = P1INT_VECTOR __interrupt void P1_ISR(void) { if(P1IFG0) //按键中断 { P1IFG = 0; RLED = !RLED; //按键控制红色LED灯的亮灭 } P1IF = 0; //清中断标志 };五、 实验步骤 1. 按要求连接好硬件,如实验一所示。 2. 打开IAR集成开发环境,建立工程和文件,写好代码后,编译、下载、运行 3. 观察实验现象。按下按键K1和K2,观察是否能够翻转LED灯HL6的亮灭状态。 六、 拓展思考 1. CC2531有哪些中断源? 2. 本实验中的中断属于哪一类中断源?;?在IAR编译器里用关键字来__interrupt来定义一个中断函数。用#pragma vector来提供中断函数的入口地址。 常规中断服务函数定义: #pragma vector = T3_VECTOR????? //定时器 T3 __interrupt

文档评论(0)

wst34008 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档