-
大小: 1.64MB文件类型: .zip金币: 1下载: 0 次发布日期: 2023-11-07
- 语言: 其他
- 标签: 8563proteus
资源简介
本程序是在keil软件下编写,然后通过Proteus软件仿真完成的。其功能是读取PCF8563的数据,实现时钟的设计。
代码片段和文件信息
/*************************此部分为I2C总线的驱动程序*************************************/
#include
#include
#include
#define NOP() _nop_() /* 定义空指令 */
#define _Nop() _nop_() /*定义空指令*/
sbit SCL=P3^5; //I2C 时钟
sbit SDA=P3^4; //I2C 数据
bit ack; /*应答标志位*/
/*******************************************************************
起动总线函数
函数原型: void Start_I2c();
功能: 启动I2C总线即发送I2C起始条件.
********************************************************************/
void Start_I2c()
{
SDA=1; /*发送起始条件的数据信号*/
_Nop();
SCL=1;
_Nop(); /*起始条件建立时间大于4.7us延时*/
_Nop();
_Nop();
_Nop();
_Nop();
SDA=0; /*发送起始信号*/
_Nop(); /* 起始条件锁定时间大于4μs*/
_Nop();
_Nop();
_Nop();
_Nop();
SCL=0; /*钳住I2C总线,准备发送或接收数据 */
_Nop();
_Nop();
}
/*******************************************************************
结束总线函数
函数原型: void Stop_I2c();
功能: 结束I2C总线即发送I2C结束条件.
********************************************************************/
void Stop_I2c()
{
SDA=0; /*发送结束条件的数据信号*/
_Nop(); /*发送结束条件的时钟信号*/
SCL=1; /*结束条件建立时间大于4μs*/
_Nop();
_Nop();
_Nop();
_Nop();
_Nop();
SDA=1; /*发送I2C总线结束信号*/
_Nop();
_Nop();
_Nop();
_Nop();
}
/*******************************************************************
字节数据发送函数
函数原型: void SendByte(UCHAR c);
功能: 将数据c发送出去可以是地址也可以是数据发完后等待应答并对
此状态位进行操作.(不应答或非应答都使ack=0)
发送数据正常,ack=1; ack=0表示被控器无应答或损坏。
********************************************************************/
void SendByte(unsigned char c)
{
unsigned char BitCnt;
for(BitCnt=0;BitCnt<8;BitCnt++) /*要传送的数据长度为8位*/
{
if((c< else SDA=0;
_Nop();
SCL=1; /*置时钟线为高,通知被控器开始接收数据位*/
_Nop();
_Nop(); /*保证时钟高电平周期大于4μs*/
_Nop();
_Nop();
_Nop();
SCL=0;
}
_Nop();
_Nop();
SDA=1; /*8位发送完后释放数据线,准备接收应答位*/
_Nop();
_Nop();
SCL=1;
_Nop();
_Nop();
_Nop();
if(SDA==1)ack=0;
else ack=1; /*判断是否接收到应答信号*/
SCL=0;
_Nop();
_Nop();
}
/*******************************************************************
字节数据接收函数
函数原型: UCHAR RcvByte();
功能: 用来接收从器件传来的数据并判断总线错误(不发应答信号),
发完后请用应答函数应答从机。
********************************************************************/
unsigned char RcvByte()
{
unsigned char retc;
unsigned char BitCnt;
retc=0;
SDA=1; /*置数据线为输入方式*/
for(BitCnt=0;BitCnt<8;BitCnt++)
{
_Nop();
SCL=0; /*置时钟线为低,准备接收数据位*/
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2014-09-11 17:45 PCF8563\
文件 23925 2014-09-05 15:00 PCF8563\1234
文件 25901 2014-09-05 15:00 PCF8563\1234.M51
文件 1705 2014-09-05 15:05 PCF8563\1234.Opt
文件 2221 2014-09-04 10:48 PCF8563\1234.Uv2
文件 3203 2014-09-05 15:00 PCF8563\1234.hex
文件 84 2014-09-05 15:00 PCF8563\1234.lnp
文件 12583 2014-09-05 15:05 PCF8563\1234.plg
文件 1709 2014-09-05 14:44 PCF8563\1234_Opt.Bak
文件 2181 2014-09-03 17:43 PCF8563\1234_Uv2.Bak
文件 139 2014-08-28 17:57 PCF8563\DATATYPE.h
文件 13314 2014-09-05 15:00 PCF8563\I2C.LST
文件 12160 2014-09-05 15:00 PCF8563\I2C.OBJ
文件 8352 2014-09-04 09:24 PCF8563\I2C.c
文件 463 2012-12-03 13:23 PCF8563\I2C.h
文件 161956 2014-09-05 15:05 PCF8563\LCD1602.DSN
文件 909 2014-09-10 17:53 PCF8563\LCD1602.PWI
文件 5603328 2014-09-03 17:38 PCF8563\PCF8563T.ddb
文件 709608 2012-10-10 09:07 PCF8563\PCF8563_www.ic37.com.pdf
文件 102233 2012-10-25 09:50 PCF8563\PCF8563实时时钟精度的调整方法.pdf
文件 237462 2012-10-25 09:50 PCF8563\PCF8563日历时钟芯片原理及应用设计.pdf
文件 320148 2012-10-25 09:53 PCF8563\PCF8563的中断输出功能.pdf
文件 6376 2005-03-22 15:22 PCF8563\STARTUP.A51
文件 14048 2014-09-05 15:00 PCF8563\STARTUP.LST
文件 749 2014-09-05 15:00 PCF8563\STARTUP.OBJ
文件 5876 2014-09-05 15:00 PCF8563\lcd1602.LST
文件 6896 2014-09-05 15:00 PCF8563\lcd1602.OBJ
文件 2740 2014-09-05 14:47 PCF8563\lcd1602.c
文件 497 2014-08-29 15:24 PCF8563\lcd1602.h
文件 8057 2014-09-05 15:00 PCF8563\main.LST
文件 7149 2014-09-05 15:00 PCF8563\main.OBJ
............此处省略2个文件信息
- 上一篇:七牛云OSS.rar
- 下一篇:M6机翼fluent教程
评论
共有 条评论