
#include <reg51.h>
#define foc 12
sbit shu1=P3^0
sbit shu2=P3^1
unsigned int i
unsigned int num
void main(void)
{
i=0
TMOD = 0x02
TH0 = 256 -250 * (12 / foc)
TL0 = 256 -250 * (12 / foc)
TR0 = 1
EA = 1
ET0 =1
while(1)
{
}
num =60
void Timer0(void) interrupt 1//中断函数居然定义到主函数里????????
{
i++
if(i==4000)
{ num=num-1
i=0
}
{
void delay(unsigned int i)
{
while(i--)
{
unsigned int t
t=150
while(t--)
}
}
{//这个和谁配对???????????????????????????
unsigned char wei[4]={0xf7,0xfb,0xfd,0xfe}
unsigned char seg[16]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e}
unsigned char i,j,ge,shi,bai,qian
while(1)//这啥意思?????????????????????????
{
ge=num%10
shi=num/10%10
bai=num/100%10
qian=num/1000
for(i=0i<100i++)
{P1 = wei[0]
P0 = seg[qian]
delay(1)
P1 = wei[1]
P0 = seg[bai]
delay(1)
P1 = wei[2]
P0 = seg[shi]
delay(1)
P1 = wei[3]
P0 = seg[ge]
delay(1)
}
}
}
}
}
}//这么多你想干啥??????????????????????
while((uchar = getchar())!= '\n'){
...
if(!(number++ % 3)) //这个是输入一个字符 number就+1么?
{ //它是怎么循环的呢?
...
}
}
把printf 打印相关可以去掉不看。整个代码清晰多了。
while((uchar = getchar())!= '\n') 这是程序退出条件,输入回车就退出该程序。
if(!(number++ % 3))
number++ 的意思是,程序走完这一次流程后+1
假设你初始的number=0 当你输入"a"
则第一次为 0%3 = 0 ----->因为 !0 为真 所以执行打印,printf("\n")--->打印执行完后,number++执行,此时number = 1 然后---->
while((uchar = getchar())!= '\n') 你输入b
1%3 = 0 --->因为 !0 为真 所以执行打印,print("\n") --->打印执行完后,number++执行,此时number = 2 然后 ---->
while((uchar = getchar())!= '\n') 你输入c
----->2%3 = 0 --->因为 !0 为真 所以执行打印,print("\n") --->打印执行完后,number++执行,此时number = 3 然后 ---->
while((uchar = getchar())!= '\n') 你输入d
----->3%3 = 1 --->因为 !1 为假 所以不执行打印,print("\n") ---> number++执行,此时number = 4 然后 ---->
while((uchar = getchar())!= '\n') 你输入e
----->4%3 = 1 --->因为 !1 为假 所以不执行打印,print("\n") ---> number++执行,此时number =5 然后 ---->
while((uchar = getchar())!= '\n') 你输入f
----->5%3 =2 --->因为 !2 为假 所以不执行打印,print("\n") ---> number++执行,此时number =6 然后 ---->
你输入 回车 程序退出。
以上就是整个流程。% 是取模计算符,简单理解就是取余数。明白了把?
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)