本科论文单片机控制短信收发.doc

上传人:仙人指路1688 文档编号:4025917 上传时间:2023-04-01 格式:DOC 页数:27 大小:777KB
返回 下载 相关 举报
本科论文单片机控制短信收发.doc_第1页
第1页 / 共27页
本科论文单片机控制短信收发.doc_第2页
第2页 / 共27页
本科论文单片机控制短信收发.doc_第3页
第3页 / 共27页
本科论文单片机控制短信收发.doc_第4页
第4页 / 共27页
本科论文单片机控制短信收发.doc_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《本科论文单片机控制短信收发.doc》由会员分享,可在线阅读,更多相关《本科论文单片机控制短信收发.doc(27页珍藏版)》请在三一办公上搜索。

1、 数理与信息工程学院课 程 设 计 题 目: 单片机控制实现短信收发 目 录摘 要 1第1节引言 1第2节工作原理及其软件设计2 21串口控制SMS的工作原理 222软件实现 323短信数据的处理ExecData函数 6第3节 系统硬件介绍 631 系统核心部分-闪电存储型器件AT89C51 632 GSM模块MZ28 1033 单片机MSC1210 10 第4节SMS的体系结构 13第5节SMS应用新领域1551 SMS在银行中间业务领域中的通知功能1552 SMS在保险公司客户服务体系中的定时提醒功能1553 SMS在证券交易中的成交回复与价格预警功15第6节 结语16参考文献 17附录一

2、程序18附录 二21单片机控制实现短信收发信息科学与工程学院 计算机专升本 班 黄丹丹【摘 要】借助系统模型,阐明GSM模块收发短信的基本概念以及串口控制SMS的基本原理。详细介绍用单片机AT89C51控制GSM模块工作的硬件和软件实现过程,介绍了单片机AT89C51和MSC1210内部结构和性能,并对AT89C51和MSC1210的性能、用途进行了比较,特别提出了MSC1210在高精度温度采集中所体现出别的芯片所不及的优势。对怎样用单片机控制GSM模块收发短信进行探讨,也对程序设计的主体思想作了细致的分析。大致介绍了SMS的体系结构以及在当今社会中SMS应用的新领域.本系统技术较先进,科技含

3、量高运行速度快,精度高。【关键词】单片机短信收发GSMSMS 第1节 引言中国联通数字移动电话(GSM)网是向社会公众提供通信服务的公用通信网,与中国电信网同为国家通信网的有机组成部分。两网互联互通,自动接续,共享国家通信资源。目前,中国联通数字移动电话业务由GSM网130、131业务和CDMA网133业务组成。GSM是目前基于时分多址技术的移动通信体制中,比较成熟完善,且应用最广泛的一种系统。目前已建成的覆盖全国的GSM数字蜂窝移动通信网,是我国公众移动通信网的主要方式。基于GSM的短信信息服务,是一种在移动网络上传送简短信息的无线应用,是一种信息在移动网络上存储和转寄的过程。由于公众GSM

4、网络在全球范围内实现了联网和漫游,上述系统不需再组建专用通信网络,所以具有实时传输数据功能的短信应用将得到迅速普及。本软件的设计基于GSM网络的温度数据采集与无线传输系统正是借助该网络平台,利用短信息业务实现数据的自动双向传递。系统模型图如图1-1所示。本系统由数据采集部分、数据接收和发送部分、终端处理部分三个模块组成。数据采集模块将采集到的温度数据存入存储器中。数据收发模块采用双单片机共用EERPOM的方式,单片机2控制数据从存储器转存入EEPROM中;单片机1负责将数据从EEPROM中读出,并经GSM模块2借助GSM网络将数据发送出去。单片机1不仅控制数据的发送,也控制数据的接收。在这里,

5、EEPROM是温度数据临时存储和上传的中转站。终端处理模块负责将接收到的数据交给计算机处理,并将处理后的结果存放到数据库中,以供查询。当终端处理模块需要向GSM模块2发送控制命令时,GSM模块2接收过程正好与上述过程相反,从而实现数据的自动双向传递。图1-1系统模型系统中,三个模块相互独立,彼此又相互依赖,共同完成数据的传输。数据收发模块在系统中起着承上启下的作用,是系统的核心模块。该模块以双单片机为核心,以RS232通信接口,在物理层上实现与GSM模块的连接。由于篇幅的限制,本文主要介绍单片机控制这一模块工作的软件实现过程,旨在对怎样用单片机控制GSM模块收发短信息进行探讨。第2节 工作原理

