51单片机——My-Clock项目
概述
详细
一、My-Clock简介
项目My-Clock是一个环境监测时钟,接入光敏传感器和温湿度传感器监测环境信息,加入DS1302模块用于获取时间,并用OLED显示屏进行实时显示。由于51单片机内部没有AD/DA转换器,所以我们使用PCF8591模块的AD转换功能,来转换光敏传感器返回的模拟值。
My-Clock的硬件材料有:51单片机、光敏传感器、PCF8591 AD/DA转换模块、DHT11温湿度传感器和0.96寸OLED显示屏(7针)。
二、My-Clock实现
1. 硬件连接:
2. OLED如何显示中文参考上篇文章:http://www.demodashi.com/demo/14753.html
初始化OLED和DS1302:
OLED_Init();
Ds1302Init();
获取:光照强度、温湿度和时间:
value = (int)ADC(0); //通道0,获取光照强度值,数据在value中,int():强制转换类型
DHT11_receive(); //获取温湿度值,数据在my_date数组中
datapros(); //获取时间,数据在time_data数组中
OLED实时显示:
OLED_ShowCHinese(0,0,7); //时
OLED_ShowCHinese(16,0,8); //间
OLED_ShowChar(32,0,':'); //':' OLED_ShowString(50,0,time_data); //打印时间
OLED_ShowCHinese(100,0,week-1); //星期几 OLED_ShowString(0,3,"Temp:"); //打印字符串"Temp"
OLED_ShowChar(40,3,my_date[3]); //打印温度值
OLED_ShowChar(48,3,my_date[4]);
OLED_ShowChar(56,3,my_date[5]); OLED_ShowString(72,3,"Hum:"); //打印字符串"Hum"
OLED_ShowChar(104,3,my_date[0]); //打印湿度值
OLED_ShowChar(112,3,my_date[1]);
OLED_ShowChar(120,3,my_date[2]); OLED_ShowCHinese(0,6,9); //光
OLED_ShowCHinese(16,6,10); //强
OLED_ShowChar(32,6,':'); //':'
OLED_ShowNum(40,6,value,2,16); //打印value值
OLED_ShowString(64,6,"My-Clock"); //打印字符串"My_Clock"
My-Clock效果如图:
My-Clock效果演示视频:
三、总结
前面教大家如何开发传感器和使用显示屏,都是为本文做铺垫的,做个小项目将所学的知识整合起来是很有必要的。这里我将获取到的时间、温湿度和光照强度值在OLED显示屏上简单的显示出来,后面我也会发表界面更加好看的文章,还有蓝牙HC-05的使用等等,希望你的继续支持!!!
四、项目结构图
注:本文著作权归作者,由demo大师发表,拒绝转载,转载需要作者授权
51单片机——My-Clock项目的更多相关文章
- 51单片机 Keil C 延时程序的简单研究
应用单片机的时候,经常会遇到需要短时间延时的情况.需要的延时时间很短,一般都是几十到几百微妙(us).有时候还需要很高的精度,比如用单片机驱动DS18B20的时候,误差容许的范围在十几us以内,不然很 ...
- 51单片机实现对24C02进行页写、顺序读取并显示验证
//************************************************************************************* //**程序名称:51单 ...
- [学习笔记]15个QA让你快速入门51单片机开发
一.C语言相关 Q1:sbit与sfr代表是什么?有什么作用? Q2:#define OSC_FREQ 22118400L这句宏命令里的“L”是什么意思? Q3:我粘贴了别人的代码,怎么发现没有un ...
- Keil uVision4 创建51单片机工程
Keil uVision4 创建51单片机工程 版权声明:未经授权,严禁转载! 在学习51单片机的过程当中,我们需要使用 Keil uVision4 来创建一个项目,今天就来图示一下创建的流程. 首先 ...
- 51单片机和Arduino—闪烁灯实现
技术:51单片机学习.Keil4环境安装.Arduino环境安装.闪烁灯教程 概述 本文提供51单片机.Arduino单片机入门软件安装和一些需要使用的软件介绍,为后续单片机.嵌入式开发做 ...
- 使用内存地址点亮LED—跟51单片机一样写代码教学(初步入门)
51单片机点亮一个小灯 #include <rge52.h> sbit LED = P0^ void main(void) { P0 = 0XFE; // 总线操作 sfr P0 0X80 ...
- 【零基础】入门51单片机图文教程(Proteus+Keil)
参考资料: https://www.jianshu.com/p/88dfc09e7403 https://blog.csdn.net/feit2417/article/details/80890218 ...
- 51单片机通过ESP8266模块与手机进行通讯(单片机)
相关连接和资料下载: 个人博客 资料下载 Step1:配置ESP8266 通过USB转TTL模块把ESP8266模块和电脑连接起来,如图: 把ESP8266模块的VCC,GND,CH_PD,UTXD, ...
- Windows 通用应用尝试开发 “51单片机汇编”总结
一.前言 终于完成windows通用应用“51单片机汇编”,半年前开始玩WindowsPhone开发的第一个真正意义上的App(还很多缺点=_=).开发从1月中旬考完试到今天,期间实习了半个月,玩了几 ...
随机推荐
- 一种开源的分布式消息系统Nats
一种开源的分布式消息系统Nats 作者:chszs.未经博主同意不得转载.经许可的转载需注明作者和博客主页:http://blog.csdn.net/chszs 1.NATS介绍 NATS是一个开源的 ...
- window.open 浏览器差异.
首先引入 w3help的,莫的测试: 原帖地址:http://www.w3help.org/zh-cn/causes/BX1053 w3help的测试,和我的测试相互补充,应该比较完整了.悲剧的是 ...
- iOS开发-UISwipeGestureRecognizer滑动手势
滑动手势也算是iOS中交互中很重要的一部分,上下左右滑动,UISwipeGestureRecognizer可以很轻松的解决这个问题,没什么难度直接看代码吧: UISwipeGestureRecogni ...
- Context Application 使用总结 MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
- Topic Model的分类和设计原则
Topic Model的分类和设计原则 http://blog.csdn.net/xianlingmao/article/details/7065318 topic model的介绍性文章已经很多,在 ...
- jquery事件使用方法总结 (转)
http://www.cnblogs.com/cwp-bg/p/7668940.html jquery提供了许多的事件处理函数,学习前端一段时间了,下面对其总结一下,梳理一下知识点. 一.鼠标事件 1 ...
- 网站运维之JAVA-SSH框架数据同步问题
一.环境 SSH环境,查询用的是基于Hibernate的配置文件构建了一个SessionFactory,主要代码如下 public class HibernateUtil { private stat ...
- sublime同步文件与siderbar
有时候,打开了sider bar,想和Eclipse.idea一样,每打开一个tab,就可以在左侧的sider bar 目录上面看到我当前的位置,于是找到了一个插件. SyncedSideBar 安装 ...
- Android 自定义 ListView 显示网络上 JSON 格式歌曲列表
本文内容 环境 项目结构 演示自定义 ListView 显示网络上 JSON 歌曲列表 参考资料 本文最开始看的是一个国人翻译的文章,没有源代码可下载,根据文中提供的代码片段,自己新建的项目(比较可恶 ...
- Activity设置为对话框属性时(Theme.Dialog)时,改变其在屏幕中的位置
如果有需要要将Activity变成一个窗口形式(在Manifest.xml中的activity标签设置android:theme="@android:style/Theme.Dialog&q ...