文档库 最新最全的文档下载
当前位置:文档库 › STC12C5410AD

STC12C5410AD

STC12C5410AD
STC12C5410AD

STC12C5410AD

STC12C5410系列单片机是由宏晶科技生产的单时钟/机器周期(1T)的兼容8051内核单片机,是高速/低功耗的新一代8051单片机,全新的流水线/精简指令集结构,内部集成MAX810专用复位电路。其主要性能特点如下:

1.增强型1T流水线/精简指令集结构8051CPU

2.工作电压:5.5V‐3.4V(5V单片机)/3.8V‐2.0V(3V单片机)

3.工作频率范围:0‐35MHz,相当于普通8051的0‐420MHz

4.用户应用程序空间12K/10K/8K/6K/4K/2K字节

5.片上集成512字节RAM

6.通过I/O口(27/23个),复位后为:准双向口/弱上拉(普通8051传统I/O口)

可设置成四种模式:准双向口/弱上拉,推挽/强上拉,仅为输入/高阻,开漏

7.ISP(在系统可编程)/ASP(在应用可编程),无需专用编程器

可通过串口(P3.0/P3.1)直接下载用户程序,数秒即可完成一片

8.EPROM功能

9.看门狗

10.内部集成MAX810专用复位电路(外部晶振20M以下时,可省外部复位电路)11.时钟源:外部高精度晶体/时钟,内部R/C振荡器

用户在下载用户程序时,可选择是使用内部R/C振荡器还是外部晶体/时钟

常温下内部R/C振荡器频率为:5.65MHz~5.95MHz

精度不高时,可选择使用内部时钟,但因为有温漂,应认为是5MHz~6.5MHz

12.共2个16位定时器/计数器

13.PWM(4位)/PCA(可编程计数器阵列),也可用来在实现4个定时器

14.ADC,10位精度ADC,共8路

15.通用异步串行口(UART)

16.SPI同步通信口,主模式/从模式

17.工作温度范围:0‐75℃/-40‐+85℃

18.封装:PDIP—28,SOP—28,PDIP—20,SOP—20,TSSOP—20,PLCC—32

STC12C5410AD单片机中包含中央处理器、程序存储器(Flash)、数据存储器(RAM)、EEPROM、定时/计数器、I/O接口、UART接口和中断系统、SPI接口、高速A/D转换模块、PWM(或捕捉/比较单元)以及硬件看门狗、电源监控、片内RC振荡器等模块。可以说STC12C5410AD单片机几乎包含了数据采集和控制中所需的所有单元模块,可称得上一个片上系统(SOC),可以很容易地构成典型的测控系统。

(1) STC12系列单片机的典型结构

STC 12系列单片机是宏晶科技公司新的低功耗16位Flash单片机,它的16级中断、高效寻址方式、10K大容量Flash, EEPROM, A/D转换、硬件乘法器、硬件脉宽调制器(PWM)等功能特点,较好的实现了强大的功能与超低功耗的结合,因此具有很好的性价比和应用适应性。

STC12系列有6种型号:分别是STC12C5412AD, STC12C5410AD,STC12C5408AD、STC

12C5406AD、STC 12C5404AD、和STC 12C5402AD。它们区别在于Flash的容量大小,本设计所用到的STC12C5412AD的Flash容量为10K。该单片机的管脚结构如图3-15所示。来源:东海仪表网

(2)基本配置

STC12C5412AD单片机除了具有STC12系列单片机共有特点外,还具有一些自身特点,对其一些基本配置做以介绍:

1.Flash存储器

STC12C5412AD Flash存储器为l 0KB。Flash存储器主要用作程序存储,可经计算机串口接口下载程序;程序运行时能对其中的1段或多段进行擦/写操作,因此兼有数据存储器功能。Flash可用于程序数据保存,实现掉电保护,Flash存储器可以按字或字节读写,最小擦除单位为1段,经过擦除的位为“1",写入位为“0”。

2.脉宽调节模式(PWM)

所有PCA模块都可用作PMW输出。输出频率取决于PCA定时器的时钟源。由于所有模块共用仅有的PCA定时器,所有它们的输出频率相同。各个模块的输出占空比是独立变化的,与使用的捕获寄存器{EPCnL,CCAPnL}有关。当CL SFR的值小于{EPCnL, CCAPnL}时,输出为低,当PCA CL SFR的值等于或大于{EPCnL, CCAPnL}时,输出为高。当CL的值由FF变为00溢出时,{EPCnH, CCAPnH}的内容装载到{EPCnL,CCAPnL}中。这样就可实现无干扰地更新PWM。要使能PWM模式,模块CCAPMn寄存器的PWMn和ECOMn位必须置位。

3.I/O口工作类型设置

STC12C5412AD带有24个I/O引脚,它的I/O与传统的I/O不同,每个I/O口均可由软件设置成4种工作类型之一,使得功能口和通用I/O口复用。4种类型分别为:准双向口(标准8051输出模式)、推挽输出、仅为输入(高阻)和开漏输出功能。在对同一个I/O口进行操作前要选择其要实现的功能,这样大大地增强了端口的功能和灵活性。其中一些I/O口还可以与STC12C5410AD中的特殊模块相结合完成更为复杂的工作。如与捕获比较模块相结合可以实现串行通信,与A/D模块结合实现A/D转换等。此外,STC12C5410AD的I/O端口电气特性也十分突出,几乎所有的I/O口都有6mA的驱动能力,对于一般的液晶显示屏、蜂鸣器可以直接驱动而无需辅助电路。许多端口内部都集成了上拉电阻,可以方便地与外围器件相接。

