好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

创新设计(路灯控制系统).docx

10页
  • 卖家[上传人]:pu****.1
  • 文档编号:536497513
  • 上传时间:2024-01-01
  • 文档格式:DOCX
  • 文档大小:27.60KB
  • / 10 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第1页 共1页创新设计(学校路灯控制系统)专业班级:08电子(1)班 姓名:吴 剑 学号:200810330126设计简介:本设计是一个通过51单片机来控制路灯亮/灭例如:晚上19:30路灯亮,到早上6:00熄灭,当时钟走到19:30时路灯点亮,同理在6:00时熄灭,实现自动控制为了防止偶尔断电或停机后再开机致使设定值丢失,这里使用了AT24C02来记忆设定的定时值P1口作为控制输出口控制继电器从而达到控制路灯的作用亮、灭时间可随时调整,提高了控制的灵活性和准确性为了进行校时及定时值设定,规定了六种工作状态状态0(status=0):正常走时;状态1(status=1):输入定时1的“分”状态;状态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:从左往右的显示依次为:状态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 unsigned intuchar code SEG7[10]={0xa0,0xbe,0x62,0x2a,0x3c,0x29,0x21,0xba,0x20,0x28}; /*共阳*/uchar code ACT[4]={0xbf,0xdf,0xef,0x7f,0xfd,0xfe};sbit output=P1^0;#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[2],set2_dat[2];bit set1_flag,set2_flag;sbit SDA=P2^0;sbit SCL=P2^1;static uchar time_cnt; static bit bit_flag;void delay_icc(int n){int i;for(i=1;i=20){deda=0;sec++;} if(sec>9){sec=0;min++;} if(min>9){min=0;hour++;} if(hour>23){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_cnt>3)time_cnt=0;} else{if(time_cnt>9)time_cnt=0;}}uchar key(){uchar temp;P3=0xff;temp=P3;if(temp!=0xff){delay_icc(30);P3=0xff;temp=P3;}return(temp);}void pout()//输出判断子函数{ if((min==set1_dat[0])&&(hour==set1_dat[1]))P1=0x00; if((min==set2_dat[0])&&(hour==set2_dat[1]))P1=0xff; } /*********************/void main(){ uchar key_value; initial(); for(;;) { key_value=key(); pout(); if(key_value==STATUS_KEY)//如果S4键按下 {status++; if(status==6) {status=0; EA=0; pout(); write_add(100,88);delay_icc(250); write_add(80,set1_dat[0]);delay_icc(250); write_add(81,set1_dat[1]);delay_icc(250); write_add(90,set2_dat[0]);delay_icc(250); write_add(91,set2_dat[1]);delay_icc(250); write_add(70,(uchar)set1_flag);delay_icc(250); write_add(71,(uchar)set2_flag);delay_icc(250); EA=1; } delay1ms(300); }if(key_value==INC_KEY)//如果S1键按下 {pout(); switch(status) {case 1:if(set1_dat[0]<60)set1_dat[0]++;delay1ms(300);break; case 2:if(set1_dat[1]<23)set1_dat[1]++;delay1ms(300);break; case 3:if(set2_dat[0]<60)set2_dat[0]++;delay1ms(300);break; case 4:if(set2_dat[1]<23)set2_dat[1]++;delay1ms(300);break; case 5:if(min<60)min++;delay1ms(300);break default:break; } }if(key_value==DEC_KEY) {pout(); switch(status) {pout。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.