一. 单片机开发系统环境介绍

实验目的

1)MCS-51单片机IO管脚工作原理及使用方法;
2)练习基本传送指令MOV;
3)练习指令SETB与指令CLR用法;
4)练习子程序的调用指令CALL,RET;
5)练习软件延时的时间计算方法;
6)熟悉单片机开发系统环境。

实验环境

51单片机开发箱ProteusKeil

实验内容

使接在单片机芯片P1.0管脚的1个LED灯点亮的时间间隔为0.2s;之后不停地重复前述动作。

原理图

实验一原理图

汇编语言代码

LED0    EQU        P1.0
        ORG        0000H

START:    MOV        P0,#00H
        SETB    LED0
        LCALL    DELAY
        CLR        LED0
        LCALL    DELAY
        AJMP    START
DELAY:    MOV        R5,#10
DELAY1:    MOV        R7,#28H
D1:        MOV        R6,#0F9H
        DJNZ    R6,$
        DJNZ    R7,D1
        DJNZ    R5,DELAY1
        RET
        END

二. I/O端口输入/输出实验

实验目的

1)MCS-51 单片机IO 管脚工作原理及使用方法;
2)掌握8051 单片机输入/输出端口的使用方法。

实验环境

51单片机开发箱ProteusKeil

实验内容

要求:从8051单片机P0、P1、P2、P3中任选2 个端口,一个端口接逻辑电平开关(输入设备),另一个端口接LED显示电路(输出设备)。无条件将逻辑电平开关输入的数据传送给LED显示电路。例如,使用P0口输入、P1口输出。

8051 单片机有4个8位的并行I/O 端口:P0、P1、P2、P3,在不扩展存储器、I/O端口,在不使用定时器、中断、串行口时,4个端口,32 根口线均可用作输入或输出。作输出时,除P0口要加上拉电阻外,其余端口与一般的并行输出接口用法相同,但作为输入端口时,必须先向该端口写“1”。例如,P0口接有-个输入设备,从P0口输入数据至累加器A中,程序段为:

MOV P0, #0FFH
MOV A, P0

原理图

实验二原理图

汇编语言代码

ORG        0000H
START:    MOV        P1,#0FFH
        MOV        A,P1
        MOV     P0,A
        SJMP    START
        END

三. 中断控制器实验

实验目的

1)通过实验掌握单片机外中断的原理及编程方法。

实验环境

51单片机开发箱ProteusKeil

实验内容

通过用手动逐个向8051单片机的$\overline{INT0}$输入单脉冲,申请中断。每中断一次,依次使8051单片机向P1口输出55H、AAH、55H……

原理图

实验三原理图

汇编程序代码

ORG     0000H
AJMP     MAIN
ORG     0003H
AJMP     INT
ORG     0100H
MAIN:     SETB     IT0
        SETB     EA 
        SETB     EX0
        MOV     A,#55H 
        SJMP     $
INT:     MOV     P1,A 
        CPL     A
        RETI
END

四. 定时/计数器实验

实验目的

1)了解定时/计数器内部结构及工作原理;
2)熟悉定时/计数器控制寄存器TCON、工作方式寄存器TMOD的结构、控制作用和设置方法;
3)理解定时/计数器4种工作方式,重点掌握方式1、方式2的应用;
4)学会定时/计数器初值的计算方法。

实验环境

51单片机开发箱ProteusKeil

实验内容

原理图

实验四原理图

汇编语言代码

ORG     0000H
LJMP    MAIN
ORG        000BH
LJMP    T0_INT
ORG        0050H
MAIN:    MOV        TMOD,#01
        MOV        TH0,#3CH
        MOV        TL0,#0BH
        SETB    TR0
        MOV        IE,#82H
        MOV        R7,#02H
        MOV        A,#01H
        MOV        P1,A
M_LOOP:    SJMP    M_LOOP
T0_INT:    MOV        TL0,#0B0H
        MOV        TH0,#3CH
        DJNZ    R7,T0_END
        MOV        R7,#20
        RL        A
        MOV        P1,A
T0_END:    RETI    
END
最后修改:2023 年 04 月 20 日
点赞有超好看的动画,不想看看吗😏