蓝桥杯单片机-国赛5——各外设时序记忆方法及手册重点提取

蓝桥杯涉及三个通讯外设,时序很难记忆,因此本文重点在于记录如何不背时序,直接看手册

注意:本文参考2024年第15届比赛手册讲解,没有英文基础也没关系

每一个外设会在第一张时序图中详细讲解,后续简写,请先看第一个再往后看

时序图中标明了读取和写入对应的R/W位为1还是0,我发现写入都是0,读取都是1

对于外设的详细操作,可查看本人关于省赛的专栏


1.  IIC通讯协议器件

1.1  AT24C02存储器

        打开手册,找到对应图表位置,我们进行逐个讲解

       设备地址: 外设名字叫24c02,02表示2k,因此我们只看第一行。发现存储器设备地址由固定部分“1010”+可变部分“A2A1A0R/W”组成。直接看单片机原理图,搜索A2A1A0发现全部接地,极为000,因此设备地址为:0xa0或者0xa1

        字节写入:用于写入单个字节,按照时序的顺序依次操作为:起始信号、发送写设备地址0xa0、等待应答、发送控制字节、等待应答、写入数据、等待应答、停止信号

        我们在看时序图时,直接结合官方给的底层代码来看。时序图中的START即函数void I2CStart(void)、ACK即函数unsigned char I2CWaitAck(void)、WORD ADDRESS即函数void I2CSendByte(unsigned char byt)且发送的数据byt为控制字节。

注意:写入数据后,存储器需要一点时间才能将数据存储进去。因此不能马上存马上读取。当写进去后,要延时2ms左右再读取。

        连续页写入:会从控制字节定义的起始页开始,逐页连续写入。如果是unsigned char类型的数据则依次写入每一页。如果是int数据则要人为设置,将数据拆成高八位和第八位,再连续写入到两页中。

        读取当前页:基本不使用,我们直接用常规的伪写操作选中要读取数据的页,然后再读取数据。

        随机读取:就是我们常规的方式,先一个伪写操作,选中我们需要读取的某页,然后再进行读取。相关时序只需要按照图片来写即可。

        连续读取:用于针对存储int类型数据,需要连续读取两页时,则必须连续读取数据。按照时序依次读取即可。

1.2  PCF8591模数转换器

        设备地址:查看原理图,A2A1A0三个又是全部接地,因此设备地址为0x90或0x91

        控制字节:

        当第6位为0时,用于读取数据,打开原理图,搜索对应通道:0x00外部模拟信号;0x01光敏电阻rd1;0x02差分放大电路信号;0x03滑动变阻器rb2

        当第6位为1时,用于输出数据,只有DAC输出会用到,一般DAC输出控制字用0x43

        数模转换:用于将0~255的数转为模拟电压输出。直接看时序,顺序依次为:起始信号、写入读设备地址0x90、等待应答、发送控制字节、等待应答、发送数据、等待应答、停止信号

PCF8591的手册里没有把伪写步骤写出来,因此我们要自己记一下

        在每个读时序的S信号之前,先伪写一遍

        模数转换:用于读取rd1,rb4数据。我们需要自己按照伪写操作进行伪写,然后再按照她的时序进行读取,之后再产生非应答信号、停止信号。

2. SPI通讯的ds1302

        该外设可以说是最普通、最简单的外设。同时可以用于秒级的定时

我们会用到的只有这两个部分:

        RTC:定义了各个部分的地址,我们需要用数组将READ和WRITE地址存储起来

        CLOCK BURST:定义写入保护位,只在初始化设置ds1302初始时间时会用到。该地址对应的WP为写保护位,0时允许写入,1时禁止写入

3. ONEWIRE通讯的ds18b20

        由此可以看出,高五位为SIGN位,全为1时表示负温度(一般不存在)

BIT3-BIT0为小数位

        该外设没法子只能自己背,手册里没有直接相关的部分:

初始化、写入0xcc、写入0x44、延时800ms、初始化、写入0xcc、写入0xbe、读取数据

        数据处理:

4.LM555的工作原理简记

        将J3的15(NET_SIG)和16(T0)短接,并通过rb3进行频率数值调节
        T0工作在计数模式unsigned char int,T1工作在定时模式50ms

  • 25
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值