(创新管理)创新设计(路灯控制系统)

上传人:管****问 文档编号:127096637 上传时间:2020-03-30 格式:DOC 页数:10 大小:69.11KB
返回 下载 相关 举报
(创新管理)创新设计(路灯控制系统)_第1页
第1页 / 共10页
(创新管理)创新设计(路灯控制系统)_第2页
第2页 / 共10页
(创新管理)创新设计(路灯控制系统)_第3页
第3页 / 共10页
(创新管理)创新设计(路灯控制系统)_第4页
第4页 / 共10页
(创新管理)创新设计(路灯控制系统)_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《(创新管理)创新设计(路灯控制系统)》由会员分享,可在线阅读,更多相关《(创新管理)创新设计(路灯控制系统)(10页珍藏版)》请在金锄头文库上搜索。

1、创新设计(学校路灯控制系统)专业班级:08电子(1)班 姓名:吴 剑 学号:200810330126设计简介:本设计是一个通过51单片机来控制路灯亮/灭。例如:晚上19:30路灯亮,到早上6:00熄灭,当时钟走到19:30时路灯点亮,同理在6:00时熄灭,实现自动控制。为了防止偶尔断电或停机后再开机致使设定值丢失,这里使用了AT24C02来记忆设定的定时值。P1口作为控制输出口控制继电器从而达到控制路灯的作用。亮、灭时间可随时调整,提高了控制的灵活性和准确性。为了进行校时及定时值设定,规定了六种工作状态。状态0(status=0):正常走时;状态1(status=1):输入定时1的“分”状态;

2、状态2(status=2):输入定时1的“时”状态;状态3(status=3):输入定时2的“分”状态;状态4(status=4):输入定时2的“时”状态;状态5(status=5):校正走时态。状态0:从左往右六只数码管依次显示走时的时、分、秒。状态1:从左往右的显示依次为:状态1显示(1位);无显示;定时1的“分”显示。后两位无显示。按下S6/S5进行加减。状态2:从左往右的显示依次为:状态2显示(1位);无显示;定时1的“时”显示。后两位无显示。按下S6/S5进行加减状态3:从左往右的显示依次为:状态3显示(1位);无显示;定时2的“分”显示。后两位无显示。按下S6/S5进行加减。状态4

3、:从左往右的显示依次为:状态4显示(1位);无显示;定时2的“时”显示。后两位无显示。按下S6/S5进行加减。状态5:从左往右的显示依次为:状态5显示(1位);无显示;时钟的“分”显示。后两位无显示。按下S6/S5进行加减。对AT24C02内部储存单元规划:80、81单元存放定时1的分、时值;90、91单元存放定时2的分、时值;100号单元存放首次写入的标志,若写入过,则100号单元置数100.框图如下: AT89S51控制中心及其外围电路路灯系统AT24C02电路图如下:源程序如下:#include #define uchar unsigned char#define uint unsign

4、ed intuchar code SEG710=0xa0,0xbe,0x62,0x2a,0x3c,0x29,0x21,0xba,0x20,0x28; /*共阳*/uchar code ACT4=0xbf,0xdf,0xef,0x7f,0xfd,0xfe;sbit output=P10;#define INC_KEY 0xfb /S6按下#define DEC_KEY 0xf7 /S5按下#define OK_KEY 0xef /S4按下#define STATUS_KEY 0xdf /S3按下uchar status;uchar deda,sec,min,hour;uchar set1_dat

5、2,set2_dat2;bit set1_flag,set2_flag;sbit SDA=P20;sbit SCL=P21;static uchar time_cnt; staticbit bit_flag;void delay_icc(int n)int i;for(i=1;in;i+);void delay();void delay1ms(uint z)uint i,j;for(i=0;iz;i+)for(j=0;j110;j+);void start()/开始函数SDA=1;delay();SCL=1;delay();SDA=0;delay();void stop()/停止函数SDA=0

6、;delay();SCL=1;delay();SDA=1;delay();void respons()/应答函数uchar i;SCL=1;delay();while(SDA=1)&(i250)i+;SCL=0;delay();void write_byte(uchar date)/写一字节uchar i,temp;temp=date;for(i=0;i8;i+)temp=temp1;SCL=0;delay();SDA=CY;delay();SCL=1;delay();SCL=0;delay();SDA=1;delay();uchar read_byte()uchar i,k;SCL=0;de

7、lay();SDA=1;delay();for(i=0;i8;i+)SCL=1;delay();k=(k=20)deda=0;sec+; if(sec9)sec=0;min+; if(min9)min=0;hour+; if(hour23)hour=0; /*/void time1() interrupt 3 TH1=(65536-1000)/256; TL1=(65536-1000)%256; time_cnt+; bit_flag=bit_flag; if(status=0)if(time_cnt3)time_cnt=0; elseif(time_cnt9)time_cnt=0;uchar

8、 key()uchar temp;P3=0xff;temp=P3;if(temp!=0xff)delay_icc(30);P3=0xff;temp=P3;return(temp);void pout()/输出判断子函数 if(min=set1_dat0)&(hour=set1_dat1)P1=0x00; if(min=set2_dat0)&(hour=set2_dat1)P1=0xff; /*/void main() uchar key_value; initial(); for(;) key_value=key(); pout(); if(key_value=STATUS_KEY)/如果S4

9、键按下 status+; if(status=6) status=0; EA=0; pout(); write_add(100,88);delay_icc(250); write_add(80,set1_dat0);delay_icc(250); write_add(81,set1_dat1);delay_icc(250); write_add(90,set2_dat0);delay_icc(250); write_add(91,set2_dat1);delay_icc(250); write_add(70,(uchar)set1_flag);delay_icc(250); write_add

10、(71,(uchar)set2_flag);delay_icc(250); EA=1; delay1ms(300); if(key_value=INC_KEY)/如果S1键按下 pout(); switch(status) case 1:if(set1_dat060)set1_dat0+;delay1ms(300);break; case 2:if(set1_dat123)set1_dat1+;delay1ms(300);break; case 3:if(set2_dat060)set2_dat0+;delay1ms(300);break; case 4:if(set2_dat123)set2_dat1+;delay1ms(300);break; case 5:if(min0)set1_dat0-;dela

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 经营企划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号