找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2908|回复: 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行 这个也错了 不懂

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
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 | 只看该作者

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

使用道具 举报

5#
ID:65766 发表于 2014-9-23 09:15 | 只看该作者
明白 发表于 2014-9-23 09:07
#define uchar unsigned char

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

使用道具 举报

6#
ID:19715 发表于 2014-9-23 09:21 | 只看该作者
#define uchar unsigned char((
后面多了两个“(”。
小错误
回复

使用道具 举报

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

使用道具 举报

8#
ID:65766 发表于 2014-9-23 09:27 | 只看该作者
明白 发表于 2014-9-23 09:21
#define uchar unsigned char((
后面多了两个“(”。
小错误

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

使用道具 举报

9#
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

查看全部评分

回复

使用道具 举报

10#
ID:2318 发表于 2014-9-23 15:08 来自手机 | 只看该作者
好热闹,趁机学习一下
回复

使用道具 举报

11#
ID:54856 发表于 2014-9-24 15:41 | 只看该作者
我是来学习的,
回复

使用道具 举报

12#
ID:67014 发表于 2014-10-6 21:18 | 只看该作者
没有定义好
回复

使用道具 举报

13#
ID:67180 发表于 2014-10-10 16:07 | 只看该作者
#define uchar unsigned char((后面多了两个‘((’
回复

使用道具 举报

14#
ID:67333 发表于 2014-10-13 22:45 | 只看该作者
凑个热闹,学习学习。.....多了两个括号啊大哥
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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