51手记之STC

发布者:genius6最新更新时间:2016-07-26 来源: eefocus关键字:51手记  STC 手机看文章 扫描二维码
随时随地手机看文章
        STC系列单片机指令代码完全兼容标准8051,但速度快8-12倍;不同型号单片机区别:XRAM大小、外设功能等。
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,才可读到外部正确的状态。
51手记之STC - 蓬蒿人 - 一天一计划
2)推挽输出
        当锁存器为1时提供持续的强上拉。
51手记之STC - 蓬蒿人 - 一天一计划
3)仅为输入(高阻)
        输入口带有一个施密特触发输入以及一个干扰抑制电路。
51手记之STC - 蓬蒿人 - 一天一计划
4)开漏输出
        作为一个逻辑输出时,必须有外部上拉,一般通过电阻外接到VDD,这种方式的下拉与准双向口同,开漏端口带有一个施密特触发输入以及一个干扰抑制电路。
51手记之STC - 蓬蒿人 - 一天一计划
 
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

 

        LVD                   33H                    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控制。

51手记之STC - 蓬蒿人 - 一天一计划

 

       每个PCA模块的工作模式由寄存器CCAPMn来设置:

1)捕获模式

       CCAPMn=0x20或0x10或0x30,

51手记之STC - 蓬蒿人 - 一天一计划

 

       对模块外部CEXn输入的跳变进行采样,当采样到有效跳变时,PCA硬件就将PCA计数阵列CH,CL的值装载到模块的捕获寄存器CCAPnH,CCAPnL中。

2)软件定时器模式

       CCAPMn=0X48,

51手记之STC - 蓬蒿人 - 一天一计划

 

3)高速输出模式

       CCAPMn=0X4C,

51手记之STC - 蓬蒿人 - 一天一计划

 

4)脉宽调节(PWM)模式

       CCAPMn=0x42,

51手记之STC - 蓬蒿人 - 一天一计划

         由于所有的PCA模块共用同一个PCA定时器,所以它们的输出频率相同,各个模块的输出占空比是独立变化的,当CL的值小于(EPCnL,CCAPnL)时输出为低,否则输出高。PWM的输出频率=PCA时钟频率/256。

8.A/D转换

        有8路10位高精度ADC,速度均可达到100KHZ;8路电压输入型A/D,可做温度检测,电池电压检测,按键扫描,频谱检测。

        需作为A/D使用的口需先将其设置为开漏输出或仅为输入模式,

        A/D转换由寄存器ADC_CONTR控制,转换结果存放在ADC_DATA(高8位)和ADC_LOW2(低2位)

9.EEPROM使用

        片上集成有数据FLASH区,可通过IAP方式对其进行读写和擦除操作。

        相关寄存器IAP_CONTR,IAP_CMD、IAP_TRIG、IAP_DATA、IAP_ADDRH、IAP_ADDRL

        1)擦除操作
        IAP_ADDRH=addrh;        
        IAP_ADDRL=addrl;        
        IAP_CONTR=0X81;
         IAP_CMD=0x03;
        IAP_TRIG=0X5A;
        IAP_TRIG=0XA5;        
        2)读操作        
        IAP_ADDRH=addrh;
         IAP_ADDRL=addrl;
        IAP_CONTR=0X81;
        IAP_CMD=READ;
         IAP_TRIG=0X5A;
        IAP_TRIG=0XA5;
        _nop_();
        _nop_();
        *rdata=IAP_DATA;
        3)写操作        
        IAP_DATA=*wdata;
        IAP_ADDRH=addrh;
        IAP_ADDRL=addrl;
        IAP_CONTR=0X81;
        IAP_CMD=WRITE;
        IAP_TRIG=0X5A;
        IAP_TRIG=0XA5;
关键字:51手记  STC 引用地址:51手记之STC

上一篇:51手记之MEGAWIN
下一篇:51手记之winbond(二)

推荐阅读最新更新时间:2024-03-16 15:01

