2018-12-27 13:40:11 qq_29769263 阅读数 5412
  • 51单片机综合小项目-第2季第4部分

    本课程是《朱有鹏老师单片机完全学习系列课程》第2季第4个课程,也是51单片机学完之后的一个综合小项目,该项目运用了开发板上大多数外设设备,并将之结合起来实现了一个时间、温度显示以及报警功能、时间调整功能等单片机控制常见的功能,有一定代码量,需要一定调试技巧和编程能力来完成,对大家是个很好的总结和锻炼,并且能拓展项目经验。

    3415 人正在学习 去看看 朱有鹏

51单片机无法烧录程序的N种解决办法


  1. 有没有掉电!!!如果没有自动掉电的电路时,需要手动掉电;
  2. 单片机的晶振有没有安装好,是否有缺失,晶振的负载电容是否合适;
  3. CH340的TXD,RXD要与单片机的TXD,RXD反接,CH340的地线有没有和单片机接好;
  4. 如果单片机的最小系统是自己焊接的,检查一下复位电路,是否因为复位电路有问题,导致RST引脚电平一直被拉高;
  5. 确认单片机的型号是否正确,尝试降低下载的波特率。
2017-06-16 22:08:31 boyfig 阅读数 2309
  • 51单片机综合小项目-第2季第4部分

    本课程是《朱有鹏老师单片机完全学习系列课程》第2季第4个课程,也是51单片机学完之后的一个综合小项目,该项目运用了开发板上大多数外设设备,并将之结合起来实现了一个时间、温度显示以及报警功能、时间调整功能等单片机控制常见的功能,有一定代码量,需要一定调试技巧和编程能力来完成,对大家是个很好的总结和锻炼,并且能拓展项目经验。

    3415 人正在学习 去看看 朱有鹏

        好久没用51芯片,差点忘记怎么烧录了。

        首先用USB转串口线连接51单片机,注意串口RX接51的TX,串口TX接51的RX,串口的地接51的地,串口的5V线先接出不用,然后打开STC官网的下载软件STC-ISP,选择好单片机型号,打开程序文件选择编译好的hex文件,点一下下面的下载/编程按钮,然后再把串口5V线接到51芯片的电源脚,就能烧录了。


2017-04-21 10:48:23 u010770993 阅读数 6168
  • 51单片机综合小项目-第2季第4部分

    本课程是《朱有鹏老师单片机完全学习系列课程》第2季第4个课程,也是51单片机学完之后的一个综合小项目,该项目运用了开发板上大多数外设设备,并将之结合起来实现了一个时间、温度显示以及报警功能、时间调整功能等单片机控制常见的功能,有一定代码量,需要一定调试技巧和编程能力来完成,对大家是个很好的总结和锻炼,并且能拓展项目经验。

    3415 人正在学习 去看看 朱有鹏
Linux下51单片机编译烧录平台搭建资料汇总

软件相关网站:
SDCC - Small Device C Compiler
laborer/stcflash(GitHub) 点击右边的Download ZIP进行下载

首推(简单方便高效):
在linux下开发51单片机的简单方法
其次(附带IDE的环境):
Linux下构建stc51单片机开发环境
Linux下51单片机编译烧录平台搭建资料汇总
安装:apt-get install mcu8051ide(文件很大,网速很慢,安装过程还是很坑很痛苦的)


其他方法:
Linux平台51单片机环境搭建(LOFTER)
Linux下89c51单片机开发环境部署(编译器as31+模拟器emu8051+反编译dis51+程序写入cycfx2prog)
在Linux下面开发51单片机(数码之家)

1采取简单模式搭建平台,操作
第一步使用sdcc的源码安装sdcc。
./configure以后出现错误: boost library not found
解决办法:(链接:Contiki学习笔记——被逼无奈转战Ubuntu
apt-get install libboost-graph-dev
中途可能需要update。
apt-get update

之后即可进行sdcc源码的编译,编译过程中出现问题:

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!
!!! WARNING: The installed gputils do not support all
!!! PIC devices currently supported by SDCC.
!!! If you continue to build SDCC, library files for the
!!! following devices will not be built, and you will
!!! not be able to compile any projects for these devices:
!!!

 18f23k22 18f24k22 18f24k50 18f25k22 18f25k50 18f25k80 18f26j13 18f26j53 18f26k22 18f26k80 18f27j13 18f27j53 18f43k22 18f44k22 18f45k22 18f45k50 18f45k80 18f46j13 18f46j53 18f46k22 18f46k80 18f47j13 18f47j53 18f65j94 18f65k22 18f65k80 18f65k90 18f66j93 18f66j94 18f66j99 18f66k22 18f66k80 18f66k90 18f67j93 18f67j94 18f67k22 18f67k90 18f85j94 18f85k22 18f85k90 18f86j72 18f86j93 18f86j94 18f86j99 18f86k22 18f86k90 18f87j72 18f87j93 18f87j94 18f87k22 18f87k90 18f95j94 18f96j94 18f96j99 18f97j94
==> 55 devices are *not* supported
    185 devices are supported

!!!
!!! Please update your gputils to a recent snapshot and
!!! run configure again using the updated gputils. Make
!!! sure to have them in PATH prior to the previously
!!! found ones (or remove the older version completely).
!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

需要下载gputils,使用命令:
apt-get install gputils
完成后即可顺利configure,make,make install sdcc。
成功后的截图,输入sdcc命令:

Linux下51单片机编译烧录平台搭建资料汇总

python程序也顺带装好了,按照操作来执行即可。
使用单片机开发板买来赠送的样板程序,头文件稍作改动,改成8052.h
#include<8052.h>
void delay(unsigned int i);  //声明延时函数

main(){
  P1  = 0x00; //置P0口为低电平
  delay(600); // 延时
  P1  = 0xff; //置P0口为高电平
  delay(600); // 延时
}


void delay(unsigned int i){
    unsigned char j;
    for(i; i > 0; i--)
        for(j = 255; j > 0; j--);
}

存为main.c格式,使用命令行编译:
sdcc main.c
packihx main.ihx main.hex
objcopy -I ihex -O binary main.hex main.bin
编译完成后,用下载的python烧录程序stcflash.py进行下载。下载之前,单片机链接电脑,但是不要打开单片机电源
sudo python stcflash.py main.bin
输入完命令后,会提示等待单片机信号,这时候打开单片机电源,不一会儿程序就下载到单片机里面去了。
Linux下51单片机编译烧录平台搭建资料汇总
实际单片机运行:
Linux下51单片机编译烧录平台搭建资料汇总

Linux下51单片机编译烧录平台搭建资料汇总




成功烧录程序后的截图


2、采取IDE模式搭建平台
这个IDE还能开启全屏模式:
Linux下51单片机编译烧录平台搭建资料汇总


2018-07-13 17:25:41 qq_38988221 阅读数 308
  • 51单片机综合小项目-第2季第4部分

    本课程是《朱有鹏老师单片机完全学习系列课程》第2季第4个课程,也是51单片机学完之后的一个综合小项目,该项目运用了开发板上大多数外设设备,并将之结合起来实现了一个时间、温度显示以及报警功能、时间调整功能等单片机控制常见的功能,有一定代码量,需要一定调试技巧和编程能力来完成,对大家是个很好的总结和锻炼,并且能拓展项目经验。

    3415 人正在学习 去看看 朱有鹏

暂停学习51单片机大约半月左右,再次使用51时出现问题:烧录程序问题。(使用的是天详电子的51单片机)
问题一:usb串口连接错误。第一次连接了USB1口,电脑无法显示串口,该口的作用为给单片机供电。注:烧录程序要选择USB2 DownLoad口即与单片机晶振相连的USB口。

问题二:使用STC烧录程序时,蜂鸣器响,stc显示检测目标单片机,程序无法烧录。经检查发现问题为单片机安装反向。注:在使用单片机时第一步先检测单片机的放置:有豁口的一次向上。
2015-07-16 16:13:27 u014155406 阅读数 2151
  • 51单片机综合小项目-第2季第4部分

    本课程是《朱有鹏老师单片机完全学习系列课程》第2季第4个课程,也是51单片机学完之后的一个综合小项目,该项目运用了开发板上大多数外设设备,并将之结合起来实现了一个时间、温度显示以及报警功能、时间调整功能等单片机控制常见的功能,有一定代码量,需要一定调试技巧和编程能力来完成,对大家是个很好的总结和锻炼,并且能拓展项目经验。

    3415 人正在学习 去看看 朱有鹏


STC51烧录程序时序分析


Note1:关于STC51的冷启动下载和复位


STC51单片机里面有一段出厂时固化的程序,这段程序的作用是检测串口是否要下载程序,不需要则执行单片机内的用户程序。每次启动时运行这端程序,这就是为什么每次下载时要冷启动。而复位后单片机是从地址0X0000H处开始执行,地址0X0000H又会指向主程序入口,即主函数处,即片内下载的用户程序而不会执行前面已经固化的检测串口那段程序。这就是为什么单片机每次下载要冷启动,而复位不行。注意,程序前面的宏定义什么的东西不占用系统时间,所以主程序即主函数处。


有一个办法可以给那些需要加电立刻启动的用户,STC单片机可以设置为加电时只有P1.0/P1.1为低电平时开始下载程序,否则直接执行用户程序。这种办法快,不用等前面检测串口的那段时间。STC51单片机冷启动是必须的而复位电路不是必须的,不管是冷启动还是手动启动。也就是想下载程序必须冷启动,而有没有复位电路无所谓。但是最小系统板上必须有复位电路,无论是上电复位,还是上电加手动复位,虽然在一些简单的程序中看不出区别,但是因为复位操作会对一些特殊寄存器产生影响,这样没有复位操作的话再次执行函数的时候会出现错误。单片机断电后在通电也会从主函数处继续执行,可能是单片机断电后地址自动回到0X0000H,但是那些特殊寄存器里的值不会改变。


单片机的上电复位和手动复位是比较简单的电路,只要是根据单片机手册要求的复位时间TRESET要小于复位电路中的RC常数。


单片机下载程序一般都是通过串口,即上位机(STC-ISP)与单片机的底层通信都是通过串口协议实现的,两者之间更为高级的通信协议是建立在串口协议上的。


Note2:上位机(STC-ISP)检测单片机时序


 波特率即为串口发送每比特所占用的时间,此处为2400,即每比特所占用的时间为1/2400=4.167*E-4 (S);可以点击检测MCU选项,上位机开始与单片机握手。整个握手过程可以从图2.2中获得,图中橙色为上位机发送的询问脉冲,蓝色为单片机的响应脉冲



2.1  STC-ISP软件


 



2.2  握手过程


 


 


由图2.2可知,上位机先发送检测信号,此时单片机需要冷启动,检测信号可以参看图2.3。在单片机冷启动后,单片机会运行内部固化程序,自行检测串口是否有上位机检测信号。一旦发现检测信号,单片机回复响应信息,响应信息波形可见图2.4,内容则可见图2.5


 



2.3  检测信号



2.4  响应信号


 



2.5  回复内容


 


上位机接收到单片机响应后的回复信号,波特率为2400,每比特所占时间大约为416us,可以根据图2.7对上位机的回复进行数据解析。


 



2.6  上位机回复内容

 



2.7  上位机回复内容


Note3:上位机(STC-ISP)程序烧录


   总的烧录过程为:上位机先检测单片机,再通知单片机开始烧录程序,每次发一小段程序,单片机会有一个ACK,之后再发结束指令,图3.2接图3.1



3.1  程序烧录



3.2  程序烧录


Note4总结





图4.1   汇总





                                                                                           WOLF


 



没有更多推荐了,返回首页