|
51单片机控制的花样流水灯实验,有仿真有代码,分享给51黑电子论坛的朋友们.
单片机LED花样变化原理图(proteus工程文件可到本帖附件下载):
单片机源程序:
- //-------------------------------------------------------------------------------------------------------------------------------
- // 程序名: JSC5-2.c
- // 程序功能:P1输出,LED进行花样变化
- //------------------------------------------------------------------------------------------------------------------------------
- #include <reg51.h> // 头文件
- //----------------------------------------------------------
- // 声明无符号字符数组TABLE
- //----------------------------------------------------------
- unsigned char code TABLE[ ]={
- 0xff,0xe7,0xc3,0x81,0x00, // 从中间向两侧点亮控制码
- 0xff,0x7e,0x3c,0x18,0x00, // 从两侧向中间点亮控制码
- 0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f, // 左移控制码
- 0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe, // 右移控制码
- 0x00,0xff,0x00,0xff, // 闪烁控制码
- 0x01 // 结束码
- };
- //------------------------------------------- 延时函数---------------------------------------------
-
- DELAY( ) // 延时函数
- {
- unsigned int s; // 声明s为无符号整型变量
- for(s=0;s<30000;s++); // for循环延时语句
- }
- //--------------------------------------------- 主函数 --------------------------------------------
- main( ) // 主函数
- {
- unsigned char i; // 声明无符号字符型变量i
- while(1) // 无限循环
- {
- if ( TABLE[i]!=0x01 ) // 取码不等于0x01时,执行if{ }内的语句
- {
- P1=TABLE[i]; // 输出
- i++; // 递加(加1)
- DELAY( ); // 调用延时函数DELAY( )
- }
-
- else // 取码等于0x01时,执行"i=0"语句
- {
- i=0; // 重新开始循环
- }
- } // while(1)循环体结束
- } // 主函数结束
- //-----------------------------------------------------------------------------------------------------------------
复制代码
该系列源码包含有很多非常经典,代码风格十分规范,而且注释详细的单片机例程,还带仿真,对于MCU学习特别是初学者是很有帮助的,全部源码下载(共25个项目):http://www.51hei.com/bbs/dpj-79328-1.html
本例程下载(含proteus仿真工程文件与源码):
5-2单片机控制LED进行花样变化实验.rar
(52.4 KB, 下载次数: 9)
|
|