?? bc7281a.c
字號:
#include"config.h"
//*******************************************************************************************************
//***************************** GLOBAL PERAMETER *************************************
//*******************************************************************************************************
/*********************************************************************************************************
** 函數(shù)名稱: send_byte
** 功能描述: 寫入BC728X
**
** 輸 入: sbyte //數(shù)據(jù)
** 輸 出: 無
** 全局變量: 無
** 調(diào)用模塊: 無
********************************************************************************************************/
void send_byte(unsigned char sbyte)
{
unsigned char i;
BC728X_CLK=0;
BC728X_CLK=1;
for(i=0;(i<250)&&BC728X_DAT;i++)
{
BC728X_CLK=0;
BC728X_CLK=1;
}//while(BC728X_DAT);
if(BC728X_DAT)
return;
BC728X_CLK=0;
BC728X_CLK=1;
//while(!BC728X_DAT);
for(i=0;(i<250)&&(!BC728X_DAT);i++);
if(!BC728X_DAT)
return;
for(i=0;i<8;i++)
{
if(sbyte&0x80)
{
BC728X_DAT=1;
}
else
{
BC728X_DAT=0;
}
sbyte<<=1;
BC728X_CLK=0;
BC728X_CLK=1;
// _Nop();
// _Nop();
// _Nop();
// _Nop();
// _Nop();
// _Nop();
// _Nop();
}
BC728X_DAT=1;
_Nop();
_Nop();
_Nop();
_Nop();
// _Nop();
// _Nop();
// _Nop();
}
/*********************************************************************************************************
** 函數(shù)名稱: recieve_byte
** 功能描述: 寫入BC728X
**
** 輸 入: 無
** 輸 出: 無
** 全局變量: 無
** 調(diào)用模塊: 無
********************************************************************************************************/
unsigned char receive_byte(void)
{
unsigned char i,ibyte;
BC728X_CLK=0;
BC728X_CLK=1;
//while(!BC728X_DAT);
for(i=0;(i<250)&&(!BC728X_DAT);i++);
if(!BC728X_DAT)
return;
BC728X_CLK=0;
BC728X_CLK=1;
for(i=0;i<8;i++)
{
_Nop();
_Nop();
// _Nop();
// _Nop();
// _Nop();
// _Nop();
// _Nop();
ibyte<<=1;
if(BC728X_DAT)
{
ibyte++;
}
BC728X_CLK=0;
BC728X_CLK=1;
}
BC728X_DAT=1;
_Nop();
_Nop();
// _Nop();
// _Nop();
// _Nop();
// _Nop();
// _Nop();
return(ibyte);
}
/*********************************************************************************************************
** 函數(shù)名稱: Write728x
** 功能描述: 寫入BC728X
**
** 輸 入: addr, //地址
** wdata //數(shù)據(jù)
** 輸 出: 無
** 全局變量: 無
** 調(diào)用模塊: 無
********************************************************************************************************/
void Write728x(unsigned char addr,unsigned char wdata)
{
ES=0;
send_byte(addr);
send_byte(wdata);
ES=1;
}
/*********************************************************************************************************
** 函數(shù)名稱: Read728x
** 功能描述: 讀入BC728X
**
** 輸 入: addr, //地址
**
** 輸 出: receive_byte() //數(shù)據(jù)
** 全局變量: 無
** 調(diào)用模塊: receive_byte()
********************************************************************************************************/
unsigned char Read728x(unsigned char addr)
{
addr|=0x80;
send_byte(addr);
return(receive_byte());
}
/*********************************************************************************************************
** 函數(shù)名稱: DispNum
** 功能描述: 顯示數(shù)字
**
** 輸 入: addr, //地址
**
** 輸 出: 無
** 全局變量: 無
** 調(diào)用模塊: 無
********************************************************************************************************/
void DispNum(unsigned char address,unsigned long num)
{
idata char i,j;
ES=0;
switch(address)
{
case 0 : j=1;
for(i=6;i&&j;i--)
{
j=num%10;
j+=((i-1)<<4);
Write728x(0x14,j);
num/=10;
if(num>0)
j=1;
else
j=0;
}
if(i)
{
for(;i--;)
Write728x((i-1),0xFF);
}
break;
case 1 : j=1;
for(i=12;(i>6)&&j;i--)
{
j=num%10;
j+=((i-1)<<4);
Write728x(0x14,j);
num/=10;
if(num>0)
j=1;
else
j=0;
}
if(i>6)
{
for(;i>6;i--)
Write728x((i-1),0xFF);
}
break;
case 2 : for(i=13;i<15;i++)
{
Write728x((i-1),0xFF);
}
if(_Flag_StateLed)
Write728x(0x18,0x77);
j=1;
for(i=15;i>12&&j;i--)
{
j=num%10;
j+=((i-1)<<4);
num/=10;
Write728x(0x14,j);
j=num;
}
break;
case 3 : for(i=12;i>6;i--)
{
j=num%10;
j+=((i-1)<<4);
Write728x(0x14,j);
j&=0x0F;
num/=10;
if(j)
break;
if(!num)
break;
}
break;
default : return;
}
ES=1;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -