单片机及接口技术:第5章_输入、输出接口P0~P3_第1页
单片机及接口技术:第5章_输入、输出接口P0~P3_第2页
单片机及接口技术:第5章_输入、输出接口P0~P3_第3页
单片机及接口技术:第5章_输入、输出接口P0~P3_第4页
单片机及接口技术:第5章_输入、输出接口P0~P3_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 单片微型计算机与接口技术 (第4版) 第5章 输入、输出接口P0P31 POP3端口的功能和内部结构 POP3端口的编程 用并行口设计LED显示电路 用并行口设计键盘电路学习内容2 计算机对外设进行数据操作时,必须经过接口第5章 输入、输出接口P0P3CPU输入接口输入设备输出接口输出设备图51输入接口和输出接口 单片机已将接口集成在内部,无需外加接口,外设可直接连接单片机(有时需加驱动)35.1 POP3并行接口的功能和内部结构 5.1.1 端口功能 四个I/O口: P0、P1、P2、P3 可字节I/O,可按位I/O,共32根口线 口线大都有双重功能,介绍如下:4 PO口: 1.作为输入/

2、输出口 2.作为低 8 位地址/数据总线 ,扩展时分时复用 P1口: 1.作为输入/输出口 2.增强型(52系列)和ISP型(在系统编程型)中有新功能.5 P2口: 1.作为输入/输出口 2.作为高8位地址总线 P3口: 1.作为输入/输出口 2.作第二功能使用,每一位功能定义如下:6 RD (外部RAM读选通信号,出) P3.7 WR (外部RAM写选通信号,出)P3.6 T1 (定时器1外部计数脉冲输入)P3.5 T0 (定时器0外部计数脉冲输入)P3.4 P3.3 P3.2 TXD (串行输出线)P3.1 RXD (串行输入线) P3.0 第二功能 端口引脚 INT0(外部中断0输入线)

3、INT1 (外部中断1输入线) 7 5.1.2 端口的内部结构 四个端口的一位结构见教材图5.2 共同之处:每个端口功能不同,内部结构亦有不同 都有两个输入缓冲器 都有锁存器(即专用寄存器POP3) 都是场效应管输出驱动81. P0口 字节地址80H,位地址80H87H 可字节寻址,也可位寻址P0.0P0.7:扩展分时复用:双向8位数据口/输出低8位地址 不扩展: 通用I/O口921DQCK/Q读引脚读锁存器写锁存器内部总线地址/数据控制 引脚P0.X34VccP0口T1 T210控制=0时 此脚可作输入口(事先须对其写“1”)12DQCK/Q读引脚 =1 读锁存器写锁存器内部总线地址/数据控

4、制 引脚P0.X340 01 0 0 截止 截止 =0 VccP0口11控制=0时 此脚可作输出口(须外接上拉电阻) (1)输出1时12DQCK/Q读引脚 =0读锁存器写锁存器内部总线地址/数据控制 引脚P0.X340 01 0 0 截止 截止 =0 VccP0口1 12控制=0时,此脚可作输出口(须外接上拉电阻) (2)输出0时12DQCK/Q读引脚 =0读锁存器写锁存器内部总线地址/数据控制 引脚P0.X340 00 11 截止 导通 =0 VccP0口0 13控制=1 时,此脚作地址/数据复用口 (1)输出地址/数据 =0时12DQCK/Q读引脚 =0 读锁存器写锁存器内部总线地址/数据

5、控制=1 引脚P0.X341 0 1 1 =0 导通 截止 =0VccP0口14控制=1 时,此脚作地址/数据复用口 (2)输出地址/数据 =1 时12DQCK/Q读引脚 =0 读锁存器写锁存器内部总线地址/数据控制=1 引脚P0.X341 1 0 0 =1 截止 导通 =1VccP0口15控制=1 时,此脚作地址/数据复用口: 输入数据时,输入指令将使引脚与内部总线直通12DQCK/Q读引脚 =1 读锁存器写锁存器内部总线 地址/数据控制=1 引脚P0.X34VccP0口T1 T2 16注意: 1) PO作通用I/O口使用(非扩展,少见)作为I/O口使用时,应外接10K左右上拉电阻作为输入口

6、使用时,应先对P0口写入1,再读入 即 SETB P0.2 ;使T2截止 MOV C,P0.2 ;读引脚P0.2 (硬件不足软件补)2) PO口作地址/数据线 (扩展,多见)172.P1口 字节地址90H,位地址90H97H P1.0P1.7: 通用I/O口 12DQCK/Q读引脚读锁存器写锁存器内部总线Vcc引脚P1.X内部上拉电阻 18注意:P1口作I/O口使用,当输入时,要先对该口写“1”(其他口同此) * MOV P1, #0FFH; 1) P1输出时:输出全1P1口 2) P1输入时:读P1引脚预备动作(有MOV A,P1类指令紧随)1912DQCK/Q读引脚读锁存器写锁存器内部总线