● 准双向口输出配置

准双向口输出类型可用作输出和输入功能而不需重新配置口线输出状态。这是因为当口线输出为1时驱动能力很弱,允许外部装置将其拉低。当引脚输出为低时,它的驱动能力很强,刚一吸收相当大的电流。准双向口有3个上拉晶体管适应不同的需要。

在3个上拉晶体管中,有1个上拉晶体管称为“弱上拉”,当口线寄存器为1且引脚本身也为1时打开。此上拉提供基本驱动电流使准双向口输出为1。如果一个引脚输出为1而由外部装置下拉到低时,弱上拉关闭而“极弱上拉”维持开状态,为了把这个引脚强拉为低,外部装置必须有足够的灌电流能力使引脚上的电压降到门槛电压以下。

第2个上拉晶体管,称为“极弱上拉”,当口线锁存为1时打开。当引脚悬空时,这个极弱的上拉源产生很弱的上拉电流将引脚上拉为高电平。

第3个上拉晶体管称为“强上拉”。当口线锁存器跳变到1时,这个上拉用来加快准双向口由逻辑4到逻辑1转换。当发生这种情况时,强上拉打开约2个机器周期以使引脚能够迅速地上拉到高电平。

●推挽输出配置

推挽输出配置的下拉结构与开漏输出以及准双向口的下拉结构相同,但当锁存器为1时提供持续的强上拉。推挽模式一般用于需要更大驱动电流的情况。

●仅为输入(高阻)配置

仅为输入时,不提供吸入20mA电流的能力。.开漏输出配置当口线锁存器为0时,开漏输出关闭所有上拉晶体管。当作为一个逻辑输出时,这种配置方式必须有外部上拉,一般

通过电阻外接到。这种方式的下拉与准双向口相同。开漏端口带有一个施密特触发输入以及一个干扰抑制电路。

4. AD模数转换寄存器

STC12C5412AD单片机的A/D转换口在P1口(P1.7-P1.0),有8路10位高速A/D转换器,STC12C5410AD系列是12位精度的A/D,速度均可达到100KHz。8路电压输入型A/D,可以完成温度检测、电池电压检测、按键扫描、频谱检测等功能。上电复位后P1口是弱上拉型的I/O口,可以通过软件设置将8路中的任何一路设置为A/D转换,不需作为A/D使用的口可继续作为I/O口使用。这样,A/D转换和I/O口可以灵活的运用,节省了软件及时间。

5.有配套的仿真开发工具

STC12C5412AD的Flash存储器给用户的开发带来方便。用户可以将芯片焊接在线路板上后进行下载程序、调试程序和修改程序。同时,STC12C5410AD的片内己集成了程序断点控制等逻辑功能。因此,它的开发工具较为简单,只需1套PC环境下的调试软件和1个连接于并口的仿真器。仿真器与STC12C5410AD经串口连接。因此,用户只要在设计应用系统时为调试需要预留好STC12C5410AD的串口接口的引出插座,即可实现系统的程序下载调试、系统现场编程硬件仿真或软件升级功能,而且无需外加编程电压。

MLX90615和STC12C5604AD的SMBusPWM 通信