6、及其软件设计2 1 串口控制SMS的工作原理单片机与GSM模块一般采用串行异步通信接口,通信速度可设定,通常为19200bps。采用这种RSM232电缆方式进行连接时,数据传输的可靠性较好。RS232接口方式连接,通过串行接口集成电路和电平转换电路与GSM模块连接,电路比较简单,所涉及的芯片包括单片机89C51和电平转换芯片MAX232,是非常常见的接口电路。需要说明的是,该接口通过I2C总线扩展了一个EEPROM存储器芯片AT24C64,它的主要作用是存储数据,而且断电信息也不会丢失,这些特性正是存储数据所必须的。GSM的短信息业务SMS利用信令信道传输,这是GSM通信网所特有的。它不用拨号

7、建立连接,把要发的信息加上目的数据发送到短信息服务中心,经短信服务中心完成存储后再发送给最终的信宿。所以当目的GSM终端没开机时信息不会丢失。每个短信的信息量限制为160字节。现在市场上大多数手机均支持GSM07.05规定的AT指令集。该指令集是ETSI(欧洲通信技术委员会)发布的,其中包含了对SMS的控制。利用GSM手机的串行接口,单片机向手机收发一系列的AT命令,就能达到控制GSM模块收发SMS的目的。必须注意的是,用单片机实现时,编程必须注意它发送指令与接收到的响应都是字符的ASCII码。用单片机控制GSM模块收发短信息所涉及以的AT指令如表21所列。表21 AT指令AT指令功 能 描

8、述AT+OFF关机并重新启动AT+CSDH=0在TEXT模式下在返回值中不显示详细的头信息ATE0关闭回显AT+CMGF=1选择短信格式为TEXT模式AT+CMGS发送短信息AT+CMGR读取短信息AT+CMGD=0删除全部短信息22软件实现2. 2. 1 上位机模块和下位机模块半双工通信协议的实现2.2.1.1应答和重发上位机模块和下位模块的通信双方遵照半双工通信方式进行,即数据传送是双向的。但是,任何时刻只能由其中的一方发送数据,另一方接收数据,因为EEPROM的读出和写入不能同时进行。为了避免一方在发送信息帧时(这里的信息帧指的是下位机模块发送的数据帧和上位机模块发送的命令帧,下同),另

9、一方也会发送数据,必须把信道变成半双工方式。尽管这样效率可能不如全双工方式,但通过此举牺牲效率可以换取模块工作性能的稳定。双方采取的顺序是:发收到应答后再发。按照整个系统的设计思路,上位机模块(即图1-1中的GSM模块1,下同)发送的帧包括命令帧、确认帧和非确认帧;下位机模块(即图1-1中的GSM模块2,下同)发送的帧包括数据帧、确认帧和非确认帧。其中确认帧和非确认帧是发送数据后等待对方发送的应答帧,以此作为继续发送下一帧和重新发送上一帧的依据。命令帧和数据帧是信息帧,当一方先发送完信息帧,如果收方接收到对方的信息帧,而又没有信息帧需要发送,那么情况就比较简单,收方将根据信息帧的正确与否决定发

10、送确认帧还是非确认帧,以使对方决定是继续发送还是重新发送;如果此刻收方也有信息帧需要发送,那么收方将不立即发送应答帧,而是立即发送本方的信息帧给对方,并等待对方对此帧的应的应答帧,在收到对方的应答帧后,收方将依据应答帧的内容(即确认帧或者是非确认帧,下同)决定是继续发送下一信息帧,还是重新发送原来的信息帧。如果由于链路本身不可靠等因素造成应答帧的丢失,收方将在一定时间内因为没有收到应答帧而延时重发原来的信息帧。在收到对方的应答帧后,收方将继续发送下一信息帧,并等待对方的应答帧,如此反复,直到收方全部发送完信息帧。在本方收到对方最后一个应答帧后,表明本方全部的信息帧发送完毕。然后收方将发送对方仍

