|
大家好,我身邊就我自己在學(xué)單片機(jī),呵呵,我寫的程序過(guò)不去就只能求助大家了,除了程序以外我想問(wèn)大家個(gè)問(wèn)題,郭天祥的新概念51單片機(jī)C語(yǔ)言教程到底怎么樣,為什么我和他的程序完全一樣卻不能正常運(yùn)行啊。
#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;
}
}
|
|