1 目的 该文档的主要目的是描述怎样实现单片机和红外温度计MLX90615的SMBus通信。代码是基于 STC12C5604AD单片机的。实例给出了由C语言实现MLX90615读取物体温度,写入数据到MLX90615的功能。 2 C 代码 2.1 由 SMBus 读取数据,对 MLX90615dec2hex.c digitalLED.c (在数字 起来。 主文件 红外温度计— MLX90615温度数据的读取,对 数值并在数字LEDs上显示温度的程序,但是此为可选项,用户可根据自己的应用另行选择其他方式。 //----------------------------------------------------------------------------------------------------------------------------------------// 头文件 //----------------------------------------------------------------------------------------------------------------------------------------// #include #include "stdio.h" #include "intrins.h" #include "string.h" #include "SMBus_CM.h" //引用SMBus_CM.h文件(包含起始状态,终止状态,发送,接收字节等) #include "SMBus_OP.h" //引用SMBus_OP.h文件(包含由MLX90615中读取数据和写入数据) #include "digitalLED.h" //引用digitalLED.h文件以在数字LEDs上显示温度读数 #include "CalTem.h" //引用CalTem.h文件来根据十六进制数值计算温度 #include "dec2hex.h" //引用dec2hex.h文件将十进制转换为十六进制 #include "Delay.h" //引用Delay.h文件 //----------------------------------------------------------------------------------------------------------------------------------------// 宏定义I/O端口和SMBus信号输入输出方向 //----------------------------------------------------------------------------------------------------------------------------------------// #define _SDA_OUTPUT P1M0=0x10; P1M1=0x10; //设置SDA为开漏输出 #define _SDA_INPUT P1M0=0x10; P1M1=0x00; //设置SDA为高阻输入 #define _SCL_IO P1M0=0x08; P1M1=0x08; //设置SCL为开漏输出的I/O端口 sbit SDA = P1^4; //指定SDA线给P14

STC12C5410AD课程设计

单片机原理及应用课程设计 单片机学习及其Proteus仿真2008-08-23 22:51:49 阅读1220 评论0 字号:大中小 1、摘要: 单片机自70年代问世以来得到蓬勃发展,目前单片机功能正日渐完善:单片机集成越来越多资源,内部存储资源日益丰富,用户不需要扩充资源就可以完成项目开发,不仅是开发简单,产品小巧美观,同时抗干扰能力加强,系统也更加稳定,使得它更加适合工业控制领域,具有更加广阔的市场前景;提供在线编程能力,加速了产品的开发进程,为企业产品上市赢得宝贵时间。此外单片机具有性能高、速度快、体积小、价格低、稳定可靠、应用广泛、通用性强等突出优点。单片机的设计目标主要是增强“控制”能力,满足实时控制(就是快速反应) 的需要。因此,掌握单片机的基础和实际应用对电子信息专业从业者来说意义重大。 本文的主要内容是掌握各种单片机的结构、接口、片上外设的特点,并用STC12C5410AD单片机的片上资源设计出适当的最小系统;并利用自行制作的单片机最小系统,完成一个简单应用(量程自动转换的电压表)的设计与软件及硬件设计制作,让读者掌握数字单片机最小系统的设计及单片机系统的应用方法。 关键字:单片机、最小系统、量程自动转换、电压、STC12C5410AD 2、设计要求 a)、掌握各种单片机结构、接口、外设的特性原理,完成最小系统设计。 b)、掌握单片机的开发过程及方法,完成最小系统的制作调试;设计要求。 ?使用STC12C5410AD CPU ?使用STC232E建立ISP/IAP/RS23C接口 ?使用93C46扩展EEPROM ?ISP/IAP/RS232C接口:STC232E ?使用HT1380建立实时时钟

关于STC12C5410AD单片机PxM0,PxM1设置的问题

关于STC12C5410AD单片机PxM0,PxM1设 置的问题 大家都知道高性能的stc单片机是目前使用得越来 越多的单片机,也是一款性能特别高的单片机,在这我 给大家介绍一些使用这种单片机时应该注意的问题,这 样我们大家就能更好的使用它。 一个寄存器的设置不同,让我程序调了好几天! 5555555~~~~~~~超汗~~~~ 这个寄存器就是(I/O口工作类型设置)即PxM0,PxM1。 为什么这么郁闷呢? 我一开始用的是STC12C5410AD系列单片机,这个系列的单片机I/O口类型配置如下: PxM0 PxM1 I/O口模式 0 0 准双向口,普通8051 I/O 口模式 0 1 推挽输出 1 0 高阻 1 1 开漏 我程序中要用的是PxM0=0x00; PxM1=0x01 也就是某I/O 口(Px.0)设为推挽输出;程序正常按设定情况顺利进行。 过了一个星期,我用STC12C5A60S2系列单片机来写程序,

其单片机I/O口类型配置如下: PxM1 PxM0 I/O口模式 0 0 准双向口,普通8051 I/O 口模式 0 1 推挽输出 1 0 高阻 1 1 开漏 我程序用的也是PxM0=0x00; PxM1=0x01 以为这个口也设成推挽输出(在写这个之前没去认真看上面I/O口配置),结果就是程序不能按期进行啊!! 总是以为程序的其它地方错了,或者是硬件有问题。程 序改啊,硬件又重新连啊。。这样重复了好几好几遍!!(55555~~~~~~太汗)其实呢,我也看过了好几次这款单片机的I/O口类型配置。总是被以前那款单片机 (STC12C5410AD)的配置思维左右!!。 可见STC的这一款单片机不同系列相同功能寄存器的配 置还不一样!!!!!!!!!!!!!! 也就是这一点,花了我几天的时间来搞!幸亏有51hei 单片机论坛上的朋友帮助才搞定,所以搞学问还是不能麻虎啊。

STC12C5410AD串口通信调试心得

STC12C5410AD串口通信调试心得 作者:shun 1、实验目的: 使用STC12C5410AD单片机实现串口通信,预期现象两台 STC12C5410AD单片机最小系统板上的LED灯实现同步显示; 2、实验平台的搭建: 由于STC12C5410AD单片机与传统51单片机开发平台不完全兼容(在创建项目时没有STC12C5410AD芯片选项),所以在开发之前需做平台的重新构建,其实也很简单只需要两个步骤。 步骤1:下载含有STC12C5410AD芯片选项的UV2.CDB(KEIL2)去涵盖KEIL安装目录下的/KEIL/UV2/UV2.CDB文件;(注:此文件可在宏晶单片机网站下载,替换之前请先将原有的文件备份以便恢复原有开发平台)步骤2:在宏晶单片机网站下载STC12C5410AD.H头文件并添加到KEIL 安装目录下/KEIL/C51/INC/; OK经过这两部就可以在创建目录时选择到STC12C5XXXAD芯片,并可以在软件中使用#INCLUDE不会报错! 3、将STC12C5410AD单片机配置成传统51单片机模式: 由芯片手册中 知:只要将AUXR的7、6、5位置为0就可以用普通51 的方法来控制定时器0、1及串口中断了,可用语句sfr auxr = 0x8E; auxr=0x10;实现配置。 4、实验硬件平台:

实验硬件为自制开发板 图一:原理图

图二:PCB 图三:实物图 注:图中与本次实验相关的为5个LED灯与串口下载口! 5、程序 //发送 #include < stc12c5410ad.h > sbit led1 = P2^0; sbit led2 = P1^7; sbit led3 = P1^1; sbit led4 = P1^0; sbit led5 = P3^7; int n=0; unsigned char num=0; sfr auxr = 0x8E; /********************************************************* 主函数 **********************************************************/ void main() { auxr=0x10; TMOD|=0x01; //定时/计数器0工作于方式1 TH0=0x4C; //定时器初始值

STC12C5406AD 1602液晶显示

STC12C5406AD 1602液晶显示+LM35DZ 温度计 [日期:2009-08-17 ] [来源:东哥单片机学习网作者:admin] [字体:大中小] (投递新闻) STC12C5406AD 晶振频率为12MHz 本程序已调试完成: 功能说明:STC12C5406AD+74HC164+1602液晶显示+LM35DZ+DS18B20温度计设计。 测量电压:采用8位AD测量,LM35DZ,DS18B20读出的温度值都非常准确。 #include "stc12c5410ad.h"//头文件 #include "intrins.h" #define uchar unsigned char//宏定义 #define uint unsigned int//宏定义 sbit RS=P3^4;//定义I/O的硬件接口 sbit E=P3^7; sbit A_B=P3^2; sbit CP=P3^3; sbit Simulation=P1^7;//模拟电压输入 sbit DQ=P3^5;////定义I/O的硬件接口--温度 uint Temperature;//温度暂存单元 uint Negative_Temperature;//负温度暂存单元 bit Negative_sign=1;//负温度标志 unsigned long TEMP_1;//长整形单元 uint temp; uchar code DispTab_1[]={’0’,’1’,’2’,’3’,’4’,’5’,’6’,’7’,’8’,’9’,’’,’-’};//1602:0-9 数字 uchar code DispTab_2[]={0x10,0x06,0x09,0x08,0x08,0x09,0x06,0x00};//温度符号 uchar DispBuf[6]; //6字节的显示缓冲区 void delay(uint z)//1ms延时 { uchar x,x1; for(;z>0;z--) {

程序STC12C5410AD

[+1]哪位大侠能提供一个STC12C5410AD10位ADC的C程序啊,给小弟参考一二 ? ?ADC可以做到100K 10位 ? ?// DEMO.cpp : Defines the entry point for the console application. ?// ? ?#include ?#include "adpcm.h" ?#include ?#include ?#define N 64 // Test Data Length ? ?sbit P1_0 = P1^0; ?sbit P1_1 = P1^1; ?sbit P2_2 = P2^2; ? ? ?void InitCOM(void); ?void GetDataFromCOM(PBYTE pBuffer, INT8U Length); ?void SendDataToCOM(PBYTE pBuffer, INT8U Length); ?VOID SetCOM_1T(void); ?VOID SetCOM_12T(void); ? ?VOID Delay1MS(void); ?VOID ADC_PowerOn(void); ?VOID SetADP0(void); ?WORD GetADP0(void); ? ?void SetDA(WORD wD); ? ?int main(void) ?{ ? short int DATA_IN[N],DATA_OUT[N]; // 16 Bit Data In and Out ? char ADPCM_DATA[N]; // Compressed 4 bit pairs ? struct adpcm_state Encoder_State,Decoder_State; // State Variables ? int i = 0;

STC12C5410AD单片机的AD程序两位数码管显示

STC12C5410AD单片机的AD程序两位数码 管显示 /*用的是主程序中转换AD,在以后的使用中要用中断的方法才能节约CPU的使用率,本程序中是用 P1.0为输入,用的是单片机本身的10位AD,最大1024分辨率,除以10后最大为102,用两位的数码管,所以只能在99以内,在程序中大于99的数,就只能显示99,也可用三位数码管显示.*/ #include; #define uchar unsigned char #define uint unsigned int #define duan P1 //数码管段码输出端 sfr ADC_CONTR = 0xc5; sfr ADC_DATA = 0xc6; sfr ADC_LOW2 = 0xbe; sfr P1M0 =0x91; sfr P1M1 =0x92; sbit sw=P2^7; //数码管的十位选通 sbit gw=P2^6; //数码管的个位选通 uint shu,ad_shu; uchar code tab[]={ 0xEE,/*0*/

