简易航标灯报告Word文档下载推荐.docx

上传人:b****4 文档编号:15882107 上传时间:2022-11-16 格式:DOCX 页数:10 大小:237.35KB
下载 相关 举报
简易航标灯报告Word文档下载推荐.docx_第1页
第1页 / 共10页
简易航标灯报告Word文档下载推荐.docx_第2页
第2页 / 共10页
简易航标灯报告Word文档下载推荐.docx_第3页
第3页 / 共10页
简易航标灯报告Word文档下载推荐.docx_第4页
第4页 / 共10页
简易航标灯报告Word文档下载推荐.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

简易航标灯报告Word文档下载推荐.docx

《简易航标灯报告Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《简易航标灯报告Word文档下载推荐.docx(10页珍藏版)》请在冰豆网上搜索。

简易航标灯报告Word文档下载推荐.docx

数量

单位

1

WD990微机电源

2

8051最小系统板

3

键盘显示接口板

4

万用表

5

示波器

6

Proteus7.8SP2仿真软件

7

单芯杜邦线

若干

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

三、实验内容

1、2位拨码开关:

灯质设定(频率与占空比)

2、光敏电阻:

实现光照采集(光照强,电阻小;

光照弱,电阻大)

3、灯驱动:

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

要求:

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

课时数:

2课时

四、预习要求

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

2、编程实现简易航标灯的各项功能;

3、Proteus78仿真说明:

光敏电阻:

TORCH_LDR,2位拨码开关:

DIPSW_2接时不能接上拉电阻,否则仿真不通过;

五、实验步骤

1、硬件:

Proteus仿真电路设计,实物输入、输出信号模拟;

2、软件:

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

3、调试:

反复修改程序,完善功能。

4、仿真完成后有条件的同学可通过端口模拟进行功能验证。

六、实验过程

1、实验原理图

原理图

2、程序部分

#include"

reg51.h"

#defineCOUNT50000//50msgcd:

50ms的倍数

#defineD_OPEN1//开灯

#defineD_CLOSE0//关灯

sbitled=P0^0;

//灯输出控制,高电平有效

sbitOPCON=P1^2;

//光照检测,高电平(亮)

structIALA

{

unsignedcharnum;

//拨码开关状态

unsignedchargcd;

//各时间间隔最大公约数

unsignedcharstate[6];

//无符号字符型时间常数

};

unsignedintState[6];

unsignedcharGetKey(void)

unsignedcharkey;

key=0;

if((P1&

0x01)==0)//低电平有效

key|=0x01;

0x02)==0)

key|=0x02;

return(key);

key|=P1;

returnkey&

0x03;

}

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

conststructIALAIALA4[4]={

{0,10,1,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}

将计数判断点存入数组中

//设定灯质状态,以及各个状态的时间

unsignedintit=0;

voidT0_ISR(void)interrupt1

unsignedcharj;

TH0=(65536-COUNT)/256;

TL0=(65536-COUNT)%256;

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//白天、亮照度

led=D_CLOSE;

}//中断服务程序

voidmain(void)

{

unsignedintsum=0;

unsignedcharkey,pre_key=0,i;

TMOD=(TMOD&

0xf0)|0x01;

ET0=1;

//中断使能

EA=1;

TR0=1;

//T0启动

led=1;

sum=0;

while

(1)

{

key=GetKey();

//获取键值

if(key!

=pre_key)

for(i=0;

i<

i++)

{sum=sum+(IALA4[key].gcd)*(IALA4[key].state[i]);

State[i]=sum;

}

if(sum==1)

led=1;

}

pre_key=key;

3、仿真波形:

第一种状态仿真波形

第二种状态仿真波形

第三种状态仿真波形

第四种状态仿真波形

4、调试过程记录:

调试先在KeiluVision4软件环境下进行程序编写,利用C语言来编写本次实验所需程序。

因为本次实验为简易航标灯的控制设计实验,通过两个拨码开关来实现四种状态的变化。

并且用一个LED灯,来显示航标灯的亮灭规律。

程序编写完成后再生成hex文件在proteus7.8的仿真图中进行模拟仿真,有问题时,再回到KeiluVision4中对程序进行修改。

当在proteus中仿真成功以后,再将程序烧写到开发板上,进行实物调试。

在进行实物调试时需要将输入信号接到示波器上,这样可以精确观察,以确保编写的程序定时的准确,没有误差,达到精确定时的目的。

仿真时发现波形不对,与各种状态的时间不符合,然后我们将程序的50000参数改变为500,这样在仿真的时候就可以观察到完整的波形,也可以进行验证各个状态的参数是否设置正确,最后加以改正,得出了正确的仿真结果,使得程序能正确运行。

七、实验小结

经过好几次实验的训练,我们知道了单片机实验最主要的就是程序的编写以及Keil软件的熟练运用。

在程序编写好的基础上,我们要进行仿真,只有看到仿真效果才能判别出我们程序的对与错,从而才能进行实物上的操作。

如果仿真出不来我们实验所要求的效果,则很大可能就是我们程序的某一部分编写错误,我们要对程序进行修改。

本次试验我们在Keil环境下编写了程序并通过Proteus(SY1_Proteus_test)进行了功能仿真,在面包板上搭建了2个按键控制8个发光二极管的跑马灯的设计,总的来说并不是很难,下次实验我们会继续努力,提前做好充分的预习准备,实验前的预习很重要。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1