admin管理员组

文章数量:1530842

2024年4月24日发(作者:)

上海电力学院

单片机实验报告

题 目:

P3.3口输入 P1口输出

院 系: 电自学院

班 级:

学生姓名: 学号:

指导教师:

年月日

一、 实验目的

1、掌握单片机P3口、P1口简单使用。

2、学习延时程序的编写和使用。

二、 实验内容

1、P3.3口做输入口,外接一脉冲,每输入一个脉冲,P1口按十六进制加一

输出。

2、P1口做输出口,编写程序,使P1口接的8个发光二极管L0—L7按16

进制加一的方式点亮发光二极管。

三、 实验说明

1、P1口是准双向口,它作为输出口时与一般的双向口使用方法相同,由

准双向口结构可知:当P1口作为输入口时,必须先对它置高电平,使

内部MOS管截止,因内部上拉电阻是20KΩ—40KΩ,故不会对外部

输入产生影响。若不先对它置高,且原来是低电平,则MOS管导通,

读入的数据不正确。

2、延时子程序的延时计算。

对于延时的程序

DELAY :MOV R6,#00H

DELAY1:MOV R7,#80H

DJNZ R7,$

DJNZ R6,DELAY1

查指令表可知MOV、DJNZ指令均需用两个机器周期,而一个机器周期

时间长度为12/ 6.0MHZ,所以该段指令执行时间为:

(((128+1)×256)+1)×2×(12÷6000000)=132.1ms。

四、 实验原理图

图(1-1)

五、 实验程序框图

主程序:

开 始

P3.3为高吗?

N

P3.3真的为高吗?

Y

Y

延时子程序:

R6设初值FFH

R7设初值FFH

N

延 时

N

R7-1=0否?

Y

R6-1=0否?

N

Y

Y

返 回

P3.3为低吗?

N

图(1-3)

延 时

A+1送P1口

循 环

图(1-2)

六、 实验步骤

1、P3.3用插针连至K1,JU2(P1.0~P1.7)用8芯线连至JL(L0~L7)。

2、调试、运行程序test1中的。

3、开关K1每拨动一次,L0~L7发光二极管按16进制方式加一点亮。

七、实验程序

ORG 0000h

AJMP HA1S

ORG 0030H

HA1S: MOV A,#00H

HA1S1: JB P3.3,HA1S1

MOV R2,#20H

LCALL DELAY

JB P3.3,HA1S1

HA1S2: JNB P3.3,HA1S2

MOV R2,#20H

LCALL DELAY

JNB P3.3,HA1S2

INC A

PUSH ACC

MOV P1,A

POP ACC

AJMP HA1S1

DELAY:PUSH 02H

DELAY1: PUSH 02H

DELAY2: PUSH 02H

DELAY3: DJNZ R2,DELAY3

POP 02H

DJNZ R2,DELAY2

POP 02H

DJNZ R2,DELAY1

POP 02H

DJNZ R2,DELAY

RET

END

八、实验心得

通过本次实验我基本学会了单片机P3口、P1口简单使用和延时程序的编写

及使用。虽然实验中我也遇到了一些问题,如结果无法显示等,但在老师的指导、

帮助下,我最后还是完成了本次实验的实验要求。

本文标签: 实验延时程序