|
/***發(fā)送一個字節(jié)***/
void 1302Write(unsigned char dat)
{
unsigned char mask;
for(mask= 0x01;mask!=0;mask <<= 1) //低位在前,逐位移出
{
if((mask & dat) != 0) //首先輸出該位數(shù)據(jù)
DS1302_IO = 1;
else
DS1302_IO = 0;
DS1302_CK = 1; //然后拉高時鐘
DS1302_CK = 0; //在拉低時鐘,完成一個位的操作
}
DS1302_IO = 1; //最后確保釋放IO引腳
}
/***讀取一個字節(jié)***/
unsigned char 1302Read()
{
unsigned char mask;
unsigned char dat = 0;
for(mask = 0x01;mask != 0; mask <<= 1) //低位在前,逐位讀取
{
if(DS1302_IO != 0) //首先讀取此時IO引腳,并設(shè)置dat中的對應(yīng)位
{
dat |= mask;
}
DS1302_CK = 1; //然后拉高時鐘
DS1302_CK = 0; //再拉低時鐘,完成一個位的操作
}
return dat; //最后返回讀到的字節(jié)數(shù)據(jù)
}
讀出1302數(shù)據(jù)DATA,LCD1602 加個‘0’ , 數(shù)碼管不用加‘0’
buf [0]=(DATA >> 4)+‘0’ ; 高
buf[1]=(DATA & 0X0F)+‘0’ ;低 |
|