单片机并口简单应用(流水灯) 如图1所示,流水灯硬件电路由发光二极管、单片机并口(P0)、限流电阻等组成。发光二极管连接成共阳极结构。发光二极管点亮的条件是:阳极接高电平、各阴极接低电平。因此,二极管公共端阳极就接成高电平,然后再按一定规则从P0口输出数据,发光二极管就会点亮。 
图1 流水灯电路图
2、程序流程图如下。 1、开发板接线图 
编写程序
编写程序
实 验 名: 流水灯实验
实验说明 : 延时实现LED流水灯效果P0口八个灯作跑马灯。
//--包含你要使用的头文件
- #include <reg52.h> //此文件中定义了52的一些特殊功能寄存器
- #include <intrins.h>
-
- //--声明全局函数--//
- void Delay10ms(unsigned int c); //延时10ms
-
- /******************************************************************************
- * 函 数 名 : main
- * 函数功能 : 主函数
- * 输 入 : 无
- * 输 出 : 无
- ******************************************************************************/
-
- void main()
- {
- unsigned char LED;
- LED = 0xfe; //0xfe = 1111 1110
- while (1)
- {
- P0 = LED;
- Delay10ms(50);
- LED = LED << 1; //循环右移1位,点亮下一个LED "<<"为左移位
- if (P0 == 0x00) //当它全灭的时候,重新赋值
- {
- LED = 0xfe; // 0xfe = 1111 1110
- }
-
- }
- }
- /******************************************************************************
- * 函 数 名 : Delay10ms
- * 函数功能 : 延时函数,延时10ms
- * 输 入 : 无
- * 输 出 : 无
- ******************************************************************************/
-
- void Delay10ms(unsigned int c) //误差 0us
- {
- unsigned char a, b;
- //--c已经在传递过来的时候已经赋值了,所以在for语句第一句就不用赋值了--//
- for (;c>0;c--)
- {
- for (b=38;b>0;b--)
- {
- for (a=130;a>0;a--);
- }
-
- }
- }
复制代码
完整的Word格式文档51黑下载地址:
1单片机并口简单应用(流水灯).docx
(434.04 KB, 下载次数: 8)
|