电子科技大学中山学院学生实验报告
院别:电子信息学院                                  课程名称:微处理器实验
班级:12电信A                  姓名:                学号:         
实验名称:三、并口输入/输出实验        实验时间:201410 月13 日
成绩:                      教师签名:                  批改时间:
1、实验原理与目的
1、掌握80C51单片机程序的调试与下载方法。
2、掌握80C51单片机并口的工作原理及输入输出控制方法
2、实验仪器
PC 机一台(带keil、STC_ISP)、ZSC-1单片机实验箱一台
3、实验内容与分析
①设计程序,控制发光管L101-L108以一定的时间间隔轮流点亮。
ORG        0000H
LJMP        MAIN
ORG        0100H
MAIN:  MOV  A, #11111110B  ;准备点亮第一只发光管
并输出
NEXT:  MOV  P0,A
        ACALL DELAY        ;软件延时1s左右
        RR  A              ;准备点亮下一只发光管
        SJMP  NEXT
DELAY:  MOV  R2,#200     
DELAY2: MOV  R3,#200
DELAY3: MOV  R4,#100
        DJNZ  R4,$
        DJNZ  R3,DELAY3
        DJNZ  R2,DELAY2
        RET
        END
②设计程序,通过查表操作,控制L101-L108逐个点亮,再逐个熄灭。
ORG        0000H
LJMP        MAIN
ORG        0100H
MAIN:  MOV  DPTR,# LEDTBL        ;DPTR指向表首单元
        MOV  A, #0          ;A0开始
NEXT:  PUSH  ACC            ;A中的数据入栈保存
        MOVC      A,@A+DPTR      ;查表
        MOV  P0,A            ;输出当前字节
        ACALL DELAY          ;软件延时1s左右
        POP  ACC            ;恢复入栈保存的A
          INC    A              ;调整A的值
        CJNE  A,# 16  ,NEXT    ;检查是否已到表尾
        SJMP  MAIN
DELAY:  MOV  R2,#200     
DELAY2: MOV  R3,#200
DELAY3: MOV  R4,#100
        DJNZ  R4,$
        DJNZ  R3,DELAY3
        DJNZ  R2,DELAY2
        RET
LEDTBL: DB    11111110B,11111100B,11111000B,11110000B  ;LED控制表
        DB    11100000B,11000000B,10000000B,00000000B
        DB    00000001B,00000011B,00000111B,00001111B
        DB    00011111B,00111111B,01111111B,11111111B
        END
③设计程序,利用按键KX0-KX3分别控制发光管L101-L104的亮灭。
KX0  EQU  P3.2  ;声明外设对应口线
KX1  EQU  P3.4
KX2  EQU  P3.5
KX3  EQU  P3.7
L101  EQU  P0.0
L102  EQU  P0.1
L103  EQU  P0.2
L104  EQU  P0.3
ORG        0000H
LJMP        MAIN
ORG        0100H
MAIN:  NOP
CHKKX0: JB    KX0,CHKKX1    ;KX0未按下,则检测KX1
        LCALL DELAY        ;软件延时10ms左右(按键消抖)
        JB    KX0,CHKKX1    ;KX0未按下,则检测KX1
        CPL  L101          ;KX0按下,则求反L101
        JNB  KX0,  $        ;等待KX0松开
        SJMP  MAIN          ;跳转到主程序开头
CHKKX1: JB    KX1,CHKKX2    ;KX1未按下,则检测KX2
        LCALL DELAY        ;软件延时10ms左右(按键消抖)
        JB    KX1,CHKKX2    ;KX1未按下,则检测KX2
        CPL  L102          ;KX1按下,则求反L102
        JNB  KX1,  $        ;等待KX1松开
        SJMP  MAIN          ;跳转到主程序开头
CHKKX2: JB    KX2,CHKKX3    ;KX2未按下,则检测KX3
        LCALL DELAY        ;软件延时10ms左右(按键消抖)
        JB    KX2,CHKKX3    ;KX2未按下,则检测KX3
        CPL  L103          ;KX2按下,则求反L103
        JNB  KX2,  $        ;等待KX2松开
        SJMP  MAIN          ;跳转到主程序开头
CHKKX3: JB    KX3,CHKKX0    ;KX3未按下,则检测KX0
        LCALL DELAY        ;软件延时10ms左右(按键消抖)
        JB    KX3,CHKKX0    ;KX3未按下,则检测KX0
        CPL  L104          ;KX3按下,则求反L104
        JNB  KX3,  $        ;等待KX3松开
        SJMP  MAIN          ;跳转到主程序开头
DELAY:  MOV  R2,#2     
DELAY2: MOV  R3,#200
DELAY3: MOV  R4,#100
        DJNZ  R4,$
        DJNZ  R3,DELAY3
        DJNZ  R2,DELAY2
        RET
        END
4、实验结论
1.学会了80C51单片机程序的调试与下载方法。
2.懂得了单片机并口输入输出工作原理及控制方法。
3.发现错误时,要学会及时独立解决。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。