星光电子技术


首页 -- STC单片机解密-- STC芯片解密-- STC单片机开发-- STC单片机资料 --关于我们
 

STC单片机简介

MCS51单片机是目前国内实用最广泛的一种单片机型,全球各单片机生产厂商在MCS51内核基础上,派生了大量的51内核系列单片机,极大地丰富了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系列单片机资源一览表。

图片点击可在新窗口打开查看此主题相关图片如下:93.jpg
图片点击可在新窗口打开查看

主要特性:

80C51核心处理器单元;

3V/5V工作电压,操作频率0~33MHz(STC89LE516AD最高可达90MHz);5V工作电压,操作频率0~40MHz;

大容量内部数据RAM:1K字节RAM;

64/32/16/8kB片内Flash程序存储器,具有在应用可编程(IAP) ,在系统可编程(ISP),可实现远程软件升级,无需编程器;

支持12时钟(默认)或6时钟模式;

双DPTR数据指针;

SPI(串行外围接口)和增强型UART ;

PCA(可编程计数器阵列),具有PWM的捕获/比较功能;

4个8位I/O口,含3个高电流P1口,可直接驱动LED;

3个16位定时器/计数器;

可编程看门狗定时器(WDT);

低EMI方式(ALE禁止);

兼容TTL和COMS逻辑电平;

掉电检测和低功耗模式等。

下面主要介绍STC89系列单片机有特色之处及需要注意的地方。

一、 1k bit片内RAM(数据存储器)

普通8051系列单片及片内RAM只有128(8051)或256(8052)字节,

1、低128字节(地址:00H~7FH),可直接或间接寻址;

2、高128字节(地址:80H~FFH),只可间接寻址;

STC89系列单片机另外增加了768字节的片内扩展RAM,以解决众多技术人员在编程时的RAM资源严重缺乏的问题。

768字节的片内扩展RAM(地址:000H~2FFH)与外部扩展RAM地址重叠,单片机可通过软件设置AUXR.1,决定是否使用片内扩展RAM,以防止可能的与外部扩展RAM的冲突,默认为使用片内扩展RAM。

片内扩展RAM的访问采用间接寻址,可通过

①、MOVX? A,@DPTR 或 MOVX? @DPTR ,A 指令访问片内扩展RAM(00H~2FFH,共768字节);

②、MOVX? A,@Ri 或 MOVX? @Ri,A 指令访问片内扩展RAM(00H~FFH,共256字节)。

当DPTR≥300H时,系统访问外部扩展RAM。

注意:在使用第二种指令时,特别要注意是使用MOV还是MOVX,MOV访问的是片内RAM,MOVX访问的是片内扩展RAM,刚刚接触此类单片机的技术人员最容易在这里犯错误。

二、 64/32/16/8K片内Flash(程序存储器)与ISP功能

STC89系列单片机按芯片型号分别有64/32/16/8K片内Flash,分为2个Flash存储块:Block0和Block1。2个Flash存储块在物理上Block0在前,Block1在后。通过REMAP功能可以将Flash块重定位。下图显示的是STC89C58的程序存储器结构


图片点击可在新窗口打开查看此主题相关图片如下:92.jpg
图片点击可在新窗口打开查看

使用过SST89系列单片机的用户要注意与STC89区别:

①、Block1大小不同;

②、Block扇区大小不同;

③、指令及SFR的不同。

STC89有2个配置位SC0,SC1控制上电复位/外部复位后程序是从Block0还是Block1启动。

①对于STC89C58,SC0,SC1同时起作用:

SC1,SC0=0,0 程序是从Block0启动;

SC1,SC0=1,1 程序是从Block1启动,这时Block1物理上在后8K(E000H~FFFFH),逻辑上又影象到前8K(0000H~1FFFH),Block0前8K对于PC指针不可见。

②对于STC89C16,只有SC0起作用:

SC0=0 程序是从Block0启动;

SC0=1 程序是从Block1启动,这时Block1逻辑上影象到前8K(0000H~1FFFH),将Block0前8K单元覆盖。


