PIC流水灯实验报告

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

. 精选范本

实验一 流水灯

一、实验要求 编写程序实现用PIC16F877A 单片机的D 口控制发光二极管循环右移位,实现追灯功能:先D8点亮,其次是D7点亮,……,D1点亮,然后D8点亮,……,周而复始循环进行,并使用Proteus VSM 仿真器进行程序的烧写和仿真调试。

二、实验目的

1.熟悉利用Proteus 软件绘制单片机硬件电路,熟悉PIC16F877A 单片机的硬件结构。

2.学习输入/输出端口控制方法。

3.进一步熟悉MPLAB 环境下工程项目的建立和源程序的编写。

4.掌握使用PIC16F877A 仿真器进行硬件的仿真调试。

三、实验设备

PC 机一台、MPLAB 开发软件、Proteus 软件。

四、实验线路及连线

1.利用Proteus 绘制硬件线路图,在MPLAB IDE 中加载Proteus VSM 仿真器,调试PIC C 程序。

2.如下图,单片机的D 口外接8个LED 。

五、实验说明

1.如下图,当D 口的RD*为高时,相应的LED 点亮。

2.编程时,延时的实现可直接调用HI-TECH 的库函数,即:#include

六 实验报告

1、proteus 软件的硬件线路图

B2013052244

刘颖

2、程序流程图

开始

TRISD=0x00;

A=0x00;

N

延时等待

200ms ?

Y

PORTD=A;

A=A<<1;

N

A=0 ?

Y

A=0x01;

精选范本

3、观察实验现象

八个LED灯循环点亮,先D8点亮,200ms后D8灭,D7点亮,……,D1点亮,200ms后D1灭,然后D8点亮,……,周而复始循环进行。

4、实验分析

问题分析:控制流水灯循环点亮的过程中需定义一个全局变量A=0b00000001,让A的值左移,并把值赋给D口,从而达到所需的效果,但当A左移8次后灯却不再点亮。

解决方法:出现上述现象的原因是当A左移8次后A的值变为0,故要对A的值进行判断,如果值为0,则对其进行赋初值。

结论:针对实验中所出现的问题,可总结如下:①由于人眼的暂留效果,限制了LED灯的点亮时间,不宜太短。②实现周而复始循环左移或右移时,应对变量赋初值。

精选范本

相关文档
最新文档