一种新型51内核单片机MSC1210及其应用
参考电压,就应该将其关掉以减少噪声和功耗。VREFOUT引脚处应该放一个0.1μF去耦电容。外部参考电压为REF IN+与REF IN-之间的差值,引脚上的绝对电压在AGND与AVDD之间,但其差分电平不能超过2.6 V。 3 片内存储器 MSC1210包括片上1.2 KB SRAM ,256字节DARAM,2KB启动ROM,32 KB Flash存储器。 MSC1210用内存寻址表来区分程序存储空间和数据存储空间。程序空间由单片机自动读取,通过指令MOVC来读程序空间;数据空间通过指令MOVX来读写。当片上存储使能时,在片内范围内的读写将在片内存储器上进行,片外存储器通过P0和P2寻址来实现。HCR1寄存器的第0位和第1位设为0就可以访问外部存储器,此时可以通过P0和P2口访问所有片内和片外存储空间。为了安全起见,在访问片内存储器期间,P0口全部置位为0。 MSC1210包含1.2 KB片上SRAM。SRAM起始地址位“0”,通过MOVX指令读写。SRAM也可以从8400H开始,既可作程序空间又可作数据空间。 MSC1210有256字节DARAM,地址为0000H~00FFH,其中128字节为128个SFR,地址为0080H~00FFH。SFR寄存器用做控制和状态,标准的8051功能和MSC1210的附加功能是通过SFR实现的。从没有定义的SFR寄存器将得到“0”,写入没有定义过的SFR得到的结果无法确定。DARAM的另一个用途,是通过SFR的堆栈指针作为堆栈使用。 在串行或并行编程时,有2KB启动ROM控制运行。在用户模式下,BOOT ROM位于F800H~FFFFH;在编程模式下,BOOT ROM位于程序空间的起始2K。 Flash存储器既可用做程序存储空间又可用做数据存储空间,用户可以灵活配置程序和数据存储空间的大小。分区大小通过硬件配置位来确定,可以通过串行或并行的方式来编程确定。在用户应用模式下,程序和数据Flash存储空间都可读可写。 4 Flash编程应用 可编程的Flash存储器分为4个部分:128字节的配置部分、复位向量、程序存储空间、数据存储空间。 Flash编程模式有串行和并行两种模式,通过上电复位过程当中的ALE和信号状态确定。当ALE=1,=0时,选择串行编程模式;当ALE=0,=1时,选择并行编程模式。当ALE和都为高电平时,MSC1210运行在用户模式下;当ALE和都为低电平时,MSC1210没有定义。 MSC1210的Flash存储器初始值全部为“1”,并行编程模式包括一个专用的编程器,串行编程方式通常为在线编程,用户应用模式允许对Flash程序和数据存储器编程。对Flash编程的实际代码不能从Flash执行,而必须从BOOT ROM或RAM处开始执行。 MSC1210有两个硬件配置存储器(HCR0、HCR1),在Flash编程模式下可编程。用户通过对这两个存储器编程可以在程序存储空间(PM)和数据存储空间(DM)之间定义分区,如表1所列。 注:当程序空间选择0KB时,程序在片外执行;"一"表示保留。 MSC1210作为一款高性能的内核兼容8051的单片机,其开发的方便、灵活和高精度ADC的使用满足了使用者的要求,其指令执行速度更是实时系统所渴求的,可广泛用于工业过程控制、医疗仪器、智能传感器等各个领域。
表1 MSC1210的Flash分区HCR0 MSC1210Y2 MSC1210Y3 MSC1210Y4 MSC1210Y5 DFSEL PM/KB DM/KB PM/KB DM/KB PM/KB DM/KB PM/KB DM/KB 000 0 4 0 8 - - - - 001 0 4 0 8 - - 0 32 010 0 4 0 8 0 16 16 16 011 0 4 0 8 8 8 24 8 100 0 4 4 4 12 4 28 4 101 2 2 6 2 14 2 30 2 110 3 1 7 1 15 1 31 1 111(缺省) 4 0 8 0 16 0 32 0
用户可以通过MOVX指令来读写Flash存储器,而不论Flash存储器是被定义为程序存储器还是数据存储器。这意味着用户可以将全部空间分为程序存储空间,并将程序空间当数据存储空间用。当PC指针指向的程序空间实际上存放的是数据时,将会导致不可预知的后果。因此,当要用Flash存储数据时,一定要求使用Flash分区,Flash分区禁止在数据存储空间执行程序。同样,也禁止程序空间的擦写而允许在数据存储空间读写。
5 结 论
MSC1210 相关文章:
- 基金会现场总线压力测量系统的设计(08-17)
- 系统级ADC芯片MSC1210介绍及应用(06-06)
- 带24位A/D转换的51单片机MSC1210及其应用(02-22)
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)