51流水灯实验

 

课程名称:_单片机原理与应用

姓    名:_赵存档       _ __

 

 

2015-- 2016   学年第  1 学期

 

 


 

实验项目( 一 ) — 预习报告

项目

名称

LED高低电平交替闪烁程序

实验

目的

要求

1. 正确安装keil软件

2. 在 Proteus 的环境下,设计硬件原理图;

3.在keil 集成环境下设计C语言程序;

4. 在 Proteus 的环境下,将硬件原理图与软件联接仿真运行。

实验

内容

原理

1、先正确安装keil c 以及 proteus 软件。

2、利用keil 编写c语言代码,在代码中,定义好要输出的管脚P2,定义一个delay()延迟函数,以及Led = ~LED的反相输出。

3、Proteus的仿真,单片机最小系统的构建:包括40号引脚电源VCC,20号引脚

接地GND,9号引脚复位RESET,18、19号引脚外接12MHZ的晶振以提供时钟频率;

4、8个LED灯的接法:VCC 5V供电的话,单片机的P2口置低电平LED才能亮。

5、代码中0x表示的是16进制。0x0f表示的是0000 1111,也就是说左边的4个LED灯会亮。

预习

过程

中的

疑问

疑问一:0x表示的是怎么?

疑问二:在keil c 中怎么定义指定的引脚号?

疑问三:怎么编写delay()延迟函数?

疑问四:在keil c 中怎么进行调试演练代码?

疑问五:  在仿真环境proteus中,怎么将keil c 中的代码与电路图结合,来进行仿真?

疑问六:发光LED二极管怎么辨别其正负?

疑问七:怎么才能知道给引脚置低电平LED灯亮还是不亮?

疑问八:单片机最小系统的电路图怎么画?

实验项目( 一 ) — 实验报告

项目

名称

LED高低电平交替闪烁程序

指导教师

高照玲

实验室

教室

实验日期

2015/10月

分组

情况

赵存档、张泽光

成    绩

实验步骤(算法、代码、方法)给出流程图

LED高低电平交替闪烁的KEIL C代码:

#include   <reg51.h>

#define LED P2

void delay(int   x);

void main()

{     

LED = 0x0f;

           while(1)

        {  

delay(10000);

          LED =   ~LED;

}

}

void delay(int   x)

{   

int i;

    for(i=0;i<x;i++);

}

    

Proteus仿真电路图:

    

电路图包括:单片机最小系统:复位以及晶振提供时钟频率,led灯。

实验结果(结论及

分析)

     经过调试以及分析可得出结论:通过编写Keil c代码设置晶振频率12MHZ

编译获得hex文件,在proteus中将hex文件加载进去,完成实验的结果。

通过实验可以明白单片机最小系统该怎么画:先是AT89C51单片机,晶振提供单片机运行的时钟周期,手动复位端。P2端口输出低电平与LED灯相连,使之被点亮。

成绩

原文地址:https://www.cnblogs.com/zhaocundang/p/4885704.html