06章S输入输出口ppt课件_第1页
06章S输入输出口ppt课件_第2页
06章S输入输出口ppt课件_第3页
06章S输入输出口ppt课件_第4页
06章S输入输出口ppt课件_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

1、6.1 I/O端口功能简介端口功能简介 I/O端口:即输入端口:即输入/输出端口,是输出端口,是MCU与外界进与外界进行交互的重要通道,实现各种接口。行交互的重要通道,实现各种接口。6.1.1 I/O端口简介端口简介 MC9SDG128有丰富的有丰富的I/O引脚,多功能、多复引脚,多功能、多复用用 A口、口、B口、口、E口、口、K口:口:(扩展方式时,可作总线)(扩展方式时,可作总线)PORTA(07)PORTB(07)PORTE(07)PORTK(05)H口、口、J口、口、M口、口、S口、口、P口、口、T口:口:(复合功能,优先权左(复合功能,优先权左右递减右递减 )PORTH -SPI/G

2、PIO PORTJ -CAN/I2C/GPIOPORTM -CAN/BDLC/GPIOPORTS -SCI/SPI/GPIOPORTP -PWM/SPI/GPIOPORTT -ECT/GPIO 注:注:GPIO=通用并行输入通用并行输入/输出输出6.1.1 I/O端口功能端口功能 通过设置相应寄存器,实现以下功能:通过设置相应寄存器,实现以下功能:DDR寄存器寄存器-数据方向,定义是输入还是输出数据方向,定义是输入还是输出I/O寄存器寄存器-数据寄存器,定义电平的高低,如数据寄存器,定义电平的高低,如PORTARDR寄存器寄存器-定义驱动能力定义驱动能力PER寄存器寄存器-当当I/O口作为输入

3、口时,定义是否使用内口作为输入口时,定义是否使用内部上拉或下拉部上拉或下拉IE寄存器寄存器-定义有无中断功能定义有无中断功能PPS寄存器寄存器- 1、端口中断允许时:选择上升沿还是下降沿触、端口中断允许时:选择上升沿还是下降沿触发发 2、PER有效时,选择上拉还是下拉有效时,选择上拉还是下拉如:如:BSET DDRP,$01 ;设置设置P口第口第0位为输出位为输出6.1.2 I/O端口的异常处理端口的异常处理 S12复位时,复位时,GPIO默认为输入;默认为输入;为避免:当输入转输出时,将数据寄存器的可能的激活电平为避免:当输入转输出时,将数据寄存器的可能的激活电平(如如1)输输出,引起误动作

4、。先将非激活电平出,引起误动作。先将非激活电平(如如0)写如到数据寄存器写如到数据寄存器 应先应先 BCLR PTP, $01 然后然后 BSET DDRP,$01 再再 BSET PORTP,#01 ; P口数据寄存器第口数据寄存器第0位置位置1,输出,输出1 注:除注:除A、B、E、K口的数据寄存器用口的数据寄存器用PORTx外,其它的均为外,其它的均为PTx6.2 I/O端口设置端口设置 1. A口、口、B口、口、E口、口、K口口数据方向寄存器数据方向寄存器DDRA、DDRB、DDRE、DDRK 某位:某位:0-输入,输入,1-输出输出 数据寄存器数据寄存器PORTA、PORTB、POR

5、TE、PORTK 读时:各位得到外部引脚的逻辑电平;读时:各位得到外部引脚的逻辑电平;(数据方向为输入时)(数据方向为输入时) 写时:各位数据锁存,并更新外部引脚的写时:各位数据锁存,并更新外部引脚的逻辑电平;逻辑电平; 上拉控制寄存器上拉控制寄存器PUCR 4口共用,口共用,PUPAE、PUPBE、PUPEE、PUPKE位为位为1使上拉;使上拉;0无无 降功率驱动控制寄存器降功率驱动控制寄存器RDRIV 4口共用,口共用,RDPA、RDPB、RDPE、RDPK位为使输出降功率;位为使输出降功率;0不降不降Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0PUPKEPUPEEPU

6、PBE PUPAEBit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0RDPKRDPERDPB RDPA2. T口口数据方向寄存器数据方向寄存器DDRT 0-输入,输入,1-输输出出数据寄存器数据寄存器PTT (ECT) I/O数据,复用数据,复用ECT输入寄存器输入寄存器PTIT 一直为读引脚一直为读引脚降功率驱动控制寄存器降功率驱动控制寄存器RDRT 1-降功率为降功率为1/6,0-不降不降上下拉使能控制寄存器上下拉使能控制寄存器PERT 1-使能使能,0-制止制止极性选择寄存器极性选择寄存器PPST 1-下拉下拉,0-上拉上拉 Bit7Bit6Bit5Bit4Bit3Bit2

7、Bit1Bit0PERT7 PERT6PERT5 PERT4 PERT3 PERT2 PERT1 PERT0Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0PTT7PTT6PTT5PTT4PTT3PTT2PTT1PTT0I/OC7I/OC6 I/OC5I/OC4I/OC3I/OC2I/OC1I/OC0Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0RDRT7 RDRT6RDRT5RDRT4 RDRT3 RDRT2 RDRT1 RDRT0Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0DDRT7 DDRT6DDRT5DDRT4 DDRT3 DDRT

8、2 DDRT1 DDRT0Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0PTIT7PTIT6 PTIT5 PTIT4PTIT3PTIT2PTIT1PTIT0Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0PPST7 PPST6PPST5 PPST4 PPST3 PPST2 PPST1 PPST03. S口口4. M口口5. P口口6. H口口7. J口口8. 其它其它I/O AD口:作为口:作为A/D转换模块的模拟量输入口和外界触发脉冲的输转换模块的模拟量输入口和外界触发脉冲的输入口入口,也可以做为普通输入口也可以做为普通输入口注:各寄存器,复位默认值:注:各

9、寄存器,复位默认值:0000 0000B; 各口的数据方向为输入时,内部上、下拉才可设置有效;各口的数据方向为输入时,内部上、下拉才可设置有效; 各口的数据方向为输出时,内部上、下拉被禁止;各口的数据方向为输出时,内部上、下拉被禁止; 各寄存器情况可用时再行查阅,其复用功能放在相关功能模各寄存器情况可用时再行查阅,其复用功能放在相关功能模块中;块中; 各寄存器的均有实际存储地址,但编程时使用寄存器名字各寄存器的均有实际存储地址,但编程时使用寄存器名字即可即可作通用作通用I/O口时与前述类似,作其它功能略过口时与前述类似,作其它功能略过(补充说明(补充说明“线或和线或和“线与的概念及原理)线与的

10、概念及原理)6.3 人机交互接口设计人机交互接口设计 MCU与外设如何连接与外设如何连接-接口,解决信息传递、接口,解决信息传递、控制交互控制交互 输入设备输入设备-如按键、开关,键盘等;如按键、开关,键盘等; 输出设备输出设备-如如LED灯、蜂鸣器、灯、蜂鸣器、LED数码管、数码管、LCD显示屏等;显示屏等; 基本原则:由外设确定硬件接口基本原则:由外设确定硬件接口+软件配合软件配合 【例】点亮【例】点亮LED灯,并使蜂鸣器发声。灯,并使蜂鸣器发声。;* ORG $1000main:START: LDAA #$FF STAA DDRB ;设置设置 LDAA #$FE STAA PORTB ;

11、输出输出 BRA * 【例】根据拨位开关的状态,点【例】根据拨位开关的状态,点亮或熄灭对应的亮或熄灭对应的LED灯,并灯,并转向不同的处理程序。转向不同的处理程序。(假设假设同时只有一个开关接通同时只有一个开关接通)(如图,与如图,与XDT512实验核心板一实验核心板一致致) START: LDAA #$F0 STAA DDRB ;设置设置B口口LOOP: LDAA PORTB LDAB PORTB LSLB ;逻辑左移逻辑左移 LSLB ;低位补低位补0 LSLB LSLB STAB PORTB ;亮、灭灯亮、灭灯 RORA ;循环右移循环右移 BCC PRO1 ;C=0转转 RORA BC

12、C PRO2 RORA BCC PRO3 RORA BCC PRO4 BRA LOOP ;循环回去循环回去PRO1: PRO2: PRO3: PRO4: 6.3.1 独立式按键接口独立式按键接口 前图中拨位开关换为按键即可;程序也同前。前图中拨位开关换为按键即可;程序也同前。 硬件硬件-开关输入低有效,上拉,开关输入低有效,上拉,S12可直接用内部上拉可直接用内部上拉 软件软件-查询式,逐位检测每个查询式,逐位检测每个I/O引脚状态;引脚状态;独立式按键结构特点:独立式按键结构特点: 检测简单;占用检测简单;占用I/O引脚多。按键数目较少时用引脚多。按键数目较少时用6.3.3 按键去抖动按键去

13、抖动 抖动问题:按键在按下或抬起时,由于机械弹性的影响,通常所按的键在闭抖动问题:按键在按下或抬起时,由于机械弹性的影响,通常所按的键在闭合位置和断开位置之间抖动几下才稳定下来。抖动持续的时间因操作者和合位置和断开位置之间抖动几下才稳定下来。抖动持续的时间因操作者和按键特性而异,一般为按键特性而异,一般为510ms。 去抖动:克服检测误判去抖动:克服检测误判硬件方法硬件方法-按键后端加双稳态触发器按键后端加双稳态触发器软件方法软件方法-检测到有键按下时,延时检测到有键按下时,延时1020ms左右再检测,若该键保持在按左右再检测,若该键保持在按下状态,则确定为按键按下;松按检测同理。下状态,则确

14、定为按键按下;松按检测同理。注:通常使用软件去抖动注:通常使用软件去抖动 键盘的其它问题还有:一键多能、多键同按键盘的其它问题还有:一键多能、多键同按;*;* 按键检查子程序:无键输入直接退出,有键输入时等松手后退出按键检查子程序:无键输入直接退出,有键输入时等松手后退出 *;* 出口参数:出口参数:Key_numb 按键号,按键号, 0 无键,无键,14 键号键号 *;*Test_key: PSHA MOVB #0, Key_Numb LDAA PORTA ORAA #$F0 COMA BEQ Test_key_RTS ; 无键输入,直接退出无键输入,直接退出 JSR DELAY_20MST

15、est_key_NEXT: INC Key_Numb LSRA ; 查键号查键号,条件控制循环条件控制循环 BNE Test_key_NEXT Test_key_LP1: LDAA PORTA ; 判松手判松手 ORAA #$F0 COMA BNE Test_key_LP1 JSR DELAY_20MS Test_key_RTS: PULA RTS6.3.2 矩阵式键盘接口矩阵式键盘接口 也叫行列式键盘,行、列交叉处跨接按键;也叫行列式键盘,行、列交叉处跨接按键;2x8,4x4,4x8,8x8等等 按键响应方式:主程序循环查询、中断后检测按键响应方式:主程序循环查询、中断后检测按键检测方法:按

16、键检测方法:(1)行扫描法行扫描法 右图,原理:右图,原理:1、全扫描、全扫描 各行送各行送“0”,查是否有键按下查是否有键按下2、逐行扫描、逐行扫描 逐行送逐行送“0”,确定哪行、哪列确定哪行、哪列键按下键按下(2)行反转法行反转法l 键值计算键值计算l 按前图的接法可以得出按前图的接法可以得出键值表,如右。键值可以键值表,如右。键值可以通过扫描法获得,由键值通过扫描法获得,由键值通过查表法编程得到真正通过查表法编程得到真正定义值。定义值。l (即书例(即书例5-3和例和例5-10中中的的TABLE2)l 行扫描法汇编程序行扫描法汇编程序l 参见书例参见书例5-10的的DISPLAY子程序之

17、前部分,子程序之前部分,读通读通 1 EE 2 DE 3 BE A 7E 4 ED 5 DD 6 BD B 7D 7 EB 8 DB 9 BB C 7B * E7 0 D7 # B7 D 77定义值键值; 读键盘口:入口读键盘口:入口: B = 输出行号输出行号; 出口:出口:A = 列值及相关标志位列值及相关标志位InKeyPort: STAB PORTA LDAA PORTA ORAA #$F0 COMA RTS;非编码键盘:无键输入退出。非编码键盘:无键输入退出。;出口参数:出口参数:Key_numb0无键,无键,116键号键号Key16: PSHD MOVB #0, Key_Numb

18、CLRB BSR InKeyPort BEQ Key16_RET ; 无键退出无键退出 JSR DELAY_20MS LDAB #$7FKey16_NL: BSR InKeyPort BNE Key16_LP1 LDAA Key_Numb ADDA #4 STAA Key_Numb LSRB CMPB #$07 ; 容错处理 BNE Key16_NL MOVB #0, Key_Numb BRA Key16_RTSKey16_LP1: INC Key_Numb LSRA BNE Key16_LP1Key16_LP2: CLRB BSR InKeyPort BNE Key16_LP2 JSR DE

19、LAY_20MS Key16_RTS: PULD RTS 补充:多分支结构程序设计补充:多分支结构程序设计; 根据键号执行相应子程序。根据键号执行相应子程序。 KeyMain: JSR Key16 LDAA Key_Numb LSLA ; A= A * 2 (分支编号)(分支编号) LDX #Jmp_Table LDY A, X JMP YJmp_Table: FDB Key0Sub FDB Key1Sub . FDB Key16SubKey0Sub: RTS ; 无键输入无键输入Key1Sub: RTSKey16Sub: RTS6.4 人机交互接口设计人机交互接口设计6.4.1 LED数码管

20、的工作原理数码管的工作原理构造构造 7段段(8段段),8个发光二极管字段),组合显示个发光二极管字段),组合显示出数字、字符出数字、字符 分:共阴极给分:共阴极给1,段亮);共阳极给,段亮);共阳极给0,段,段亮)亮) 亮:提供段驱动电流,并加适当限流电阻亮:提供段驱动电流,并加适当限流电阻 字形编码字形编码 段码,见表段码,见表6-1译码分类译码分类软件译码软件译码(查表查表)硬件译码硬件译码(专用芯片专用芯片) 扫描分类扫描分类静态扫描静态扫描动态扫描动态扫描 (20ms)(a) 外形结构与引脚外形结构与引脚(共阴共阴) (b) 共阴极共阴极 (C) 共阳极共阳极6.4.2 LED数码管显示汇编程序设计数码管显示汇编程序设计 【例】硬件电路图如下:【例】硬件电路图如下:4位连排数码管位连排数码管(公共端公共端位选信号位选信号) 共阳、静态共阳、静态4位同字符显示参见书例位同字符显示参见书例5-10的的DISPLAY子程序子程序注:本章中的所有注:本章中的所有C语言程序,可不予消化语言程序,可不予消化l共阴、动态显示共阴、动态显示4位位BCD码码($2000开始存放开始存放)的程序示例的程序

温馨提示

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

评论

0/150

提交评论