C51
now
讀书会上瘾
展开
-
C51——小车测速,串口发送数据
②轮子走一圈,对应码盘转一圈,经过一圈有20个孔,遮挡为高电平,不遮挡为低电平,那么对应的一个脉冲就是3.14*6.5cm/20=1.0205cm。③定时器可以设计成1s,统计脉冲数,1个脉冲就是1cm,若1s有80个脉冲,则速度为80cm/s。①轮子走一圈,经过一个周长,C=2*3.14*半径=3.14*直径(6.5cm)2、实现原理:有遮挡输出高电平;3、接线:vcc接5v,gnd接地,out信号输出。1、用途:用于电机转速检测,脉冲计数,位置限位等。4、测速原理,和单位换算。原创 2023-04-23 19:25:33 · 507 阅读 · 0 评论 -
C51——摇头避障小车实现
【代码】C51——摇头避障小车实现。原创 2023-04-23 19:17:52 · 225 阅读 · 0 评论 -
C51——跟随小车实现
向右:左边传感器返回不了信号,输出高电平1,右边传感器能返回信号,输出低电平0(左信号灯不亮,右信号灯亮)向左:左边传感器能反射回来输出低电平0,右边反射不回来输出高电平1(左信号灯亮,右信号灯不亮)3、原理:前边有物体时,红外线能被反射回来,输出低电平0,前边没有物体时,输出高电平1。1、模块原理:发射红外线,能反射回来就输出低电平0,反射不回来输出高电平1。向前:两个传感器都能返回信号,都输出低电平0,两个信号灯都亮。2、接线,gnd接地,vcc接5v,out接信号线。原创 2023-04-23 19:06:37 · 314 阅读 · 0 评论 -
C51——循迹pwm实现平滑转弯
【代码】C51——循迹pwm实现平滑转弯。原创 2023-04-23 18:56:38 · 130 阅读 · 0 评论 -
C51——循迹小车实现
向右:左边传感器返回不了信号,输出高电平1,右边传感器能返回信号,输出低电平0(左信号灯不亮,右信号灯亮)向左:左边传感器能反射回来输出低电平0,右边反射不回来输出高电平1(左信号灯亮,右信号灯不亮)3、原理:前边有物体时,红外线能被反射回来,输出低电平0,前边没有物体时,输出高电平1。向右:右边压线,左边模块能反射回来输出低电平,右边模块反射不回来输出低电平。1、模块原理:发射红外线,能反射回来就输出低电平0,反射不回来输出高电平1。向前:两个传感器都能返回信号,都输出低电平0,两个信号灯都亮。原创 2023-04-23 18:47:54 · 1872 阅读 · 0 评论 -
C51——利用pwm进行差速调速
以下代码为wifi模块控制代码,有需要就进行添加。利用pwm波进行小车调速。原创 2023-04-23 18:38:07 · 140 阅读 · 0 评论 -
C51——PWM小车调速
【代码】C51——PWM小车调速。原创 2023-04-23 18:13:51 · 1011 阅读 · 0 评论 -
C51——点动控制小车
5、dalay.c(延时函数,名字打错,应该是delay自行修改)编译时需要添加以上代码,再烧录单片机使用。2.1、esp.h文件。4、motot.c文件。3、uart.c文件。1、main.c文件。原创 2023-04-23 18:03:33 · 263 阅读 · 0 评论 -
C51——串口发字符串控制小车
以下为分文件,需要进行整合。原创 2023-03-31 16:38:47 · 92 阅读 · 0 评论 -
C51——oled显示图片(128x64,图片可自己创建)
oled显示图片,128x64(图片可自己创建)原创 2023-03-31 16:26:05 · 324 阅读 · 0 评论 -
C51——oled显示一串字符
注意使用code来放置数据专区,char字符比较小,int字符比较大,可以用char字符。水平地址模式——自动切换到下一列,page8循环完成返回page1。RW:bit0=1代表读取数据模式,bit0=0代表写数据模式。//列地址,从头开始。垂直地址模式——竖直向下切换,第一列,第二列,第三列....如果Co为0,后边默认是数据传输,Co为1是写入命令。屏幕地址:bit1可以是0也可以是1,代表不同模式。3、模式选择(选择页寻址模式0x20,0x02)页地址模式——向右偏移,不会切换到下一列。原创 2023-03-31 16:23:55 · 383 阅读 · 0 评论 -
C51——IIC协议
所有接到IIC总线设备上的串行数据SDA都接到总线的SDA上,各设备的时钟线SCL接到总线的SCL上。对于并联在一条总线上的每个IC都有唯一的地址。由于接口直接在组件之上,因此IIC总线占用的空间非常小,减少了电路板的空间和芯片管脚的数量,降。IIC总线在传输数据的过程中一共有三种类型信号,分别为:开始信号、结束信号和应答信号。应答信号为低电平时,规定为有效应答位(ACK,简称应答位),表示接收器已经成功地接收了该字。一根是双向的数据线SDA,另一根是时钟线SCL,其时钟信号是由主控。原创 2023-03-31 16:24:22 · 156 阅读 · 0 评论 -
C51——分文件实现代码优化(温湿度代码)
被主函数调用的函数封装.h文件:例如lcd1602.h/dht11.h/uart.h/dalay.h。如果要实现两个文件中同时使用,也可以封装为.h形式,在两个文件中头文件形式使用。分文件例如:lcd1602.c/dht11.c/uart.c/dalay.c。主函数调用分函数中的函数封装为.h形式,.h在主文件中用头文件形式展现。注意*封装的.h文件中函数头要与.c文件头一致,否则会警告。以下为main.c文件,可以看到包含分文件的.h头文件。把几个模块使用分别建立成分文件(.c文件)分文件实现代码优化,原创 2023-03-31 16:21:12 · 106 阅读 · 0 评论 -
C51——整合DHT11&LCD1602(温湿度控制继电器闭合)
用温度湿度来控制继电器运行(图片显示为湿度大于35%控制继电器闭合),lcd1602屏幕显示温度和湿度,继电器可以控制灯或风扇等负载。原创 2023-03-31 16:15:43 · 636 阅读 · 0 评论 -
C51——DHT11数据获取(串口传输)
从时序分析可以知道,vcc刚开始处于高位1→vcc拉低至少18ms→vcc拉高20-40us→dht响应信号,将高电平拉低持续80us→dht拉高信号80us→dht拉低信号开始传送数据。数字4=0000 0100+0011 0000=0011 0100,为ASCII 4。数字3=0000 0011+0011 0011=0011 0011,为ASCII 3。数字0-9转换成ASCII字符需要+0x30(0011 0000)3、读取到的数据为数字,需要转成ASCII型。数字43的显示,分别显示字符4和3。原创 2023-03-31 16:11:48 · 2212 阅读 · 0 评论 -
C51——LCD1602显示字符串
【代码】C51——LCD1602显示字符串。原创 2023-03-31 16:10:15 · 157 阅读 · 0 评论 -
C51——LCD1602显示
例如第2行第3列为42地址,0100 0010+1000 0000(D7高电平)=0xC2;例如第1行第6列为05地址,0000 0101+1000 0000=0x85;E使能信号——根据E的高低电平跳变,液晶模块执行命令。V0——接电位器,调节显示对比度,接地对比度最高。(4)以后每次写指令,读/写数据操作均需要检测忙信号。RS——数据/命令切换,1为数据,0为命令。RW——读/写切换,1为读,0为写。(8)写指令 06H:显示光标移动设置。(9)写指令 0CH:显示开及光标设置。原创 2023-03-31 16:04:21 · 597 阅读 · 0 评论 -
C51——EC03-DNC4g通信模块
2. 进入AT指令模式,在串口助手内发送+++(不要勾选发送新行),必须在发送+++指令 3s 内发送其。5. AT+LINKSTA查看连接状态,如果第四步没有问题,此时串口返回+OK=Connect。检查信号是否正常,通过AT+CSQ指令检查信号值,建议插入信号天线,返回数据:+OK=31。硬件:CH340、EC03-DNC4G模块、天线、SIM卡、C51。软件:串口助手、网络调试助手*2、花生壳软件建立内网穿透。在测试之前,将电源、天线、SIM 卡、串口线等硬件连接好。原创 2023-03-31 16:02:28 · 165 阅读 · 0 评论 -
C51——wifi模块连接C51(路由模式、服务器模式)
⑤+IPD, 0, n: xxxxxxxxxx //+IPD是固定字符串 0是通道,n是数据长度,xxx是数据。建立tcpserver,// default port = 333。USB转TTL插入电脑,TX/RX交叉接线,VCC接5V,GND接地。TX/RX交叉接线,VCC接5V,GND接地。1、接线(接CH340接入pc)3、C51来配置ESP当作服务器。2、建立AT指令使能连接。原创 2023-03-30 23:04:18 · 422 阅读 · 0 评论 -
C51——wifi模块连接C51(设备模式、双模)
/\"保留原本的引号字符意义,否则出错。//WIFI GOT IP中既包含W、又包含F,底下条件满足FI,D5亮。优化,添加查找联网fail的操作,白盒测试,看是否能进行联网。原创 2023-03-30 22:59:40 · 157 阅读 · 0 评论 -
C51——wifi模块(esp8266)
对于由终端设备主动向pc端报告的URC指示或者response相应,也要求一行最多有1个,不允许上报的一行中有多条指示或相应。AT+UART=9600,8,1,0,0:配置9600波特率(8个数据位1个停止位)响应OK结束。AT+CIPSTART="TCP","192.168.31.250",8880:连接服务器。4、ESP-01s出场波特率正常是115200,注意:AT指令,控制类都要加回车,数据传输时不加回车。AT+CWJAP="wifi名","wifi密码":以设备模式接入家中路由器。原创 2023-03-30 22:57:50 · 532 阅读 · 0 评论 -
C51——蓝牙模块
2、通过CH340来修改蓝牙数据,AT+?TXD/RXD交叉连接,vcc接5v,gnd接地。原创 2023-03-30 22:54:58 · 153 阅读 · 0 评论 -
C51——串口通信
2、1帧数据位10位,1位起始位+8位数据位+1位停止位。TXD(DATA OUT),根据时钟移位发送,d0-d7。C51单片机中p3.0口为接收口,3.1口为发送口。RXD(DATA IN),根据时钟移位接收。startbit起始位为0,TI=0。startbit起始位为0,RI=0。stopbit停止位为1,TI=1。stopbit停止位为1,RI=1。波特率、起始位、停止位、数据位。tclock产生晶振和脉冲,tclock产生晶振和脉冲。shift移位寄存器。shift移位寄存器。原创 2023-03-30 22:50:29 · 384 阅读 · 0 评论 -
C51——串口交互(发送字符串)控制led
/查找函数strstr,在cmd中查找op,发送的数据多了可能会出错,需要头文件<string.h>//串口pc端发送给c52字符串控制led。原创 2023-03-30 22:45:24 · 554 阅读 · 0 评论 -
C51——pc串口交互控制led(中断法)
注意文本模式和hex16进制模式切换,文本1=ascii49,文本0=ascii48。pc串口交互控制led(中断方式)原创 2023-03-30 22:45:52 · 98 阅读 · 0 评论 -
C51——通过串口发送字符串到pc串口助手
【代码】C51——通过串口发送字符串到pc串口助手。原创 2023-03-30 22:42:38 · 819 阅读 · 0 评论 -
C51——串口
b7的sm0、b6的sm1(b7、b6组合为01为方式1,11为方式2)、b4的ren(是否接收,ren=1为接收)③、PCON——配置波特率加倍或不加倍,一般不加倍,b7的smod(smod=1加倍,=0不加倍)、b6的smod0,(本身有复位值00x1 0000)不用动。RS-232——标准口,电脑9针串口、最高速率20kb/s,点对点(1对1)传输,传输距离最大15m,适合本地设备间的通信。需要配置PCON、SCON、AUXR(抗干扰)、TMOD、TL1、TH1、ET1、TR1。原创 2023-03-30 22:38:45 · 586 阅读 · 0 评论 -
C51——智能垃圾桶
舵机控制口p1.1,超声波trig接P1.5口、echo接P1.6口,蜂鸣器接P2.0口,震动传感器接P3.2口(外部中断INT0)1、舵机和超声波代码整合,舵机用定时器0,超声波用定时器1,实现物体靠近自动滴一声开盖,2s关盖。c52单片机、sg90舵机、超声波模块、震动传感器、蜂鸣器。检测靠近时,垃圾桶自动开盖并伴随滴一声,保持2s关盖。发生震动时,垃圾桶自动开盖并伴随滴一声,保持2s关盖。按下按键时,垃圾桶自动开盖并伴随滴一声,保持2s关盖。2、查询法实现按键控制。3、查询法实现震动控制。原创 2023-03-30 22:39:02 · 472 阅读 · 0 评论 -
C51——超声波控制led亮
echo-P1.6口(接收波),echo由低电平跳转到高电平表示开始发送波,echo由高电平跳转到低电平表示波回来了。代码实现,<20cm,D5on,D6off;trig-P1.5口(发送波),给trig一个10us的高电平就可以发波。时间=波发出去的那一下到波回来的那一下(echo高电平持续的时间)原理:距离=(发射波-接收波的时间)*波的速度(340m/s)/2。c51超声波ncm距离控制led亮。接线:vcc-5v,gnd-接地,型号:HC-SR04。原创 2023-03-29 16:02:27 · 339 阅读 · 0 评论 -
C51——PWM脉冲调制控制sg90舵机
sg90舵机需要1ms高电平+3ms低电平,为1个周期。占空比:在一个周期内,信号处于高电平的时间占据整个信号周期的百分比,例如方波的占空比就是50%。2.5ms——180°,12.5%占空比。1.5ms——90°,7.5%占空比。2.0ms——135°,10%占空比。频率:50Hz,周期:1/50=0.02s=20ms。常见的舵机有0-90°,0-180°,0-360°。1.0ms——45°,5%占空比。黄色信号线——PWM,红——vcc,黑——gnd。数据:0.5ms——0°,2.5%占空比。原创 2023-03-29 15:56:40 · 825 阅读 · 0 评论 -
C51——单片机中断
STC89C51RC/RD+系列单片机提供了8个中断请求源,STC89C51RC/RD+系列单片机提供了8个中断请求源,它们分别是:外部中断0(INT0)、定时器0中断、外部中断1(INT1)、定时器1中断、串口(UART)中断、定时器2中断、外部中断2(INT2)、外部中断3(INT3)。当中央处理器cpu正在处理某件事的时候,外界发生了紧急事件请求,要求cpu暂停当前工作,转而去处理这个紧急事件,处理完以后,再回到原来被中断的地方,继续原来的工作,这样的过程称为中断。(置于中断函数名之后)原创 2023-03-29 15:53:48 · 816 阅读 · 0 评论 -
C51——定时器
配寄存器推荐用位操作,清0的时候,对应需要清0的位&上0,不需要清零的位&1;置1的时候,需要置1的位置|或1,不需要清0的位置|或0;时钟周期(震荡周期)——时钟频率的倒数=1/11059200s,是计算机中最基本的、最小的时间单位。TCON寄存器的bit5表示爆表,当爆表的时候,硬件会修改bit5位上边的数据,改成1,TF0=1。TMOD定时器模式寄存器,选择工作方式,TMOD的bit0、bit1配置成0,1——16位定时器。10——8位自动重装载定时器,溢出时TH0值自动装入TL0(用的少)原创 2023-03-29 15:48:08 · 1495 阅读 · 0 评论 -
C51——制作简易报警器
C52单片机、震动传感器模块、433M无线发射接受模块、继电器模块、高功率喇叭、电池组。1、如果M433 a按键按下,设定为开启警报模式。2.1——D0(433M按下a键为1,不按0)2.3——震动传感器(1为常态,0为触发状态)软件:keil4、stc-isp烧写软件。2、如果b按键被按下,设定为关闭警报模式。2.0口——继电器(控制警报)2.2——D1(433Mb键)3.2如果不发生震动,喇叭不响。3.1如果发生震动,喇叭响。短响,表示警报模式解除。长响一声进入警报模式。原创 2023-03-29 15:45:12 · 506 阅读 · 0 评论 -
C51——软件控制灯,软件消抖,IO口翻转,记录状态位来控制led
3、while查询法中:IO口状态翻转,if判断输入的状态,led1=!5v电压过来分成两路,一路是到芯片的路,另外一路是通过按键接地的路;如果按键未按下,传输到芯片的是高电平,此时为1;如果按键按下导通接地,此时传输到芯片的是低电平,为0;正常按键按下会在50-200ms,stc-isp中用延时,如果50ms之后再判断按键的所接芯片的接收状态,按键依旧是按下状态,key1为0,则控制灯亮。在单片机编程中,按键和灯是分开的两个电路,通过单片机作为媒介处理数据,通过逻辑来实现按键控制灯。原创 2023-03-29 15:38:20 · 464 阅读 · 0 评论 -
C51——C51点亮led、控制led闪烁
/led1为变量名,起啥名都行 重要的是引脚位置。//定义所对应的引脚。//给引脚3.7一个低电平,让其亮。//计数延迟500ms。//计数延迟500ms。//根据原理图可知,低电平点亮。//4*129*119会越界。.0592MHz在stc-isp中选择。c51点亮一个led灯。C51控制led闪烁。原创 2023-03-29 15:37:52 · 1077 阅读 · 0 评论 -
C51——IO口配置
STC89C51RC/RD+ 系列单片机的P1/P2/P3/P4_上电复位后为准双向口/弱上拉(传统8051的I/O口)模式,STC89LE5 1RC/RD+的3V单片机的P0口的灌电流最大为8mA,其他I/0口的灌电流最大为4mA。STC89C51RC/RD+的5V单片机的PO口的灌电流最大为12mA,其他I/0口的灌电流最大为6mA。STC89C51RC/RD+系列单片机所有I/O口均(新增P4口)有3种工作类型:准双向口/弱上拉。(标准8051输出模式)、仅为输入(高阻)或开漏输出功能。原创 2023-03-29 15:32:32 · 851 阅读 · 0 评论 -
C51——单片机编程
sfr指令,用来直接描述硬件地址,小白可以先理解成一组io口的起始地址中的数据:sfr P0=0x80;//被给予一个数值,引起io口电压变化,(一般1输出高电平,0输出低电平),此时为输出来影响外接电路。sbit指令,对应可寻址空间的一个位,小白先理解成一个IO口针脚的地址数据:sbit led2=P3^6;通过寻址,有一些地址数据,头文件已经做了很多了,生成的project里.c文件底下生成的.h文件。sfr和sbit是非标准的c语言,是专门针对于单片机的指令。人类要求单片机做事情,下的指令。原创 2023-03-29 15:33:28 · 1006 阅读 · 0 评论 -
C51——认识C51单片机
把具有数据处理能力的中央处理器cpu、随机存储器ram、只读存储器rom、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块鬼片上构成的一个小而完善的微型计算机系统,在工业领域广泛应用。I/O口,通常使用P1/P2/P3/P4口,为准双向口、弱上拉(普通8051传统I/O口)52——程序空间大小,51是4k字节、52是8k字节、53是13k字节、LQFP——封装类型:PDIP、LQFP、PLCC、PQFP。原创 2023-03-29 15:32:24 · 842 阅读 · 0 评论 -
C51——keil4环境搭建,stc-isp(烧录软件)使用
5、打开stc-isp(下载、烧录软件)软件→选择单片机型号、选择串口号→打开文件夹选择.hex文件,下载烧录到单片机,关电重新上电能看到灯亮。在工程目录Source Group1上鼠标右键→add existing file→选择创建的.c文件。工具栏project→new uVison project→选择建立的工程文件夹→输入工程名字→。4、keil中双击.c文件,编写代码→完成后点击rebuild生成.hex文件以及.c代码文件。keil(环境)stc-isp(烧录软件)使用流程。原创 2023-03-28 17:27:13 · 2384 阅读 · 0 评论