新闻搜索
 
最新新闻 NEW10
1  Microchip与
2  免费提供样品
3  请使用在线客服与我们
4  宏晶单片机STC89
5  计量型射频卡用水控制
6  本公司联系方式
 
     新 闻 中 心  
宏晶单片机STC89系列高性能单片机及其应用
  发布者:admin 发布时间:2008-10-11 13:04:48 阅读:1306

摘要   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系列单片机资源一览表。

型   号

最高时钟

频率Hz

Flash

存储器

RAM

串口UART

中断源

优先级

数据指针

降低EMI

低压复位

看门狗

双倍速

P4口

SPI

ISP

IAP

A/D

5V

3V

STC89C516   RD

40M

64K+8K

1KB

1ch+

8

4

2

ü

ü

ü

ü

ü

ü

STC89LV516  RD

33M

64K+8K

1KB

1ch+

8

4

2

ü

ü

ü

ü

ü

ü

STC89C8     RD

40M

64K+8K

1KB

1ch+

8

4

2

ü

ü

ü

ü

ü

ü

STC89LV8    RD

33M

64K+8K

1KB

1ch+

8

4

2

ü

ü

ü

ü

ü

ü

STC89C8     RD2

40M

64K+8K

1KB

1ch+

10

4

2

ü

ü

ü

ü

ü

ü

ü

ü

STC89LV58   RD2

33M

64K+8K

1KB

1ch+

10

4

2

ü

ü

ü

ü

ü

ü

ü

ü

STC89C54    RD2

40M

64K+8K

1KB

1ch+

10

4

2

ü

ü

ü

ü

ü

ü

ü

ü

STC89LV54   RD2

33M

64K+8K

1KB

1ch+

10

4

2

ü

ü

ü

ü

ü

ü

ü

ü

STC89C52    RD2

40M

64K+8K

1KB

1ch+

10

4

2

ü

ü

ü

ü

ü

ü

ü

ü

STC89LV52   RD2

33M

64K+8K

1KB

1ch+

10

4

2

ü

ü

ü

ü

ü

ü

ü

ü

STC89C51

40M

64K+8K

128

1ch

8

2

1

ü

STC89C516RD

2.4-3.6V,45/90M

64K+8K

512

1ch+

8

4

2

ü

ü

ü

ü

ü

主要特性

u       80C51核心处理器单元;

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

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

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

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

u       双DPTR数据指针;

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

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

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

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

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

u       低EMI方式(ALE禁止);

u       兼容TTL和COMS逻辑电平;

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

下面主要介绍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的程序存储器结构

使用过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单元覆盖。

型      号

Block0地址空间

Block1前4k地址

Block1后4k地址

STC89C52RD2/89LV52RD2

0000 - 1FFFH

E000 - EFFFH

F000 - FFFFH

STC89C54RD2/89LV54RD2

0000 - 3FFFH

E000 - EFFFH

F000 - FFFFH

STC89C58RD2/89LV58RD2

0000 – 7FFFH

E000 - EFFFH

F000 - FFFFH

STC89C58RD/89LV58RD

0000 – 7FFFH

E000 - EFFFH

F000 - FFFFH

STC89C516RD/89LV516RD

0000 - FFFFH

0000 – 0FFFH

1000 – 1FFFH

刚刚接触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引导码);

技巧:对于想使用32KFlash 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比特捕捉/比较模块,每个模块均可有以下几种模式:

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

n         软件定时器;

n         高速输出;

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

n         脉宽调制器(PWM)

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

可编程计数器阵列在很少的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家族产品的技术人员带来相当的技术和经济的效益。当然,对于一个新的品种,它的新特性、新功能和可靠性还有待于我们去实践、去发掘。

参考:1、STC89C51 DATASHEET;

       2、STC89系列单片机使用指南;

 
 

打印本页 | 关闭窗口
友情链接:
Copyright @1999-2009 深圳市梓翔电子有限公司 All rights reserved
公司地址:深圳市福田区深南中路南光捷佳大厦2911室
门 市 部:深圳市福田区新亚洲电子市场二期1A043
联系电话:0755-82868869 83019843 83986114 83019970 传真:0755-83019847
ICP备案: