3768|5

17

帖子

0

TA的资源

纯净的硅(初级)

楼主
 

请高手帮我看一下程序是否正确!谢谢(附电路图) [复制链接]









程序如下:KEIL调试没错,不过仿真有问题!大家能不能帮我修改一下!


  1. #include
  2. #define keyR P0
  3. #define keyC P0
  4. sbit DE=P3^4;
  5. //sbit RD=P3^7;
  6. //sbit WR=P3^6;
  7. sbit A13=P2^5;
  8. sbit A14=P2^6;
  9. sbit A15=P2^7;
  10. sbit P00=P0^0;
  11. sbit P01=P0^1;
  12. sbit P02=P0^2;
  13. sbit P03=P0^3;
  14. sbit P04=P0^4;
  15. sbit P05=P0^5;
  16. sbit P06=P0^6;
  17. sbit P07=P0^7;
  18. char key[7][6]=0;
  19.       
  20. void Delay1ms(unsigned int count)
  21.    {
  22. unsigned int i,j;
  23. for(i=0;i
  24. for(j=0;j<120;j++);
  25.    }
  26. void keycheck()
  27. {
  28. char led[7]={0,0,0,0,0,0,1};
  29. int i,j;
  30. char keyv[7]={1,2,4,8,16,32,64};
  31. P0=0x00;
  32. DE=1,WR=0;
  33. WR=1,A14=1,A13=1,A15=0;
  34. if((keyR &0x7f)!= 0x7f)
  35.    {
  36.     Delay1ms(20);
  37.     if((keyR&0x7f)!= 0x7f)
  38.   {
  39.       P0=0X3E;
  40.    DE=1,WR=0;
  41.    WR=1,A14=0,A13=0,A15=1;//使SN74HC574N有效(上升沿有效);SN74HC244N有效(低电平有效)
  42.    if((keyR&0x7f)!=0x7f)
  43.    {
  44.     for(i=0,j=0;i<6,j<6;i++,j++)
  45.     {
  46.       if(~keyR==keyv[i])
  47.      {
  48.      key[i][0]=1;
  49.      led[j]=key[i][0];  
  50.      }
  51.      }
  52.     P0=0x01;
  53.        DE=0,WR=0;WR=1;
  54.     P00=~led[0];P01=~led[1];P02=~led[2];P03=~led[3];P04=~led[4];P05=~led[5];
  55.     RD=0,DE=0;RD=1;
  56.     }
  57.            
  58.         }
  59.    else{
  60.       P0=0X3D;
  61.       DE=1,WR=0;
  62.       WR=1,A14=0,A13=0,A15=1;
  63.     if((keyR&0x7f)!=0x7f)
  64.         {
  65.          for(i=0,j=0;i<6,j<6;i++,j++)
  66.        {
  67.          if(~keyR==keyv[i])
  68.      {  
  69.          key[i][1]=1;
  70.       led[j]=key[i][1];
  71.       }
  72.      }
  73.       P0=0x02;
  74.       DE=0,WR=0;WR=1;
  75.       P00=~led[0],P01=~led[1],P02=~led[2],P03=~led[3],P04=~led[4],P05=~led[5];
  76.       RD=0,DE=0;RD=1;
  77.         }
  78.         }
  79.       P0=0X3B;
  80.       DE=1,WR=0;
  81.       WR=1,A14=0,A13=0,A15=1;
  82.     if((keyR&0x7f)!=0x7f)
  83.       {
  84.        for(i=0,j=0;i<6,j<6;i++,j++)
  85.         {
  86.        if(~keyR==keyv[i])
  87.        {
  88.         key[i][2]=1;
  89.         led[j]=key[i][2];
  90.        }
  91.       }
  92.      P0=0x10;
  93.        DE=0,WR=0;WR=1;
  94.        P00=~led[0];P01=~led[1];P02=~led[2];P03=~led[3];P04=~led[4];P05=~led[5];
  95.        RD=0,DE=0;RD=1;
  96.       }
  97.    
  98.        P0=0X37;
  99.        DE=1,WR=0;
  100.        WR=1,A14=0,A13=0,A15=1;
  101.     if((keyR&0x7f)!=0x7f)
  102.        {
  103.         for(i=0,j=0;i<6,j<6;i++,j++)
  104.          {
  105.          if(~keyR==keyv[i])
  106.          {
  107.           key[i][3]=1;
  108.        led[j]=key[i][3];
  109.        }
  110.        }
  111.       P0=0x04;
  112.          DE=0,WR=0;WR=1;
  113.          P00=~led[5];P01=~led[4];P03=~led[2];
  114.          RD=0,DE=0;RD=1;   
  115.        }
  116.    
  117.       P0=0X2F;
  118.       DE=1,WR=0;
  119.       WR=1,A14=0,A13=0,A15=1;
  120.     if((keyR&0x7f)!=0x7f)
  121.              {
  122.       for(i=0;i<6;i++)
  123.         {
  124.           if(~keyR==keyv[i])
  125.             {
  126.             key[i][4]=1;
  127.             
  128.        }
  129.          }
  130.             }
  131.       
  132.       P0=0X1F;
  133.       DE=1,WR=0;
  134.       WR=1,A14=0,A13=0,A15=1;
  135.     if((keyR&0x7f)!=0x7f)
  136.          {
  137.         for(i=0;i<7;i++)
  138.           {
  139.          if(~keyR==keyv[i])
  140.                 {
  141.          key[i][5]=1;              
  142.        }
  143.           }  
  144.      led[4]=key[4][5];
  145.      P0=0x04;
  146.         DE=0,WR=0;WR=1;
  147.         P04=~led[4];
  148.         RD=0,DE=0;RD=1;   
  149.       }
  150.     }
  151. }

复制代码
此帖出自单片机论坛

最新回复

你要把出错的情况说明一下,要不然别人无从下手啊。  详情 回复 发表于 2009-5-29 00:04
点赞 关注
 

回复
举报

17

帖子

0

TA的资源

纯净的硅(初级)

沙发
 
第1个是键,第2个图是指示灯,第3个图是控制电路!
此帖出自单片机论坛
 
 

回复

17

帖子

0

TA的资源

纯净的硅(初级)

板凳
 
:'( :'( :'( :'( 谁来答一下!
此帖出自单片机论坛
 
 
 

回复

17

帖子

0

TA的资源

纯净的硅(初级)

4
 
没人帮我解答啊!帮个忙啊!
此帖出自单片机论坛
 
 
 

回复

126

帖子

0

TA的资源

五彩晶圆(初级)

5
 
看样子很复杂的样子,推荐给你一款芯片ZLG7290,支撑64个LED或8个数码管、和很多按键,I2C通讯有中断位,电路简单,没有你这么复杂。非常不错,而且还有例程提供,C语言的。
此帖出自单片机论坛
 
 
 

回复

1583

帖子

0

TA的资源

五彩晶圆(高级)

6
 
你要把出错的情况说明一下,要不然别人无从下手啊。
此帖出自单片机论坛
 
个人签名
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表