赞
踩
比赛组委会会在赛场给大家提供比赛需要的基本资料,包括基础底层驱动,烧录软件、串口驱动、原理图、芯片资料包、用户手册等
我们需要使用的外设部分主要分为两类:
①基本外设:包括led、数码管、矩阵键盘、蜂鸣器、继电器等。这部分主要用到原理图。
②其他外设:包括温度传感器、距离传感器等。这部分主要用到底层代码驱动、芯片资料和原理图。
底层驱动:
芯片资料:
原理图(具体使用见各模块使用部分,这里仅仅给个介绍):
等待更新.....
温度获取函数(其他子函数为文件包里的默认底层驱动):
- unsigned int wendu_get()
- {
- unsigned int temp;
- unsigned char low,high;
-
- init_ds18b20();
- Write_DS18B20(0XCC);
- Write_DS18B20(0X44);
- Delay_OneWire(300);//工程自行调试,我的板子300可以稳定实现
- do
- {
- init_ds18b20();
- Write_DS18B20(0XCC);
- Write_DS18B20(0XBE);
-
- low=Read_DS18B20();
- high=Read_DS18B20();
- temp=(high<<8|low)*0.625;//*10
-
- }while(temp==850);//芯片初试温度默认为85度,等待实测温度
- return temp;
- }

h文件:
与主函数的接口,在这里我只放了我在主函数需要的函数,也就是读取温度的函数:
- #ifndef __ONEWIRE_H__
- #define __ONEWIRE_H__
-
- unsigned int wendu_get();
-
- #endif
具体实现原理见芯片资料:
可配置的温度精度,精度越高转换时间越长,不配置默认为12位精度,转换时间为750ms。
先读高八位再读第八位
具体指令及其解释,结合代码看。
端口定义:
sbit DQ=P1^4;
等待更新.....
菜鸡作者第一次写博客,但是对蓝桥杯单片机也是有很多宝贵的经验的,也是蓝桥杯大学组国奖获得者,大家有什么问题可以直接私信作者或者在评论区问,作者看到之后第一时间回复哦。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。