采用c51语言写出延时程序,第3章 C51语言程序设计基础1.ppt

第3章 C51语言程序设计基础1

do-while语句的程序示例如下: #include void main() { int i,s; i=100;s=0; do { s=s+1;i=i-1; }while(i>0); printf(“1+2+…+100=%d\n”,s); } //1+2+…+100= 5050 使用do—while循环语句时,要注意以下几点。 do-while语句的特点是先执行一次语句,然后再判断条件。因此,do-while语句至少执行一次do 后面的语句。 如果do-while循环体内的语句只有一条,可以省略“{}”。如果do—while循环体内由多个语句构 成语句体时,必须用“{}”括起来,表示成复合语 句的形式。 Do-while语句中的“{}”后面无分号。 使用do-while语句循环时,while(表达式)后的“;”不能遗漏。 使用do-while语句循环时,需要注意避免构成死循环。 3.for语句 for语句一般形式如下: for(表达式1;表达式2;表达式3) { 语句; } 其中,表达式1一般为赋值语句,给循环变量进行初始化赋值;表达式2是一个关系逻辑表达式,作为判断循环条件的真假;表达式3定义循环变量的变化方式。当由表达式1初始化循环变量后,由表达式2和表达式3确定循环次数。 for语句在执行时,首先执行表达式1,然后判断表达式2是否为真,如果为真,则执行一次循环体内部的语句和表达式3,否则将结束循环。for循环语句结束后,程序才可以继续执行循环体外的后续语句。 for循环语句的程序示例如下: #include void main() { int i,s; i=100;s=0; for(i=0;i<=100;i++) { s=s+i; } printf(“1+2+…+100=%d\n”,s); } //1+2+…+100= 5050 使用for循环语句时,需要注意以下几点。 for语句中的3个表达式都是可选择项,可以任意缺省,但“;”不能省。例如for(;;),表示一个无限循环。省略表达式1,即不对循环控制变量进行初始化赋值。省略表达式2,即不判断循环条件的真假。省略表达式3,即不对循环控制变量进行操作。 如果for语句中省略表达式3,则可以在循环语句体内加入控制循环变量的语句,从而避免构成一个死循环。 for循环语句循环允许多层循环嵌套。 for语句循环体中如果只有一条语句,则可以省略“{}”。如果循环体内的语句是多个语句构成的语句体,但必须用“{}”括起来。 for语句“{}”后面无分号。 for语句循环体内允许空语句,此时for语句结尾需要添加分号。如:for(i=0;i<100;i++);本例中for语句没有循环体,只进行空循环,没有任何的操作意义,常用于延时。 【例3.5】时间延迟程序举例。 软件延时方法是依靠累计一定数量的时钟周期来“耗时”的。 如用C51语言编写延时程序,可采用循环语句实现。如: void delay(unsigned int x) { while (x--); } 由于不同的编译器会产生不同的机器代码,这就可能导致程序编写正确但延时时间不一定精确,应通过调试进行补偿调整。 也可以先调试程序中i的上限值(下例中为125)调整一个基准时间(如1ms),然后通过传递不同的参数x,产生不同长度的延时时间。如 void delay(unsigned int x) { unsigned int i; while (x--) { for(i=0;i < 125;i++); } } 3.5 C51语言的构造数据类型 C51语言中的构造数据类型主要有数组、指针和结构。在单片机系统中,数组应用比较广泛,指针次之,结构应用相对较少。 一、C51的数组 在51单片机的程序设计中,数组的一个非常有用的功能是查表。所谓表格是指在程序中定义的一串有序的数据(如平方表、字形码表等),和程序一起固化到程序存储器中。所谓查表,就是根据某个数x,进入表格中寻找y,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值