51单片机串口通信(字符串接收和发送)

51单片机串口通信(字符串接收和发送)

下面的示例代码基于51单片机,用于快速二次开发实现基于串口字符串通信控制程序(比如要实现电脑控制单片机的开灯和关灯),示例很言简意赅,并附上了详尽的注释,本示例代码经过了更新,新版本代码更加友好了,#include<reg52.h> //------------------串口通信的数据包协议-----------------// /* 此程序的串口字符串通信使用到下面的一个自定义协议,每次通信都是发送或接收一个数据包,数据包格式解释如下(长度恒为15): 例如:A01_fmq_01Off___# A--------数据包的开始标记(可以为A到Z,意...

单片机 2022-04-07 PM 2386℃ 0条
51单片机读取DH11温湿度传感器数据

51单片机读取DH11温湿度传感器数据

51单片机读取DH11温湿度传感器数据dh11.c#include<reg52.h> #include<intrins.h> #include"dh11.h" sbit Temp_data=P3^6; extern unsigned int rec_dat[4]; //DHT11起始信号 void DHT11_start() { Temp_data=1; DHT11_delay_us(2); Temp_data=0; DHT11_delay_ms(20); ...

单片机 2022-04-07 PM 1493℃ 0条
51单片机串口通信--发送字符、接收字符、发送字符串、接收字符串

51单片机串口通信--发送字符、接收字符、发送字符串、接收字符串

uart.c#include <reg52.h> #include "uart.h" #define uint unsigned int #define uchar unsigned char typedef unsigned int u16; //对数据类型进行声明定义 typedef unsigned char u8; //串口初始化函数 9600 void URATinit() { TMOD=0x20; SCON=0x50; TR1=1; TH1=0xfd; TL1=0xfd; EA=1; ES=1; } //发送一个...

单片机 2022-04-07 PM 1920℃ 0条
51单片机 IO口串口通信

51单片机 IO口串口通信

实例1#include <reg52.h> void ConfigUART(unsigned int baud); unsigned char a,b; sbit feng=P2^3; sbit led1=P1^0; sbit led2=P1^1; void main(){ ConfigUART(9600); while(1){ while(!RI); RI=0; //P1=SBUF;//接收缓冲器中的值赋值给P1口 b=SBUF; a=b; SB...

单片机 2022-04-07 PM 1594℃ 0条
51单片机 _nop_() 延时

51单片机 _nop_() 延时

#include <reg52.h> #include <intrins.h> #define uint unsigned int //main uint i; void main(){ P1=0xff; //wait for 1 second //110*50*20=1s for(i=0;i<110*1000;i++){ _nop_(); } P1=0x00; while(1); }

单片机 2022-04-07 PM 1465℃ 0条
51单片机利用中断控制led闪烁

51单片机利用中断控制led闪烁

#include <reg52.h> #define uint unsigned int; #define uchar unsigned char; sbit led1=P2^0; uchar num; void main(){ //选择定时器0,工作方式为方式1,TMOD送00000001H TMOD=0x01; //设置TL0,TH0 //晶振频率为11.0592MHz时,定时50ms送数字45872 TH0=(65536-45872)/256; TL0=(65536-45872)%256; EA=1;//开总中断 ...

单片机 2022-04-07 PM 1424℃ 0条
51单片机红外通信实验

51单片机红外通信实验

// 红外通信实验 #include <reg52.h> // 此文件中定义了单片机的一些特殊功能寄存器 typedef unsigned int u16; // 对数据类型进行声明定义 typedef unsigned char u8; sbit LSA = P2 ^ 2; sbit LSB = P2 ^ 3; sbit LSC = P2 ^ 4; sbit IRIN = P3 ^ 2; // 红外传感器接口,使用INT0中断 u8 IrValue[6]; u8 Time; u8 DisplayData[8]; u8 code s...

单片机 2022-04-07 PM 1423℃ 0条
51单片机 LCD1602液晶模块

51单片机 LCD1602液晶模块

/* # 初识LCD1602液晶模块 LCD1602什么意思,LCD表示LiquidCrystal Display 1602表示一行可以显示16个字符,一共有两行 */ #include <reg52.h> #define uchar unsigned char #define uint unsigned int #define LcdDB P0 // D0-D7 为8位双向数据线,传输数据或命令 sbit LcdRS = P2 ^ 6; // RS 为寄存器选择,高电平时选择数据寄存器,低电平时选择指令寄存 sbit LcdRW...

单片机 2022-04-07 PM 1294℃ 0条
51单片机 按键 音乐播放器

51单片机 按键 音乐播放器

main.c// 音乐播放器 : 挥着翅膀的女孩 同一首歌 两只蝴蝶 #include <reg52.h> //此文件中定义了单片机的一些特殊功能寄存器 #include "SoundPlay.h" #include "music.h" typedef unsigned int u16; //对数据类型进行声明定义 typedef unsigned char u8; u8 key_id = 0; sbit k1 = P3 ^ 1; sbit k2 = P3 ^ 0; sbit k3 = P3 ^...

单片机 2022-04-07 PM 1503℃ 0条
51单片机 IIC通信总结

51单片机 IIC通信总结

IIC概述IIC:是两线串行总线,它是由时钟线SCL和数据线SDA构成,可以进行发送和接受数据。高速IIC总线一般可以达到400kbs以上。是半双工通信。IIC可以分为软件IIC和硬件IIC软件IIC:软件IIC是指通过单片机两个IO口模拟IIC,通过软件控制引脚高低电平模拟IIC时序。硬件IIC:是通过硬件IIC的芯片,直接硬件调用内部寄存器。IIC通信协议IIC通信由开始、结束、发送、响应、接受组成。当IIC是高电平时,SDA不允许变化,当SCL为低电平时,SDA可以任意0、1变化。空闲状态是指没有通信的状态,IIC的SDA和SCL同时为高电平时,是总线的空闲状态。开始信号和停止信号...

单片机 2022-04-07 PM 1443℃ 0条
51单片机 查询法使用定时器控制LED灯闪烁

51单片机 查询法使用定时器控制LED灯闪烁

/************************************************************************************** * 定时器 LED闪烁实验 * 实现现象:下载程序后D11指示灯闪烁 注意事项:无 ****************...

单片机 2022-04-07 AM 1374℃ 0条