51单片机及其开发板在电子技术领域扮演着关键角色,然而,众多使用者在使用过程中常遭遇诸多棘手难题。无论是设备连接还是程序设置,都充满了挑战。今天,我们将对此进行详细阐述。
51单片机开发板介绍
51单片机开发板种类繁多,以普中A7为例。不同开发板在功能与电路设计上存在区别。使用时,如在校园实验室或个人工作台上,人们会进行各种实验。部分开发板附有最小系统板,具备特殊功能。上手难度各异,新手可能对开发板感到迷茫,不知如何开始开发。因此,需花时间熟悉开发板各模块、接口等基本部件。在小型电子公司,新手可能需一周时间才能初步掌握开发板操作。
不清楚开发板上具体引脚的用法,后续工作会比较困难。比如,开发板上的某些特殊引脚,如果接线错误,整个项目可能就无法正常运行。
这个功能看似非必需,实则颇具吸引力。在应用过程中,加入它能让事情变得更有趣,比如享受接线的过程。就像在一位电子爱好者家中,他们把USB转TTL模块的接线操作比作拼搭积木。然而,它也可能出现故障,比如电压不足导致无法正常工作。曾有一位爱好者在自家的迷你工作室使用此模块时,就遇到了电压不足的问题,误以为模块损坏,折腾了好一阵子才找到问题根源。有了它,可以通过多种接线方式实现不同功能,同时在故障检测等方面也相当有用。即便没有这个模块,只要开发板能打开串口为单片机烧录程序,也能正常运行。
数据线的使用
数据传输靠数据线来完成,通常情况下,两根数据线最为理想。但若开发板的电源线能替代数据线使用,效果也是相似的。比如,有些人在户外做电子测试,即便没有两根数据线,也能通过电源线和数据线的结合完成传输。连接数据线时,我们得确保精确无误,因为数据传输错误会导致操作失败。此外,接线的正确性和接口的稳固性也会影响传输的稳定性,有时线没接好,传输文件时可能会出现速度慢或直接出错的问题。
EV引脚相关
EV引脚有时会被标记为CH_PD,许多人遇到这种情况会感到迷茫。但请放心,它们的功能和接线方式并无差异。这就像一把钥匙能打开同一把锁。在众多开发板电路中,这种看似不同实则相同的现象并不少见。在小型电子产品开发课程中,许多学生对此产生误解,误以为它们具有不同的功能,导致连接错误。这时,老师需要耐心地解释,帮助学生理解其中的原理。我们在连接线路时,务必仔细对照原理图,切勿凭感觉随意接线,以免因小失误造成大麻烦。
串口助手的选择
#include
#define uint unsigned int
#define uchar unsigned char
sbit led1=P1^1;
sbit led2=P1^2;
sbit led3=P1^3;
uchar Recive_table[15];
uint i;
void delay_ms(uint ms)
{
uchar i,j;
for(i=ms;i>0;i--)
for(j=120;j>0;j--);
}
void delay_us(uchar us)
{
while(us--);
}
void Usart_Init()//初始化51单片机
{
SCON = 0x50;//串行口中断方式一,且启动串行口接受(REN=1)
TMOD = 0x20;//计数器1工作方式2,自动重装载
TH1 = 0xfd;//设置波特率与esp8266达成一致
TL1 = TH1;
PCON = 0;//波特率不加倍
TR1 = 1;//启动计数器
EA = 1;//开总中断
}
void SENT_At(uchar *At_Comd)//指针指向At指令
{
ES = 0;//关闭串口中断
while(*At_Comd!='')
{
SBUF = *At_Comd;
while(!TI);//等待该字节发送完毕,发送完后硬件自动置一TI
TI = 0;//硬件之以后必须软件置零才能进行下一次数据传送
delay_us(5);
At_Comd++;//指向下一个字节
}
}
void WIFI_Init()//通过单片机配置AT指令
{
SENT_At("AT+CIPMUX=1rn");//多连接模式
delay_ms(1000);
led1=0;//发送成功后亮灯
SENT_At("AT+CIPSERVER=1,8080rn");//设置端口号
delay_ms(1000);
led2=0;//设置成功后亮2号灯
ES = 1;
}
void main()
{
Usart_Init();
WIFI_Init();
while(1);
}
void Uart() interrupt 4 //中断程序
{
if(RI==1)//接受一帧完成后由硬件置一
{
RI = 0;//软件清零,防止下次未接收完成就执行程序
Recive_table[i] = SBUF; //将接受数据存入数组
if(Recive_table[0]=='+')
i++;
else
i = 0;
if(i>=10)
{
if((Recive_table[0]=='+')&&(Recive_table[1]=='I')&&(Recive_table[2]=='P')&&(Recive_table[3]=='D'))
{
if(Recive_table[9]=='1')//输入1亮灯
led3 = 0;
if(Recive_table[9]=='0')//输入0关灯
led3 = 1;
}
i = 0;//如果不清零 就无法达到变化
}
}
else
TI = 0;
}
网络上的串口助手种类丰富,推荐也各式各样。我个人更倾向于从安信可科技官方网站下载串口助手。尽管有些串口助手夸耀自己功能多么强大,但官方的总是让人感觉更可靠。就像大多数人面对官方文件和个人整理的资料时,更倾向于选择官方文件一样。尽管不同的串口助手可能在某些小功能上有所不同,但官方的版本通常更稳定、更通用。在使用过程中,若遇到不返回数据的问题,首先要检查线路是否连接正确。曾有一位电子工程师在使用时遇到此类问题,经过一番排查,才发现是因为一个接口没有正确连接。如果线路连接无误问题依旧,可以尝试重新插拔线路,或者进行其他操作。
At指令配置
在配置AT指令时,得先弄清楚每条指令的具体作用,但这里仅介绍我使用的几条。比如,先发AT+=3这类指令,它和WiFi模块有关。不同的AT指令搭配能完成不同的任务。在电子产品开发中,不同的开发板或模块对AT指令的反应可能存在差异。完成最后的AT+RST指令和重启等操作后,可以将USB转TTL线拆下。整个过程中,必须按步骤准确操作。若出现异常,如程序与开发板电路图不对应,就像齿轮不匹配,无法正常运作。这时,我们需要调整程序或电路连接,确保设备能正常运行。
在使用51单片机及其配套设备和指令的整个过程中,会遇到不少未知难题和可能的问题。我想请教一下,在使用51单片机或类似设备时,大家最棘手的问题是什么?期待大家能积极留言、点赞并转发这篇文章。