找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 8106|回复: 5
打印 上一主题 下一主题
收起左侧

师傅们帮忙看一下,这是错在哪里了?为什么提示未定义标识符呢?

[复制链接]
跳转到指定楼层
楼主
本帖最后由 征程吧 于 2017-5-3 20:05 编辑

#include <reg51.h>
#define uchar unsigned char
sbit L1=P1^0;                         // 定义列
sbit L2=P1^1;
sbit L3=P1^2;
sbit L4=P1^3;         
uchar dis[16]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e };                //共阳极字符0~F的段码
unsigned int time;
delay(time)                           //延时子程序
{
    unsigned int i;
           for(j=0;j<time;j++)
   {}
}
main()                                                      //主程序
{
        uchar temp;
     uchar k,i;
        while(1)
        {
                    P1=0xef;                      //行扫描初值,P1.4=0,P1.5、P1.6、P1.7=1
                    for(i=0;i<=3;i=i++)                  //逐行为低,按行扫描,一共4行
                    {  
                if (L1==0) P0= dis [i*4+0];             //判第1列有无键按下,若有,键值可能为0,4,8.C,送显示
              if (L2==0) P0= dis [i*4+1];         //判第2列有无键按下,若有,键值可能为1,5,9,d,送显示
                if (L3==0) P0= dis [i*4+2];         //判第3列有无键按下,若有,键值可能为2,6,A,E,送显示                  
               
        if (L4==0) P0=dis [i*4+3];        //判第4列有无按键按下,若有,键值可能为3,7,b,F,送显示
        delay(500);
        temp11=P1;                //读入P1口的状态
        temp=temp|0x0f;         //置P1.3~P1.0为1,输入状态
        temp=temp<<1;         //P1.7~ P1.4左移1位,准备下一行扫描
        temp=temp|0x0f;         //置P1.3~P1.0为1,输入状态
        P1=temp;                 //下一行行扫描值送P1口,为下一行扫描做准备
         }
      }
}

N@PM2A7O67{0T)9G~6TRO)R.png (70.94 KB, 下载次数: 57)

N@PM2A7O67{0T)9G~6TRO)R.png
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:149451 发表于 2017-5-3 21:09 | 只看该作者
就单说程序的提示,需修改:11行的 i 改为 j ; 30行的temp11改为 temp 即可。

评分

参与人数 2黑币 +25 收起 理由
征程吧 + 5 回帖助人的奖励!
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

板凳
ID:149451 发表于 2017-5-3 22:19 | 只看该作者
LZ的程序乱,除一些书写不规范、错外,貌似还缺点什么。如果需要,给你个现成的扫描键盘矩阵并显示键盘号的程序及仿真。

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

地板
ID:196497 发表于 2017-5-4 14:43 | 只看该作者
楼主解决问题能力有待提高,双击错误提示即可跳到错误位置,仔细查看就知道自己错在哪里!
回复

使用道具 举报

5#
ID:112279 发表于 2017-5-4 14:47 | 只看该作者
11行的 i 改为 j ; 30行的temp11改为 temp 即可
回复

使用道具 举报

6#
ID:112279 发表于 2017-5-4 14:47 | 只看该作者
需修改:11行的 i 改为 j ; 30行的temp11改为 temp 即可。就是这样的,keil字体颜色设为默认
回复

使用道具 举报

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

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表