晞敦2Y工年沈
单片机实验报告
课程名称 单片机技术与应用
实验名称 简易航标灯设计实验
专 业 光电信息工程
班级 光电121班
学号 050312109
姓 名 冯晓飞
实验地点躬行楼528
实验日期
2015. 5
.28
简易航标灯设计实验
一、实验目的
1、掌握定时器/计数器原理及其应用;
2、了解航标灯控制要求;
二、器件清单
编亏
仪器设备
数量
单位
1
WD990微机电源
1
个
2
8051最小系统板
1
套
3
键盘显示接口板
1
块
4
万用表
1
套
5
示波器
1
台
6
Proteus7.8 SP2 仿真软
件
1
份
7
单芯杜邦线
根
三、实验流程操作图
图一实验操作流程图
四、实验内容
ttffj 1 质设定
J *
光照采集
?
MCU
>
发光二极管
图3-1简易航标灯控制结构图
1、2位拨码开关:灯质设定(频率与占空比)
拨码
状态1
状态2
状态3
暗1
—
*
暗
0
全亮
1
0.5S
1. 5S
0
0 二
0 」
0
2
「
0. 5S
0. 5S
0.5S
3. 5S
「
L 0」
」0
3
i 0.5S
1S
0. 5S
1S
0. 5S
2. 5S
2、灯驱动:发光二极管采用12V供电,要实验单片机驱动电路设计,三极管驱动 要求:通过光敏电阻采集光照度,白天灯熄灭,黑夜灯按照上表闪烁。
1.软件部分
C语言程序
No3_HBD.c
#include "reg51.h"
#include "No3_HBD.h"
sbit D=P0A0;〃灯输出控制,高电平■有效
sbit OPCON=P1A2;〃光照检测 ,高电平(亮)
〃结构体全局变量定义,code :常数
struct IALA code IALA4[4]=(
//Num gcd ON1 OFF1 ON2 OFF2 ON3 OFF3
(0, 0,0,0,0,0,0,0}, 〃全亮
{1,10,1,3,0,0,0,0},
{2,10,1,1,1,7,0,0},
{3,10,1,2,1,2,1,5}
};
〃结构体全局变量定义
struct Turn Counter50ms;
///
/T0_ISR 程序
///
void T0_ISR(void) interrupt 1
{
static unsigned int i=0;〃定义静态变量i,用于统计进入T0中断的次数
unsigned char k;
TH0=(65536-COUNT_50MS)/256;〃计数初值重载
TL0=(65536-COUNT_50MS)%256;
if(OPCON==0)//
{ for(k=0;k<2;k++)
{
if(i==Counter50ms.state[2*k])
{
D=D_CLOSE; 〃熄灭 LED 灯
}
if(i==Counter50ms.state[2*k+1])