11、然等待的应答帧,通知对方收到的信息帧正确与否。2.2.1.2延时重发在双方通信过程中,有两个时间t1和t2,分别表示重新发送信息帧的最大延时。t1表示一方发送完信息帧到收到对方应答帧的时间,如果等待应答帧的时间超过了t1,则发方会重新发送原来的信息帧;当收方接收到对方发送的信息帧,如果收方此时有需要发送的信息帧,则收方此时不发送应答帧,而是发送信息帧给对方。也就是说,利用对方等待收方应答帧的时间t1内,收方插入发送本文的信息帧,同样本方的发送也存在一个延时重发的问题。在规定的时间内,如果没有收到对方应答帧,收方也同样需要重发原来的信息帧,这个规定的时间就是t2。显然由于收方是利用间隙时间发送本

12、方信息帧,所以t2、+CMGS、+CMGR、OK。根据接收到的不同参数,下位机模块将转向不同的操作步骤,判断并改变标志位的值。比如,如果某时刻接收到,这表明呼叫对方模块号码获得成功,接下来需要发送数据。这时SHELL函数将检查发送不同数据所代表的标志位f_sending、f_ack、f_nack,从而决定需要发送何种类型的数据。23短信数据的处理ExecData函数进入时钟中断调用SHELL函数时,如果接收到了返回的参数+CMTI,表明上位机模块向下位机模块发送了短信数据,可能是命令帧,也可能是确认帧或者非确认帧。在这种情况下,SHELL函数需要对短信内容进行分析,并根据短信的内容进行不同的处

13、理,负责完成以上功能的就是ExecData函数,它是被SHELL函数调用的,用来分析并处理短信数据。第3节 系统硬件介绍31系统核心部分-闪电存储型器件AT89C51单片机AT89C51有内部RAM,可以作为各种数据区使用,内部闪电存储器存放数字时钟的控制程序。它的主要功能是控制74LS138和74LS47,实现对LED显示器的位控和段控,完成时间的转换计算,并把计算的时间转换到相应的显示段码,控制LED显示器以动态扫描方式进行时、分、秒的显示。AT89系列单片机是ATMEL公司生产的。这是当前最新的一种电擦写8位单片机,与MCS-51系列完全兼容,有超强的加密功能,可完全替代87C51/52

14、和8751/52。与87C51相比,AT89系列的优越性在于,其片内闪电存储器的编程与擦除完全用电实现;数据不易挥发,可保存10年;编程/擦除速度快,全4K字节编程只需时3s,擦除时间约用10ms;AT89系列了实现在线编程;也可借助电话线进行远距离编程。AT89C51是一种低功耗、高性能内含4K字节闪电存储器(Flash Memory)的8位CMOS微控制器。这种器件系以ATMEL高密度不挥发存储技术制造,与工业标准MCS-51指令系统和引脚完全兼容。片内闪电存储器的程序代码或数据可在线写入,亦可通过常规的编程器编程。例如,MP-100这样一种经济型的编程器,它支持通用EPROM等各种存储器

15、、PAL、GAL以及INTEL、ATMEL和PHILIPS等各公司的全系列51单片机的编程。ME5103和ME5105仿真器支持AT89系列所有器件的调试、仿真和编程。3.1.189C51具有下列主要性能: 4KB可改编程序Flash存储器(可经受1,000次的写入/擦除周期)全静态工作:0Hz24MHz三级程序存储器保密 128 X 8字节内部RAM 32条可编程I/O线 2个16位定时器/计数器 6个中断源可编程串行通道片内时钟振荡器另外,89C51是用静态逻辑来设计的,其工作频率可下降到0 Hz,并提供两种可用软件来选择的省电方式空闲方式(Idle Mode)和掉电方式(Power Do

16、wn Mode)。在空闲方式中,CPU停止工作,而RAM、定时器/计数器、串行口和中断系统都继续工作。在掉电方式中,片内振荡器停止工作,由于时钟被“冻结”,使一切功能都暂停,只保存片内RAM中的内容,直到下一次硬件复位为止。3.1.289C51的引脚及功能3.1.2.1 主要电源引脚 Vcc 电源端 GND 接地端3.1.2.2 外接晶体引脚XTAL1和XTAL2 XTAL1 接外部晶体的一个引脚。在单片机内部,它是构成片内振荡器的反相放大器的输入端。当采用外部振荡器时,该引脚接收振荡器的信号,既把此信号直接接到内部时钟发生器的输入端。 XTAL2 接外部晶体的另一个引脚。在单片机内部,它是上

