这个单片机程序调了一夜,实在没办法了,帮帮忙吧

[复制链接]
2665|5
 楼主| hjc19911203 发表于 2012-5-31 08:19 | 显示全部楼层 |阅读模式
#include<reg51.h>
#define uint unsigned int
#define uchar unsigned char
sbit ACC_7=ACC^7;
sbit sclk=P1^7;
sbit dio=P2^3;
sbit ce=P1^3;
uchar shi,fen,miao;
uchar code table[]={


0xC0,/*0*/


0xF9,/*1*/


0xA4,/*2*/


0xB0,/*3*/



0x99,/*4*/


0x92,/*5*/


0x82,/*6*/


0xF8,/*7*/


0x80,/*8*/


0x90,/*9*/

};
void delay(uchar z)
{

uchar i,j;


for(i=z;i>0;i--)


for(j=110;j>0;j--);

}
void y6c()
{

P2 |= 0xC0;


P2 &= 0x1F;

}
void y7c()
{

P2|=0xe0;


P2&=0x1f;

}
void write(uchar add,dat)
{

uchar i,temp;


ce=0;


sclk=0;


ce=1;


for(i=8;i>0;i--)


{


sclk=0;


temp=add;


dio=(bit)(temp&0x01);


add>>=1;


sclk=1;


}


for(i=8;i>0;i--)


{


sclk=0;


temp=dat;


dio=(bit)(temp&0x01);


add>>=1;


sclk=1;


}


ce=0;

}
uchar read(uchar add)
{

uchar i,temp,dat1,dat2;


ce=0;


sclk=0;


ce=1;


for(i=8;i>0;i--)


{


sclk=0;


temp=add;


dio=(bit)(temp&0x01);


add>>=1;


sclk=1;


}


for(i=8;i>0;i--)


{


ACC_7=dio;


sclk=1;


ACC>>=1;


sclk=0;


}


ce=0;


dat1=ACC;


dat2=dat1/16;


dat1=dat1%16;


dat1=dat1+dat2*10;


return dat1;

}
void init()
{

write(0x8e,0x00);


write(0x80,0x00);


write(0x82,0x22);


write(0x84,0x32);


write(0x8e,0x80);

}

void display(uchar miao,fen,shi)
{

uchar shi1,shi2,shi3,ge1,ge2,ge3;


shi1=miao/10;


ge1=miao%10;



shi2=fen/10;


ge2=fen%10;



shi3=shi/10;


ge3=shi%10;

  

P0=table[ge1];


y7c();


P0=0x80;


y6c();


delay(4);


P0=table[shi1];


y7c();


P0=0x40;


y6c();


delay(4);



P0=table[ge2];


y7c();


P0=0x20;


y6c();


delay(4);


P0=table[shi2];


y7c();


P0=0x10;


y6c();


delay(4);



P0=table[ge3];


y7c();


P0=0x08;


y6c();


delay(4);


P0=table[shi3];


y7c();


P0=0x04;


y6c();


delay(4);

                           
}
void main()
{

init();


while(1)


{


display(read(0x81),read(0x83),read(0x85));


}

}
wangyy608 发表于 2012-5-31 08:31 | 显示全部楼层
。。。。这个,总要说说这个程序大概是干什么的,有什么问题吧
lxc806705 发表于 2012-5-31 08:38 | 显示全部楼层
有点晕,好像是在模拟SPI总线和用数码管显示时钟?这2个扯不上一起啊
ayb_ice 发表于 2012-5-31 09:09 | 显示全部楼层
直接使用ACC.7,死的快,太正常了
yiucing 发表于 2012-5-31 09:24 | 显示全部楼层
C语言中不要直接操作ACC吧。。
原野之狼 发表于 2012-5-31 09:28 | 显示全部楼层
站在巨人的肩膀上才能看得更远 走得更顺
所以多和巨人打交道  不要闭门造车
您需要登录后才可以回帖 登录 | 注册

本版积分规则

15

主题

134

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部