数码管显示1到8c语言,单片机控制八只数码管滚动显示1~8 附PROTEUS软件仿真图

数码管显示是每一个单片机初学者都必须学的,而单片机驱动数码管的数字循环显示实验,又是单片机基础中的基础,同时也是学好C语言编程的关键,此实验在硬件上可以弄清楚单片机驱动原理和数码管的显示原理,在软件上可以帮助建立编程思维和良好的编程习惯,同时加深C语言中 函数,变量和循环结构语句的学习。

为了方便初学者,程序代码每一段我都加了详细的注释。同时为了更直观的显示效果用PROTEUS软件来进行仿真。

8只数码管滚动显示1~8 PROTEUS 和51单片机教程

7c591fb76d31aac03692c095033d2c52.png

程序功能,从左到依次显示0,1,2,3,4,5,6,7 八个数字

程序参考源代码如下:

/* 8只数码管同时显示不同字符 */

#include // 51程序头文件

typedef unsigned char uint8;

typedef unsigned int uint16; // 程序中的两个宏定义

code uint8 LED_CODE[] = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8};

//数码管显示的八个码段

void delay(uint16 x) // 定义无返回值延时函数

{

uint16 i,j; // 定义循环语句的两个变量

for(i = x; i > 0; i --)

for(j = 114; j > 0; j --); // FOR循环语句实现功能

}

void main() //定义主函数

{

uint8 i; //定义函数变量

while(1)

{

for(i = 0; i < 8; i ++) //FOR循环

{

P0 = 0xFF;

P3 = 0x01 << i;

P0 = LED_CODE[i]; //给IO口赋值

delay(4); //调用延时函数

}

}

}

最后,如果有什么意见或者建议欢迎您留言给我,如果你也是一个单片机初学者,请关注我,让我们共同学习一起进步,学无止境,加油!

谢谢!

举报/反馈

  • 6
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值