功能介绍:
0.本系统采用STC89C52作为单片机
1.LCD1602液晶显示当前时间
2.按键可切换页面,显示农历,显示闹钟设置
3.当时间到达设定闹钟时间时,蜂鸣器报警
4.具备整点报时功能

原理图:

PCB:

主程序:

#include <reg52.h>
//#include"DS18B20_3.H"
#include <string.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
#include "eeprom52.h"//复位脚
#define RST_CLR RST=0//电平置低
#define RST_SET RST=1//电平置高//双向数据
#define IO_CLR  IO=0//电平置低
#define IO_SET  IO=1//电平置高
#define IO_R    IO  //电平读取s//时钟信号
#define SCK_CLR SCLK=0//时钟信号
#define SCK_SET SCLK=1//电平置高#define yh 0x80           // LCD第一行的初始位置,因为LCD1602字符地址首位D7恒定为1(100000000=80)
#define er 0x80 + 0x40 // LCD第二行初始位置(因为第二行第一个字符位置地址是0x40)//液晶屏的与C51之间的引脚连接定义(显示数据线接C51的P0口)
sbit en = P2^6;
sbit rw = P2^1; //如果硬件上rw接地,就不用写这句和后面的rw=0了
sbit rs = P2^7;//校时按键与C51的引脚连接定义sbit set = P3^5;      //设置键
sbit add = P3^6;       //加键
sbit dec = P3^4;       //减键
sbit seeNL_NZ = P3^7; //查看农历/闹钟sbit buzzer = P2^0; //蜂鸣器,通过三极管8550驱动,端口低电平响bit NZ_sdgb = 1;
int temperature = 0;
int humidity = 0;// DS1302时钟芯片与C51之间的引脚连接定义
sbit IO = P2^4;
sbit SCLK = P2^5;
sbit RST = P2^3;char a, miao, shi, fen, ri, yue, nian, week, setn, temp;
uint flag;
// flag用于读取头文件中的温度值,和显示温度值
bit c_moon;char nz_shi, nz_fen, setNZn;    //定义闹钟变量
uchar shangyimiao, bsn, temp_hour; //记录上一秒时间
uchar T_NL_NZ;                     //计数器
bit timerOn = 0;                  //闹钟启用标志位
bit baoshi = 0;                       //整点报时标志位
bit p_r = 0;                      //平年/润年  =0表示平年,=1表示润年
data uchar year_moon, month_moon, day_moon;sbit ACC0 = ACC ^ 0;
sbit ACC7 = ACC ^ 7;
/************************************************************
ACC累加器=A
ACC.0=E0HACC.0就是ACC的第0位。Acc可以位寻址。累加器ACC是一个8位的存储单元,是用来放数据的。但是,这个存储单元有其特殊的地位,
是单片机中一个非常关键的单元,很多运算都要通过ACC来进行。以后在学习指令时,
常用A来表示累加器。但有一些地方例外,比如在PUSH指令中,就必须用ACC这样的名字。
一般的说法,A代表了累加器中的内容、而ACC代表的是累加器的地址。
***************************************************************//******************把数据保存到单片机内部eeprom中******************/
void write_eeprom()
{SectorErase(0x2000);byte_write(0x2000, nz_shi);byte_write(0x2001, nz_fen);byte_write(0x2002, timerOn);byte_write(0x2060, a_a);
}/******************把数据从单片机内部eeprom中读出来*****************/
void read_eeprom()
{nz_shi = byte_read(0x2000);nz_fen = byte_read(0x2001);timerOn = byte_read(0x2002);a_a = byte_read(0x2060);
}/**************开机自检eeprom初始化*****************/
void init_eeprom()
{read_eeprom(); //先读if (a_a != 1)  //新的单片机初始单片机内问eeprom{nz_shi = 12;nz_fen = 30;timerOn = 0;a_a = 1;write_eeprom(); //保存数据}
}//********阳历转换阴历表************************************
code uchar year_code[597] = {0x04, 0xAe, 0x53, // 1901 00x0A, 0x57, 0x48, // 1902 30x55, 0x26, 0xBd, // 1903 60x0d, 0x26, 0x50, // 1904 90x0d, 0x95, 0x44, // 1905 120x46, 0xAA, 0xB9, // 1906 150x05, 0x6A, 0x4d, // 1907 180x09, 0xAd, 0x42, // 1908 210x24, 0xAe, 0xB6, // 19090x04, 0xAe, 0x4A, // 19100x6A, 0x4d, 0xBe, // 19110x0A, 0x4d, 0x52, // 19120x0d, 0x25, 0x46, // 19130x5d, 0x52, 0xBA, // 19140x0B, 0x54, 0x4e, // 19150x0d, 0x6A, 0x43, // 19160x29, 0x6d, 0x37, // 19170x09, 0x5B, 0x4B, // 19180x74, 0x9B, 0xC1, // 19190x04, 0x97, 0x54, // 19200x0A, 0x4B, 0x48, // 19210x5B, 0x25, 0xBC, // 19220x06, 0xA5, 0x50, // 19230x06, 0xd4, 0x45, // 19240x4A, 0xdA, 0xB8, // 19250x02, 0xB6, 0x4d, // 19260x09, 0x57, 0x42, // 19270x24, 0x97, 0xB7, // 19280x04, 0x97, 0x4A, // 19290x66, 0x4B, 0x3e, // 19300x0d, 0x4A, 0x51, // 19310x0e, 0xA5, 0x46, // 19320x56, 0xd4, 0xBA, // 19330x05, 0xAd, 0x4e, // 19340x02, 0xB6, 0x44, // 19350x39, 0x37, 0x38, // 19360x09, 0x2e, 0x4B, // 19370x7C, 0x96, 0xBf, // 19380x0C, 0x95, 0x53, // 19390x0d, 0x4A, 0x48, // 19400x6d, 0xA5, 0x3B, // 19410x0B, 0x55, 0x4f, // 19420x05, 0x6A, 0x45, // 19430x4A, 0xAd, 0xB9, // 19440x02, 0x5d, 0x4d, // 19450x09, 0x2d, 0x42, // 19460x2C, 0x95, 0xB6, // 19470x0A, 0x95, 0x4A, // 19480x7B, 0x4A, 0xBd, // 19490x06, 0xCA, 0x51, // 19500x0B, 0x55, 0x46, // 19510x55, 0x5A, 0xBB, // 19520x04, 0xdA, 0x4e, // 19530x0A, 0x5B, 0x43, // 19540x35, 0x2B, 0xB8, // 19550x05, 0x2B, 0x4C, // 19560x8A, 0x95, 0x3f, // 19570x0e, 0x95, 0x52, // 19580x06, 0xAA, 0x48, // 19590x7A, 0xd5, 0x3C, // 19600x0A, 0xB5, 0x4f, // 19610x04, 0xB6, 0x45, // 19620x4A, 0x57, 0x39, // 19630x0A, 0x57, 0x4d, // 19640x05, 0x26, 0x42, // 19650x3e, 0x93, 0x35, // 19660x0d, 0x95, 0x49, // 19670x75, 0xAA, 0xBe, // 19680x05, 0x6A, 0x51, // 19690x09, 0x6d, 0x46, // 19700x54, 0xAe, 0xBB, // 19710x04, 0xAd, 0x4f, // 19720x0A, 0x4d, 0x43, // 19730x4d, 0x26, 0xB7, // 19740x0d, 0x25, 0x4B, // 19750x8d, 0x52, 0xBf, // 19760x0B, 0x54, 0x52, // 19770x0B, 0x6A, 0x47, // 19780x69, 0x6d, 0x3C, // 19790x09, 0x5B, 0x50, // 19800x04, 0x9B, 0x45, // 19810x4A, 0x4B, 0xB9, // 19820x0A, 0x4B, 0x4d, // 19830xAB, 0x25, 0xC2, // 19840x06, 0xA5, 0x54, // 19850x06, 0xd4, 0x49, // 19860x6A, 0xdA, 0x3d, // 19870x0A, 0xB6, 0x51, // 19880x09, 0x37, 0x46, // 19890x54, 0x97, 0xBB, // 19900x04, 0x97, 0x4f, // 19910x06, 0x4B, 0x44, // 19920x36, 0xA5, 0x37, // 19930x0e, 0xA5, 0x4A, // 19940x86, 0xB2, 0xBf, // 19950x05, 0xAC, 0x53, // 19960x0A, 0xB6, 0x47, // 19970x59, 0x36, 0xBC, // 19980x09, 0x2e, 0x50, // 1999 2940x0C, 0x96, 0x45, // 2000 2970x4d, 0x4A, 0xB8, // 20010x0d, 0x4A, 0x4C, // 20020x0d, 0xA5, 0x41, // 20030x25, 0xAA, 0xB6, // 20040x05, 0x6A, 0x49, // 20050x7A, 0xAd, 0xBd, // 20060x02, 0x5d, 0x52, // 20070x09, 0x2d, 0x47, // 20080x5C, 0x95, 0xBA, // 20090x0A, 0x95, 0x4e, // 20100x0B, 0x4A, 0x43, // 20110x4B, 0x55, 0x37, // 20120x0A, 0xd5, 0x4A, // 20130x95, 0x5A, 0xBf, // 20140x04, 0xBA, 0x53, // 20150x0A, 0x5B, 0x48, // 20160x65, 0x2B, 0xBC, // 20170x05, 0x2B, 0x50, // 20180x0A, 0x93, 0x45, // 20190x47, 0x4A, 0xB9, // 20200x06, 0xAA, 0x4C, // 20210x0A, 0xd5, 0x41, // 20220x24, 0xdA, 0xB6, // 20230x04, 0xB6, 0x4A, // 20240x69, 0x57, 0x3d, // 20250x0A, 0x4e, 0x51, // 20260x0d, 0x26, 0x46, // 20270x5e, 0x93, 0x3A, // 20280x0d, 0x53, 0x4d, // 20290x05, 0xAA, 0x43, // 20300x36, 0xB5, 0x37, // 20310x09, 0x6d, 0x4B, // 20320xB4, 0xAe, 0xBf, // 20330x04, 0xAd, 0x53, // 20340x0A, 0x4d, 0x48, // 20350x6d, 0x25, 0xBC, // 20360x0d, 0x25, 0x4f, // 20370x0d, 0x52, 0x44, // 20380x5d, 0xAA, 0x38, // 20390x0B, 0x5A, 0x4C, // 20400x05, 0x6d, 0x41, // 20410x24, 0xAd, 0xB6, // 20420x04, 0x9B, 0x4A, // 20430x7A, 0x4B, 0xBe, // 20440x0A, 0x4B, 0x51, // 20450x0A, 0xA5, 0x46, // 20460x5B, 0x52, 0xBA, // 20470x06, 0xd2, 0x4e, // 20480x0A, 0xdA, 0x42, // 20490x35, 0x5B, 0x37, // 20500x09, 0x37, 0x4B, // 20510x84, 0x97, 0xC1, // 20520x04, 0x97, 0x53, // 20530x06, 0x4B, 0x48, // 20540x66, 0xA5, 0x3C, // 20550x0e, 0xA5, 0x4f, // 20560x06, 0xB2, 0x44, // 20570x4A, 0xB6, 0x38, // 20580x0A, 0xAe, 0x4C, // 20590x09, 0x2e, 0x42, // 20600x3C, 0x97, 0x35, // 20610x0C, 0x96, 0x49, // 20620x7d, 0x4A, 0xBd, // 20630x0d, 0x4A, 0x51, // 20640x0d, 0xA5, 0x45, // 20650x55, 0xAA, 0xBA, // 20660x05, 0x6A, 0x4e, // 20670x0A, 0x6d, 0x43, // 20680x45, 0x2e, 0xB7, // 20690x05, 0x2d, 0x4B, // 20700x8A, 0x95, 0xBf, // 20710x0A, 0x95, 0x53, // 20720x0B, 0x4A, 0x47, // 20730x6B, 0x55, 0x3B, // 20740x0A, 0xd5, 0x4f, // 20750x05, 0x5A, 0x45, // 20760x4A, 0x5d, 0x38, // 20770x0A, 0x5B, 0x4C, // 20780x05, 0x2B, 0x42, // 20790x3A, 0x93, 0xB6, // 20800x06, 0x93, 0x49, // 20810x77, 0x29, 0xBd, // 20820x06, 0xAA, 0x51, // 20830x0A, 0xd5, 0x46, // 20840x54, 0xdA, 0xBA, // 20850x04, 0xB6, 0x4e, // 20860x0A, 0x57, 0x43, // 20870x45, 0x27, 0x38, // 20880x0d, 0x26, 0x4A, // 20890x8e, 0x93, 0x3e, // 20900x0d, 0x52, 0x52, // 20910x0d, 0xAA, 0x47, // 20920x66, 0xB5, 0x3B, // 20930x05, 0x6d, 0x4f, // 20940x04, 0xAe, 0x45, // 20950x4A, 0x4e, 0xB9, // 20960x0A, 0x4d, 0x4C, // 20970x0d, 0x15, 0x41, // 20980x2d, 0x92, 0xB5, // 2099
};///月份数据表
code uchar day_code1[9] = {0x0, 0x1f, 0x3b, 0x5a, 0x78, 0x97, 0xb5, 0xd4, 0xf3};
code uint day_code2[3] = {0x111, 0x130, 0x14e};/*
函数功能:输入BCD阳历数据,输出BCD阴历数据(只允许1901-2099年)
调用函数示例:Conversion(c_sun,year_sun,month_sun,day_sun)
如:计算2004年10月16日Conversion(0,0x4,0x10,0x16);
c_sun,year_sun,month_sun,day_sun均为BCD数据,c_sun为世纪标志位,c_sun=0为21世
纪,c_sun=1为19世纪
调用函数后,原有数据不变,读c_moon,year_moon,month_moon,day_moon得出阴历BCD数据
*/

仿真演示视频:
https://www.bilibili.com/video/BV1GY4y167Tt/

实物演示视频:
https://www.bilibili.com/video/BV1bm4y1A7Cv/

基于51单片机的万年历可显示农历带闹钟整点报送功能proteus仿真原理图PCB相关推荐

  1. 基于51单片机的智能窗户烟雾浓度雨滴检测无线wifi控制系统proteus仿真原理图PCB

    功能介绍: 0.本系统采用STC89C52作为单片机 1.LCD1602实时显示当前环境温湿度,烟雾浓度,室外是否下雨 2.按键可设定烟雾浓度,环境温湿度阈值,雨滴检测阈值 3.当环境适宜时,打开窗户 ...

  2. 基于51单片机红外遥控人体感应自动车库门控制设计(程序+Proteus仿真+原理图+PCB图+参考论文+开题报告+任务书等)

    一.硬件方案 单片机的红外遥控人体感应自动门控制系统设计的实现主要有电源5V供电.单片机最小系统.红外感应遥控模块,红外一体接收头,按键电路,步进电机驱动电路,指示灯电路组成.. 二.设计功能 1.如 ...

  3. 基于51单片机的智能红外遥控防雨晾衣架 雨滴光强检测系统proteus仿真原理图PCB

    功能: 0.本系统采用STC89C52作为单片机 1.LCD1602液晶实时显示当前雨滴/光强/温湿度/晾衣架状态 2.支持手动/自动两种模式 3.自动模式下,当雨滴<5/光强<80同时满 ...

  4. 基于51单片机的高速汽车列车汽车速度测量及报警装置proteus仿真原理图PCB

    功能介绍: 0.本系统采用STC89C52作为单片机 1.LCD1602液晶显示测量车速,同时蓝牙串口上报速度测量结果 2.红外避障模块1触发,启动测速定时器,红外避障模块2触发,停止定时器,完成测速 ...

  5. 基于51单片机霍尔转速测量温度电机保护PWM调速设计proteus仿真原理图PCB

    功能: 0.本系统采用STC89C52作为单片机 1.LCD1602液晶实时显示温度,PWM档位值和当前转速 2.可通过按键控制电机启动,停止,正转,反转,加速,减速 3.温度超过50℃蜂鸣器报警,且 ...

  6. 基于51单片机的智能家居防盗系统人体红外热释电 proteus仿真原理图程序设计

    硬件设计 原理图: 仿真图: 程序设计 //程序头函数 #include <reg52.h> //宏定义 #define uint unsigned int #define uchar u ...

  7. 基于51单片机的万年历(带温湿度)带闹钟功能proteus仿真原理图PCB

    功能介绍: 0.本系统采用STC89C52作为单片机 1.LCD1602液晶显示当前时间和温湿度 2.按键可切换页面,显示农历,显示闹钟设置 3.当时间到达设定闹钟时间时,蜂鸣器报警 原理图: PCB ...

  8. 54、基于51单片机饮水机温度水位控制无线蓝牙APP控制报警系统设计(程序+原理图+PCB源文件+Proteus仿真+参考论文+开题报告+元器件清单等)

    方案的选择 方案一:采用51单片机作为控制核心,配合无线蓝牙模块.水温加热模块继电器开关.基于Dallas单线数字式的DS18B20温度传感器模块.蜂鸣器报警模块.按键模块.LCD1602液晶显示器模 ...

  9. 基于51单片机的智能太阳能充电器带自动断开功能proteus仿真原理图PCB

    功能介绍: 0.本系统采用STC89C52作为单片机 1.LCD1602液晶实时显示当前检测的充电电压 2.当电压超过设定阈值时,继电器断开,停止充电,同时蜂鸣器报警,提醒充电完成 3.按键可切换界面 ...