17、述振荡器的反相放大器的输出端。采用外部振荡器时,此引脚应悬浮不连接。3.1.2.3 控制或与其它电源复用引脚RST、ALE/PROG、/PSEN和/EA/Vpp RES 复位输入端。 当振荡器运行时,在该引脚上出现两个机器周期的高电平将使单片机复位。 ALE/PROG 当访问外部存储器时,ALE(地址锁存允许)的输出用于锁存地址的低位字节。即使不访问外部存储器,ALE端仍以不变的频率(此频率为振荡器频率的1/6)周期性地出现正脉冲信号。因此,它可用作对外输出的时钟,或用于定时目的。然而要注意的是:每当访问外部数据存储器时,将跳过一个ALE脉冲。在对Flash存储器编程期间,该引脚还用于输入编程

18、脉冲(/PROG)。如果需要的话,通过对专用寄存器(SFR)区中8EH单元的D0位置数,可禁止ALE操作。该位置数后,只有在执行一条MOVX或MOVC指令期间,ALE才会被激活。另外,该引脚会被微弱拉高,单片机执行外部程序时,该设定禁止ALE位无效。 /PSEN 程序存储允许(/PSEN)输出是外部程序存储器的读选通信号。当80C51由外部程序存储器取指令(或常数)时,每个机器周期两次/PSEN有效(既输出2个脉冲)。但在此期间内,每当访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/Vpp 外部访问允许端。要使CPU只访问外部程序存储器(地址为0000HFFFFH),则/EA

19、端必须保持低电平(接到GND端)。然而要注意的是,如果保密位LB1被编程,复位时在内部会锁存/EA端的状态。当/EA端保持高电平(接Vcc端)时,CPU则执行内部程序存储器中的程序,并可延续至外部程序存储器。在Flash存储器编程期间,该引脚也用于施加12V的编程允许电源Vpp(如果选用12V编程)。3.1.2.4输入/输出引脚 P0.0 P0.7、P10.P1.7、P2.0 P2.7 和P3.0P3.7P0端口(P0.0 P0.7) P0是一个8位漏极开路型双向I/O端口。作为输出口用时,每位能以吸收电流的方式驱动8个TTL输入,对端口写1时,又可作高阻抗输入端用。在访问外部程序和数据存储器

20、时,它是分时多路转换的地址(低8位)/数据总线,在访问期间激活了内部的上拉电阻。在Flash编程时,P0端口接收指令字节;而在验证程序时,则输出指令字节。验证时,要求外接上拉电阻。P1端口(P1.0 P1.7) P1是一个带有内部上拉电阻的8位双向I/O端口。P1的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。对端口写1时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。作输入口时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流。在对Flash编程和程序验证时,P1接收低8位地址。P2端口 (P2.0P2.7) P2是一个带有内部上拉电阻的8位双向I/O端口。P2的

21、输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。对端口写1时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。P2作输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流。在访问外部程序存储器和16位地址的外部数据存储器(如执行MOVX DPIR指令)时,P2送出高8位地址。在访问8位地址的外部数据存储器(如执行MOVX RI指令)时,P2口引脚上的内容(就是专用寄存器(SFR)区中P2寄存器的内容),在整个访问期间不会改变。在对Flash编程和程序验证期间,P2也接收高位地址和一些控制信号。P3端口(P3.0P3.7) P3 是一个带有内部上拉电阻的8位双向I

22、/O端口。P2的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。对端口写1时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。P3作输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流。在89C51中,P3端口还用于一些专门功能,这些兼用功能见表3-1表 31 P3端口兼用功能表 端口引脚 兼 用 功 能 P3.0RXD (串行输入口) P3.1TXD (串行输出口) P3.2/INT0 (外部中断0) P3.3/INT1 (外部中断1) P3.4T0 ( 定时器/计数器0的外部输入) P3.5T1 (定时器/计数器1的外部输入) P3.6/WR (外部数据存

23、储器写选通) P3.7/RD (外部数据存储器读选通)在对Flash编程和程序验证时,P3还接收一些控制信号。3.1.3Flash存储器的编程和程序校验:AT89C51单片机内部有一个4K字节的Flash PEROM。这个Flash存储阵列通常是处于已擦除状态(既存储单元的内容为FFH),随时可对它进行编程。编程接口可接收高电压(12V)或低电压(Vcc)的允许编程信号。低电压编程方式可很方便地对AT89C51内的用户系统进行编程;而高电压编程方式则可与通用的EPROM编程器兼容。AT89C51的程序存储器阵列是采用字节写入方式编程的,既每次写入一个字节。要对片内的PEROM程序存储器写入任何

