![毕业设(论文)-多功能数字闹钟系统设计与实现_第1页](http://file4.renrendoc.com/view/e7ed4180f8f5e55b4464af9694c8e56a/e7ed4180f8f5e55b4464af9694c8e56a1.gif)
![毕业设(论文)-多功能数字闹钟系统设计与实现_第2页](http://file4.renrendoc.com/view/e7ed4180f8f5e55b4464af9694c8e56a/e7ed4180f8f5e55b4464af9694c8e56a2.gif)
![毕业设(论文)-多功能数字闹钟系统设计与实现_第3页](http://file4.renrendoc.com/view/e7ed4180f8f5e55b4464af9694c8e56a/e7ed4180f8f5e55b4464af9694c8e56a3.gif)
![毕业设(论文)-多功能数字闹钟系统设计与实现_第4页](http://file4.renrendoc.com/view/e7ed4180f8f5e55b4464af9694c8e56a/e7ed4180f8f5e55b4464af9694c8e56a4.gif)
![毕业设(论文)-多功能数字闹钟系统设计与实现_第5页](http://file4.renrendoc.com/view/e7ed4180f8f5e55b4464af9694c8e56a/e7ed4180f8f5e55b4464af9694c8e56a5.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Abstract
参考文献[1]王云涛,王楠.浅谈多功能数字钟的设计[J].山东电力高等专科学报.2005.4(8):71-72[2]Yang.Y.,Yi.J.,Woo,Y.Y.,andKim.B.:‘OptimumdesignforlinearityandefficiencyofmicrowaveDohertyamplifierusinganewloadmatchingtechnique’,Microw.J.,2001,44,(12),pp.20–36
[3]赵琳,王璐,闵莉.基于单片机的时钟校时系统设计[J].科技广场.2009.1:192-194[4]V.Yu.Teplov,A.V.Anisimov.ThermostattingSystemUsingaSingle-ChipMicrocomputerandThermoelectricModulesBasedonthePeltierEffect[J],2002
[5]张开碧,王浩,曾勇斌.基于STC89C52单片机的多功能数字钟的设计[J].科技信息.2010.35:7[6]朱华光.LCD1602编程中一些问题怎样解决[J].电脑编程技巧与维护.2010.15:90-91[7]黄克亚.基于液晶显示器的数字电子钟设计[J].科学之友:下旬.2010.10:33-34[8]陈洪财.基于单片机的模块化教学研究[N].电气电子教学学报.2010.32(6)[9]袁旭军,庄松林.单片机复位电路的可靠性分析[J].电子技术应用.2002.11:19-21[10]张开碧,王浩,曾勇斌.基于STC89C52单片机的多功能数字钟的设计[J].科学之友:下旬.2010.(35):7[11]李晓静等.液晶显示控制器与单片机的接口及编程[J],电子技术,2004年第6期[12]赵德生,李德仓.基于ATS89C52的数字电子钟系统的设计与实现[J].铁路计算机应用.2010.19(12):43-46[13]向继文等.基于AT89C51的电子钟系统设计[J],机电产片开发与创新,2007年第2期[14]冯育长.单片机系统设计与实例分析[M],西安:西安电子科技大学出版社,2007.5[15]万胜前.基于KeilC51软件的电子钟设计与制作[J],鄂州大学学报,2007年第2期[16]刘军等.单片机原理与接口技术[M],上海:华东理工大学出版社,2006.2[17]基于KeilC51软件的电子钟设计与制作[J],鄂州大学学报,2007年第2期附录
附录附录1:部分程序代码#include<reg52.h>#include<intrins.h>//包含_nop_()函数定义的头文件#include"src.h"#include"delay.h"#include"init.h"#include"keyscan.h"#include<string.h>#include<stdio.h>uchars1num,shi,fen,miao,show_flag,set_flag=0,alarm_flag=1,as=0,am=0,ah=0;uchards=1,dm=0,dh=0,djs_flag=0;ucharU8FLAG,U8comdata,U8temp;ucharU8T_data_H_temp,U8T_data_L_temp,U8RH_data_H_temp,U8RH_data_L_temp,U8checkdata_temp;ucharShiDu=23,WenDu=35; //定义温,湿度voidRH(void);bitBusyTest(void){ bitresult; RS=0;//根据规定,RS为低电平,RW为高电平时,可以读状态 RW=1; E=1;//E=1,才允许读写 _nop_();//空操作 _nop_(); _nop_(); _nop_();//空操作四个机器周期,给硬件反应时间 E=0; returnresult;}voidwrite_com(ucharcom)//液晶写命令函数{while(BusyTest()==1);//如果忙就等待 RS=0;//根据规定,RS和R/W同时为低电平时,可以写入指令 RW=0; E=0;//E置低电平(写指令时,//就是让E从0到1发生正跳变,所以应先置"0" _nop_(); _nop_();//空操作两个机器周期,给硬件反应时间 LCD_PORT=com;//将数据送入P0口,即写入指令或地址 _nop_(); _nop_(); _nop_(); _nop_();//空操作四个机器周期,给硬件反应时间 E=1;//E置高电平 _nop_(); _nop_(); _nop_(); _nop_();//空操作四个机器周期,给硬件反应时间 E=0;//当E由高电平跳变成低电平时,液晶模块开始执行命令}voidwrite_date(uchardate) //液晶写数据函数{ while(BusyTest()==1);//如果忙就等待 RS=1;//RS为高电平,RW为低电平时,可以写入数据 RW=0; E=0;//E置低电平(写指令时,,//就是让E从0到1发生正跳变,所以应先置"0" LCD_PORT=date;//将数据送入P0口,即将数据写入液晶模块 _nop_(); _nop_(); _nop_(); _nop_();//空操作四个机器周期,给硬件反应时间 E=1;//E置高电平 _nop_(); _nop_(); _nop_(); _nop_();//空操作四个机器周期,给硬件反应时间 E=0;//当E由高电平跳变成低电平时,液晶模块开始执行命令}voidwrite_sfm(ucharadd,uchardate)//写时分秒函数{ ucharshi,ge; shi=date/10; ge=date%10; write_com(0x80+0x40+add); //设置显示位置 delay(5); write_date(0x30+shi); //送去液晶显示十位 delay(5); write_date(0x30+ge); //送去液晶显示个位 delay(5);}voidshow_time(){ staticucharo_shi,o_fen,o_miao; staticucharo_as=0,o_am=0,o_ah=0; staticucharo_ds=0,o_dm=0,o_dh=0; if(!set_flag) { if(gn_flag==1) { if(o_shi!=shi){write_sfm(SHI_ADDR,shi);o_shi=shi;} if(o_fen!=fen){write_sfm(FEN_ADDR,fen);o_fen=fen;} if(o_miao!=miao){write_sfm(MIAO_ADDR,miao);o_miao=miao;} } elseif(gn_flag==3) { if(o_dh!=dh){write_sfm(SHI_ADDR,dh);o_dh=dh;} if(o_dm!=dm){write_sfm(FEN_ADDR,dm);o_dm=dm;} if(o_ds!=ds){write_sfm(MIAO_ADDR,ds);o_ds=ds;} }elseif(gn_flag==4) //湿度 { write_sfm(SHI_ADDR,ShiDu); } elseif(gn_flag==5) //湿度 { write_sfm(SHI_ADDR,WenDu); } } else { if(gn_flag==1) //设置时间 { if(o_shi!=shi) { o_shi=shi; write_com(0x06); delay(5); write_sfm(SHI_ADDR,shi); delay(5); write_com(0x80+0x40+SHI_ADDR); delay(5); write_com(0x0f); delay(5); } if(o_fen!=fen) { o_fen=fen; write_com(0x06); delay(5); write_sfm(FEN_ADDR,fen); delay(5); write_com(0x80+0x40+FEN_ADDR); delay(5); write_com(0x0f); delay(5); } if(o_miao!=miao) { o_miao=miao; write_com(0x06); delay(5); write_sfm(MIAO_ADDR,miao); delay(5); write_com(0x80+0x40+MIAO_ADDR); delay(5); write_com(0x0f); delay(5); } } elseif(gn_flag==2) //设置闹钟 { if(o_ah!=ah) { o_ah=ah; write_com(0x06); delay(5); write_sfm(SHI_ADDR,ah); delay(5); write_com(0x80+0x40+SHI_ADDR); delay(5); write_com(0x0f); delay(5); } if(o_am!=am) { o_am=am; write_com(0x06); delay(5); write_sfm(FEN_ADDR,am); delay(5); write_com(0x80+0x40+FEN_ADDR); delay(5); write_com(0x0f); delay(5); } if(o_as!=as) { o_as=as; write_com(0x06); delay(5); write_sfm(MIAO_ADDR,as); delay(5); write_com(0x80+0x40+MIAO_ADDR); delay(5); write_com(0x0f); delay(5); } } elseif(gn_flag==3)//设置倒计时 { if(o_dh!=dh) { o_dh=dh; write_com(0x06); delay(5); write_sfm(SHI_ADDR,dh); delay(5); write_com(0x80+0x40+SHI_ADDR); delay(5); write_com(0x0f); delay(5); } if(o_dm!=dm) { o_dm=dm; write_com(0x06); delay(5); write_sfm(FEN_ADDR,dm); delay(5); write_com(0x80+0x40+FEN_ADDR); delay(5); write_com(0x0f); delay(5); } if(o_ds!=ds) { o_ds=ds; write_com(0x06); delay(5); write_sfm(MIAO_ADDR,ds); delay(5); write_com(0x80+0x40+MIAO_ADDR); delay(5); write_com(0x0f); delay(5); } } } }voidmain(){ init(); delay(100); while(1) { keyscan(); if(gn_flag==4||gn_flag==5) { RH();//采集温湿度 } show_time(); }}voiddelay_ms(intj){uchari;for(;j>0;j--) for(i=0;i<27;i++);}voidDelay_10us(void){ uchari; i--; i--; i--; i--; i--; i--;}voidCOM(void){uchari; for(i=0;i<8;i++) { U8FLAG=2; while((!P2_0)&&U8FLAG++); Delay_10us(); Delay_10us(); // Delay_10us(); U8temp=0; if(P2_0)U8temp=1; U8FLAG=2; while((P2_0)&&U8FLAG++); //超时则跳出for循环 if(U8FLAG==1)break; //判断数据位是0还是1 //如果高电平高过预定0高电平值则数据位为1 U8comdata<<=1; U8comdata|=U8temp;//0 }//for } // //湿度读取子程序 // //以下变量均为全局变量 //温度高8位==U8T_data_H //温度低8位==U8T_data_L //湿度高8位==U8RH_data_H //湿度低8位==U8RH_data_L //校验8位==U8checkdata //调用相关子程序如下 //Delay();,Delay_10us();,COM(); //voidRH(){ //主机拉低18ms P2_0=0; delay_ms(180); P2_0=1; //总线由上拉电阻拉高主机延时20us Delay_10us(); Delay_10us(); Delay_10us(); Delay_10us(); //判断从机是否有低电平响应信号如不响应则跳出,响应则向下运行 if(!P2_0) //T! { U8FLAG=2; //判断从机是否发出80us的低电平响应信号是否结束 while((!P2_0)&&U8FLAG++); U8FLAG=2; //判断从机是否发出80us的高电平,如发出则进入数据接收状态 while((P2_0)&&U8FLAG++); //数据接收状态 COM(); U8RH_data_H_temp=U8comdata; COM(); U8RH_data_L_temp=U8comdata; COM(); U8T_data_H_temp=U8comdata; COM(); U8T_data_L_temp=U8comdata; COM(); U8checkdata_temp=U8comdata; //数据校验 U8temp=(U8T_data_H_temp+U8T_data_L_temp+U8RH_data_H_temp+U8RH_data_L_temp); if(U8temp==U8checkdata_temp) { ShiDu=(U8RH_data_H_temp/16)*10+(U8RH_data_L_temp%16); WenDu=(U8T_data_H_temp/16)*10+(U8T_data_L_temp%16); } }}voidtimer0()interrupt1{ staticucharcount=0; staticintbeercnt=0,n=0; TH0=(65536-50000)/256; TL0=(65536-50000)%256; if(key_time)key_time--; count++; if(count==20)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 14《故都的秋》《荷塘月色》对比阅读说课稿 2024-2025学年统编版高中语文必修上册
- 8《网络新世界》(说课稿)-部编版道德与法治四年级上册001
- 9《这些是大家的》说课稿-2023-2024学年道德与法治二年级上册统编版
- Unit 1 Back to School Reading 说课稿-2024-2025学年高一英语译林版(2020)必修第一册
- 2024-2025学年高中历史 第四单元 工业文明冲击下的改革 第15课 戊戌变法(2)教学说课稿 岳麓版选修1
- 2025市场门市部租赁合同
- 2025电脑维修合同范本
- 2024-2025学年新教材高中语文 第六单元 10.1 劝学说课稿(3)部编版必修上册
- 2025苹果购销合同样书
- 24 京剧趣谈(说课稿)-2024-2025学年统编版语文六年级上册
- 2025年方大萍安钢铁招聘笔试参考题库含答案解析
- 《高原红细胞增多症血液稀释疗法护理操作规程》
- 2025年电力工程施工企业发展战略和经营计划
- 年终抖音运营述职报告
- 汽车维修店加盟协议书细则
- 2024东莞市劳动局制定的劳动合同范本
- 2024年大学本科课程教育心理学教案(全册完整版)
- 三甲医院面试自我介绍课件
- AQ6111-2023个体防护装备安全管理规范
- 最新《工会基础知识》试题库及答案1000题【完美打印版】
- 办公家具项目实施方案、供货方案
评论
0/150
提交评论