7、地址高8位控制 引脚P2.X3内部上拉电阻Vcc3. P2口 字节地址0A0H,位地址0A0H0A7HP2.0P2.7 扩展时 输出高8位地址 不扩展时作为通用I/O口204. P3 字节地址0B0H,位地址0B0H0B7HP3.0P3.7: 具有特定的第二功能 不使用第二功能时为通用I/O口12DQCK/Q读引脚读锁存器写锁存器内部总线第二功能输出引脚 P3.X3内部上拉电阻Vcc第二功能输入21归纳:1、不扩展时,四个口均可作通用I/O口使用 (少见)2、四个口在作输入口使用时,均应先对其写“1”,以避免误读 (硬件不足软件补)3、P0作I/O口时应外接上拉电阻 (少见)4、P2某几根线作

8、地址使用,剩下的口线不能作I/O口线使用 (整体)5、P3的某些口线作第二功能时,剩下的口线可作I/O口线使用 (位操作)22单片机片内I/O的改进(1)增加并行口的驱动能力,直接输出大电流、 高电压(2)增加I/O口的逻辑控制功能(3)串行接口功能多样化,构成网络化系统(4)移植16位单片机I/O部件,如:高速输入/输出、A/D转换器、D/A转换器、脉冲宽度调制(PWM)、看门狗定时器(WDT)等23 单片机进一步学习参考文献24单片机入门与趣味实验设计作者:肖婧ISBN号:978-7-81124-208-9出版日期:200804北京航天航空大学出版社定价:20元25匠人手记一个单片机工作者

9、的实践与思考作者:张俊ISBN号:978-7-81124-297-3出版日期:200804北京航天航空大学出版社定价:39元2680C51单片机实用技术作者:邹久朋ISBN号:978-7-81124-294-2出版日期:200804北京航天航空大学出版社定价:24元275.2 编程举例 (通用I/O应用)例5-1.设计一电路,监视某开关K,用发光二极管LED显示开关状态,如果开关合上,LED亮、开关打开,LED熄灭。 分析:设计电路如图5. 3所示 28LED+5VVcc-EARST10uF 1KP1.089S51P1.11K30P30PXTAL1XTAL2GND89C51+5VRST89S5

10、1+5VP1.11KXTAL189C51K29LED+5VVcc-EARST10uF 1KP1.089S51P1.11K30P30PXTAL1XTAL2GND89C51+5VRST89S51+5VP1.11KXTAL189C51K30注意:P1.1=1(+5V,K开) P1.0=0(灭)P1.1=0(接地,K合)P1.0=1(亮) 改变此关系,编程?编程如下: CLR P1.0 ;使发光二极管灭AGA:SETB P1.1 ;先对P1.1 写入“1” JB P1.1,LIG ;开关开,转LIG SETB P1.0 ;开关合上,二极管亮 SJMP AGALIG:CLR P1.0 ;开关开,二极管灭

11、 SJMP AGA31例5-2.在图5.4中P1.4P1.7接四个发光二极管LED,P1.0P1.3接四个开关,编程将开关的状态反映到发光二极管上. 89C51P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7+5V+5V1K43304 EA32 ORG 0100HABC:MOV P1,#0FFH ;高4位的LED全灭,低4位输入线送1 MOV A, P1 ;读P1口引脚开关状态A(MOVX?) SWAP A ;低4位开关状态换到高4位 ANL A,#0F0H ;保留高4位 MOV P1, A ;从P1口输出 SJMP ABC ;循环 读开关前,输入位先置“1”33 例5-3.

12、用P1.0输出1KHz和500Hz的音频信号驱动扬声器,作报警信号,要求1KHz信号响100ms ,500Hz信号响200ms,交替进行,P1.7接一开关进行控制,当开关合上响报警信号,当开关断开报警信号停止,编出程序。 分析:500Hz信号周期为2ms,信号电平为每1ms变反1次。1KHz的信号周期为1ms,信号电平 每500S变反1次,编一个延时500S子程序,延时1ms只需调用2次。用R2控制音响时间长短,A作音响频率交换控制的标志。A=0时产生1KHz信号,A=FFH时产生500Hz信号。 34P1.0反相后波形图 1ms 1ms100个T(即200ms变反200次)。500S500S

13、100个T (即100ms变反200次)。TTf=1000hzf=500hz35 ORG 0800H CLR A ;A作1KHz,500Hz转换标志BEG: SETB P1.7 ;P1.7输入,先写1 JB P1.7, ;检测P1.7的开关状态 MOV R2,#200 ;开关闭合报警,R2置变反次数 DV:CPL P1.0 CJNE A,#0FFH,N1;AFFH,转移,延时500S ACALL D500 ;A=FFH,延时1ms, P1.0变反36 N1:ACALL D500;延时500 S DJNZ R2,DV ;变反200次 CPL A ;标志取反 SJMP BEG ;循环D500:MO

