1、经典 8051MCU 有 P0、P1、 P2、P3 四个 I/O 端口,32 条口线。P0、P1、 P2、P3 四个端口作为普通 I/O 口使用时,都是准双向口;在输入时,首先要向端口的锁存器写1,以保证内部输出场效应管处于截止状态。在 4 个端口中,P0 口没有内部上拉电阻, 即作为输出时,是漏极开路的。使用微控制器的 I/O 端口外接输出设备时,要特别注意其驱动能力。驱动能力包括两方面,一是输出电流能力、二是灌入电流能力。4.基础型实验1) 在 Keil 环境运行如下程序,设系统晶振为 12MHz,分析在 P1.0 引脚上能得到什么?运行结果:在P1.0引脚上,不断输出低电平10ms,高电
2、平20ms的矩形波。2) 8 位发光二极管显示接口电路设计如图 3-1 所示,P1 口作输出口连接 8 个 LED。8个 LED 依次轮流循环点亮程序流程如图 3-2 所示。在 Keil 环境运行该程序,观察LED 显示情况。图 3-1 8 位 LED 显示接口电路P1口引脚输出低电平,相应的LED点亮,反之则熄灭;8个LED以125ms的间隔轮流点亮并不断循环5.设计型实验1) 设计程序,实现 8 位 LED 中的每个 LED 依次轮流显示 0.5s,并在循环 5 次后全部熄灭。硬件实验 2 模拟交通灯实验1)进一步掌握基本 I/O 输入输出操作指令的灵活应用。2)了解双色 LED 的控制、
3、使用方法。3)了解模拟交通灯的控制方法。1)了解双色 LED 的结构、引脚功能和连接方法。2)了解交通灯的工作过程和控制逻辑。可以采用双色发光二极管(双色 LED)作为交通指示灯。双色发光二极管,即在一个LED 封装中集成了 2 个发光 LED,常见的是 1 个红色、1 个绿色,当控制两个 LED 同时点亮时显示出黄色,因此双色 LED 有 3 种显示色。其构成如图 3-4 所示。当红色 LED 点亮、绿色 LED 不点亮时,发光二极管显示红色; 当绿色 LED 点亮、红色 LED 不点亮时,发光二极管显示绿色; 当红色 LED、绿色 LED 同时点亮时,发光二极管呈现的是黄色。另外,当控制双
4、色 LED 红、绿两个 PN 结流过不同比例的电流时,可以使其发出粉红、淡绿、淡黄、黄色等不同的色彩,达到简单的“彩色”显示效果。双色 LED 有共阴、共阳两种封装形式,提供 3 个引脚,其中一个为公共端,两个为显示控制端。图 3-4 双色 LED 结构原理图如图 3-5 所示是采用 P1 口控制 4 个双色 LED 的接口电路。在 Keil 环境运行并调程程序,观察结果。图 3-5 交通灯显示接口电路分析:设4个双色LED为东南西北四个方向的交通指示灯,从上到下4个分别代表东南西北方向;设双色LED的1脚控制红色LED,3脚控制绿色LED则向P1端口输出AAH,结果为:南北方向绿灯亮,东西方
5、向红灯亮;则向P1端口输出55H,结果为:南北方向红灯亮,东西方向绿灯亮;两个方向的红灯、绿灯以1s的周期交替闪烁。电路如图 3-5 所示,D3、D4、D5 和 D6、D7、D7 分别控制南北和东西方向的红黄绿指示灯。设计程序,用 6 个 LED 控制两个方向的交通,具体要求如下。4 个路口的红灯全部亮 0.5s 后,东西路口的绿灯亮,南北路口的红灯亮,东西路口方向通车;延时一段时间后(2s),东西和南北路口的绿灯、红灯闪烁若干次(如 2s),然后均变为黄灯亮;延时一段时间后(0.5),东西路口的红灯亮,南北路口的绿灯亮,南北路口方向通车;延时一段时间后(2s),南北和东西路口的绿灯、红灯闪烁
6、若干次后(如 2s),然后均变为黄灯亮;延时一段时间后(0.5s),再切换到东西路口的绿灯亮,南北路口的红灯亮;不断重复以上过程,实现模拟交通灯控制。硬件实验 6 八段数码管显示实验1)了解数码管实现显示字符的 7 段码编制方法;2)掌握查表法获得 0-F 的 7 段码的方法;3)掌握静态显示和动态显示的原理,硬件连接方式和程序编写方法。1)了解数码管静态显示和动态显示接口电路的设计方法和特点;2)了解数码管动态显示的程序设计方法;3)理解运用串行口工作方式 0 扩展 I/O 连接数码管的方法;4)认真预习本节实验内容,设计实验硬件连接电路,编写实验程序。1)LED 数码管显示原理8 段 LE
7、D 数码管有共阴极和共阳极两种结构。对于共阴数码管,其 8 个 LED 的阴极连接在一起作为公共 COM 端;而共阳数码管中 8 个 LED 的阳极连接在一起作为公共COM 端。共阴数码管显示的必要条件是其 COM 端接地或接具有较大灌电流能力的输入端口,此时当某个发光二级管的阳极为高电平时,该发光二极管点亮;共阳数码管显示的必要条件是共阳极接电源或具有较强电流输出能力的输出端口,此时当某个发光二极管的阴极接低电平时,该发光二级管被点亮。2)LED 数码管显示方式A.静态显示方式静态显示的特点是每个数码管需要一个具有锁存功能的 8 位输出口,用来锁存待显示的段码。将要显示数的 7 段码输出到端
8、口,数码管就会显示并一直保持到接收到新的显示段码为止。静态显示的优点:显示程序简单,占用 CPU 时间少。但当数码管数量较多时,就需要外扩较多的输出端口,因此静态显示的缺点是占用硬件资源多,成本较高。B.动态显示方式动态显示的特点是将多个数码管的相应段码线连在一起,接到一个 8 位输出端口, 该端口称为段码输出口;同时将各个(如 8 个)数码管的 COM 端连接到一个 8 位输出端口,该端口称为位控输出口。这样的连接使得 8 个数码管只要 2 个输出端口就可以实现控制,大大简化硬件电路。但是由于多个数码管的段码是连在一起的,所以需要结合位控信号,分时输出不同数码管上显示的 7 段码,即需要采用
9、动态显示扫描,轮流向段码输出口输出段码和向位控输出口输出位选信号,并进行 12ms 的短时延时; 8 个数码管轮流输出一遍后,约 20ms 后,就要进行一次显示刷新,这样才能利用发光管的余辉和人眼视觉暂留作用,得到全部数码管同时稳定显示的效果。因此动态显示方式,硬件比较节省,但动态显示刷新比较消耗 MCU 的时间资源。另外,在同样驱动电流的情况下,动态显示的亮度比静态显示要差一些,所以动态显示电路的限流电阻通常比静态显示的限流电阻小。1)8 位数码管动态显示电路如图 3-12 所示,采用共阳数码管。下面例程实现了将显示缓冲区 DBUF 中的 8 个 BCD 码数显示在 8 位数码管的功能,请在
10、 Keil 环境运行该程序,观察结果。图 3-12 8 位数码管动态显示电路【分析】:根据共阴数码管原理,可得到 0-9 的 7 段码如程序中的 TABLE 表。设 P0 口为段码输出口,P1 口为位控信号输出端;对于共阴数码管,其电流取自段码输出口(P0)流入到位码控制口(P1)。设流经每个LED 的电流为 3mA,则从 P0 中每条口线上拉出的最大电流是 3mA;而灌入 P1 口线的最大电流是一个数码管的 8 个 LED 全部显示的情况,即有 24mA。因此应该在 P1 口与数码管之间加入驱动芯片(该芯片要求至少能够灌入 24mA 电流,本图中未画出,实验箱设计图中是加了一个 74573)。(1)一个静态数码管的电路如 3-14 所示,编写程序,在该数码管上依次显示 0-9 数字,每个数字显示时间为 1s。(以下 2 部分内容作为探究型实验)(2)在该数码管上,依次循环显示a、b、c、d、e、f 各段,每段显示时间为 200ms。(3)按键输入自己学号的后 8 位,并在动态数码管上显示。图 3-14 静态数码管显示电路1.数码管上依次显示 0-9 数字,每个数字显示时间为 1s。3.按键输入自己学号的后 8 位,并在动态数码管上显示
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1