图片点击可在新窗口打开查看此主题相关图片如下:91.jpg
图片点击可在新窗口打开查看

刚刚接触STC89系列单片机的技术人员可能对其REMAP功能不理解,通过了解ISP就会明白REMAP的作用。

ISP主要应用于在线(或远程)升级,通过执行ISP引导码改写用户程序,无须编程器,无须亲临现场。STC89系列单片机在出厂时,片内已经烧录有ISP引导码,占用Block1的程序空间前2K字节,并设置为从Block1启动。启动时,首先执行ISP引导码,确认是程序下载,还是正常启动。无论是程序下载还是正常启动,ISP引导码最后总是将REMAP取消,恢复Block0在前8K的地址空间,进而执行Block0中的用户程序,即用户程序总是放在Block0的00H开始的单元,除非用户自行修改了ISP引导码。

三、STC89系列单片机IAP技术

IAP功能就是在应用可编程,利用该功能,就可将本不具有EEPROM的单片机具有相当于EEPROM的功能,而且存储空间远大于EEPROM。IAP不能对自身所在的Block编程,即当程序运行在Block0时,可编程的是Block1;当程序运行在Block1时,可编程的是Block0。根据这个特点,通过REMAP功能可设置在应用编程的Flash的大小。对STV89C58来说,

①、当程序运行于Block0时,可拥有6~8k的Flash EEPROM(一般使用);

②、当程序运行于Block1时,可拥有近32k的Flash EEPROM(需要技巧或更改ISP引导码);

技巧:对于想使用32K的Flash EEPROM,又不想更改ISP引导码的用户,可以这样设计程序,在用户程序开始处,通过REMAP功能将Block1影象到前8K,并将影象指令之后的程序烧录在Block1中即可。程序流程定位:Block1(ISP引导码) à Block0(用户程序REMAP部分)à Block1(用户程序)

要使用IAP功能,必须启用IAP功能。STC89的超级Flash配置存储器SFCF的bit6位用来开关IAP功能,0关闭,1开启,程序启动时默认关闭。

IAP功能所涉及到的SFR有:

SFCF DATA 0B1H ;超级Flash配置存储器

SFCM DATA 0B2H;超级Flash命令存储器

SFAL DATA 0B3H ;超级Flash地址低字节存储器

SFAH DATA 0B4H ;超级Flash地址高字节存储器

SFDT DATA 0B5H ;超级Flash数据存储器

SFST DATA 0B6H ;超级Flash状态存储器

(一)、IAP的主要功能有:

(1)片擦除。命令格式:

ORL SFCF,#040H ;启动IAP

MOV SFDT,#55H

MOV SFCM,#01H ;写入命令字

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

(2)块擦除。命令格式:

ORL SFCF,#040H ;启动IAP

MOV SFAH,#0F0H/#00H ;擦队block0/block1

MOV SFDT,#55H

MOV SFCM,#0DH ;写放命令字

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

(3)扇区擦除。命令格式:

ORL SFCF,#040H ;启动IAP

MOV SFAH,区段地址高字节

MOV SFAL,区段地址低字节

MOV SFCM,#0BH ;写入命令字

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

(4)字节编程。命令格式:

ORL SFCF,#040H ;启动IAP

MOV SFAH,要编程地址高字节

MOV SFAL,要编程地址低字节

MOV SFDT,要编程的数据

MOV SFCM,#0EH ;写放命令字

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

(5)字节校验。命令格式:

ORL SFCF,#040H ;启动IAP

MOV SFAH,要校验数据的地址高字节

MOV SFAH,要校验数据的地址低字节

MOV SFCM,#0CH ;写放命令字

NOP

MOV A,SFDT ;A保存规定单元地址读出的内容

(二)、使用IAP需要注意:

1、启动IAP请使用ORL指令,尽量不要使用MOV指令,否则(尤其对初次使用本单片机者)及易造成系统软件复位、程序存储器REMAP等;

2、IAP编程的数据读出,请使用字节校验指令,避免使用MOVC指令。MOVC指令在IAP中较数场合(尤其是有地址重叠的地方)不能读出正确的数值;

3、IAP编程不要忘记打开IAP功能(数据读出时也需要)。

(三)、IAP功能的用途:

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

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

③、还可以在线对产品参数进行修改。可实现在线对现场历史数据的存储、曲线参数校正等功能。适用于一些需经常改变数据的应用产品(如计费器、门禁系统及需要升级的产品等)及需远距离改变设备参数的产品(遥控设备等)。

四、 可编程计数器阵列

8051单片机片内有2个定时器/计数器,8052则有三个,满足一般拥护的需求,但在某些特殊场合却略显资源紧张,STC89额外提供了一个可以无须CPU参与、独立工作的可编程计数器阵列(PCA)。

STC89的可编程计数器阵列(PCA)是一个16比特的定时器,拥有5个16比特捕捉/比较模块,每个模块均可有以下几种模式:

上升沿和/或下降沿捕捉;

软件定时器;

高速输出;

看门狗定时器(仅模块4);

脉宽调制器(PWM)

可编程计数器阵列的时钟可如下选择:


图片点击可在新窗口打开查看此主题相关图片如下:90.jpg
图片点击可在新窗口打开查看

可编程计数器阵列在很少的CPU开销下比普通的定时器/计数器提供了更多的定时功能。它的优点包括减少软件开销及提高精度。

PCA可提供除波特率发生器外,T0,T1,T2定时器所能提供的功能。

PCA捕捉功能可以同时捕捉输入脉冲的上升沿及下降沿,非常适合用来检测脉冲宽度和频率;在软件解码PT2262时,具有相当好的表现,省却了大量的CPU管理时间。

由于具有上升沿捕捉功能,PCA还可以用作上升沿的中断,以弥补8052只有下降沿中断的缺陷,在8052中有时你不得不另加一个反相器以符合MCS51的要求。

PWM功能可用于控制电动机调速等。

五、 复位电路

STC89在8051基础上增加了多个复位功能,以提高单片机的抗干扰能力。

1、上电复位:基本同8051相似,但同时增加了一项功能,就是软件可编程在复位时从REST脚输出32个复位脉冲,去复位外部设备,保证外部设备的同步,省却外部复位电路;

2、软件复位:8051没有软件复位功能,技术人员一般需要自行设置较多SFR值,模拟软件复位,STC89只需改变一个位状态即可完成软件复位,减少软件开销。

3、欠压检测与复位

8051没有欠压检测功能,在遭遇欠压时,单片机无法正常工作,端口状态不定,极易造成外围设备的损坏。STC89的欠压检测与复位可在一定程度上避免此类事件发生。STC89在检测到欠压条件时产生一个中断通知或产生一个复位信号,复位单片机。欠压中断通知是一个很实用的功能,由于掉电通知到掉电还有以段时间,它可以让程序在即将掉电时,及时保存那些必要的参数,避免以写不必要的损失。

结束语:

STC89的优点不是三言两语就能说的清楚的,更多的信息可参考STC89数据手册。

STC89在8051基础上增加了许多功能,极大地提高了MCS51家族的性能。STC89由美国设计,在台湾生产,是目前在相同性能条件下价格最优的一个品种。STC89的高性能、低价格,必定能为使用MCS51家族产品的技术人员带来相当的技术和经济的效益。当然,对于一个新的品种,它的新特性、新功能和可靠性还有待于我们去实践、去发掘。

返回顶部


2013-2015 星光电子技术 All Rights Reserved.
如有任何问题和建议请联系:498187676@qq.com

深圳市协同电子有限公司 版权所有

星光电子技术深圳工作室

电话:0755-88820678 QQ: 498187676 地址:深圳市龙岗区南湾街道平吉大道1号建昇大厦B栋1618(李朗软件园对面)
手机:13713820066 联系人:周工

 


站点地图

粤ICP备12084176号-14