c51单片机万年历模拟,12864LCD屏显示实时温度与时间
前言
c51单片机万年历模拟期末作品,用到了温度传感模块及12864液晶显示模块及矩阵键盘模块及复位电路,电源模块,晶振模块,可在12864屏上显示实时温度与时间,本人自己做的期末作品,仅供同学们研究学习。
一、效果展示
二、连线
二、部分代码示例
1.端口定义
代码如下(示例):
#include<reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
#define delayNOP(); {_nop_();_nop_();_nop_();_nop_();};
// 矩阵键盘
unsigned char j,k,jp,key;
bit flag = 0;
sbit row1=P2^5; //行端口定义
sbit row2=P2^4;
sbit row3=P2^3;
sbit row4=P2^2;sbit col1=P1^7; //列端口定义
sbit col2=P1^6;
sbit col3=P2^0;
sbit col4=P2^1;
/*TS12864A-3 端口定义*/
#define LCD_data P0 //数据口
sbit LCD_RS = P3^5; //寄存器选择输入
sbit LCD_RW = P3^6; //液晶读/写控制
sbit LCD_EN = P3^4; //液晶使能控制
sbit LCD_PSB = P3^7; //串/并方式控制uint temp;
float f_temp;
sbit s1=P2^2;
sbit s2=P2^3;
sbit s3=P2^4;
sbit ds=P3^3; //温度传感器信号线
2.温度显示函数
代码如下(示例):
void tempdisplay() //温度显示函数{uint mm;tempchange();mm=get_temp(); tab2[10]=mm%1000/100+'0';tab2[11]=mm%100/10+'0';tab2[12]='.';tab2[13]=mm%10+'0';wr_com(0x80); for(i=0;i<14;i++)
{wr_date(tab2[i]);
delay(10);
}
wr_com(0x88); //显示作者1for(i=0;i<9;i++)
{wr_date(tab4[i]);
delay(10);
}
wr_com(0x98); //显示作者2for(i=0;i<9;i++)
{wr_date(tab5[i]);
delay(10);
}
}
3.时间显示函数
代码如下(示例):
void display() //时间显示函数
{change();
wr_com(0x90); //数字显示位置
wr_date(y1+48);
delay(10);
wr_date(y2+48);
delay(10);
wr_date(y3+48);
delay(10);
wr_date(y4+48);
delay(10);
wr_com(0x93);
wr_date(mol+48);
delay(10);
wr_date(mor+48);
delay(10);
wr_com(0x95);
wr_date(dl+48);
delay(10);
wr_date(dr+48);
delay(10);
wr_com(0x89);
wr_date(hl+48);
delay(10);
wr_date(hr+48);
delay(10);
wr_com(0x8b);
wr_date(ml+48);
delay(10);
wr_date(mr+48);
delay(10);
wr_com(0x8d);
wr_date(sl+48);
delay(10);
wr_date(sr+48);
delay(10);}
4.主函数
代码如下(示例):
void main()
{lcd_init(); //lcd初始化
init(); //定时器初始化
fistdispay(); //汉字显示
while(1)
{keyScan();
if(flag){lcd_init(); //lcd初始化while(1){tempdisplay(); //温度显示}}
else{display(); //时间显示calendar_change(); //判断闰年非闰年 }}
}
总结
提示:
上述为部分代码,
想学习参考的同学可以关注公众号:老王搞电脑
后台回复:单片机
即可获得源程序及pcb制版图
c51单片机万年历模拟,12864LCD屏显示实时温度与时间相关推荐
- 基于51单片机万年历可调电子时钟闹钟温度(实物图+源码+仿真+原理图+论文)
资料编号:038 硬件构成:51单片机+最小系统+LCD1602液晶显示模块+时钟模块+温度采集模块+蜂鸣器模块+按键模块 1.采用LCD1602液晶屏显示.DS1302时钟芯片和DS18B20温度 ...
- 思迈特软件Smartbi:数据大屏显示实时数据解决方案
大数据时代 ,数据 是有价值 的"黄金 ",但是 数据 是不会 告诉你 ,那里 存在 价值 ,我们可以通过 大屏显示来直观 的了解 数据 中隐含 的价值 . 大屏显示是什么?顾名 ...
- css3获取当前时间并显示,实时获取当前时间并展示在页面上
简介 实时获取当前时间并展示在页面上,是很多地方常用的:在页面中做此展示以便查看时间.本文使用js通过一个小的demo实现效果. 完整Code 实时展示当前时间 #time { width: 60%; ...
- 万年历单片机c语言,c51单片机万年历的c程序
求一个单片机可以显示阳历的年.月.日.星期.小时.分.秒.阴历也能显示,标明是否为闰年. 用LCD液晶显示,可以调整时间..... 这有个数码管显示的程序 以前做的,.. 你可以在我这个程序上修改修 ...
- C51单片机使用3-数码管显示
目录 一.硬件介绍 1.原理 2.多位数码管驱动 二.数码管显示控制 1.静态显示 (1)单个数码管 (2)多个数码管显示 (3)显示数字使用编码方式 2.动态显示 (1)原理 (2)代码实现 (3) ...
- 12864c语言接温度计,单片机万年历+温度计+12864LCD液晶显示 仿真+程序
#include #include #include #include unsigned char j[8]; sbit KEY1=P3^2; sbit KEY2=P3^3; sbit KEY3=P3 ...
- C51单片机实验——24小时时钟显示(proteus+asm)
前言 外部中断0控制计数器的启动/停止 外部中断1控制计数器的清零复位 P1.0控制LED的段选口使能信号 P1.1控制LED的位选口使能信号 Proteus电路图 asm代码 ORG 0000H L ...
- 基于C51单片机的万年历设计(LCD1602显示)
C51单片机万年历设计 注:该程序基于普中科技C51 V2.2开发板设计,库函数和硬件资料均来自普中科技,侵删.main.c大部分为原创,如有雷同,纯属巧合. 名称:C51万年历. 硬件:以C51芯片 ...
- c语言文件分屏显示,通用子目录文件显示方法
通用子目录文件显示方法 在用CHKDS/V对磁盘子目录及子目录文件进行查找时,由于输出显示信息没有分屏显示,很容易错过需要的信息,并且显示信息没有标记出隐藏的子目录名及子目录文件名,这样就对进一步的子 ...
最新文章
- Ubuntu 14.04 64bit上磁力链爬虫dht部署指南
- 每个人都应该懂点函数式编程
- 如何定义中文转语音的语气
- sublime3(anaconda) 无法自动补全第三方模块
- nginx配置 yii2 URL重写规则 SSI配置使shtml
- 列表[1,2,3,4,5],请使用map()函数输出[1,4,9,16,25],并使用列表推导式提取出大于10的数,最终输出[16,25]
- 是、大于等于_血压高,是不是等于患上高血压?吃药之前,先搞清楚
- android顶部标题app_name,如何写一个app通用的title
- Webpack 中 css import 使用 alias 相对路径
- 技术干货 | Serverless技术架构——极简运维 无限扩容
- iOS APP中第三方APP调用自己的APP,打开文件
- OpenCV_(Based on Sobel Filter to Detect edges) 基于Sobel算子的方向滤波器检查边缘
- 遇见C++ Lambda
- 我的学习日志11.6
- 当贝显示服务器生病,【当贝市场】电视盒子卡顿的三大原因
- 八大顶层设计,决定企业融资难度
- BAT-批处理去除文件夹及子文件夹名子中的空格-并整理文件夹和子文件夹目录
- 最大公约数和最小公倍数
- 前端优化之webpack
- matlab变量及操作