STC15F2K60S2单片机利用24C02记录单片机上电次数
Posted perseverance52
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了STC15F2K60S2单片机利用24C02记录单片机上电次数相关的知识,希望对你有一定的参考价值。
STC15F2K60S2单片利用24C02记录单片机上电次数
-效果演示:
- AT24C02N接线说明:
- STC15F2K60S2引脚功能
源代码参考《51单片机轻松入门-基于STC15W4K系列》配套例程
- 代码架构
如果使用不同的晶振频率,请在uart_debug.c文件中UART_init()
函数里重新设置初值,程序设置的默认初值是采用的11.0592MHz的晶振,9600波特率的速度。
主程序代码
#include "PowerUP.H"
#include "24C01_02.H"
#include "myfun.h"
/*****************************
★★★★★★★★★★★★★★★★★★★★★★★★
利用24C02记录单片机上电次数
如果使用不同的晶振频率,请在uart_debug.c文件中UART_init()里重新设置初值
★★★★★★★★★★★★★★★★★★★★★★★★*/
struct POWER_UP Power_up;
void port_mode() // 端口模式
P0M1=0x00; P0M0=0x00;P1M1=0x00; P1M0=0x00;P2M1=0x00; P2M0=0x00;P3M1=0x00; P3M0=0x00;
P4M1=0x00; P4M0=0x00;P5M1=0x00; P5M0=0x00;P6M1=0x00; P6M0=0x00;P7M1=0x00; P7M0=0x00;
void main()
port_mode(); // 所有IO口设为准双向弱上拉方式。
RdFromROM(SlaveADDR,E2P_RECORD_ADDR,(u8*)&Power_up,sizeof(struct POWER_UP)); // 芯片硬件地址、存储单元地址、数据组、写入字节数
if (Power_up.flag != POWER_UP_MARK)
Power_up.flag = POWER_UP_MARK;
Power_up.times = 1;
else
Power_up.times++;
WrToRomB(SlaveADDR, E2P_RECORD_ADDR,(u8 *)&Power_up,sizeof(struct POWER_UP)); // 芯片硬件地址、存储单元地址、数据组、写入字节数
UART_init();
UART_Send_StrNum("上电次数:",Power_up.times); // 串口输出上电次数,波特率:9600 /11.0592MHZ
while(1)
UART_Send_Str("perseverance51");
Delay1000ms();
P10 =!P10;//反转P10 IO口状态
程序源码
链接:https://pan.baidu.com/s/1bjnWmdqRS2AaA19W_oIE6g
提取码:h2xi
以上是关于STC15F2K60S2单片机利用24C02记录单片机上电次数的主要内容,如果未能解决你的问题,请参考以下文章
我用stc-isp给stc15f2k60s2烧写程序,前几天用都可以的呀,怎么今天就不行了呢?老是