美文网首页
蓝桥杯扩展板外设程序笔记

蓝桥杯扩展板外设程序笔记

作者: 大亮x | 来源:发表于2020-11-18 15:31 被阅读0次

目录

1、数码管
2、3轴LIS302DL
3、DHT11

一、数码管

驱动数码管用的芯片为SN74LS595N,有三个控制引脚为:RCLK、SCK、SER。

SER:串行数据输入端。
SCK:时钟,上升沿时移位寄存器的数据进入数据存储寄存器,下降沿时存储寄存器数据不变。
RCLK:最后的闸门

此芯片可以类比为赛马,SER为1/0代表黑马或白马,每在马厩里放一只马,需要打开马厩门再关闭,也就是SCK置位再复位。等所有的马都进去后,RCLK就是最后的闸门,打开再关闭,马就跑出去了要注意马的前后顺序

1

数码管改进:SCK、RCLK两个都是先拉低点表使能,拉高进行结束。

2

二、调传感器LIS302DL,莫名其妙的调不出来,最终发现了问题所在:i2c的引脚不对呀!!!!

自带的i2c例程的初始化的是eeprom的引脚。除了要改引脚还要改时钟初始化的GPIOX。

改完之后即可开始编写程序:
程序只要分以下几个部分
1、编写器件读写函数,和24C02是一样的
2、查阅数据手册找到以下寄存器,并复制到h文件,进行地址宏定义


寄存器

3、初始化寄存器,只需要使用写函数向红色的寄存器依次写入:0x47 0x00 0xC1 0x10 0x28 40
4、编写读取函数:检测是否有写数据进入,也就是寄存器0x27内的第4位,也就是&0x08,是否为0,不为0就说明可以读取数据了。读取数据只需使用读函数,读寄存器29 2b 2d即可。
5、补充个检测期间是否存在函数:读取寄存器0F 如果不等于0就是检测到了器件。

注:写读地址分别为:0x38 0x39

cx

三、我是真的服了之DHT11

1 2 3 4

首先需要初始化引脚,并同时把引脚拉高等待后续使用
读取函数时序解读:
1、拉低引脚18ms,再拉高20us,之后就可以将引脚变为输入模式。
2、等待拉高引脚,拉高后再等待拉低,现在数据就开始传输了。
3、用一个for循环,等待拉高,拉高后等待27us后检测电平,如果为高数据即为1,否则为0,将数据保存下来,再等待电平拉低,拉低后准备下个数据。40次循环后退出for循环。
4、将引脚设置为输出模式,并输出高电平,为下一次执行做准备。
5、进行校验,并返回数据。

1

四、DS18B20

读取的顺序:
1、写复位 cc 44 延时while5000 复位 cc be
2、读取第八位,读取高八位,融合数据

1
读取温度:
z = (ds18b20_read()&0x7ff);
x = z/16.;

*写下这句话的时候我参加第十一届蓝桥杯嵌入式组已经回来了,这次题目还是很简单,主要用到了捕获测量频率、输出频率可变动的PWM,adc采集电压,以及万年不改的LCD、LED、IO按键。


在比赛结束之前我特意的看了一下我一直担心的两个外设DHT11、DS18B20究竟给了哪些现成的程序:

DS18B20不给的部分:


需要自己写的部分

至于DHT11似乎只需调用就好,或者需要改一下引脚或者时钟配置。时序还是给好了的。(不过这只是第十一届哦,也许下一次就不会给了,所以大家还是乖乖读一读数据手册,背一背程序⑧)

相关文章

网友评论

      本文标题:蓝桥杯扩展板外设程序笔记

      本文链接:https://www.haomeiwen.com/subject/zdghbktx.html