?? xf4.c
字號:
#include <reg51.h>
/*unsigned char DATA_7SEG[10] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};*/
unsigned char DAT[11]={0xfd,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6,0x00};
/* unsigned char DIG[12]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3d"=",0x5b"[",0x25"%"0x24"$"};*/
void delay(int ) ;
sbit scl=P2^5;
sbit sda=P2^4;
sbit P27=P2^7; //key
sbit P26=P2^6 ; //紅外
sbit P20=P2^0; //升
sbit P21=P2^1; //降
sbit P22=P2^2; //綠
sbit P23=P2^3; //紅
sbit SE=P1^0;
sbit SCK=P1^1;
sbit RCK=P1^2;
sbit DOG=P1^3;
void x24c02_read(unsigned ); //從24c02的地址address中讀取一批字節(jié)數(shù)據(jù),顯示到led
void x24c02_write(unsigned ); //向24c02的address地址中寫入一字節(jié)數(shù)據(jù)info
void x24c02_init(); //24c02初始化子程序
void start();
void stop();
unsigned char readx();
void clock();
void out_disp(unsigned char);
void main()
{
unsigned char dat1,dat2,pcdata;
int i,m,zt;
unsigned add;
delay(1000);
x24c02_init();
while (1){
if(P27==0){
P22=0;/*綠燈*/P23=1;/*紅燈*/P20=0;/*欄桿機升*/P21=1;/*欄桿機降*/
// tx_char("ok");
// add=rx_addr();
// i=rx_char();
m=9;
/*調(diào)用中斷*/
start(); x24c02_write(0xa0);
clock(); x24c02_write(0x00);
for(m=0;m<i;m++)
{
//pcdata=rx_char();
clock(); x24c02_write(DAT[9]);
clock(); }
stop();
delay(5);
x24c02_read(0x00);
}
delay(100);
}
}
void delay(int time) {
int i,j;
for (i=0;i<time;i++)
{
for (j= 0;j<10;j++) ;}
}
void out_disp(unsigned char dd) {
unsigned char i,k;
for (i=0;i<8;i++) { k=dd & 0x01;SE=k;SCK=1;dd=dd>>1;SCK=0; }
RCK=0;RCK=1;
}
void flash()
{
unsigned char u;
DOG=~DOG;
}
void x24c02_init()
{
scl=1; flash(); sda=1; flash();
}
void start()
{
sda=1; flash(); scl=1; flash(); sda=0; flash(); scl=0; sda=1;flash();
}
void stop()
{
sda=0; flash(); scl=1; flash(); sda=1; flash();scl=0;
}
void x24c02_write(unsigned char j)
{
unsigned char i,temp;
temp=j;
for (i=0;i<8;i++){
temp=temp<<1; scl=0; flash(); sda=CY; flash(); scl=1; flash();
}
scl=0; flash(); sda=1; flash();
}
unsigned char readx()
{
unsigned char i,j,k=0;
flash(); sda=1;
for (i=0;i<8;i++){
flash(); scl=1; flash();
k=(k<<1)|sda; scl=0;
}
flash(); return(k);
}
void clock()
{
char i=0;
scl=1; flash();
while ((sda==1)&&(i<255))i++;
scl=0; flash();
}
void x24c02_read(unsigned address)
{
unsigned char i,p;
start(); writex(0xa0);
clock(); writex(address);
clock(); start();
writex(0xa1); clock();
for(p=0;p<9;p=p+2){
i=readx();
out_disp(i);
i=readx();
out_disp(i);
RCK=0; RCK=1;
P0=p/32;
}
stop();
delay1(1);
}
void x24c02_write(unsigned address,unsigned char info)
{
EA=0;
start(); writex(0xa0);
clock(); writex(address);
clock(); writex(info);
clock(); stop();
EA=1;
delay1(5);
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -