手机版单片机烧录程序序

前段时间买了一个51单片机开发板。买完后发现,这开发板和芯片的厂家都是十分山寨。
芯片产家叫STC,江湖人称“死太惨”,它的中文名字叫“宏晶科技”,官网是:,相信在打开这个网站之后,你就同意我的看法了。如果还不够的话,可以下载它的芯片手册:,或者&,体验体验。
开发板的产家叫做普中科技,一个连官方论坛都打不开的神秘企业,谢天谢地,它还是有官网的:。
虽然山寨味浓厚,但是接地气。唯一令人生厌的是其不公开ISP协议,而且芯片还加密。
51单片机是Intel在1981年推出的一种8位单片机(MCU),它不仅包含了一个8位CPU,还内置ROM和RAM,还有P0.0~P3.7共32根IO脚。型号叫8051。后来Intel不再生产单片机了,但其他产商则相继推出各种与8051完全兼容的单片机,而且还不断增强功能。
8位CPU已经完全没有技术门槛了,所以现在国内很多产家也都在生产。其零售价格大概4.4块钱。要知道,一块ARM32的单片机价格,也是10块钱以内的。
有了单片机,总要接上各种外设,于是就有了开发板。开发板上有PCB、LED、键盘、步进电机等元件,所以价格就比单片机贵多了。
以下是 8051 CPU 外部接口电路图:
我买到的型号是 STC90C516RD+,跑程序的流程大概是这样的:
用C语言或者汇编写源代码。
用&&编译成hex或者bin文件。
用USB线连接电脑和开发板,然后用STC或普中科技的烧录软件把文件写入单片机,就可以运行了。
开发板上集成了 CH340T 芯片,将USB转换成串口,连接到单片机,所以电脑和单片机的通信协议是串口。(当然,准确来说,USB和串口都是串行通信)
CH340T 电路图:
hex文件其实是一个文本文件,它有固定的格式,是Intel定的。烧录软件其实会把它转换成bin文件再写入,这一过程是透明的。bin文件就是单片机可执行的二进制代码了。
Keil是个IDE,而且是收费的,只支持Windows。Linux下可以使用sdcc编译。当然,8051的指令相对较少,完全可以自己写一个汇编器。
但是,这里最关键的是,文件是怎么被写入单片机的?对于此,STC是不公开的。于是……
下面直接上研究结果。
STC单片机内部ROM有一段固化的程序,称为ISP程序,是用来支持烧录的。早期8051并无集成此功能,要用专门烧录器实现。
单片机断电状态下通电,称为“冷启动”,此时,CPU会先执行该ISP程序。
这估计是借鉴了PC中BIOS的原理。
ISP程序会去检查串口RXD是否高电平,有合法的下载命令流,如果有,就进入ISP模式;如果没有,就直接跳转到地址0000H执行用户程序。
因此,我们电脑(被称为“上位机”)上的烧录软件,就是要让单片机进入ISP模式,然后将数据发送给它。
重头戏来了
首先,在单片机断电情况下,但串口仍与PC连接时,烧录软件即要打开串口,以 00 其中之一(建议1200)波特率,不断往串口发 0x7F。
重要参数:波特率1200,停止位1,无校验、数据位为8位。
重要提示:如果波特率高于4800,无法进入ISP模式。
此时,打开开发板电源,单片机冷启动。检测到串口有0x7F,进入ISP模式。并发送类似如下的回复:
68 00 3B 00 16 BA 16 B6 16 B6 16 BA 16 BA 16 BA 16 B6 16 B6 43 43 FD F1 30 82 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 39 16
68 00 是回应标识符。
3B 包的长度。
00 表示这是数据包。
16 BA 16 B6 16 B6 16 BA 16 BA 16 BA 16 B6 16 B6 是8次测量脉宽的数据,可以借此计算出单片机的晶振频率、最大支持波特率。
43 43 表示固件版本是 4.3C。
FD 是单片机选项,每一位都表示一个选项信息:
x x x x x x x x
8 7 6 5 4 3 2 1
1=时钟倍速,1=12T,0=6T
3=需要短接P1.0/P1.1 才能下载 1=关闭,0=开启
4=下次下载擦DATAFLASH,0=开,1=关
5=时钟增益,1=高,0=低
6=ALE脚,0=P4.5,1=ALE
7=允许访问内部AUX RAM,1=允许,0=不允许
8=停止看门狗,1=复位关,0=停电关
倒数第二个字节 39 是校验和。
最后一个字节 16 是包尾固定值。
其他字节对烧录而言暂不需要。
我们发的第一个数据0x7F和单片机第一次回应(如上),都不是真正的包,在接下来的通信中,则使用固定的包格式。其格式如下:
包头 + 标识符 + 包长 + 命令 + 数据 + 校验和 + 包尾
包头:2字节,固定为 46 B9。
标识符:2字节,上位机发往单片机的为 6A 00,单片机发往上位机的为 68 00。
包长:1字节,除包头外的长度。
命令:1字节,代表包的类型。
数据:不固定长度。可以无。其长度可由包长计算得出。
校验和:1字节,除包头、校验和本身、包尾外的数据的校验和。
包尾:1字节,固定为 16。
校验和的计算方法
校验和计算方法为 标识符、包长、命令、数据 4个部分的数据,各字节相加,取低8位。
84: 擦除ROM
8D: 设置选项
8E: 确认波特率
8F: 校验波特率
数据包格式
上位机发往单片机的数据即二进制代码文件,它被封装在上述的包:数据一节中,但它本身也是有格式的:
占位符 + 地址 + 长度 + 代码数据
占位符:2字节,固定为 00 00。
地址:2字节,表示代码的地址。
长度:2字节,表示代码的长度。
代码数据:其长度由上面字段指出。
烧录过程总结
上面已经将STC的通信协议格式分析完毕了。需要具体分析的只剩下命令的含义、各个数据的含义了。这些都是后话了。至少关于烧录,上面的信息已经够多了。
首先,单片机断电。烧录程序启动,以1200波特率不断往其串口发送0x7F。然后通电。
收到单片机信息的回复,此回复主要包括脉宽、型号、选项等信息。
由收到的脉宽值,计算出重装值,并发送给单片机。等待约200ms。同时由脉宽值计算出单片机最大支持的波特率,然后切换到某波特率(不得超出最大波特率),等待回应。
如果收到正确的回复,则表示波特率可行,则切换到1200波特率,并发送一个波特率确认的包文。发送完,等待约200ms,然后切换回原来的波特率,等待回应。
如果收到单片机的波特率确认包文,表示到目前为止,一切正常。否则,就算失败。
连续发送约5次重新握手的包文并等待回应。如果收到回应,表示一切正常,可以开始发送代码数据了。否则就是失败。
将代码数据分割成一定大小的包发送并等待正确回应。
设置单片机选项。
发送50包文,等待正确回应。然后发送关闭包文。
关闭串口,结束通信。
STC还支持热启动烧录,就是不用先断电再通电,而是在通电状态下可以直接烧录。看来,ISP程序一直在监听串口。普中科技的“自动下载软件”就是用这种方法烧录的。其技术细节,以后再更新。
在通信过程中,单片机内部的ISP每次都会启动一个定时器,目测大概是2s,一旦通信过程中超时,单片机就会马上终止通信并跳转到0000H处执行用户程序。
阅读(...) 评论()国产单片机攻略3&-&脱离开发板直接给单片机烧录程序
攻略2里说了在开发板上给HR7P194单片机写简单的控灯程序。如果要做出一款产品,最后是要脱离开发板,直接给自己电路上的单片机烧录程序的。194单片机是功能很多的大单片机,简单的应用没必要用194。对于简单的闪灯电路,这次我用了HR7P170FHD。它有20个管脚,其实也是大材小用。这里只是做个练习,正真做产品的时候,可供选择的芯片很多。我用的芯片都是FLASH芯片,可以N多次烧录擦除程序,循环使用。攻略2没说全的地方是:写嵌入式应用程序的时候,需要看单片机芯片的数据手册。因为你要知道芯片管脚功能信息,寄存器在哪个地址,在哪个存储体组,还有各种参数要知道。所以单片机芯片的数据手册都可以在以下链接下载到
http://www.ichaier.com/list.php?catid=118
上回还说漏的一个地方是,我怎么知道子板里的194芯片的哪个管脚和LED灯相连?开发板的原理图以及例程都可以在以下链接下载。找到开发板AN049_用户手册,是一个PDF文档,里面有原理图。
&http://www.ichaier.com/list.php?catid=81
给自己做的电路里的单片机写嵌入式程序流程和攻略2是一样的。不同的地方就是你用ICD直接连芯片。
图1:ICD与电路中的芯片相连
这个电路是一个单片机某输入输出(I/O)管脚连两个LED灯,超级简单的电路。5根线从ICD连到芯片相应位置,这个连接看以看芯片以及ICD文档。每个芯片的管脚数以及布局都不一样。
程序代码如下:
timer1 equ H'0003'
timer2 equ H'0004'
0X0000&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
delay& movi 0ff
mova timer1
down&&& jdec
goto delay2
delay2 movi 0ff
mova timer2
down2 jdec timer2,1
;make port a input
PAT&&&&&&&&&&&&
;make port b input
start&&&&&
call delay
call delay&
goto start
非常有意思的是这颗芯片的我所用到的特殊功能寄存器都在一个存储体组,我就不用切换来给他们定值了。代码也简单,对写应用的人来说也非常方便。
完成调试,功能都验证成功后。你可以对芯片进行最后的烧录以完成“产品”,不再使用ICD调试模式。这个如何设定呢?看图:
图2:设置项目属性
到解决方案下面的项目名称点鼠标右键,然后点属性。出现个这样的窗口:
图3:更改芯片设置
Config这一项中点edit。然后把ICDEN项改成disable就可以了(即跳出了调试模式)。重新生成解决方案,程序就烧录到芯片了。这时你可以把ICD的5根线拔掉,给电路上电源,一个“成品”就出来了。
图4:项目完成
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。求助!单片机烧不进程序!!!!!!|我爱单片机 - 数码之家
查看完整版本: [--
赞助商链接
单片机型号:STC12C5A60S2下载器CH340芯片STC-ISP版本:V6.85I、V6.85、V4.83电路图及实际连接线路如下,烧程序一直显示“正在检测目标单片机。。。”求大虾帮忙,感激不尽!!!![attachment=6773779][attachment=6773794]
赞助商链接
调整波特率。直到可以下载更换单片机。排除芯片故障点击下载以后,断开电源重新上电了么
赞助商链接
stc12c5a60s2是5v电压的,你用两节干电池怎么跑得起来呢?至少要3节电池,或者usb5v电源。看手册12c5a系列的电压是4-5.5v,12le5a才是3.3v的。另外烧写的时候要和340共地才行。你实验板的正负电源插反了,虽然接线上貌似没问题,但是这个习惯可不好,一不小心就会吃苦头的。
电源是否够,数据线有没有问题,晶振起振了没有
1, 先看看线有没有连接好,2. 直接取USB电源,&&3,点下载后,&&显示&&仍在连接中, 请给 MCU 上电...&& 这时要断开一下电源,以上没问题,就看电源,ISP线,1,看驱动是否正常,&&用测试软件,测试一下ISP线是否OK.2, 串口别弄错了,(要是错了,一下载就会提示的)3,线也可能有问题,&&最后放在后USB, 我前几天折腾了好久,最好发现杜邦线断了,(这连续试了N次, 我用的2303.换了两个),电脑也换了,最后想到测试, 我直接弄一根线测,显NG, 我用镊子短路OK.万用表测一下,线断了,
看你图片的晶振和GND那里&&是不是错位了?
:stc12c5a60s2是5v电压的,你用两节干电池怎么跑得起来呢?至少要3节电池,或者usb5v电源。看手册12c5a系列的电压是4-5.5v,12le5a才是3.3v的。另外烧写的时候要和340共地才行。你实验板的正负电源插反了,虽然接线上貌似没问题,但是这个习惯可不好,一不小心就会吃苦头的。 ( 05:44) 是用的3节电池
18、19接晶振,20接电源负。看清楚引脚再接线啊
新单片机?如果没烧过系统先接LED测试你的最小系统OK不,OK了再烧程序,端口别选错,别忘了先下载后上电
万能板可能接触不良。这也是我一直推荐使用产品开发板的原因。其余参见: STC单片机下载失败处理汇总
串口没共地吧
原来用USB3.0 接口,换了一个USB2.0 接口就可以下载了,不知道为什么?
:原来用USB3.0 接口,换了一个USB2.0 接口就可以下载了,不知道为什么? ( 19:24) 正常下USB 3.0兼容2.0,我用USB3.0 + 64位 WIN7 CH340芯片的USB线下载STC15,STC12等STC单片机都成功。
负极断电不彻底~~
查看完整版本: [--
Powered by
Time 0.088795 second(s),query:5 Gzip enabled单片机烧录器,周立功编程器,周立功烧录器,周立功单片机编程器,周立功烧写器-深圳得技通电子有限公司
<font color="#单片机
&|&&|&&|&&|&&|&&|&&|&&|&&|&&|&&|&&|&【站内资料搜索】&&&
您当前位置:
&&&周立功编程器/周立功烧录器/周立功烧写器
各厂商编程器
各厂商仿真器
其它类型产品
周立功编程器/周立功烧录器/周立功烧写器
周立功量产编程器/周立功烧录器系列
& 生产厂家: 周立功
SmartPRO6000F-PLUS通用编程器
采用全新Smart-FPS架构的SmartPRO 6000U通用编程器,内含4核高性能处理器,四核CPU协同工作,相对传统单核CPU处理性能提升超过四倍,配合...
& 生产厂家: 周立功
SmartPRO T9000-PLUS编程器
量产工具系统集成4个独立通用编程站点于一体,各站点完全异步操作,就如同4台独立的通用编程器。每个站点自动感应芯片即插即写,没有同步等待时间,高速高效。对多数...
& 生产厂家: 周立功
SmartPRO 9800&PLUS编程器已停产
量产工具系统集成4个独立通用编程站点于一体,各站点完全异步操作,就如同4台独立的通用编程器。每个站点自动感应芯片即插即写,没有同步等待时间,高速高效。对多数...
周立功语音编程器
& 生产厂家: 周立功
ZY VoiceProgrammer 语音编程器
ZY VoiceProgrammer语音编程器广州致远电子有限公司开发的专用语音下载器,通过配套软件可以将多个音频文件(wav文件)下载到ZY系列语音芯片中,并可以将指定的文件下载到指定的存储位置上...
周立功万用型/研发型编程器/烧录器系列
& 生产厂家: 周立功
SmartPRO5000U-Plus烧录器
1. 可靠烧录。2. 数据安全。3. 极速编程。4. 脱机编程。5. 产量控制。6. 集群量产。7. 采用128×64图形点阵液晶显示屏,可选中英文界面,显示内容更丰富,编程细节一览无遗.与同类编程器相比,大显示屏可在脱机...
& 生产厂家: 周立功
SmartPRO&X8-Plus烧录器
采用FPGA技术实现I/O接口可重构,彻底解决传统CPLD扩展I/O口的速度瓶颈,达到芯片的极限编程速度;独有的芯片检测技术保证芯片的可靠烧录;轻松实现芯片批量编程;支持...
周立功经济型编程器
& 生产厂家: 周立功
EasyPRO 80B通用编程器 (研发型)
EasyPRO 80B通用编程器是EasyPRO系列的第一个成员,它是目前国内市场上同类产品中集成度最高,功耗最小,支持型号最全的通用编程器之一。EasyPRO 80B采用USB通讯技术,内置高速CPU并采用程控电源和程控分频器...
& 生产厂家: 周立功
EasyPRO 90B通用编程器 (研发型)
EasyPRO 90B是同类产品中集成度最高,功耗最小,支持型号最全的电脑主板BIOS专用烧录机。EasyPRO 90B采用USB通讯技术,内置高速CPU并采用程控电源和程控分频器,使得编程深度加大 ...
周立功专用型编程器
& 生产厂家: 周立功
MiniPRO多功能USB2.0下载线
MiniPRO多功能USB2.0下载线可完全兼容旧的“MiniICP” 专用下载线,首先可用于编程P89LPC900芯片。用户只需在电路设计时增加简单的“ICP接口”,即可轻松实现LPC900系列单片机“在电路...
注:此编程器已停产
周立功已停产编程器
& 生产厂家: 周立功
SmartPRO T9000量产编程器
量产拷贝,硬件系统集成4个独立通用编程站点于一体,各站点完全异步操作,就如同4台独立的通用编程器。每个站点自动感应芯片即插即写,没有同步等待时间,高速高效。对多数...
&&&&&注:此编程器已停产
& 生产厂家: 周立功
SmartPRO 5000U烧录器量产编程器
1. 可靠烧录。2. 数据安全。3. 极速编程。4. 脱机编程。5. 产量控制。6. 集群量产。7. 采用128×64图形点阵液晶显示屏,可选中英文界面,显示内容更丰富,编程细节一览无遗.与同类编程器相比,大显示屏可在脱机...
&&&&&注:此编程器已停产
& 生产厂家: 周立功
SmartPRO X8通用编程器 (量产型)
采用独一无二的管脚保护电路和管脚自动检测技术,并配合电气性能更为优良的时序发生电路、成熟可靠的过流保护电路和可程控的过流阀值控制电路。编程器件最高工作电压可达9V,保证在更大范围内满...
&&&&&注:此编程器已停产
& 生产厂家: 周立功
SmartPRO X5通用编程器 (量产型
采用第七代时序发生电路加上IC厂商认证算法,在高速CPU+FPGA的架构下,使编程时间精确到ns级,达到速度颠峰。编程+校验一片32Mb FLASH存储器 (INTEL 28F320W18)为13秒,傲视群雄...
&&&&&&注:此编程器已停产
& 生产厂家: 周立功
EasyPRO L+通用编程器 (小批量量产型/研发型)
EasyPRO L+ 演绎着EasyPRO系列编程器的重大技术突破,从性能到外观带给您全新体验,深具竞争力的价格及遍布全国的销售服务网络绝对是一款性价比最高的通用编程器...
&&&&注:此编程器已停产
& 生产厂家: 周立功
EasyPRO 100B通用编程器 (研发型)
EasyPRO 100B通用编程器是EasyPRO系列的第二个成员,它采用USB通讯技术,内置高速CPU并采用程控电源作为编程电源,使得编程速度更快,稳定性更好,编程效果更加流畅。此外,它从硬件上能够保证每个引脚...
&&&&&&&注:此编程器已停产
& 生产厂家: 周立功
EasyPRO 500通用编程器 (小批量量产型/研发型)
EasyPRO800/500演绎着EasyPRO系列编程器的重大技术突破,从性能到外观带给您全新体验,深具优势的竞争价格及遍布全国的销售服务网络绝对是您的唯一选择...
&&&&&注:此编程器已停产
& 生产厂家: 周立功
LPC PRO编程器
LPC PRO编程器是一款全面支持PHILIPS LPC系列单片机烧写的专用型编程器产品。该编程器不仅支持P87LPC700和P89LPC900系列单片机,也支持大部分24、25、93系列串行EEPROM的编程...
&&&&&注:此编程器已停产
& 生产厂家: 周立功
EasyPRO 800通用编程器 (小批量量产型/研发型)
EasyPRO800/500演绎着EasyPRO系列编程器的重大技术突破,从性能到外观带给您全新体验,深具优势的竞争价格及遍布全国的销售服务网络绝对是您的唯一选择...
&&&&&注:此编程器已停产
& 生产厂家: 周立功
SmartPRO&X5-Plus烧录器
采用FPGA技术实现I/O接口可重构,彻底解决传统CPLD扩展I/O口的速度瓶颈,达到芯片的极限编程速度;独有的芯片检测技术保证芯片的可靠烧录;轻松实现芯片批量编程;支持...
&&&&&注:此编程器已停产
Copyright&(c) 2005 www.8051faq.com.cn Inc. All Rights Reserved.
深圳得技通电子有限公司 版权所有
ADD:深圳市深南中路赛格广场37楼3703室 TEL: 4 E-mail:sale7-单片机怎么烧录程序 单片机烧录程序的步骤_电脑软件教程__系统粉
系统粉--你身边的xp、win7、win8系统下载站
当前位置:&&&&&&&&&&单片机怎么烧录程序 单片机烧录程序的步骤
单片机怎么烧录程序 单片机烧录程序的步骤
时间: 来源:互联网 浏览量:241
今天给大家带来单片机怎么烧录程序,单片机烧录程序的步骤,让您轻松解决问题。单片机烧录程序和调试方法。以51为例,介绍:如何编译程序,如何下载程序到单片机,以及接线图。具体方法如下:1为了过程方便,通常会新建一个英文文件夹,这里以qq文件夹为例。将编好的C 程序LED.C放入qq文件夹(.asm文件也可以,不过最后添加文件时,要选择ALL files,具体请看下面添加程序时的步骤 )2打开keil软件,选择菜单栏的project,在它的下拉菜单里选第一个New uVision project,这里将这个工程命名为qq,并保存到我们建立的qq文件夹内,点击确定后,会弹出下面对话框3找到Atmel,在它的左侧有+号,点击会展开一系列芯片型号,找到AT89C51,点击并点选下面的ok,弹出下面的对话框,选择 否4进入编辑页面后,看到左侧空白窗格的+Target 1,点击它前面的+号,弹出Source Group 1.
右击Source Group 1. 弹出下面下拉菜单,选择Add Files to Group Source Group 15弹出的对话中,选择LED.C,点击add,然后点击close关闭窗口。点击Source Group 1的+号,就会显示出添加的LED.C文件,双击LED.C就会出现它的代码(如果是.asm文件,请选择all files,看下图)6右击+Target 1,并选择第一项,弹出下面对话框,选择debug,点上use,并选择keil moniter-51 driver7在点output选项,在creat hex file打勾,最后点击ok8回到编辑面,依次点击编译按钮,Target 1上面有三个带向下的箭头按钮,从左到右点击,回到qq文件夹看看是否有.hex文件,若没有在编译一次9将单片机与电脑连机,打开烧录软件,选择低速下载,点击打开文件,选择建立的qq文件夹,打开后点击文件qq.hex,最后选择STC89C5XX系列,然后下载程序,成功后图片如下10接线图为p0端口与led以上就是单片机怎么烧录程序,单片机烧录程序的步骤教程,希望本文中能帮您解决问题。
我要分享:
系统教程栏目
电脑软件教程推荐
电脑软件热门教程
最新电脑教程
本站发布的ghost系统与电脑软件仅为个人学习测试使用,请在下载后24小时内删除,不得用于任何商业用途,否则后果自负,请支持购买微软正版软件!
如侵犯到您的权益,请及时通知我们,我们会及时处理。
Copyright @ 2011 系统粉

我要回帖

更多关于 单片机烧录软件下载 的文章

 

随机推荐