流水灯c语言代码switch,单片机C语言入门之六switch case语句流水灯
除了if else语句,C语言还提供了另一种用于多分支选择的switch语句, 其一般形式为:
switch(表达式)
{
case常量表达式1:
语句1;
break;
case常量表达式2:
语句2;
break;
…
case常量表达式n:
语句n;
break;
default:
语句n+1;
}
其语义是:计算表达式的值。 并逐个与其后的常量表达式值相比较,当表达式的值与某个常量表达式的值相等时, 即执行其后的语句,然后不再进行判断,继续执行后面所有case后的语句。如表达式的值与所有case后的常量表达式均不相同时,则执行default后的语句。看个例子:输入几就输出星期几。
main(){
int a;
printf("input integer number: ");
scanf("%d",&a);
switch (a){
case 1:printf("Monday\n");break;
case 2:printf("Tuesday\n"); break;
case 3:printf("Wednesday\n");break;
case 4:printf("Thursday\n");break;
case 5:printf("Friday\n");break;
case 6:printf("Saturday\n");break;
case 7:printf("Sunday\n");break;
default:printf("error\n");
}
}
在使用switch语句时还应注意以下几点:
在case后的各常量表达式的值不能相同,否则会出现错误。
在case后,允许有多个语句,可以不用{}括起来。
各case和default子句的先后顺序可以变动,而不会影响程序执行结果。
default子句可以省略不用。
在case语句结束应要加break语句,否则将不能跳出switch语句,输出不应有的结果。
下面我要提一下break和continue语句,先了解下:
break语句通常用在循环语句和开关语句中。当break用于开关语句switch中时,可使程序跳出switch而执行switch以后的语句;如果没有break语句,则将成为一个死循环而无法退出。
当break语句用于do-while、for、while循环语句中时,可使程序终止循环而执行循环后面的语句,通常break语句总是与if语句联在一起。即满足条件时便跳出循环。
continue语句的作用是跳过循环本中剩余的语句而强行执行下一次循环。continue语句只用在for、while、do-while等循环体中,常与if条件语句一起使用,用来加速循环。其执行过程可用下图表示。
关于switch就说这么多,下面来看在单片机中的例子,使用switch case语句实现流水灯。
#include //STC12系列头文件 复制到工程目录下
sbit LEDK = P1^4;// 控制三极管基极
void main(void)
{
unsigned char i=0; //声明变量i
unsigned int k;
LEDK=0; //置0使PNP型三极管导通LED负极接地
P0M1=0x00;
P0M0=0xff; //P0口全部设置为推挽输出 见手册87页 IO口模式配置
while(1)
{
switch(i) //i等于几就执行相应的case语句块
{
case 0:
{
P0=0x01; //点亮最低位的LED 下面的语句八个LED依次点亮
}break; //执行完case遇到break就跳出当前switch循环
case 1:
{
P0=0x02;
}break;
case 2:
{
P0=0x04;
}break;
case 3:
{
P0=0x08;
}break;
case 4:
{
P0=0x10;
}break;
case 5:
{
P0=0x20;
}break;
case 6:
{
P0=0x40;
}break;
case 7:
{
P0=0x80;
}break;
default:
break;
}
i++; //执行完上一个case后出来i增1
if(i==8)i=0; //i=8 八个case执行完 i赋值为0 继续从头开始
for(k=0;k<50000;k++); //延时一会
}
}
流水灯c语言代码switch,单片机C语言入门之六switch case语句流水灯相关推荐
- 单片机c语言编程下载,单片机C语言编程.doc
单片机C语言编程.doc 单片机C语言编程指令格式 功能简述 字节数 周期 一.数据传送类指令 MOV A, Rn 寄存器送累加器 1 1 MOV Rn,A 累加器送寄存器 1 1 MOV A ,Ri ...
- c语言流水灯仿真程序设计框图,基于单片机c语言控制的流水灯程序设计及prtes仿真图.docx...
基于单片机c语言控制的流水灯程序设计及prtes仿真图 89c51与8个发光二极管相连流水控制 一.不同花样的控制源程序代码: /*#include #define uchar unsigned ch ...
- 青花瓷音乐的单片机c语言程序,c语言曲谱_单片机c语言音乐简谱代码
51单片机曲谱编写音乐程序,我看不懂曲谱,谁能教下我! //<世上只有妈妈好>51单片机C语言程序和音乐采灯程序 //此程序在硬件上调试通过 //本程序的单片机晶振采用11.0592MHZ ...
- 简单谱子C语言程序,c语言曲谱_单片机c语言音乐简谱代码
51单片机曲谱编写音乐程序,我看不懂曲谱,谁能教下我! //<世上只有妈妈好>51单片机C语言程序和音乐采灯程序 //此程序在硬件上调试通过 //本程序的单片机晶振采用11.0592MHZ ...
- 单片机C语言仿真图,单片机C语言程序设计代码和仿真图.doc
word完美格式 精心整理 学习帮手 <单片机C语言程序设计实训100例-基于8051+Proteus仿真>案例 第 01 篇 基础程序设计 01闪烁的LED /* 名称:闪烁的LED 说 ...
- 74hc595点亮点阵式led交通灯灯 c语言程序,89C51单片机C语言用四个74hc595控制四个LED实现交通灯...
89C51单片机C语言用四个74hc595控制四个LED实现交通灯 (2009-05-16 18:52:38) 标签: 教育 #include #define uchar unsigned char ...
- 单片机C语言节日彩灯,单片机c语言节日彩灯控制器设计.docx
单片机c语言节日彩灯控制器设计 湖南涉外经济学院课程设计报告课程名称:单片机原理及应用报告题目:节日彩灯控制器的设计学生姓名:所在学院:信息科学与工程学院专业班级:电子信息工程1102班学生学号:指导 ...
- stc单片机c语言 pdf,STC单片机C语言程序设计 第13章 STC单片机C语言指针.pdf
STC单片机C语言指针 主讲:何宾 Email :hebin@mail.buct.edu.cn 2016.03 C51编译器中指针的分类 Cx51编译器支持使用字符"*"声明变量指 ...
- 软件工程-c语言--基于at89c51单片机c语言编写的计算器,基于AT89C1单片机C语言编写的计算器.doc...
基于AT89C1单片机C语言编写的计算器 #include #define uint unsigned int #define uchar unsigned char sbit dula=P2^6; ...
- keil的c语言基础,KeilC单片机C语言应用研究入门基础篇要点S.doc
KeilC单片机C语言应用研究 系 别 计算机系 专 业 计算机科学与技术 姓 名 刘志远 指导教师 张连生 Keil C单片机C语言应用研究 刘志远 (太原师范学院计算机系200202班 山西·太原 ...
最新文章
- 2022-2028年中国乙酸钴行业发展现状调研及市场前景规划报告
- 6行代码,带你学会Python最有用的小技巧【收藏不后悔】
- java 给窗口加菜单_程序求助:如何给窗口添加菜单?
- 怎么可以查到AD里面长时间没有登录的帐号
- DIV与Table布局在大型网站的可用性比较
- vue e-charts按需引入
- leetcode - 538. 把二叉搜索树转换为累加树
- PyQt5笔记(04) -- 文本框的使用
- oracle 偶尔登录超时,OracleClient,间歇性连接问题:应用程序挂起在OracleConnection.Open()上,没有超时,没有引发异常...
- Mysql插入中文时错误:ERROR 1366 (HY000): Incorrect string value: '\xE6\x9D\x8E\xE5\x8B\x87' for column
- 利用爬虫技术清理微博“僵尸粉”
- mac php fpm 502,nginx+php-fpm出现502(Bad Gateway)错误的分析与解决 | linux系统运维
- IP属地靠谱吗?或是一把双刃剑
- JavaScript 使用
- A-priori算法的优化实现
- python matplotlib pColor 网格线 消除
- ocv特性_锂离子电池的三大特性分析
- pwm占空比的c语言编程详解,盘点占空比、PWM、GPIO三者含义及原理分析
- 上海东华计算机分数线,2020年东华大学上海分专业录取分数线
- 03_基于wiringPi的GPIO控制-蜂鸣器