单片机万年历(LCD12864、DS18B20、DS1302)

发布者:Enchanted2023最新更新时间:2022-08-24 来源: csdn关键字:单片机  万年历  LCD12864  DS18B20  DS1302 手机看文章 扫描二维码
随时随地手机看文章

一、简介

此电路由AT89C51最小电路板和LCD12864显示模块、DS18B20温度模块、DS1302时钟模块组成。


主要的功能是:显示实时的时间和当前的温度。


二、运行效果

三、部分代码

/*想要更多项目私wo!!!*/

#include

#include

#include

#include


unsigned char j[8];

sbit KEY1=P3^2;

sbit KEY2=P3^3;

sbit KEY3=P3^4;

sbit LED1=P3^5;

sbit LED2=P3^6;

sbit LED3=P3^7;


uchar time0_count; //time0¼ÆÊýÆ÷


void delay10(void)

{

unsigned char i,j;

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

for(j=0;j<200;j++);

}


unsigned char conver(unsigned char a,unsigned char b,unsigned char c)

{

 

if((a&0x0f)==0x0a) a=a+6;

  if(a==b)  a=c;

return a;

}


main() 

{

bit flag_2=1;

bit flag_3=1;

bit flag_4=1;

int i;  

char a;    

unsigned  char  choose=0x01;


InitLCD();   //³õʼ»¯LCD12864


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

{

ShowNumber(6,i*8+16,i+14);

}


Show32x32(0,0,0);

ShowChina(4,0,7);

ShowChina(4,16,8);

ShowChina(4,32,9);

ShowChina(4,48,10);

ShowNumber(4,64,10);   //ÏÔʾζȸßλ

read_serial(j);   //¶ÁÈ¡DS1302µÄʱ¼ä


  ShowNumber(2,32,j[2]>>4&0x03);

ShowNumber(2,40, j[2]&0x0f);

ShowChina(2,48,3);

ShowNumber(2,64,j[1]>>4&0x07);

ShowNumber(2,72, j[1]&0x0f);

ShowChina(2,80,4);

ShowNumber(2,96,j[0]>>4&0x07);

ShowNumber(2,104, j[0]&0x0f);

ShowChina(2,112,5);



  ShowNumber(0,32,j[6]>>4&0x0f);

ShowNumber(0,40, j[6]&0x0f);

ShowChina(0,48,0);

ShowNumber(0,64,j[4]>>4&0x01);

ShowNumber(0,72, j[4]&0x0f);

ShowChina(0,80,1);

ShowNumber(0,96,j[3]>>4&0x03);

ShowNumber(0,104, j[3]&0x0f);

ShowChina(0,112,2);


ShowChina(4,104,6); 

ShowNumber(4,120,j[5]-1&0x07);

while(1)

{

if(flag_2==1)

read_serial(j);   //¶ÁÈ¡DS1302µÄʱ¼ä

else 

write_date_time(j);


a=Read_Temperature();   //¶ÁÈ¡DS18B20µÄζÈ

if(a<0)   //´¦ÀíζÈÕý¸º

{

a = (-1)*a; // È¡²¹

ShowNumber(4,72,11);   //ÏÔʾζÈÕý¸º

}

else 

ShowNumber(4,72,12);   //ÏÔʾζÈÕý¸º

}

ShowNumber(4,80,a/100);   //ÏÔʾζȸßλ

ShowNumber(4,88,a/10%10);  //ÏÔʾζÈÖÐλ

ShowNumber(4,96,a%10);     //ÏÔʾζȵÍλ


LED3=1;LED2=0;LED1=1;

if(a>40){LED3=0;LED2=1;LED1=1;}

if(a<30){LED3=1;LED2=1;LED1=0;}


if(KEY1==0)   //°´¼ü1--´¦ÀíÉ趨ʱ¼äºÍ·µ»Ø

{

delay10();

if(KEY1==1)

{

delay10();

flag_2=~flag_2;

}

}


if(KEY2==0)   //°´¼ü2--´¦ÀíÑ¡ÔñÉ趨ʱ¼äµÄÏîÄ¿

delay10();

if(KEY2==1)

{

delay10();

choose++;

if(choose==8)

choose=0x01;

}

}


if(KEY3==0)   //°´¼ü3--´¦ÀíÉ趨ʱ¼äºÍ·µ»Ø

