数码管显示是每一个单片机初学者都必须学的,而单片机驱动数码管的数字循环显示实验,又是单片机基础中的基础,同时也是学好C语言编程的关键,此实验在硬件上可以弄清楚单片机驱动原理和数码管的显示原理,在软件上可以帮助建立编程思维和良好的编程习惯,同时加深C语言中 函数,变量和循环结构语句的学习。
为了方便初学者,程序代码每一段我都加了详细的注释。同时为了更直观的显示效果用PROTEUS软件来进行仿真。
8只数码管滚动显示1~8 PROTEUS 和51单片机教程
程序功能,从左到依次显示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); //调用延时函数
}
}
}
最后,如果有什么意见或者建议欢迎您留言给我,如果你也是一个单片机初学者,请关注我,让我们共同学习一起进步,学无止境,加油!
谢谢!
举报/反馈