51手记之STC
1.基本特性
工作频率范围:0-35MHZ,每个机器周期为一个时钟周期,指令执行速度全面提升,最快的提升24倍,最慢的提升3倍。
内部集成MAX810专用复位电路,内置一个对VCC进行掉电检测的掉电检测电路;
时钟源:外部高精度晶体/时钟,内部R/C振荡器;用户在下载程序时选择使用外部晶体/时钟或内部R/C振荡器;
2.存储器
1)程序存储器
用户程序存储器空间:1/2/3/4/5/6/8/16/20/32/40/48/52/56/60/62K字节
支持ISP(在系统可编程)/IAP(在应用可编程),可通过串口(RXD/P3.0,TXD/P3.1)直接下载用户程序,
2)数据存储器
片上集成256字节片内暂存和512字节/1K字节的XRAM;XRAM通过清零AUXR.XRAM来使能。
3.通用I/O口
有5个8位I/O口:P0-P4;复位后所有I/O口为准双向口/弱上拉(同普通8051的P1口)。
所有I/O口均可由软件配置成4种工作类型之一:准双向口、推挽输出、仅为输入(高阻)、开漏输出;由寄存器PnM1,PnM0设置。
普通I/O口上电为弱上拉输出高电平,在I/O口处加一个下拉电阻可使I/O口复位时为低电平。
1)准双向口
输出1时驱动能力很弱,输出0时驱动能力很强,准双向口读外部状态前,要下锁存为1,才可读到外部正确的状态。
2)推挽输出
当锁存器为1时提供持续的强上拉。
3)仅为输入(高阻)
输入口带有一个施密特触发输入以及一个干扰抑制电路。
4)开漏输出
作为一个逻辑输出时,必须有外部上拉,一般通过电阻外接到VDD,这种方式的下拉与准双向口同,开漏端口带有一个施密特触发输入以及一个干扰抑制电路。
4.中断系统
STC11/10系列提供7个中断源2级中断优先级,STC12C56/STC12C54系列提供7个中断源4级中断优先级,STC12C5A系列提供10个中断源4级中断优先级;中断由中断控制寄存器IE,IE2和中断优先级寄存器IP,IPH,IP2H配置。
中断源中断向量中断优先权外部中断0 03H 0 定时/计数器0 0BH 1 外部中断1 13H 2 定时/计数器1 1BH 3 串行口 23H 4 ADC/SPI 2BH 5 LVD33H 6 PCA 3BH 7
串行口2 33H 8
SPI 3BH 9
PCA、RXD、T1、T0输出脚可通过寄存器WAKE_CLK0配置为外部中断使用。
5.定时器
有2个16位专用定时器T0、T1;PCA也可用作定时器使用;还有一个看门狗定时器;
定时器0和定时器1完全兼容传统8051;定时器计数时钟源可选择为系统时钟的1/12或系统时钟,通过AUXR.T0x12和AUXR.T1x12设置(为0时同传统51,为1时不分频)。
看门狗由寄存器WDT_CONTR控制,置位WDT_CONTR.CLR_WDT看门狗将重新计数。
看门狗溢出时间=(12*分频值*32768)/系统时钟
6.串行口
2个全双工串行口,功能同标准51;
串口2使用独立波特率发生器,串口1可选择使用定时器1或独立波特率发生器(AUXR.S1BRS为0时使用定时器1,为1时共用独立波特率发生器);独立波特率发生器的计数时钟源为系统时钟的1/12或系统时钟(AUXR.BRTx12为0时使用系统时钟的1/12,为1时使用系统时钟);两个串口都使用独立波特率发生器时,它们的波特率相同。
独立波特率发生器复位后是关闭的,需通过AUXR.BRTR=1使能。它有一个8位独立波特率计数器BRT。
串行口2波特率计算公式:模式0波特率=系统时钟/12或系统时钟/2(AUXR.UART_M0x6为0时同标准51)
模式1,3波特率=f/(256-BRT),f为波特率发生器计数器时钟源频率
模式2波特率=2S2SMOD*系统时钟/64
7.PCA(可编程计数器阵列)
含有一个独立的16位定时器,2/4个16位捕获/比较模块与之相连,每个模块可编程工作在4种工作模式:上升/下降沿捕获、软件定时器、高速输出、可调制脉冲输出。
PCA定时器的时钟源由CMOD设置,由PCA控制寄存器CCON控制。
每个PCA模块的工作模式由寄存器CCAPMn来设置:
1)捕获模式
CCAPMn=0x20或0x10或0x30,
对模块外部CEXn输入的跳变进行采样,当采样到有效跳变时,PCA硬件就将PCA计数阵列CH,CL的值装载到模块的捕获寄存器CCAPnH,CCAPnL中。
2)软件定时器模式
CCAPMn=0X48,
3)高速输出模式
CCAPMn=0X4C,
4)脉宽调节(PWM)模式
CCAPMn=0x42,
由于所有的PCA模块共用同一个PCA定时器,所以它们的输出频率相同,各个模块的输出占空比是独立变化的,当CL的值小于(EPCnL,CCAPnL)时输出为低,否则输出高。PWM的输出频率=PCA时钟频率/256。
8.A/D转换
有8路10位高精度ADC,速度均可达到100KHZ;8路电压输入型A/D,可做温度检测,电池电压检测,按键扫描,频谱检测。
需作为A/D使用的口需先将其设置为开漏输出或仅为输入模式,
A/D转换由寄存器ADC_CONTR控制,转换结果存放在
51手记ST 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)