02:C51单片机
文章平均质量分 78
C51单片机
浅陌pa
这个作者很懒,什么都没留下…
展开
-
13:OLED屏幕的使用
如下图:选择Page的8为二进制数前5位为固定的1011 0(0xB),,后3位为我们自己配置,后3位为000,选择Page0。D/C表示数据/指令控制位,为1是写入数据,为0是写入指令。所有接到IIC总线设备上的串行数据SDA都接到总线的SDA上,各设备的时钟线SCL接到总线的SCL上。IIC同步、半双工,带数据应答的总线,IIC串行总线一般有两根信号线,一根是双向的数据线SDA,另一根是时钟线SCL,在显示前,需要指定的显示位置,而下图被框的是选址模式的配置和选择显示列的配置,且高位在下,低位在上。原创 2024-07-28 11:16:37 · 1038 阅读 · 0 评论 -
12:DHT11温湿度传感器的使用
如下图:单片机想要使用此传感器时,将引脚连接好后,给DATA引脚输入一个低电平的起始信号。原因:因为DATA在闲置时连接着一个上拉电阻,在闲置时引脚输入为高电平,单片机给引脚一个低电平后用于起始信号,然后给高电平代表将引脚的控制权交给模块自己)如果模块检测到这个起始信号,则模块会给DATA引脚输出一个低电平的响应信号,然后开始给DATA引脚一个高电平的信号,准备发送数据。而DATA引脚则用于数据传输,且连接着一个上拉电阻,模块闲置的时候,引脚输入为高电平。主函数main.c文件。原创 2024-07-27 14:46:36 · 608 阅读 · 0 评论 -
11:LCD1602显示屏的使用
例如,需要在屏幕上面显示0,则只需要向D0~D7输入0011 0000的1个字节的数据即可。需要在屏幕上面显示A,则只需要向D0~D7输入0100 0001的1个字节的数据即可。这样不行,因为写入显示地址时要求最高位 D7 恒定为高电平 1。而这些地址数据是存储在DDRAM中,DDRAM是一个40x2的存储数据的存储区,它前面16列存储对应的屏幕地址数据,后面的位置用于存储,发送来的指令/显示的数据。而显示的字符,数字,特殊符号都要对应的字模库。LCD1602.c文件。主函数main.c文件。原创 2024-07-27 09:34:45 · 1075 阅读 · 0 评论 -
10:WiFi模块服务器模式
我们通过AT指令AT+CWMODE = x,可以配置WiFi模块的工作模式。总结:1、要知道服务端的IP地址和端口号2、通过TCP协议传输的。原创 2024-07-26 13:53:50 · 373 阅读 · 0 评论 -
09:串口通信四(蓝牙模块和WiFi模块的使用)
其实这段代码不好,因为单片机给WiFi模块发送AT指令后,通过延时的方式来等待WiFi模块的操作,假如WiFi模块接收到AT指令后,做出相应的操作但是没有成功(例如连接移动设备的IP没有成功),我们也不知道。1、要使用wifi模块前,先要知道连接WiFi模块移动设备的ip地址,以便进行AT指令的配置。WiFi模块的使用比蓝牙模块要负责一些,因为WiFi模块需要AT指令对它进行一些配置。3、配置WiFi模块的波特率和工作模式的指令,只需要配置一次,重新上电后就是配置后的样子。原创 2024-07-26 10:10:38 · 765 阅读 · 0 评论 -
08:串口通信三
所以,上位机给单片机发送指令(就相当于给邮箱里面发送通知,比如让LED1亮/灭),而发送指令的时候,可能单片机还在执行其他的事情(比如我们看电视),单片机还没有执行到检测if()(我们还没有去查看邮箱),所以LED1灯不会立马做出反应,只有等到单片机执行到if()时,查看到指令,才会让LED1亮/灭。例如:把单片机比作我们,主函数的代码比作我们要做的事情,sendString()函数比作我们看电视,delay()函数比作我们数数。if后面{ }中的内容就是通知要我们做的事情。其实就是代码①和代码②的结合。原创 2024-07-15 20:18:00 · 652 阅读 · 0 评论 -
07:串口通信二
因为啊,往SBUF向外发送数据需要移位寄存器进行操作,而移位寄存器操作也是需要时间的,假设需要10us。当第一个数据才开始发送,都还没有发送完毕,第二个数据又写入开始发送了,所以会出现发送的数据出现乱排序。如图,当使用工作方式1(8位数据传输),当8位数据通过移位寄存器输出结束时,TI变为1。例如第一个w用8位二进制数据表示,当第8位通过移位寄存器输出结束也代表第一个w输出完毕。例如:我们去医院排队看病一样,医生才开始给第一个病人看病,都还没有看完。第二个病人突然冲进来,要求医生给第二个病人看病。原创 2024-07-15 10:16:39 · 659 阅读 · 0 评论 -
06:串口通信一
即一个主设备,其余为从设备,从设备之间不能通信。串口也就是接口,称串行通信接口或串行通讯接口(通常指COM接口),是采用串行通信方式的扩展接口。而单片机的波特率的配置,代码比较麻烦,我们先用软件自动生成,然后参考它配置了那些东西在进行学习。(可以直接利用电话线作为传输线),从而大大降低了成本,特别适用于远距离通信,但传送速度较慢。不仅要配置SBUF寄存器,还需要配置波特率,要2个设备之间的波特率一样,才能进行数据的传输。RS232:常见的9针串口,最高速率为20Kb/s,传输最大距离15m。原创 2024-07-14 10:35:35 · 709 阅读 · 0 评论 -
05:中断
1、当中央处理机CPU正在处理某件事的时候外界发生了紧急事件请求,要求CPU暂停当前的工作,转而去处理这个紧急事件,处理完以后,再回到原来被中断的地方,继续原来的工作,这样的过程称为中断。2、通常根据中断源的轻重缓急排队,优先处理最紧急事件的中断请求源,即规定每一个中断源有一个优先级别。CPU总是先响应优先级别最高的中断请求。原创 2024-07-11 20:53:47 · 360 阅读 · 0 评论 -
04:定时器
当定时器用的时候,靠内部震荡电路数数。当配置为定时器使用时,每经过1个机器周期,计数存储器的值就加1。原创 2024-07-11 19:41:57 · 640 阅读 · 0 评论 -
03:对LED的一些操作
按键抖动:不确定P2.1IO口变化是按键按下造成的,还是其他原因引起的。所以需要按键消抖,这里使用软件消抖。要让LED灯闪烁,则要使灯呈现出亮灭,亮灭状态。亮到灭这段时间我们通过延迟函数来占用单片机的执行。由按键电路原理图可得,当按键SW1松开时,IO口输入为高电平;当SW1按键按下时,IO口输入为低电平。由图可知,SW1连接的IO口为P2.1,SW2连接的IO口为P2.0。按下SW1按键,LED1亮,松开SW1按键,LED1灭。SW1控制灯亮,SW2控制灯灭。SW1按下灯亮,在按一下灯灭。原创 2024-07-08 19:29:42 · 297 阅读 · 0 评论 -
02:基本IO口的控制
sbit“指令”:对应可位寻址空间的一个位,小白先理解成“一个IO口/针脚”的地址中数据 sbit led2 = P3^6。如图是C51单片机,它向外伸展了如此多的IO口,我们通过配置IO口,来实现 IO口供电,串口数据传输等。单片机CPU怎么找到IO口:通过寻址,说白了有一些地址数据,头文件帮你做很多了。如图LED1连接的IO口P3.7,LED2连接的IO口为P3.6。没有错误,没有警告,通过STC-ISP软件下载进入单片机即可。所以单独使用第一个IO口时,要用sbit 进行定义。原创 2024-07-08 16:30:44 · 294 阅读 · 0 评论 -
01:单片机开发前的准备工作
选中要下载的HEX文件,然后点击打开,点击软件右下角的"下载/编程",重新给单片机上电,程序就能下载进去了。:先在F盘创建一个文件夹Template用来存放工程–>打开KEIL软件创建工程(如图下步骤):安装USB转串口的驱动CH340,然后通过USB口连接上单片机开发板。按照以上步骤编译代码,编译代码后发现文件夹里面生成了很多的文件。:安装KEIL开发软件,按照如下步骤按照软件。:通过stc-isp软件将程序下载到单片机中。原创 2024-07-08 14:57:54 · 218 阅读 · 0 评论