|
不好意思~~这是源代码
#include
#include //包含VI2C软件包
#include
#define cpld 0xEE //定义器件地址 改过原来为A2
#define WRADDR 0x00 //定义写单元首地址
#define RDADDR 0x02 //定义读单元首地址
unsigned char disp_buf[8]={0,0,0,0,0,0,0,0};
/*********************************************************************************************************
** 函数名称: display
** 功能描述: 7298A led显示
** 输 入: *sd : 显示缓冲区的头地址
**
** 输 出: 0 : OK;
** 1 : FAIL;
** 全局变量: 无
** 调用模块: ZLG7289_SendBuf
**
** 作 者: 叶皓贲
** 日 期: 2003-3-4
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
unsigned char display(unsigned char *sd)
{
sd[0]=sd[0]&0x7f;
sd[1]=sd[1]&0x7f;
sd[2]=sd[2]&0x3f; //屏蔽保留位
disp_buf[0] =(sd[0]%16);
disp_buf[1] =(sd[0]/16);///////////////////////////////
disp_buf[2] = 31;
disp_buf[3] =(sd[1]%16);
disp_buf[4] =(sd[1]/16);
disp_buf[5] = 31;
disp_buf[6] =(sd[2]%16);
disp_buf[7] =(sd[2]/16);
ZLG7290_SendBuf(disp_buf,8);
return 0;
}
/*********************************************************************************************************
** 函数名称: DelayNS
** 功能描述: 长软件延时
** 输 入: no : 延时参数,值越大时延时越久
**
** 输 出: 0 : OK;
** 1 : FAIL;
** 全局变量: 无
** 调用模块: 无
**
** 作 者: 叶皓贲
** 日 期: 2003-3-4
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
bit Ircv(uchar sla,uchar *s)
{
Start_I2c(); /*启动总线*/
SendByte(sla); /*发送器件地址*/
if(ack==0)return(0);
*s=RcvByte(); /*发送数据*/
Ack_I2c(1); /*发送非应位*/
Stop_I2c(); /*结束总线*/
return(1);
}
unsigned char DelayNS(unsigned char no)
{
unsigned char i,j; //延时参数
for(; no>0; no--)
{
for(i=0; i<100; i++)
for(j=0; j<100; j++);
}
return 0;
}
void main()
{
//unsigned char td[5]={0x00,0x12,0x30,0x30,0x12}; 定义初始化字 改过
unsigned char rd ; //定义接收法缓冲区
//ISendStr(PCF8563,WRADDR,td,0x5); 初始化PCF8563,如果需要的话可以不去掉 改过
while(1)
{
//IRcvStr(PCF8563,RDADDR,rd,0x3); 读现在的时、分、?
Ircv(cpld,rd);
DelayNS(1);
display(rd); //调显示子程序
DelayNS(1);
}
} |
|