基于单片机控制的多功能数字时钟设计(程序).doc

基于单片机控制的多功能数字时钟设计(程序).doc

  1. 1、本文档共36页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于单片机控制的多功能数字时钟设计(程序)

编号 XXXXXXX 毕业论文 附录部分 ( 2012 届本科) 题 目:基于单片机控制的多功能数字时钟设计 学 院: 物理与机电学院 专 业: 电气工程及其自动化 作者姓名: XXXXXX 指导教师: XXXX 职称: XXX 完成日期: 2012 年 5 月 16 日 二○一二 年 五 月 附录A 源程序代码 *************************************** #includereg51.H #includeINTRINS.H #define uchar unsigned char #define uint unsigned int #define TIME (0X10000-50000) #define FLAG 0XEF //闹钟标志 //引脚连接图 sbit rst=P3^5; sbit clk=P3^4; sbit dat=P3^3; sbit rs=P1^5; sbit rw=P1^6; sbit e=P1^7; sbit DQ=P1^4; //温度输入口 sbit P3_2=P3^2; sbit ACC_7=ACC^7; //全局变量及常量定义 uchar i=20,j,time1[16]; uchar alarm[2],time2[15],time[3]; uchar code Day[]={31,28,31,30,31,30,31,31,30,31,30,31};//12个月的最大日期(非闰年) //音律表 uint code table1[]={64260,64400,64524,64580,64684,64777, 64820,64898,64968,65030,65058,65110,65157,65178,65217}; //发声部分的延时时间 uchar code table2[]={0x82,1,0x81,0xf4,0xd4,0xb4,0xa4, 0x94,0xe2,1,0xe1,0xd4,0xb4,0xc4,0xb4,4,0}; //LCD自建字 uchar code tab[]={0x18,0x1b,5,4,4,5,3,0, 0x08,0x0f,0x12,0x0f,0x0a,0x1f,0x02,0x02,//年 0x0f,0x09,0x0f,0x09,0x0f,0x09,0x11,0x00,//月 0x0f,0x09,0x09,0x0f,0x09,0x09,0x0f,0x00};//日 //*******温度小数部分用查表法**********// uchar code ditab[16]={0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09}; //闹钟中用的全局变量 uchar th1,tl1; uchar temp_data[2]={0x00,0x00}; // 读出温度暂放 bit flag; //18b20存在标志位 /***********11微秒延时函数**********/ delay(uint t) { for(;t0;t--); } /***********18B20复位函数**********/ ow_reset(void) { uchar i; DQ=1;_nop_();_nop_(); DQ=0; // delay(50); // 550us DQ=1; // delay(6); // 66us for(i=0;i0x30;i++) { if(!DQ) goto d1; } flag=0; //清标志位,表示ds1820不存在 DQ=1; return; d1: delay(45); //延时500us flag=1; DQ=1; //置标志位,表示ds1820存在 } /**********18B20写命令函数*********/ //向 1-WIRE 总线上写一个字节 void write_byte(uchar val) { uchar i; for (i=8; i0; i--) // { DQ=1;_nop_();_nop_(); DQ=0;_nop_();_nop_();_nop_();_nop_();_nop_();//5us DQ=val0x01; //最低位移出

文档评论(0)

xy88118 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档