嵌入式实验

实验一:LED发光二极管实验
1.实验内容

1.熟悉Zigbee硬件模块相关接口;
2.使用IAR 开发环境设计程序,利用CC2530 的IO口进行LED发光二极管的亮灭操作;

2 .实验环境

1硬件:通用节点一个、USB仿真器、PC机;
2软件:IAR Embedded Workbench for MCS-51;

3) 实验原理
CC2530的IO口相关寄存器。
在CC2530中,我们总共有3个可用的GPIO接口:P0、P1和P2。其中P0和P1的全部8位都有对应的引脚,而P2只有0-4几个引脚可用。这里我们主要对P0和P1共16个引脚进行操作,每个引脚都连接到一个发光二极管的驱动端,这样通过控制P0和P1的每一位,我们可以控制所有的16个发光二极管的亮灭。
P0和P1寄存器
在这里插入图片描述
POSEL和P1SEL寄存器
在这里插入图片描述
在这里插入图片描述
我们查看芯片SN74LVC245的器件手册,可以看到其工作原理框图如上所示。由图中描述可知,OEn信号控制所有引脚的输出使能,DIR信号控制信号驱动方向。我们的原理图中OEn接地,所以相应引脚是输出使能的。DIR(图中的T/Rn)是接高电平的,所以根据其原理框图,信号方向是由A到B。也就是A端的信号(P0.0-P0.7)经过SN74LVC245芯片后控制着B端输出信号(用来驱动D1~D8)。

R1和R2是330欧姆的排阻,每个LED灯串接一个,用来限制通过LED灯的电流,使LED灯工作在正常大小电流下,防止烧毁。

4.实验步骤

l 使用USB 仿真器连接PC 机和通用节点模块,模块电源开关处于中间“OFF”档,使用仿真器给模块供电。

l 启动IAR 开发环境,打开“…\基础传感器实验\1-5基础例程\1-LED”目录下的实验工程。

l 在IAR 开发环境中编译程序、点击 嵌入式实验总结(第一次到第三次) 下载、调试程序。按“F5”使程序运行。

l 观察现象,可以看到发光二极管轮流亮起。

l 使用调试界面上的停止按钮嵌入式实验总结(第一次到第三次) 使程序停止,观察现象是否停止。

l 使用调试界面上的go按钮 嵌入式实验总结(第一次到第三次)(等同“F5”),观察现象。

5.试验现象

开始实验后初始化IO寄存器,所有的灯亮一次长灭一次,接下来一次点亮P0 各位所控灯,在一次点亮P1的各位所控灯。

小组内实验现象总结:安装好驱动后,倒入源代码,发现等全亮并缓速的闪,按F5复位后再按F7,小灯以极快的素的开始闪,再次复位后灯不再闪动但是所有的灯都是亮的。

实验二:串口收发数据实验

实验知识储备(组长在课上做的私人笔记,只作为参考使用):CC2530 与笔记本用 串口转USB(包容性通电协议) RS232 硬件通讯 URAT通用异步接受和发送

CRT(T TX RX )电平转换芯片 电平抖动3~15V

CH430 芯片安装 串口通讯协议 滴答定时器 一秒发送11520位

2500000HZ-0(标准定时器)

1.试验环境

        1.硬件:通用节点或任意传感器节点一个、USB仿真器、USB电缆、PC机;

         2 .软件:IAR Embedded Workbench for MCS-51、串口调试工具;

2.实验内容

1熟悉Zigbee硬件模块相关接口;

2使用IAR 开发环境设计程序,利用CC2530 的串口0 进行数据收发通讯;

3.实验原理、

在CC2530中,我们总共有2个可用的串行接口,这些串行接口可被配置为标准串口或者SPI接口。这个例程中我们只使用USART0,并且工作在UART标准串口模式下。由于每种设置都有2套可用的IO映射,这里根据我们的硬件设置,我们应该使用其默认设置,UART0的TX和RX对应于P0_3和P0_2。

让我们先来了解CC2530的IO口相关寄存器:

PO寄存器
在这里插入图片描述POSEL寄存器
在这里插入图片描述
PODIR寄存器
在这里插入图片描述

部分外设复用IO对应图
在这里插入图片描述

本例程中,程序通过配置以上寄存器将系统主时钟设置为片外 32M晶振。

然后是串行接口外设相关寄存器,通过设置这些寄存器,我们将串行接口设定为预想的模式。

以上列举了和CC2530串口操作定相关的寄存器,其中包括CLKCONCMD控制寄存器,用来控制系统时钟源,SLEEP 寄存器用来控制各种时钟源的开关和状态。PERCFG 寄存器为外设功能控制寄存器,用来控制外设功能模式。U0CSR、U0GCR、U0BUF、U0BAUD 等位串口相关寄存器。
在这里插入图片描述

上图是节点的串口相关电路原理图。在这个图中我们可以看到CH430芯完成了USB转串口的工作,

通过USB电缆连接节点和计算机后,CH430芯片会在计算机中虚拟一个串口,这个串口信号对于图中的CH430—TDX和CH430_RDX,通过J2上的跳线帽与CC2530 的P0.2 和P0.3 引脚相连。

通过之前的IO映射复用图我们可以发现,P0.2和P0.3对应的是USART0在UART模式下的RXT和TXD引脚。

4,。对于程序的一点小解读

程序中主要有这几个函数:

DelayXms(unsigned int Count):延时函数。

