基于51的万年历时钟(有温度,闹钟)

发布者:SparkCrafter最新更新时间:2020-02-10 来源: 51hei关键字:万年历时钟  温度  闹钟 手机看文章 扫描二维码
随时随地手机看文章

pcb图.png

单片机源码:

#include

//#include"DS18B20_3.H"

#include

#include

#define uint unsigned int

#define uchar unsigned char

#define wd 1                                //定义是否有温度功能  =0时无温度,=1时有温度

#include "eeprom52.h"


#define yh 0x80 //LCD第一行的初始位置,因为LCD1602字符地址首位D7恒定为1(100000000=80)

#define er 0x80+0x40 //LCD第二行初始位置(因为第二行第一个字符位置地址是0x40)


//液晶屏的与C51之间的引脚连接定义(显示数据线接C51的P0口)

sbit en=P2^7;

sbit rw=P2^6;   //如果硬件上rw接地,就不用写这句和后面的rw=0了

sbit rs=P2^5;



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


sbit set=P3^0;          //设置键

sbit add=P3^1;          //加键

sbit dec=P3^2;          //减键

sbit seeNL_NZ=P3^3;        //查看农历/闹钟


sbit DQ=P3^7;                //

sbit buzzer=P2^0;        //蜂鸣器,通过三极管8550驱动,端口低电平


sbit led=P2^4;                 //LCD背光开关

bit  led1=1;

bit NZ_sdgb=1;

unsigned char temp_miao;

unsigned char bltime;  //背光亮的时间


//DS1302时钟芯片与C51之间的引脚连接定义

sbit IO=P1^1;

sbit SCLK=P1^0;

sbit RST=P1^2;



char a,miao,shi,fen,ri,yue,week,setn;

int temp,nian;

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=E0H 


ACC.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);        

}


关键字:万年历时钟  温度  闹钟 引用地址:基于51的万年历时钟(有温度,闹钟)

上一篇:篮球比赛计时器的51单片机proteus仿真
下一篇:51单片机智能家居远程控制

推荐阅读最新更新时间:2024-10-30 06:04

