串口下载与调试、STC-ISP软件使用详解
目录
1.硬件准备
1.1 PC机串口连接单片机系统的RS232接口
1.2 PC机USB口连接单片机系统的RS232接口
1.3 PC机DB9接口连接单片机系统的TTL口线
1.4 PC机的USB口连接单片机系统的TTL口线
1.5系统自带USB转TTL串口电路,使用USB线直连
2. STC-ISP软件下载步骤
2.1确认串口号
2.2 STC-ISP下载步骤
3.STC-ISP中提供的辅助编程工具
3.1程序文件和EEPROM文件
3.2串口助手
3.3 Kei仿真设置
3.4选型、价格、样品选项卡
3.5范例程序
3.6波特率计算器
3.7定时器计算器
3.8软件延时计算器
3.9头文件
3.10其他参考信息
4.小结
1.硬件准备
STC系列单片机使用STC-ISP软件进行下载,在进行下载之前需要用线连接单片机的UART0 (P3.0 P3.1)和运行STC-ISP程序的PC机的串口。根据单片机系统的电平转换情况和PC机的接口类型有多种硬件连接情况。分述如下:
1.1 PC机串口连接单片机系统的RS232接口
老式的PC机以及当前大部分台式机都有DB9串口接头,是RS-232逻辑电平的,如下图所示:
在这种情况下需要使用232串口线连接单片机系统,同时需要单片机系统上面有TTL到RS-232的电平转换电路。
标准串口连接线
上图为串口连接线,一头接PC机的DB9公头,另一头接单片机系统的DB9母头。
B系列开发板带有232电平转换电路
单片机系统上面需要有TTL到RS232的电平转换电路。单片机系统上面的TTL到RS232电平的转换电路在下文有详述。
1.2 PC机USB口连接单片机系统的RS232接口
大部分的笔记本电脑没有DB9接口,另外USB接口是当前最为方便的PC机接口,使用USB转RS-232线连接单片机系统是一种更为方便的选择:
USB转RS232串口线连接电脑后,根据USB转RS232线使用的芯片,需要安装相应的驱动程序,如何安装驱动,请参考链接:USB转RS232串口线
在这种连接方式下,单片机系统中同样需要有TTL转RS-232逻辑电平转换电路。
开发板带有232电平转换电路
1.3 PC机DB9接口连接单片机系统的TTL口线
这种连接方式不需要单片机系统中增加RS232电平转换电路。只需要一个232到TTL电平转换小板就可以了。
RS232转TTL电平小模块
一个典型的232转TTL小板子连接PC机和单片机系统的实例。
1.4 PC机的USB口连接单片机系统的TTL口线
同样这种连接方式不需要单片机系统中有232电平转换电路。也是最为常见的一种连接方式,市面上出售的STC下载线实际上就是一个USB转TTL的接口转换电路。如下图所示:
关于USB转TTL的小板子的电路原理以及如何安装驱动程序等,请参考USB转TTL小板子STC下载线的说明书。
除了上述USB转TTL串口的小板子外,如果手头上有USB转RS232线,再外加一个RS232转TTL的小模块也可以。这样的方式相当于先把USB转成RS232电平,然后RS232电平再转成TTL后连接单片机系统,似乎增加了成本,但这种方式没有常见的USB直转TTL引起的馈电等问题,效果非常好。
1.5系统自带USB转TTL串口电路,使用USB线直连
很多的单片机开发板已经把USB转TTL电路布到了板子上面,在这种情况下直接用USB线连接开发板就可以。
通用安卓手机线查看详情
H系列核心板自带USB转TTL串口电路查看详情
2. STC-ISP软件下载步骤
2.1确认串口号
首先按照上一节的描述根据PC机的接口情况和单片机系统是否自带232电平转换电路、USB转TTL串口电路等情况选用合适的连接方式连接PC机和单片机系统。如果是USB转RS232串口线或者USB转TTL串口线连接,还需要安装相应的驱动程序。之后需要确认串口号,此串口号在STC-ISP下载时用到。
以win7系统为例:
在桌面的计算机图标上面点击右键,在快捷菜单中选择“属性”,
在此页选择“设备管理器”。
或者在控制面板中双击“设备管理群图标”
弹出设备管理器页面:
在此页面上面,点击端口(COM和LPT)后可以看到USB转串口的串口号.此处连接的USB转串口芯片是CH340,其他市面上常见的还有PL2303 FT232 CP2102等多种方案。把这个串口号记下来,后面STC-ISP配置页面上会用到。
2.2 STC-ISP下载步骤
STC-ISP软件的设计理念是在一个主界面上面完成所有的操作,打开软件后主界面如下图所示:
左侧是下载配置区,右侧上方是15个各种功能的选项卡,这些选项卡提供了很好的编程帮助,下面会有详细的介绍。右侧下方则是下载操作反馈区。
首先看下载的步骤:
首先配置下载选项,如上图所示,首先选择单片机的型号,此处是以H-STC89核心板为例,上面的单片机芯片是STC89C52RC。选择STC89C52RC等较老的型号的时候会弹出来一个对话框:
告知说STC89系列的加密技术已经落后,并提供替代型号,从工程实际的角度来说,如果对加密和运行速度等没有特殊需求,还是可以选择的。但显然STC11 STC12 STC15系列单片机提供了更丰富的外设,更强的运行能力,新品开发是首选对象。
然后需要选择串口号,串口号使用2.1节中所提供的方法来查看。
然后点击“打开程序文件”按钮,选择所要下载的HEX文件,
如何用Keil开发项目并且生成hex文件的步骤,请参考应用笔记《SA16001-使用Keil开发环境进行软件开发》一文。
如果程序中用到了EEPROM,并且想对其进行初始化,请点击”打开EEPROM文件“按钮并选择EEPROM镜像文件。
接下来的硬件选项卡区中,根据硬件的实际情况进行配置,一般情况下默认选项是经过优化的最为通用的选项,初学者可以直接使用默认值。然后点击“下载/编程”按钮开始下载过程:
下载过程开始后,首先在右下侧的下载结果反馈区显示如上图所示的“正在检测目标单片机...”的提示,此时需要给单片机系统断电后再上电才开始正式下载过程。这个断电后再上电的操作随系统而定,例如H系列核心板左上角有一个ISP按钮,按下这个按钮就可以断电,再松开后就可以上电进入下载流程。
B系列开发板左下角有一个ISP按钮,按下这个按钮就可以断电,再松开后就可以上电进入下载流程。
有些应用则是通过插拔电源接头来实现断电后再上电的,如下面的STC控制R2868火焰报警开发板。
总之根据不同的应用对系统断电再上电以后就可以开始下载过程了,下载完成后在右下侧的结果显示区有相应的结果提示:
提示下载成功。
还有一个重要的选项需要特别注意:
在最下面有一个”每次下载前都重新装载目标文件”的复选框,这个在开发阶段一定要打上勾,否则很容易出现代码已经更改了但是却总是在运行时看不到更改结果的奇怪现象,在此提醒朋友们多加注意。
和硬件选项并列的有8个选项卡,涉及了脱机下载器、加密传输、ID号加密、下载口令、RS485下载、自动增量以及用户接口等高级功能,这些功能在开发阶段一般用不到,但在批量生产阶段提供特别实用的功能。例如脱机下载器选项卡运行使用脱机下载器进行下载,对于日产上万台的产品,产能是重要的需要考虑的问题。加密传输ID号加密下载口令等都和保护程序不被破解有关,在知识产权观念还不是特别普及的今天,这些保护措施对于成功的产品极其重要。RS485下载对于只有RS485接口的工业应用场合中升级下载很实用。自动增量的功能方便给每台机器提供唯一序列号,也是作为追踪产品销售渠道,提供售后服务的重要依据。
小提示:为什么下载的时候需要对系统断电后再上电呢?这是因为STC单片机内置的ISP下载程序仅在上电冷启动的时候运行,(也有其他通过用户代码转到ISP程序的途径,但对于没有下载过用户程序的空白片来说这是唯一的途径),所以此处才需要先断电然后再上电。
3.STC-ISP中提供的辅助编程工具
如第二节中所介绍的,STC-ISP界面的右上方有15个选项卡,提供了很多辅助编程工具,下面对重要的几个做一下介绍。
3.1程序文件和EEPROM文件
这两个选项卡存放下载的HEX程序文件和EEPROM镜像文件的,对于一些特殊应用的场合,例如在某个隐蔽的位置提供加密口令等可以直接对文件进行修改。
另外还可以使用区域填充、清空区域等操作更改数据。
3.2串口助手
通过串口输出打印调试信息,输入命令等。对于稍微上规模的应用,串口都是极其重要的调试工具,对于单片机系统而言如此,对于Linux等运行大型操作系统的应用更几乎是唯一可行的调试方式了。串口调试有很多实用的小工具,如Linux上面的minicom, windows系统自带的超级终端软件:
常用串口调试助手小软件:
重量级的软件如: TeraTerm, SecureCRT, PuttY等都提供串口终端功能。我自己比较常使用TeraTerm,它有舒适的字体,并且提供xmodem协议等功能用来通过串口把文件下载到SPI Flash等功能。
支持xmodem Kermit等文件传输协议,方便下载文件到单片机系统中。
http://logmett.com/tera-term-the-latest-version
PuTTY也拥有强大的功能和漂亮的界面。
http://www.chiark.greenend.org.uk/~sgtatham/putty/
以上介绍了多种串口调试工具,除了这些专门的程序之外,STC-ISP的串口助手选项卡本身就提供了完备的串口调试功能,因此可以取代上述专用串口调试程序,实现串口下载和串口调试通过一个STC-ISP软件就可以完成。
如果使用其他的串口调试软件,在STC下载之前必须关掉或者断开串口连接,否则因为占用了下载串口,将导致STC下载无法打开串口。使用STC-ISP自带的串口助手则可以自动切换串口不存在上述问题。
上面是串口助手的工作界面,要使用串口助手,需要先设置波特率、校验位和停止位,然后根据需要设置发送缓冲区和接收缓冲区使用文本模式还是HEX模式。复选框“编程完成之后自动打开串口”勾选的话,下载之后会程序会自动打开串口非常方便。右侧的多字符串发送区特别适合预存常用的串口命令,并且可以实现自动循环下载功能,是非常实用的功能,在调试支持AT指令通信的GSM模块、WIFI模块的时候经常会用到此功能。
3.3 Kei仿真设置
Keil仿真设置选项卡可以将仿真相关功能的文件拷贝到Keil软件目录中,同时也将把STC单片机型号和相关的头文件添加到Keil软件中。点击左上角的”添加型号和头文件到Keil中添加STC仿真器驱动到Keil中”按钮,在弹出来的对话框中选择Keil安装目录,然后再点击确认就可以将相关文件安装到Keil目录。
上图是新添加的仿真驱动。
上图是新添加的STC头文件。
没有执行上述添加操作之前,用Keil创建工程的时候在Option for target的Device选项卡中只能选择Generic-8052(all Variants)选项,而执行了上述添加操作后,则可以选择STC的具体型号,这样会在仿真和启动文件配置上进行一些优化。是更好的选择。
添加前只能选则Generic 8052选项。
添加后选择STC MCU Database,再选择具体的单片机型号。
同样在Debug选项卡中选择STC Monitor-51 Driver就可以使用IAP15F2K61S2等仿真芯片进行仿真。
上图所示的四个按钮可以选择四种单片机作为仿真芯片。
3.4选型、价格、样品选项卡
实际工程中,在开发一个项目前通常需要对型号进行预选择,此选项卡通过选择工作电压、Flash空间、SRAM用量、IO口数量等选项选择进行筛选,然后再根据价格、可扩展性等选择合适的单片机机型。
3.5范例程序
如上图所示,在此范例程序选项卡中在下拉列表框中选择单片机系列,再选择外设操作,以及C还是汇编程序,就可以提供丰富的示例代码,这些丰富的代码库资源,对于快速实现应用程序,调试外设等都有极佳的参考价值。
3.6波特率计算器
如上图所示,在波特率选项卡中根据自己的应用选择好频率、波特率、数据位、时钟源,然后点击左下角的生成C代码,生成ASM代码就可以生成波特率配置源代码,这就免去了复杂的波特率手工计算的工作量,是一个很实用的辅助工具。
3.7定时器计算器
如上图所示,选择好系统频率、定时长度、定时器、时钟源等选项,点击生成C代码、生成ASM代码就可以生成示例代码,同样可以节省时间,也是不错的小工具。
3.8软件延时计算器
软件延时计算器,同样作为代码生成工具,这个相比定时器计算器和波特率计算器更为实用,定时器和波特率计算虽然有点麻烦,但也仅仅是一两个计算公式,手动计算不很复杂。但软件精确延时不得不考虑指令执行周期,循环体和跳转指令占用的时间等等,相当的复杂,实际工程中为了获得精确的定时,往往还要写程序生成一个方波,并用示波器来观察并微调。但此处STC提供的软件延时计算器只需要设定频率,延时时间和指令集版本就可以实现精确的软件延时,是非常实用的功能。
3.9头文件
此选项卡中在下拉列表框中选择合适的单片机系列,就可以列出此系列单片机的头文件,相对于8052标准头文件,增加了STC单片机扩展的sfr寄存器定义和sbit位定义。保存文件到自己的代码目录,并替代reg52.h等标准头文件,可以节省不少时间。
3.10其他参考信息
后面的几个选项卡:官方网站资源、指令表、重要说明、固件版本备注、封装脚位,版本修订历史等提供一些参考信息,在开发过程中可参考浏览。
4.小结
本文讲解了如何下载程序到STC单片机,包括所需要的硬件连接准备工作,以及STC-ISP软件下载的详细步骤。另外还对STC-ISP软件所提供的辅助功能,例如串口助手、各种代码自动生成器等做了详细的介绍。
查看评论 回复