STC89C52RC单片机的特点
STC89C52RC 单片机介绍 STC89C52RC 单片机是宏晶科技推出的新一代高速/低功耗/超强抗干扰的单 片机, 指 令代码完全兼容传统 8051 单片机, 12 时钟/机器周期和 6 时钟/机器周 期可以任意选择。 主要特性如下 1. 增强型 8051 单片机, 6 时钟/机器周期和 12 时钟/机器周期可以任 意选择, 指令代码完全兼容传统 8051. 2. 工作电压~(5V 单片机)/~(3V 单片机) 3. 工作频率范围0~40MHz,相当于普通 8051 的 0~80MHz,实际工 作频率 可达 48MHz 4. 用户应用程序空间为 8K 字节 5. 片上集成 512 字节 RAM 6. 通用 I/O 口 (32 个) 复位后为 , P1/P2/P3/P4 是准双向口/弱上拉, P0 口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为 I/O 口用时,需加上拉电 阻。 7. ISP(在系统可编程)/IAP(在应用可编程) ,无需专用编程器,无 需专用仿 真器,可通过串口(RxD/,TxD/)直接下载用户程 序,数秒即可完成一片 8. 具有 EEPROM 功能 9. 具有看门狗功能 10. 共 3 个 16 位定时器/计数器。即定时器 T0、T1、T2 11. 外部中断 4 路,下降沿中断或低电平触发电路,Power Down 模式可 由外 部中断低电平触发中断方式唤醒 12. 通用异步串行口(UART) ,还可用定时器软件实现多个 UART 13. 工作温度范围-40~85℃(工业级)/0~75℃(商业级) 14. PDIP 封装 STC89C52RC 单片机的工作模式 掉电模式典型功耗0;j-- { fori0;i0;i--; } void COMvoid { uchar i; fori0;i8;i { U8FLAG2; //--------------------- whileIO Delay_10us; Delay_10us; // Delay_10us; U8temp0; ifIOU8temp1; U8FLAG2; whileIO //---------------------- ifU8FLAG1break; U8comdata1; U8comdata|U8temp; } } //-------------------------------- void RHvoid { IO0; Delay150; IO1; Delay_10us; Delay_10us; Delay_10us; Delay_10us; IO1; ifIO { U8FLAG2; whileIO U8FLAG2; whileIO COM; U8RH_data_H_tempU8comdata; COM; U8RH_data_L_tempU8comdata; COM; U8T_data_H_tempU8comdata; COM; U8T_data_L_tempU8comdata; COM; U8checkdata_tempU8comdata; IO1; U8tempU8T_data_H_tempU8T_data_L_tempU8RH_data_H_tempU8RH_data_L_temp; ifU8tempU8checkdata_temp { U8RH_data_HU8RH_data_H_temp; U8RH_data_LU8RH_data_L_temp; U8T_data_HU8T_data_H_temp; U8T_data_LU8T_data_L_temp; U8checkdataU8checkdata_temp; } } } void xiaoyin {P20XFF; P00XFF; Delay_10us; } void disp { P20 xfe; P0dis_7[ds1]; Delay15; xiaoyin; P20 xfd; P0dis_7[ds2]; Delay15; xiaoyin; P20 xfb; P0dis_7[ds3]; Delay15; xiaoyin; P20 xf7; P0dis_7[ds4]; Delay15; xiaoyin; } void disp_settemp_H { P20 xfe; P00 x87; Delay11; xiaoyin; P20 xfd; P00 x89; Delay11; xiaoyin; P20 xf7; P0dis_7[set_temp_H_ge]; Delay11; xiaoyin; P20 xfb; P0dis_7[set_temp_H_shi]; Delay11; xiaoyin; } void disp_settemp_L { P20 xfe; P00 x87; Delay11; xiaoyin; P20 xfd; P00 xc7; Delay11; xiaoyin; P20 xf7; P0dis_7[set_temp_L_ge]; Delay11; xiaoyin; P20 xfb; P0dis_7[set_temp_L_shi]; Delay11; xiaoyin; } void disp_sethumi_H { P20 xfe; P00 x89; Delay11; xiaoyin; P20 xfd; P00 x89; Delay11; xiaoyin; P20 xf7; P0dis_7[set_humi_H_ge]; Delay11; xiaoyin; P20 xfb; P0dis_7[set_humi_H_shi]; Delay11; xiaoyin; } void disp_sethumi_L {P20 xfe; P00 x89; Delay11; xiaoyin; P20 xfd; P00 xc7; Delay11; xiaoyin; P20 xf7; P0dis_7[set_humi_L_ge]; Delay11; xiaoyin; P20 xfb; P0dis_7[set_humi_L_shi]; Delay11; xiaoyin; } void key_scan { ifk10 { whilek10; flag; ifflag5 flag0; } ifflag1 { whilek11 { ifk20 {whilek20; set_temp_H; ifset_temp_H100 set_temp_H0;} ifk30 {whilek3 0; set_temp_H--; ifset_temp_H