//调用单片机头文件

#define uchar unsigned char  //无符号字符型 宏定义        变量范围0~255

#define uint  unsigned int         //无符号整型 宏定义        变量范围0~65535

#include "eeprom52.h"

#include "nongli.h"

#include "intrins.h"

bit flag_200ms ;

bit flag_100ms ;

sbit beep = P3^7;          //蜂鸣器定义

bit flag_beep_en;

uint clock_value;     //用作闹钟用的

sbit dq   = P3^1;          //18b20 IO口的定义

uint temperature ;    //温度变量

uchar flag_nl;        //农历 阳历显示标志位

uchar menu_1,menu_2;

uchar key_time,flag_value;      //用做连加的中间变量

bit key_500ms  ;

uchar n_nian,n_yue,n_ri;                //农历显示的函数

#include "ds1302.h"

#include "lcd1602.h"

/******************把数据保存到单片机内部eeprom中******************/

void write_eeprom()

{

SectorErase(0x2000);

byte_write(0x2000, fen1);

byte_write(0x2001, shi1);

byte_write(0x2002, open1);

byte_write(0x2058, a_a);

}

/******************把数据从单片机内部eeprom中读出来*****************/

void read_eeprom()

{

fen1  = byte_read(0x2000);

shi1  = byte_read(0x2001);

open1  = byte_read(0x2002);

a_a      = byte_read(0x2058);

}

/**************开机自检eeprom初始化*****************/

void init_eeprom()

{

read_eeprom();                //先读

if(a_a != 1)                //新的单片机初始单片机内问eeprom

{

fen1  = 3;

shi1  = 8;

open1  = 1;

a_a = 1;

write_eeprom();           //保存数据

}

}

/***********************18b20初始化函数*****************************/

void init_18b20()

{

bit q;

dq = 1;                                //把总线拿高

delay_uint(1);            //15us

dq = 0;                                //给复位脉冲

delay_uint(80);                //750us

dq = 1;                                //把总线拿高 等待

delay_uint(10);                //110us

q = dq;                                //读取18b20初始化信号

delay_uint(20);                //200us

dq = 1;                                //把总线拿高 释放总线

}

/*************写18b20内的数据***************/

void write_18b20(uchar dat)

{

uchar i;

for(i=0;i<8;i++)

{                                         //写数据是低位开始

dq = 0;                         //把总线拿低写时间隙开始

dq = dat & 0x01; //向18b20总线写数据了

delay_uint(5);         // 60us

dq = 1;                         //释放总线

dat >>= 1;

}

}

/*************读取18b20内的数据***************/

uchar read_18b20()

{

uchar i,value;

for(i=0;i<8;i++)

{

dq = 0;                         //把总线拿低读时间隙开始

value >>= 1;         //读数据是低位开始

dq = 1;                         //释放总线

if(dq == 1)                 //开始读写数据

value |= 0x80;

delay_uint(5);         //60us        读一个时间隙最少要保持60us的时间

}

return value;                 //返回数据

}

/*************读取温度的值 读出来的是小数***************/

uint read_temp()

{

uint value;

uchar low;                           //在读取温度的时候如果中断的太频繁了,就应该把中断给关了,否则会影响到18b20的时序

init_18b20();                   //初始化18b20

write_18b20(0xcc);           //跳过64位ROM

write_18b20(0x44);           //启动一次温度转换命令

delay_uint(50);                   //500us

init_18b20();                   //初始化18b20

write_18b20(0xcc);           //跳过64位ROM

write_18b20(0xbe);           //发出读取暂存器命令

EA = 0;

low = read_18b20();           //读温度低字节

value = read_18b20();  //读温度高字节

EA = 1;

value <<= 8;                   //把温度的高位左移8位

value |= low;                   //把读出的温度低位放到value的低八位中

value *= 0.625;               //转换到温度值 小数

return value;                   //返回读出的温度 带小数

}

/******************1ms 延时函数*******************/

void delay_1ms(uint q)

