ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2021-03-09 09:01:07  阅读:203  来源: 互联网

标签:E2PROM uchar 掉电 累加 delay 数码管 复位 uint 串行


百度网盘下载地址(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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有