采用AT89C51+ADC0832+LCD1602的电子称设计
电子称设计,主要用于菜市场的电子称,可以设置价格,根据价格和重量计算出金额,该设计采用了Proteus仿真软件,采用AT89C51为主控,采用ADC0832芯片来进行ADC的转换,采用LCD1602显示屏显示,同时设计了矩阵键盘用于输入价格。设计难度3颗星(满星为5颗)。 首先设计电路图,由于模块不多,所以接口可以随意分配,电路仿真图如下图1。 设计时需要一步一步进行设计,一般设计开始尽量将人机交互的模块优先级调高。这里呢就优先对LCD1602进行设计,驱动程序如下: void wrc(uint8 c) { delay(1); rs=0; rw=0; e=0; P0=c; e=1; del
[单片机]
采用AT89C<font color='red'>51</font>+ADC0832+LCD1602的电子称设计
采用51单片机的共阳数码管流动显示数据实现
本程序是采用51单片机实现共阳数码管流动显示数据,蛮好看的,所以把程序写出来和大家一起分享一下!! 电路图在下面 下面是汇编程序代码: D0 BIT P2.0 D1 BIT P2.1 D2 BIT P2.2 D3 BIT P2.3 D4 BIT P2.5 ORG 0000H SJMP START ORG 0040H START:MOV SP,#60H MOV R0,#00H MOV R1,#20 MOV DPTR,#TABLE SETB D4 MOV A,R0 MOVC A,@A+DPTR //1 MOV P0,A CLR D0 LCALL DELAY MOV R
[单片机]
采用<font color='red'>51</font>单片机的共阳数码管流动显示数据实现
AT89C2051+AD7545正弦信号发生器
;********************************************************************; ;说明: ;1.本程序使用AT89C2051单片机驱动DA转换器AD7545输出单相50Hz正弦波信号 ; ;2.在P3.5口输出与正弦波同相同步的方波信号,该方波信号可用于在正弦信号 ; ;的过零处将正弦信号切断. ; ;作者:Free Zheng ; ;********************************************************************; DAC
[单片机]
数据显示中国服务机器人到2019年市场规模将达到151.9亿元人民币
从整体市场看,近两年服务机器人已经步入产业化加速的黄金时期,无论是金融、交通、政务、教育、健康,还是零售等行业,机器人都赋能其中。对于各行各业来说,机器人的融入不仅解放部分人力,降低企业管理成本,提升运营效率,更重塑了线下场景。 据前瞻产业研究院《中国服务机器人行业发展前景与投资战略规划分析报告》数据显示,2016年中国服务机器人市场规模达到72.9亿元人民币,同比增长44.6%,未来三年将继续增长,到2019年市场规模将达到151.9亿元人民币。 来源:前瞻产业研究院整理 机器人的发展壮大离不开几点必要条件:在国内,人力成本的增长迫使人们寻找更优的解决方案;定位导航及传感技术、多模态人机交互技术、仿生材料与结构
[机器人]
51单片机之I^2C总线
I^2C总线的SDA与CLK都是线与关系. 为了避免混乱I^2C总线要通过总线仲裁决定总线由哪一台主机控制 I^2C总线的数据位的有效性:时钟信号为高电平期间 数据线上的数据必须保持稳定,只有在时钟信号为低电平时, 数据线上的数据才可以变化. 图片 I^2C总线的起始信号与终止信号,每一字节必须是8位长度 发完还有一位应答位,所以一共会有9位. 在编写程序时,只要严格按照时序图来,万事OK,下面是我写的一示例程序,功能是先向2402芯片写入一字节数据,然后再将其读出,显示到数码管 #include reg52.h #define uint unsigned int #define uchar unsigne
[单片机]
利用吉时利万用表DMM7510实现降低智能设备的功耗
我们在购买智能手机、智能手表等智能产品时,往往都希望续航时间尽量长,这对于厂家来说,研发出来的产品如何降低功耗是当前设计工程师提升续航能力的主要手段。 想要降低功耗就需了解智能设备的功耗模式,测量功耗时捕获波形和准确测量电流是一项技术活,如果您在测试中有遇到过这些困难,安泰测试推荐吉时利七位半万用表DMM7510。 吉时利万用表DMM7510采样率高达1MS/s,可发现持续时间1us以上的瞬态信号,保证不会丢失波形。此外,在图形触摸屏显示器上,能将波形可视化,利用缩放轻松扩展和放大视图进行深入研究分析。 在深度睡眠模式下,整个消耗的电流将小于1uA,DMM7510测量量程精细至10uA,保证可以测到1pA的信号,精确
[测试测量]
利用吉时利万用表DMM7<font color='red'>51</font>0实现降低智能设备的功耗
51单片机-舵机入门
1.舵机准备 舵机是单片机机械控制入门必学的模块,在一些机器人关节中也是采用舵机作为控制,学习并熟练掌握使用舵机是我们对单片机的进一步认识。 所以我们不能一直局限地使用开发板进行学习,而是扩展一些电子模块来辅助我们更加深入了解单片机。所以大家需要自行购买舵机。 小型的舵机与大型的舵机控制原理几乎大同小异,考虑到经济的合理使用,我们选择小型舵机作为入门学习和简单使用即可。 常见的小型舵机型号为“9g舵机”,外观大体如下 不过笔者觉得这种型号的舵机虽然便宜且大家都普遍使用,但是这种舵机远没有金属舵机好用,所以笔者还是建议大家选择购买与上图体型差不多但价格稍贵一点的金属舵机为好,本教程使用的舵机型号如下图所示 2
[单片机]
<font color='red'>51</font>单片机-舵机入门
2线温度传感器怎么测量好坏
2线温度传感器是一种常见的温度测量设备,广泛应用于工业、科研、医疗等领域。本文将详细介绍2线温度传感器的工作原理、性能指标、测量方法以及如何判断其好坏。 一、2线温度传感器的工作原理 2线温度传感器通常采用热电偶或热电阻作为温度敏感元件。热电偶是利用两种不同金属或合金的接点在不同温度下产生热电势差的原理来测量温度的。而热电阻则是利用金属或半导体材料的电阻随温度变化的特性来测量温度的。 二、2线温度传感器的性能指标 测量范围 :不同的2线温度传感器有不同的测量范围,如-200℃至1300℃。 精度 :精度是衡量传感器性能的重要指标,通常以百分比或绝对值表示。 响应时间 :指传感器从温度变化到输出信号稳定所需的时间。 稳定
[测试测量]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved