STC12C5A60S2单片机IO口工作模式设定

嵌入式设计应用

127人已加入

描述

  什么是STC12C5A60S2

  在众多的51系列单片机中,要算国内STC 公司的1T增强系列更具有竞争力,因他不但和8051指令、管脚完全兼容,而且其片内的具有大容量程序存储器且是FLASH工艺的,如STC12C5A60S2单片机内部就自带高达60K FLASHROM,这种工艺的存储器用户可以用电的方式瞬间擦除、改写。而且STC系列单片机支持串口程序烧写。显而易见,这种单片机对开发设备的要求很低,开发时间也大大缩短。写入单片机内的程序还可以进行加密,这又很好地保护了你的劳动成果。

  

  特点

  STC12C5A60S2/AD/PWM系列单片机是宏晶科技生产的单时钟/机器周期(1T)的单片机,是高速/低功耗/超强抗干扰的新一代8051单片机,指令代码完全兼容传统8051,但速度快8-12倍。内部集成MAX810专用复位电路,2路PWM,8路高速10位A/D转换(250K/S),针对电机控制,强干扰场合。

  1.增强型8051 CPU,1T,单时钟/机器周期,指令代码完全兼容传统8051;

  2.工作电压:STC12C5A60S2系列工作电压:5.5V-3.3V(5V单片机)STC12LE5A60S2系列工作电压:3.6V-2.2V(3V单片机);

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

  4.用户应用程序空间8K /16K / 20K / 32K / 40K / 48K / 52K / 60K / 62K字节;

  5.片上集成1280字节RAM;

  6.通用I/O口(36/40/44个),复位后为:准双向口/弱上拉(普通8051传统I/O口),可设置成四种模式:准双向口/弱上拉,推挽/强上拉,仅为输入/高阻,开漏,每个I/O口驱动能力均可达到20mA,但整个芯片最大不要超过120ma;

  7. ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器 可通过串口(P3.0/P3.1)直接下载用户程序,数秒即可完成一片;

  8.有EEPROM功能(STC12C5A62S2/AD/PWM无内部EEPROM);

  9.内部集成MAX810专用复位电路(外部晶体12M以下时,复位脚可直接1K电阻到地);

  10.外部掉电检测电路:在P4.6口有一个低压门槛比较器,5V单片机为1.32V,误差为+/-5%,3.3V单片机为1.30V,误差为+/-3%;

  11.时钟源:外部高精度晶体/时钟,内部R/C振荡器(温漂为+/-5%到+/-10%以内) 1用户在下载用户程序时,可选择是使用内部R/C振荡器还是外部晶体/时钟,常温下内部R/C振荡器频率为:5.0V单片机为:11MHz~15.5MHz,3.3V单片机为:8MHz~12MHz,精度要求不高时,可选择使用内部时钟,但因为有制造误差和温漂,以实际测试为准;

  12.共4个16位定时器 两个与传统8051兼容的定时器/计数器,16位定时器T0和T1,没有定时器2,但有独立波特率发生器 做串行通讯的波特率发生器 再加上2路PCA模块可再实现2个16位定时器;

  13. 2个时钟输出口,可由T0的溢出在P3.4/T0输出时钟,可由T1的溢出在P3.5/T1输出时钟;

  14.外部中断I/O口7路,传统的下降沿中断或低电平触发中断,并新增支持上升沿中断的PCA模块, Power Down模式可由外部中断唤醒,INT0/P3.2,INT1/P3.3,T0/P3.4, T1/P3.5, RxD/P3.0,CCP0/P1.3(也可通过寄存器设置到P4.2 ), CCP1/P1.4 (也可通过寄存器设置到P4.3);

  15. PWM(2路)/PCA(可编程计数器阵列,2路):

  单片机

  STC12C5A60S2管脚图

  ——也可用来当2路D/A使用

  ——也可用来再实现2个定时器——

  也可用来再实现2个外部中断(上升沿中断/下降沿中断均可分别或同时支持);

  16.A/D转换, 10位精度ADC,共8路,转换速度可达250K/S(每秒钟25万次),通用全双工异步串行口(UART),由于STC12系列是高速的8051,可再用定时器或PCA软件实现多串口;

  17. STC12C5A60S2系列有双串口,后缀有S2标志的才有双串口,RxD2/P1.2(可通过寄存器设置到P4.2),TxD2/P1.3(可通过寄存器设置到P4.3);

  18.工作温度范围:-40 - +85℃(工业级) / 0 - 75℃(商业级)21.封装:PDIP-40,LQFP-44,LQFP-48 I/O口不够时,可用2到3根普通I/O口线外接 74HC164/165/595(均可级联)来扩展I/O口, 还可用A/D做按键扫描来节省I/O口,或用双CPU,三线通信,还多了串口。

  STC12C5A60S2单片机IO口工作模式设定

  STC12C5A60S2 系列单片机其所有I/O口均可由软件配置成4种工作类型之一。4种类型分别为:准双向口(标准8051 输出模式)、推挽输出、仅为输入(高阻)或开漏输出功能。

  每个口由2个控制寄存器中的相应位控制每个引脚工作类型。

  STC12C5A60S2系列单片机上电复位后为准双向口(传统8051的I/O口)模式。2V以上时为高电平,0.8V以下时为低电平。

  I/O口工作类型设定

  PxM1[7:0] PxM0[7:0] I/O 口模式

  0 0 准双向口 (传统 8051I/O口模式 ),灌电流可达20mA, 拉电流为230uA

  0 1 推挽输出 (强上拉输出, 可达20mA, 要加限流电阻)

  1 0 仅为输入 (高阻)

  1 1 开漏 (Open Dra in), 内部上拉电阻断开, 要外加

  注意:

  虽然每个I/O口在弱上拉时都能承受20mA的灌电流(还是要加限流电阻,如 1K,560Ω等),在强推挽输出时都能输出20mA的拉电流(也要加限流电阻),但整个芯片的工作电流推荐不要超过55mA。即从MCU-VCC流入的电流不超过55mA,从MCU-GND流出电流不超过55mA,整体流入/流出电流都不能超过55mA.

  介绍一个宏定义: _BIN

  做用是给寄存器的每个位赋值,比如:

  ADC_CONTR = _BIN(1,0,0,0, 1,0,0,0);

  就是给ADC_CONTR寄存器的第7位和第3位赋值1,其他位为0。 括号中的参数依次为第7位~第0位

  在TF卡程序中,若将SPI口设置成推挽(强上拉)输出,就可以这样写:

  P1M1 = _BIN(0,0,0,0,0,0,0,0);

  P1M0 = _BIN(1,1,1,1,1,1,1,1);

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分