中国·芯片交易在线
首页 | 供应信息 | 求购信息 | 库存查询 | 新闻中心 | 展会资讯 | IC厂商 | 技术资料 | 自由区域
   新闻首页 |  行业动态 | 新品发布 | 政策法规 | 科技成果 | 模拟技术 | 嵌入系统 | 传感控制 | 存储设计  
当前位置:IC72首页>> IC新闻中心>> 存储设计 >>电子行业新闻正文

混合信号单片机C8051F060存储系统的编程

时间:2008/9/10 9:15:00  作者:  来源:IC72  浏览人数:1362
 
 

      美国Cygnal公司推出的C8051F系列单片机,将51系列单片机从MCU级推向了SoC时代。特别是C8051F06X系列,更是集当前单片机最新发展技术于一身,其功能已完全达到板卡级水平。C8051F060是高度集成的片上系统混合信号单片机[1],采用与8051兼容的专利内核CIP-51,速度高达25MIPS;有多达59个数字I/O口,5个16位通用定时器,6个带有捕捉/比较模块的可编程定时器/计数器阵列;8路10位ADC带可编程放大器和多路选择器,2路1Msps的16位ADC,2路12位DAC,3个电压比较器,片内温度传感器和参考电压源;硬件串行接口SPI,SMBus/I2C和UART可同时使用,片上CAN2.0B控制器;片上看门狗定时器,电源监视器,2.7~3.6V的低压供电,片内JTAG调试和边界扫描单元等。特别是该系列单片机的存储器组织,与其它系列单片机相比[2],容量大,灵活多变,初学者往往感到不适应。本文根据笔者使用体会,通过程序举例介绍其存储器结构及使用方法。

      1  C8051F060单片机的存储器结构

      图1 是C8051F060单片机的存储器结构图。显然,该单片机采用了标准8051的程序和数据存储器独立编址的结构,程序存储器为64KB的Flash结构,外加128字节Flash;数据RAM除包含标准51单片机256字节,还有4KB片上XRAM和可外扩64KB数据存储器的接口。

IC72新闻中心

