STC89系列高性能单片机及其应用
扫描二维码
随时随地手机看文章
引言
随着电子技术的迅速发展,单片机技术的出现给现代工业测控领域带来了一次新的技术革命。目前,单片机以其高可靠性、高性能价格比,在工业控制系统、数据采集系统、智能化仪器仪表、办公自动化等诸多领域得到极为广泛的应用,并已走入家庭,洗衣机、空调等,到处都可见到单片机的踪影。
在单片机家族的众多成员中,MCS51系列单片机以其优越的性能、成熟的技术及高可靠性和高性能价格比,迅速占领了工业测控和自动化工程应用的主要市场,成为国内单片机应用领域中的主流。世界各大单片机厂商都在MCS51上投入了大量的资金和人力,围绕51内核,衍生出许多品种,增强51单片机的各种功能。MCS51家族是目前在单片机领域发展最快的一个品种。
这里要向大家推荐的是新近由STC公司推出的高性价比的STC89系列单片机。
STC89系列单片机的性能
STC89系列单片机是MCS-51系列单片机的派生产品。它们在指令系统、硬件结构和片内资源上与标准8052单片机完全兼容,DIP40封装系列与8051为pin-to-pin兼容。STC89系列单片机高速(最高时钟频率90MHz),低功耗,在系统/在应用可编程(ISP,IAP),不占用户资源。下表是STC89系列单片机资源一览表。
主要特性:
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单元覆盖。
刚刚接触STC89系列单片机的技术人员可能对其REMAP功能不理解,通过了解ISP就会明白REMAP的作用。
ISP主要应用于在线(或远程)升级,通过执行ISP引导码改写用户程序,无须编程器,无须亲临现场。STC89系列单片机在出厂时,片内已经烧录有ISP引导码,占用Block1的程序空间前2K字节,并设置为从Block1启动。启动时,首先执行ISP引导码,确认是程序下载,还是正常启动。无论是程序下载还是正常启动,ISP引导码最后总是将REMAP取消,恢复Block0在前8K的地址空间,进而执行Block0中的用户程序,即用户程序总是放在Block0的00H开始的单元,除非用户自行修改了ISP引导码。