{

uint i,j;

for(i=0;ifor(j=0;j<120;j++);

}

/******************写星期函数*******************/

void write_week(uchar hang,uchar add,uchar week)//写星期函数

{

if(hang==1)

write_com(0x80+add);

else

write_com(0x80+0x40+add);

switch(week)

{

case 1:write_data('M');//星期数为1时,显示

write_data('O');

write_data('N');

break;

case 2:write_data('T');//星期数据为2时显示

write_data('U');

write_data('E');

break;

case 3:write_data('W');//星期数据为3时显示

write_data('E');

write_data('D');

[1] [2] [3] [4] [5] [6] [7]

单片机万年历阴阳历c语言,自己制作的单片机万年历 程序+原理图相关推荐

  1. STM32单片机的智能充电桩计费系统的设计(程序+原理图+论文报告)

    本设计: 基于STM32单片机的智能充电桩计费系统的设计(程序+原理图+论文报告) 原理图:Altium Designer 程序编译器:keil 5 编程语言:C语言 编号C0022 [腾讯文档]C0 ...

  2. 111、基于51单片机的电磁感应无线充电系统 手机无线充电器设计(程序+原理图+Proteus仿真+程序流程图+论文参考资料等)

    方案选择 单片机的选择 方案一:AT89C52是美国ATMEL公司生产的低电压,高性能CMOS型8位单片机,器件采用ATMEL公司的高密度.非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通 ...

  3. 单片机应用技术c语言版考试答案,单片机应用技术(C语言)试题

    <单片机应用技术(C语言)试题>由会员分享,可在线阅读,更多相关<单片机应用技术(C语言)试题(7页珍藏版)>请在人人文库网上搜索. 1.一.选择题1.单片机8031的/EA引 ...

  4. 小项目:单片机控制脉搏心电测量仪 测量脉搏心跳 含程序 原理图及仿真文件

    各位小伙伴大家好,考研的事总算告一段落了,最近有点难受去医院一查,呀,好像有点神经衰弱,干什么都有点力不从心,热心的护士小姐姐给我测量了体温查看健康码一气呵成,然后顺利进入了医院.在医生给我测量脉搏和 ...

  5. 单片机万年历阴阳历c语言,单片机阴历阳历c算法万年历.pdf

    单片机阴历阳历c算法万年历 当前位置: 首页 > 嵌入式系统 > 51 单片机万年历优化算法源程序 51 单片机万年历优化算法源程序 字体大小 : 小 中 大 作者: 来源: 日期: 20 ...

  6. 单片机三角波c语言代码,使用51单片机实现三角波输出系统的设计资料说明

    单片机(SCM)是单片机微型计算机(Single Chip Microcomputer) 的简称. 它是把组成微型计算机的各个功能部件:中央处理器CPU.随机存取存储器RAM .只读存储器ROM.I/ ...

  7. 单片机 解释型 c语言脚本,解释型单片机应用程序的研究.pdf

    您所在位置:网站首页 > 海量文档 &nbsp>&nbsp学术论文&nbsp>&nbsp自然科学论文 解释型单片机应用程序的研究.pdf5页 本文档一 ...

  8. 51单片机风扇转动c语言代码,基于51单片机的智能风扇控制系统设计.doc

    完美.WORD格式.整理 范文.范例.指导 基于51单片机智能风扇控制系统的设计与实现 摘要:随着气温的逐渐上升,风扇的需求量也逐渐扩大.传统风扇不能根据外界温度的变化对风扇转速快慢进行调整,也不能对 ...

  9. 单片机控制直流电机c语言代码,用51单片机控制直流电机

    系统主函数流程如图三: ①PWM脉宽控制:本设计中采用软件延时方式对脉冲宽度进行控制,延时程序函数如下: void delay(unsigned char dlylevel){ int i=50*dl ...

  10. 51单片机抢答器c语言代码,使用51单片机实现抢答器的设计资料和代码说明

    在知识比赛中, 特别是做抢答题目的时候, 在抢答过程中,为了知道哪一组或哪一位选手先答题,必须要设计一个系统来完成这个任务.如果在抢答中,靠视觉是很难判断出哪组先答题.利用单片机系统来设计抢答器,使以 ...

最新文章

  1. virtualC++打开汇编语言代码
  2. springboot集成prometheus
  3. [BOI2019][第K大问题][暴力剪枝]D2T1 Olympiads
  4. 大数据WEB阶段 后台和页面之间传递日期格式数据的400问题
  5. 阿里云胡晓明:数据智能将为城市生活带来真正价值
  6. nodejs字符与字节之间的转换
  7. python自定义修饰器_Python概述
  8. 数据表的查询 sqlserver 基本的三个查询
  9. ISE14.7逻辑综合与实现工作过程
  10. onvif学习笔记10:获取RTSP流地址
  11. cad截图软件_AutoCAD电气制图协会线上CAD学习打卡活动结束
  12. css3的clip-path方法剪裁实现(三角形,多边形,圆,椭圆)
  13. 阿里云云防火墙全新发布,重装上阵!
  14. Batch Normalization :深度网络中的BN层
  15. html 页面文字不能复制粘贴,网页文字无法复制粘贴 复制粘贴不能用
  16. 到了公司git使用工作流
  17. MySQL不会丢失数据的秘密,就藏在它的 7种日志里
  18. 什么是GPT模型,GPT下载和国内镜像
  19. java和class的区别
  20. 浅谈百度地图的简单开发之实现地图全景,内景展示功能(四)

热门文章

  1. 我在HW中用到的三款工具
  2. 成功解决生意参谋中transit-id和加密数据date
  3. Android SoundPool封装
  4. 如何用abaqus建造8号槽钢并分析槽钢的受力
  5. 计算机cad标题栏快捷键,CAD标题快捷键
  6. flash 插件 安装
  7. CentOS系统简介
  8. 计算机专业问卷调查,大学生计算机专业调查问卷.doc
  9. 人脸识别数据集之MS-Celeb-1M
  10. Linux meset