51单片机
文章平均质量分 56
学习51单片机的笔记
躬耕未敢忘忧国
这个作者很懒,什么都没留下…
展开
-
五,ADC的配置
这个作用可以是电池供电的时候电量不断下降的时候监控电池电压。位,所以转换结果我们需要设置左对齐还是右对齐;也就会变,这样就可以反推出准确的供电电压。是单片机经常用到的功能,主要是数模转换。通常设置最低速,速度越慢值越精确;内部参考电压反推出准确的电源电压,的值来计算其他通道的电压值。,在使用前需要先配置通道。六,当电源不稳的时候,通过。参考是出厂校准的值,存放在。的值不变,电源电压会变,第。的值被保存在两个寄存器里。的通道,因为不是每一个。个寄存器存放,分别是。打开电源,启动,然后。原创 2023-07-04 09:21:37 · 2230 阅读 · 0 评论 -
一 按键与点灯
/ 扩展外部端口CCP2为下降沿中断口 对应按键K1,CCAPMx是触发设置寄存器。// PCA中断标志位清0,CCON寄存器有3位是PCA状态显示寄存器。else if(CCF1 == 1) // 如果是按键K2产生的CCP1中断。else if(CCF0 == 1) // 如果是按键K3产生的CCP2中断。4.1 /* PCA初始化 设置P_SW1寄存器绑定对应的IO脚 */if(CCF2 == 1) // 如果是按键K1产生的CCP0中断。// P_SW1 的第5位置0。原创 2023-07-04 09:17:50 · 64 阅读 · 0 评论 -
八,并口通讯
屏幕通讯驱动的实现,后面详细说屏幕的使用,因为为了显示效果,我们还需要建立字库和图片,自己一个一个点的设置颜色,工程量巨大,不容易实现,后面我们借助工具来使用,这样能减轻工作量提升效率。这个厂方提供屏幕初始化数据都是类似的,要注意函数名称和自己的一样,主要实现写数据,写命令和延时,组合好,使用屏幕前必须先跑一下厂方的初始化函数。,目前运行的是整个屏幕所有的点设置统一颜色,而使用屏幕就是在不同的点显示不同的颜色,组合好就是我们需要的效果,这里准备分开说,这篇写。我们控制屏幕,只需要写数据和命令就行。原创 2023-07-04 09:23:15 · 226 阅读 · 0 评论 -
二:PWM配置
是归零中断允许,归零是当周期从零计数到设置值的时候,继续从零开始,循环往复;其实是一个定时器,配置这些寄存器要注意,需要打开特殊功能寄存器的开关。周期的时候依然为低,也就是不变,这种情况下我们保持。模块,因为引脚非常多,绑定的时候要看清楚哦,例如。设置的值引脚会变为高电平,注意哦,这里我们初始化。位寄存器是在一起的,我们直接搞个宏定义当一个。设置的值又重新开始,一直循环;设置的值引脚会变为低电平,计数到。的时候设置初始电平为低,当遇到。我们现在系统时钟,不分频,即。的周期和占空比寄存器,原创 2023-07-04 09:21:51 · 1219 阅读 · 0 评论 -
四,串口通讯
先初始化串口,打开写出世界上最丑网站的作者老姚的下载工具,然后设置一下,最后复制配置数据到程序中来完成串口初始化;// 把POWER的值通过串口发送出去。串口通信是单片机经常使用通讯方式,如果是单片机直接互相连接串口就行,如果是电脑连接单片机就需要。发送标志是(TI)位接收标志是(RI)位;添加相应的头文件,#include “stdio.h”串口的发送与接收,串口中断的寄存器都可以位控制,需要打开串口中断(ES)位和总中断(EA)位;转串口芯片配合使用才能与单片机通讯;串口初始化的时候(TI)位要置1,原创 2023-07-04 09:23:20 · 49 阅读 · 0 评论 -
三:定时器
定时器和计数器其实一个寄存器配置,他们工作模式相同,都是对脉冲计数,不同的是脉冲来源不同,计数器是对外部脉冲计数,定时器是对内部时钟计数。一:配置时钟,确定定时多长时间进入中断,我们要先设置好时钟。就是需要每一次进入中断的时候设置一下重装载值,不然会从。用初值来决定多长时间进入一次定时器中断,单片机主频是。先清除一下定时器中断是防止上电就进入定时器中断,,设置的定时器频率等于单片机主频也是。位设置定时器还是计数器,定时器置。四:清除定时器中断开启定时器;个寄存器来设置定时器初值,就进入定时器中断,模式。原创 2023-07-04 09:20:13 · 1052 阅读 · 0 评论 -
六,IIC通讯配置
主要要注意速度,QMA7981最大通讯速度为400K,在配置速度的时候不要超过400k就行,最低速的MSSPEED是63的值,代入公司计算,我们系统频率是35M,1:iic写命令,有2个参数,寄存器地址和要发送的数据,注意寄存器地址有7位并且可以通过芯片上下拉做选择,是为了可以并联使用2个相同的芯片。:读取,我们读取从机返回的数据也是有时序的,数据也是通过SDA引脚读回来的,当然也读8个位,还是得循环。,发送与接收,发送的话需要将发送的数据写到发送数据寄存器里面,需要配合控制寄存器使用。原创 2023-07-04 09:24:32 · 1409 阅读 · 0 评论 -
十,看门狗
当单片机死机的时候,我们希望可以重启单片机,而看门狗就是可以在单片机死机的时候,自动重启。,选择最大分频系数。这样看门狗初始化完成了。先看寄存器,这一个寄存器就可以了。原创 2023-07-04 09:32:52 · 39 阅读 · 0 评论 -
七,spi通讯配置
,时钟的上升沿读取数据,下降沿发送数据,这特么好神奇哦,一个时钟里,既可以发送一个位,也能接收一个位,呀,这就是全双工通讯啊!通讯优点就是快,一般单片机运行频率都达不到他通讯最大速度,这样各步骤间延时就不要了,然后最低需要。读数据,因为是全双工的写一个字节的同时也会读一个字节,所以写函数要带返回值。读写配置,发送完也刚好接收完,用同一个函数。,主设备数据输出,从设备数据输入;主设备数据输入,从设备数据输出;,从设备使能信号,由主设备控制。个字节的数据,第一个是生产商的。,时钟信号,由主设备产生;原创 2023-07-04 09:25:05 · 646 阅读 · 0 评论 -
十一,低功耗
唤醒,进入的低功耗模式,单片机会一直保持低功耗状态,通常用外中断或定时器唤醒。唤醒以后会直接从进入掉电模式的下一个指令开始执行。由内部供应时钟的外设全部关断。值,但是他有可能是负数,我们要使用绝对值来计算。需要配置掉电计时器,设置掉电计时器唤醒的时间。这个掉电唤醒寄存器的速度和单片机主频没有关系;中断、内部掉电唤醒计时器等方式唤醒。口保持进入空闲之前的正常状态。如果想精确设置唤醒时间,需要在。的按钮,单片机就被唤醒了。空闲模式下外设工作正常,,外中断唤醒,触发外中断。里面写的就算计数次数。原创 2023-07-05 13:37:43 · 276 阅读 · 0 评论 -
十五,计步器
产生了中断,表示QMA7983产生了有效的步数,我们要读取这个步数就行,注意这个步数值是一个24位数据且存放在3个8位寄存器里面,我们读出这3个寄存器,第一个移16位,第二个移8位,第3个不移位,这样再加起来保存到一个24位的变量里就是读出的步2数。显示的字库需要重新制作,先制作字库,因为是数字,我们只需要制作0,1,2,3,4,5,6,7,8,9这10个字符就行。走路的时候x,y,z的波形如上图,根据这些阈值计算,计算个屁,内置算法了,直接读。六,显示和步数都配置好了,我们在主函数里面配置。原创 2023-07-05 13:37:54 · 130 阅读 · 0 评论 -
十三,GBK字库保存在GD25Q64
因为中文和英文的字库加起来有好几万个字,占单片机内存太多,所以我们使用片外存储。需要把以前的液晶显示,我们使用串口把字库发送到单片机保存在。四,通过串口把生成的字库发送到单片机,然后再保存到。三,使用二进制编辑软件打开字库,看看有多大。擦除也是擦除一个扇区,且一个扇区是。全部发送完,后面就可以使用了。的指令换成别的指令,最终只是。利用上次的字模工具,把下载的。设置去字模软件的字体和大小,然后对生成的文件命名保存。,擦除扇区,按键按下擦除。的字模取出来放到数组里面,然后可以看到生成的字库有。原创 2023-07-05 13:36:22 · 533 阅读 · 0 评论 -
十七,红外遥控器
红外接收就是当红外引脚上,出现下降沿,就让外部中断进入中断服务函数,然后用定时器去测量中断过了多长时间,当知道了这个时间就可以编码为1和0这样的数据,主要的方法就是,外中断和定时器的配合。1:红外编码我们常用的是NEC编码,用的是38khz载波的方式传播。都是一些波形怎么读取他的数据呢,这样先看他规定的位定义,就是0和1,控制码看起来是10101000;其实不对,低位在前,控制码应该是00010101;地址码是8个0,地址反码就是8个1。这个垃圾码几乎不用。LED的IO关键配置。红外处理函数的标志位。原创 2023-07-05 13:41:20 · 446 阅读 · 0 评论 -
十四点一,图片转.bin文件
新建项目,新建项目刚好是你复制的大小,把复制的图片粘贴到新项目里。剪切以后,点击空白处,然后选择图像按钮。设置图像大小,比例不合适需要再次裁剪。然后在软件目录中找到存放的文件。一,打开百度复制你要的图片。原创 2023-07-05 13:39:46 · 1974 阅读 · 3 评论 -
十二,液晶显示字符
液晶屏显示字符需要借助一个取字模软件,配合一起用。是单片机内部的一块存储区域,数组毕竟不小,把数组放。,显示函数,和以前的设置背景色及其类似。把生成的数组复制到程序里并命名;个字节,但我们用的这个外扩的。输入要取模的字并生成字模。,设置笔的颜色和背景色。原创 2023-07-05 13:38:13 · 83 阅读 · 0 评论 -
十四,图片的下载和显示
函数里的循环改变就行,循环的取不同地址的数据显示出来。字库一样,设置好地址就行,不同的是调用图片函数。文件格式,这样才能存到片外存储里面。为了显示图片,我们需要先制作一个。的这个地址开始读取第一张图片,,并且设置的图片存储开始地址的。这句是因为每张图片的大小是。来计算且取出不同的图片了。是上一节保存的字库。,如果的第二张图片是。原创 2023-07-05 13:39:16 · 84 阅读 · 0 评论 -
十六,多个bin文件合成
把打开的文件复制粘贴到前一个文件最后一个字节。然后用二进制编辑软件打开这个复制的文件。复制一个文件出来,用于保存合并的文件。然后继续把其他两个文件打开。然后把复制的文件粘贴上。原创 2023-07-05 13:40:50 · 1392 阅读 · 0 评论 -
九,内部EEPROM读,写,擦
个字节,写之前必须擦除,但擦除是以扇区为单位的,不能单独擦写某个字节。擦写对一些断电保存的参数比较有用,先在数据手册里看一下。的数据就算断电也不会丢失,可以读出来继续使用,这就是。根据上面主要的控制寄存器,修改后的程序如下;我们写个例子,记录按键断电前最后一次的键值。配置的读,写,擦可以在下载工具里面复制出来。保存的数据可以在掉电的时候不丢失,配置内部。了,有的会固定大小,这款是下载的时候可设置。主要不通用的地方,若工作频率为。是有若干个扇区的,每扇区包含。是主要需要修改的地方,给。,其他频率以此类推。原创 2023-07-04 09:32:17 · 2747 阅读 · 0 评论