您当前的位置:五五电子网电子知识单片机-工控设备综合-其它93c46的51单片机C源程序 正文
93c46的51单片机C源程序

93c46的51单片机C源程序

点击数:7361 次   录入时间:03-04 11:50:32   整理:http://www.55dianzi.com   综合-其它

/****************************************
********** 93c46的51单片机C源程序*****************************************/

#include <reg51.h>
#include <intrins.h>
sbit cs= P1^7;
sbit sk= P1^6;
sbit di= P1^5;
sbit dod= P1^4;

sbit led_r= P1^3;
sbit led_g= P1^2;
/*
#define cs P1^7  
#define sk P1^6 
#define  di P1^5 
#define  dod P3^7 

#define  led_g P1^3
#define  led_r P1^3*/

//#define   de 100 //8

#define  uchar unsigned char 
#define  uint unsigned  int

unsigned char de=100;
/***********************************
@ = _at_ (c51);   _delay(de)=_nop(c51)
_pac ,pcc ,pbc ,pdc is control i/o port 
************************************/

//unsigned  char r_data1  _at_  0x40; 


void _delay(uchar  de)
{
while(de){de--; _nop_();}
}
/****************************************
start bit: 1, op: 10, addr : A6--A0;*****
addrx=1 10 a6a5a4a3a2a1a0 : 10 number ***
******* read_9346()   8bit  
****************************************/

unsigned  char  read_9346(uchar addrx)
{
uchar i;
unsigned char j=0x00;
cs=1; _delay(de);
sk=0; _delay(de);
di=1; //1 1 0
sk=1; _delay(de);
sk=0; _delay(de);
di=1;
sk=1;_delay(de);
sk=0;_delay(de);
di=0;
sk=1;_delay(de);
sk=0;_delay(de);
// a6---a0 valid 7 bit data;so follow
for(i=0;i<7;i++)
{ addrx<<=1;
 di=(addrx&0x80);
  sk=1;_delay(de);
  sk=0;_delay(de);
}
dod=1;
  // return char 8 bit data;
  for(i=0;i<8;i++)
  {//j=(j<<1)|dod;
  sk=1;_delay(de);
  j=(j<<1)|dod;
  sk=0;_delay(de);
}
cs=0;
return j;
}
  
/****************************************
********** en_ dis write_ erase()  8bit
*****************************************/
void en_dis(uchar a)
{
uchar i,en_dis;
cs=1; _delay(de);
sk=0; _delay(de);
di=1; //1 0 0
sk=1; _delay(de);
sk=0; _delay(de);
di=0;
sk=1;_delay(de);
sk=0;_delay(de);
di=0;
sk=1;_delay(de);
sk=0;_delay(de);
if(a>=1)en_dis=0xc0;else en_dis=0x00;  //11x_xxxxb
for(i=0;i<7;i++)

di=en_dis&0x80;
sk=1;_delay(de);
sk=0;_delay(de);
en_dis<<=1;
}
cs=0;
}
/*********************************************
******* void erase_all93c46(void)***********
a>0 write a=0; erase 
*********************************************/
void erase(void)

uchar i,erase;
cs=1; _delay(de);
sk=0; _delay(de);
di=1; //1 0 0
sk=1; _delay(de);
sk=0; _delay(de);
di=0;
sk=1;_delay(de);
sk=0;_delay(de);
di=0;
sk=1;_delay(de);
sk=0;_delay(de);
//if(a>0)erase=0x40;else erase=0x20;
erase=0x80;
for(i=0;i<7;i++)
{
di=erase&0x80;
sk=1;_delay(de);
sk=0;_delay(de);
erase<<=1;
}
cs=0;
}

/*********************

本文关键字:单片机  源程序  综合-其它单片机-工控设备 - 综合-其它