打印

帮忙看看哪里错了

[复制链接]
1679|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wjcy131421|  楼主 | 2008-5-21 17:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我在做51数码管动态显示的实验,出了问题,怎么也没找出来
硬件连接如下,8个数码管的位选接P2口,段选接P0口,
现要让8个数码管显示12345678,程序如下,看看那里出了问题
#include<reg52.h>
#define uchar unsigned char 
uchar aa,numd,numw;
uchar code table[]={
0xc0,0xf9,0xa4,0xb0,
0x99,0x92,0x82,0xf8,
0x80,0x90,0x88,0x83,
0xc6,0xa1,0x86,0x8e};
uchar code tablew[]={
0xfe,0xfd,0xfb,0xf7,
0xef,0xdf,0xbf,0x7f};
void mian()
{    
    numw=0;
    numd=0;
    aa=0;
    TMOD=0x01;
    TH0=(65536-50000)/256;
    TL0=(65536-50000)%256;
    EA=1;
    ET0=1;
    TR0=1;
    while(1)
    {
        if(aa==20)
        {
            aa=0;
            numd++;
            if(numd==9)
            numd=1;
            P0=table[numd];
            numw++;
            if(numw==8)
            numw=0;
            P2=tablew[numw];    
        }
    }
}
void timer0() interrupt 1
{
    TH0=(65536-50000)/256;
    TL0=(65536-50000)%256;
    aa++;
}

相关帖子

沙发
t.jm| | 2008-5-21 19:43 | 只看该作者

段,位不批配。

一个为共阴一个为共阳的数码管。

使用特权

评论回复
板凳
dontium| | 2008-5-21 21:23 | 只看该作者

嗨!!让我看了好半天

开始我也以为不可能不会执行的,仔细一编译:
linking...
*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
    SEGMENT: ?PR?MIAN?TIMER
Program Size: data=3.0 xdata=0 code=104
creating hex file from "timer"...
"timer" - 0 Error(s), 1 Warning(s).



哈哈,没有执行主程序!!

使用特权

评论回复
地板
jerkoh| | 2008-5-21 21:26 | 只看该作者

re

一眼看到了误写的 mian()哈哈

使用特权

评论回复
5
wjcy131421|  楼主 | 2008-5-22 10:15 | 只看该作者

谢谢楼上两位了,问题已经解决了

真是受不了自己了,怎么会出现这么低级的错误哦 !~~!

不明白为什么没有执行主程序编译时不出现错误呢????

那个警告都没看懂是什么意思,以为没什么问题呢

使用特权

评论回复
6
wjcy131421|  楼主 | 2008-5-22 10:17 | 只看该作者

回2楼

是共阳数码管,P0直接接段选,P2接PNP三极管后再将VCC接位选,

和你说的没关系

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

40

主题

318

帖子

0

粉丝