锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

简易航标灯报告.doc

时间:2022-10-31 19:00:00 528二极管

常熟理工学院课程设计报告

PAGE

单片机实验报告

课程名称 单片机技术及应用

实验名称 简易航标灯设计实验

专 业 光电信息工程

班 级 光电121班

学 号 050312113

姓 名 蒯 玄

实验地点 躬行楼528

实验日期 2015.5.28

一、实验目的

掌握定时器/计数器的原理及其应用;

了解航标灯控制要求;

二、实验仪器

编号

仪器设备

数量

单位

1

WD990微机电源

1

2

8051最小系统板

1

3

键盘显示接口板

1

4

万用表

1

5

示波器

1

6

Proteus7.8 SP2仿真软件

1

7

单芯杜邦线

若干

图3-1 简单航标灯控制结构图3。实验内容

图3-1 简单的航标灯控制结构图

1.2位拨码开关:灯质设置(频率与占空比)

2.光敏电阻:实现光收集(光强,电阻小;光弱,电阻大)

3、灯驱动:发光二极管采用12V供电,实验单片机驱动电路设计,三极管驱动

要求:通过光敏电阻采集光照度,白天灯熄灭,黑夜灯按照上表闪烁。

课时数:2课时

四、预习要求

1.完成简易航标灯系统的标准DXP原理图;

编程实现简易航标灯的各种功能;

3、Proteus78模拟说明:光敏电阻:TORCH_LDR,2位拨码开关:DIPSW_2连接时不能连接拉电阻,否则模拟不会通过;

五、实验步骤

硬件:Proteus模拟电路设计、实物输入输出信号模拟;

软件:在Keil 在环境中编写程序,生成.hex文件,通过ProteusProteusV78_Timer0_HBD)功能仿真;

调试:反复修改程序,改进功能。

模拟完成后,有条件的学生可以通过端口模拟进行功能验证。

六、实验过程

1.实验原理图

原理图

2、程序部分

#include "reg51.h"

#define COUNT 50000 //50ms gcd:50ms的倍数

#define D_OPEN 1 //开灯

#define D_CLOSE 0 //关灯

sbit led=P0^0; ///灯输出控制,高电平有效

sbit OPCON=P1^2; ///光照检测 ,高电平(亮)

struct IALA

{

unsigned char num; ///拨码开关状态

unsigned char gcd; ///每个时间间隔最大公约数

unsigned char state[6]

};

unsigned int State[6];

unsigned char GetKey(void)

{

unsigned char key;

key=0;

if((P1&0x01)==0) ///低电平有效

key|=0x01;

if((P1&0x02)==0)

key|=0x02;

return(key);

key|=P1;

return key&0x03;

}

//获取键值,两个开关有四种状态,即00、01、10、11,可获得0、1、2、3

const struct IALA IALA4[4]={

{0,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

{1,10,1,3,0,0,0,0},

{2,10,1,1,7,0,0}

{3,10,1,2,1

};

将计数判断点存储在数组中

///设置灯质状态和各种状态的时间

unsigned int it=0;

void T0_ISR(void) interrupt 1

{

unsigned char j;

TH0=(65536-COUNT)/256;

TL0=(65536-COUNT)%6;

if(OPCON==0)//黑夜,暗照度

{

it ;

for(j=0;j<6;j )

{ if(it==State[j])

led=(j%2)?D_OPEN:D_CLOSE; ///判断是开灯还是关灯

}

if(it>=State[5])

{

it=0;

}

}

else //白天、亮照度

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章