找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5199|回复: 10
收起左侧

在某宝上购得的基于51的万年历时钟(有温度,闹钟),现在免费分享,带pcb,程序

  [复制链接]
ID:276472 发表于 2018-3-4 22:00 | 显示全部楼层 |阅读模式
pcb图.png 万年历.png 9898.png

附件里面还包含有实物图

单片机源码:
  1. #include<reg52.h>
  2. //#include"DS18B20_3.H"
  3. #include <string.h>
  4. #include <intrins.h>
  5. #define uint unsigned int
  6. #define uchar unsigned char
  7. #define wd 1                                //定义是否有温度功能  =0时无温度,=1时有温度
  8. #include "eeprom52.h"

  9. #define yh 0x80 //LCD第一行的初始位置,因为LCD1602字符地址首位D7恒定为1(100000000=80)
  10. #define er 0x80+0x40 //LCD第二行初始位置(因为第二行第一个字符位置地址是0x40)

  11. //液晶屏的与C51之间的引脚连接定义(显示数据线接C51的P0口)
  12. sbit en=P2^7;
  13. sbit rw=P2^6;   //如果硬件上rw接地,就不用写这句和后面的rw=0了
  14. sbit rs=P2^5;


  15. //校时按键与C51的引脚连接定义

  16. sbit set=P3^0;          //设置键
  17. sbit add=P3^1;          //加键
  18. sbit dec=P3^2;          //减键
  19. sbit seeNL_NZ=P3^3;        //查看农历/闹钟

  20. sbit DQ=P3^7;                //
  21. sbit buzzer=P2^0;        //蜂鸣器,通过三极管8550驱动,端口低电平响

  22. sbit led=P2^4;                 //LCD背光开关
  23. bit  led1=1;
  24. bit NZ_sdgb=1;
  25. unsigned char temp_miao;
  26. unsigned char bltime;  //背光亮的时间

  27. //DS1302时钟芯片与C51之间的引脚连接定义
  28. sbit IO=P1^1;
  29. sbit SCLK=P1^0;
  30. sbit RST=P1^2;


  31. char a,miao,shi,fen,ri,yue,week,setn;
  32. int temp,nian;
  33. uint flag;
  34. //flag用于读取头文件中的温度值,和显示温度值
  35. bit c_moon;

  36. char nz_shi,nz_fen,setNZn;            //定义闹钟变量
  37. uchar shangyimiao,bsn,temp_hour;                        //记录上一秒时间
  38. uchar T_NL_NZ;                                                        //计数器
  39. bit timerOn=0;                                                        //闹钟启用标志位
  40. bit baoshi=0;                                                        //整点报时标志位
  41. bit  p_r=0;                                                                 //平年/润年  =0表示平年,=1表示润年
  42. data uchar year_moon,month_moon,day_moon;

  43. sbit ACC0=ACC^0;
  44. sbit ACC7=ACC^7;
  45. /************************************************************
  46. ACC累加器=A
  47. ACC.0=E0H

  48. ACC.0就是ACC的第0位。Acc可以位寻址。

  49. 累加器ACC是一个8位的存储单元,是用来放数据的。但是,这个存储单元有其特殊的地位,
  50. 是单片机中一个非常关键的单元,很多运算都要通过ACC来进行。以后在学习指令时,
  51. 常用A来表示累加器。但有一些地方例外,比如在PUSH指令中,就必须用ACC这样的名字。
  52. 一般的说法,A代表了累加器中的内容、而ACC代表的是累加器的地址。
  53. ***************************************************************/

  54. /******************把数据保存到单片机内部eeprom中******************/
  55. void write_eeprom()
  56. {
  57.         SectorErase(0x2000);
  58.         byte_write(0x2000, nz_shi);
  59.         byte_write(0x2001, nz_fen);
  60.         byte_write(0x2002, timerOn);
  61.         byte_write(0x2060, a_a);        
  62. }
  63. ....
复制代码

全部资料51hei下载地址:
万年历-1.zip (5.24 MB, 下载次数: 260)

评分

参与人数 2黑币 +80 收起 理由
yanyuwei + 30 赞一个!
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:237354 发表于 2018-3-5 00:51 | 显示全部楼层
请问购的是套件还是仅仅资料
回复

使用道具 举报

ID:286134 发表于 2018-3-5 08:25 | 显示全部楼层
进来学习
回复

使用道具 举报

ID:276472 发表于 2018-3-6 00:03 | 显示全部楼层
oohoh 发表于 2018-3-5 00:51
请问购的是套件还是仅仅资料

买套件送的
回复

使用道具 举报

ID:505337 发表于 2019-4-17 22:29 来自手机 | 显示全部楼层
用什么软件,klie4吗
回复

使用道具 举报

ID:293046 发表于 2019-6-5 09:11 | 显示全部楼层
掉电闹钟数据保存吗
回复

使用道具 举报

ID:306996 发表于 2019-6-5 15:07 来自手机 | 显示全部楼层
楼主给力嗷,补充一句,现在12864或者oled的做万年历比1602多,
回复

使用道具 举报

ID:555863 发表于 2019-6-5 18:31 | 显示全部楼层
学习学习
回复

使用道具 举报

ID:525478 发表于 2019-6-5 22:16 | 显示全部楼层
好东东  先收藏了谢谢
回复

使用道具 举报

ID:559597 发表于 2019-6-16 12:34 | 显示全部楼层
为啥分成了1、2呢
回复

使用道具 举报

ID:695147 发表于 2020-2-19 16:32 | 显示全部楼层
给力太棒了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表