DoYoung 电子技术 — 创造独立资源! 12864LCD电子钟说明文档 DoYoung 原创 V1.0 2007.2.11 目录 1. 概要 ............................................................................. 1 2. 仿制说明 ......................................................................... 2 3. 使用说明 ......................................................................... 3 4. 相关升级 ......................................................................... 6 5. 常见问题与注意事项................................................................ 6 版本信息 ............................................................................ 6 1 /7 12864LCD 电子钟说明文档 DoYoung 原创 1. 概要 作品简介 这 12864LCD 电子钟是利用 89S52 驱动 128*64LCD 显示的电子时钟制作,其采用 DS1302 芯片独立产 生时间。折叠台历式外型可以方便的摆放在桌面上,也可以折叠存放。隐形式按键设计使用户操作 更直观、方便。高精度温度显示,公历节日提醒是其卓越之处。模块化的源代码、新颖别致的电路 图使后继爱好者制作和升级开发更方便。 功能特征 9 9 9 9 9 9 9 9 9 年、月、日、小时、分、秒、星期、温度、节日同屏显示,一目了然。 时间设置功能,简单快捷。 整点报时(早 8 点至晚 21 点) 128*64LED 显示,亮度高 备用电池,长久走时 温度显示,00.0 度高精度(00.0~99.9 摄氏度) 隐藏式按键,模拟触摸屏的方位按键操作简单 国际、国内公历重要节日提醒 日历台式外型设计,至于桌面美观大方 部分程序举例 部分程序代码采用了简单高效的编写方法,保证性能意念新鲜。 采用数据指针方法的 LCD 串行通信部分程序: /******************************************************************************/ //写指令或数据 (0,指令) (1,数据) void lcm_w_test(bit start, unsigned char ddata) { unsigned char start_data,Hdata,Ldata; if(start==0) start_data=0xf8; //0:写指令 else start_data=0xfa; //1:写数据 Hdata=ddata&0xf0; //取高四位 Ldata=(ddata<<4)&0xf0; //取低四位 lcm_w_byte(start_data); //发送起始信号 delaynms(5); //延时是必须的 lcm_w_byte(Hdata); //发送高四位 delaynms(5); //延时是必须的 lcm_w_byte(Ldata); //发送低四位 delaynms(5); //延时是必须的 } /******************************************************************************/ //发送一个字节(底层函数) void lcm_w_byte(unsigned char bbyte) { unsigned char i; for(i=0;i<8;i++){ SID=bbyte&0x80; //取出最高位 SCLK=1; SCLK=0; bbyte<<=1; //左移 } } /******************************************************************************/ //延时(LCM 占用) void delaynms(unsigned int di) { doyoung 2 /7 12864LCD 电子钟说明文档 DoYoung 原创 unsigned int da,db; for(da=0;da<di;da++); for(db=0;db<10;db++); } /*****************************************************************************/ //清屏函数 void lcm_clr(void){ lcm_w_test(0,0x01); delaynms(40); //启动等待,等 LCM 讲入工作状态 } /*****************************************************************************/ //向 LCM 发送一个字符串,长度 64 字符之内。 //应用:lcm_w_word("您好!"); void lcm_w_word(unsigned char *str){ while(*str != '\0'){ lcm_w_test(1,*str++); } *str = 0; } /******************************************************************************/ 2. 仿制说明 Doyoung 电子技术 将无条件共享原理图、说明文档、HEX 文件供有兴趣的朋友仿制使用。如您 成功仿制本设计,至信 [email protected],即可获得本制作品的源代码,用于学习或升级 升级开发。如果您成功升级了一次程序将可以获得 Doyoung现在制作品的所有源代码包(不包括 日后制作品)。目的只有一个,力图创造独立资料。 如果您决定仿制本设计,请先根据发布的原理图和元件 BOM 表购买元件。 品名 STN LCD 显示屏 蜂鸣器 时钟 IC 晶振 稳压 IC 陶瓷电容 电源适配器 陶瓷电容 电源接口座 电阻 微动开关 型号 128*64 汉字库 有源 5V DS1302 12.00MHZ LM7805 01.uF 9V 2A 30pF (视电源而定) 10K 5*5*6 数量 1 1 1 1 1 2 1 2 1 1 4 品名 单片机 温度传感器 IC 备用电池 晶振 电位器 电解电容 LED 万能电路板* 电阻 电容 LED 型号 AT89S52 DS18B20 3.6V 32.768HZ 10K 220uF 蓝色 * 470 欧 10uF 双色-红绿,共阳 如果您的 LCD 是自动调整灰度的,可不接电位器,而将 VO 直接接高电平。 制作时,温度传感器 IC 应用线引出远离电路板,以保证温度精准。 doyoung 数量 1 1 1 1 1 2 1 * 6 1 4 3 /7 12864LCD 电子钟说明文档 DoYoung 原创 3. 使用说明 界面介绍 显示信息 年份显示 设置项 日期显示 [Dis] 2007 [Set] 2 月 14 日 星期五 23:34.10 23.5℃ 今天情人节 星期显示 温度显示 时间显示 节日显示 时钟初始化 硬件制作完成,通电后屏幕将显示如照片样张一样的显示格式,但数据有可能错误,因为 DS1302 必须初始化。 按键 1 按键 2 按键 3 [Dis] 2007 [Set] 2 月 14 日 星期五 23:34.10 23.5℃ 今天情人节 按键 4 开机后,同时按下 左下角(2)和右下角(4)两个按键。当屏幕四角的红色 LED 亮起时再转为同 时按下 左上角(1)、左下角(2)和右下角(4)三个按键(转按过程应在 3 秒之内) 。长按 3 秒后 屏幕将显示: 初始化成功! 2007-1-1 00:00.0 时钟调整 在正常状态下按右上角键(3:[Set])进入调时状态。根据屏幕四角的按键功能操作。 (下列图中红色字体会随着加/减调整而改变。) 调整年份 按键 1:退出 按键 2:加 1 [Esc] 2007 [Next] 2 月 14 日 星期五 23:34.10 23.5℃ [+] 调整年份 [-] 以下依次按 [Next] 调整其它数据。 doyoung 按键 3:下一项 按键 4:减 1 4 /7 12864LCD 电子钟说明文档 DoYoung 原创 调整月份 按键 1:退出 按键 2:加 1 [Esc] 2007 [Next] 2 月 14 日 星期五 23:34.10 23.5℃ [+] 调整月份 [-] 按键 3:下一项 按键 4:减 1 调整日期 按键 1:退出 按键 2:加 1 [Esc] 2007 [Next] 2 月 14 日 星期五 23:34.10 23.5℃ [+] 调整日期 [-] 按键 3:下一项 按键 4:减 1 调整星期 按键 1:退出 按键 2:加 1 [Esc] 2007 [Next] 2 月 14 日 星期五 23:34.10 23.5℃ [+] 调整星期 [-] 按键 3:下一项 按键 4:减 1 调整小时 按键 1:退出 按键 2:加 1 [Esc] 2007 [Next] 2 月 14 日 星期五 23:34.10 23.5℃ [+] 调整小时 [-] 按键 3:下一项 按键 4:减 1 调整分钟 按键 1:退出 按键 2:加 1 [Esc] 2007 [Next] 2 月 14 日 星期五 23:34.10 23.5℃ [+] 调整分钟 [-] 按键 3:下一项 按键 4:减 1 当状态处于 调整分钟 时,再按[Next]键将循环到 调整年份。 doyoung 5 /7 12864LCD 电子钟说明文档 DoYoung 原创 正常状态下,长按左上角键(1:[Dis])将显示版本信息。放开按键则返回正常状态。 12864LcdClock Hello !! V1.01 2006-11-26 from DoYoung 节日提醒内容 以下是现有的公历节日提醒内容。 if ( mo == 0x01 && dd == 0x01 ){ lcm_w_word("Happy New Year!!"); }//1 月 if ( mo == 0x01 && dd == 0x28 ){ lcm_w_word(" 世界麻风日 "); } if ( mo == 0x02 && dd == 0x02 ){ lcm_w_word(" if ( mo == 0x02 && dd == 0x13 ){ lcm_w_word(" if ( mo == 0x02 && dd == 0x14 ){ lcm_w_word(" 世界湿地日 明天情人节了 今天是情人节 "); }//2 月 "); } "); } if if if if if if if if if if if ( ( ( ( ( ( ( ( ( ( ( mo mo mo mo mo mo mo mo mo mo mo == == == == == == == == == == == 0x03 0x03 0x03 0x03 0x03 0x03 0x03 0x03 0x03 0x03 0x03 && && && && && && && && && && && dd dd dd dd dd dd dd dd dd dd dd == == == == == == == == == == == 0x01 0x03 0x08 0x12 0x14 0x15 0x17 0x21 0x22 0x23 0x24 ){ ){ ){ ){ ){ ){ ){ ){ ){ ){ ){ lcm_w_word(" 国际海豹日 "); }//3 月 lcm_w_word(" 全国爱耳日 "); } lcm_w_word(" 3.8 妇女节 "); } lcm_w_word(" 植树节 "); } lcm_w_word(" 国际警察日 "); } lcm_w_word(" 消费者权益日 "); } lcm_w_word(" 国际航海日 "); } lcm_w_word(" 世界森林日 "); } lcm_w_word(" 世界水日 "); } lcm_w_word(" 世界气象日 "); } lcm_w_word("世界防治结核病日"); } if if if if ( ( ( ( mo mo mo mo == == == == 0x04 0x04 0x04 0x04 && && && && dd dd dd dd == == == == 0x01 0x07 0x08 0x13 ){ ){ ){ ){ lcm_w_word("愚人节 小心上当"); lcm_w_word(" 世界卫生日 "); lcm_w_word(" 复活节 "); lcm_w_word(" 黑色星期五 "); }//4 } } } if if if if if if if ( ( ( ( ( ( ( mo mo mo mo mo mo mo == == == == == == == 0x05 0x05 0x05 0x05 0x05 0x05 0x05 && && && && && && && dd dd dd dd dd dd dd == == == == == == == 0x01 0x04 0x08 0x12 0x05 0x15 0x31 ){ ){ ){ ){ ){ ){ ){ lcm_w_word(" 劳动节 放假 lcm_w_word(" 青年节 lcm_w_word(" 世界红十字日 lcm_w_word(" 国际护士节 lcm_w_word("近日注意母亲节 lcm_w_word(" 国际家庭日 lcm_w_word(" 世界无烟日 "); "); "); "); "); "); "); }//5 } } } } } } if if if if if if ( ( ( ( ( ( mo mo mo mo mo mo == == == == == == 0x06 0x06 0x06 0x06 0x06 0x06 && && && && && && dd dd dd dd dd dd == == == == == == 0x01 0x05 0x26 0x06 0x13 0x15 ){ ){ ){ ){ ){ ){ lcm_w_word(" 国际儿童节 lcm_w_word(" 世界环境日 lcm_w_word(" 国际禁毒日 lcm_w_word(" 全国爱眼日 lcm_w_word("近日注意父亲节 lcm_w_word("近日注意父亲节 "); "); "); "); "); "); }//6 } } } } } if ( mo == 0x07 && dd == 0x01 ){ lcm_w_word("香港回归记念日 if ( mo == 0x07 && dd == 0x07 ){ lcm_w_word("抗日战争记念日 if ( mo == 0x07 && dd == 0x11 ){ lcm_w_word(" 世界人口日 "); }//7 "); } "); } if ( mo == 0x08 && dd == 0x01 ){ lcm_w_word(" if ( mo == 0x08 && dd == 0x08 ){ lcm_w_word(" "); }//8 "); } doyoung 八一建军节 中国男子节 6 /7 12864LCD 电子钟说明文档 DoYoung 原创 if ( mo == 0x08 && dd == 0x15 ){ lcm_w_word("抗战胜利记念日 "); } if if if if ( ( ( ( mo mo mo mo == == == == 0x09 0x09 0x09 0x09 && && && && dd dd dd dd == == == == 0x10 0x18 0x20 0x27 ){ ){ ){ ){ lcm_w_word(" 中国教师节 "); lcm_w_word("九·一八事变记念"); lcm_w_word(" 国际爱牙日 "); lcm_w_word(" 世界旅游日 "); }//9 } } } if if if if if ( ( ( ( ( mo mo mo mo mo == == == == == 0x10 0x10 0x10 0x10 0x10 && && && && && dd dd dd dd dd == == == == == 0x01 0x04 0x24 0x12 0x13 ){ ){ ){ ){ ){ lcm_w_word(" 中国国庆节 lcm_w_word(" 世界动物日 lcm_w_word(" 联合国日 lcm_w_word("明天国际教师节 lcm_w_word(" 国际教师节 }//10 } } } } "); "); "); "); "); if ( mo == 0x11 && dd == 0x10 ){ lcm_w_word(" if ( mo == 0x11 && dd == 0x17 ){ lcm_w_word(" 世界青年节 世界学生节 "); }//11 "); } if if if if if 世界艾滋病日 明晚平安夜 今晚平安夜 圣诞快乐 明日新年 "); "); "); "); "); ( ( ( ( ( mo mo mo mo mo == == == == == 0x12 0x12 0x12 0x12 0x12 && && && && && dd dd dd dd dd == == == == == 0x01 0x23 0x24 0x25 0x31 ){ ){ ){ ){ ){ lcm_w_word(" lcm_w_word(" lcm_w_word(" lcm_w_word(" lcm_w_word(" }//12 } } } } 4. 相关升级 您可以升级本程序,为它加入更好的功能(例如闹钟、节日设置)。或者期待本站的程序升级下载。 如与朋友交流本站资料请注明 DoYoung。 5. 常见问题与注意事项 本程序版本已经经过一段时间的测试,基本可以保证其稳定性。如您应用中发现软件 BUG 请与 我联系,多谢支持。 在焊接键盘前请先上电测试键盘的位置,错误的位置会使操作混乱。 各产家的 12864LCD 显示屏的性能各有不同,制作前先决保您的显示屏是据有汉字库的,基本 引脚和主控制芯片型号一致。 如果您的 LCD 是自动调整灰度的,可不接电位器,而将 VO 直接接高电平。 可为蜂鸣器设置跳线或开关键来控制整点报时功能。整点报时时间为早 8 点至晚 21 点。 制作时,温度传感器 IC 应用线引出远离电路板,以保证温度精准。 版本信息 题目 作者 版本 声明 标注 12864LCD电子钟说明文档 杜洋 V1.0 2007.2.11 本站内容(包括程序代码、文档、照片、视频等)属个人所有,未经网站作者同意请勿转载或引用,对于 转载或复制而造成的任何不良后果概不负责。 对于本站内免费下载的资料、图片及视频不能保证其真实可 靠,对于免费下载的程序代码本站作者不给矛技术支持和服务。 ST2007-2-11D2254 doyoung