导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→发表看法:[东海飘萍客]C51编程:天啦,我的程序怎么会这样,各



No.2061
作者:东海飘萍客
邮件:axiaxi520@sohu.com
ID:6050
登陆:1次
文章数:42篇
最后登陆IP:
最后登陆:2001/9/18 15:50:00
注册:2001/9/18 15:50:00
财富:154
发帖时间:2001/10/23 10:54:00
发贴者IP:61.160.222.163
标题:东海飘萍客:C51编程:天啦,我的程序怎么会这样,各位大虾帮帮忙看一下吧,指条明路给小弟!
摘要:No.2061C51编程:天啦,我的程序怎么会这样,各位大虾帮帮忙看一下吧,指条明路给小弟! #include <reg51.h>  #include <intrins.h>  #include <string.h>
sbit     SDA=P1^5;sbit     SCL=P1^4;sbit     p06=P0^6;sbit     p05=P0^5;
sbit     p04=P0^4;sbit     p03=P0^3;sbit     p02=P0^2;sbit     p01=P0^1;
sbit     p00=P0^0;sbit     bell=P2^5;
sbit     led_yellow=P2^2;sbit     led_red=P2^1;
unsigned char    mode;
void delay(unsigned int delay_time);           //延时delay_timeMS
void RW24C01(unsigned char Address,unsigned char *p,unsigned char size,bit 
control);
void bellx(unsigned char bell_count);
void delay_us(unsigned int delay_time);
bit  Input_Keyboard(unsigned char *p2);
//bit compare_key(bit manage);
bit Modify(bit manage);
bit Input_Ic(unsigned char *p);
void main(void)
{
bit flag;
bellx(1);
flag=Modify(1);
if(flag)
{led_red=0;led_yellow=0;}
else{led_red=1;led_yellow=1;}
while(1);}
bit Input_Ic(unsigned char *p)
{return 0;}
/*bit compare_key(bit manage)         //如果有管理员,则manage为1,主要是进行密码
判别。
{unsigned char temp1,temp2;
 unsigned char Ram_Key[12];
 unsigned char Input_Key[12];
 unsigned char *p;
 if(manage) {
    RW24C01(0x01,Ram_Key,0x08,1);
    manage=Input_Keyboard(Input_Key);
    if(!manage) return 0;
    temp1=strncmp(Ram_Key,Input_Key,8);
    if(!(temp1==0)) return 0;
    return 1;}
 temp1=0x10;
 while(1){if(temp1>=0x60) return 0;
   RW24C01(temp1,&temp2,1,1);
    if(!(temp2==mode)){
      temp1+=0x10;continue;}
   switch(mode){
        case 1:manage=Input_Ic(Input_Key);
                            if(!manage) return 0;
                     temp1++; RW24C01(temp1,Ram_Key,4,1);
               manage=strncmp(Input_Key,Ram_Key,4);
               if(!(manage==0))
                                    {temp1+=0x0f;break;}
                            else  return 1;
      case 2:manage=Input_Ic(Input_Key);
             if(!manage) return 0;
      p=Input_Key; p+=4;
      manage=Input_Keyboard(p);
     if(!manage) return 0;
            RW24C01(temp1,Ram_Key,12,1);
      manage=strcmp(Input_Key,Ram_Key);
      if(!(manage==0))
         {temp1+=0x0f;break;}
             else  return 1;
     case 0:RW24C01(temp1,Ram_Key,8,1);
            manage=Input_Keyboard(Input_Key);
            if(!manage) return 0;
            manage=strncmp(Input_Key,Ram_Key,8);
     if(!(manage==0)){temp1+=0x0f;break;}
             else  return 1;
        }}
 return 0;}*/
//修改设置
bit Modify(bit manage)
{unsigned char temp1,temp2,temp3,temp4,temp5;
unsigned char *p;
unsigned char Input_Key[12];
unsigned char reimport[12];
bit  error;
error=0;
if(manage)                        //判断是否有管理员设置,如有,则改设置须先输入
{  manage=Input_Keyboard(Input_Key);
   if(!manage)  return 0;   
   if(!(Input_Key[0]==0xc0))              //如果不须修改管理密码,进入下面的设置
         {temp2=3;                               //最多可修改三次
       while(temp2>0)
       {manage=Input_Keyboard(Input_Key);      //键盘输入新的管理密码
          if(!manage) 
    {temp2--;error=1;continue;                  }
                  bellx(1);
    manage=Input_Keyboard(reimport);      //再输入一次,以便确认
          if(!manage) {temp2--;error=1;
    continue;                  //键盘输入发生错误,退出
 }
manage=strncmp(Input_Key,reimport,8);//两次密码进行比较,若相等,则进行修改
          if(manage==0)    {for(temp3=5;temp3>0;temp3--)
    {RW24C01(0x01,Input_Key,0x08,0);  //将密码写进内存,再取出进行比较。
          RW24C01(0x01,reimport,0x08,1);
          manage=strncmp(Input_Key,reimport,8);
    if(manage==0)     return 1;
    error=1;}
    if(error==1)   return 0;}
         temp2--;error=1;}
        if(error==1)   return 0;           }      }
manage=Input_Keyboard(Input_Key);          //输入修改第几组,在1-5之间,如不在,
if(!manage) return 0;                           //则退出
temp1=Input_Key[0];
temp1>>=4;
temp1&=0x0f;
if(temp1==0x0c) return 1;                //不须修改则退出
if((temp1<6)&&(temp1>0))              //确定写进内存的地址
    temp1*=0x10;
    else return 0;                       & ......

>>返回讨论的主题


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


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

   




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