历史上的今天
今天是:2025年02月10日(星期一)
2020年02月10日 | 基于51的万年历时钟(有温度,闹钟)
2020-02-10 来源:51hei


单片机源码:
#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单片机智能家居远程控制
史海拾趣
|
准备学一学pcb高速板的布线和仿真,但是遇到很多问题,各位也许能帮上忙的哈; 现在什么仿真软件对原理图和pcb板的仿真最好呢?因为我一直用的portell99se,它的仿真功能太有限了,有没与一个软件能够将protell做的pcb文件仿真的呢?… 查看全部问答> |
|
众所周知,模拟电路难学,以最普遍的晶体管来说,我们分析它的时候必须首先分析直流偏置,其次在分析交流输出电压。可以说,确定工作点就是一项相当麻烦的工作(实际中来说),晶体管的参数多、参数的离散性也较大。但值得我们注意的是,模拟电路构 ...… 查看全部问答> |
|
开始学windows驱动开发有必要学ddk吗?还是直接学wdm? 现在还什么都不懂。只知道wdm是微软新的驱动开发方法,直接学wdm可以吗?用不用学ddk? 我看《Windows驱动开发技术详解》ddk和wdm好像都讲,而《寒江独钓》似乎只讲了wdm,用哪个做主要教材学习好?… 查看全部问答> |
|
各位大侠,小弟不才,问个简单问题:利用GPRS模块在Linux系统拨号上网只需要接口(比如串口)的驱动,而不需要GPRS本身的驱动吗?还是Linux系统自带这个驱动。… 查看全部问答> |
|
在交换机上移植了ucd-snmp,现在在pc上可以通过mib-browser查看到大部分信息,但是遇到以下两个问题: 1.pc上的trap reciever接收不到交换机的trap,trap如何出发? 2.rmon已经加入代码编译,但是通过mib-browser查看rmon节点为“unsupported OID ...… 查看全部问答> |
|
我写了个用ad采样程序,用于采样交流电压,我发现每次程序运行后的第一个采样数据是错误的。例如: samples矩阵用于存放采样的结果值 samples[0]=390.3 samples[1]=40.5 samples[2]=63.4 samples[3]=78.8 。。。。 第一个采样点samples[0]是 ...… 查看全部问答> |
|
TCPMP 界面怎么样 修改才变得漂亮呀?各位大侠帮忙指点,或者有该方案的 可以私聊 QQ:251078251 或MSN:kingdy-huang@hotmail.com… 查看全部问答> |
|
winCE5.0编译错误,生成不了nk.bin文件。在build.log文件中觉得是这两个地方的问题 NMAKE : U1073: don\'t know how to make \'D:\\WINCE500\\platform\\BVDMAIN\\lib\\ARMV4I\\retail\\drvlib.lib\' Stop. NMAKE.EXE -i ...… 查看全部问答> |




