文档介绍:实验一流水灯实验
一、实验要求
在Proteus软件中画好51单片机最小核心电路,包括复位电路和晶振电路
继续在Proteus软件中绘制电路,将P2口做输出口,接八只发光二极管
在Keil软件中编写程序,实现功能,间隔1S点亮一个发光二极管,。
二、实验目的
学习Proteus软件的使用方法
学习Keil软件的使用方法
学习端口输出的使用方法
掌握延时程序的设计
三、实验说明
设计一个由89C51芯片和8个LED灯的流水灯,8个流水灯里的工作顺序是D1,D2,D3,D4,D5,D6,D7,D8且一直循环,间隔1s点亮一个发光二极管。,那么我们只要把D1的正极接上高电平就可以了;同理,~,这就是为什么我们在发光二级管正极接上有源排阻。因此,要实现流水灯功能,我们只要将D1~D8依次点亮,8个LED灯就变成从左往右的流水灯了。
四、硬件原理图及程序设计
(一)硬件原理图设计
上图是此次要设计的流水灯硬件原理图,依次从左往右(D1到D8)开始工作。
(二)程序流程图设计
开始
设置初始值
输出/延时
左移
7次
(三)程序设源代码
/* 流水灯实验, 间隔1S点亮一个发光二极管,*/
#include<> //定义8x51寄存器的头文件
#define LED P2 //设置P2输出端口
unsigned char TAB[]={0X7f,0Xbf,0Xdf,0Xef,0Xf7,0Xfb,0Xfd,0Xfe};//声明显示顺序
void delay_ms(int x); //定义延时函数
main() //主程序
{ unsigned char i;
while(1)
{ for(i=0;i<=7;i++) //八个流水灯,顺序依次从D1~D8
{
delay_ms(1000); //