《按键控制基于CC2530单片机的流水灯.doc》由会员分享,可在线阅读,更多相关《按键控制基于CC2530单片机的流水灯.doc(9页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、【精品文档】如有侵权,请联系网站删除,仅供学习与交流按键控制基于CC2530单片机的流水灯.精品文档.按键控制基于CC2530单片机的流水灯设计 080900922 徐大伟 电子0801通过两个月的专业实习,主要是设计按键来控制基于CC2530单片机的流水灯。本次设计用LED1,LED2,LED3 灯及按键S1 为外设。采用P10、P11、P14 口为输出口,驱动LED1/LED2/LED3,P01 口为输入口,接受按键信号输入(高电平为按键信号)。 以下是对于本次专业实习所用到的模块的介绍。1.高性能2.4G 射频模块 Q2530RFQ2530RF是丘捷技基于TI公司第二代2.4GHz IE
2、EE 802.15.4 / RF4CE/ZigBee的第二代片上系统解决方案CC2530 F256的全功能模块,集射频收发及MCU控制功能于一体。外围原件包含一颗32MHz晶振和一颗32.768KHz晶振及其他一些阻容器件。射频部分采用巴伦匹配和外置高增益SMA天线,接收灵敏度高,发送距离远,空旷环境最大传输距离可达400米。模块引出CC2530所有IO口,便于功能评估与二次开发。2.多功能开发板Q2530EB多功能扩展板Q2530EB 可支持多种射频主控模块(例如Q2530RF等),配置有串口液晶显示接口,USB供电接口,DC 5V电源接口,电池接口,RS232接口,DEBUG接口,五向按键
3、及指示灯,红外遥控信号接收/发射等模块。所有的外设均通过SPI总线/UART /DEBUG等接口与射频模块Q2530RF 相连,并完全受Q2530RF 控制和访问。多功能仿真扩展板Q2530EB 采用三种电源供电方式:DC 5V供电、USB接口供电、电池供电,可在插座P5设置跳线选择,PIN1-PIN2 为电池供电,PIN2-PIN3 为外接直流电源或者USB接口供电。电源开关为P4。 Q2530EB 板卡背面的电池盒可放置3节5号干电池,输出电压3.44.5V,板载电源电路将其调整到+3.3V 稳定的直流电压输出供后级使用。当电池电压低于3.4V 时,应更换电池以保持模块正常工作。 Q253
4、0EB 带有1个DC 5V的电源适配器接口P2和一个USB接口P1,输入电压经过稳压器降压为+3.3V输出供后极使用。Q2530EB 液晶显示模块提供串口控制方式,液晶显示模块放置于P12 的奇数脚侧,且116脚对应于P12的131脚, 与TI 官方SmartRF05EB 不同,我司多功能仿真扩展板Q2530EB 液晶显示模块为选配部件,选用128*64 的点阵图形液晶显示模块,并提供该液晶模块的驱动源代码。对不想在这个环节浪费精力的项目开发者来说,我司已为您准备好TI 公司Z-Stack/Basic RF 等几个平台下的液晶显示驱动文件,您只需将该文件将TI 官方资料中同名文件替换即可。多功
5、能仿真扩展板Q2530EB配置的RS232接口可用于与其他外设进行通讯。电路上采用U5进行RS232电平转换。通过RS232插座P10 与外设相连。 串口设有电源跳线P9,用于设置串口芯片启动和关闭。 串口带有两个收发指示灯D5、D6,分别用于表示串口是否收到或在发送数据,D7为串口电源指示灯。 多功能仿真扩展板Q2530EB 的主控部分为外接的射频控制模块。通过P14、P15 与Q2530RF 控制模块连接。 多功能仿真扩展板Q2530EB提供DEBUG接口P13与仿真器相连,并将相关信号(SPI总线,DEBUG信号等)通过插座P14、P15连接至射频控制模块Q2530RF,这些信号线也可通
6、过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来描述按键动作。当按键朝任何方向移动或被按
7、下时,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。红外遥控信
8、号的输出由射频控制模块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-P
9、IN3 为外接直流电源或USB供电。电源开关为P4, 开关旁有”ON”/”OFF”字符指示。 Q2530BB提供DEBUG接口P10与仿真器相连,相关信号(SPI总线、DEBUG信号等)通过插座P8、P9连接至射频控制模块Q2530RF,也可通过P11进行相关信号的连接与断开选择。用户可在PC上通过仿真器实现对射频控制模块Q2530RF的程序仿真调试和下载。 Q2530BB 同样提供与仿真器配合实现协议分析仪Packet Sniffer的功能。Q2530BB 提供1个轻触按键S2和1个复位按键S1。同时提供两个LED指示灯D1和D2。 Q2530BB 采用一个光敏电阻构成光照度传感器电路,一个
10、温敏电阻构成的温度传感器电路,然后输入IC 进行AD 转换。开发系统提供了zstack组网时,对两路外部传感器电压采样的样例程序。下面是本次设计的流程图:开始PI口初始化S1 继续判断有按键否依次点亮灯3,2,1S0 复位依次熄灭灯3,2,1S1 继续判断有按键否设计相关寄存器:P1,P1DIR,P0SEL,P0INP,P0,P0DIRP0SEL(0XF3) P0 7:0功能设置寄存器,默认设置为普通I/O 口 P0INP(0X8F) P07:0 作输入口时的电路模式寄存器 P0(0X80) P07:0 可位寻址的I/O 寄存器 P0DIR(0XFD) P0口输入输出设置寄存器,0:输入 ,1
11、:输出 程序功能:本设计程序实现按键控制LED 灯:开机按键一次,LED3、LED2、LED1 依次点亮;再次按键,LED3、LED2、LED1 依次熄灭;如此循环。 本次实习的程序代码如下所示:/BY QIUJIE TECH.INC #include #define uint unsigned int #define uchar unsigned char /定义控制灯的端口 #define RLED P1_0 /定义LED1为P10口控制 #define GLED P1_1 /定义LED2为P11口控制 #define YLED P1_4 /定义LED3为P14口控制#define KEY
12、1 P0_1 /定义按键为P01口控制 /函数声明 void Delay(uint); /延时函数声明 void InitIO(void); /初始化函数声明 void InitKey(void); /初始化按键函数声明 uchar KeyScan(void); /按键扫描函数声明 uchar Keyvalue = 0 ; /定义变量记录按键动作 uint KeyTouchtimes = 0 ; /定义变量记录按键次数 /按键初始化 void InitKey(void) P0SEL &= 0X02; P0DIR &= 0X02; /按键在P01口,设置为输入模式 P0INP |= 0x02;
13、/上拉 /初始化程序,将P10、P11、P14定义为输出口,并将LED灯初始化为灭 void InitIO(void) P1DIR |= 0x13; /P10、P11、P14定义为输出 RLED = 0; GLED = 0; YLED = 0; /LED灯初始化为灭 /按键动作记录函数 uchar KeyScan(void) if(KEY1 = 1) /高电平有效 Delay(100); /检测到按键 if(KEY1 = 1) while(KEY1); /直到松开按键 return(1); return(0); /主函数 void main(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射频板原理图
限制150内