导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→发表看法:[苹果啃牙]请教!



No.33538
作者:苹果啃牙
邮件:yxling316@yahoo.com.cn
ID:12843
登陆:1次
文章数:5篇
最后登陆IP:202.103.38.170
最后登陆:2003/6/8 10:34:24
注册:2003/6/6 19:21:11
财富:115
发帖时间:2003/6/6 19:26:10
发贴者IP:202.103.38.170
标题:苹果啃牙:请教!
摘要:No.33538请教! 不知道我这个程序出错出在哪里,请各位大侠帮帮小妹我!
谢谢··!!

#include   <reg52.h>  
#include   <intrins.h>  
//#define uint unsigned int

//下面是引脚连接关系

sbit SCL_DS1302 =P3^2;
sbit IO_DS1302  =P3^3;
sbit RST_DS1302 =P3^4;
sbit wr = P3^6;
sbit b0=P1^0;
sbit button1=P1^4;
sbit button2=P1^5;
sbit button3=P1^6;
sbit button4=P1^7;


unsigned int data display_buffer1[8],display_buffer2[8];
unsigned char bdata data_ds1302;
sbit bit_data0=data_ds1302^0;
sbit bit_data7=data_ds1302^7;
unsigned char bdata x;
sbit x0   =x^0;
sbit x7   =x^7;

void open_write_bit();
void initial_ds1302();
unsigned char read_ds1302(char command);
void open_write_bit();
void close_write_bit();
void read_time();
void set_time();
unsigned int zhuanhuan( unsigned int b);
void display1();
void display2();
void button();
 
void main( void)

 initial_ds1302();  //上电启用,否则不走时
 read_time();   //读取当前的年月日时分秒在数组
 b0=0;
 display_buffer2[5]=0X00;
 display_buffer2[4]=0X03;
 display_buffer2[3]=0X00;
 display_buffer2[2]=0X06;
 display_buffer2[1]=0X01;
 display_buffer2[0]=0X04;
 display_buffer1[5]=0X00;
 display_buffer1[4]=0X08;
 display_buffer1[3]=0X01;
 display_buffer1[2]=0X00;
 display_buffer1[1]=0X05;
 display_buffer1[0]=0X08; //将03年6月14日08时10分58秒设置为当前时间
 set_time();    //将数组中的时间置入DS1302
 while(1)
 {
  button();
     read_time();
 }
}

void display1()
{
   unsigned int *p;
 unsigned int i, j, k; 
 p = display_buffer1;
 j = 0xA0;
 for(i=0;i  <8;i++)
 {
 k = *p;
 k = zhuanhuan( k);
 P2 = j;
 wr = 0;
//  while(1);
 _nop_( ); _nop_( ); _nop_( ); _nop_( );
 P0 = k;
 _nop_( ); _nop_( );
 wr = 1;
 p = p + 1;
 j = j + 4;
 }
}

void display2()
{
   unsigned int *p;
 unsigned int i, j, k; 
 p = display_buffer2;
 j = 0xA0;
 for(i=0;i  <8;i++)
 {
 k = *p;
 k = zhuanhuan( k);
 P2 = j;
 wr = 0;
//  while(1);
 _nop_( ); _nop_( ); _nop_( ); _nop_( );
 P0 = k;
 _nop_( ); _nop_( );
 wr = 1;
 p = p + 1;
 j = j + 4;
 }
}

unsigned int zhuanhuan( unsigned int b)
{
 switch( b)
 {
 case 0: b = 0xc0; break;
 case 1: b = 0xf9; break;
 case 2: b = 0xa4; break;
 case 3: b = 0xb0; break;
 case 4: b = 0x99; break;
 case 5: b = 0x92; break;
 case 6: b = 0x82; break;
 case 7: b = 0xf8; break;
 case 8: b = 0x80; break;
 case 9: b = 0x98; break;
 default: break;
 }
 return b;
}

void close_write_bit()
{
 char i;
 SCL_DS1302=0;
 _nop_();
 RST_DS1302=1;
 _nop_();_nop_();
 data_ds1302=0x8e;   //write control redister
 for (i=1;i  <=8;i++) {
       SCL_DS1302=0;IO_DS1302=bit_data0;
       _nop_();SCL_DS1302=1;
       data_ds1302=data_ds1302>  >  1; 
      }
 data_ds1302=0x80;   //close write protect bit
 IO_DS1302=0;
 for (i=1;i  <=8;i++) {
       SCL_DS1302=0;IO_DS1302=bit_data0;
       _nop_();SCL_DS1302=1;
       data_ds1302=data_ds1302>  >  1; 
         }
}


void open_write_bit()
{
 char i;
 SCL_DS1302=0;
 _nop_();
 RST_DS1302=1;
 _nop_();_nop_();
 data_ds1302=0x8e;   //write control redister
 for (i=1;i  <=8;i++) {
       SCL_DS1302=0;IO_DS1302=bit_data0;
       _nop_();SCL_DS1302=1;
       data_ds1302=data_ds1302>  >  1; 
         }
 data_ds1302=0x00;   //open write protect bit
 IO_DS1302=0;
 for (i=1;i  <=8;i++) {
       SCL_DS1302=0;IO_DS1302=bit_data0;
       _nop_();SCL_DS1302=1;
       data_ds1302=data_ds1302>  >  1; 
         }
}

void initial_ds1302()
{
unsigned char i;
 SCL_DS1302=0;
 _nop_();
 RST_DS1302=1;
 _nop_();_nop_();
 data_ds1302=0x8e;   //write control redister
 for (i=1;i  <=8;i++) {
       SCL_DS1302=0;IO_DS1302=bit_data0;
       _nop_();SCL_DS1302=1;
       data_ds1302=data_ds1302>  >  1; 
      }
 data_ds1302=0x80;   //close write protect bit
 IO_DS1302=0;
 for (i=1;i  <=8;i++) {
       SCL_DS1302=0;IO_DS1302=bit_data0;_nop_();
       SCL_DS1302=1;data_ds1302=data_ds1302>  >  1; 
      }
 RST_DS1302=0;
 _nop_();
 SCL_DS1302=0;
 SCL_DS1302=0;
 _nop_();
 RST_DS1302=1;
 _nop_();_nop_();
 data_ds1302=0x90;    ......

>>返回讨论的主题



  发表回复
用户名   *您没有注册?
密码   *
验证码   * .
标题   *
心情
随便说说    我回答你    最新发现    得意的笑   
气死我了    真是没劲    坚决同意    表示反对   
大家过来    好奇怪哟    懒得理它    大家小心   
文件上传
内容


字体:      字体大小:    颜色:
粗体 斜体 下划线 居中 超级连接 Email连接 图片 Flash图片 Shockwave文件 realplay视频文件 Media Player视频文件 QuickTime视频文件 引用 飞行字 移动字 发光字 阴影字 查看更多的心情图标 背景音乐
点击加入表情
                         
选项
有回复时用短消息通知您?

   




老古网执行:31毫秒 最大:5186毫秒 查询6次