计算机在热加工测量与控制中的应用实验指导书 窗口中不同寄存器内容的状态,从而判断程序运行是否正常。
图2.9 CPU运行状态观察窗口图 2.10 外部数据存储器XDATA空间窗口
伟福集成调试软件中还提供了一个DATA快捷图标,单击该图标右边的小箭头
弹出菜单,选择相应功能,可以分别观察单片机内部数据存储器空间(DATA)、程序存储器空间(CODE)、外部数据存储器空间(XDATA)、外部数据存储器分页空间(PDATA)以及位寻址空间(BIT)。图2.10所示为本实验程序运行后的XDATA空间数据变化的情况。
编译通过后,很少有程序一次运行就完全正确的,通过调试程序可以判断程序逻辑等错误,修改错误,最终将BIN文件写入单片机ROM中,交付使用。
至此,已经介绍了如何应用伟福集成软件开发环境调试8051单片机汇编语言程序的基本方法,同学们可以通过实际应用来加深理解。
思考: (1)若要将从08H开到FFH数据存储器块的内容置分别赋值0,1,2……9……,怎么设计程序?
12
第2章 单片机实验
2.2 实验2 单片机并行IO口应用实验
2.2.1 实验目的与要求
目的:学习8051单片机P1口作为双向I/O口的使用方法,采用循环指令编写延时子程序。了解用弱电控制强电的基本原理,采用单片机P1口实现继电器开关控制。
要求:
① 采用8051单片机的P1口做输出口,接8只发光二极管,编写程序,使发光二极管循环点亮。
② 采用P1.0,P1.1作输入口接两个拨动开关,P1.2,P1.3作输出口,接两个发光二极管,编写程序读取开关状态,并将此状态在发光二极管上显示出来。
③ 采用P1口输出电平控制继电器的吸合和断开,从而实现对外部装置的开关量控制。 ④ 采用P1口控制音频电路发声(选作)。
2.2.2 8051并行I/O口简介
8051单片机有四个并行I/O口,称为P0、P1、P2、P3,每个口都有8根引脚,它们都是双向通道,每一条I/O引脚都能独立地用作输入或输出,作输出时数据可以锁存,作输入时数据可以缓冲。P0~P3这四个I/O口的功能不完全相同,它们的负载能力也不相同。
P0为三态双向口,它可作为输入输出端口使用,也可作为系统扩展时的低8位地址/8位数据总线使用。试验箱使用了PO,P2口第二功能,同学们实验不能用这两个口的输入输出IO口功能。
P1口为准双向口,每一位都可以分别定义为输入或输出使用,同学们实验用此口。 P2口也是一个准双向口,它有两种使用功能:作为普通I/O端口或作为系统扩展时的高8位地址总线。P2口作I/O端口使用时,其用法与P1口相同。
P3口为多功能口,除了用作通用I/O口之外,它的每一位都有各自的第二功能。P3口作通用I/O口时其使用方法与P1口相同,P3口的第二功能可以单独使用,即不用第二功能的引脚仍可以作通用I/O口线使用。
作为IO应用总结:
(1).作为输出口使用,P0口需外接上拉电阻,其余口不需外接上拉电阻。 (2).作为输入口使用时,都需先向对应的锁存器写入“1”。
(3).每一位可任意地作为输入口或输入口使用,一般用低电平驱动外部电路。 (4).P0口每位的负载能力是8个LSTTL门电路,P1、P2、P3口每位负载能力为4
个LSTTL门电路。
(5).I/O口的输入/输出指令同内RAM操作指令。
2.2.3 实验内容
1.采用P1口作输出口,控制发光二级管循环点亮
P1口是准双向口,它作为输出口使用时具有锁存功能。实验所需要LED电平显示电路
13
计算机在热加工测量与控制中的应用实验指导书
如图2.11所示,74LS245是同相三态双向总线收发器,这里使用它来驱动发光二极管,同学们思考一下P1.n高电平还是低电平点亮一个发光管?
图2.11 电平显示电路
在实验系统上如表2.1所示连线。执行如下程序,发光二极管LED将循环点亮。
表2.1 硬件电路连线 连线 1 2 ?? 7 8 连接孔1 P1.0 P1.1 ?? P1.6 P1.7
连接孔2 L0 L1 ?? L6 L7 可按课堂上介绍的两种程序调试,也看按下述程序,试比较区别与效果。程序流程框图见图2.12a。
LOOP:
MOV A, #01H MOV R2, #8 OUTP:
MOV P1, A RL A
CALL DELAY DJNZ R2, OUTP LJMP LOOP
DELAY: ;延时子程序
MOV R6, #0 MOV R7, #0
DELAYLOOP:
DJNZ R6, DELAYLOOP DJNZ R7, DELAYLOOP RET END
关于延时子程序的时间计算,查指令表可知MOV和DJNZ指令均需用两个机器周期,在6MHz晶振时,一个机器周期时间长度为12/6MHZ,所以上面延时子程序该的执行时间
14
第2章 单片机实验
为:(256×255+2)×2×12÷6 ≈ 261ms
思考:
(1)若6位循环点亮1,(2) 8位循环点亮某2个,分别如何修改程序?
(a) P1口循环点灯程序框图 (b) P1口输入输出程序框图 图2.12 程序流程框图 2.采用P1口作输入和输出口,根据开关状态控制灯亮灭
由P1口的准双向口结构可知,当作为输入口时,必须先对它置“1”。若不先对它置“1”,读入的数据是不正确的。实验所需要LED电平显示电路见图2.11,逻辑电平开关电路见图2.12,开关一侧接VCC+5V,一侧接地,拨动开关分别给单片机高电平或低电平信号。
图2.12 逻辑电平开关电路
15

