单片机课程报告 从P1.0到P1.7依次点亮八个LED灯

发布时间:2011-09-23 17:33:11   来源:文档文库   
字号:

实验报告内容:

一、设计功能描述,指明基本要求及提高要求的实现内容;

二、实验材料清单(包括:软件工具名称、仪器设备名称、元器件等)

三、实验实施过程描述,要点包括:

1)设计功能描述;(2)描述原理图设计思路,并画出电路图;(3)描述程序设计思路,并画出程序流程图;(4)写出源程序及其必要注释;(5)片内RAM的地址及I/O端口分配表;(6)子程序列表(名称、功能描述、出入口);(7)调试结果描述;(8)出现问题及其解决办法。

学习情境1

实验目的:点亮LED

实验任务:P1.0P1.7依次点亮八个LED

实验材料及器件

设计功能描述

利用单片机的P1口,依次循环点亮1个灯,使人们感觉到亮灯的位置在依次顺序移动,可产生一种动态显示的效果。

实验原理图

程序设计思路及程序流程图

要依次点亮八盏灯,根据点亮的位置及从哪一个开始点亮,向P1口传递如下数据

11111110FEH——点亮P1.0连接的LED, MOV P1#0FEH

11111101FDH——点亮P1.1连接的LED, MOV P1#0FDH

……….

011111117FH——点亮P1.7连接的LED, MOV P1#07FH

分析如上数据可以发现,他们它们后面穿送的数据依次是前面数据左移一位的结果,因此我们可以利用循环程序来实现这个功能,程序流程图如下所示

N

Y

实验源程序

org 0000h

start: mov r2,#08h 设置循环次数

mov a,#0feh 送显示模式字

next: mov p1,a 点亮连接P1.0的发光二极管

acall delay

rr a 左移一位,改变显示模式字

djnz r2,next 循环次数减1不为0,继续点亮下面一个LED

sjmp start 重复上述过程

delay: mov r3,#0efh

del2: mov r4,#0ffh

del1: nop

djnz r4,del1

djnz r3,del2

retend

子程序列表(名称、功能描述、出入口);

delay: mov r3,#0efh

del2: mov r4,#0ffh

del1: nop

djnz r4,del1

djnz r3,del2

ret

该程序为典型的双重循环的延时子程序,他通过子程序入口delay: mov r3,#0efh进入程序,当程序运行至djnz r4,del1时进入第一重循环,当第一重循环结束时,进入djnz r3,del2第二重循环,最后经过ret退出子程序

调试结果描述

程序下载成功后,LED灯从左到右来回一个一个亮灭亮灭

出现问题及其解决办法

前面把送显示模式写成07fh,后面载入系统板的时候才发现原来十六进制排列方法为P1.7-P1.0,要写成0feh然后次循环左移,才能实现led从左到右的流水。

本文来源:https://www.2haoxitong.net/k/doc/332ccf21aaea998fcc220ef6.html

《单片机课程报告 从P1.0到P1.7依次点亮八个LED灯.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式