实验3 CC2530 T1查询方式控制LED实验

  • 格式:docx
  • 大小:231.35 KB
  • 文档页数:4
}ห้องสมุดไป่ตู้
if(TempFlag)
{
YLED =!YLED;
RLED = !RLED;
Delay(6000);
}
}
}
实验
一、实验目的:
1、熟练掌握IAR编程环境;
2、掌握IAR程序调试方法;
3、掌握CC2530T1查询工作方式编程;
4、掌握CC2530程序烧写和运行方法。
二、实验内容及基本要求:
【实验1】IAR编写LED控制实验
(1)、LED原理图参见图1,图1中采用共阳极接法,需要使LED1和LED2均能正常点亮,
void Initial(void)
{
//初始化P1
P1DIR = 0x03;//P10 P11为输出
RLED = 1;
YLED = 1;//灭LED
//用T1来做实验
T1CTL = 0x3d;//通道0,中断有效,128分频;自动重装模式(0x0000->0xffff);
}
/***************************
for(i=0;i<n;i++);
for(i=0;i<n;i++);
for(i=0;i<n;i++);
for(i=0;i<n;i++);
for(i=0;i<n;i++);
}
/****************************
//初始化程序
***************************/
CC2530是以8051为内核的SOC,在编程上与传统的8051单片机编程很接近,其引脚图参见图2。CC2530由于是SOC,因此其I/O口是可编程的,因此可以通过P1SEL寄存选择每一个引脚功能,在芯片初始化时系统默认P1口为通用I/O引脚,用户可以通过编程设置为其它功能,当设置为通用I/O口时,不需要对P1SEL寄存进行配置;只需要对P1DIR寄存器进行配置即可,P1DIR寄存器个数参见图4,对应位为0表示输入,为1表示输出,对于本应用,可以设置为输出格式。
图6、IRCON寄存器各位定义
(3)、参考程序
#include <ioCC2530.h>
#define uint unsigned int
#define uchar unsigned char
#define RLED P1_0
#define YLED P1_1
uint counter=0;//统计溢出次数
//主函数
***************************/
void main()
{
Initial();//调用初始化函数
RLED = 0;//点亮红色LED
while(1)//查询溢出
{
if(IRCON > 0)
{
IRCON = 0; //清溢出标志
TempFlag = !TempFlag;
图3、P1口引脚功能选择
图4、P1口方向选择
CC2530定时器T1有4种工作方,详细请参见T1控制寄存器各位定义图5。时钟分频系数可编程控制。定时器可工作于查询方式和中断方式。本实验仅讨论查询工作方式,查询工作方式需要查询定时器溢出状态。定时器溢出会影响IRCON中的定时器T1溢出标志,因此当定时器T1定时溢出时,表示定时时间结束,可以通过程序查询IRCON中的定时器T1溢出标志来判断T1是否定时结束,IRCON各位定义参见图6。
图5、CC2530定时器T1控制寄存器各位定义
(2)、启动IAR编程软件,在D盘创建一个文件夹T1Poll,然后打开IAR工程菜单,创建T1Poll空工程,然后创建main.C文件,添加到该工程中。编译该工程,在D:\T1Poll\Debug\Exe下就会找到T1Poll.hex文件,连接C51RF-3仿真器,启动桌面SmartRF Flash Programmer程序(为了保证原来CC2530中程序不受破坏,请先读出CC2530中的Flash镜像文件,以便实验做完后,恢复该程序)。找到Flash imag栏,点击“…”按钮,浏览到D:\T1Poll\Debug\Exe,找到T1Poll.hex文件,Actions设置为Erase and program,点击Perform Actions按钮开始编程,程序编写完成后,观察CC2530模块LED灯变化。
uint TempFlag;//用来标志是否要闪烁
void Initial(void);
void Delay(uint);
/****************************
//普通延时程序
***************************/
void Delay(uint n)
{
uint i;
图1、CC2530模块LED原理图
智能在LED1和LED2的限流电阻的另一端接电平。完整的CC2530实验板LED灯电路原
图2、CC2530引脚图
理图,参见CC2530模块.pdf文件,从图中可以看出LED1和LED2的限流电阻的另一端接CC2530P1.0和P1.1两个引脚,因此要使这两个灯点亮,仅仅需要将P1.0和P1.1两个引脚设置为低电平即可,这样形成灌电流,点亮LED,反之LED灯就会熄灭。