按键控制基于CC2530单片机的流水灯设计080900922徐大伟电子0801通过两个月的专业实习,主要是设计按键来控制基于CC2530单片机的流水灯。本次设计用LED1,LED2,LED3灯及按键S1为外设。采用P10、P11、P14口为输出口,驱动LED1/LED2/LED3,P01口为输入口,接受按键信号输入(高电平为按键信号)。以下是对于本次专业实习所用到的模块的介绍。1.高性能2.4G射频模块Q2530RFQ2530RF是丘捷技基于TI公司第二代2.4GHzIEEE802.15.4/RF4CE/ZigBee的第二代片上系统解决方案CC2530F256的全功能模块,集射频收发及MCU控制功能于一体。外围原件包含一颗32MHz晶振和一颗32.768KHz晶振及其他一些阻容器件。射频部分采用巴伦匹配和外置高增益SMA天线,接收灵敏度高,发送距离远,空旷环境最大传输距离可达400米。模块引出CC2530所有IO口,便于功能评估与二次开发。2.多功能开发板Q2530EB多功能扩展板Q2530EB可支持多种射频主控模块(例如Q2530RF等),配置有串口液晶显示接口,USB供电接口,DC5V电源接口,电池接口,RS232接口,DEBUG接口,五向按键及指示灯,红外遥控信号接收/发射等模块。所有的外设均通过SPI总线/UART/DEBUG等接口与射频模块Q2530RF相连,并完全受Q2530RF控制和访问。多功能仿真扩展板Q2530EB采用三种电源供电方式:DC5V供电、USB接口供电、电池供电,可在插座P5设置跳线选择,PIN1-PIN2为电池供电,PIN2-PIN3为外接直流电源或者USB接口供电。电源开关为P4。Q2530EB板卡背面的电池盒可放置3节5号干电池,输出电压3.4~4.5V,板载电源电路将其调整到+3.3V稳定的直流电压输出供后级使用。当电池电压低于3.4V时,应更换电池以保持模块正常工作。Q2530EB带有1个DC5V的电源适配器接口P2和一个USB接口P1,输入电压经过稳压器降压为+3.3V输出供后极使用。Q2530EB液晶显示模块提供串口控制方式,液晶显示模块放置于P12的奇数脚侧,且1~16脚对应于P12的1~31脚,与TI官方SmartRF05EB不同,我司多功能仿真扩展板Q2530EB液晶显示模块为选配部件,选用128*64的点阵图形液晶显示模块,并提供该液晶模块的驱动源代码。对不想在这个环节浪费精力的项目开发者来说,我司已为您准备好TI公司Z-Stack/BasicRF等几个平台下的液晶显示驱动文件,您只需将该文件将TI官方资料中同名文件替换即可。多功能仿真扩展板Q2530EB配置的RS232接口可用于与其他外设进行通讯。电路上采用U5进行RS232电平转换。通过RS232插座P10与外设相连。串口设有电源跳线P9,用于设置串口芯片启动和关闭。串口带有两个收发指示灯D5、D6,分别用于表示串口是否收到或在发送数据,D7为串口电源指示灯。多功能仿真扩展板Q2530EB的主控部分为外接的射频控制模块。通过P14、P15与Q2530RF控制模块连接。多功能仿真扩展板Q2530EB提供DEBUG接口P13与仿真器相连,并将相关信号(SPI总线,DEBUG信号等)通过插座P14、P15连接至射频控制模块Q2530RF,这些信号线也可通过P11进行断开。多功能仿真扩展板Q2530EB提供一个五相按键(U3)、四个轻触按键(S1/S2/S3/S4)、六颗LED(D1/D2/D3/D4/D8/D9)显示。U3可以检测五个方向(中心、向上、向下、向左、向右)和一个按键动作。这样的话就需要有KEY_UP、KEY_DOWN、KEY_LEFT、KEY_RIGHT、KEY_PUSH五个信号来描述方向按键动作。如果用五个AD口来采样信号,对某些射频控制模块来说是不现实的或者说不经济的。在与射频控制模块Q2530RF配合时,Q2530EB提供两个信号KEY_MOVE,KEY_LEVEL来描述按键动作。当按键朝任何方向移动或被按下时,KEY_MOVE为高电平。同时,另一个信号KEY_LEVEL的值来表述按键方向。四个轻触按键(S1/S2/S3/S4)中S4为系统复位键(RESET),S3为RemoTI开发系统定义按键,S1、S2为Zigbee开发系统定义按键。六个LED(D1/D2/D3/D4/D8/D9)中D1/D2/D3/D4为Zigbee开发系统定义LED,D8/D9为RemoTI开发系统定义LED显示。多功能扩展开发板Q2530EB配置一个串口FLASH(U7)用于数据和参数的存储。红外遥控信号的输入由U8及其他一些阻容件完成,IR信号经解调去载波后输入射频控制模块Q2530RF。红外遥控信号的输出由射频控制模块Q2530RF直接驱动红外发射二极管D10完成发射。板上含有一个10k的电位器,方便用户进行模拟量A/D采样的学习与实验,电位器与2530的跳线连接默认是断开的,实验前应将P16的25、26两脚用跳线帽短接;由于电位器、液晶背光、备用LED三个信号复用了2530的同一个管脚,使用时还应将P11的31、32脚和P16的27、28脚也断开。3.多功能电池板Q2530BBQ2530BB的射频控制板接口定义同Q2530EB板保持一致。延续Q2530EB的三种供电方式:DC5V、USB或电池供电。可在插座P5设置跳线选择,PIN1-PIN2为电池供电,PIN2-PIN3为外接直流电源或USB供电。电源开关为P4,开关旁有”ON”/”OFF”字符指示。Q2530BB提供DEBUG接口P10与仿真器相连,相关信号(SPI总线、DEBUG信号等)通过插座P8、P9连接至射频控制模块Q2530RF,也可通过P11进行相关信号的连接与断开选择。用户可在PC上通过仿真器实现对射频控制模块Q2530RF的程序仿真调试和下载。Q2530BB同样提供与仿真器配合实现协议分析仪PacketSniffer的功能。Q2530BB提供1个轻触按键S2和1个复位按键S1。同时提供两个LED指示灯D1和D2。Q2530BB采用一个光敏电阻构成光照度传感器电路,一个温敏电阻构成的温度传感器电路,然后输入IC进行AD转换。开发系统提供了zstack组网时,对两路外部传感器电压采样的样例程序。下面是本次设计的流程图:设计相关寄存器:P1,P1DIR,P0SEL,P0INP,P0,P0DIRP0SEL(0XF3)P0[7:0]功能设置寄存器,默认设置为普通I/O口P0INP(0X8F)P0[7:0]作输入口时的电路模式寄存器P0(0X80)P0[7:0]可位寻址的I/O寄存器P0DIR(0XFD)P0口输入输出设置寄存器,0:输入,1:输出程序功能:本设计程序实现按键控制LED灯:开机按键一次,LED3、LED2、LED1依次点亮;再次按键,LED3、LED2、LED1依次熄灭;如此循环。本次实习的程序代码如下所示://BYQIUJIETECH.INC开始PI口初始化S0复位S1继续判断有按键否依次点亮灯3,2,1有按键否S1继续判断依次熄灭灯3,2,1#includeioCC2530.h#defineuintunsignedint#defineucharunsignedchar//定义控制灯的端口#defineRLEDP1_0//定义LED1为P10口控制#defineGLEDP1_1//定义LED2为P11口控制#defineYLEDP1_4//定义LED3为P14口控制#defineKEY1P0_1//定义按键为P01口控制//函数声明voidDelay(uint);//延时函数声明voidInitIO(void);//初始化函数声明voidInitKey(void);//初始化按键函数声明ucharKeyScan(void);//按键扫描函数声明ucharKeyvalue=0;//定义变量记录按键动作uintKeyTouchtimes=0;//定义变量记录按键次数/****************************//按键初始化*****************************/voidInitKey(void){P0SEL&=~0X02;P0DIR&=~0X02;//按键在P01口,设置为输入模式P0INP|=0x02;//上拉}/****************************//初始化程序,将P10、P11、P14定义为输出口,并将LED灯初始化为灭*****************************/voidInitIO(void){P1DIR|=0x13;//P10、P11、P14定义为输出RLED=0;GLED=0;YLED=0;//LED灯初始化为灭}/*****************************************//按键动作记录函数*****************************************/ucharKeyScan(void){if(KEY1==1)//高电平有效{Delay(100);//检测到按键if(KEY1==1){while(KEY1);//直到松开按键return(1);}}return(0);}/***************************//主函数***************************/voidmain(void){InitIO();//初始化LED灯控制IO口InitKey();//初始化按键控制IO口while(1){Keyvalue=KeyScan();//读取按键动作if(Keyvalue==1)//按下按键设置为LED3,LED2,LED1倒序流水闪烁{GLED=!GLED;Delay(20000);YLED=!YLED;Delay(20000);RLED=!RLED;Delay(20000);}}}以下是本次设计的原理图Q2530BB电池板原理图Q2530EB开发板原理图Q2530RF射频板原理图