导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→发表看法:[东海飘萍客]C51编程:各位大虾,小弟发现一个奇怪的



No.1952
作者:东海飘萍客
邮件:axiaxi520@sohu.com
ID:6050
登陆:1次
文章数:42篇
最后登陆IP:
最后登陆:2001/9/18 15:50:00
注册:2001/9/18 15:50:00
财富:154
发帖时间:2001/10/20 10:21:00
发贴者IP:61.160.222.112
标题:东海飘萍客:C51编程:各位大虾,小弟发现一个奇怪的问题,我已无法解决,想请各位大虾帮帮忙,进来看一下,点拨一二!
摘要:No.1952C51编程:各位大虾,小弟发现一个奇怪的问题,我已无法解决,想请各位大虾帮帮忙,进来看一下,点拨一二! #include <reg51.h>
#include <intrins.h>
#include <string.h>
#define uchar unsigned char
#define uint  unsigned int
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;
uchar    mode;
void delay(uint delay_time);           //延时delay_timeMS
void I_start(void);
void I_stop(void);
bit I_clock(void);
bit I_send(uchar I_data);
uchar I_receive(void);
void E_read_address(uchar Address,uchar *p,uchar R_size);
void E_write_address(uchar Address,uchar *p,uchar W_size);
void bellx(uchar bell_count);
void delay_us(uint delay_time);
bit  Input_Keyboard(uchar *p2);
uchar demand_keyboard();
uchar  scan_keyboard();     /*键盘扫描*/
void main(void)
{
bit temp;
uchar Ram_Key[8],Input_Key[8];
SCL=0;
I_stop();
delay(100);
E_read_address(0x01,Ram_Key,0x06);
    delay(100);
    led_red=0;
    led_yellow=1;
    delay(100);
    Input_Keyboard(Input_Key);
delay(100);
if(Input_Key[0]==0x30)  bellx(3);
else 
{
bellx(1);
led_red=0;
led_yellow=0;
}
delay(100);
temp=strncmp(Ram_Key,Input_Key,8);
if(temp==0)  bellx(3);
else 
{
bellx(1);
led_red=1;
led_yellow=1;
}
while(1);
}
/*键盘扫描子程序,返回值为0,代表没扫描到按键,返回值为1,正确。输入的密码放入
board_key[8]里,结束符为ox0x0c.*/
bit  Input_Keyboard(uchar *p2)
{
 uchar i,temp;
 bit   flag;
 uchar temp1[16];
 uchar *p1;
 p1=temp1;
 for(i=0;i<16;i++)
 
    {                                                                    
                                                                                
               
      *p1++=0;    
     }
 p1=temp1;      
 for(i=0;i<16;i++)
    {
     temp=demand_keyboard();
     switch(temp)
         {
          case 0: return 0;
          case 1:
          case 2:
          case 3:
          case 4:
          case 5:
          case 6:
          case 7:
          case 8:
          case 9: *p1++=temp;
                  break;
          case 10:flag=1;
               *p1=0x0c;
                 break;
          case 11:*p1++=0;        
                    break;
        case 12:p1--;
                  *p1=0;
                    break;
         }    
      if(flag)  break;
    } 

p1=temp1;
for(i=0;i<8;i++)
    {
     *p2=*p1++;
     *p2<<=4;
     *p2&=0xf0;
     *p2+=*p1++;
     p ......

>>返回讨论的主题



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


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

   




老古网执行:16毫秒 最大:266毫秒 查询6次