惠州学院-单片机实验1-P1口亮灯实验

版权声明:本文为博主原创文章,未经博主允许不得转载 QQ255615。 https://blog.csdn.net/Admin_Chin/article/details/72083000

   计算机科学系实验报告(首页)

课程名称

单片机原理及应用

班级

14计科2班

实验名称

P1口亮灯实验

教导教师

王明安

姓名

 张钦颖

学号

1414080901218

组号

17

日期

2016年10月13日


   



 

一、实验目的

     1、熟悉编程和程序调试

2、学习P1口的使用方法

3、学习延时子程序的编写

二、实验内容

P1口做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮,修改程序,改变延时常数,使发光二极管闪亮时间改变,并使发光二极管闪亮移位方向改变。

三、程序框图


四、实验步骤

1、用8芯线将P1.0~P1.7连至L1~L8;

2、运行程序HW01.asm,观察发光二极管闪亮移位情况。

五、实验结果

程序源代码:

        ORG 0000H
        LJMPSE18
        ORG0080H
SE18:   MOVP1,#0FFH    ;送P1口
LO34:   MOVA,#0FEH     ;L1发光二极管点亮
LO33:   MOVP1,A
       	LCALLSE19      ;延时
        RLA            ;左移位
        SJMPLO33       ;循环
 
SE19:  MOV R6,#0A0H    ;延时子程序
LO36: MOVR7,#0FFH
LO35: DJNZR7,LO35
DJNZ R6,LO36
       RET
       END



改变延时常数,使发光二极管闪亮时间改变,并使发光二极管闪亮移位方向改变

源代码:

       ORG 0000H
       LJMP SE18
       ORG 0080H
SE18:     MOV P1,#0FFH    ;送P1口
LO34:    MOV A,#0FEH     ;L1发光二极管点亮
LO33:    MOV P1,A
LCALL SE19      ;延时
LCALL SE19      ;延时
LCALL SE19      ;延时
LCALL SE19      ;延时
LCALL SE19      ;延时
LCALL SE19      ;延时
LCALL SE19      ;延时
LCALL SE19      ;延时
LCALL SE19      ;延时
 
       RR  A          ;右移位
       SJMP LO33      ;循环
 
SE19:   MOV R6,#0A0H    ;延时子程序
LO36:    MOV R7,#0FFH
LO35:    DJNZ R7,LO35
       DJNZ R6,LO36
        RET
        END

七、实验结论、实验体会

     此次实验是单片机上机操作的第一次实验,由于此前已经在软件实验中接触过所需的Keil软件,遂在软件安装等方面没有花费太多时间;实验前半部分是将既定程序通过软件连接至机箱执行,其实验结果为LED灯从左到右依次点亮,在第二个灯点亮时前一个灯熄灭,形成流水灯效果,此部分没有遇到太大的困难;更改延时程序部分,经过查询,由于Keil该软件不支持传送立即数数据首位为子母位以及一些未知问题、且经过测试更改R6为#0A00H或者#0A000H均无法实现相应延时效果,其结果不是不能运行,即是程序报错,我们遂采取下策,将原程序的延时子程序多次调用以实现LED灯亮灭间隔达到1S的效果;另外把左移指令RL改为右移指令RR,则可以使发光二极管闪亮方向改变。

猜你喜欢

转载自blog.csdn.net/Admin_Chin/article/details/72083000