24、一个非空字节,都必须用片擦除方式将整个存储器的内容清除。3.1.3.1 对Flash存储器编程编程前,必须建立好地址、数据和相应的控制信号。编程单元的地址加在P1端口和P2端口的P2.0P2.3(11位地址为0000H0FFFH),数据从P0端口输入。引脚P2.6、P2.7和P3.6、P3.7的电平选择见表2。/PSEN应保持低电平,而RST应保持高电平。/EA/VPP是编程电源的输入端,按要求加入编程电压。ALE/PROG端输入编程脉冲(应为负脉冲信号)。编程时,采用420 MHz的振荡器。对AT89C51编程的步骤如下:在地址线上输入要编程单元的地址。在数据线上输入要写入的数据字节。激活相

25、应的控制信号。在采用高电压编程方式时,将/EA/VPP端的电压加到12V。每对Flash存储阵列写入一个字节或每写入一个程序加密位,加一个ALE/PROG编程脉冲。改变编程单元的地址和要写入的数据,重复上述步骤,直到全部文件编程完毕。每个字节写入周期是自动定时的,通常不大于1.5ms。数据查询方式AT89C51单片机用数据查询方式来检测一个写周期是否结束。在一个写周期期间,如果想读出最后写入的哪个字,则读出数据的最高位(P0.7)是原来写入字节最高位的反码。写周期一旦完成后,有效的数据就会出现在所有输出端上,这时可开始下一个写周期。一个写周期开始后,可在任何时间开始进行数据查询。 准备就绪/忙

26、信号字节编程的过程也可通过RDY/BSY输出信号来监视。在编程期间,当ALE变为高电平后,P3.4(RDY/BSY)端的电平被拉低,表示忙(正在编程)状态。编程完毕后,P3.4的电平变高表示就绪状态。3.1.3.2程序的校验 如果加密位LB1和LB2没有被编程,那么就可以对AT89C51内部已编好的程序进行校验。程序存储器的地址仍由P1端口和P2端口的P2.0P2.3输入,数据由P0端口输入。/PSEN保持低电平,而ALE、/EA和RST保持高电平。校验时,在P0端口上要求外接约10K左右的上拉电阻。程序加密位不能直接校验。加密位的校验可通过观察它们的功能是否被允许来进行。32 GSM模块MZ

27、28MZ28是中兴通讯推出的GSM无线双频调制解调器,主要为语音传输、短信发送和数据业务提供无线接口。MZ28集成了完整的射频电路和GSM的基带处理器,特别适合于迅速开发基于GSM无线网络的无线应用产品。带有人机接口(MMI)界面的应用产品内部与MZ28的通信可通过标准的串行接口(RS232)进行。MZ28使用简单的20-PIN ZIP插座与用户自己的应用系统相连,此ZIP连接方式提供开发所需的数据通信、音频和电源等接口信号。MZ28可以作为无线引擎,嵌入到用户自己的产品当中,用户可以用单片机或其它CPU的UART口,使用相应的AT命令,对模块进行控制,达到使其产品可以轻松进入GSM网络的目的

28、。33单片机MSC1210在许多传统行业中,多路高精度温度采集系统是不可或缺的。电厂、石化行业、钢铁厂以及制药厂等企业使用了大量的各类测温器件,如热电阻、热电偶等,这些器件需要定期校准;在严格执行GMP规范的制药厂等企业,高温灭菌需要定期进行灭菌率的验证;在某些要求进行严格的温度控制的场合,也需要进行多点高精度温度测量。这些工作往往需要一多路高精度测温系统来完成。德州仪器(TI)的MSC1210单片机解决了上述问题。它集成了一个增强型8051内核、高达33 MHz的时钟周期、8路24位高精度-A/D转换器、Flash存储器等.3.3.1MSC1210具有以下主要特性: 3个16位的定时器,16

