单片机AT89C51万年历LCD显示实现日期时间温度闹钟功能

您所在的位置:网站首页 lcd电子时钟的设计 单片机AT89C51万年历LCD显示实现日期时间温度闹钟功能

单片机AT89C51万年历LCD显示实现日期时间温度闹钟功能

2023-08-28 11:13| 来源: 网络整理| 查看: 265

一.设计功能

1、实现日历功能,显示年月日时分秒 2、测量温度并显示 3、具有闹钟功能,可设置闹钟时间 4、温度超过上下限则启动报警 5、使用存储器芯片存储系统参数,掉电保存

二、程序流程图

在这里插入图片描述

三、仿真

日期 星期 时间 当前温度 在这里插入图片描述 下一页 闹钟时间 温度上限 温度下限 在这里插入图片描述

四、相关程序 sbit beep=P2^7;//蜂鸣器 sbit k1=P3^2; sbit k2=P3^3; sbit k3=P3^4; sbit k4=P3^5; //-----------------------------------显示数组 uchar ye=0;//第一页 uchar hang1[]="2000.00.00 0 ";//日期+星期 uchar hang2[]="00:00:00 T:000 C";//时间+温度 uchar hang3[]="lock 00:00 ";//第二页 闹钟 uchar hang4[]="L:000 C H:000 C";//温度阀值 uchar lcd_xian=0;//显示延时变量 //----------------------------------- //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>光标位置 uchar cursor=0;//光标位置 uchar code cursor_num[]={1,3,1,6,1,9,1,12,2,1,2,4,2,7,1,6,1,9,2,4,2,13};//光标位置数组.行+列 //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> //###################################测量值变量 uchar wendu=0,wen_L=10,wen_H=30;//温度+阀值 uchar shi=6,fen=0;//闹钟 //################################### //**************************************主函数 void main() { uchar two; //11111111111111111111111111111111基本模块初始化 hang2[14]=0xdf; hang4[5]=0xdf; hang4[14]=0xdf; init_1602(); Ds1302ReadTime();//启动DS1302 TIME[0]=0; Ds1302Init(); //11111111111111111111111111111111 //22222222222222222222222222222222显示初始化 wen_L=At24c02Read(0); //读取温度阀值 if(wen_L>200) { wen_L=10; At24c02Write(0,wen_L); Delay1ms(10); } wen_H=At24c02Read(1); if(wen_H>200) { wen_H=10; At24c02Write(1,wen_H); Delay1ms(30); } shi=At24c02Read(2); if(shi>200) { shi=6; At24c02Write(2,shi); Delay1ms(10); } fen=At24c02Read(3); if(fen>200) { fen=0; At24c02Write(3,fen); Delay1ms(10); } //22222222222222222222222222222222 //===============定时器初始化 TMOD|=0X01; TH0=0X3C; TL0=0XB0; ET0=1;//打开定时器0中断允许 EA=1;//打开总中断 TR0=1;//打开定时器 //=============== while(1) { //;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;判断报警 if((wendu>wen_H)||(wendu


【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3