下载此文档

ZigBee学习笔记.doc


文档分类:外语学习 | 页数:约14页 举报非法文档有奖
1/14
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/14 下载此文档
文档列表 文档介绍
1普通IO口控制硬件连接如图1-1所示[P1_0]->[LED1],[P1_1]->[LED2],[P1_4/CSN]->[LED3],其中P1_4/CSN引脚与调试器的引脚复用,若使其正常工作,需拔下调试器,使用串口供电。图1-1LED硬件连接在进行IO口操作时,首先需要设置IO口的工作方式,常用到PxSEL,PxDIR,PxINP,其中x为0,1,2,表示0,1,2组IO口。如图1-2所示,PxSEL设置IO口功能,默认为0,即通用IO;值1表示外设功能。PxDIR设置输入输出,默认为0,即输入;值1表示输出。PxINP设置IO输入时,是否使用芯片内部的上下拉电阻,2530芯片手册。图1-2设置IO口寄存器输出/* 程序功能:三个LED灯顺序闪烁*/#include<>/*无符号八位数据类型*/#defineuint unsignedint#defineuchar unsignedchar/*IO端口映射*/#defineLED1 P1_0#defineLED2 P1_1#defineLED3 P1_4/*函数声明*/voiddelay(uint); //延时voidinitIO(); //初始化IO口//入口voidmain(){ initIO(); while(1) { LED1=!LED1; delay(20000); LED2=!LED2; delay(20000); LED3=!LED3; delay(20000); }}//延时voiddelay(uintx){ uniti; for(i=0;i<x;i++); for(i=0;i<x;i++); for(i=0;i<x;i++); for(i=0;i<x;i++); for(i=0;i<x;i++);}//初始化IO口voidinitIO(){ P1DIR|=0x13; LED1=1; LED2=1; LED3=1;}-3所示,芯片外部另接有上拉电阻,所以P0_1口的输入模式应设置为三态模式,当开关S1断开时,由于上拉电阻的存在,P0_1值为1,当开关S2闭合时,高电压直接到地,所以此时P0_1值为0。图1-3开关硬件连接(1)首先设置P0_1为普通IO,其实不用设置也是可行的,因为芯片默认为普通IO。P0SEL&=~0x02; //置0,且不更改其它位的值(~0x02==11111101)(2)然后设置P0_1为输入模式,其实不用设置也可以,默认为输入模式。 P0DIR&=~0x02;(3)设置P0_1为三态,即不使用芯片内部上下拉电阻。 P0INP|=0x02; //置1,且不更改其它位的值(0x02==00000010)当设置相关寄存器后,可以进行输入检测了,可以使用ucharkeyScan()函数来检测S1是否按下,如下程序所示,当按键按下并抬起时,函数返回1,若无按键按下,则函数返回0。ucharkeyScan(){ if(S1==0) { delay(100); if(S1==0) //再次检测消除瞬时低电平的干扰{ while(S1==0); //等待按键S1抬起 return1; } } return0;},有18个中断源,每个中断源都有各自的控制位、标志位和使能位。图1-4给出了18个中断源的中断向量,图1-5给出了P0组IO口作为中断源时的触发流程。图1-4中断向量图1-5P0组IO口中断触发流程若使用按键S1(P0_1)中断,需要进行以下工作:(1)设置P0SEL寄存器,使P0_1作为普通IO口;(2)设置P0DIR寄存器,使P0_1作为输入;(3)设置P0INP寄存器,上下拉或三态模式,若外部接有上下拉电阻,则应选择三态模式;(4)清零P0IFG寄存器中的第1位,避免程序误入中断;(5)设置PICTL寄存器中的第0位(P0组IO口),默认为0,上升沿触发,1为下降沿触发;(6)设置P0IEN寄存器,使能P0_1口(第1位)中断;(7)设置IEN0寄存器中的EA位(第7位),开启中断总开关;(8)设置IEN1寄存器中的P0IE位(第5位),开启P0组IO口中断开关;(9)设置中断向量函数。在程序进入中断向量函数时,中断函数需要完成以下工作:(1)判断是否为P0_1促发的中断,方法为判断P0IFG寄存器中的第1位;(2)清零P0IFG寄存器中的第1位(P0_1)。(3)处理中断任务;(4)清零P0IF寄存器中的第1位(P0_1)。/* 按下BTN1时LED1和LED2状态切换*/#include<>#defineuintunsignedint#defineucharunsignedchar#defineLED1P1_0#defineLED2P1_1#defineBTN1

ZigBee学习笔记 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数14
  • 收藏数0 收藏
  • 顶次数0
  • 上传人260933426
  • 文件大小698 KB
  • 时间2020-02-27