29、位PWM波输出; 多达21个中断源; 32个数字输入/输出端口,带有看门狗; 8路ADC提供24位分辨率可编程的无丢失码解决方案; 可编程增益放大(PGA)在1128之间可调,极大提高了ADC精度; 供电电源2.75.25 V,在3 V时功耗低于4 mW,停止方式电流小于1A; 内核兼容8051,指令与8051完全兼容,可以使用原有8051开发系统; 时钟频率可达33 MHz,单周期指令执行速度达8 MIPS,执行速度比标准8051快3倍; 高达32 KB的Flash存储器,SRAM达1.2 KB,外部可扩展至64 KB存储器; Flash在电压低达2.7 V时仍可串行或并行编程,可10万次擦

30、除/写操作; 具有32位累加器; 有电源管理功能,能够进行低电压检测,在片上电复位; 带FIFO的SPI端口,双UART; 64TQFP封装,MSC1210系列的硬件和引脚完全兼容,必要时可以互换。3.3.2. MSC1210的增强功能作为智能高精度测温模块的核心,MSC1210完成了微弱信号的多路切换、信号缓冲、PGA编程放大、24位-A/D转换、数字滤波、数据处理、信号校准以及SPI通讯等功能。MSC1210集成了一个8通道24位-A/D转换器,采用8051兼容内核。与ADuC824相比,其有如下增强的功能:3.3.2.1 CPU工作频率可达33MHz,每条指令只需4个时钟周期,运算速度较

31、快。3.3.2.2采用非常灵活的FLASH与SRAM存储器配置,可以对片上FLASH进行分区,根据需要设定程序FLASH与数据SRAM所占的比例。改写次数可达一百万次,数据可保存100年。3.3.2.3片上RAM为1280B,有34个高电流驱动I/O,可以设外部存储器的存取时间,使用双数据指针提高存取速度,具有完善的节电功能,还有电压监视器、21个中断源、3个16位定时器计数器以及内部时间间隔计数器(TIC)。3.3.2.4自带BOOT ROM,可以调试使用或在程序中调用内置固化程序,完成在线调试、数据采集、UART通讯以及读写FLASH等工作,方便了编程以及调试。3.3.2.5片上24位-A

32、DC具有一些增强特性:8位输入通道可以任意配置为单端或差分输入;有快速、Sinc2、Sinc3三种数字滤波,同时有自动数字滤波功能,可以加快A/D转换输出;带PGA偏置DAC,可以不引入额外误差而扩大测量范围;自带一个32位累加器,可以对ADC输出数据作快速平均处理。3.3.2.6自带高精度电压标准,精度为0.2%,漂移为5ppm/,可以节省空间以及器件成本,也可输出该电压标准或外接电压标准。3.3.2.7片上16位PWM,可以作为DAC输出来源。3.3.2.8增强的SPI接口可以使用DMA方式传输数据,在DMA方式下,可以间接寻址RAM,设定多达128B的发送接收FIFO;具有完整的端口驱动

33、以及发送接收中断设定,适合大批量的数据传输:,同时点用C3.3.3. 使用注意事项3.3.3.1 MSC1210片内FLASH分区只能通过对HCR0以及HCR1这两个硬件配置寄存器事先编程来进行,在程序运行过程中无法设定或更改分区比例。在程序运行中读写FLASH时,要注意读写地址与调试时的地址不同,具体应参考存储器分配表;用户程序无法直接读写FLASH,调用BOOT ROM中的读写函数来进行;与AVR等芯片的EEPROM不同,写入FLASH之前必须先进行擦除操作,BOOT ROM中有可调和场擦除子程序,可以在汇编或C程序中调用。3.3.3.2 在做A/D转换时,每次更改PGA放大倍数需要重新校

34、准,在需要频繁切换输入通道的场合,建议设定特殊寄存器ADCON1的SM10位为00,即进入自动模式数字滤波。这样当通道切换后,随着A/D采样次数的增强,数据滤波依次为快速转换、Sinc2、Sinc3数字滤波,可以最大限度地提高转换速度和转换精度。3.3.3.3 BOOT ROM中固化的程序对于MSC1210的编程和调试非常关键,其中部分可以在用户程序中直接调用,完成数据采集、UART输入输出等重要功能。可以通过串口或并口进行编程。3.3.3.4使用TI提供的下载工具及调试终端,可以对MSC1210实现在线调试。这种调试会占用UARTO资源,同时辅助中断的入口地址也有变化,这在编程时需要注意。也

