找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3072|回复: 0
打印 上一主题 下一主题
收起左侧

普中开发仪上写的程序,做一个秒表,并将数据输入at24c02中,进行掉电保护,失败了。

[复制链接]
跳转到指定楼层
楼主
ID:95423 发表于 2015-11-11 17:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
uchar code mingren[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
uchar code chutian[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
uchar a,b,c,i,num,rce,num1;
int d,f;
sbit sda=P2^0;
sbit scl=P2^1;
void Delay10us();
void action();
void stop();
uchar write(uchar date);
uchar read();
void write_add(uchar address,uchar date);
uchar read_add(uchar address);
void duli(char,char);
void main()
{
TMOD=0x01;
TH0=0x3c;
TL0=0xb0;
EA=1;
ET0=1;
TR0=1;
if(num1>100)
  num1=0;
  while(1)
{duli(b,c);
  write_add(2,num1);
  read_add(2);}
}
void time() interrupt 1
    {TH0=0x3c;
     TL0=0xb0;
  a++;
  if(a==20)
  {a=0;
   num++;
   if(num==100)
   num=0;
   b=num/10;
   c=num%10;}}
uchar write(uchar date)
{ for(i=0;i<8;i++)
{  sda=date>>7;  
    date=date<<1;
  Delay10us();
scl=1;
Delay10us();
scl=0;
Delay10us();}
   sda=1;
   Delay10us();
   scl=1;     //写一个字节
   while(sda)
   {    i++;
     if(i>200)
    {scl=0;
     Delay10us();
     return 0;}}
  scl=0;
  Delay10us();
  return 1;}
uchar read()
{uchar j,k;
sda=1;
Delay10us();
for(j=0;j<8;j++)
{ scl=1;
  Delay10us();
  k<<=1;
    k|=sda;
  Delay10us();
  scl=0;
  Delay10us();

} return k;}
void write_add(uchar address,uchar date)
{action();
write(0xa0);
write(address);
write(date);
stop();}
uchar read_add(uchar address)
{action();
write(0xa0);
write(address);
action();
write(0xa1);
rce=read();
stop();
return rce;}
void action()
   {sda=1;
Delay10us();
    scl=1;
Delay10us();
sda=0;
Delay10us();
scl=0;
Delay10us();
}
void stop()
{   sda=0;
Delay10us();
scl=1;
Delay10us();
sda = 1;
Delay10us();}   
void Delay10us()
{
for(d=1;d>0;d--)
{                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
  for(f=2;f>0;f--);
}}
      
void duli(char b,char c)
{ P0=mingren[0];
  P3=chutian[c];
  P3=0x00;
  P0=mingren[1];
  P3=chutian[b];}

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表