摘要:SST89C54/58j Silicon Storage Technology公司推出的帶有20KB/36KB Flash的單片機(jī)。芯片內(nèi)部集成了可以對(duì)Flash進(jìn)行操作的功能模塊。通過(guò)對(duì)Flash的分區(qū)實(shí)現(xiàn)在應(yīng)用中可編程的功能。本文介紹它們的IAP功能,并給出IAP功能的一些子程序。
關(guān)鍵詞:SST89C54/58 IAP Flash存儲(chǔ)器
SST89C54/58單片機(jī)是MCS-51系列單片機(jī)的派生產(chǎn)品。它們?cè)谥噶钕到y(tǒng)、硬件結(jié)構(gòu)和片內(nèi)資源上與標(biāo)準(zhǔn)8052單片機(jī)完全兼容,只是加大了內(nèi)部程序存儲(chǔ)器Flash的容量。
SST89C54/58的特色:
*256×8位內(nèi)部RAM;
*3個(gè)16位定時(shí)/計(jì)數(shù)器(T0、T1、T2);
*1個(gè)全雙工、可編程串行通信口(UART);
*6個(gè)中斷源,2 個(gè)優(yōu)先級(jí);
*4個(gè)8位I/O口(32位I/O引腳);
*TTL和CMOS電平全兼容;
*5(1±0.1)V供電時(shí),工作頻率為0~33MHz;
*3(1±0.1)V供電時(shí),工作頻率為0~12MHz;
*內(nèi)部看門(mén)狗定時(shí)器(WDT);
*支持3種省電模式:空閑、下電和等待,并且支持外部低電平中斷退出下電模式。
1 SST89C54/58的存儲(chǔ)器結(jié)構(gòu)
1.1 程序存儲(chǔ)器
89C54與89C58之間僅有存儲(chǔ)器容量大小的不同;前者20KB,后者為36KB。程序存儲(chǔ)器分為block0和block1兩塊:block0前者為16KB,后者為32KB,都分成了128字節(jié)大小的區(qū)段;block1均為4KB,分為64字節(jié)大小的區(qū)段。它們的程序存儲(chǔ)器結(jié)構(gòu)如圖1所示。
block0和block1的地址不是連續(xù)的。Block1從F000H開(kāi)始。SST89C54/58允許block0映射到block1,上電后程序既可以從block0(0000H)開(kāi)始執(zhí)行,也可以從block1(F000H)開(kāi)始執(zhí)行。程序從哪個(gè)塊開(kāi)始執(zhí)行由單片機(jī)的Re-Map[1:0]位決定。在這2位都為1的時(shí)候程序從0000開(kāi)始執(zhí)行,否則,從F000H開(kāi)始執(zhí)行。Re-Map[1:0]位是非易失性的,可以用編程器對(duì)其編程。
1.2 數(shù)據(jù)存儲(chǔ)器
SST89C54/58有256字節(jié)的內(nèi)部數(shù)據(jù)存儲(chǔ)器,其中低128字節(jié)RAM(00H~FFH)與8052完全相同;在高128字節(jié)中增加了一些針對(duì)IAP功能的特殊功能寄存器(SFR)。新增加的SFR的定義及設(shè)置如表1所列。
表1 新增特殊功能寄存器
| 標(biāo)識(shí)符 | 名 稱(chēng) | 地 址 | 初始化值 |
| SFST | Flash狀態(tài) | B6H | xxx00000b |
| SFCF | Flash定義 | B1H | 000000xxb |
| SFCM | Flash命令 | B2H | 00h |
| SFDT | Flash數(shù)據(jù) | B5H | 00h |
| SFAL | Flash地址低字節(jié) | B3H | 00h |
| SFAL | Flash地址高字節(jié) | B4H | 00h |
2 SST89C54/58在應(yīng)用中可編程(IAP)
IAP是指在用戶(hù)的應(yīng)用程序中對(duì)Flash塊、Flash寄存器、加密位等實(shí)現(xiàn)擦降和編程等操作。SST89C54/58通過(guò)對(duì)SFCF.6的置位和清0而啟動(dòng)和介紹IAP功能。程序在block0時(shí)可以啟動(dòng)IAP對(duì)block1進(jìn)行編程,也可以在block1對(duì)block0進(jìn)行編程,但是每均都不能對(duì)自己進(jìn)行編程。SST89C54/58r IAP功能主要有以下幾個(gè)命令(以block0對(duì)block1進(jìn)行編程為例):
(1)片





