教学内容与重难点
【内容01】掌握CC2530通用I/O输出端口的初始化。
【内容02】理解跑马灯的控制原理与代码设计思路。
【内容03】完成实训项目:LED跑马灯的实现。
——–学生实践实操,老师讲解演示。
【内容04】专创融合专题。
【重点】实训项目: LED跑马灯的实现。
【难点】功能选择寄存器PxSEL和方向寄存器PxDIR的正确设置。
教学单元核心内容与学习资源
实训案例:LED跑马灯的实现
新建工程,编写代码,在XMF09B/XMF09C开发套件上,完成以下任务:
1-设计端口初始化函数Init_Port(),配置D3、D4、D5、D6灯的引脚。
2-设计跑马灯函数LED_Running(),实现D4点亮,延时,D3点亮,延时,D6点亮,延时,D5点亮,延时;D4熄灭,延时,D3熄灭,延时,D6熄灭,延时,D5熄灭,延时。
3-在main()函数中,反复调用LED_Running(),实现跑马灯功能。
#include "ioCC2530.h"
#define D3 P1_0
#define D4 P1_1
#define D5 P1_3
#define D6 P1_4
/*=======================简单的延时函数========================*/
void Delay(unsigned int t)
{
while(t--);
}
/*=======================端口初始化函数========================*/
void Init_Port()
{
//1-设置4个引脚为通用I/O
P1SEL &= ~0x1B; //0001 1011 --> 1110 0100
//2-设置4个引脚的方向:输出
P1DIR |= 0x1B; //0001 1011
//3-关闭4个LED灯
D3 = 0;
D4 = 0;
D5 = 0;
D6 = 0;
}
/*=======================跑马灯控制函数========================*/
void LED_Running()
{
D4 = 1; //点亮D4灯
Delay(60000); //延时
D3 = 1; //点亮D3灯
Delay(60000); //延时
D6 = 1; //点亮D6灯
Delay(60000); //延时
D5 = 1; //点亮D5灯
Delay(60000); //延时
D4 = 0; //熄灭D4灯
Delay(60000); //延时
D3 = 0; //熄灭D3灯
Delay(60000); //延时
D6 = 0; //熄灭D6灯
Delay(60000); //延时
D5 = 0; //熄灭D5灯
Delay(60000); //延时
}
/*==========================主函数============================*/
void main()
{
Init_Port(); //初始化4个LED灯的引脚
while(1)
{
LED_Running(); //循环实现跑马灯的控制
}
}