一. 单片机开发系统环境介绍
实验目的
1)MCS-51单片机IO管脚工作原理及使用方法;
2)练习基本传送指令MOV;
3)练习指令SETB与指令CLR用法;
4)练习子程序的调用指令CALL,RET;
5)练习软件延时的时间计算方法;
6)熟悉单片机开发系统环境。
实验环境
51单片机开发箱
、Proteus
、Keil
实验内容
使接在单片机芯片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单片机开发箱
、Proteus
、Keil
实验内容
要求:从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单片机开发箱
、Proteus
、Keil
实验内容
通过用手动逐个向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单片机开发箱
、Proteus
、Keil
实验内容
原理图
汇编语言代码
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