请教一个关于单片机系统的多参数存取问题,高手留步!
发起人:huhui5009  回复数:0  浏览数:3809  最后更新:2010/6/18 14:22:07 by huhui5009

发表新帖  帖子排序:
huhui5009 发表于 2010/6/18 14:22:09
请教一个关于单片机系统的多参数存取问题,高手留步!
这种问题对于做过的朋友来说是相当简单,但是还是请走过路过的高手朋友,耽搁几秒看一下,留个脚印!:)新手在此感谢!
#include<reg51.h>
#include<intrins.h> 
#define uint unsigned int 
#define uchar unsigned char
sbit parameter=P0^4;//if parameter=1;set parameter mode,if parameter=0;finish set parameter
uchar team_data[2]={0,0};
uchar i=0;


void main()           
  {
init();
    while(1)
    {
  while(!parameter)//按键参数设置
      {
          init_uart();//打开串口    //两个51单片机双机通信   
      }
      current(); //显示电流
      }
  }
//-----------------------------this is the intrrupt to receive data-----------------------
void init_uart(void)
{
  SCON=0X50;
  TMOD=0x20;
  TL1=0xfa;
  TH1=0xfa;
  PCON=0x00;
  TR1=1;
  ES=1;
  EA=1;
}


void uart(void) interrupt 4    //这里怎么不用interrupt“0、1、2、3”
{
  if(RI==1)
{
  RI=0;
  team_data=SBUF;
  i++;
  if(i>1) i=0;
  if(i==0)
  switch(team_data[0])
    {
  case 0xb1:
              AAA();break;


        case 0xa1: 
      BBB();break;


  case 0xa2:         
      CCC();break;


  case 0xa3:
      DDD();break;


  case 0xa4:
      EEE();break;
     
  case 0xa5:
              FFF();break;
    default: ;break;
    }
    write_add(0xa0,team_data[0]);//这里的存储是原作者写的,但是我试过了还是存不住。
    delay_ms(100);
    read_add(0xa0);
  }
}
哪位朋友能帮我看看这程序,我要把每一次  switch(team_data[0])的team_data[0]值存起来(放在24C02当中),但是switch每选一个值就发送出去了一次,到最后只能存住一个switch内的参数,
我想过如下分开写:
......
case 0xa1:
dis();
write_add(team_data[0]);
break;
......
但还是不行,请指教,


主程序内我想改成如下:
void main()           
  {
init();
    while(1)
    {
  if(!parameter)//按键参数设置
      {
          init_uart();//打开串口    //两个51单片机双机通信   
      }
  else
  {
    read_add();//读出存储参数
  }
      current(); //显示电流
      }
  }
不知这种结构是否存在问题???
......


还有几个其它的问题也想问一下:
1,为什么team_data[0]定义为两个零?
2,i++;
  if(i>1) i=0;
  if(i==0)
这怎么理解?
......


以前刚学单片机的时候都是写的己知,且单个数据,最近接触一个大程序有点生硬,我知道这是一个多参数的存储与读取,由于没有做过,在思绪方面太模糊,这件事又很急,一下子又找不到怎么办,才来请教大家,请大家多多指点,多多指点!
......
有时间的朋友帮我写一个参考程序,万分感激!
......
急急急~~~~~~~~~~~~~~~~