单片机89C51特殊功能寄存器
- 格式:docx
- 大小:21.73 KB
- 文档页数:5
单⽚机课后习题答案单⽚机课后习题答案1.89C51单⽚机内包含哪些主要逻辑功能部件?答:80C51系列单⽚机在⽚内集成了以下主要逻辑功能部件:(l)CPU(中央处理器):8位(2)⽚内RAM:128B(3)特殊功能寄存器:21个(4)程序存储器:4KB (5)并⾏I/O⼝:8位,4个(6)串⾏接⼝:全双⼯,1个(7)定时器/计数器:16位,2个(8)⽚内时钟电路:1个2.89C51的EA端有何⽤途?答:/EA端接⾼电平时,CPU只访问⽚内flash Rom并执⾏内部程序,存储器。
/EA端接低电平时,CPU只访问外部ROM,并执⾏⽚外程序存储器中的指令。
/EA端保持⾼电平时,CPU执⾏内部存储器中的指令。
3.89C51的存储器分哪⼏个空间?如何区别不同空间的寻址?答:ROM(⽚内ROM和⽚外ROM统⼀编址)(使⽤MOVC)(数据传送指令)(16bits地址)(64KB)⽚外RAM(MOVX)(16bits地址)(64KB)⽚内RAM (MOV)(8bits地址)(256B)4.简述89C51⽚内RAM的空间分配。
答:⽚内RAM有256B,低128B是真正的RAM区,⾼128B是SFR(特殊功能寄存器)区。
5.简述布尔处理存储器的空间分配,⽚内RAM中包含哪些可位寻址单元。
答:⽚内RAM区从00H~FFH(256B)其中20H~2FH(字节地址)是位寻址区对应的位地址是00H~7FH6. 如何简捷地判断89C51正在⼯作?答:⽤⽰波器观察8051的XTAL2端是否有脉冲信号输出(判断震荡电路⼯作是否正常?)ALE(地址锁存允许)(Address Latch Enable)输出是fosc的6分频⽤⽰波器观察ALE是否有脉冲输出(判断8051芯⽚的好坏?)观察PSEN(判断8051能够到EPROM 或ROM中读取指令码?)因为/PSEN接外部EPROM(ROM)的/OE端⼦OE=Output Enable(输出允许)7. 89C51如何确定和改变当前⼯作寄存器组?答:PSW(程序状态字)(Program Status Word)中的RS1和RS0 可以给出4中组合,⽤来从4组⼯作寄存器组中进⾏选择PSW属于SFR(Special Function Register)(特殊功能寄存器)9.读端⼝锁存器和“读引脚”有何不同?各使⽤哪种指令?答:读锁存器(ANLP0,A)就是相当于从存储器中拿数据,⽽读引脚是从外部拿数据(如MOV A,P1这条指令就是读引脚的,意思就是把端⼝p1输⼊数据送给A)传送类MOV,判位转移JB、JNB、这些都属于读引脚,平时实验时经常⽤这些指令于外部通信,判断外部键盘等;字节交换XCH、XCHD算术及逻辑运算ORL、CPL、ANL、ADD、ADDC、SUBB、INC、DEC控制转移CJNE、DJNZ都属于读锁存器。
(1)AT89C51的主要特性○18位微处理器和控制器,中央处理器是整个单片机的核心部件,能同时处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。
○2内含一个布尔运算器,可直接对数据的位进行操作和运算,特别适用于逻辑控制。
○3内含4KB可重擦写的可编程闪烁程序存贮器(EEPROM)。
○4内含128*8位的数据存贮器(RAM)。
○54个8位(32根)双向且可独立寻址的I/O(输入输出)接口0P~3P。
○62个16位的计数器/定时器。
○7片内振荡器和时钟电路。
○8全双工方式的串行接口(DART)。
○9两级中断优先权的6个中断源/5个中断矢量的中断逻辑。
○10指令集有111条指令,其中64条为单周期指令,支持6种寻址方式。
○11最高时钟振荡频率可达12MHz,大部分指令执行时间为1us,乘、除指令为4us。
○12与MCS-51兼容,寿命为1000次写/擦循环,数据保留时间为10年。
○13低功耗的闲置和掉电模式,可编程串行通道,三级程序存储器锁定。
(2)引脚及功能AT89C51单片机为40脚双列直插式封装结构。
其引脚排列顺序及引脚符号如图4.1所示:图4.1 AT89C51管脚图各引脚功能如下:○1电源及接地GND:电源接地端。
Vcc:供电电压即正常运行和编程校验时为+5V电源(士10%)。
○2时钟及复位信号XTAL1:是片内振荡器反相放大器的输入及内部时钟工作电路的输入。
当采用外部振荡器为时钟源时,此脚必须接地。
XTAL2:是片内振荡器反相放大器的输出端,也是内部时钟发生器的输入端。
使用外部振荡器时,可由此脚引入外部时钟信号。
RST:复位信号输入端,高电平有效。
若此输入端保持2个机器周期(24个时钟振荡周期)以上的高电平,即可以将89C51完成复位操作。
此外,RST引脚的第二功能是VPD,即备用电源的输入端。
当主电源Vcc发生故障,降低到低电平规定值时,单片机自动将+5v电源接入RST端,为RAM提供备用电源,以保证存储在RAM中的信息不丢失,以使复电后能继续正常运行。
89C51中断寄存器详情中断系统:AT89C51单片机的中断系统由中断源、与中断控制有关的特殊功能寄存器、中断入口、顺序查询逻辑电路等组成,包括5个中断请求源、4个与中断控制有关的寄存器(IE、IP、TCON、SCON)、两个中断优先级及顺序查询逻辑电路。
1.中断源:中断源是指能引起中断、发出中断请求的装置或事件。
AT89C51有5个中断源○1外中断0(INT0):中断请求信号从单片机的P3.2脚输入○2外中断1(INT1):中断请求信号从单片机的P3.3脚输入○3内定时器/计数器0(T0):溢出中断○4内定时器/计数器1(T1):溢出中断○5串行口中断:包括串行收中断RI和串行发中断TI2.中断入口地址及内部优先权寄存器3.IE结构及各位名称、地址⑴EA是CPU中断总允许位。
EA=1,CPU开放中断;EA=0,CPU屏蔽所有的中断请求。
⑵ES是串行中断允许控制位。
ES=1,允许串行口中断;ES=0,禁止串行口中断。
⑶ET1是定时器/计数器1中断允许控制位。
ET1=1时允许定时器/计数器1中断;反之禁止。
⑷EX1是外部中断INT1中断允许位。
EX1=1时,允许外部中断1中断;反之依然。
⑸ET0是定时计数器T0的溢出中断允许位。
ET1=1时允许定时器/计数器0中断;反之禁止。
⑹EX0是外部中断INT0允许位。
EX1=1时,允许外部中断0中断;反之禁止。
89C51系统复位后,IE中各位均被清0,即禁止所有中断。
4.TCON(定时器/计数器和外中断控制寄存器):TCON的字节地址为88H,是可位寻址的特殊功能寄存器,其地址有低到高依次是88H ~ 8FH。
TCON结构及位名称、位地址TF1:T1溢出中断请求标志。
当定时器/计数器T1溢出时,由硬件置“1”,请求中断。
TF0:T0溢出中断请求标志。
当定时器/计数器T0溢出时,由硬件置“1”,请求中断。
IE1:外中断1中断请求标志。
当INT1引脚(P3.3)上出现有效的外部中断信号时,由硬件置“1”,请求中断。
填空题(每空1分)1、8051有(111 )条指令。
2、晶振的频率为6MHz时,一个机器周期为()μS。
3、单片机是把中央处理器,()()()以及I/O接口电路等主要计算机部件集成在一块集成电路芯片上的微型计算机。
4、传输速率是用每秒传送数据位的()来表示,把它定义为(),单位为()。
5、所谓最小应用系统是指能维持单片机运行的()配置系统。
6、单片机复位时P0的值为()。
7、当PSW4=0,PSW3=1时,工作寄存器Rn,工作在第()区。
8、当允许定时器1工作在方式1时,控制字TMOD应为()。
9、当8255工作在方式0时,使PA、PB、PC全用作输出口,控制字应为()。
10、在R7初值为00H的情况下,DJNZ R7,rel指令将循环执行()次。
11、当允许定时/计数器1溢出中断时IE控制字应为()。
12、欲使P1口的低4位输出0,高4位不变,应执行一条()命令。
13、MCS-51单片机系列有()个中断源,可分为()个优先级。
上电复位时()中断源的优先级别最高。
14、计算机三大总线分别为()、()和控制总线。
15、74LS138是具有3个输入的译码器芯片,用其输出作片选信号,最多可在()块芯片中选中其中任一块。
17、MCS-51指令系统中,ADD与ADDC指令的区别是()。
18、8051单片机有()个16位定时/计数器。
19、特殊功能寄存器中,单元地址()的特殊功能寄存器,可以位寻址。
20、如果存储单元的数据位为8位,当它存放无符号数时,则该数的范围为()。
21、MCS-51单片机有()个并行输入/输出口,当系统扩展外部存储器或扩展I/O口时,()口作地址低8位和数据传送总线,()口作地址总线高8位输出,()口的相应引脚会输出控制信号。
22、数据指针DPTR有()位,程序计数器PC有()位。
23、EPROM27256芯片的存储容量为(),它的地址线有()根。
24、欲使P1口的低4位输出0,高4位不变,应执行一条()命令。
89C51单⽚机硬件结构和原理第1部分 89C51单⽚机硬件结构和原理1. 89C51单⽚机⽚内包含哪些主要逻辑功能部件?答:89C51单⽚机是个完整的单⽚微型计算机。
芯⽚内部包括下列硬件资源:(1)8位CPU;(2)4KB的⽚内Flash ROM。
可寻址64KB程序存储器和64KB外部数据存储器;(3)256B内部 RAM/SFR;(4)21个 SFR;(5)4个8位并⾏I/O⼝P0~P3(共32位I/O线);(6)⼀个全双⼯uart的异步串⾏I/O⼝,⽤于实现单⽚机之间或单⽚机与PC机之间的串⾏通讯;(7)两个16位定时器/计数器;(8)5个中断源,两个中断优先级;(9)内部时钟发⽣器。
2. 89C51的EA端有何⽤途?答:作外部程序存储器地址允许输⼊端和固化编程电压输⼊端。
3. 89C51的存储器分哪⼏个空间?如何区别不同空间的寻址?答:89C51存储器包括程序存储器和数据存储器,从逻辑结构上看,可以分为三个不同的空间:(1)64KB的程序存储器地址空间:0000H~FFFFH,其中0000H~0FFFH为⽚内4KB的Flash ROM地址空间,1000H~FFFFH为外部ROM地址空间;(2)256B的内部数据存储器地址空间,00H~FFH,分为两⼤部分,其中00H~7FH(共128B单元)为内部静态RAM的地址空间,80H~FFH为特殊功能寄存器的地址空间,21个特殊功能寄存器离散地分布在这个区域;(3)64KB的外部数据存储器地址空间:0000H~FFFFH,包括扩展I/O地址空间。
MCS-51单⽚机存储器三类空间地址存在重叠,单⽚机设计了不同的数据传送指令符号来区分:CPU访问⽚内、⽚外ROM指令⽤MOVC,访问⽚外RAM指令⽤MOVX,访问⽚内RAM 指令⽤MOV。
4. 简述89C51⽚内RAM的空间分配。
答:89C51内部256B的数据RAM区,包括有⼯作寄存器组区、可直接位寻址区和数据缓冲区、特殊功能寄存器组区。
第三章系统硬件设计3.1STC89C51单片机的介绍STC系列单片机是美国STC公司最新推出的一种新型51内核的单片机。
片内含有Flash程序存储器、SRAM、UART、SPI、A\D、PWM等模块。
该器件的基本功能与普通的51单片机完全兼容。
3.1.1主要功能、性能参数1.内置标准51内核,机器周期:增强型为6时钟,普通型为12时钟;2.工作频率范围:0~40MHZ,相当于普通8051的0~80MHZ;3.STC89C5xRC对应Flash空间:4KB\8KB\15KB;4.5.6.7.8.9.(((“((与入(动(吸收或输出电流)4个TTL逻辑门电路。
对端口P2写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(ILL)。
在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVX@DPTR指令)时,P2口送出高8位地址数据。
在访问8位地址的外部数据存储器(如执行MOVX@RI 指令)时,P2口输出P2锁存器的内容。
(6)P3口:P3口是一组带有内部上拉电阻的8位双向I/O口。
P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。
此时,被外部拉低的P3口将用上拉电阻输出电流(ILL)。
P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能,如表4-2所示。
(7)RST:复位输入。
当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。
为89C51有256个字节的内部RAM,80H-FFH高128个字节与特殊功能寄存器(SFR)地址是重叠的,也就是高128。
字节的RAM和特殊功能寄存器的地址是相同的,但在物理上它们是分开的。
当一条指令访问7FH以上的内部地址单元时,指令中使用的寻址方式是不同的,也即寻址方式决定是访问高128字节。
89c51引脚图及功能89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。
89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。
单片机的可擦除只读存储器可以反复擦除100次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的89C51是一种高效微控制器,89C2051是它的一种精简版本。
89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
1.主要特性:·与MCS-51 兼容·4K字节可编程闪烁存储器寿命:1000写/擦循环数据保留时间:10年·全静态工作:0Hz-24Hz·三级程序存储器锁定·128*8位内部RAM·32可编程I/O线·两个16位定时器/计数器·5个中断源·可编程串行通道·低功耗的闲置和掉电模式·片内振荡器和时钟电路2.管脚说明:VCC:供电电压。
GND:接地。
P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
3。
1 STC89C51单片机的介绍STC系列单片机是美国STC公司最新推出的一种新型51内核的单片机。
片内含有Flash程序存储器、SRAM、UART、SPI、A\D、PWM等模块。
该器件的基本功能与普通的51单片机完全兼容。
3.1.1主要功能、性能参数1。
内置标准51内核,机器周期:增强型为6时钟,普通型为12时钟;2.工作频率范围:0~40MHZ,相当于普通8051的0~80MHZ;3.STC89C5xRC对应Flash空间:4KB\8KB\15KB;4。
内部存储器(RAM):512B;5。
定时器\计数器:3个16位;6。
通用异步通信口(UART)1个;7.中断源:8个;8.有ISP(在系统可编程)\IAP(在应用可编程),无需专用编程器\仿真器;9。
通用I\O口:32\36个;10.工作电压:3.8~5.5V;11。
外形封装:40脚PDIP、44脚PLCC和PQFP等3。
1。
2 89C51单片机的引脚功能说明(1)VCC:电源电压(2)GND:地(3) P0口:P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。
作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口P0写“1”时可作为高阻抗输入端用.在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复位,在访问期间激活内部上拉电阻。
(4)P1口:P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTE 逻辑门电路。
对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。
作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(ILL).与AT89C51不同之处是,P1.0和P1。
1还可分别作为定时/计数器2的外部计数输入(P 1.0/T2)和输入(P 1。
1/T2EX ),参见表4—1。
Flash编程和程序校验期间,P1接收低8位地址。
概述该系列单片机是采用高性能的静态80C51设计由先进CMOS工艺制造并带有非易失性Flash程序存储器全部支持12时钟和6时钟操作P89C51X2和P89C52X2/54X2/58X2分别包含128字节和256字节RAM32条I/O口线3个16位定时/计数器6输入4优先级嵌套中断结构1个串行I/O口可用于多机通信I/O扩展或全双工UART以及片内振荡器和时钟电路此外由于器件采用了静态设计可提供很宽的操作频率范围频率可降至0可实现两个由软件选择的节电模式空闲模式和掉电模式空闲模式冻结CPU但RAM定时器串口和中断系统仍然工作掉电模式保存RAM的内容但是冻结振荡器导致所有其它的片内功能停止工作由于设计是静态的时钟可停止而不会丢失用户数据运行可从时钟停止处恢复选型表特性特性y 80C51核心处理单元4k字节FLASH89C51X28k字节FLASH89C52X216k字节FLASH89C54X232k字节FLASH89C58X2128字节RAM89C51X2256字节RAM89C52X2/54X2/58X2布尔处理器全静态操作y 12时钟操作可选6个时钟通过软件或并行编程器y 存储器寻址范围64K字节ROM和64K字节RAMy 电源控制模式―时钟可停止和恢复―空闲模式―掉电模式y 两个工作频率范围6时钟模式时为0到20MHz12时钟模式时为0到33MHzy LQFP, PLCC或DIP封装y 扩展温度范围y 双数据指针y 3个加密位y 4个中断优先级y 6个中断源y 4个8位I/O口y 全双工增强型UART―帧数据错误检测―自动地址识别y 3个16位定时/计数器T0T1标准80C51和增加的T2捕获和比较y 可编程时钟输出y 异步端口复位y 低EMI (禁止ALE以及6时钟模式)y 掉电模式可通过外部中断唤醒订购信息P89C51X24K字节FLASH类型编号封装温度范围()P89C51X2BA PLCC44 0~+70P89C51X2BN DIP40 0~+70P89C51X2BBD LQFP44 0~+70P89C51X2FA PLCC44 -40~+85 P89C52X28K字节FLASH类型编号封装温度范围()P89C52X2BA PLCC44 0~+70P89C52X2BN DIP40 0~+70P89C52X2BBD LQFP44 0~+70P89C52X2FA PLCC44 -40~+85 P89C52X2FN DIP40 -40~+85 P89C52X2FBD LQFP44 -40~+85 P89C54X216K字节FLASH类型编号封装温度范围()P89C54X2BA PLCC44 0~+70P89C54X2BN DIP40 0~+70P89C54X2BBD LQFP44 0~+70P89C54X2FA PLCC44 -40~+85 P89C58X232K字节FLASH类型编号封装温度范围()P89C58X2BA PLCC44 0~+70P89C58X2BN DIP40 0~+70P89C58X2BBD LQFP44 0~+70P89C58X2FA PLCC44 -40~+85B=07040+85下表所示为操作模式电源电压以及最大外部时钟频率之间的关系操作模式电源电压最大时钟频率6-clock 5V10% 20MHz 12-clock 5V10% 33MHz框图1逻辑符号PLCC和CLCC封装及管脚功能DIP 封装及管脚功能 LQFP 封装及管脚功能管脚描述 管脚号名称 DIP LCC QFP 类型 名称和功能Vss 20 22 16I地 Vcc 40 44 38 I电源提供掉电空闲正常工作电压P0.0-0.739-32 43-36 37-30 I/O P0口 P0口是开漏双向口可以写为1使其状态为悬浮用作高阻输入P0也可以在访问外部程序存储器时作地址的低字节在访问外部数据存储器时作数据总线此时通过内部强上拉输出1P1.0-1.7 1-8 1 22-92 340-44 1-3I/O P1口 P1口是带内部上拉的双向I/O 口向P1口写入1时P1口被内部上拉为高电平可用作输入口当作为输入脚时被外部拉低的P1口会因为内部上拉而输出电流(见DC 电气特性)P1口第2功能T2(P1.0) 定时/计数器2的外部计数输入/时钟输出(见可编程输出)T2EX(P1.1)定时/计数器2重装载/捕捉/方向控制P2.0-2.7 21-28 24-31 18-25 I/O P2口 P2口是带内部上拉的双向I/O 口向P2口写入1时P2口被内部上拉为高电平可用作输入口当作为输入脚时被外部拉低的P2口会因为内部上拉而输出电流(见DC 电气特性)在访问外部程序存储器和外部数据时分别作为地址高位字节和16位地址(MOVX @DPTR)此时通过内部强上拉传送1当使用8位寻址方式(MOV@Ri)访问外部数据存储器时,P2口发送P2特殊功能寄存器的内容P3口P3口被内部上拉为高电平可用作输入口输入脚时口会因为内部上拉而输出电电气特性)串行输入口INT0(P3.2)INT1(P3.3)WR(P3.6)当晶振在运行中期高电平即可复位内部有扩散电阻连接到VssVcc输出脉冲锁存地在正常情况下ALE输出信号恒定为并可用作外部时钟或定时注意每次访问外部数据时一个ALE可以通过置位ALE只能在执行程序存储使能当执行外部程序存储器代码时个机器周期被激活两次在访问外部数据存储器时访问内部程序存储器时外部寻址使能在访问整个外部程序存储器时如果EA将执行内部程序除非程序计数器包含大于片内FLASH的地址该引脚在(Vpp)如果保密位已编程在复位时由内部锁存反相振荡放大器输入和内部时钟发生电路输入反相振荡放大器输出注: 为了避免上电时的”latch-up”效应任意管脚Vpp除外上的电压任何时候都不能高于Vcc+0.5V低于Vss-0.5V表1 P89C51X2/52X2/54X2/58X2 特殊功能寄存器双字节指针高字节*号的#80C51修改而来或新增加的表示保留位1复位值由复位源确定存储器的内容存储单先进的沟道氧化工艺和低内部电场的结合使擦除和编程操作特性y 可编程加密位y 每字节最少10000次擦除/编程周期 y 数据最少可保存10年y 从一般销售商处可获得编程支持振荡器特性XTAL1和XTAL2为输入和输出可分别作为一个反相放大器的输入和输出此管脚可配置为使用内部振荡器要使用外部时钟源驱动器件时XTAL2可以不连接而由XTAL1驱动外部时钟信号无占空比的要求因为时钟通过触发器二分频输入到内部时钟电路但高低电平的最长和最短时间必须符合手册的规定时钟控制寄存器CKCON该器件提供通过一个SFR 位CKCON 的X2位和一个Flash 位保密块中的FX2控制选择6时钟/12时钟模式当X2置0时12时钟模式有效该位置1时系统切换到6时钟模式由于该功能是通过SFR 位实现的因此可以随时访问并修改需要注意的是将X2从0改为1将导致用户代码以两倍的速度执行因为所有的系统时间间隔都变成原来的1/2从6时钟模式变为12时钟模式会将运行代码的速度降低为1/2Flash 时钟控制位FX2可通过并行编程器编程取代X2位实现6时钟模式见表2表2FX2时钟模式位只能通过并行编程器设置X2位CKCON.0CPU 时钟模式擦除 0 12时钟模式默认擦除 1 6时钟模式 编程 X 6时钟模式可编程时钟输出可从P1.0编程输出50%占空比的时钟信号P1.0除了作为常规I/O 口外还有两个可选功能它可编程为1用于定时/计数器2的外部时钟输入2使用16MHz操作频率时12时钟模式下输出50%占空比的61Hz~4MHz时钟信号6时钟模式时为122Hz~8MHz要将定时/计数器2配置为时钟发生器C/T2(T2CON.1)必须清零而T2MOD中的T20E位必须置位要启动定时器2还必须将TR2(T2CON.2)置位时钟输出频率由振荡器频率和定时器2捕获寄存器的重新装入值确定公式如下振荡器频率n65536RCAP2H,RCAP2L此处n = 166时钟模式或3212时钟模式RCAP2H,RCAP2L RCAP2H和RCAP2L的内容作为一个16位无符号整数在时钟输出模式中定时器2的翻转将不会产生中断这和它作为波特率发生器时相似定时器2可同时作为波特率发生器和时钟发生器但需要注意的是波特率和时钟输出频率相同复位在振荡器工作时将RST脚保持至少两个机器周期高电平12时钟模式为24个振荡器周期6时钟模式为12振荡器周期可实现复位为了保证上电复位的可靠RST保持高电平的时间至少为振荡器启动时间通常为几个毫秒再加上两个机器周期复位后振荡器以12时钟模式运行当已通过并行编程器设置为6时钟模式时除外低功耗模式时钟停止模式静态设计使时钟频率可以降至0MHz(停止)当振荡器停振时RAM和SFR的值保持不变该模式允许逐步应用并可将时钟频率降至任意值以实现系统功耗的降低如要实现最低功耗则建议使用掉电模式空闲模式空闲模式见表3中CPU进入睡眠状态但片内的外围电路仍然保持工作状态正常操作模式的最后一条指令执行进入空闲模式空闲模式下CPU内容片内RAM和所有SFR保持原来的值任何被使能的中断此时程序从中断服务程序处恢复并继续执行或硬件复位与上电复位使用相同的方式启动处理器均可终止空闲模式掉电模式为了进一步降低功耗通过软件可实现掉电模式(见表3)该模式中振荡器停振并且在最后一条指令执行进入掉电模式降到2.0V时片内RAM和SFR保持原值在退出掉电模式之前Vcc必须升至规定的最低操作电压硬件复位或外部中断均可结束掉电模式硬件复位使所有的SFR重新设置但不改变片内RAM的值外部中断允许SFR和片内RAM都保持原值WUPD AUXR1.3从掉电唤醒使能或禁止通过外部中断唤醒掉电WUPD0禁止WUPD=1使能要正确退出掉电模式在Vcc恢复到正常操作电压范围之后复位或外部中断开始执行并且要保持足够长的时间 ( 通常小于10ms )以使振荡器重新启动并稳定下来使用外部中断退出掉电模式时INT0和INT1必须使能且配置为电平触发将管脚电平拉低使振荡器重新启动退出掉电模式后将管脚恢复为高电平一旦中断被响应RETI之后所执行的是进入掉电模式指令的后一条指令表3 空闲模式和掉电模式时外部管脚的状态器件在内部复位之前从停止处恢复程序正常运行时间为这段时间内片内硬件禁止对内部RAM但对当Idle模式被复位所中为了消除可能产生的误写操作应用模式指令后的指令不应执行写I/O口或写外部存储器操作进入件将ALE保持低电平模式时口处于悬浮状态持工作状态器件处于该模式时可用仿真器或测试CPU驱动电路执行正常复位时恢复正常操作定时器0和1的操作定时器0和1定时和计数功能由特殊功能寄存器TMOD的控制位C/T进行选择这两个定时/计数器有4种操作模式通过TMOD的M1和M0选择两个定时/计数器的模式01和2都相同模式3不同如下所述模式0将定时器设置成模式0时类似8048定时器即8 位计数器带32分频的预分频器图2所示为模式0工作方式此模式下定时器寄存器配置为13位寄存器当计数从全为1翻转为全为0时定时器中断标志位TFn置位当TRn=1同时GATE=0或INTn=1时定时器计数置位GATE时允许由外部输入INTn 控制定时器这样可实现脉宽测量TRn为TCON寄存器内的控制位图3该13位寄存器包含THn全部8个位及TLn的低5位TLn的高3位不定可将其忽略置位运行标志TRn不能清零此寄存器模式0的操作对于定时器0及定时器1都是相同的两个不同的GATE位TMOD.7和TMOD.3分别分配给定时器0及定时器1模式1模式1除了使用了THn及TLn全部16位外其它与模式0相同模式2此模式下定时器寄存器作为可自动重装的8位计数器TLn如图4所示TLn的溢出不仅置位TFn而且将THn内容重新装入TLn THn内容由软件预置重装时THn内容不变模式2的操作对于定时器0及定时器1是相同的模式3在模式3中定时器1停止计数效果与将TR1设置为0相同此模式下定时器0的TL0及TH0作为两个独立的8位计数器图5为模式3时的定时器0逻辑TL0C/T GATETR0TH0TF1此时TH0控制定时器中断可用于需要一个额外的位定时器的场合定时器时80C513个定时计数器当定时器时定时器可通过开关进入它仍可用作串行端口的波特或者应用于任何不要求中断的场合复位值2 1 0 置位时只有在计数器清零时计数器用作定时器或计数器清零则用作定时器从内部系统时钟输入置位用作计数器从脚输入定时器模式选择定时器模式无预分频器当溢出时将计数器控制位控制1控制位控制图1 定时/计数器0/1模式控制寄存器TMOD图2 定时/计数器0/1的模式013位定时/计数器InterruptTCON 地址88H 7 6 5 4 3 2 1 0 可位寻址 复位值00HTF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0位符号功能TCON.7 TF1定时器1溢出标志定时/计数器溢出时由硬件置位中断处理时由硬件清除或用软件清除TCON.6 TR1定时器1运行控制位由软件置位/清零将定时/计数器打开/关闭TCON.5 TF0定时器0溢出标志定时/计数器溢出时由硬件置位中断处理时由硬件清除或用软件清除TCON.4 TR0定时器0运行控制位由软件置位/清零将定时/计数器打开/关闭 TCON.3 IE1 中断1边沿触发标志当检测到外部中断1边沿时由硬件置位中断处理时清零TCON.2 IT1 中断1触发类型控制位由软件置位/清零以选择外部中断以下降沿/低电平方式触发TCON.1 IE0 中断0边沿触发标志当检测到外部中断0边沿时由硬件置位中断处理时清零TCON.0 IT0 中断0触发类型控制位由软件置位/清零以选择外部中断以下降沿/低电平方式触发图3 定时器/计数器控制寄存器TCON图4 定时/计数器0/1的模式28位自动重装Interrupt通过设置特殊功能寄存器位可将其作为定时见图6定时器有三种操作模式捕获递增或递减计数和波特率发生这三种模式由T2CON 中的位进行选择见表3捕获模式 通过EXEN2设置两个选项如果定时器16位由T2CON TF2溢出标志位该位可用于产生IE 中断使能位如果EXEN21与以上描述相同即外部输入时将定时器2TL2和的当前值各自捕获到RCAP2L EXF22溢出中断地址相同定时器中断服务程序通过查询来确定引起中断的事件捕获模式如图在该模式中TL2计数器仍以的负跳变或振荡频率的1/12或6时钟模式递增递减计数器位自动重装模式中2可通过C/T2配置为定时器计数的方向是由DCEN 递减计数使能位确定的DCEN 位于T2MOD 寄存器见图8中当DCEN 0时定时器2默认为向上计数当DCEN 1时定时器2可通过T2EX 确定递增或递减计数图9显示了当DCEN 0时定时器2自动递增计数在该模式中通过设置EXEN2位进行选择如果EXEN2定时器2递增计数到0FFFFH 并在溢出后将TF2置位然后将RCAP2L 和RCAP2H 中的16位值作为重新装载值装入定时器2RCAP2L 和RCAP2H 的值是通过软件预设的如果EXEN2116位重新装载可通过溢出或T2EX 从10的负跳变实现此负跳变同时将EXF2置位如果定时器2中断被使能则当TF2或EXF2置1时产生中断在图10中DCEN 1时定时器2可递增或递减计数此模式允许T2EX 控制计数的方向当T2EX 置1时定时器2递增计数计数到0FFFFH 后溢出并置位TF2还将产生中断如果中断被使能定时InterruptInterrupt器2的溢出将使RCAP2L 和RCAP2H 中的16位值作为重新装载值放入TL2和TH2当T2EX 置零时将使定时器2递减计数当TL2和TH2计数到等于RCAP2L 和RCAP2H 时定时器产生溢出定时器2溢出置位TF2并将0FFFFH 重新装入TL2和TH2当定时器2递增/递减产生溢出时外部标志位EXF2翻转如果需要可将EXF2位作为第17位在此模式中EXF2标志不会产生中断表4 定时器2工作方式图6 定时器/计数器2T2CON 控制寄存器溢出标志定时器溢出时置位必须由软件清除当TCLK 1时TF2将不会置位外部标志当EXEN21且的负跳变产生捕获或重装时置位定时器2中断使能时EXF21从中断向量处执行中断子程序EXF2位必须用软件清零在递增式DCEN 1中EXF2不会引起中断接收时钟标志RCLK 置位时定时器的溢出脉冲作为串行口模式模式的接收时钟RCLK 0时将定时器的溢出脉冲作为接收时钟发送时钟标志TCLK 置位时定时器和的发送时钟TCLK 0时将定时器的溢出脉冲作为发送时钟外部使能标志当其置位且定时器未作为串行口时钟时允的负跳变产生捕获或重装EXEN20时T2EX 的跳变对定时无效启动停止控制位置时启动定时器计数器选择定时器20内部定时器OSC/12或OSC/61外部事件计数器下降沿触发重装标志置位EXEN21T2EX 的负跳变产生捕获清零EXEN21时定时器2溢出或的负跳变都可使定时器自动重装RCLK 1TCLK 1时该位无效且定时器强制为溢出时自动重装图7 定时器2捕获模式保留将来之用2输出使能位定时器这些位在将来8051这种情况下以后用到复位时或非有效状态时而这些位为有效状态时它的值为1从保留位读到的值是不确定的图8 定时器2模式T2MOD 控制寄存器图9 定时器2自动重装模式DCEN=0EXEN 2T imer 2InterruptEXEN 2T IME R2图10 定时器2自动重装模式DCEN=1图11 定时器2波特率发生器模式波特率发生器模式寄存器T2CON 的位TCLK 和或RCLK 见表3允许从定时器1或定时器2获得串行口发送和接收的波特率当TCLK=0时定时器1作为串行口发送波特率发生器当TCLK=1时定时器2作为串行口发送波特率发生器RCLK 对串行口接收波特率有同样的作用通过这两位串行口能得到不同的接收和发送波特率 一个通过定时器1产生另一个通过定时器2产生图11所示为定时器2工作在波特率发生器模式与自动重装模式相似当TH2溢出时波特率发生器模式使定时器2寄存器重新装载来自寄存器RCAP2H 和RCAP2L 的16位的值寄存器RCAP2H 和RCAP2LR 的值由软件预置当工作于模式1和模式3时波特率由下面给出的定时器2溢出率所决定定时器2溢出速率16定时器可配置成定时或计数方式在许多应用上定时器被设置在定时方式C/T2*=0当定时器2作为定时器时它的操作不同于波特率发生器通常定时器2作为定时器它会在每个机器周期递增1/6或1/12振荡频率当定时器2作为波特率发生器时它会在每个状态周期递增例如1/2振荡频率这样波特率公式如下模式1和模式3的波特率=(UP C OUNTING R E LOADV ALUE)T2EX PINEXEN 2RXClock TXClockT imer 1OverflowNote availability of additional external interrupt.[65536n = 166或12时钟模式RCAP2H,RCAP2L)=RCAP2H 的内容为11所示定时器作为波特率发生器仅当寄存器RCLK 和或TCLK=1定作为波特率发生器才有效溢出并不置位TF2也不产生中断这样当定时器中断不必被禁止外部使能标志被置位在中1的转换会置位EXF2T2外部标志位但并不导致TH2重装载RCAP2H RCAP2L因当定时器用作波特率发生器时如果需要可用作附加的外部中断当计时器工作在波特率发生器模式下,则不要对TH2和进行读写每隔一个状态时间或定时器在此情况下对进行读写是不准确的可对RCAP2但不要进行写否则将导致自动重装错误当对定时器进行访问时应关闭定清零表列出了常用的波特率和如何用定时器得到这些波特率表由定时器外部时钟信号由波特率为2溢出率则波特率为[n[65536(RCAP2H,RCAP2L)]]此处 n = 166时钟模式或3212时钟模式f OSC = 振荡器频率 自动重装值可由下式得到RCAP2H,RCAP2L=65536-[fosc/(n波特率)]定时器/计数器2的设置除了波特率发生器模式T2CON 不包括TR2位的设置TR2位需单独设置来启动定时器表6表7给出了T2作为定时器和计数器的设置表6 T2作为定时器T2CON模式内部控制注1外部控制注216位重装00H 08H16位捕获01H 09H波特率发生器接收和发送相同波特率34H 36H只接收24H 26H只发送14H 16H 表7 T2作为计数器TMOD模式内部控制注1外部控制注216位02H 0AH自动重装03H 0BH注1.仅当定时器溢出时进行捕获和重装2.当定时/计数器溢出并且T2EX(P1.1)发生电平负跳变时产生捕获和重装定时器2用于波特率发生器模式除外全双工增强型UART标准UART操作串口为全双工结构表示可以同时发送和接收它还具有接收缓冲在第一个字节从寄存器读出之前可以开始接收第二个字节但是如果第二个字节接收完毕时第一个字节仍未读出其中一个字节将会丢失串口的发送和接收寄存器都是通过SFR SBUF进行访问的写入SBUF的数据装入发送寄存器对SBUF 的读操作是对物理上分开的接收寄存器进行访问串口有4种操作模式模式0串行数据通过RxD进出TxD输出时钟每次发送或接收以LSB最低位作首位每次8位波特率固定为MCU时钟频率的1/12模式1TxD脚发送RxD脚接收每次数据为10位一个起始位08个数据位LSB在前及一个停止位1当接收数据时停止位存于SCON的RB8内波特率可变由定时器1溢出速率决定模式2TxD脚发送RxD脚接收每次数据为11位一个起始位08个数据位LSB在前一个可编程第9位数据及一个停止位1发送时第9个数据位SCON内TB8位可置为0或1例如将奇偶位PSW内P位移至TB8接收时第9位数据存入SCON的RB8位停止位忽略波特率可编程为MCU时钟频率的1/32或1/64由PCON内SMOD1位决定模式3TxD脚发送RxD脚接收每次数据为11位一个起始位08个数据位LSB为首位一可编程的第9位数据及一个停止位1事实上模式3除了波特率外均与模式2相同其波特率可变并由定时器1溢出率决定在上述4种模式中发送过程是以任意一条以写SBUF作为目标寄存器的指令开始的模式0时接收通过设置R1=0及REN=1初始化其它模式下如若REN=1则通过起始位初始化多机通信UART模式2及模式3有一个专门的应用领域即多机通信在这些模式时接收为9位数据第9位存入RB8接下来为停止位UART可编程为接收到停止位时仅当RB8=1时串口中断才有效可通过置位SCON内SM2位来选择这一特性下述为多机系统利用这一特性的一种方法当主机需要发送一数据块给数台从机之一时首先发送出一个地址字节对目标从机进行识别地址与数据字节通过第9位数据区别其中地址字节的第9位为1而数据字节为0SM2=1时数据字节不会使各从机产生中断而地址字节则令所有从机中断这样各从机可以检查接收到的数据判断是否被寻址被寻址的从机即可清除SM2位以准备接收随后数据内容未被寻址的从机的SM2位仍为1则不理睬随后数据继续各自工作模式0时SM2无效模式1时SM2用于检验停止位是否有效在模式1时如果SM2=1那么只有接收到有效的结束位才可产生接收中断串行端口控制寄存器SCON串行端口控制及状态寄存器即SCON如图12所示其中包括模式选择位以及发送和接收的第9位数据TB8及RB8以及串行端口中断位TI及RISCON 地址98H7 6 5 4 3 2 1 0可位寻址复位值 00H SM0/FE SM1 SM2 REN TB8 RB8 TI RI 位符号功能SCON.7 FE 帧错误位当检测到一个无效停止位时通过UART接收器设置该位但它必须由软件清零要使该位有效PCON寄存器中的SMOD0位必须置1SCON.7 SM0 和SM1定义串口操作模式要使该位有效PCON寄存器中的SMOD0必须置0SCON.6 SM1 和SM0定义串行口操作模式见下表SM0 SM1 UART模式波特率0 0 0同步移位寄存器fosc/12或fosc/6取决于时钟模式0 1 18位UART 可变1 0 29位UART fosc /64或fosc /321 1 39位UART 可变SCON.5 SM2 在模式2和3中多处理机通信使能位在模式2或3中若SM2=1且接收到的第9位数据RB8是0则RI接收中断标志不会被激活在模式1中若SM2=1且没有接收到有效的停止位则RI不会被激活在模式0中SM2必须是0SCON.4 REN 允许接收位由软件置位或清除REN=1时允许接收REN=0时禁止接收SCON.3 TB8 模式2和3中发送的第9位数据可以按需要由软件置位或清除SCON.2 RB8 模式2和3中已接收的第9位数据在模式1中或sm2=0RB8是已接收的停止位在模式0中RB8未用SCON.1 TI 发送中断标志模式0中在发送完第8位数据时由硬件置位其它模式中在发送停止位之初由硬件置位在任何模式中都必须由软件来清除TISCON. 0 RI 接收中断标志模式0中接收第8位结束时由硬件置位其它模式中在接收停止位的中间时刻由硬件置位在任何模式(SM2所述情况除外)必须由软件清除RI图12 串行控制寄存器SCON波特率操作模式0的波特率是固定的为fosc/12模式2的波特率是MCU 时钟/64或MCU 时钟/32取决于PCON 寄存器中的SMOD1位的值若SMOD1=0复位值波特率为MCU 时钟/64若SMOD1=1波特率为MCU时钟/32在80C51中模式1和模式3的波特率由定时器1的溢出速率决定使用定时器1作波特率发生器 当定时器1用作波特率发生器模式1和3中波特率由定时器1的溢出速率和SMOD1的值决定在此应用中定时器1不能用作中断定时器1可以工作在定时或计数方式和3种工作模式中任何一个在最典型应用中它用作定时器方式工作自动重装载模式TMOD 的高半字节为0010B 它的波特率值由下式给出可以定时器1的中断实现非常低的波特率将定时器配置为16位定时器TMOD 的高半字节为0001B并使用中断进行16位软件重装图13列出了几个常用的波特率以及如何从定时器1获得OS C20 MHz X SMOD图13 由定时器1产生的通用波特率UART 模式0串行数据由RxD 端出入TxD 输出同步移位时钟发送或接收的是8位数据低位在先其波特率固定为MCU 时钟的1/12图14是串行口模式0的功能方框简图及相关的时序图执行任何一条把SBUF 作为目的寄存器的指令时就开始发送S6P2时刻的写SBUF 信号将1装入发送移位寄存器的第9位并通知发送控制部分开始发送写SBUF 信号有效后一个完整的机器周期后SEND 端有效SEND 使能RxD P3.0端送出数据TxD P3.1输出移位时钟每个机器周期的S3S4及S5状态内移位时钟为低电平而S6S1及S2状态内为高在SEND 有效时每一机器周期的S6P2时刻发送移位寄存器的内容右移一位数据位向右移时左边添加零当数据字节最高位MSB 移到移位寄存器的输出端时其左边是装入1的第9位再左的内容均为0, 此时通知Tx 控制模块进行最后一位移位处理后禁止SEND 并置位T1, 所有这些步骤均在写入SBUF 后第10个机器周期的S1P1时进行的接收初始化条件是REN=1及R1=0下一机器周期的S6P2时RX 控制单元向接收移位寄存器写入1111 1110并在下一个时钟使RECEIVE 端有效RECEIVE 使能移位时钟转换P3.1功能移位时钟在每个机器周期的S3P1及S6P1跳变在RECEIVE 有效时每一机器周期的S6P2时刻接收移位寄存器内容向左移一位从右移位进来的值是该机器周期S5P2。
单片机89C51特殊功能寄存器
高手从菜鸟忽略作起之(三)单片机共有21个特殊功能寄存器,下面从其功能,位结构,地址,读写方法对其作详细介绍。
一,特殊功能寄存器总述。
二,特殊功能寄存器分类:
1.CPU控制类(6个):Acc,B,PSW,DPL,DPH,SP.
2.中断控制类(2个):IE,IP.
3.计数/定时类(6个):TMOD,TCON,TL0,TL1,TH0,TH1.
4.并口端口类(4个):P0,P1,P2,P3.
5.串口端口类(2个):SCON,SBUF.
6.电源管理类(1个):PCON.
三,特殊功能寄存器详述:
1.CPU控制类(6个):Acc,B,PSW,DPL,DPH,SP
1.1 Acc:累加器,可按位,字节访问。
1.2 B:辅助寄存器,用于进行乘除运算。
P:奇偶校验位:P=0:1的个数为奇数;P=1,1的个数为偶数。
---:保留位,没使用。
OV:Over flow,溢出标志,OV=0:没溢出;OV=1:溢出。
Rs0:Regedit select 0,寄存器选取0.
RS1:Regedit select 1,寄存器选取1。
F0:User Flag bit:用户自定义位。
Ac: Auxiliary Carry,辅助进位标志,由低4位运算时,是否有向高4位进位。
Cy:Carry,进位标志。
字节运算时,是否有进位。
1.4 DPTL:Data Pointer Register Low,数据指针寄存器低8位。
1.5 DPTH:Data Pointer Register High,数据指针寄存器高8位。
1.6 SP: Stock Pointer:栈指针寄存器。
2.中断控制类寄存器(2个):IE,IP
EX0: Enable Extra 0 ,INT0 中断允许位。
ET0: Enable Timer 0,C/T0 中断允许位。
EX1: Enable Extra 1 ,INT1 中断允许位。
ET1: Enable Timer 1,C/T1 中断允许位。
ES: Enable serial ,串行中断允许位。
ET2: Enable Timer 2,C/T2 中断允许位。
---: 保留。
EA: Enable All:全部中断允许位。
PX0: Priority Extra 0 , INT0 中断优先位。
PT0: Priority Timer 0 ,C/T0中断优先位。
PX1: Priority Extra 1, INT1 中断优先位。
PT1: Priority Timer 1, C/T1中断优先位。
PS: Priority Serial ,串行中断优先位。
PT2: Priority Timer 2, C/T2中断优先位。
---: 保留1
---: 保留2
3.计数/定时类(6个):TMOD,TCON,TL0,TL1,TH0,TH1
T0_M0: C/T0 M0 Bit , C/T0 模式设置M0位。
T0_M1: C/T0 M1 Bit , C/T0 模式设置M1位。
T0_C/T: C/T0 C or T select ,C/T0计数或计时选取位。
T0_Gate: C/T0 Fire Mode ,运行方式选取位。
T1_M0: C/T1 M0 Bit , C/T1 模式设置M0位。
T1_M1: C/T1 M1 Bit , C/T1 模式设置M1位。
T1_C/T: C/T1 C or T select , C/T1计数或计时选取位。
T1_Gate: C/T1 Fire Mode , 运行方式选取位。
IT0: Interrupt Timing 0 ,C/T0激活模式,0脉冲,1下降沿。
IE0: Interrupt Enable 0 ,C/T0使能。
IT1: Interrupt Timing 1 , C/T1激活模式,0脉冲,1下降沿。
IE1: Interrupt Enable 1 , C/T1使能。
TR0: Timer Run 0 ,C/T0 中断发生位。
TF0: Timer Over Flow 0 ,C/T0 中断溢出。
TR1: Timer Run 1 , C/T1 中断发生位。
TF1: Timer Over Flow 1 , C/T1 中断溢出。
3.3TL0:C/T0初值设置低8位
3.4TL1:C/T1初值设置低8位
3.5TH0:C/T0初值设置高8位
3.6TH1:C/T1初值设置高8位
4.并口端口类(4个):P0,P1,P2,P3
4.1P0: 作I/O时,需上拉电阻;作地址低8位。
4.2P1:普通I/O.
4.3P2:作I/O,作地址高8位。
4.4P3:作I/O,具有第2功能。
5.串口端口类(2个):SCON,SBUF
TI: Transform Interrupt,数据发送中断位。
RB8: Receive Bit 8,模式2、3时接收第8位。
TB8: Transform Bit 8,模式2、3时发送第8位。
REN: Run Enable,运行使能位。
SM2: Serial Mode 2,模式设定M2。
SM1: Serial Mode 1, 模式设定M2。
SM0: Serial Mode 0, 模式设定M2。
5.2SBUF:串口缓冲寄存器
接收和发送同用此缓存寄存器。
PD: power detach ,0=正常,1=掉电
GF0: general Flag 0,通用标志位0
GF1: general Flag 1,通用标志位1
P0F:其它用。
LVDF:其它用
SM0:晶振模式,0=正常,1=加倍
SM1: 晶振模式,0=正常,1=加倍。