14、V R7, #250 ;延时500S子程序 DJNZ R7, RET END375.3 用并行口设计LED数码显示器和键盘电路 键盘和显示器:输入输出装置5.3.1 用并行口设计LED显示电路1. LED显示器及其原理 LED:显示亮度高,响应速度快 七段LED显示器见图5.738abcdefgdp(a)(b)共阴型(c)共阳型cdedp12345678910abfgcomcomabcefabcdefgdpcomcom图5.739 LED 8个发光二极管不同亮暗的组合称为字形码 共阳极和共阴极的字形码不同 字形码见表5-240 0 0 1 1 1 1 1 1 3FH dp g f e d c

15、b a abcdefgdpcdedp12345678910abfgcomcomabcefcomg共阴时:显示”0”,字形码为3FHd41显示字符段 符 号十六进制代码dpgfedcba共阴共阳0123456789AbCdEFHP0000000000000000000011111011110111111000111011111011111010001010111111111011011011011110001101111111110100101111100111100100111011011111101011013FH06H5BH4FH66H6DH7DH07H7FH6FH77H7CH39H5EH

16、79H71H76H73HC0HF9HA4HB0H99H92H82HF8H80H90H88H83HC6HA1H86H8EH89H8CH422.LED数码管的接口 数码管的接口有静态接口和动态接口 静态接口为固定显示方式 动态接口采用各数码管循环轮流显示43 例5-4:图5-8是接有5个共阴极数码管的动态显示接口电路,用74LS373接成直通的方式作驱动电路,阴极用非门74LS04反相门驱动,字形选择由P1口提供,位选择由P3口控制。 (3)当P3.0P3.4轮流输出1时,5个数码管轮流显示。P1.7接开关,当开关打向位置“1”时,显示“12345”字样,当开关打向“2”时,显示“HELLO”字样

17、: 441284546 用汇编语言编程 ORG 0300H MOV P3,#0 ;清显示 TEST:SETB P1.7 ;输入准备 JB P1.7,DIR1 ;检测开关状态 MOV DPTR,#TAB1 ; 开关置于1,12345字形表头地址 SJMP DIR DIR1: MOV DPTR,#TAB2 ; 开关置于2,“HELLO”字形表头地址 DIR: MOV R0,#0 ;R0存字形表偏移量(表头距字形码距离) MOV R1,#01 ;R1置数码表位选代码(哪位亮) NEXT: MOV A,R0 MOVC A,A+DPTR ; 查字形码表 MOV P1,A ;送P1口输出 47 MOV A

18、,R1 MOV P3,A ;输出位选码 ACALL DAY ;延时 INC R0 ;指向下一位字形 RL A ;指向下一位 MOV R1,A CJNE R1,#20H,NEXT ;五个数码管显示完? SJMP TESTDAY: MOV R6,#20 ;延时20ms子程序(与focs有关)DL2: MOV R7,#7DHDL1: NOP NOP48 DJNZ R7,DL1 DJNZ R6,DL2 RETTAB1:DB 06H,5BH,4FH,66H,6DH ; “15”的字形码TAB2:DB 76H,79H,38H,38H,3FH ; “HELLO”的字形码 END495.3.2 用并行口设计键

19、盘电路 键盘是计算机系统中输入设备 当按键少时可接成线性键盘(图5-4中的按键) 当按键较多时,将按键接成矩阵的形式,每个按键有行值和列值,其组合就是识别此按键的编码50 键盘处理程序的任务:确定有无键按下?判哪一个键按下?形成键编码处理 两个并行口中,一个输出扫描码,使按键逐行动态接地(称行扫描),另一个并行口输入按键状态(称回馈信号,键盘的列值), 由行扫描值和回馈信号共同形成键编码而识别按键、通过软件查表,查出该键的功能。也可由硬件编码器完成键的编码。51 图5-9中,用8XX51的并行口P1接44矩阵键盘, 以P1.0P1.3作输出线,以P1.4P1.7作输入线,键盘扫描程序的流程如图

20、5-10所示。952Y键处理读P1.4P1.7值置行扫描初值扫描位从P1口输出P1口的高四位和低四位相或得键编码扫到最后一行?NN(有键按下)N开始P1.0P1.3输出0延时去抖动P1.4P1.7全为1?P1.4P1.7全为1?YY(无键按下)53程序清单如下: ORG 0000HTEST:MOV P1,#0F0H ;P1.0P1.3输出0, P1.4P1.7 置1作输入准备 MOV A,P1 ;读键盘,检测有无键按下 ANL A,#0F0H ;屏蔽P1.0P1.3, 检测P1.4P1.7是否全为1 CJNE A,#0F0H,HAVE ;P1.4P1.7不全为1, 有键按下 SJMP TEST ;P1.4P1.7全为1, 无键按下,重检测键盘HAVE:MOV A,#0FEH ;有键按下,逐行扫描键盘, 置扫描初值54 NEXT: MOV B,A ;扫描码暂存于B MOV P1,A ;输出扫描码READ: MOV A,P1 ;读键盘 ANL A,#0F0H ;屏蔽P1.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论