其他分享
首页 > 其他分享> > 基于串行E2PROM掉电保护计数器的设计

基于串行E2PROM掉电保护计数器的设计

作者:互联网

百度网盘下载地址(959):点击下载

本实验是利用数码管来显示一个不断累加的两位数,其效果如图4-5所示:

 

图4-5 数码管的显示实验

在这个实验中,数码管的读数是经过IIC总线,从型号为24C02C的EPROM中读取出来的,该数字每累加一次,也会把累加后的数值保存到24C02C中,当单片机复位或断电时,该数值就不会丢失,当复位后或再上电时,数码管就能显示刚才的读数并在此基础上继续累加下去。

为了证明单片机的复位电路正常,该实验中还设置了流水灯,这是一个8位LED灯轮流点亮的装置,当复位按键被按下后,流水灯就被复位,它会从第一盏灯亮起,但数码管的读数不受影响。流水灯的效果如图4-6所示:

 

图4-6 流水灯实验

#include<reg52.h>
#include <intrins.h>

#define uint unsigned int 
#define uchar unsigned char 

sbit dula = P2^6;
sbit wela = P2^7;

uchar temp,aa,shi,ge,i,t = 0xfe;

uchar code table[] = {
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};

extern uchar read_add(uchar device,uchar address);
extern void write_add(uchar device,uchar address,uchar date);

void delay(uint i,uint j) //delay(1,82)为1.01779ms
{
	uint x,y; //delay(x,0):15.19,39.07,62.94,86.9,110.68,134.55,158.42,182.29,206.17,230.04,253.91(x取0 ~ 10)us 
	for(x = i;x > 0;x --) 
		for(y = j;y > 0;y --); //执行此句约需24us,24x + 14 = delay(x,0)的延时时间

 

标签:E2PROM,uchar,掉电,累加,delay,数码管,复位,uint,串行
来源: https://blog.csdn.net/AuroraFaye/article/details/113815589