找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3649|回复: 14
收起左侧

不明白这个简单程序哪里错了(新手求指点)

[复制链接]
ID:65766 发表于 2014-9-23 08:53 | 显示全部楼层 |阅读模式
#include<reg52.h>
  #define unit unsigned int
  #define uchar unsigned char((
  void delay(unit);
   uchar num;
  sbit d1=P1^0;
  sbit key1=P3^4;
  sbit dula=P2^6;          
   sbit wela=P2^7;
  uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x6f,0x7f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
  void main()
  {
   wela=1;
   P0=0xfe;
   wela=0;
   dula=1;
   P0=0;
   dula=0;
    key1=0xff;
    while(1)
      {
            if(key1==0)
                {delay(10);
                num++;
                dula=1;
                P0=table[num];
                dula=0;
           d1=0;
                delay(10);
                while(key1==0);       
                }
           else
           d1=1;


     }



}
         void delay (unit z)
    {
       unit x,y;
       for(x=z;x>0;x--)
        for(y=110;y>0;y--);
     }接下来是错误结果 我没看懂
第4行  是因为(unprintable  character 0xA3 skipped)还有地10行 这个也错了 不懂

回复

使用道具 举报

ID:19715 发表于 2014-9-23 09:06 | 显示全部楼层
uchar没有宏定义

评分

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

查看全部评分

回复

使用道具 举报

ID:19715 发表于 2014-9-23 09:07 | 显示全部楼层
#define uchar unsigned char
回复

使用道具 举报

ID:65766 发表于 2014-9-23 09:15 | 显示全部楼层

不会吧 我已经定义了啊 前面不有吗
回复

使用道具 举报

ID:65766 发表于 2014-9-23 09:15 | 显示全部楼层
明白 发表于 2014-9-23 09:07
#define uchar unsigned char

这个咋了 不对的吗 我就是这样一个啊
回复

使用道具 举报

ID:19715 发表于 2014-9-23 09:21 | 显示全部楼层
#define uchar unsigned char((
后面多了两个“(”。
小错误
回复

使用道具 举报

ID:65766 发表于 2014-9-23 09:25 | 显示全部楼层
我去 我明白了 不过有点想不通  就是本来上面这个程序没问题 刚开始打括号得时候有段时间 突然打不出来 打了很久 后来又好了 之后就是上面这个程序 本来是没有多出来一些括号的 不知道各位注意 没有  然后我重新吧那些打过括号却没显示的地方删了一下 结果就能运行了 坑爹啊 这是怎么回事 是电脑问题 还是软件出问题了
回复

使用道具 举报

ID:65766 发表于 2014-9-23 09:27 | 显示全部楼层
明白 发表于 2014-9-23 09:21
#define uchar unsigned char((
后面多了两个“(”。
小错误

就是这个了 我原来的程序 没有多出来这两个括号 然后一复制 就有了 无语
回复

使用道具 举报

ID:66032 发表于 2014-9-23 11:21 | 显示全部楼层
num 没有清零, 加这句

       if(key1==0)
                {
               delay(10);
               if(key1==0)//去抖;
               {
                    num++;
                    if(num==16) num=0;
                     dula=1;
                     P0=table[num];
                     d1=0;
                  while(key1==0);  
                  dula=0;      
                  d1=1;
                }
            }

评分

参与人数 1威望 +50 黑币 +50 收起 理由
admin + 50 + 50

查看全部评分

回复

使用道具 举报

ID:2318 发表于 2014-9-23 15:08 来自触屏版 | 显示全部楼层
好热闹,趁机学习一下
回复

使用道具 举报

ID:54856 发表于 2014-9-24 15:41 | 显示全部楼层
我是来学习的,
回复

使用道具 举报

ID:67014 发表于 2014-10-6 21:18 | 显示全部楼层
没有定义好
回复

使用道具 举报

ID:67180 发表于 2014-10-10 16:07 | 显示全部楼层
#define uchar unsigned char((后面多了两个‘((’
回复

使用道具 举报

ID:67333 发表于 2014-10-13 22:45 | 显示全部楼层
凑个热闹,学习学习。.....多了两个括号啊大哥
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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