您的位置 首页 动态

PCF8583+LM1602的protues仿真实例(C言语)

程序代码:includereg51h>includeintrinsh>includeabsacch>definelcdwritecmdXBYTE[0xFC00]defineledwr

程序代码:

#include
#include
#include
#define lcdwritecmd XBYTE[0xFC00]
#define ledwritedat XBYTE[0xFE00]
sbit SCL=P1^0 ;
sbit SDA=P1^1 ;
char tab[2];
unsigned char year,mon,day,hour,min,sec,state,hudsec;
//============================延时函数====================================
void delay(unsigned char n)
{
unsigned char i,j;
for(i=0;i for(j=0;j<5;j++);
}
void delayshort()
{
_nop_();
_nop_();
_nop_();
_nop_();
}
//=========================================================================
//============================1602写指令函数===============================
void writecmd(unsigned char a)
{
delay(100);
lcdwritecmd=a;
}
//=========================================================================
//============================1602写数据函数===============================
void writedata(char lcddata)
{
delay(10);
ledwritedat=lcddata;
}
//=========================================================================
//===========================1602显现字符串据函数==========================
void displaystring(unsigned char add,unsigned char n,char tab[])
{
unsigned char i;
for(i=0;i {
writecmd(add+i);
writedata(tab[i]);
delay(100);
}
}
//=========================================================================
//===========================I2C开端信号函数===============================
void start()
{

}
//=========================================================================
//===========================I2C完毕信号函数===============================
void stop()
{

}
//=========================================================================
//===========================I2C从机等候应对信号函数=======================
void waitack()
{

}
//=========================================================================
//===========================I2C主机应对信号函数===========================
void mack()
{

}
//=========================================================================
//===========================I2C写一个字节函数=============================
void write_byte(unsigned char a)
{

}
//=========================================================================
//===========================I2C读一个字节函数=============================
unsigned char read_byte()
{

}
//=========================================================================
//===========================PCF8583写函数=================================
//参数adr:寄存器地址
//参数dat:写入得数据
void PCF8583_write(unsigned char adr,unsigned char dat)
{
start();
write_byte(0xa0);
waitack();
write_byte(adr);
waitack();
write_byte(dat);
waitack();
stop();
}
//=========================================================================
//===========================PCF8583读函数=================================
//连续读区以00开始地址的7个单元的数据
void PCF8583_read()
{
start();
write_byte(0xA0);
waitack();
write_byte(0x00);
waitack();
stop();
start();
write_byte(0xA1);
waitack();
state = read_byte(); // 读状况寄存器的值
mack();
hudsec = read_byte(); // 读百分之一秒数值寄存器的值
mack();
sec = read_byte(); // 读秒数值寄存器的值
mack();
min = read_byte(); // 读分数值寄存器的值
mack();
hour = read_byte(); // 读时数值寄存器的值
mack();
day = read_byte(); // 读天数值寄存器的值
mack();
mon = read_byte(); // 读时月值寄存器的值
mack();
stop();

}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/news/dongtai/259365.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部