3路跑马灯实验 下载本文

内容发布更新时间 : 2024/6/9 3:47:50星期一 下面是文章的全部内容请认真阅读。

单片机实验报告一

一、 实验目的

1. 掌握Keil集成开发环境基本使用方法;

2. 掌握学林51mini仿真器和下载(编程)器的基本使用方法。

评 阅 二、 实验主要仪器及环境: Keil,51单片机,51mini仿真器,计算机。 三、 实验内容

p1口八个灯作3路跑马灯。分别往端口送三个不同的数, 理解数字和端口的对应关系

四、 实验步骤

1)复位。观察记录SFR、IO的状态以及第一条指令代码的地址,验证复位后51单片机的状态;

2)全速运行。观察记录LED的运行情况,与前面下载到单片机运行的情况相比较。 3)复位,采用单步运行(F10),观察记录执行每一条指令后相关寄存器、IO的变化情况。 4)复位,在延时程序处设置断点,运行到断点时,采用单步跟踪(F11),进入到延时程序,观察记录相关寄存器、IO的变化情况。

5)修改程序,增大、减少延迟时间,仿真观察LED变化情况,保存源程序。

五、 实验流程框图、实验程序

1、实验流程框图如下:

D00、D03和D06灯亮 延时 D01、D04和D07灯亮 延时 D02和D05灯亮 开始

2、实验程序如下: ORG 0000H ; LJMP MAIN ;

ORG 0080H ;

;11011011--零为亮 ;01101101 ;10110110

ACALL DELay ; MOV P1,#06DH ACALL DELay ; MOV P1,#0B6H ACALL DELay ;

MAIN: MOV P1,#0DBH

返回 延时 AJMP MAIN ;

delay: mov r7,#255 ;延时子程序 d1: mov r6,#255 d2: djnz r6,d2 djnz r7,d1 ret End

六、 实验及程序的分析和讨论

为实现3路跑马灯,本次实验三次灯亮灭的变换为一个周期。MOV P1,#0DBH;11011011实现的是D02和D05灯亮,MOV P1,#06DH;01101101实现的是D01、D04和D07灯亮,MOV P1,#0B6H;10110110实现的是D00、D03和D06灯亮。

七、 程序测试报告: 本次实验的目的是实现

3路跑马灯,通过分步操作,可以看出,跑马灯的实现是基于每

一次的灯亮灭的不一样,首先是D02和D05灯亮,接着是D01、D04和D07灯亮,最后是D00、D03和D06灯亮。每一次灯亮灭的改变都有一个延时,当延时时间很短的时候即实现了3路跑马灯。

delay: mov r7,#255 ; 本指令的执行时间是1us d1: mov r6,#255 ; 本指令的执行时间是1us

d2: djnz r6,d2 ; 本指令执行一次是2us,共计255*2=510us djnz r7,d1 ; 本指令执行一次是2US,本循环共执行255次 Ret ; 本指令执行时间是2us

所以延时子程序的延时时间为:1us+(1+510+2)*255us+2us=130818us≈0.13s

八、 回答思考题所提出的问题。

思考题:单片机系统的开发过程,所使用的主要工具keil软件和学林51mini仿真器,keil软件解决的问题单片机芯片的程序编写和调试过程,51mini仿真器的功能是用简单的方法来仿真单片机程序达到的效果,检测程序的可用性。单片机开发环境提供的调试方式有多种,便于不同经验程度的人应用,比如有单步调试的,适合于初学者学习,可以通过单步看出单片机的运行,还有的就是一次性执行完,可以得到最终的结果。