STC89系列高性能单片机及其应用摘要:MCS51单片机是目前国内实用最广泛的一种单片机型,全球各单片机 生产厂商在MCS51内核基础上,派生了大量的51内核系列单片机,极大地丰富 T MCS51的种群其中,STC公司推岀了了 STC89系列单片机,增加了大量的新 功能,提高了 51的性能,是MCS51家族中的佼佼者文章主要介绍了该单片机 种与MCS51的不同之处,并根据笔者的实践,提出了一些需要注意的地方关键词MCS51单片机ISP IAP引言随着电子技术的迅速发展,单片机技术的出现给现代工业测控领域带来了一 次新的技术革命目前,单片机以其高可靠性、高性能价格比,在工业控制系统、 数据采集系统、智能化仪器仪表、办公自动化等诸多领域得到极为广泛的应用, 并已走入家庭,洗衣机、空调等,到处都可见到单片机的踪影在单片机家族的众多成员中,MCS51系列单片机以其优越的性能、成熟的技 术及高可靠性和高性能价格比,迅速占领了工业测控和自动化工程应用的主要市 场,成为国内单片机应用领域中的主流世界各大单片机厂商都在MCS51上投入 了大量的资金和人力,围绕51内核,衍生出许多品种,增强51单片机的各种功 能。
MCS51家族是目前在单片机领域发展最快的一个品种这里要向大家推荐的是新近由STC公司推出的高性价比的STC89系列单片 机STC89系列单片机的性能STC89系列单片机是MCS-51系列单片机的派生产品它们在指令系统、便 件结构和片内资源上与标准8052单片机完全兼容,DIP40封装系列与8051为 pin-to-pin兼容STC89系列单片机高速(最高时钟频率90MHz),低功耗,在系 统/在应用可编程(ISP, IAP),不占用户资源下表是STC89系列单片机资源一览 表型号星高时钟频率HzFlash存储器RAM5V3VSTC89C516?? RD40 M64K+8K1KBSTC89LV516? RD?33M64K+8K1KB串口 uART中断源一忧先级数据指针842842lch+lch+E 氐11附M低压复位看门狗双倍速P4 口SPIIspgpQoou0Q••••• ••••••USTC89C8 ? RD40 MA/DSTC89LV8 RDSTC89C8 ? RD2•STC89LV58?? RD2 STC89C54 RD64K+8K 1KB33M | 64K+8K I 1KB40M40W164K+8K 1KB33M 64K+8K1KB64K+8K 1KBSTC89LV54?? RD2STC89C52 RD240 M33M 64K+8K 1KB64K+8K1KBSTC89LV52?? RD233M64K+8K1KBSTC89C51STC89C516RD40 M64K+8K1282.4-3.6V.45/90M64K+8K512lch+ lch+ lch+lch+lch+lch+lch+lch+lchlch+8yio10101010104 |2 ij4T2UUtrr• • • • u uuuuuuUuu.uuUuuuuau主耍特性:80C51核心处理器单元;3V/5V工作电压,操作频率0~33MHz (STC89LE516AD最高可达90MIlz); 5V 工作电压,操作频率0~40MHz;大容量内部数据RAM: 1K字节RAM;64/32/16/8kB片内Flash程序存储器,具有在应用可编程(1AP),在系统可 编程(ISP),可实现远程软件升级,无需编程器;支持12时钟(默认)或6时钟模式;双DPTR数据指针;SPI (串行外围接口)和增强型UART ;PCA (可编程计数器阵列),具有PWM的捕获/比较功能;4个8位I/O 口,含3个高电流P1 口,可直接驱动LED;3个16位定时器/计数器;可编程看门狗定时器(WDT);低EMI方式(ALE禁止);兼容TTL和C0MS逻辑电平;掉电检测和低功耗模式等。
下面主要介绍STC89系列单片机有特色Z处及需要注意的地方lk bit片内RAM(数据存储器)普通8051系列单片及片内RAM只有128(8051)或256(8052)字节,1、 低128字节(地址:OOH^7FH),可直接或间接寻址;2、 高128字节(地址:80『FFH),只可间接寻址;STC89系列单片机另外增加了 768字节的片内扩展RAM,以解决众多技术人 员在编程时的RAM资源严重缺乏的问题768字节的片内扩展RAM(地址:000H~2FFH)与外部扩展RAM地址重叠,单片 机可通过软件设置AUXR. 1,决定是否使用片内扩展RAM,以防止可能的与外部扩 展RAM的冲突,默认为使用片内扩展RAM片内扩展RAM的访问采用间接寻址,可通过%1 、MOVX? A, @DPTR 或 MOVX? @DPTR , A 指令访问片内扩展 RAM(00H~2FFH, 共768字节);%1 、MOVX? A, @Ri或MOVX? @Ri,A指令访问片内扩展RAM(OO『FFH,共256 字节)当DPTR2300H时,系统访问外部扩展RAM注意:在使用第二种指令时,特别要注意是使用MOV还是MOVX, MOV访问的 是片内RAM, MOVX访问的是片内扩展RAM,刚刚接触此类单片机的技术人员最容 易在这里犯错误。
二、64/32/16/8K片内Flash (程序存储器)与ISP功能STC89系列单片机按芯片型号分别有64/32/16/8K片内Flash,分为2个 Flash存储块:BlockO和Blockl2个Flash存储块在物理上BlockO在前,Blockl 在后通过REMAP功能可以将Flash块重定位下图显示的是STC89C58的程序 存储器结构FFFFHEA# = 0EA= 1SFCF[1:0)-00EA#= 1SFCF(1 0] = 01rrrrn8 KByteBlock 1rrrrn8 KByte Block 1EOOOHEOOOHDFFFHDFFFHExternal64 KByte8QOOHExternal24 KByteBOOOHExternal24 KByle7FFFH24 KByteBlockO7FFFH2000H32 K8yle1FFFH8 KByteBlock 1Block 0OOOOHOOOOHOOOOH8000H7FFFHOOOOH6A# = 1SFCF(1:0|- 10. 11FFFFHExternal32 KByte32 KByteBlock 0使用过SST89系列单片机的用户要注意与STC89区别:%1 、Blockl大小不同;%1 、Block扇区大小不同;%1 、指令及SFR的不同。
STC89有2个配置位SCO, SCI控制上电复位/外部复位后程序是从BlockO还是Blockl启动①对于STC89C58, SCO, SCI同时起作用:SCI, SCO=O, 0程序是从BlockO启动;SCI , SCO二1, 1程序是从Blockl启动,这时Blockl物理上在后 8K (EOOOH^FFFFH),逻辑上又影象到前 8K(0000H~lFFFH), BlockO 前 8K 对于 PC 指针不可见②对于STC89C16,只有SCO起作用:SCO=O程序是从BlockO启动;SCO二1程序是从Blockl启动,这时Blockl逻辑上影象到前 8K(0000H~lFFFH),将 BlockO 前 8K 单元覆盖型号BlockO地址空间Blockl前4k地址Blockl后41(地址STC89C52RD2/89LV52RD20000 ・ 1FFFHE000 ・ EFFFHF000 ・ FFFFHSTC89C54RD2/89LV54RD20000 ・ 3FFFHE000 - EFFFHFOOD ・ FFFFHSTC89C58RD2/89LV58RD20000 ・ 7FFFHE000 - EFFFHF000 ・ FFFFHSTC89C58RD/89LV58RD0000 - 7FFFHE000 - EFFFHF000 - FFFFHSTC89C516RD/89LV516RD0000 ・ FFFFH0000 - OFFFH1000 - 1FFFH刚刚接触STC89系列单片机的技术人员可能对其REMAP功能不理解,通过了 解ISP就会明口 REMAP的作用。
ISP主要应用于(或远程)升级,通过执行ISP引导码改写用户程序,无 须编程器,无须亲临现场STC89系列单片机在出厂时,片内已经烧录有ISP引 导码,占用Blockl的程序空间前2K字节,并设置为从Blockl启动启动时, 首先执行ISP引导码,确认是程序下载,还是正常启动无论是程序下载还是正 常启动,ISP引导码最后总是将REMAP取消,恢复BlockO在前8K的地址空间, 进而执行BlockO中的用户程序,即用户程序总是放在BlockO的00H开始的单元, 除非用户自行修改了 ISP引导码三、STC89系列单片机IAP技术IAP功能就是在应用可编程,利用该功能,就可将本不具有EEPROM的单片 机具有相当于EEPROM的功能,而且存储空间远大于EEPROMo IAP不能对自身所 在的Block编程,即当程序运行在BlockO时,可编程的是Blockl;当程序运行 在Blockl时,可编程的是BlockOo根据这个特点,通过REMAP功能可设置在应 用编程的Flash的大小对STV89C58来说,%1 、当程序运行于BlockO时,可拥有6、8k的Flash EEPROM(一般使用);%1 、当程序运行于Blockl时,可拥有近32k的Flash EEPROM(需要技巧或 更改TSP引导码);技巧:对于想使用32K的Flash EEPROM, 乂不想更改ISP引导码的用户, 可以这样设计程序,在用户程序开始处,通过REMAP功能将Blockl影象到前8K, 并将影象指令之后的程序烧录在Blockl中即可。
程序流程定位:Blockl (ISP引 导码)a BlockO (用户程序REMAP部分)d Blockl (用户程序)要使用TAP功能,必须启用TAP功能STC89的超级Flash配置存储器SFCF 的bit6位用来开关IAP功能,0关闭,1开启,程序启动时默认关闭1AP功能所涉及到的SFR有:SFCF DATA 0B1H ;超级Flash配置存储器SFCM DATA 0B2I1;超级Flash命令存储器SFAL DATA 0B3H ;超级Flas。