最新文章

  1. workstation 14 PRO 秘钥
  2. Java常用类之【字符串相关类型】
  3. 陕西小学三年级计算机下册教案,小学三三年级信息技术下册教学计划
  4. SAP修改消息内容和报错类型(SE91和OBA5)
  5. 6.824 RPC lesson2 2020(一)
  6. 为程序员而骄傲的飞鸽传书
  7. axios+vue+springboot完成批量删除
  8. (转)(VS2013 )由于应用程序配置不正确,程序未能启动”--原因及解决方法...
  9. 2021好物推荐!简易画图软件分享
  10. 基于《女士品茶》分享统计学中假设检验的那些知识和应用
  11. 2021年创新医疗器械盘点
  12. [面试题]1000瓶毒药里面只有1瓶是有毒的,问需要多少只老鼠才能试出那瓶有毒。
  13. syn 攻击脚本 python_Python Scapy实现SYN Flood攻击
  14. PySimpleGUI:快速开始
  15. 如何换主题不被搜索降权
  16. 计算机组成原理-存储系统
  17. ArcGIS 地图切图系列之(三)MapReduce 实现
  18. NIST建议的零信任安全8大应用场景
  19. MyBatis:快速入门代码实例(maven代码版)
  20. Tomcat 8(一)Tomcat常用配置

热门文章

  1. 那些令人印象深刻的书籍献词~ 一些有趣的书的献词
  2. 博通Broadcom SDK源码学习与开发3——Cable Modem Docsis3.0
  3. 【ManageEngine卓豪】助力黄石爱康医院实现智能批量化网络设备配置管理
  4. 【树莓派】DS18B20温度传感器
  5. 贮藏工作 git stash
  6. postgresql 随笔
  7. mysql intersect 使用方法_MySQL查询优化一例——也说说 Using intersect
  8. Siemens NX 1965下载及教程
  9. Windows主机入侵痕迹排查办法
  10. 拼多多砍价显示服务器吃撑了,拼多多砍价网页打不开是为什么