基于串行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)的延时时间

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值