微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 这个代码出错的地方怎么改?

这个代码出错的地方怎么改?

时间:10-02 整理:3721RD 点击:

已经解决了,谢谢大家!
用keil写的,出了两个错误,请大牛相助!
#include<reg52.h>
#define uint unsigned int

sbit dula=P2^6;   //声明锁存器U1
sbit wela=P2^7;   //声明锁存器U2


//定义一个延迟函数
void delayms(uint xms)
{
        uint j,k;
        for(j=xms;j>0;j--)
                        for(k=110;k>0;;k--);
}

//定义显示数字编码
uint code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x51,0x79,0x71};

//定义数码管显示编码
int code xs[]={
0xfe,0xfd,
0xfb,0xf7,
0xef,0xdf};

//主函数
void main()
{
        uint u,m;
        u=1;
        m=1;
        while(1)
        {
                dula=1;
                P0=table;
                dula=0;
                P0=0xff;                //消影

                wela=1;
                P0=xs[m];
                wela=0;
                delayms(10);

                if(u<17)
                u++;
                else
                u=1;

                if(m<7)
                m++;
                else
                m=1;

        }
}



段选哪里
你仔细看看
P0=table?
应该是P0=table[X]。
你想显示几,X就等于几。

仔细看了下
P0=table[u];

我漏打了,我编译的时候是有的,但是他还是提醒说有两处错误。在定义延时函数那里。

错误代码是什么?

测试过了,延时那里多了一个分号。

   for(k=110;k>0;;k--);
就是这一句,最后一个K前面有2个分号。

看看

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top