设计与开发

单片机循环程序 51单片机实例讲解,一键多灯控制程序

小编 2024-10-06 设计与开发 23 0

51单片机实例讲解,一键多灯控制程序

一键多灯控制要求:有4个灯L1~L4,启动单片机后,L1亮;按下按键SB1,L2亮;再按下按键SB1,L3亮;再按下按键SB1,L4亮;再按下按键SB1,L1又亮。如此循环往复。

(1)一键多灯控制电路(见图42)。

图42 一键控制多灯单片机接线原理图

(2)一键多灯控制电路元器件(见表17)。

表17 一键多灯控制电路元器件表

(3)一键多灯控制程序流程图(见图43)。

图43 一键控制多灯程序流程图

(4)一键多灯控制程序。

四单片机c语言入门之跳转语句

C语言控制语句中,除前述两篇文章中介绍的判断语句结构和循环语句结构之外,最后一种控制语句就是跳转语句结构了。

跳转语句包括break语句、continue语句、return语句以及goto语句四种

break语句结构

break语句作用是跳出当前循环,无论有几重循环,break永远只跳出自己所在的那一层循环,break一般用法是有条件的跳出while循环,以及用来跳出switch的选择判断(参考前述判断语句文章)。

举个例子,单片机中一般采用IO口来读取按键的状态(硬件如上图),需要实现的是按键每按下一次,自定义变量seft_count值自加1,直到按键按下10次为止(前一篇文章循环结构例子一样)。除前一篇采用条件判断的方式完成算法外,也可使用while加break的方式完成需求。

Continue语句结构

循环语句里有此语句时,程序运行到此语句时,不再执行循环体里continue后面的语句而是跳到下一次循环入口处执行下一次循环判断。简单来说,contine语句只是结束一次当前循环体内部执行的语句,不会跳出循环结构。

举个例子,单片机应用需要实现的功能是按键每按下一次,自定义变量seft_count值自加1,直到按键按下10次为止,如果应用需求是按下十次后,保持按键采样状态但是自定义变量值不再增加,那实现程序可以如下

return语句结构

return是表示从被调函数返回到主调函数继续执行,返回时可附带一个返回值(也可不带参数直接返回),由return后面的参数指定。简单来说,return就是跳出当前return所处函数。

举个例子,单片机应用需要实现的功能是按键每按下一次,自定义变量seft_count值自加1,当按键按下10次后,返回主函数执行空跑指令。

goto语句结构

goto语句也称为无条件转移语句,其一般格式如下:

goto 语句标号;

其中语句标号是按标识符规定书写的符号,放在某一语句行的前面,标号后加半角冒号“:”。语句标号起标识语句的作用,与goto句配合使用。goto语句简单说来就是粗暴的转移,需要注意的就是转移到哪里,用户可以在希望转移到的语句前面加一个语句标识就可以了。

基本结构

loop:

语句;

goto loop;

goto语句使用简单,此处就不举例了,不过需要注意的是,goto指令跳转很容易造成程序机构混乱,并且该指令在单片机应用中实质上涉及到人为强制无条件的干预程序运行地址指针,需要慎之又慎。

后续

到本章节为止,c语言控制语句已经跟大家分享完毕,下一章节将分享c语言运算相关入门知识,请大家关注。

相关问答

单片机 中一个 循环 步多长?

在单片机中,一个循环步的长度是由程序中的指令数量决定的。每一个指令都需要一定的时间来执行,因此循环步的长度也会受到指令执行时间的影响。循环步的长度可...

51 单片机 移位 循环 指令?

51单片机有4条循环移位指令,包括左移RLA、RLCA和右移RRA、RRCA。这两种循环指令都是针对累加器A进行操作,特点都是循环位移,区别是方向不同。以左移的两...

51 单片机 汇编语言倒计时60秒 循环程序 ?

可以在SJMP$这里改成判断R2是不是为0,如是就重新载入60…如果不是就跳回重新判断R2可以在SJMP$这里改成判断R2是不是为0,如是就重新载入60…如果不是就跳回...

c51 单片机 中断中可以加 循环 吗?

c51单片机中断函数中通过以下程序实现对中断函数的运算循环。延时通过定时器定时来实现,中断多次进入就能实现重复多次处理。设...c51单片机中断中可以加循...

在做 单片机 按钮控制流水灯,我想达到按一下自己 循环 ,再按一下...

while(s==0)//当按键第一次按下时进入循环点亮灯的循环{temp=0x01;for(i=0;i<8;i++){P0=~temp;Delayms(100);temp<...

单片机 用keil编程C语言,控制某I/O口通断--通断的 循环 ,公式怎么编,比如 循环 通断100次,并编写多种延时?

用FOR循环或While也可以for(k=0;k<100;k++){P1=0;Delay();//这里自己加个延时P1=1;}用FOR循环或While也可以for(k=0;k<100;k...

单片机 控制32盏灯 循环 显示?

按照单片机系统扩展与系统配置状况,单片机应用系统可分为最小系统、最小功耗系统及典型系统。8051单片机是Intel公司生产的,除无片内ROM外,其余特性与MCS-51...

单片机 编程控制8个LED,先逐个点亮,再逐个熄灭,再逐个点亮,如此 循环 ,变化间隔为1秒左右,用软件 循环 实现?

假如:P0口接8个LED,程序可以这样:#include#defineucharunsignedchar#defineuintunsignedintsbitled1=P2^0...

51 单片机 程序 为何break后,一段时间又进入了 循环 ?

当然是这样了(程序有点长,我没看),不然大于和小于34度都不进入循环,那要循环干吗当然是这样了(程序有点长,我没看),不然大于和小于34度都不进入循环,那要循环...

单片机 loop指令是什么?

单片机loop指令是循环指令单片机loop指令是循环指令

猜你喜欢