STC学习板程序烧录说明
以下是烧录程序的主要界面。烧录过程非常简单,操作也非常简单。图中红色的五个大数字就表示了整个过程。简简单单的五步就可以了(实际上只需4步)。   启动本烧录程序后,第一步就是选择烧录器件。本烧录软件支持STC全系列的51 单片机 芯片,因此,第一步必须选择相对应的型号。由于本实验板选用的单片机芯片就是本烧录软件首次启动默认的型号,所以,本项一般都不需要选择。   另外,“AP Memory”是指该芯片的内存大小和起止地址,根据器件型号自动更改,不必理会。 字串2   选择了器件型号,第二步就应该选择将要被烧录的HEX机器码文件。HEX文件由 单片机 开发环境输入、编辑代码,最后编绎产生。   至于如何产生HEX文件,
[单片机]
<font color='red'>STC</font>学习板程序烧录说明
基于STC12C5A60S2与AD620的小信号采集系统
在许多电子设备中需要对微弱信号进行高精度处理,因此需要采用仪器放大器,常见的有传统三运放仪器放大器和单片仪器放大器。由于单片仪器放大器的高精度、低噪声及易于控制、设计简单等特点,深受设计者喜爱。 AD620作为一款单片仪器放大器,具有低功耗,通过外部电阻可实现高增益的芯片,同时具有低输入漂移和温漂等特点。 STC12C5A60S2是一款具有A/D转换功能的新一代8051单片机,指令代码完全兼容传统8051,但速度快8~12倍。具有8路高速10位输入型A/D转换(250 k/s),可做温度检测、电池电压检测、按键扫描、频谱检测等。用户可将任何一路设置为A/D转换,不需作为A/D使用的口可继续作为I/O口使用。 文中介
[单片机]
基于<font color='red'>STC</font>12C5A60S2与AD620的小信号采集系统
蓝桥杯STC15单片机复习——DS18B20
前言 温度检测也是蓝桥杯的常考点,有时候需要显示小数点后一到两位,有时候只需要显示整数位(一般是要显示的东西太多了小数放不下了)。由于比赛的时候官方直接给出看底层的驱动,就不再去纠结底层实现的原理和方法了,只需要针对数据手册分析温度解析与获取部分即可。 实现 国信长天的开发板上的DS18B20接线如上图所示,其实官方给的底层驱动已经定义好了引脚,当然看原理图检查也是不可或缺的一步。 根据数据手册写出,在每次对DS18B20操作之前,我们都需要对其进行一个初始化,初始化时序如上图所示。 相关命令翻译已经给出,简而言之就是:使用18B20获取温度,我们需要启动其温度转换(0x44单个温度转换),然后才能使用读取命
[单片机]
蓝桥杯<font color='red'>STC</font>15单片机复习——DS18B20
STC12C5A60S2单片机-双串口通信
STC12C5A60S2 单片机 是一款功能比较强大的单片机,它拥有两个全双工串行通信接口,串口1的功能及操作与传统51单片机串行口相同;特殊的是STC12C5A60S2单片机内部有一个独立波特率发生器,串口1可以使用定时器1作为波特率发生器,也可以使用独立波特率发生器作为波特率发生器;而串口2只能使用独立波特率发生器作为波特率发生器。 芯片:STC12C5A60S2 晶振:22.1184MHz 波特率:9600bps 引脚定义:串行口1: 发送————TxD/P3.1; 接收————RxD/P3.0 串行口2: 发送————TxD2/P1.3;接收————RxD2/P1.2 功能描述:STC12双串口通信(中断
[单片机]
STC89C52单片机RAM模式
STC89C52 单片机内变量、函数参数等数据在RAM中的储存模式: small、compact、large 前边介绍单片机资源的时候,我们提到过 STC89C52 共有 512 字节的 RAM,是用来保存数据的,比如我们定义的变量都是直接存在 RAM 里边的。但是单片机的这 512 字节的 RAM在地位上并不都是平等的,而是分块的,块与块之间在物理结构和用法上都是有区别的,因此我们在使用的时候,也要注意一些问题。 51 单片机的 RAM 分为两个部分,一块是片内 RAM,一块是片外 RAM。标准 51 的片内 RAM 地址从 0x00H~0x7F 共 128 个字节,而现在我们用的 51 系列的单片机都是带扩展
[单片机]
<font color='red'>STC</font>89C52单片机RAM模式
STC89C52RC单片机8位流水灯程序
电路很简单就不用画了 就是P0口上个接上啦电阻 然后接8个led灯 #include reg52.h //头文件 /***********宏定义*******************/ #define uint unsigned int #define uchar unsigned char /*********数组定义并赋值************/ uchar LED ={ 0XFE,0XFD,0XFB,0XF7, 0XEF,0XDF,0XBF,0X7F }; /**********延时子程序***************/ void delayms(uint xms) { uint i,j; for(i=xms;i 0;
[单片机]
KEIL里增加STC器件列表并与自带器件列表共存的方法
在STC官网上看到的方法是先备份KEIL安装目录下面的UV2.CDB或者UV3.CDB文件(在文件夹UV2或者UV3里面),然后用STC提供的同名的CDB文件代替,这个方法很简单,但缺点是在器件选型时,只能选择STC单片机,其他的都没了,对于这一点,让人很讨厌。后来我在网上搜了一下,发现上海普芯达电子有限公司提供了另外一种方法http://www.chipswinner.com/case/08591340574176.html,我在KEIL4下面已经验证过,这个方法可行,具体如下: 1、在Keil/C51/INC下新建目录 STC 文件夹, 把所有STC单片机的头文件拷贝到 STC 目录下。 3、下载
[单片机]
KEIL里增加<font color='red'>STC</font>器件列表并与自带器件列表共存的方法
STC单片机内置ADC的使用方法
STC系列单片机中的STC89LE516AD/X2提供了8路8位精度的高速A/D转换器,位于P1口上,从而省去了片外ADC的麻烦。这8路ADC为电压输入型,可做按键扫描,电池电压检测,频谱检测等。ADC转换过程需要17个机器周期。通过对相关功能寄存器的适当配置,就可以控制其工作。下面就对相关功能寄存器进行介绍。 A/D转换寄存器总表: 寄存器 地址 名称 7 6 5 4 3 2 1 0 初始初
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved