学海荡舟手机网

主页 > 实用文摘 > 教育文摘_09 > > 详细内容

SST89C54/58系列单片机的IAP应用技术_单片机论文

摘要:sst89c54/58j silicon storage technology公司推出的带有20kb/36kb flash的单片机。芯片内部集成了可以对flash进行操作的功能模块。通过对flash的分区实现在应用中可编程的功能。本文介绍它们的iap功能,并给出iap功能的一些子程序。

    关键词:sst89c54/58 iap flash存储器

sst89c54/58单片机是mcs-51系列单片机的派生产品。它们在指令系统、硬件结构和片内资源上与标准8052单片机完全兼容,只是加大了内部程序存储器flash的容量。

sst89c54/58的特色:

*256×8位内部ram;

*3个16位定时/计数器(t0、t1、t2);

*1个全双工、可编程串行通信口(uart);

*6个中断源,2 个优先级;

*4个8位i/o口(32位i/o引脚);

*ttl和cmos电平全兼容;

*5(1±0.1)v供电时,工作频率为0~33mhz;

*3(1±0.1)v供电时,工作频率为0~12mhz;

*内部看门狗定时器(wdt);

*支持3种省电模式:空闲、下电和等待,并且支持外部低电平中断退出下电模式。

1 sst89c54/58的存储器结构

1.1 程序存储器

89c54与89c58之间仅有存储器容量大小的不同;前者20kb,后者为36kb。程序存储器分为block0和block1两块:block0前者为16kb,后者为32kb,都分成了128字节大小的区段;block1均为4kb,分为64字节大小的区段。它们的程序存储器结构如图1所示。

    block0和block1的地址不是连续的。block1从f000h开始。sst89c54/58允许block0映射到block1,上电后程序既可以从block0(0000h)开始执行,也可以从block1(f000h)开始执行。程序从哪个块开始执行由单片机的re-map[1:0]位决定。在这2位都为1的时候程序从0000开始执行,否则,从f000h开始执行。re-map[1:0]位是非易失性的,可以用编程器对其编程。

1.2 数据存储器

sst89c54/58有256字节的内部数据存储器,其中低128字节ram(00h~ffh)与8052完全相同;在高128字节中增加了一些针对iap功能的特殊功能寄存器(sfr)。新增加的sfr的定义及设置如表1所列。

表1 新增特殊功能寄存器

标识符名   称地   址初始化值
sfstflash状态b6hxxx00000b
sfcfflash定义b1h000000xxb
sfcmflash命令b2h00h
sfdtflash数据b5h00h
sfalflash地址低字节b3h00h
sfalflash地址高字节b4h00h

2 sst89c54/58在应用中可编程(iap)

iap是指在用户的应用程序中对flash块、flash寄存器、加密位等实现擦降和编程等操作。sst89c54/58通过对sfcf.6的置位和清0而启动和介绍iap功能。程序在block0时可以启动iap对block1进行编程,也可以在block1对block0进行编程,但是每均都不能对自己进行编程。sst89c54/58r iap功能主要有以下几个命令(以block0对block1进行编程为例):

(1)片擦除

命令格式如下:

mov sfcf,#0c0h ;启动iap

mov sfdt,#55h

mov sfcm,#01h ;写入命令字

;查询sfst.2,等待芯片擦除结束,

;用movc校验是否每个单元均为ffh。

(2)块擦除

命令格式如下:

mov sfcf,#0c0h ;启动iap

mov sfah,#0f0h/#00h ;擦队block1/block0

mov sfdt,#55h

mov sfcm,#0dh ;写放命令字

;查询sfst.2,等待芯片擦除结束,

;用movc校验是否每个单元均为ffh。

(3)区段擦除

命令格式如下:

mov sfcf,#0c0h ;启动iap

mov sfah,区段地址高字节

mov sfal,区段地址低字节

mov sfcm,#0bh ;写入命令字

;查询sfst.2,等待芯片擦除结束,

;用movc校验是否每个单元均为ffh。

(4)字节编程

mov sfcf,#0c0h ;启动iap

mov sfah,要编程地址高字节

mov sfal,要编程地址低字节

mov sfdt,要编程的数据

mov sfcm,#0eh ;写放命令字

;查询sfst.2,等待芯片擦除结束,

;校验谝单元写入数据是否正确。

(5)字节校验

mov sfcf,#0c0h

mov sfah,要校验数据的地址高字节

mov sfah,要校验数据的地址低字节

mov sfcm,#06h

nop

mov a,sfdt ;a保存规定单元地址读出的内容

另外,通过字节编程可以对re-map[1:0]位为3个保密进行编程,只是在特定的地址写入行定的内容。

3 sst89c54/58 iap功能的用途

通过iap功能可以不需编程器就可做单片机实验。这对初次学习单片机的人们,尤其对学校单片机的教学带来极大的方便,是一种最低成本的单片机开手段。

可以对产品的软件进行升级。不需外加监控芯片,只是通过串行口便可将pc机内的产品升级软件下载到产品中去,而实现产品软件升级换代。在自己的实验室便可通过modem对远方的产品进行软件升级。这将是以后电子产品的必然趋势。

还可以在线对产品参数进行修改。可实现在线对现场数据的存储、曲线参数校正等功能。适用于一些需经常改变数据的应用产品(如利息计、计费器、密码锁及需要升级的产品,如微型打印机等)及需远距离改变设备参数的产品(遥控报警器遥控家用电器等遥控设备)。