{ delay10();

if(KEY3==1)

{

delay10(); 

switch(choose)

{

case 1: j[6]++; j[6]=conver(j[6],0xa0,0x00);break;//Äê

case 2: j[5]++; j[5]=conver(j[5],0x07,0x00);break;//ÖÜ

case 3: j[4]++; j[4]=conver(j[4],0x13,0x01);break;//ÔÂ

case 4: j[3]++; j[3]=conver(j[3],0x32,0x01);break;//ÈÕ

case 5: j[2]++; j[2]=conver(j[2],0x24,0x00);break;//ʱ

case 6: j[1]++; j[1]=conver(j[1],0x60,0x00);break;//·Ö

case 7: j[0]++; j[0]=conver(j[0],0x60,0x00);break;//Ãë

}

}

}


if(flag_2==1)

read_serial(j);   //¶ÁÈ¡DS1302µÄʱ¼ä

else 

write_date_time(j);


//ʱ·ÖÃë

ShowNumber(2,32,j[2]>>4&0x03);

ShowNumber(2,40, j[2]&0x0f);

ShowChina(2,48,3);

ShowNumber(2,64,j[1]>>4&0x07);

ShowNumber(2,72, j[1]&0x0f);

ShowChina(2,80,4);

ShowNumber(2,96,j[0]>>4&0x07);

ShowNumber(2,104, j[0]&0x0f);

ShowChina(2,112,5);


// ÄêÔÂÈÕ

ShowNumber(0,32,j[6]>>4&0x0f);

ShowNumber(0,40, j[6]&0x0f);

ShowChina(0,48,0);

ShowNumber(0,64,j[4]>>4&0x01);

ShowNumber(0,72, j[4]&0x0f);

ShowChina(0,80,1);

ShowNumber(0,96,j[3]>>4&0x03);

ShowNumber(0,104, j[3]&0x0f);

ShowChina(0,112,2);

ShowChina(4,104,6); 

ShowNumber(4,120,j[5]-1&0x07);


}

}

关键字:单片机  万年历  LCD12864  DS18B20  DS1302 引用地址:单片机万年历(LCD12864、DS18B20、DS1302)

上一篇:基于单片机的智能计算器(AT89C51、LCD1602、矩阵键盘)
下一篇:单片机测温系统(AT89C51、DS18B20温度传感器、LCD1602)

推荐阅读最新更新时间:2024-11-07 12:05

为什么要选择AVR单片机
什么是AVR单片机?AVR单片机有什么优点?为什么要选择AVR单片机? AVR单片机是ATMEL公司研制开发的一种新型单片机,它与51单片机、PIC单片机相比具有一系列的优点: 1:在相同的系统时钟下AVR运行速度最快; 2: 芯片内部的Flsah、EEPROM、SRAM容量较大; 3:所有型号的Flash、EEPROM都可以反复烧写、全部支持在线编程烧写(ISP); 4:多种频率的内部RC振荡器、上电自动复位、看门狗、启动延时等功能,零外围电路也可以工作; 5:每个IO口都可以以推换驱动的方式输出高、低电平,驱动能力强; 6:内部资源丰富,一般都集成AD、DA模数器;PWM;SPI、USART、TWI、I2C通信口;丰富的中
[单片机]
51单片机的状态迁移与复位操作
   1 单片机的工作状态及其状态迁移   80C51单片机的各种活动,可以描述成多个不同的工作状态或工作模式。这里利用笔者构思的一个单片机工作状态迁移图(如图1所示)来说明。不过,这里重点关注的是复位状态。 500)this.width=500" border=0> 图1 单片机工作状态迁移图   经过仔细分析之后,从图1中可以看出:   ① 把单片机经历的所有生存状态归纳和描绘成5个状态——1个非工作状态(即无电状态)和4个工作状态。   ② 只有复位状态是一个暂态,其他均为稳态;并且每次单片机进入正常运行状态时,都要经历一次复位状态。   ③ 只有在正常运行状态(这里记作NORMAL)下,单片机才按照程序存储器中固
[单片机]
51<font color='red'>单片机</font>的状态迁移与复位操作
数字温度传感器DS18B20程序
   ORG  0000H START: MOV  SP,#60H     ;开机初始化     MOV  P0,#0FFH     MOV  P1,#0FEH     MOV  P2,#0FFH     MOV  P3,#0FFH MAIN:  LCALL  GET_TEMPER   ;调用读温度子程序     LCALL  DISP      ;调用 数码管 显示子程序     AJMP  MAIN      ;重复循环 ;------ 读DS18B20传感器的温度值 ------ GET_TEMPER:     SETB  P3.3     LCALL  RST18B20    ;复位DS18B20
