1 / 58

4 .1 实 训 概 要

第 4 章 MCS-51 输入输出接口. 4 .1 实 训 概 要 任何微型计算机与外部设备进行信息交换均由输入 / 输出接口电路(简称 I/O 接口)完成。 I/O 接口实质上就是计算机与外部设备之间起连接作用的逻辑控制器件,起桥梁和纽带作用。 I/O 接口中包含 I/O 端口。端口是在接口中存放各类信息的一组寄存器。这组寄存器通常分为三类:数据端口、状态端口和控制端口。 MCS-51 单片机有 4 个并行 I/O 端口,单片机通过这些端口与外设进行数据交换。. 实训内容: 闪烁灯控制。 开关状态的显示。 节日彩灯控制。 运算器电路。.

tosca
Download Presentation

4 .1 实 训 概 要

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第4章 MCS-51输入输出接口 4 .1 实 训 概 要 任何微型计算机与外部设备进行信息交换均由输入/输出接口电路(简称I/O接口)完成。I/O接口实质上就是计算机与外部设备之间起连接作用的逻辑控制器件,起桥梁和纽带作用。I/O接口中包含I/O端口。端口是在接口中存放各类信息的一组寄存器。这组寄存器通常分为三类:数据端口、状态端口和控制端口。MCS-51单片机有4个并行I/O端口,单片机通过这些端口与外设进行数据交换。

  2. 实训内容: 闪烁灯控制。 开关状态的显示。 节日彩灯控制。 运算器电路。 预备知识: P0~P3口的功能 P0口 : P0口是双向I/O口,既可以作为通用I/O口使用,又可以分时作为地址/数据总线使用。当单片机系统需要扩展片外数据存储器或程序存储器时, P0 口

  3. 只能作地址/数据线,而不能再作通用I/O口使用。P0口作为地址/数据线使时,无需外接上拉电阻,作通用I/O口时,必须外接上拉电阻。只能作地址/数据线,而不能再作通用I/O口使用。P0口作为地址/数据线使时,无需外接上拉电阻,作通用I/O口时,必须外接上拉电阻。 P1口: P1口是一个准双向I/O口,它只能作为通用I/O口使用。准双向口是指当P1口作为输入口时,需要先向P1口锁存器写入“1”,然后读取P1口的输入信号。由于其内部已接有上拉电阻,使用时无需外接。

  4. P2口: P2口既可以作为通用I/O口使用,也可作为地址线高8位。当作为一个通用I/O口且用于输入操作时,是一个准双向I/O口,不需外接上拉电阻。当系统扩展外部输入存储器时,只能作地址线高8位使用。 P3口 : P3口是一个准双向口。除可作为通用I/O口外,还具有第二功能。这主要包括:可以实现定时/计数控制、中断控制、串行口控制和外部数据存储器的读写控制。

  5. P0~P3口的特点 • 功能不同。MCS-51单片机4个I/O口中,只有P1口具有单一功能,其它口都具有其它功能。 • 带负载能力不同。P0口每个引脚内部接有上拉场效应管,故每个引脚可驱动8个TTL,而P1口~P3口引脚内部只接有上拉电阻,只能驱动3个TTL。 • 复位状态相同。当系统复位后,P0~P3口均输出高电平。

  6. 4.2 实训13 闪烁灯控制 4.2.1 实训目的 通过本节实训,主要学习下面内容: MCS-51单片机I/O口的结构。 I/O端口的使用及编程方法。

  7. 4.2.2 实训要求 设计硬件电路,且编程控制,使接在P1.0引脚上的发光二极管不停地闪亮,亮灭的时间间隔为1秒。 手动开关控制接在P1.0引脚上的发光二极管闪亮。开关接在P1.7脚上。 4.2.3 硬件电路原理图 实训硬件电路如图4-1所示。

  8. 4.2.4 程序设计思路 1.输出发光二极管的控制 若接在P1.0端口的发光二极管为共阴极接法,当P1.0脚输出高电平,即P1.0=1时,发光二极管被点亮;若发光二极管为共阳极接法,则P1.0脚输出低电平则亮。我们可以使用SETBP1.0指令使P1.0端口输出高电平,使用CLRP1.0指令使P1.0端口输出低电平。发光二极管亮灭的时间可调用延时子程序控制。

  9. 2.延时子程序的设计方法 延时既可以通过软件实现,也可以通过定时/计数器进行定时控制。这里讨论软件延时。简单地说,计算机执行指令需要时间,若能通过循环,多次执行一些指令,将时间累加起来,就可以实现定时。作为单片机的指令的执行的时间是很短,数量为微秒级。因此,我们要求的闪烁时间间隔为1秒,相对于微秒来说,相差太大,可用循环实现。下面具体介绍其原理: 设单片机晶振为6MHz,则1个机器周期为2微秒。各指令的执行时间见表4-1所示。

  10. 内层循环的循环次数为100次,则累加时间为 1000μs=1ms,再循环250次,时间为250ms,第三重循环为4次,累计时间约为1s。 4.2.5 实训程序流程图 自动闪烁灯实训程序流程如图4-2所示。

  11. 开始 P1.0输出“1”点亮LED 延时1S P1.0输出“0”使LED熄灭 延时1S

  12. 4.2.6 实训程序 1.手控灯实训程序 手控灯实训程序见表4-2所示。

  13. 4.2.7 实训步骤 按电路原理图4-1连接电路。 将全部实训程序输入单片机开发系统中,并检查机器码是否正确。 为程序的每条指令加注释,填入实训程序表中。 输入第一个程序首地址1000H,用连续执行命令执行程序,并拨动手动开关,观察发光二极管亮灭变化情况。 输入第二个程序首地址2000H,用连续执行命令执行程序,观察发光二极管亮灭变化情况。

  14. 若通过P1.4脚控制发光二极管的亮灭,如何实现?若通过P1.4脚控制发光二极管的亮灭,如何实现? 若将延时时间变为0.2秒,如何修改程序? 若延时时间为半分钟呢?请用手表等计时工具验证时间。 提示: 编程控制发光二极管时,点亮或熄灭发光二极管与二极管的接法有关。 采用软件延时,延时子程序的定时时间不是非常精确,可采用定时/计数器定时。 由P1口直接连接发光二极管,其亮度较低,可增加三极管或74LS04、74LS07等驱动元件或电路,提高亮度,但要加限流电阻。

  15. 4.3 实训14 开关状态的显示 4.3.1 实训目的 通过本节实训,主要学习下面内容: MCS-51单片机I/O口的结构。 I/O端口的使用及程序控制方法。 判位转移指令在I/O接口电路中的应用。

  16. 4.3.2 实训要求 将单片机P1口某些位的状态通过发光二极管显示出来。设单片机的P1.0-P1.3连接四个发光二极管L1~L4,P1.4~P1.7连接四个开关K1~K4。编程将开关的状态反映到发光二极管亮灭上。即:开关闭合,对应的灯点亮,开关断开,对应的灯熄灭。 4.3.3 硬件电路原理图 实训硬件电路原理图如图4-3所示。

  17. 4.3.4 程序设计思路 通过指令将开关状态读入单片机中,并通过每个开关对应的发光二极管显示出来。可以采用判位转移指令JB或JNB来完成;也可以一次读入四路开关状态,用逻辑指令进行相应处理,然后送发光二极管显示。 编程时,要视具体硬件电路的结构而定。本电路发光二极管采用共阳接法。即:P1.0~P1.3为低电平时发光二极管点亮,高电平时熄灭。 4.3.5 实训程序 实训程序见表4-4所示。

  18. 4.3.6 实训器材 单片机开发系统、四个发光二极管、开关、电阻和导线等。 4.3.7 实训步骤 (1)按实训硬件电路图4-3连接电路。注意P1.0~P1.3接到发光二极管L1~L4上。P1.4~P1.7接到开关K1~K4上,顺序不能接错。即:开关K1~K4分别控制发光二极管L1~L4。

  19. (2)仔细阅读并理解程序,画出程序流程图,并为每条指令加注释,填入实训程序表4-4中。(2)仔细阅读并理解程序,画出程序流程图,并为每条指令加注释,填入实训程序表4-4中。 (3)将程序机器码输入单片机中,并检查程序是否正确。 (4)输入程序首地址2000H,用连续执行命令执行程序。然后将开关按照表4-5顺序拨动,观察发光二极管的亮灭变化,填入表4-5中。

  20. 4.3.8 思考与讨论 已知程序见表4-6所示。按要求回答问题: 阅读程序,写出每条指令的注释。 查指令速查表,将程序翻译成机器语言。 使用图4-3硬件电路,将机器语言程序送入单片机执行,观察现象。

  21. 提示: 在实际连接电路时,连接时应连接一部分用万用电表测试一部分,以保证做独立系统时,电路能可靠工作。 做独立单片机系统时,通电后应先用示波器测试晶振是否工作。

  22. 4.4 实训15 节日彩灯控制 4.4.1 实训目的 通过本节实训,主要学习下面内容: I/O端口的使用及自动控制方法。 P1口的编程应用。 4.4.2 实训要求 设计一个节日彩灯电路,要求从两边向中间点亮,依次循环不止,亮灭时间为0.25秒。 4.4.3 硬件电路原理图 实训彩灯电路如图4-4所示。

  23. 4.4.4 程序设计思路 只要根据所设计的硬件电路,给P1口送入不同的二进制数,并延时即可达到控制P1口上发光二极管亮灭的目的。在电路原理图中,发光二极管采用共阴极接法,“1”亮,“0”灭。具体见表4-7所示。

  24. 4.4.5 实训器材 单片机开发系统、八个发光二极管和导线等。 4.4.6 实训步骤 (1)按实训硬件电路图4-4连接电路。发光二极管接成共阴极型,连接到P1口。 (2)仔细阅读并理解程序,画出程序流程图,并为每条指令加注释,填入实训程序表4-8中。

  25. (3)将程序机器码输入单片机中,并检查程序是否正确。(3)将程序机器码输入单片机中,并检查程序是否正确。 (4)输入程序首地址2000H,用连续执行命令执行程序。观察发光二极管的亮灭变化,是否符合要求。 (5)若发光二极管接成共阳极型,试修改程序,并上机实践。 4.4.7 实训程序 节日彩灯实训程序见表4-8所示。

  26. 4.4.8 思考与讨论 (1)若要求彩灯从左到右一个一个循环点亮,试编制控制程序。 (2)若要求彩灯1、3、5、7同时点亮,延时后,2、4、6、8同时点亮,试编制控制程序。 (3)若要求彩灯从左第一个开始闪烁10次后,转移给下一个闪烁10次,循环不止,试编制控制程序。 (4)将各种不同点亮形式连接在一起,并能控制每一种点亮形式的闪烁次数,试编程实现。

  27. 提示: 编写软件延时程序时,必须考虑晶振频率。通常晶振频率为6MHz或12MHz。 编写控制循环次数的点亮形式时,可采用固定次数循环实现。通常使用DJNZ或CJNE指令。 当P1口所接彩灯不足以满足要求时,可考虑使用不可编程接口芯片或可编程接口芯片来扩展接口。

  28. 4.5 实训16 运算器电路 4.5.1 实训目的 通过本节实训,主要学习下面内容: I/O端口的使用及自动控制方法。 P1口的编程应用。

  29. 4.5.2实训要求 借助P1口上连接的发光二极管显示8032内部运算器的运算过程,以便完成两个8位二进制数各种运算,并将参加运算的操作数、运算结果和标志位的状态在发光二极管上以二进数的形式显示出来。 4.5.3 硬件电路原理图 运算器硬件电路如图4-5所示。

  30. 4.5.4 程序设计思路 实现两个8位二进制数运算,例如做加法,可设置四个时间段,间隔30秒。第一个时间段显示被加数,以二进制数形式在发光二极管上显示出来;第二时间段显示加数;第三时间段显示二者之和;最后显示标志寄存器PSW的值。之后,8个发光二极管同时闪动2次后从头开始。 4.5.5 实训器材 单片机开发系统、八个发光二极管和导线等。 4.5.6 实训程序 实训程序见表4-8所示。

More Related