while(1)//while(1)后面加了分号表示永远执行不到下面的代码
{
display(shi,ge)
}
if(num1=4)//少了个等于号 if语句内应该是判断不可能是赋裤租值吧
最后贴上可以编译通过的代码
#include<reg52.h>#define uint unsigned int
#define uchar unsigned char
sbit smg_g=P1^0
sbit smg_s=P1^1
sbit led1=P1^4
uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}
void delay(uint xms)
void display(uchar shi,uchar ge)
uchar num,num1,num2,shi,ge
void main()
{
TMOD=0x11
TH0=(65536-50000)/256
TL0=(65536-50000)%256
TH1=(65536-50000)/256
TL1=(65536-50000)%256
EA=1
ET0=1
ET1=1
TR0=1
TR1=1
while(1)//修改1 删除掉while(1)后面的分号
{
display(shi,ge)
}
}
void display(uchar shi,uchar ge)
{
smg_s=0
P0=table[shi]
delay(5)
P0=0xff
smg_s=1
smg_g=0
P0=table[ge]
delay(5)
P0=0xff
smg_g=1
}
void delay(uint 胡铅兆xms)
{
uint i,j
for(i=xmsi>0i--)
for(j=110j>0j--)
}
void T0_time() interrupt 1
{
TH0=(65536-50000)/256
TL0=(65536-50000)%256
num1++
if(num1==4)//修改2 把num1=4 改成 num1==4
{
num1=0
led1=~led1
}
}
void T1_time() interrupt 3
{
TH1=(65536-50000)/256
TL1=(65536-50000)%256
num2++
if(num2==20)
{
激乎num2=0
num++
if(num==60)
num=0
shi=num/10
ge=num%10
}
}
这个你看英语就明白了:\x0d\x0a警告:有一个没有调用的函数。\x0d\x0a是告诉你,有一个函数,你定义了,却没有调用,这个函数的宏悉名字叫:Read_RO()\x0d\x0aC51编译器是用于51单片机的,早在C51成立之初,51单片机的ROM是非常小的,只有几K,所以,为了节省ROM空间,C51编译器对于敬哪你定义了,但是没有调用的函数会提出警告,意思是提醒你节蔽稿乎能减排,不要浪费ROM空间。\x0d\x0a这个警告你可以忽略,如果你不想忽略,那么就调用那个函数或者屏蔽掉那个函数就行了。#define TR 1这TR定义的是什么?按定义:TR=1,
但是:if(TR==0)
这又是什么意思?怎么老行可御含顷能有镇陆(TR==0成立呢?
矛盾。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)