最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

STC新型单片机的ISP程序设计

来源:动视网 责编:小OO 时间:2025-10-01 02:02:01
文档

STC新型单片机的ISP程序设计

STC新型单片机的ISP程序设计随着单片机技术的不断发展,IAP(In-Application-Programming)功能的支持越来越普遍,这给应用系统程序代码升级带来了极大的方便。但是,ISP(In-System-Programming)程序的设计以及程序空间的安排等,是需要开发者认真细致考虑的。本文针对STC新型单片机的应用ISP程序设计作了详细的介绍,以STC11F62X为例,详细说明了具体实现过程,并给出了Keil-C源代码。一.STC新型单片机介绍STC11/10xx系列单片机是宏
推荐度:
导读STC新型单片机的ISP程序设计随着单片机技术的不断发展,IAP(In-Application-Programming)功能的支持越来越普遍,这给应用系统程序代码升级带来了极大的方便。但是,ISP(In-System-Programming)程序的设计以及程序空间的安排等,是需要开发者认真细致考虑的。本文针对STC新型单片机的应用ISP程序设计作了详细的介绍,以STC11F62X为例,详细说明了具体实现过程,并给出了Keil-C源代码。一.STC新型单片机介绍STC11/10xx系列单片机是宏
STC新型单片机的ISP程序设计

随着单片机技术的不断发展,IAP(In-Application-Programming)功能的支持越来越普遍,这给应用系统程序代码升级带来了极大的方便。但是,ISP(In-System-Programming)程序的设计以及程序空间的安排等,是需要开发者认真细致考虑的。本文针对STC新型单片机的应用ISP程序设计作了详细的介绍,以STC11F62X为例,详细说明了具体实现过程,并给出了Keil-C源代码。

一.STC新型单片机介绍

STC11/10xx系列单片机是宏晶科技设计生产的单时钟/机器周期(1T)的单片机,是高速、低功耗、超强干扰的新一代8051单片机,指令代码完全兼容传统8051,但速度快8-12倍。内部集成的FLASH寿命可达10万次,并且完全支持ISP和IAP功能。该系列针对不同功能、电压、封装等的型号规格非常齐全。所有的STC11/10xx系列单片机内部都固化了宏晶科技的ISP程序,不需要并行编程器,通过RS232串口就可以烧录用户程序。但一些系统为了程序保密或者采用其他诸如RS485通讯或其他通讯方式的需要,仍然需要自己编写ISP程序用于系统升级。在STC11/10xx系列单片机中以IAP打头的芯片型号,用户程序和数据FLASH是统一寻址,允许在用户程序中擦写FLASH,因此可以编写自己的ISP程序。

本程序例子中选用的单片机是IAP11F62X,包含内部可用的62kFLASH空间和扩展的1024字节XRAM。

二.单片机内部FLASH存储器安排

为了充分使用单片机内部FLASH,将FLASH划分为三部分:

FLASH地址

使用分区地址划分例子
高地址:

低地址(0000):

数据存储区0xF400~0xF7FF

ISP监控程序区

0xF000~0xF3FF

用户程序区0x0000~0xEFFF

用户程序区从低地址0000开始,主体程序运行不受任何影响。当满足特定条件(需要进入ISP监控程序)时,跳转到ISP监控程序区运行,可对用户程序区进行擦除和改写。剩下的高地址FLASH可用作数据存储。

三.ISP实现基本结构

满足系统升级条件

软复位

结束

擦写

接收数据,运行IAP程序对FLASH编程实现用户代码升级

用户程序可以有多种方式判断是否跳转ISP监控程序:

1.串口接收到特殊格式指令;

2.用户板上指定的按键或跳线组合;

3.由用户板操作功能选择。

四.IAP程序设计

IAP程序设计比较简单,只需对几个特殊功能寄存器进行操作就可以完成FLASH的擦除和改写。

附件二.IAP_11_10.C是IAP程序的C源代码;附件三. IAP_11_10.h是头文件说明,其中可以看到对FLASH存储器的安排:

#define FPRG_END    0xEFFF    /* 用户程序末地址(60k) */

#define BOOT_ADR 0xF000    /* 在线升级监控程序地址(1k) */

#define FDAT_ADR    0xF400    /* 数据FLASH地址(1k数据) */

#define FDAT_PGN        2    /* 数据FLASH页数(1k字节2页) */

