资源描述:
《简易航标灯设计实验》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、常熟理工学院课程设计报告单片机实验报告课程名称单片机技术与应用实验名称简易航标灯设计实验专业光电信息工程班级光电121班学号050312122姓名汪洋实验地点躬行楼528实验日期2015.5.28常熟理工学院课程设计报告简易航标灯设计实验实验目的1、掌握定时器/计数器原理及其应用;2、了解航标灯控制要求;器件清单编号仪器设备数量单位1WD990微机电源1个28051最小系统板1套3键盘显示接口板1块4万用表1套5示波器1台6Proteus7.8sp2仿真软件1份实验流程操作图图1实验操作流程图第8页常熟理工学院课程设计报告实验内容图2简易航标灯控制结构图1、2位拨码开关:灯质设定(频率
2、与占空比)2、光敏电阻:实现光照采集(光照强,电阻小;光照弱,电阻大)3、灯驱动:发光二极管采用12V供电,要实验单片机驱动电路设计,三极管驱动要求:通过光敏电阻采集光照度,白天灯熄灭,黑夜灯按照上表闪烁。1.软件部分C语言程序//No3_HBD.c#include"reg51.h"#include"No3_HBD.h"sbitD=P0^0;//灯输出控制,高电平有效sbitOPCON=P1^2;//光照检测,高电平(亮)//结构体全局变量定义,code:常数structIALAcodeIALA4[4]={//NumgcdON1OFF1ON2OFF2ON3OFF3{0,0,0,0,0,
3、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}};第8页常熟理工学院课程设计报告//结构体全局变量定义structTurnCounter50ms;////////////////////////////////////////////////////////T0_ISR程序///////////////////////////////////////////////////////////////////////////////////////voidT0_ISR(void)interrupt1{s
4、taticunsignedinti=0;unsignedchark;//定义静态变量i,用于统计进入T0中断的次数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]){D=D_OPEN;//点亮LED灯}}if(i==Counter50ms.state[4]){D=D_CLOSE;//熄灭LED
5、灯}if(i>=Counter50ms.state[5]){D=D_OPEN;//点亮LED灯i=0;}i++;//若是黑夜,根据灯质设定控制灯LED灯闪烁}else{//若是白天,熄灭LED灯D=D_CLOSE;i=0;}}第8页常熟理工学院课程设计报告////////////////////////////////////////////////////////按键判断/////////////////////////////////////////////////////////////////////////////////////////unsignedcharGetKey(
6、void){unsignedcharkey;key=0;//此处添加按键Key1、Key0代码if(P1&0x01)//低电平有效key
7、=0x01;if(P1&0x02)key
8、=0x02;return(key);}////////////////////////////////////////////////////////定时器0初始化////////////////////////////////////////////////////////////////////////////////////voidT0_Init(void){TMOD=(TMOD&0xf0)
9、0x01;
10、//定义T0为16位定时方式TH0=(65536-COUNT_50MS)/256;//赋计数初值的高8位TL0=(65536-COUNT_50MS)%256;//赋计数初值的低8位ET0=1;//T0中断使能EA=1;//总中断使能TR0=1;//T0启动}////////////////////////////////////////////////////////主程序////////////////////////////////////