简易航标灯设计实验.doc_第1页
简易航标灯设计实验.doc_第2页
简易航标灯设计实验.doc_第3页
简易航标灯设计实验.doc_第4页
简易航标灯设计实验.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

常熟理工学院课程设计报告 单片机实验报告 课程名称 单片机技术与应用 实验名称 简易航标灯设计实验 专 业 光电信息工程 班 级 光电121班 学 号 050312109 姓 名 冯晓飞 实验地点 躬行楼528 实验日期 2015. 5 .28 简易航标灯设计实验一、实验目的1、掌握定时器/计数器原理及其应用;2、了解航标灯控制要求;二、器件清单编号仪器设备数量单位1WD990微机电源1个28051最小系统板1套3键盘显示接口板1块4万用表1套5示波器1台6Proteus7.8 SP2 仿真软件1份7单芯杜邦线若干根三、实验流程操作图 图一实验操作流程图四、实验内容1、2 位拨码开关:灯质设定(频率与占空比)2、灯驱动:发光二极管采用12V 供电,要实验单片机驱动电路设计,三极管驱动要求:通过光敏电阻采集光照度,白天灯熄灭,黑夜灯按照上表闪烁。1.软件部分 C语言程序 No3_HBD.c#include reg51.h#include No3_HBD.hsbit D=P00; /灯输出控制,高电平有效sbit OPCON=P12; /光照检测 ,高电平(亮) /结构体全局变量定义,code:常数struct IALA code IALA44=/Num gcd ON1 OFF1 ON2 OFF2 ON3 OFF30, 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 1static 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=Counter50ms.state5) D=D_OPEN; /点亮LED灯 i=0;i+;/若是黑夜,根据灯质设定控制灯LED灯闪烁 else /若是白天,熄灭LED灯 D=D_CLOSE; i=0; /按键判断/unsigned char GetKey(void)unsigned char key; key=0;if(P1&0x01)key=key|0x01;if(P1&0x02)key=key|0x02; /此处添加按键Key1、Key0代码return(key); /定时器0初始化/void T0_Init(void)TMOD=(TMOD&0xf0)|0x01;/定义T0为16位定时方式TH0=(65536-COUNT_50MS)/256;/赋计数初值的高8位TL0=(65536-COUNT_50MS)%256;/赋计数初值的低8位ET0=1;/T0中断使能EA=1; /总中断使能TR0=1; /T0启动/主程序/void main(void)unsigned char key,pre_key=0,i;unsigned int sum;T0_Init();D=0;while(1) key=GetKey(); /获取key1、Key0特征码if(key!=pre_key)/若有新的按键,载入控灯时间 sum=0; for(i=0;i6;i+) sum=sum+IALA4key.gcd*IALA4key.statei;Counter50ms.statei=sum; pre_key=key;No3_HBD.h#ifndef _No3_HBD_#define _No3_HBD_#define COUNT_50MS 50000 /50ms gcd:50ms的倍数#define D_OPEN 1 /开灯#define D_CLOSE 0 /关灯/结构体类型声明1struct IALAunsigned char num; /拨码开关状态unsigned char gcd; /各时间间隔最大公约数unsigned char state6;/无符号字符型时间常数;/结构体类型声明2,结构体变量一般不放在.h文件中struct Turn unsigned int state6; unsigned char GetKey(void); /获取键值函数声明 void T0_Init(void);/定时器初始化函数声明#endif 2.实物部分 本次实验所采用的硬件都是老师提供的,所以不存在原理问题,不存在硬件问题。实验器材上,不能通过按键来模拟信号的高低。通过杜邦线的接地不接地来模拟两个输入0 ,1。总体来说,可以恰当的实现4种灯的闪烁。当然不能单纯的通过肉眼来发现,可以通过示波器来看每个波形的周期来验证程序的正确性,肯定的一点示波器在单片机的实验当中,有着很大的适用面。3.调试部分调试采用ISPlay1.3进行程序烧写,小心操作并将烧写好的芯片放到设计系统中进行实物验证原理图所对应的实物图,及时发现处理问题。调试过程中,要注意模拟仿真的过程。分模块的设计理念对于从事这行业的人来说是有用的。这次实验用到的程序按键判断,定时器初始化,主程序可以在proteus7.0下进行仿真,可以分模块的进行仿真,在自己的操作过程中,先对按键判断进行验证,参考教师提供的程序,基本上着一个模块是没有问题的,同时软件和硬件是要结合的。主程序的功能才是一个重点,需要考虑到每个模块的调用。定时器的初始化有固定的格式,但还是要对题目有一些的了解,不然也不好分析延时的数值的大小。这部分的重点需要好好把握和学习。五、实验小结通过这次实验,结合所学知识,完成了简易航标灯设计实验,学习掌握定时器/计数器原理及其应用;了解航标灯控制要求;更进一步地掌握Proteus78单片机仿真软件的使用;掌握Keil uVision环境下工程项目设计方法与文件管理;熟悉按键判断与定时器/计数器的使用与功能验证。采用工程设计的方法完成了程序设计,经过调试与多次求助改正,完成了程序的编写,理解了程序的思路,然后在通过Keil uvision 软件生成.hex文件,用Proteus软件对其进行仿真验证,实验的过程并不是一帆风顺,我们面临了很多的问题,得到了老

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论