标题:
C语言show_second函数里面for循环 i!=0xff什么意思 还有定时初值怎么计算的
[打印本页]
作者:
825825
时间:
2018-12-28 09:21
标题:
C语言show_second函数里面for循环 i!=0xff什么意思 还有定时初值怎么计算的
单片机源码:
uchar time_buffer[]={0,0,0,0};
uchar LCD_display_buffer[]={"00:00:00:00"};
void show_second()
{
uchar i;
lcd_pos(0x45);
for(i=3;i!=0xff;i--)
{
LCD_display_buffer[2*i+1]=time_buffer[ i]/10+'0';[ i]
LCD_display_buffer[2*i]=time_buffer[ i]%10+'0';[ i]
lcd_wdat(LCD_display_buffer[2*i+1]);
lcd_wdat(LCD_display_buffer[2*i]);
lcd_wdat(":");
}
}
void time0() interrupt 1 using 0
{
TH0=-10000/256;
TL0=-10000%256;
time_buffer[0]++;
if (time_buffer[0]==100)
{
time_buffer[0]=0;
time_buffer[1]++;
}
if (time_buffer[1]==60)
{
time_buffer[1]=0;
time_buffer[2]++;
}
if (time_buffer[2]==60)
{
time_buffer[2]=0;
time_buffer[3]++;
}
if (time_buffer[3]==24)
{
time_buffer[3]=0;
}
}
void display_string(uchar * str,uchar lineno)
{
uchar k;
lcd_pos(lineno);
for(k=0;k<16;k++)
lcd_wdat(str[k]);
}
void main()
{
uchar i;
IE=0X82;
TMOD=0X01;
TH0=-10000/256;
TL0=-10000%256;
lcd_init();
display_string(msg1,0x00);
display_string(msg2,0x40);
EA=1;
ET0=1;
while(1)
{
if(k1==0)
{
delay(100);
i=++keycount;
switch(i)
{
case1:
case3:TR0=1;
display_string(prompts[i-1],0);
break;
case2:
case4:TR0=0;
display_string(prompts[i-1],0);
break;
default:TR0=0;
break;
}
while(k1==0);
}
else
if(k2==0)
{
TR0=0;
keycount=0;
for(i=0;i<4;i++)
time_buffer[ i]=0;[ i]
display_string(msg1,0);
delay(100);
while(k2==0);
}
show_second();
}
}
复制代码
作者:
周超然
时间:
2018-12-28 10:49
i初始值是3,不等于0xff,就执行下面的函数,执行完在自身加1
定时器,看你晶振用的多少,假设你用的12M,51单片机12个时钟周期,所以就是1M,1次就是1us。定时器往上计数,设置定时器几位的,16位的就是65535。
来个例子 定时50ms ,就是初始值15535,定时器16位。就这样,自己慢慢去看吧,基础东西。
作者:
825825
时间:
2018-12-28 11:50
初值我会了 但是为啥必须不等于0xff
作者:
yzwzfyz
时间:
2018-12-28 12:27
0xff =256 ,不等于0xff 与 等于0xff,误差1,用什么取决于你计算的结果需要用多大的数字。
作者:
HC6800-ES-V2.0
时间:
2018-12-28 14:59
其实就是循环四次的意思
i=3,再i--,当i由3减少到0即循环了四次了,再减一次,就是255,即0xff,就不循环了
作者:
huiyu
时间:
2018-12-28 15:12
i初始值是3,不等于0xff,就执行下面的函数,执行完在自身加1
定时器,看你晶振用的多少,假设你用的12M,51单片机12个时钟周期,所以就是1M,1次就是1us。定时器往上计数,设置定时器几位的,16位的就是65535。
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1