《物联网技术创新应用》项目4信号指示灯控制_第1页
《物联网技术创新应用》项目4信号指示灯控制_第2页
《物联网技术创新应用》项目4信号指示灯控制_第3页
《物联网技术创新应用》项目4信号指示灯控制_第4页
《物联网技术创新应用》项目4信号指示灯控制_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

信号指示灯控制InternetofThings项目场景说明单片机通用I/OCC2530通用I/O项目实践项目场景家用电器、仪表仪器这些常见的设备上当具备多种功能时,会用信号指示灯标示当前系统的功能与状态,例如图示的安防设备控制器上面具有电源、报警、设置、电话四个系统指示灯,通过这四个灯用户可以方便直观的设置与管理系统。任务目标使用CC2530单片机模拟某设备的信号指示灯控制,通过编辑程序使用CC2530单片机的通用I/O实现对连接在CC2530单片机引脚上按键和指示灯进行状态读取和实时控制,CC2530单片机通过读取按键的电平状态,当状态被改变时控制指示灯的亮灭来反应设备工作状态。通用I/O驱动概述I/O也称为GeneralPurposeInputOutput(通用输入/输出)简称为GPIO、I/O,是单片机通用输入输出接口的总称。弱驱动I/O弱驱动电路是指通用I/O管脚输出的电流较弱无法对相关的控制设备提供足够的驱动电流。强驱动I/O强驱动I/O顾名思义就是驱动能力较强的I/O,通常情况下在输入与芯片电源相同的电压时,强驱动I/O可以驱动功率更大的外界设备。高压I/O与低压I/O单片机通用I/O输出电压有两种,一种为比较早期的传统8051单片机的5V通用I/O,另一种为通用型的3.3V通用I/O。通用I/O模式概述通用I/O在工作时通常是三种状态,分别是输入状态,输出状态和高阻态,这三种状态的使用和功能都有所不同,在设置时需要根据实际实用配置。输入状态输入模式是指通用I/O管脚被配置为接受外界电平信息的模式,通常读取的信息为电平信息,即高电平为1,低电平为0。输出状态输出模式是指通用I/O口配置为主动向外部输出电压的状态,通过向外输出电压可以实现对开关类设备进行主动控制。高阻态高阻态模式是指,通用I/O管脚内部电阻的阻值无限大,大到几乎占有外界输出的全部电压。通用I/O的分配原理分组的依据有两点,第一点是单片机内核的位宽度,第二点是单片机I/O功能的多寡。内核位宽8051单片机是8位的单片机MSP430单片机是16位单片机I/O功能8051单片机的I/O功能只有输入输出两种模式STM32通用I/O的Bit位通常在4个左右GPIO_Port与GPIO_PinGPIO_Port的设计受到商业产品及片上资源的限制而设计的总的管脚通道,而通常GPIO_Pin是挂载在GPIO_Port通道上的,其数量与单片机位宽与管脚功能密切相关。CC2530通用I/O介绍CC2530的I/O用作通用I/O时,引脚可以组成3个8位端口,端口0、端口1和端口2,表示为P0、P1和P2。其中,P0和P1是完全的8位端口,而P2仅有5位可用。所有的端口均可以通过SFR寄存器P0、P1和P2位寻址和字节寻址。每个端口引脚都可以单独设置为通用I/O或外部设备I/O。CC2530通用I/O寄存器介绍实现I/O的配置使用,只需要配置P1DIR(端口1方向寄存器)和P1SEL(端口1功能选择寄存器)即可。00000007654321项目分析信号灯的控制信号灯的控制方式为对电平输出的主动控制即:高电平输出和低电平输出,具体的输出方式要参考信号灯的相关原理图。信号灯LED1与LED2如图。CC2530的I/O用作通用I/O时,引脚可以组成3个8位端口,端口0、端口1和端口2,表示为P0、P1和P2。项目分析按键的状态检测按键的状态检测方式主要是使用了CC2530单片机通用I/O的引脚电平读取功能,相关引脚为高电平时引脚读取的值为1,反之则为0。程序流程图程序流程设计中首先配置LED灯和按键对应的通用I/O从而初始化LED和按键外设。主循环中不断检测按键的状态,当检测到按键按下时,延时消抖等待10ms,待电平稳定后如果按键任就处于按下状态则确定按键被按下,等待按键抬起。检测到按键抬起后执行LED灯的反转控制操作完成对LED灯的控制。项目实现LED灯初始化LED灯初始化的方式为配置P1SEL寄存器为通用I/O模式,配置P1DIR寄存器为输出模式。LED灯初始化代码如下:voidled_io_init(void){P1SEL&=~0x03;//配置控制管脚(p1.0,p1.1)为通用IO模式P1DIR|=0x03;//配置控制管脚(p1.0,p1.1)为输出模式LED2=OFF;//初始状态为关闭LED1=OFF;//初始状态为关闭}项目实现按键初始化按键初始化的方式为配置P1SEL寄存器为通用I/O模式,配置P1DIR寄存器为输入模式。按键初始化代码如下:voidkey_init(void){P1SEL&=~0x0C;//配置按键检测管脚(p1.2,p1.3)为通用IOP1DIR&=~0x0C;//配置按键检测管脚(p1.2,p1.3)为通用输出模式}项目实现主程序led_io_init();//LED的控制端口初始化key_io_init();//按键的控制端口初始化LED2=ON;//打开LED0while(1){ if(KEY1==ON){//按键按下,改变2个LED灯状态

delay_ms(10);//按键防抖10ms if(KEY1==ON){//按键按下,改变2个LED灯状态

while(KEY1==ON);//松手检测

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论