下载此文档

DS1302读写程序.doc


文档分类:通信/电子 | 页数:约4页 举报非法文档有奖
1/4
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/4 下载此文档
文档列表 文档介绍
/*日期:2010年10月10日文件名:DS1302功能:第三步,实现单片机对DS1302的读写,将时间信息显示在数码管上,断电后仍能正常计时*/unsignedcharrec_time[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00};//定义一个数组存储秒,分,时,日,月,周,年unsignedcharled[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//定义数码管的0~9的段码//对DS1320的三个和单片机的接口进行字符常量定义#define SCLK PORTC0_bit#define IO   PORTC1_bit#define RST  PORTC2_bit//初始化和DS1302连接的三个端口voidds1302_init(){ DDRC|=0x07;//设置PC0,1,2为输出 SCLK=0; //设置SCLK初始值为0 IO=1;  //设置IO初始值为1 RST=0; //设置RST初始值为0}//写入一个字节voidds1302_write_byte(unsignedchardat){ unsignedchari; for(i=0;i<8;i++) {   SCLK=0; //时钟信号拉低   if(dat&0x01)      IO=1; //判断地址字节的最低位,1位为1则拉高IO   else IO=0;//1位为0,则输入数据为0,拉低IO   delay_us(1);   SCLK=1;//时钟信号拉高,产生上升沿   delay_us(1);   dat>>=1; //字节右移一位 }}//读出一个字节unsignedchards1302_read_byte(){ unsignedchari,dat=0; DDC1_bit=0; //设置IO的方向为输入 PORTC1_bit=0; //设置IO为高阻态 for(i=0;i<8;i++) {   dat>>=1;//数据右移一位   SCLK=1;//设置SCLK为高电平   delay_us(1);   SCLK=0; //设置SCLK为低电平,产生下降沿   delay_us(1);   if(PINC1_bit==1) //如果读出的数据为1     dat|=0x80;    //数据位1,则写入1 } DDC1_bit=1;//将IO口的方向改为输出 returndat;//返回得到的数据}//向DS1302写入一个地址和数据voidds1302_write(unsignedcharadd,unsignedchardat){ RST=0;   //将RST拉低 SCLK=0;  //将SCLK拉低 RST=1;   //将RST拉高 ds1302_write_byte(add);//写入地址字节 ds1302_write_byte(dat);//写入数据 SCLK=1; //将SCLK拉高 RST=0;  //将RST拉低}unsignedchards1302_read(unsignedcharadd){  unsignedchar shuju; //定义一个变量,存储返回的数据  RST=0;  //将RST拉低  SCLK=0;  //将SCLK拉低  RST

DS1302读写程序 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数4
  • 收藏数0 收藏
  • 顶次数0
  • 上传人ffy51856fy
  • 文件大小24 KB
  • 时间2019-06-05