打印

好多错误呀。。。上了百度还是不明白,烦请高手指点呀

[复制链接]
5305|18
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
菜鸟来也|  楼主 | 2011-8-28 14:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 菜鸟来也 于 2011-8-28 14:23 编辑

//用动态扫描方法和定时器1在数码管的前三位显示出秒表,精确到1%秒,即后两位显示1%秒,一直循环下去。
#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char
uint num ;
uchar bai, shi, ge ;
/********************************************************************
1ms延时程序
*********************************************************************/
void delay(unsigned int a)    // 1ms延时程序
{
    unsigned int i;
    while(a--)
    {
        for(i = 0; i < 110; i++);//STC单片机在外部晶振为12MHz时i值上限为600  
    }                               //AT89C51单片机在外部晶振为12MHz时i值上限为125
}
/*******************************************************************
共阳数码管
********************************************************************/
uchar code table[]={0xc0, 0xf9, 0xa4, 0xb0,0x99,     //01234
0x92, 0x82,0xf8,0x80,0x90,                 //56789
0xa0, 0x83, 0xa7, 0xa1, 0x84                //字母a-e
0x8e, 0xbf, 0x7f, };                    //F,符号(-),小数点

/********************************************************************/
void display(uchar bai, uchar shi, uchar ge)
{
    P2=0x7f;
    P0=table[bai];
    delay(1);
    P2=0xbf;
    P0=table[shi] ;
    delay(1);
    P2=0xdf;
    P0=table[ge];
    delay(1);
}
void main()
{
    TMOD=1;
    TH0=(65536-10000)/256;
    TL0=(65536-10000)%256;
    EA=1;
    ET0=1;
    TR0=1;
    while(1)
    {
        display(bai, shi, ge);
    }
}

void time0() interrupt 1
{
    TH0=(65536-10000)/256;
    TL0=(65536-10000)%256;

    num++;
    bai=num/100;
    shi=(num%100) / 10;
    ge=num%10;

    if(num==999)
    {
        num=0;
    }      

}

















出现错误:
LESSON4_2.C(36): error C279: 'P0': multiple initialization
LESSON4_2.C(36): error C231: 'P0': redefinition
LESSON4_2.C(36): error C231: 'P0': redefinition
LESSON4_2.C(37): error C141: syntax error near '1'
LESSON4_2.C(38): error C141: syntax error near '}'

相关帖子

沙发
菜鸟来也|  楼主 | 2011-8-28 14:21 | 只看该作者
额,格式好乱呀,等等,我再弄一个

使用特权

评论回复
板凳
Cortex-M0| | 2011-8-28 14:31 | 只看该作者
函数内变量不要用全局变量名,试试。

void display(uchar _bai, uchar _shi, uchar _ge)
{
    P2=0x7f;
    P0=table[_bai];
    delay(1);
    P2=0xbf;
    P0=table[_shi] ;
    delay(1);
    P2=0xdf;
    P0=table[_ge];
    delay(1);
}

使用特权

评论回复
地板
菜鸟来也|  楼主 | 2011-8-28 14:36 | 只看该作者
3# Cortex-M0 大哥,谢谢了,已经成功了。。。问一下,函数内变量不要用全局变量名(一般都这样使吗?或者说函数内用全局变量名有什么危害吗)

使用特权

评论回复
5
Cortex-M0| | 2011-8-28 14:50 | 只看该作者
编译器易误识别,容易出错,偶然通过,也不能保证结果正确~~~

使用特权

评论回复
6
鑫海宝贝| | 2011-8-28 16:13 | 只看该作者
支持一下

使用特权

评论回复
7
菜鸟来也|  楼主 | 2011-8-28 17:22 | 只看该作者
原来是这样。。。

使用特权

评论回复
8
linhuaou| | 2011-8-28 21:52 | 只看该作者
uchar code table[]={0xc0, 0xf9, 0xa4, 0xb0,0x99,     //01234
0x92, 0x82,0xf8,0x80,0x90,                 //56789
0xa0, 0x83, 0xa7, 0xa1, 0x84                //字母a-e
0x8e, 0xbf, 0x7f, };                    //F,符号(-),小数点
后面没有逗号也可以?

使用特权

评论回复
9
Cortex-M0| | 2011-8-29 06:18 | 只看该作者
uchar code table[]={0xc0, 0xf9, 0xa4, 0xb0,0x99,     //01234
0x92, 0x82,0xf8,0x80,0x90,                 //56789
0xa0, 0x83, 0xa7, 0xa1, 0x84                //字母a-e
0x8e, 0xbf, 0x7f, };                    //F,符号(-),小数点
这里有逗号也可以?

使用特权

评论回复
10
hjs1618| | 2011-8-29 08:21 | 只看该作者
Cortex-MO,请问下,函数内变量不要用全局变量名是什么意思?

使用特权

评论回复
11
Cortex-M0| | 2011-8-29 08:37 | 只看该作者
就是 函数内变量 和 全局变量 不要用相同的名字。

使用特权

评论回复
12
bryantzx| | 2011-8-29 09:06 | 只看该作者
既然定义了全局的bai  shi ge ,子函数就无需再用形参了,建议将中断里的拆字放到main里。

使用特权

评论回复
13
mcu5i51| | 2011-8-29 09:49 | 只看该作者
这问题问的?
我这里提示:
compiling Test.c...
TEST.C(24): error C141: syntax error near '0x8e'
TEST.C(28): error C141: syntax error near '{'
TEST.C(29): error C231: 'P2': redefinition
TEST.C(29): error C231: 'P2': redefinition
....
第一行就告诉问题了,加“,”就好了;
LZ多动脑子,编译或语法错误可以根据提示轻易找到问题的;

使用特权

评论回复
14
jack_shine| | 2011-8-29 12:25 | 只看该作者
楼主是不是代码没上传全

使用特权

评论回复
15
hjs1618| | 2011-8-30 09:12 | 只看该作者
BRYANTZX,请问下为什么建议将中断里的拆字放到main里?

使用特权

评论回复
16
bryantzx| | 2011-9-30 10:20 | 只看该作者
中断服务程序,尽量简洁

使用特权

评论回复
17
scdydy| | 2011-10-2 19:12 | 只看该作者
能用局部变量就尽量不用全局变量

使用特权

评论回复
18
mayduan| | 2011-10-10 21:30 | 只看该作者
留名~

使用特权

评论回复
19
hotpower| | 2011-10-10 22:34 | 只看该作者
0x84后少逗号

使用特权

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

本版积分规则

0

主题

22

帖子

1

粉丝