- 37
- 0
- 约1.41千字
- 约 4页
- 2021-01-23 发布于广东
- 举报
上海电力学院
单片机实验报告
题 目: P3.3 口输入 P1 口输出
院 系: 电自学院 班 级:
学生姓名: 学号:
指导教师:
1
年月日
一、 实验目的
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 DELAY1:MOV
DJNZ DJNZ
R6,#00H R7,#80H
R7,$ R6,DELAY1
查指令表可知MOV、DJNZ 指令均需用两个机器周期,而一个机器周期 时间长度为 12/ 6.0MHZ,所以该段指令执行时间为:
(((128+1)×256)+1)×2×(12÷6000000)=132.1ms。
四、 实验原理图
图(1-1)
2
五、 实验程序框图
六、 实验步骤
1、P3.3 用插针连至 K1,JU2(P1.0~P1.7)用 8 芯线连至 JL(L0~L7)。
2、调试、运行程序test1 中的MCUIO.ASM。
3、开关 K1 每拨动一次,L0~L7 发光二极管按 16 进制方式加一点亮。
P3.3 真的为高吗?
P3.3 为低吗?
开 始
P3.3 为高吗?
延 时
延 时
A+1 送 P1 口
循 环
N
N
N
Y
Y
Y
主程序:
图(1-2)
N
N
Y
R6 设初值 FFH
延时子程序:
R7 设初值 FFH
R7-1=0 否?
R6-1=0 否?
返 回
Y
图(1-3)
3
4
七、实验程序
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 口简单使用和延时程序的编写 及使用。虽然实验中我也遇到了一些问题,如结果无法显示等,但在老师的指导、 帮助下,我最后还是完成了本次实验的实验要求。
原创力文档

文档评论(0)