原创 【单片机基础-9】两位数码管的减1计数器

2023-3-26 20:46 397 2 2 分类: MCU/ 嵌入式 文集: 单片机基础

风风雨雨二十载,多少bug在心间。

代码编译不通过,急得抓耳直挠腮。

回想当年恩师讲,基础知道全忘干。

忙里偷闲回首看,权当引玉的抛转。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

1、画出电路图(采用共阳极接法)

2、写出程序并详细解释

#include

#define uint unsigned int

#define uchar unsigned char

uchar a[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,

0x80,0x90};

char v=99; //显示的初始值

void delay(uint m)

{

uchar i;

while(m--)

for(i=0;i<120;i++);

}

void main()

{

uchar j;

while(1) //因为在本程序运行时主函数并没有自动循环,所 //以在此加上死循环,此问题应该在调试程序时注意

{

for(j=0;j<150;j++) //用循环实现每次变换数据显示的时间

{

P0=a[v/10]; //取出v的十位数作为字形码数组的下

//标,并将对应数字的字形码输入P0

P3=0x01; //将十位数的位码输入P3口

delay(1); //1ms延时

P0=0xff;P3=0x00; //数码管消隐

P0=a[v%10]; //取出v的个位数作为字形码数组的下

//标,并将对应数字的字形码输入P0

P3=0x02; //将个位数的位码输入P3口

delay(1); //1ms延时

P0=0xff;P3=0x00; //数码管消隐

} //两位数的显示

v--; //将显示的值改变自减1,实现减1计数器的设计

if(v<0) //当v<0,即到-1时,要重新设置,本设计要求回 //到初始值99

v=99; //回到初始值99

}

}

以下补充if语句用法。

条件语句常用于需要根据某些条件来决定执行流向的程序中。它是由关键字if构成,即if条件语句。条件语句又被称为“分支语句”。C51语言提供了3种形式的条件语句,下面分别进行介绍。

1、单分支结构

单分支结构的条件语句只有一个语句分支或者语句块分支,其一般形式为:

if (表达式) 语句;

其中,当if条件语句表达式的结果为真时,就执行分支语句,执行完后,继续执行后续程序;当表达式为假时,就跳过分支语句,执行后续程序。

使用if语句的单分支结构程序,示例如下:

#include <stdio.h> //头文件

void main() //主函数

{

int a,b; //变量声明

a=1; //初始化

b=1; //初始化

if (a==b) a++; //if语句的单分支结构

printf("a=%d\n",a); //输出结果

}

2、双分支结构

双分支结构的条件语句包含两个语句分支,由关键字if和else构成,其一般形式为:

if (表达式)

语句1;

else

语句2;

当表达式为真时,就执行语句1,执行完后,继续执行if语句后面的语句;当表达式为假时,就执行语句2,执行完后,继续执行if语句后面的语句。

3、阶梯式if-else-if结构

阶梯式if-else-if结构是一种多分支结构,其可以包含多个分支语句,其一般形式为:

if (表达式1) 语句1;

else if (表达式2) 语句2;

else if (表达式3) 语句3;

else if (表达式n) 语句n;

else 语句n+1;

这是由if-else语句组成的嵌套,可以实现多方向条件分支。该语句从上到下逐个对条件进行判断,一旦条件为真,就执行与其相关的分支语句,并跳过剩余的阶梯;如果没有一个条件为真,则执行最后一个else分支语句n+1。

3、下载程序并调试

 

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
2
关闭 站长推荐上一条 /3 下一条