在C语言写程序输出时,要控制每行输出数据的个数,可以通过自定义计数器来完成。
如:
// 输出自然数1-30,每5个数为一行
main()
{ int i
int cnt=0 // 定义cnt用作输出数据的计数器,初始为0
for( i=1i<=30i++ ) // 循环30次
{ printf("%5d",i) // 输出数据值
cnt++ // 每输出一个值,计数器加一次
if( cnt%5==0 ) // 假设每行输出5个(如果计数器与5取余为0,则换行)
printf("\n") // 输出换行
}
}
定义一个计数器,然后每次就自加,当%5==0的时候就printf("\n")看例子,希望能帮到你。
#include<stdio.h>
void main()
{
int count=0
int i
for(i=1i<=20i++)
{
printf("%d\t",i)
count++
if(count%5==0)
printf("\n")
}
}
假设你用的晶振为12m,用p1.0口输出周期为2ms的方波。使用定时器工作方式1.至于计数初值的计算,授之以鱼不如授之以渔!
在定时器模式下,计数器的计数脉冲来自于晶振脉冲的12分频信号,即对机器周期进行计数。若选择12m晶振,则定时器的计数频率为1mhz。假设定时时间为t,机器周期为t1,即12/晶振频率。x为定时器初值。则
x=2^n-t/t1。方式0,n=13,方式1时,n=16,方式2和方式3,n=8
自己算去吧!
#include
void
inittimer0(void)//
{
tmod
=
0x01
th0
=
0x0fc
//计数器初值
tl0
=
0x18
ea
=
1
et0
=
1
tr0
=
1//开启定时器t0
}
void
main(void)
{
inittimer0()
}
void
timer0interrupt(void)
interrupt
1
{
th0
=
0x0fc//重新赋初值
tl0
=
0x18
p1.0=~p1.0
//输出方波
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)