项目一LED流水灯实验 一、设计目标及思路 实现基于单片机控制的流水灯效果,8个发光二极管LED0~LED7依次点亮,熄灭,实现8只LED灯的流水效果 流水灯——实现LED1~LED8灯的依次点亮和熄灭。 1.点亮LED1——将接LED1灯的单片机I/O口提供低电平; 2.熄灭LED1,点亮LED2——将接LED1灯的单片机I/O口提供高电平,将接LED1灯的单片机I/O口提供低电平; 3.熄灭LED2,点亮LED3——将接LED2灯的单片机I/O口提供高电平,将接LED3灯的单片机I/O口提供低电平; ……以此类推; 9.最后熄灭LED8,并回到第1步循环。 二、实验材料清单 重要元器件介绍 1. 89C51 :89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS8位微处理器,俗称单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的89C51是一种高效微控制器,89C2051是它的一种精简版本。89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。 2.晶体振荡器 晶体振荡器是指从一块石英晶体上按一定方位角切下薄片(简称为晶片),石英晶体谐振器,简称为石英晶体或晶体、晶振[1];而在封装内部添加IC组成振荡电路的晶体元件称为晶体振荡器。其产品一般用金属外壳封装,也有用玻璃壳、陶瓷或塑料封装的。 三、实验仿真图 四、实验软件程序 - #include<reg52.h>
- void delay(int c) //延时函数
- {
- int a,b;
- for(a=c;a>0;a--)
- {
- for(b=100;b>0;b--);
- }
- }
- void main()
- {
- while(1)
- {
- P2=0xFE;
- delay(100); //L8亮,其余不亮
- P2=0xFD;
- delay(100); //L7亮,其余不亮
- P2=0xFB;
- delay(100); //L6亮,其余不亮
- P2=0xF7;
- delay(100); //L5亮,其余不亮
- P2=0xEF;
- delay(100); //L4亮,其余不亮
- P2=0xDF;
- delay(100); //L3亮,其余不亮
- P2=0xBF;
- delay(100); //L2亮,其余不亮
- P2=0x7F;
- delay(100); //L1亮,其余不亮
- }
-
- }
-
- P2=0xDF;
- delay(100);
-
- P2=0xBF;
- delay(100);
-
- P2=0x7F;
- delay(100);
- }
- }
复制代码
五、实验作品
全部资料51hei下载地址:
项目二流水灯 李治 李昭.rar
(418.19 KB, 下载次数: 32)
|