0x48,/*1*/ 0xD6,/*2*/ 0xDC,/*3*/ 0x78,/*4*/ 0xBC,/*5*/ 0xBE,/*6*/ 0xC8,/*7*/ 0xFE,/*8*/ 0xFC,/*9*/ }; void delay( ) { uchar a; for(a=10;a>;0;a--); } void desplay(int bb) { uint ab; ab=bb; if(ab>;99) ab=99; duan=tab[ab/10]; sw=0;

delay(); sw=1; duan=tab[ab%10]; gw=0; delay(); gw=1; } void main() { ADC_CONTR=0xe0; //开A/D转换器 P1M0=0x01; //定义P1.0为AD输入端口,让P1.0为高阻态 P1M1=0x01; //定义P1.0为AD输入端口,让P1.0为高阻态 while(1) { ADC_CONTR|=0x08; while((ADC_CONTR & 0x10)==0); ADC_CONTR&=0xe7; ad_shu=ADC_DATA; ad_shu

stc12c5410ad单片机SPWM产生原理

STCl2C5410AD的可编程计数器 阵列PCA实现SPWM控制软件的编写过程,并给出了SPWM中断服务程序的流程图。将结果应用于由MICA421驱动器驱动的四个MOSFET器件 FQAl60N08所组成的逆变桥上进行实际调试,实验结果表明,该方法具有电路简单、计算量小、实时性强的优点,采用在线计算和查表技术相结合,较好的解决了实时控制的要求,具有较好的应用价值。 0 引言 近年来,随着逆变电源 在各行各业应用的日益广泛,采用正弦脉宽调制(SPWM)技术控制逆变电源 提高整个系统的控制效果是人们不断探索的问题。对SPWM的控制有多种实现方法,其一是采用模拟电路、数字电路等硬件电路产生SPWM波形,该方法波形稳定准确,但电路复杂、体积庞大、不能进行自动调节;其二是借助单片机、DSP 等微控制器 来实现SPWM的数字控制方法,由于其内部集成了多个控制电路,如PWM电路、可编程计数器阵列(PCA)等,使得这种方法具有控制电路简单、运行速度快、抗干扰性强等优点。本文介绍一种利用STC系列单片机实现SPWM波形的方法,并将由STCl2C5410AD产生的单极性SPWM波应用于单相逆变电源,实验结果证明了利用其实现SPWM波形的可行性和有效性。 1 正弦脉宽调制技术SPWM SPWM控制方案有两种:即单极性调制和双极性调制法。单极性法所得的SPWM信号有正、负和0三种电平,而双极性得到的只有正、负两种电平。比较二者生成的SPWM波可知:在相同载波比情况下,生成的双极性SPWM波所含谐波量较大;并且在正弦逆变电源控制中,双极性SPWM波控制较复杂。因此一般采用单极性SPWM波控制的形式。 由单片机实现SPWM控制,根据其软件化方法的不同,有如下几种方法:自然采样法、对称规则法、不对称规则法和面积等效法等。理论分析发现面积等效法相对于其它方法而言,谐波较小,对谐波的抑制能力较强。而且实时控制简单,利于软件实现。因此本文采用面积等效法实现SPWM控制。

STC12C5410AD

STC12C5410AD STC12C5410系列单片机是由宏晶科技生产的单时钟/机器周期(1T)的兼容8051内核单片机,是高速/低功耗的新一代8051单片机,全新的流水线/精简指令集结构,内部集成MAX810专用复位电路。其主要性能特点如下: 1.增强型1T流水线/精简指令集结构8051CPU 2.工作电压:5.5V‐3.4V(5V单片机)/3.8V‐2.0V(3V单片机) 3.工作频率范围:0‐35MHz,相当于普通8051的0‐420MHz 4.用户应用程序空间12K/10K/8K/6K/4K/2K字节 5.片上集成512字节RAM 6.通过I/O口(27/23个),复位后为:准双向口/弱上拉(普通8051传统I/O口) 可设置成四种模式:准双向口/弱上拉,推挽/强上拉,仅为输入/高阻,开漏 7.ISP(在系统可编程)/ASP(在应用可编程),无需专用编程器 可通过串口(P3.0/P3.1)直接下载用户程序,数秒即可完成一片 8.EPROM功能 9.看门狗 10.内部集成MAX810专用复位电路(外部晶振20M以下时,可省外部复位电路)11.时钟源:外部高精度晶体/时钟,内部R/C振荡器 用户在下载用户程序时,可选择是使用内部R/C振荡器还是外部晶体/时钟 常温下内部R/C振荡器频率为:5.65MHz~5.95MHz

精度不高时,可选择使用内部时钟,但因为有温漂,应认为是5MHz~6.5MHz 12.共2个16位定时器/计数器 13.PWM(4位)/PCA(可编程计数器阵列),也可用来在实现4个定时器 14.ADC,10位精度ADC,共8路 15.通用异步串行口(UART) 16.SPI同步通信口,主模式/从模式 17.工作温度范围:0‐75℃/-40‐+85℃ 18.封装:PDIP—28,SOP—28,PDIP—20,SOP—20,TSSOP—20,PLCC—32 STC12C5410AD单片机中包含中央处理器、程序存储器(Flash)、数据存储器(RAM)、EEPROM、定时/计数器、I/O接口、UART接口和中断系统、SPI接口、高速A/D转换模块、PWM(或捕捉/比较单元)以及硬件看门狗、电源监控、片内RC振荡器等模块。可以说STC12C5410AD单片机几乎包含了数据采集和控制中所需的所有单元模块,可称得上一个片上系统(SOC),可以很容易地构成典型的测控系统。 (1) STC12系列单片机的典型结构 STC 12系列单片机是宏晶科技公司新的低功耗16位Flash单片机,它的16级中断、高效寻址方式、10K大容量Flash, EEPROM, A/D转换、硬件乘法器、硬件脉宽调制器(PWM)等功能特点,较好的实现了强大的功能与超低功耗的结合,因此具有很好的性价比和应用适应性。 STC12系列有6种型号:分别是STC12C5412AD, STC12C5410AD,STC12C5408AD、STC 12C5406AD、STC 12C5404AD、和STC 12C5402AD。它们区别在于Flash的容量大小,本设计所用到的STC12C5412AD的Flash容量为10K。该单片机的管脚结构如图3-15所示。来源:东海仪表网

stc12c2052ad简介

STC12系列单片机简易编程器制作 来源:华强-解决方案发布时间:2010-11-05 10:17 评论:0条阅读:104次发给好友分享 一、STC12系列单片机优点 1.性价比高采用STC12系列单片机可以省掉复位电路、外部数据存储器(如24Cxx系列芯片),某些场合还可以省掉晶振,电路简单、价格低廉。 2.速度快STC12系列单片机为单时钟/机器周期(1T),一些指令执行速度是传统8051的24倍,最低的也是3倍。 3.安全性好目前,很难破译STC12系列单片机加密程序,加之用户数据可以保存到单片机内部,解密者很难通过用户数据分析单片机的运行状况。 4.可以直接代替8051针对传统8051单片机开发的程序,可以直接用于STC12系列单片机,无须重新编写。 二、简易编程器原理 图1是STC12系列单片机简易编程器的电路。IC1是编程时插芯片的20脚DIP插座。R1、C1为被编程芯片提供复位信号,X1、C2、C3为被编程芯片提供时钟信号,VT1、VT2构成简易的RS-232到TTL的电平转换,省掉了MAX232。 三、简易编程器制作 该简易编程器的电阻均为1/8W.采用12V电源适配器供电。 图2(略)是简易编程器的印刷电路图.是从顶层往下看的效果,可以直接用热转印的方法制作,打印的时候不需要镜像翻转。 图3是装配图。根据此图安装、焊接元件,只要元件选择无误、安装正确、焊接可靠,一般不需要调试即可投入使用。如果将20脚DIP插座换成20脚编程专用锁紧插座,就是不折不扣的编程器了。 四、简易编程器使用 首先,要下载STC-ISP软件,并安装到电脑中。然后将简易编程器与电脑的RS-232九针串口连接,把待编程单片机插入编程器的20脚插座中.注意单片机的插入方向!此时先不要为编程器通电。双击安装目录中的STC-ISPV35文件运行编程软件。该软件的界面局部如图4(略)所示。上面有非常详细的介绍,整个编程分五步进行:

基于STC12C5410AD单片机的倾角监控系统设计

《工业控制计算机》2010年第23卷第10期 Design of Angle Supervisory Control System Based on STC12C5410AD 何小虎李现明(山东大学控制科学与工程学院,山东济南260061) 摘要 提出了基于STC12单片机的倾角监控系统设计的一种新方法。该系统采用STC12C5410AD单片机作为主控制器,运用三轴加速传感器MMA7260Q进行倾角测量,采用DS1302时钟芯片为角度采集时间标签,配合键盘、人机接口,可以设置角度报警值和实时显示当前角度数据,并实现声光报警。监控计算机通过Visual Basic串口通信可实时采集当前角度数值并存入后台Access数据库,同时可以控制本采集系统的测量参数,实现方便的角度监控。 关键词:STC12,倾角测量,加速度传感器,Visual Basic Abstract An angle data supervisory control system based on STC12C5410AD as the main controller is designed and realized in this paper.Combined with three-axle acceleration sensor MMA7260together with DS1302which servers as time label for angle acquisition.This system offers functions such as alarming value setting,real-time angle data collecting as well as au-dible and visual alarming.The monitoring computer can get the current angle data through serial port correspondence using Visual Basic and store them to the Access database. Keywords:STC12,Angle acquisition,acceleration sensor,Visual Basic 在工业自动化控制或工程项目设计中,常常需要对某一平面或基准进行倾角测量,例如在很多国家,对起重机工作时机身的倾斜角度是有限制的;自倾斜火车,利用倾斜来补偿离心加速度。这些都需要对角度进行监控和自动跟踪。在倾角测量精度要求较高的场合,一般会对倾角传感器的成本提出较高的要求,本系统采用低成本单芯片三轴向高灵敏度加速度传感器采集角度信息,最终实现了一种低成本、高精度、高性价比的倾角监控应用解决方案。 1倾角测量系统结构 系统由单片机、倾角传感器、键盘编码器、键盘、数码管驱动器和数码管等组成。 系统的功能是通过倾角传感器采集角度信息,传送给单片机。通过LED数码管显示时间角度信息。配备有声光报警电路,并通过键盘修改相应参数,通过串口完成与上位机的通信,方便实现上位监控。系统结构图如图1所示。 图1系统结构图 2倾角测量系统硬件 2.1系统中央控制器 中央控制器选用宏晶STC12C5410AD单片机为主控器件,单片机的片上资源能满足系统的功能要求,减少了外围器件,加强了系统的抗干扰能力,提高系统稳定性,降低了开发成本和开发难度。 2.2加速度传感器MMA7260Q MMA7260Q是一种低成本单芯片三轴向高灵敏度加速度传感器,基于表面微机械 结构。能在XYZ三个轴 向上以极高的灵敏度读 取低重力水平的坠落、倾 斜、移动、放置、震动和摇 摆。三轴向加速度测量、 高灵敏度800mV/g(量 程为±1.5g)、启动时间 短(1ms)、低噪音(达到 更高的分辨率、更高的精 确度)完全满足倾角测量 系统的要求。 MMA7260Q与STC12 单片机的接口电路如图2所示。 MMA7260Q的供电电压在2.2~3.6V之间,输出信号在0~3V以内,电源本采用3.3V电压供电,而且输出的信号可直接输入STC12的A/D通道而不必对信号电压进行变换。 2.3DS1302模块 DS1302是美国DALLAS公司实时时钟芯片,DS1302用于数据记录,特别是对某些具有特殊意义的数据点的记录上,能实现数据与出现该数据的时间同时记录。 3倾角测量软件 3.1采用Keil Uvision3作为下位机系统的开发平台。 (1)角度数据采集设计 MMA7260Q输出为模拟信号,采集过程需进行AD转换。STC12C5410AD单片机集成有8路高速模数转换器(ADC)。它是一种逐次比较型模数转换器,速度可达到100kHz(10万次/ 基于STC12C5410AD 单片机的倾角监控系统设计 图2接口电路 97

STC12C5410AD学习板---串口通信

STC12C5410AD学习板---串口通信 /************ STC12C5410AD学习板******************/ /*功能描述:单片机与电脑串口通信*/ /*作者:郑文*/ /*编写时间:2008.8.13 */ /*功能:把单片机的一些数据传给电脑*/ /*接外部晶振22.1184 MHZ */ /*把波特率设置为51的12倍,现在波特率115200 */ #include #include #include #include #define uchar unsigned char #define uint unsigned int #define ulong unsigned long void Delay1ms(unsigned int count); void init_rs232(void); //串口初始化 /***************************1秒延时子程序start***************************/ void Delay1ms(unsigned int count) { unsigned int i,j; for(i=0;i

STC12C2052AD

STC12C2052AD 系列单片机器件手册 --- 1个时钟/机器周期8051 ---无法解密 ---低功耗,超低价 ---高速,高可靠 ---强抗静电,强抗干扰 STC12C0552,STC12C0552AD STC12C1052,STC12C1052AD STC12C2052,STC12C2052AD STC12C3052, STC12C3052AD STC12C4052, STC12C4052AD STC12C5052, STC12C5052AD STC12LE0552,STC12LE0552AD STC12LE1052,STC12LE1052AD STC12LE2052,STC12LE2052AD STC12LE3052,STC12LE3052AD STC12LE4052,STC12LE4052AD STC12LE5052,STC12LE5052AD 技术支援:宏晶科技(深圳) www.MCU-Memory.com support@MCU-Memory.comUpdate date: 2005-10-26 (草案,请随时注意更新)

宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243 领导业界革命 覆盖市场需求 宏晶科技是新一代增强型8051单片机标准的制定者,致力于提供满足中国市场需求的世界级高性能单片机技术,在业内处于领先地位,销售网络覆盖全国。在保证质量的基础上,以极低的价格和完善的服务赢得了客户的长期信赖。目前,全力推出“1个时钟/机器周期”的单片机,全面提升8051单片机性能。欢迎海内外厂家前来洽谈合作!新客户请直接联系深圳,以获得更好的技术支持与服务。 STC 12C2052AD系列 1T 8051 单片机  新客户请直接联系深圳以获得更好的技术支持和服务南京办:Tel:025-86893767 86893566 Fax:025-86893757 传真至深圳申请STC单片机●高速:1个时钟/机器周期,RISC型CPU内核,速度比普通8051快12倍●宽电压:3.4~5.5V,2.0~3.8V(STC12LE2052AD系列)●低功耗设计:空闲模式,掉电模式(可由外部中断唤醒)●工作频率:0~35MHz,相当于普通8051:0~420MHz●时钟:外部晶体或内部RC振荡器可选 ●2K/4K/8K/10K/12K片内Flash程序存储器,擦写次数10万次以上●256/512字节片内RAM数据存储器●芯片内E2PROM功能 ●ISP / IAP,在系统可编程 ●2个模拟比较器 ●8通道高精度8位ADC,STC12C5410AD系列为10位精度ADC●2通道捕获/比较单元(CCU/PCA/PWM),STC12C5410AD系列为4通道●2个硬件16位定时器,兼容普通8051的定时器●硬件看门狗(WDT)●高速SPI通信端口 ●全双工异步串行口(UART),兼容普通8051的串口 ●先进的RISC精简指令集结构,兼容普通8051指令集 111条功能强大的指令,有12条指令只需1个时钟就可完成 片内集成硬件乘法器和硬件除法器(执行速度为4个时钟周期) 4组8个8位通用工作寄存器(共32个通用寄存器) 1个时钟/机器周期,高速、高可靠,相当于普通8051 0~420MHz 无★★★★★★★在系统可编程,无需编程器,可远程升级可送STC-ISP下载编程器,1万片/人/天 内部集成MAX810专用复位电路,原复位电路可以1个时钟/机器周期,可用低频晶振,大幅降低EMI超低功耗: 1、掉电模式: 典型功耗 <0.1μA2、空闲模式: 典型功耗 <1mA3、正常工作模式: 典型功耗 4mA - 7mA4、掉电模式可由外部中断唤醒,适用于电池 供电系统,如水表、气表、便携设备等。由: 超强抗干扰: 1、高抗静电(ESD保护) 2、轻松过4KV快速脉冲干扰(EFT测试)3、宽电压,不怕电源抖动4、宽温度范围,-40℃~85℃5、I/O口经过特殊处理 6、单片机内部的电源供电系统经过特殊处理7、单片机内部的时钟电路经过特殊处理8、单片机内部的复位电路经过特殊处理9、单片机内部的看门狗电路经过特殊处理 加密性强,无法解密STC12C5410系列(12月供货) ,28/32Pin

基于STC12系列单片机的开发板设计

摘要 单片机自从70年代出现以后迅速发展起来,目前功能更加完善,广泛用于各种控制系统中。开发板以某一单片机为控制核心,集成一些基本硬件模块,可以作为主控模块在各种设备中实现控制功能,也可以用作实验板供初学者练习实践,使用方便,能加快产品开发速度。对自动化专业的学生来说,拥有一块单片机开发板,不管是用来开发产品或学习单片机都非常必要。所以,我设计了一个基于STC12C5410AD单片机的开发板。 本文以STC12C5410AD单片机为控制芯片,设计了一个开发板最小系统,主要包括电源模块、DS1302时钟模块、矩阵键盘和独立键盘模块、LCD1206和12864液晶显示模块、数码管显示模块、步进电机模块、RS232串行通信模块、DS18B20温度检测模块及存储器扩展模块,同时编写了相应的软件程序。 关键词:单片机,开发板,STC12C5410AD

Design of Development Board Based on STC12 Series MCU ABSRACT Single chip microcomputer has been developed rapidly since the 1970s, at present, its function is more perfect, and it is widely used in various control systems. Development board use a single chip processor as the core, integrate some basic hardware modules, can be used as a main control module to control functions in a variety of devices, can also be used as the experimental plate for beginners to practice exercises, easy to use, can accelerate product development.For automation professional students, having a microcontroller development board, whether to develop products or learn microcontroller, is very necessary. So, I designed a development board based on STC12C5410AD MCU. This paper designed a development board minimum system based on STC12C5410AD microcontroller, mainly including power supply module , DS1302 clock module, matrix keyboard and independent keyboard module, LCD1206 and 12864 liquid crystal display module, digital tube display module, stepper motor module, RS232 serial communication module, DS18B20 temperature detection module and memory expansion module, also write the corresponding software program. KEY WORDS:S ingle Chip Microcomputer, Development Board, STC12C5410AD

stc12c5410ad单片机程序

用ad实时动态采集电池电压并显示在数码管上,电池给电机供电,调节PWM的占空比,使电池电压降到6.5v时,蜂鸣器报警。附上实物图。 # include #define uchar unsigned char # define uint unsigned int sbit w2=P1^7; sbit w4=P1^6; sbit f=P1^0; uint a,temp,b; //用于计算转换量储存ad转换结果 float get; uchar code table1[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //不带小数点uchar code table2[]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10}; //带小数点 void delay(uint i) { uint x,y; for(x=i;x>0;x--) for(y=110;y>0;y--); } void init() { //ADC_CONTR状态 ADC_CONTR|=0x09; //ADC_START=1,开始转换 while((ADC_CONTR&0x10)==0); //等待AD转换结束 ADC_CONTR=0Xe9; //转换结束 get=ADC_DATA; //读取转换结果 ADC_CONTR|=0xe8; //将ADC_FLAG软件清零 delay(2); get=(get*5)/256; //8位ad,256级量化电平,转换结果的计算公式为,换值=256*Vin/Vcc get=get*2.38; delay(5); } void ad() { temp=get*10; if(temp<65) //蜂鸣器 f=1; a=temp%10; b=temp/10; } void pwm() { CCON=0; //关闭控制寄存器

STC12C2052AD输出PWM波型

//STC12C2052AD输出PWM波,同时检测电压显示,自动稳压。 //74HC164串入并出显示数码管,一位一位显示,之后熄灭省电,根据我焊的板子确定的数码管值。 #include #include #define uchar unsigned char #define uint unsigned int #define AD_SPEED 0x60 //0110,0000 1 1 270个时钟周期转换一次, //少占鱼制作河北正定欢迎您长沙航空职业技术学院2010 年QQ:411656434 //京畿之地魅力河北河北欢迎您 uchar code tab[16]={0x11,0xd7,0x25,0x45,0xc3, // 0 1 2 3 4 0x49,0x09,0xd5,0x01,0x41,0x81, // 5 6 7 8 9 A 0x0b,0x39,0x07,0x29,0xa9}; //共y阳数码管 // b e d e f uchar xianshi[4]={0x11,0xd7,0x25,0x45}; sbit M=P1^5; //过压指示灯 sbit N=P1^6; //欠压指示灯 sbit LED=P1^7; //充满指示灯 sbit PWM=P3^7; sbit wei1=P3^5; sbit wei2=P3^2; sbit wei3=P3^3; sbit wei4=P3^4; bit START =0; uchar timeL=0x90; uchar timeH=0x90; /****************************************************************/ void pwm(); void delayms(uint); void ADC(); void InitADC(); //void baohu(); void ceshi(); void sendchar(); float voltage=0.0; uint vol=0;

相关文档
相关文档 最新文档