InitIO():完成IO初始化功作。首先将系统切换到32Hz主晶振下工作并配置芯片内部频率,因为串口工作波特率较高,芯片对串口信息的处理要求其工作频率也较高,所以需要在32M频率下工作。然后配置相关IO寄存器,包括2个LED灯的控制IO口为输出模式,2个串口收发信号引脚为特殊功能应用模式。

InitUart():完成串口的初始化工作。其中对串口寄存器进行设置,最重要的是串口的波特率设置。我们找到CC2530用户手册的P160页,其中有对波特率相关计算的详细描述。这里归纳其计算公式为:
在这里插入图片描述

其中BAUD_M和BAUD_E为相关寄存器中的设置位。下表归纳了在系统时钟为32MHz频率下的常用波特率对于设置值。

主函数和中断函数的流程为:

开始->初始化IO寄存器-> 初始化串口 ->点亮灯,发送初始信息->等待串口接收中断
进入中断函数服务-> 去得接收字符-> 发送该字符 ->如果发送完成清标志位,控制灯->若未完成发送, 则再次进行发送字符操作。

此为main函数和中断函数的流程图

4.实验步骤

使用USB 仿真器连接PC 机和ZIGBEE模块。将系统配套USB线一端连接PC 机,一端连接ZIGBEE模块的MINI-USB接口上。

**注意:**如果使用通用节点运行本例程,请检查板子上的“TXD”和“RXD”位置跳线帽是否已经插上(右下图圆圈处),下方的电源开关打到“OFF”档,节点使用仿真器连接供电。

如果使用传感器节点运行本例程,请检查板子上的“TXD”和“RXD”位置跳线帽是否已经插上(左下图圆圈处),下方的电源开关打到“OFF”档,节点使用仿真器连接供电。

在这里插入图片描述在这里插入图片描述
接USB电缆时,需要安装USB转串口的驱动程序,在“…\基础传感器实验\1-5基础例程\2-串口”目录下运行程序“CH341SER.EXE”安装驱动,重新拔插USB电缆,待驱动自动加载好,在“我的电脑右键——属性——设备管理器”中可以发现如下虚拟串口条目“USB-SERIAL CH340(COMXX)”。记住这里的串口号码“COMXX”。
启动IAR 开发环境,打开“…\基础传感器实验\1-5基础例程\2-串口”目录下的实验工程。
在IAR 开发环境中编译程序、点击 嵌入式实验总结(第一次到第三次) 下载、调试程序。按“F5”使程序运行。
打开“…\基础传感器实验\1-5基础例程\2-串口”目录下的串口调试程序“串口调试程序(支持中文).EXE”。按照下图设置这几项:串口号选择刚刚在设备管理器中记下的串口号;波特率选择“115200”;数据位8位;停止位1位;校验位none;流控制none等其他均为默认。点击右下角的发送数据按钮,可以看到接受文本框中显示接受到同样的数据。
更换发送文本框“字符串输入框”中的内容,点击发送按钮。可以看到相同的字符串又被返回。

本小组的实验结果截图:按一次reset按键复一次,上面出现一次实验结果
在这里插入图片描述

实验三 按键控制实验

1.试验环境、

1)硬件:传感器节点一个、USB仿真器、PC机;

2)软件:IAR Embedded Workbench for MCS-51;

2.实验内容

1)熟悉Zigbee硬件模块相关接口;
2)使用IAR 开发环境设计程序,利用CC2530 的GPIO读取按键值并相应对进行LED发光二极管的亮灭操作;

3.实验原理

1)  硬件接口原理

如图所示,按键部分的电路图比较简单。UserINT信号连接的是芯片的P2.0引脚,在按键没有被按下时(处于断开状态),经过电阻R9的上拉作用,UserINT信号是处于高电平的,而当按键按下时,UserINT信号直接和地相连,这样处于低电平。在芯片内通过检测P2.0口的输出状态就可以知道按键的状态。电容C4在按键松开的时候起到对输出信号的缓冲作用,这样可以过滤掉部分干扰信号,使得输出信号较为平滑。
在这里插入图片描述
图5-3-1 按键部分电路

程序通过读取P2.0的信息来获得按键的状态,同时对P1上的2个发光二极管进行操作。程序中的长延时是为了使得一定时间内的按下只被识别为一次按下,短延时是为了滤掉可能的干扰信号。

程序的流程为:

开始->初始化IO寄存器->按判断键 若为是则改变灯的状态->长延时->再次进入到判断按键  若为否-为短延时->再次进入到判断按键

4.实验步骤
1)使用USB 仿真器连接PC 机和任意一个传感器节点模块,模块电源开关处于“ON”档,使用电池给模块供电(如电池电量低插上USB电缆,可一边充电一边使用)。
2)启动IAR 开发环境,打开“…\基础传感器实验\1-5基础例程\3-按键控制”目录下的实验工程。
3) 在IAR 开发环境中编译程序、点击 嵌入式实验总结(第一次到第三次) 下载、调试程序。按“F5”使程序运行。
现象,可以看到2个发光二极管都没有亮起。
4)按下模块中间的“KEY”按键,观察2个发光二极管的状态。
5)重复按键操作,尝试长按或短按,观察发光二极管状态。修改程序中的延时数值(下图中红点行)后再重复上面操作,体会不同延时下的效果。

延时语句位置
在这里插入图片描述
5.实验现象

按下触发开关后可以控制最后两个的亮与灭,先按一次亮一个灯,再按一次亮两个灯。

注意不是按复位键。

实验结果截图:

在这里插入图片描述在这里插入图片描述
关注我的微信公众号:hello521day ,大量网络,渗透、编程资料以及ppt等模板等你来取!

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值