35、可以利用Windows自带的超级终端进行调试。与TI终端不同,Windows超级终端不能自动初始化MSC1210使之进入调试状态,需要人工进行调试复位。3.3.4. 片内存储器MSC1210包括片上1.2 KB SRAM ,256字节DARAM,2KB启动ROM,32 KB Flash存储器。MSC1210用内存寻址表来区分程序存储空间和数据存储空间。程序空间由单片机自动读取,通过指令MOVC来读程序空间;数据空间通过指令MOVX来读写。当片上存储使能时,在片内范围内的读写将在片内存储器上进行,片外存储器通过P0和P2寻址来实现。HCR1寄存器的第0位和第1位设为0就可以访问外部存储器,此时可

36、以通过P0和P2口访问所有片内和片外存储空间。为了安全起见,在访问片内存储器期间,P0口全部置位为0。MSC1210包含1.2 KB片上SRAM。SRAM起始地址位“0”,通过MOVX指令读写。SRAM也可以从8400H开始,既可作程序空间又可作数据空间。MSC1210有256字节DARAM,地址为0000H00FFH,其中128字节为128个SFR,地址为0080H00FFH。SFR寄存器用做控制和状态,标准的8051功能和MSC1210的附加功能是通过SFR实现的。从没有定义的SFR寄存器将得到“0”,写入没有定义过的SFR得到的结果无法确定。DARAM的另一个用途,是通过SFR的堆栈指针

37、作为堆栈使用。在串行或并行编程时,有2KB启动ROM控制运行。在用户模式下,BOOT ROM位于F800HFFFFH;在编程模式下,BOOT ROM位于程序空间的起始2K。Flash存储器既可用做程序存储空间又可用做数据存储空间,用户可以灵活配置程序和数据存储空间的大小。分区大小通过硬件配置位来确定,可以通过串行或并行的方式来编程确定。在用户应用模式下,程序和数据Flash存储空间都可读可写。3.3.5Flash编程应用可编程的Flash存储器分为4个部分:128字节的配置部分、复位向量、程序存储空间、数据存储空间。Flash编程模式有串行和并行两种模式,通过上电复位过程当中的ALE和信号状态

38、确定。当ALE=1,=0时,选择串行编程模式;当ALE=0,=1时,选择并行编程模式。当ALE和都为高电平时,MSC1210运行在用户模式下;当ALE和都为低电平时,MSC1210没有定义。MSC1210的Flash存储器初始值全部为“1”,并行编程模式包括一个专用的编程器,串行编程方式通常为在线编程,用户应用模式允许对Flash程序和数据存储器编程。对Flash编程的实际代码不能从Flash执行,而必须从BOOT ROM或RAM处开始执行。MSC1210有两个硬件配置存储器(HCR0、HCR1),在Flash编程模式下可编程。用户通过对这两个存储器编程可以在程序存储空间(PM)和数据存储空间

39、(DM)之间定义分区,如表3-2所列。表3-2 MSC1210的Flash分区HCR0MSC1210Y2MSC1210Y3MSC1210Y4MSC1210Y5DFSELPM/KBDM/KBPM/KBDM/KBPM/KBDM/KBPM/KBDM/KB0000408-0010408-03201004080161616011040888248100044412428410122621423021103171151311111(缺省)4080160320注:当程序空间选择0KB时,程序在片外执行;一表示保留。用户可以通过MOVX指令来读写Flash存储器,而不论Flash存储器是被定义为程序存储器还是数据存储器。这意味着用户可以将全部空间分为程序存储空间,并将程序空间当数据存储空间用。当PC指针指向的程序空间实际上存放的是数据时,将会导致不可预知的后果。因此,当要用Flash存储数据时,一定要求使用Flash分区,Flash分区禁止在数据存储空间执行程序。同样,也禁止程序空间的擦写而允许在数据存储空间读写。3.3.6. 内核兼容8051但速度更快功能更强MSC1210系列的所有指令功能与标准8051相同,对位、标志和寄存器的影响相同,但时序不同。MSC120单片机使用精简的8051内核,在同样的外部时钟作用下,其执行速度比标准8051快

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号