找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2703|回复: 7
收起左侧

AT24C02的控制程序

[复制链接]
ID:70526 发表于 2015-1-20 08:27 | 显示全部楼层 |阅读模式
   大家好,我身边就我自己在学单片机,呵呵,我写的程序过不去就只能求助大家了,除了程序以外我想问大家个问题,郭天祥的新概念51单片机C语言教程到底怎么样,为什么我和他的程序完全一样却不能正常运行啊。
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned char
bit write=0;
sbit SDA=P2^0;
sbit SCL=P2^1;
sbit le0=P1^0;
sbit le1=P1^1;
uchar sec,tcnt=0;
uchar code a[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

void dely(){;;}

void delay(uint z){
uint x,y;
for(x=z;x>0;x--)
   for(y=110;y>0;y--);
}

void init(){
SCL=1;
dely();
SDA=1;
dely();
}

void start(){
SDA=1;
dely();
SCL=1;
dely();
SDA=0;
dely();
}

void respond(){
uchar i=0;
SCL=1;
dely();
while((SDA==1)&&(i<255))
     i++;
SCL=0;
dely();
}

void stop(){
SDA=0;
dely();
SCL=1;
dely();
SDA=1;
dely();
}

void writebyte(uchar date){
uchar i,temp;
temp=date;
for(i=0;i<8;i++){
temp=temp<<1;
SCL=0;
dely();
SDA=CY;
dely();
SCL=1;
dely();
}
SCL=0;
dely();
SDA=1;
dely();
}

uchar readbyte(){
uchar i,k;
SCL=0;
dely();
SDA=1;
for(i=0;i<8;i++){
SCL=1;
dely();
k=(k<<1)|SDA;
SCL=0;
dely();
}
dely();
return k;
}

void write_add(uchar address,uchar date){
start();
writebyte(0xa0);
respond();
writebyte(address);
respond();
writebyte(date);
respond();
stop();
}

uchar read_add(uchar address){
uchar date;
start();
writebyte(0xa0);
respond();
writebyte(address);
start();
writebyte(0xa1);
respond();
date=readbyte();
stop();
return date;
}

void display(uchar numdis)          //显示程序
{uchar gw,sw;
sw=numdis/10;
gw=numdis%10;

le0=0;
le1=1;
P0=a[sw];
delay(5);
P0=0x00;
le1=0;
le0=1;

P0=a[gw];
delay(5);
P0=0x00;
le0=0;
le1=1;
}

void main(){
init();
sec=read_add(2);
if(sec>100)
  sec=0;
TMOD=0X01;
ET0=1;
EA=1;
TH0=0x3C;
TL0=0xB0;
TR0=1;
while(1){
   display(sec);
   if(write==1){
    write=0;
        write_add(2,sec);
   }
}
}

void zd() interrupt 1{
TH0=0x3C;
TL0=0xB0;
tcnt++;
if(tcnt==20){
  tcnt=0;
  sec++;
  write=1;
  if(sec==100)
  sec=0;
}
}
回复

使用道具 举报

ID:1 发表于 2015-1-20 13:29 来自手机 | 显示全部楼层
可能你的电路和他不一样,你用的是什么单片机开发板
回复

使用道具 举报

ID:70526 发表于 2015-1-20 14:42 | 显示全部楼层
admin 发表于 2015-1-20 13:29
可能你的电路和他不一样,你用的是什么单片机开发板

普中科技,我已经把我的原理图上传了

EM3_V3.0原理图.pdf

1.45 MB, 下载次数: 16

原理图

回复

使用道具 举报

ID:72751 发表于 2015-1-29 17:13 | 显示全部楼层
其实要先看开发板的原理是否一样了,如果一样的话是可以移植的
回复

使用道具 举报

ID:58502 发表于 2015-1-31 22:36 | 显示全部楼层
我的也是普中的板子,有问题可以问我,互相交流下
我先帮你看看程序
回复

使用道具 举报

ID:58502 发表于 2015-1-31 22:45 | 显示全部楼层
看出来了,老郭的板子是动态数码管位选和段选都是使用的P0,通过P1.0和P1.1来进行选择,而普中的没有这样的设计,所以需要改改动态显示部分
回复

使用道具 举报

ID:79544 发表于 2015-11-27 19:46 | 显示全部楼层
加573锁存器,一组IO口控制数码管的段和位、
回复

使用道具 举报

ID:153199 发表于 2016-12-31 15:24 | 显示全部楼层
加锁存器
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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