图1  C8051F060单片机的存储器结构图

      2  数据存储器及其编程

      数据存储器分为内部存储器和外部存储器。内部RAM包含256字节,其高端128字节为双映射结构,即间接寻址访问128字节通用RAM,直接寻址访问128字节的特殊功能寄存器SFR地址空间,这个空间又分为256个SFR页,由特殊功能寄存器SFRPAGE来切换。这样,单片机就有足够的SFR来设定和配制各种接口资源,并为以后扩展预留了足够的空间,见例程1;低端的128字节RAM可通过直接或间接寻址来访问,这和8051单片机的RAM完全一样。其中前32个字节是4个通用工作寄存器区,接下来的16字节机可以按字节寻址,也可以按位寻址。

      C8051F060单片机还有一个4KB的片内XRAM,其寻址范围以4KB为边界覆盖整个64KB的外部数据存储器地址空间。另外,该单片机还有一个外部存储器接口EMIF,用于访问片外数据存储器。外部数据存储器寻址范围可以只映射为片内存储器、片外存储器或二者的组合,即4KB以内指向片内,4KB以上指向外部存储器接口EMIF,该EMIF可以配置为复用和非复用地址线/数据线两种方式。编程步骤是:①EMIF端口的选择和配置;②确定地址形成非复用/复用和地址/数据复用方式;③存储器方式为片内方式,不带地址选择的分片方式,有地址选择的分片方式,片外工作方式;④确定接口定时参数。

      例程1:高端128字节的寻址

      ;直接寻址于SFR

      MOV 0F0H,#5AH

      ;间接寻址于高端RAM

      MOV R0,#0F0H

      MOV @R0,#0A5H

      在复位缺省状态下,MOVX指令访问4KB片内XRAM,可用16位间址,也可用8位间址指令来寻址,这时高端地址放在EMI0CN寄存器中,如例程2。

      例程2:4K XRAM 8/16位读写

      4K XRAM 16位读写

      MOV A,#36H

      MOV DPTR,#0000H

      MOVX @DPTR,A

      MOV DPTR,#0000H

      MOVX A,@DPTR

      MOV R6,A

      4K XRAM 8 位读写

      MOV EMI0CN,#00H

      MOV R0,#01H

      MOV A,#37H

      MOVX @R0,A

      MOV EMI0CN,#00H

      MOV R0,#01H

      MOVX A,@R0

      MOV R7,A

      例程3为非复用方式XRAM写,是分片无块选方式。注意分片方式有两种,分为有块选择和无块选择两种,对16位间址是一样的,对8位间址有区别。例程4是非复用分片方式读,为有块选方式,要特别注意特殊功能寄存器EMI0CF的赋值。

      例程3:片外XRAM写

      MOV SFRPAGE,#0FH

      MOV P4MDOUT,#0FFH

      MOV P5MDOUT,#0FFH

      MOV P6MDOUT,#0FFH

      MOV P7MDOUT,#0FFH

      CLR P4.5

      NOP

      MOV SFRPAGE,#00H

      MOV PSCTL,#00H

      MOV EMI0TC,#45H

      MOV EMI0CF,#34H

      CLR EA

      NOP

      MOV DPTR,#4000H

      MOV A,#39H

      MOVX @DPTR,A

      NOP

      SETB EA

      MOV SFRPAGE,#0FH

      SETB P4.5

      例程4: 片外XRAM读

      MOV SFRPAGE,#0FH

      CLR P4.5

      MOV SFRPAGE,#00H

      MOV EMI0TC,#45H

      MOV EMI0CF,#38H

      CLR EA

      NOP

      MOV DPTR,#4000H

      MOVX A,@DPTR

      NOP

      SETB EA

      MOV SFRPAGE,#0FH

      SETB P4.5

      注意,在对片外XRAM进行读写时,指令寻址时序并不产生片选信号,所以要先置CS片选端为低,本例中为P4.5端,具体电路图略。而WR和RD信号由接口参数确定时序,但P4.5在0F页,一定要注意页切换。

      3  程序存储器及其编程

      C8051F060单片机的程序存储器为64KB的Flash存储器,它能以512字节为扇区实现在系统编程,无需提供片外专用编程电压,其中从0xFC00~0xFFFF的1024字节为保留区。另外,从0x10000~0x1007F的128字节Flash存储器,可以作为非易失存储器,由软件来访问,它最适合用于存放系统参数等,参见例程5。64KB的Flash存储器区除了可以存放程序代码外,也可以用来存放非易失数据。既可以在开发系统中,通过JTAG接口编程,也可以用MOV指令来实现软件编程,参见例程6。注意,在对Flash存储器操作时,读操作用MOVC指令,写操作用MOVX指令,若用MOVX读操作时,只能读到XRAM区。另外,要特别搞清楚程序存储读/写控制寄存器PSCTL和Flash存储器控制寄存器FLSCL的各个位的确切含义。

      例程5:128 Flash读写

      ;128 Flash 读

      MOV SFRPAGE,#00H

      MOV PSCTL,#04H

      MOV FLSCL,#40H

      MOV DPTR,#0020H

      CLR A

      MOVC A,@A+DPTR

      MOV PSCTL,#00H

      MOV R7,A

      ;128 Flash 写

      MOV FLSCL,#01H

      MOV PSCTL,#07H

      CLR A

      MOV DPTR,#0020H

      MOVX @DPTR,A

      MOV PSCTL,#05H

      MOV A,#35H

      MOV DPTR,#0020H

      MOVX @DPTR,A

      MOV PSCTL,#00H

      MOV FLSCL,#00H

      例程6:64K程序Flash读写

      ;64K Flash 读

      MOV SFRPAGE,#00H

      MOV PSCTL,#00H

      MOV FLSCL,#40H

      MOV DPTR,#2020H

      CLR A

      MOVC A,@A+DPTR

      MOV R6,A

      ;64K Flash写

      MOV FLSCL,#01H

      MOV PSCTL,#03H

      CLR A

      MOV DPTR,#2020H

      MOVX @DPTR,A

      MOV PSCTL,#01H

      MOV A,#33H

      MOV DPTR,#2020H

      MOVX @DPTR,A

      MOV PSCTL,#00H

      MOV FLSCL,#00H

      由于Flash存储器只能写0不能写1,只能通过对其写数据前擦除来实现写1,所以每次写Flash存储器前,都要进行擦除操作。由于64KB的Flash是以512字节为一页组织的,擦除写操作对整个页进行了写0FFH操作,为提高速度,不必逐字节操作,只要对其中的任一字节进行操作即可。

      结语

      由以上的讨论可见,C8051F060单片机存储系统的设计可谓别出心裁,对它的访问大多是通过对某些特殊功能寄存器的配置,用16位或8位间接寻址方法来进行。在对这些SFR的操作前和操作后,均应对其进行SFR页的选择,即切换SFRPAGE的值,这是该单片机的特点,也是熟悉8051系列单片机的工程师学习和使用时最容易出错的地方。只有熟悉了该单片机的各种SFR特点,正确理解和掌握了SFR的页切换技术,编程时才能得心应手。另外还要注意的是,对有些SFR操作,不能按位操作,只能通过数据移位传递指令MOV来写。本文所给出的例程均在C8051F060目标板上调试通过,选用时进行了简化,仅供参考,相信读者能够举一反三。

 
【相关文章】
·混合信号单片机C8051F060存储系统的编程
 
 
IC新闻搜索
 
热点新闻
基于红外超声光电编码器的室内移动小车定位系
基于闪烁存储器的TMS320VC5409DSP并行引导装载方法
非移动市场需求飙升,ARM预计2010年出货量超50亿片
一种快速响应的电容式湿度传感器感湿薄膜设计
利用特殊应用模拟开关改进便携式设计
无线传感器网络跨层通信协议的设计
基于ARM9内核Processor对外部NAND FLASH的控制实现
基于GSM技术的汽车防盗系统的设计
热电阻在烟叶初烤炕房温度控制中的应用
高速数据转换系统对时钟和数据传输的性能要求
友情连接
 关于我们  IC论坛  意见反馈  设置首页  广告服务  用户帮助  联系我们
copyright:(1998-2005) IC72 中国·芯片交易在线
(北京)联系电话:(010)82614113、82614123 传真:(010)82614123 客户服务:service@IC72.com 库存上载:IC72@IC72.com
在线MSN咨询:ic72sale8@hotmail.com 通信地址:北京市西城区西直门内大街2号大厦15层 邮政编码:100013
(深圳)联系方式: 在线MSN咨询:ic72sale6@hotmail.com 在线QQ咨询:191232636 通信地址:深圳市福田区振华路
注 册 号: 1101081318959(1-1)

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9