-
上海电力学院
飞思卡尔单片机应用实验报告
题目:
路灯控制器
专业:
电子信息工程
班级:
姓名:
学号:
一、实验要求:
1.
实现路灯控制器的功能;
2.
至少包含三个模块。
二、实验设备:
机
一台
2.S12
嵌入式开发系统
一台
一个
4
.串行通信线
一根
5
.<
/p>
4
连排共阴极
8
段数码管
一个
三、实验原理:
< br>三个模块分别是定时器模块、
LED
模块和小灯模块。通
过时间的变化来达到我改
变灯亮暗的目的。
其中,
定时器进行时间的计算,
分为
6
点
-18
点和
18
点
-6
点两段,
而小灯就是由
这两段时间产生亮暗的现象(当时间为
6
:
00-18
:
00
时,小灯的状<
/p>
态为暗,
当时间为
18
< br>:
00-6
:
00
时小灯的状态为亮)
。
实验中要确认好相应代码,<
/p>
控制小灯亮红灯或者亮绿灯。
连线如下
Vcc
PTA0 PTA1 PTA2 PTA3
PTA4 PTA5 PTA6 PTA7
导线接插点
PTA
< br>口(
KEY1-8
)
四、实验内容:
< br>设定
LED
灯的前两位为小时项,后两位为分钟项,当时
间为
06
:
00-18
:
00
时,小
灯的状态为暗,
当时间为
18
:
00-06
:
00
时小灯的状态为亮。
五、实验程序:
1.
主函数:
//
总头文件
#include
//
主函数
int main()
{
DISABLE_INTERRUPTS;
//
禁止总中断
//1.
芯片初始化
MCUInit();
//2.
模块初始化
SCIInit();
//(1)
串行通信初始化
LEDInit();
//(2)
LED
控制引脚初始化
TimerInit();
//(3)
定时器
1
初始化
//3.
内存初始化
//(1)
时分秒
< br>缓存初始化
(00:00:00)
time[0] = 0;
time[1] = 0;
time[2] = 0;
time[3] = 0;
//(2)
LED
显示缓存初始化为
LEDbuf[0] = '0';
LEDbuf[1] = '0';
LEDbuf[2] = '0';
LEDbuf[3] = '0';
//4.
LED
初始显示
LEDShow(LEDbuf);
//5.
开放各模块中断
EnableSCIReInt;
//(1)
开放
< br>SCI
接收中断
EnableT1OVInt;
//(2)
开放定时器
1
溢出中断
//6.
开放总中断
ENABLE_INTERRUPTS;
//
总循环
DDRA=0xff;
PORTA=0xaa;