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烧写程序,前几天用都可以的呀,怎么今天就不行了呢?老是

天问BlockSTC15F2K60S2串口输出和led闪烁

STC15单片机最小系统DIY

PCB开源分享STC15F2K61S2开发板

STC15利用库函数实现printf和scanf重载示例模板

STC15单片机利用PCA捕获功能测量脉宽应用示例