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