[单片机]
国内首家车规级MCU研发团队成立,致力打破发达国家垄断
近日,中国首家主攻车规 MCU 的芯片研发团队 - 蜂驰高芯(天津)科技有限公司(以下简称“蜂驰高芯”)在中新天津生态城正式注册成立。注册资本 1 亿元,致力于高端进口芯片的国产替代。 蜂驰高芯计划通过六年三阶段的持续投入,打破国际车载半导体国产自主研发高性能车载芯片空白。据蜂驰高芯投资人介绍,他们将建设 MCU 研发实验室,从事中国车规级芯片设计研发。目前,实验室已进入设计阶段,如果政策允许,首批员工将从 3 月初陆续进驻,进行实验室搭建,预计 4 月中旬完工。 车规(适用于汽车电子元件的规格标准)芯片是现代汽车工业不可或缺的重要关键零部件之一,目前全球每年 车规芯片 产品销售额约 700 亿美元。中国市场汽车产
[嵌入式]
国内首家车规级<font color='red'>MCU</font>研发团队成立,致力打破发达国家垄断
BTS7960大功率直流电机驱动板电路图与PCB及单片机
【简要说明】 一、尺寸:长76mmX宽65mmX高28mm 二、主要芯片:BTS7960、lm2576 三、工作电压:控制信号直流3V至12V;驱动电机电压6V至27V 四、可驱动直流(6V至27V之间电压的电机) 五、最大输出电流43A 六、特点:1、具有信号指示和电源指示 2、转速可调 3、抗干扰能力强输入全光电隔离 4、内部具有续流保护 5、可单独控制一台直流电机 6、PWM脉宽平滑调速(可使用PWM信号对直流电机调速) 7、可实现正反转 8、此驱动器非常适合控制飞思卡尔智能车,驱动器压降小,电流大,驱动能力强 适用场合:单片机学习、电子竞赛、产品
[单片机]
BTS7960大功率直流电机驱动板电路图与PCB及<font color='red'>单片机</font>
单片机系统在线维护系统的设计实现
  1 引 言   单片机应用系统具有结构简单,可靠性高,灵活性强,性能价格比高等特点,如今已被广泛地应用于计算机行业的各个领域。随着单片机应用的推广,相应地带来了单片机系统的维护问题,特别是在相同硬件结构条件下多个版本软件的管理问题,因此实现单片机系统的在线维护是非常必要的。   2 系统设计原理   单片机系统的在线维护有两种情况,一种就是就将系统的程序分成两个部分,并分别装载到单片机的EPROM与FLASH中,如AT89C52等,因为EPROM一般需要通过专门的编程仪器才能实现编程,所以一般是不能在线更改的;但是由于FLASH可以在线进行改写,通过对FLASH的在线编程就可实现单片机系统的在线维护了。此时的FLASH芯
[单片机]
<font color='red'>单片机</font>系统在线维护系统的设计实现
51单片机P0口上拉电阻的深入研究
如果是驱动led,那么用1K左右的就行了。如果希望亮度大一些,电阻可减小,最小不要小于200欧姆,否则电流太大;如果希望亮度小一些,电阻可增大,增加到多少呢,主要看亮度情况,以亮度合适为准,一般来说超过3K以上时,亮度就很弱了,但是对于超高亮度的LED,有时候电阻为10K时觉得亮度还能够用。通常就用1k的。 对于驱动光耦合器,如果是高电位有效,即耦合器输入端接端口和地之间,那么和LED的情况是一样的;如果是低电位有效,即耦合器输入端接端口和VCC之间,那么除了要串接一个1 4.7k之间的电阻以外,同时上拉电阻的阻值就可以用的特别大,用100k 500K之间的都行,当然用10K的也可以,但是考虑到省电问题,没有必要用那么小的。 对
[单片机]
【GD32 MCU 入门教程】GD32 MCU 常见外设介绍(9)FWDG 模块介绍
9.1.FWDG 简介 本章我们主要分析独立看门狗(FWDG)的功能框图和它的应用。独立看门狗用通俗一点的话来解释就是一个12位的递减计数器,当计数器的值从某个值一直减到0的时候,系统就会产生一个复位信号,即FWDGTRSTF。如果在计数没减到0之前,刷新了计数器的值的话,那么就不会产生复位信号,这个动作就是我们经常说的喂狗。看门狗功能由 VDD 电压域供电,在停止模式和待机模式下仍能工作。独立看门狗定时器有独立的时钟源(IRC40K) 。 即使主时钟失效, FWDGT依然 能保持正常工作状态, 适用于需要独立环境且对计时精度要求不高的场合。 9.2.GD32 FWDG 外设原理简介 因篇幅有限,本文无法详细介绍GD32所有系列F
[单片机]
【GD32 <font color='red'>MCU</font> 入门教程】GD32 <font color='red'>MCU</font> 常见外设介绍(9)FWDG 模块介绍
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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