程序中需要说明的几点是:开启IAP功能前,将中断允许EA暂存到位变量ea_tmp,并将中断禁止;关闭IAP功能时再将中断恢复。另外,根据硬件选择的振荡器频率,在IAP_11_10.h中设置适当的参数。

五.ISP程序设计

ISP程序中主要是根据串口接收到的指令,调用IAP函数进行操作。附件四. ISP_DEMO.C是ISP程序的C源代码。附件五.BOOT.A51是程序初始化代码,由于ISP程序被安排从0xF000地址开始,因此与普通程序初始化代码STARTUP.A51不同,BOOT.A51中指定了代码地址是从0xF000开始,即:“CSEG  AT  0xF000”。

生成ISP_DEMO程序需要在Keil-C中建立工程文件,除了包含ISP_DEMO.C,还应包含IAP_11_10.C及BOOT.A51。另外还需设置程序空间地址范围:在Target选项卡中,Off-chip Code memory设置Start:0xF000,Size:0x0400

另外,ISP_DEMO程序中同时支持EEPROM读写。程序开始时将1k字节FLASH数据读入xdata缓冲区备用。指令操作过程中,实际都只在xdata缓冲区中操作,直到退出ISP程序前,才将数据FLASH扇区擦除并将1k字节数据全部写入。

如果用户程序开启了看门狗,进入ISP监控程序后,在看门狗最长复位时间内,如果串口没有收到有效的系统复位通讯指令数据,芯片会自动复位返回用户程序区运行。这样可以防止ISP程序的误入,当然还可以修改ISP监控程序作更多的标志和判断以及程序陷阱,进一步防止ISP程序的误操作。

六.用户程序设计

在用户程序设计中,应该包含有判断以及跳转ISP监控程序的代码段。附件六.TEST.C是一个简单的用户程序的例子,程序通过两种方式可进入ISP监控程序:同时按下两个按键或者串口在250mS之内接收到特殊字符’Z’和’z’。

生成TEST程序也需要在Keil-C中建立工程文件,除了包含TEST.C,还应包含IAP_11_10.C

七.与计算机连接的通讯协议

升级用户代码时,需要与计算机进行通讯,一般采用RS232串行通讯,数据协议采用简单协议。本文例子采用的通讯协议可以用串口测试程序(RS232.EXE)进行程序升级测试,注意:选择22.1184晶体2倍速再复位,这样通讯速率才是115.2kBps。

1.复位指令(计算机->单片机)

计算机发送四字节复位指令:21H,5AH,00H,A6H,单片机返回复位信息。

2.复位信息(单片机->计算机)

复位信息为25字节,前三字节为单片机公司特征字符(如:“ADI”“SST”“STC”),最后一字节为效验和。

3.数据包格式

计算机发送数据包格式:07H,0EH,长度,数据,效验和(长度与数据的效验和)。

4.擦除指令

计算机发送数据包,其中数据只有一字节,内容为:字符’A’或’C’。单片机擦除用户程序区后返回一字节06H表示成功;05H表示失败。

5.编程指令

计算机发送数据包,其中数据内容:’W’,00H,地址高字节,地址低字节,程序数据。单片机返回一字节06H表示成功;05H表示失败。

6.读EEPROM指令

计算机发送数据包,其中数据内容:’R’,长度,地址高字节,地址低字节。单片机返回一字节05H表示失败;06H表示成功然后紧跟的是读出的数据字节和效验。

7.写EEPROM指令

计算机发送数据包,其中数据内容:’E’,00H,地址高字节,地址低字节,EEPROM数据。单片机返回一字节06H表示成功;05H表示失败。

8.运行用户程序

计算机发送数据包,其中数据只有一字节,内容为:字符’U’。单片机返回一字节06H表示成功,然后跳转用户程序运行。

八.结束语

根据以上ISP程序设计,大家可以修改ISP代码,丰富其他的ISP功能(如:口令控制、数据加密等),尝试设计自己的ISP程序。

魏东 tonywei@tom.com

2009-6-25

文档

STC新型单片机的ISP程序设计

STC新型单片机的ISP程序设计随着单片机技术的不断发展,IAP(In-Application-Programming)功能的支持越来越普遍,这给应用系统程序代码升级带来了极大的方便。但是,ISP(In-System-Programming)程序的设计以及程序空间的安排等,是需要开发者认真细致考虑的。本文针对STC新型单片机的应用ISP程序设计作了详细的介绍,以STC11F62X为例,详细说明了具体实现过程,并给出了Keil-C源代码。一.STC新型单片机介绍STC11/10xx系列单片机是宏
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top