单片机程序不会修改了

[复制链接]
 楼主| 252170704 发表于 2013-1-29 12:32 | 显示全部楼层 |阅读模式
#include<reg52.h>
#define unchar unsigned char
#define uint unsigned int
sbit dula=P2^6;
sbit wela=P2^7;
sbit led1=P1^0;
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
void delayms(uint);
void display(uchar,uchar);
uchar num,num1,num2,shi,ge;
void main()
{
TMOD=0x11;
TH0=(65536-45872)/256;
TH0=(65536-45872)%256;
TH1=(65536-45872)/256;
TH1=(65536-45872)%256;
EA=1;
ET0=1;
ET1=1;
TR0=1;
TR1=1;
while(1)
        {
                display(shi,ge);
        }
}

void display(uchar shi,uchar ge)
{
        dula=1;
        P0=table[shi];
        dula=0;
        P0=0xff;
        wela=1;
        P0=0xfe;
        wela=0;
        delayms(5);

        dula=1;
        P0=table[ge];
        dula=0;
        P0=0xff;
        wela=1;
        P0=0xfd;
        wela=0;
        delayms(5);
}

void delayms(uint xms)
{
        uint i,j;
        for(i=xms;i>0;i--)
                for(j=110;j>0;j--);
}

void T0_time() interrupt 1
{
        TH0=(65536-35872)/256;
        TL0=(65536-35872)%256;
        num1++;
        if(num1==4)
        {
                num1=0;led1=~led1;
        }
}

void T1_time() interrupt 3
{
        TH1=(65536-45872)/256;
        TL1=(65536-45872)%256;
        num2++;
        if(num2==20)
        (
        num2=0;
        num++;
        if(num==60)
                num==0;
                shi=num/10;
                ge=num%10;
        )


#include<reg52.h>
#define unchar unsigned char
#define uint unsigned int
sbit dula=P2^6;
sbit wela=P2^7;
sbit led1=P1^0;
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
void delayms(uint);
void display(uchar,uchar);
uchar num,num1,num2,shi,ge;
void main()
{
TMOD=0x11;
TH0=(65536-45872)/256;
TH0=(65536-45872)%256;
TH1=(65536-45872)/256;
TH1=(65536-45872)%256;
EA=1;
ET0=1;
ET1=1;
TR0=1;
TR1=1;
while(1)
        {
                display(shi,ge);
        }
}

void display(uchar shi,uchar ge)
{
        dula=1;
        P0=table[shi];
        dula=0;
        P0=0xff;
        wela=1;
        P0=0xfe;
        wela=0;
        delayms(5);

        dula=1;
        P0=table[ge];
        dula=0;
        P0=0xff;
        wela=1;
        P0=0xfd;
        wela=0;
        delayms(5);
}

void delayms(uint xms)
{
        uint i,j;
        for(i=xms;i>0;i--)
                for(j=110;j>0;j--);
}

void T0_time() interrupt 1
{
        TH0=(65536-35872)/256;
        TL0=(65536-35872)%256;
        num1++;
        if(num1==4)
        {
                num1=0;led1=~led1;
        }
}

void T1_time() interrupt 3
{
        TH1=(65536-45872)/256;
        TL1=(65536-45872)%256;
        num2++;
        if(num2==20)
        (
        num2=0;
        num++;
        if(num==60)
                num==0;
                shi=num/10;
                ge=num%10;
        )
找不到错误,找到后帮帮改改,谢谢哦!!
NE5532 发表于 2013-1-29 20:02 | 显示全部楼层
一个没有一行注释,不说明功能的程序,楼主可能自己都不愿意改吧,其他网友估计更不愿意了。
SLEET1986 发表于 2013-1-30 08:40 | 显示全部楼层
LZ我看不懂,所以
zf_015820 发表于 2013-1-31 15:13 | 显示全部楼层
别的先不说:void delayms(uint);
void display(uchar,uchar);
这两行,函数调用,就是错误的格式,没有给参数,建议:先看看C语言书,打好基础;重点看看:函数的那一章内容;
refee 发表于 2013-2-9 11:25 | 显示全部楼层
这个代码看着好累……:L
sedatefire 发表于 2013-2-9 12:21 | 显示全部楼层
然后呢,出现什么问题了
wyg0216 发表于 2013-2-9 17:48 | 显示全部楼层
要有注释的。
jy02326166 发表于 2013-2-11 10:15 | 显示全部楼层
LZ在看郭天祥的视频吧。。
数码管+LED
雨后晴天 发表于 2013-2-11 17:58 | 显示全部楼层
加上注释再重新传下,这样的程序没人愿意看的
444745317 发表于 2013-3-1 22:12 | 显示全部楼层
zf_015820 发表于 2013-1-31 15:13
别的先不说:void delayms(uint);
void display(uchar,uchar);
这两行,函数调用,就是错误的格式,没有给 ...

这样可以的,下面给了!这是郭天祥的单片机C语言教程里的
444745317 发表于 2013-3-1 22:14 | 显示全部楼层
LZ到底要实习什么样的功能说清楚!
444745317 发表于 2013-3-1 22:16 | 显示全部楼层
jy02326166 发表于 2013-2-11 10:15
LZ在看郭天祥的视频吧。。
数码管+LED

就是郭天祥的C语言教程!十天学会单片机,我也买过 ,挺不错的!帮助很大,着重编程的,不过单片机内部结构还是要看其他的书的!
zf_015820 发表于 2013-3-6 10:53 | 显示全部楼层
这个,就要LZ在线仿真调用下,就知道问题了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

1

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部