帮忙看单片机时钟程序 那里有问题 因该怎么改 10
#include<reg52.h>//包含头文件,一般情况不需要改动,//头文件包含特殊功能寄存器的定义#defineucharunsignedcharucharduan...
#include<reg52.h> //包含头文件,一般情况不需要改动,
//头文件包含特殊功能寄存器的定义
#define uchar unsigned char
uchar duanma[10]={0x3f,0x06,0x5b,0x4f,0x66,
0x6d,0x7d,0x07,0x7f,0x6f}; //共阴管
//uchar duanma [10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,}; 共阳管
uchar weima [6]={0x01,0x02,0x04,0x08,0x10,0x20};
uchar jishu1,jishu2,shi,fen,miao;
uchar xianshi [6]={0,0,0,0,0,0,};
void chushihua (void)
{
TMOD=0x01;
THO=(65536-5000)/256;
TL0=(65536-5000)%256;
AE=1;ET0=1;TR0=1;
}
/*------------------------------------------------
主函数
------------------------------------------------*/
void main (void)
{
shi=23; fen=58; mia =46;
chushihua();
while (1) //主循环
}
void shuzizhong (void)
{
THO=(65536-5000)/256;
TL0=(65536-5000)%256;
xianshi[0] = duanma[shi/10];
xianshi[1] = duanma[shi%10];
xianshi[2] = duanma[fen/10];
xianshi[3] = duanma[fen%10];
xianshi[4] = duanma[miao/10];
xianshi[5] = duanma[miao%10];
//6位数码管动态扫描
jishu1++;
if (jishu1==6) jishu1=0;
P2=weima [jishu1];
P1=xianshi [jishu1];
//时.分.秒,的逻辑关系
jishu2++;
if(jishu2==200)
{
jishu2=0;
miao++;
if(miao==60)
{
miao=0;
fen++;
if(fen==60)
{
fen=0;
if(shi==24)
shi=0;
}
}
}
} 展开
//头文件包含特殊功能寄存器的定义
#define uchar unsigned char
uchar duanma[10]={0x3f,0x06,0x5b,0x4f,0x66,
0x6d,0x7d,0x07,0x7f,0x6f}; //共阴管
//uchar duanma [10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,}; 共阳管
uchar weima [6]={0x01,0x02,0x04,0x08,0x10,0x20};
uchar jishu1,jishu2,shi,fen,miao;
uchar xianshi [6]={0,0,0,0,0,0,};
void chushihua (void)
{
TMOD=0x01;
THO=(65536-5000)/256;
TL0=(65536-5000)%256;
AE=1;ET0=1;TR0=1;
}
/*------------------------------------------------
主函数
------------------------------------------------*/
void main (void)
{
shi=23; fen=58; mia =46;
chushihua();
while (1) //主循环
}
void shuzizhong (void)
{
THO=(65536-5000)/256;
TL0=(65536-5000)%256;
xianshi[0] = duanma[shi/10];
xianshi[1] = duanma[shi%10];
xianshi[2] = duanma[fen/10];
xianshi[3] = duanma[fen%10];
xianshi[4] = duanma[miao/10];
xianshi[5] = duanma[miao%10];
//6位数码管动态扫描
jishu1++;
if (jishu1==6) jishu1=0;
P2=weima [jishu1];
P1=xianshi [jishu1];
//时.分.秒,的逻辑关系
jishu2++;
if(jishu2==200)
{
jishu2=0;
miao++;
if(miao==60)
{
miao=0;
fen++;
if(fen==60)
{
fen=0;
if(shi==24)
shi=0;
}
}
}
} 展开
展开全部
你这程序错得有点离谱:
1、主程序main()中在调用初始化函数chushihua()后,处于死循环,未再有其他操作(应当在while(1)语句中调用显示函数);
2、while(1)语句缺少结束符“;”;
3、zhuzizhong()函数中miao未赋初值(有可能你在main()中错将miao写成mia了);
4、zhuzizhong()函数中jishu1未赋初值,造成P1、P2赋值内容不确定;
5、zhuzizhong()函数中jishu2未赋初值,会造成显示内容不确定;
6、如果TH0和TL0为寄存器变量,你的TH0错写成THO了。
1、主程序main()中在调用初始化函数chushihua()后,处于死循环,未再有其他操作(应当在while(1)语句中调用显示函数);
2、while(1)语句缺少结束符“;”;
3、zhuzizhong()函数中miao未赋初值(有可能你在main()中错将miao写成mia了);
4、zhuzizhong()函数中jishu1未赋初值,造成P1、P2赋值内容不确定;
5、zhuzizhong()函数中jishu2未赋初值,会造成显示内容不确定;
6、如果TH0和TL0为寄存器变量,你的TH0错写成THO了。
追问
你好 感谢你的回答 你说的问题我都改了不过还有个错误 ;left side of asn-op not an lvalue 请教 这是什么意思啊
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询