① STC89C52RC属于什么系列的单片机
【STC89C52RC】是宏晶科技生产的STC89系列单片机,具体代码意思如下:
【单片机】是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。从上世纪80年代,由当时的4位、8位单片机,发展到现在的300M的高速单片机。
② STC89C52RC与普通89C52有什么区别
STC89C52RC比普通89C52多了后缀“RC”,虽然它们都是单片机芯片,但是带有“RC”字样的单片机自带RC时钟振荡电路(有的频率可调有的频率不可调),可以在不接外部晶振就能使用,没有带“RC”这个字样的芯片一般必须安装外部晶振电路。
STC89C52RC是宏晶公司的增强型MCS-51单片机,与Atmel公司的AT89C52相比,有以下优点:
支持STC的2线制下载方式,下载程序更方便;
支持6T模式(在6T模式下,6个时钟周期就是一个机器周期);
片内集成了4kB容量的E²PROM;
带有P4口,具有更多的I/O;
程序存储器拥有更多的擦写寿命(STC标称可以擦写10万次,Atmel标称可以擦写1000次。不过对于批量生产的成品来说,这个擦写寿命没什么意义)。
相比于Atmel,STC单片机的缺点:在某些情况下,抗干扰能力不如Atmel的MCS-51单片机。
(2)宏晶单片机中文手册扩展阅读:
STC89C52单片机
STC89C52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
具有以下标准功能:8k字节Flash,512字节RAM,32位I/O口线,看门狗定时器,内置4KBEEPROM,MAX810复位电路,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口。
另外STC89X52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
最高运作频率35Mhz,6T/12T可选。
和atmel的对比STC89C52RC单片机:8K字节程序存储空间;512字节数据存储空间;内带4K字节EEPROM存储空间;可直接使用串口下载;at89s52单片机:8K字节程序存储空间;256字节数据存储空间;没有内带EEPROM存储空间。
③ 求STC89c52详细介绍。说说它与51的区别,以及STC系列单片机的特点,优点等,最好能稍微多点。
与51的主要区别是:
51只有4K程序存储空间,52有8K
51只有128字节数据存储空间,52有256个
51只有2个定时器,52有3个。
STC单片机是以51内核为主的系列单片机,STC单片机是宏晶生产的单时钟/机器周期的单片机,是高速、低功耗、超强抗干扰的新一代8051单片机,指令代码完全兼容传统8051,但速度快8—12倍,内部集成MAX810专用复位电路。
(3)宏晶单片机中文手册扩展阅读:
STC89C52RC是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有8K字节系统可编程Flash存储器。STC89C52使用经典的MCS-51内核,但是做了很多的改进使得芯片具有传统51单片机不具备的功能。
具有以下标准功能: 8k字节Flash,512字节RAM, 32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,3个16 位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。另外 STC89C52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。
④ 宏晶单片机,如何在断电程序中,保护数据。请附程序
单片机中有EPROM,我用的是STC12C5A60S2,有1K空间的EPROM,是可以断电保存用户数据的,其他型号STC单片机的EPROM大小不一,参考手册,但程序差不多的,程序如下:
/********************************************************************
* *
* 单片机学习开发板BP-51A - 内部EPROM读写演示程序 *
* 版本: V1.0 (2011/10/13) *
* 作者: BestProvider *
* 说明: STC12C5A60S2单片机有1K字节的内部EPROM,可以用来存放用户数 *
* 据(断电不丢失),EPROM分2个扇区,地址为0X0000-0X1FFF和0X2000 *
* -0X3FFF,需要注意的是在进行写操作时,必须先要进行所在扇区 *
* 的清除操作 *
* 硬件: 本实验需要液晶屏LCD1602来显示数据 *
* 参考: 《STC12C5A60S2中文资料》- 第12章 STC12C5A60S2系列单片机 *
* EPROM的应用 *
* *
********************************************************************/
#include <stc12c5a60s2.h>
typedef unsigned char BYTE; // 数据范围0-255
typedef unsigned int WORD; // 数据范围0-65535
typedef bit BOOL ; // 数据范围0-1
#define CMD_IDLE 0
#define CMD_READ 1
#define CMD_WRITE 2
#define CMD_ERASE 3
#define ENABLE_IAP 0X82
BYTE write_data[5]={0,1,2,3,4};
BYTE read_data[5];
BYTE code dis1[ ] = {"EPROM Write/Read"} ;
BYTE code dis2[ ] = {"Data: "} ;
sbit LCD_RS = P2^0; // LCD控制线
sbit LCD_RW = P2^1;
sbit LCD_EN = P2^2;
/* ms级延时 */
/********************************/
void delay_ms(WORD n)
{
WORD i=0;
WORD j;
while(i<n)
{
for(j=0;j<1000;j++){}
i++;
}
}
/* 测试LCD忙碌状态 */
/********************************/
BOOL lcd_bz()
{
BOOL result;
LCD_RS = 0;
LCD_RW = 1;
LCD_EN = 1;
delay_ms(1);
result = (BOOL)(P0 & 0x80);
LCD_EN = 0;
return result;
}
/* 写入指令数据到LCD */
/********************************/
void lcd_wcmd(BYTE cmd)
{
while(lcd_bz());
LCD_RS = 0;
LCD_RW = 0;
LCD_EN = 0;
delay_ms(1);
P0 = cmd;
delay_ms(1);
LCD_EN = 1;
delay_ms(1);
LCD_EN = 0;
}
/* 设定显示位置 */
/********************************/
void lcd_pos(BYTE pos)
{
lcd_wcmd(pos | 0x80);
}
/* 写入字符显示数据到LCD */
/********************************/
void lcd_wdat(BYTE dat)
{
while(lcd_bz());
LCD_RS = 1;
LCD_RW = 0;
LCD_EN = 0;
P0 = dat;
delay_ms(1);
LCD_EN = 1;
delay_ms(1);
LCD_EN = 0;
}
/* LCD初始化设定 */
/********************************/
void lcd_init()
{
lcd_wcmd(0x38);
delay_ms(10);
lcd_wcmd(0x0c);
delay_ms(10);
lcd_wcmd(0x06);
delay_ms(10);
lcd_wcmd(0x01); // 清除LCD的显示内容
delay_ms(10);
}
/* EPROM 扇区清除 */
/********************************/
void Iaperasesector(unsigned char addr)
{
IAP_ADDRH=addr;
IAP_ADDRL=0x00;
IAP_CONTR=ENABLE_IAP;
IAP_CMD=CMD_ERASE;
IAP_TRIG=0x5a;
IAP_TRIG=0xa5;
delay_ms(10);
}
/* EPROM 写操作 */
/********************************/
void Iapwritebyte()
{
BYTE i;
Iaperasesector(0x00); // 在进行内部EPROM写操作前需进行扇区清除操作
IAP_CONTR=ENABLE_IAP;
for(i=0;i<5;i++)
{
IAP_ADDRH=0x00;
IAP_ADDRL=0x00+i;
IAP_DATA=write_data[i];
IAP_CMD=CMD_WRITE;
IAP_TRIG=0x5a;
IAP_TRIG=0xa5;
delay_ms(10);
}
IAP_CONTR=0x00;
}
/* EPROM 读操作 */
/********************************/
void Iapreadbyte()
{
BYTE i;
for(i=0;i<5;i++)
{
IAP_DATA=0;
IAP_CONTR=ENABLE_IAP;
IAP_ADDRH=0x00;
IAP_ADDRL=0x00+i;
IAP_CMD=CMD_READ;
IAP_TRIG=0x5a;
IAP_TRIG=0xa5;
delay_ms(10);
read_data[i]=IAP_DATA;
}
IAP_CONTR=0x00;
}
/* 数据显示 */
/********************************/
void Display()
{
BYTE m ;
lcd_pos(0) ; // 设置显示位置为第一行的第1个字符
m = 0 ;
while(dis1[m] != '\0')
{
lcd_wdat(dis1[m]) ; // 显示字符
m++ ;
}
lcd_pos(0x40) ; // 设置显示位置为第二行第1个字符
m = 0 ;
while(dis2[m] != '\0')
{
lcd_wdat(dis2[m]) ; // 显示字符
m++ ;
}
lcd_pos(0x46); // 显示读取的第1个数据
lcd_wdat(0x30+read_data[0]);
lcd_pos(0x48); // 显示读取的第2个数据
lcd_wdat(0x30+read_data[1]);
lcd_pos(0x4a); // 显示读取的第3个数据
lcd_wdat(0x30+read_data[2]);
lcd_pos(0x4c); // 显示读取的第4个数据
lcd_wdat(0x30+read_data[3]);
lcd_pos(0x4e); // 显示读取的第5个数据
lcd_wdat(0x30+read_data[4]);
}
/* 主程序 */
/********************************/
main()
{
delay_ms(200); // 通电后延迟200ms,再进行EPROM操作
Iapwritebyte(); // 将4个数据存入单片机内部EPROM中
delay_ms(10);
Iapreadbyte(); // 从EPROM中读取数据
lcd_init(); // 初始化LCD
delay_ms(10);
Display(); // 显示读取的数据
while(1);
}
⑤ 什么是STC单片机
STC是中国自己产的一种单片机,是宏晶科技生产的单时钟/机器周期(1T)的单片机。
STC单片机是高速/低功耗/抗干扰的新一代8051单片机,指令代码完全兼容传统8051,但速度快8-12倍。内部集成MAX810专用复位电路,2路PWM,8路高速10位A/D转换(250K/S),针对电机控制,
通用I/O口(36/40/44个),复位后为:准双向口/弱上拉(普通8051传统I/O口困行键),可设置成四种模式:准双向口/弱上拉,推挽/强上拉,仅为输入/高阻,开漏,每个I/O口驱动能力均可达到20mA,但整个芯片最大不要超过120mA;
(5)宏晶单片机中文手册扩展阅读
STC公司的1T增强系列因他不但和8051指令,管脚完全兼容,而且其片内的具有大容量带判程序存储器且是FLASH工艺的,如STC12C5A60S2单片机内部就自带高达60K FLASHROM,
这种工艺的存储器用户可以用电的方式擦除、改写。而且STC系列单片机支持串口程序烧写。显而易见,这种汪巧单片机对开发设备的要求很低,开发时间也大大缩短。写入单片机内的程序还可以进行加密,可以很好地保护劳动成果。
参考资料来源:网络-STC12C5A60S2
⑥ 单片机供电电压最低多少
不只51,很多系列的单片机都有5V和低压3V两种型号。想用3.7V给3V单片机供电的话串个二极管就行了,一个管子的压降正好。STC12、11、10都是新型号它们内核一样的,就是只有一些硬件配置有无和大小不一样,比如管脚、AD、EEPROM、ram、硬件PWM,它们的抗干扰性、电磁特性、稳定性、加密性都比老51系列的89C51、89C52好得多。下面的图片是我从手册上截的