AT89S52+DS1302+DS18B20多功能数字电子钟.docVIP

  • 1
  • 0
  • 约4.23万字
  • 约 36页
  • 2018-06-23 发布于浙江
  • 举报
我的单片机课程设计:AT89S52+DS1302+DS18B20多功能数字电子钟 一 2010-07-16 17:35:55| 分类: 单片机 | 标签: |字号大 中 小 订阅 实现功能: 1.显示年、月、日、时、分、秒、星期,闰年自动调整 2.可手动调整上述各项的值 3.实时显示当前温度 4. 可设定两个闹铃,每个有独立开关,并可以设置只响闹一次还是每天都响闹 5. 闹钟共有两首音乐可供选择 6. 可闹铃音乐放完可自动止闹,也可中途按键手动止闹 7. 贪睡功能,有开关,并可设置贪睡时间 8. 背光控制,有开关,并可设置多少秒后自动关闭背光,也可以按键开背光,然后按照设置的时间后自动关闭 9. 秒表功能 10. 掉电模式,同时液晶关背光,节省能源 源代码第一部分: #includeat89x52.h //2010.4.6-2010.4.13 Designed By Lu. QQ:475600597 2010.6.14再次修改 #includeintrins.h typedef unsigned char uchar; typedef unsigned int uint; #define LCD1602_DATA P0 //1602液晶数据口 sbit LCD1602_RS=P1^0; sbit LCD1602_RW=P1^1; sbit LCD1602_EN=P1^2; //1602液晶使能控制 sbit DS1302_CLK = P3^0; //实时时钟时钟线引脚 sbit DS1302_IO = P3^1; //实时时钟数据线引脚 sbit DS1302_RST = P3^2; //实时时钟复位线引脚 sbit DQ = P2^3 ; //18B20接口 sbit BeepIO = P2^7 ; //蜂鸣器 sbit esc=P1^7; //取消播放音乐 sbit mode = P1^4 ; //模式键 sbit inc = P1^5 ; //增加键 sbit dec = P1^6 ; //减少键 sbit ok = P1^7 ; //OK键 sbit light=P2^0; //背光控制 sbit ACC0 = ACC^0; //累加器位定义 sbit ACC7 = ACC^7; bit first_flag=1, //一级主界面显示标志 second_flag, //二级菜单显示标志 third_flag, //三级菜单显示标志 playmusic, //播放音乐的标志 light_flag1=1, //背光第一次计时标志 light_flag=1 ; // 二三级界面开背光标志 uchar count1,sec1,min1,hour1;//定时器2使用的变量 停表用 uchar count,sec,min;//定时器1使用的变量 贪睡用 uchar temp; //温度暂存 //////以下为播放音乐的设置 #define SYSTEM_OSC #define SOUND_SPACE 4/5 uint code FreTab[12] = { 262,277,294,311,330,349,369,392,415,440,466,494 }; //原始频率表 uchar code SignTab[7] = { 0,2,4,5,7,9,11 }; //1~7在频率表中的位置 uchar code LengthTab[7]= { 1,2,4,8,16,32,64 }; uchar Sound_Temp_TH0,Sound_Temp_TL0; //音符定时器初值暂存 uchar Sound_Temp_TH1,Sound_Temp_TL1; //音长定时器初值暂存 bit stop; char menu_num;//菜单号 char num;//按键加减调整暂存数 char position1,position2,position3,position4,position5,position6,position7; //菜单1-7的光标位置标志 char code

文档评论(0)

1亿VIP精品文档

相关文档