![章_并行输入输出接口_第1页](http://file3.renrendoc.com/fileroot_temp3/2021-12/15/1507a407-1a13-4abe-89b4-ce0781037ff2/1507a407-1a13-4abe-89b4-ce0781037ff21.gif)
![章_并行输入输出接口_第2页](http://file3.renrendoc.com/fileroot_temp3/2021-12/15/1507a407-1a13-4abe-89b4-ce0781037ff2/1507a407-1a13-4abe-89b4-ce0781037ff22.gif)
![章_并行输入输出接口_第3页](http://file3.renrendoc.com/fileroot_temp3/2021-12/15/1507a407-1a13-4abe-89b4-ce0781037ff2/1507a407-1a13-4abe-89b4-ce0781037ff23.gif)
![章_并行输入输出接口_第4页](http://file3.renrendoc.com/fileroot_temp3/2021-12/15/1507a407-1a13-4abe-89b4-ce0781037ff2/1507a407-1a13-4abe-89b4-ce0781037ff24.gif)
![章_并行输入输出接口_第5页](http://file3.renrendoc.com/fileroot_temp3/2021-12/15/1507a407-1a13-4abe-89b4-ce0781037ff2/1507a407-1a13-4abe-89b4-ce0781037ff25.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2022-4-201江苏理工学院第第5章章 并行输入并行输入/ /输出输出接口接口GPIO=通用并行输入通用并行输入/输出输出A口、口、B口、口、E口、口、K口:口:(扩展方式时,可作总线)(扩展方式时,可作总线)PORTA(07)PORTB(07)PORTE(07)PORTK(05,7)H口、口、J口、口、M口、口、S口、口、P口、口、T口:口:(复合功能,优先权左(复合功能,优先权左右递减右递减 )PORTH(07) -SPI/GPIO PORTJ(0,1,6,7) -CAN/I2C/GPIOPORTM(07) -CAN/BDLC/GPIOPORTS(07) -SCI/SPI/GPIOPO
2、RTP(07) -PWM/SPI/GPIOPORTT(07) -ECT/GPIO 2022-4-202江苏理工学院上、下拉电阻上、下拉电阻-重要,须接重要,须接目的目的:使该引脚始终处于非激活使该引脚始终处于非激活电平且不浮动状态。上拉常用电平且不浮动状态。上拉常用 而:而:Freescale MCU内部集成内部集成,方便方便2022-4-203江苏理工学院2022-4-204江苏理工学院2022-4-205江苏理工学院2022-4-206江苏理工学院与与T口类似,相应寄存器用时再查;口类似,相应寄存器用时再查;其中其中H口、口、J口在做通用输入口在做通用输入/输出口,可配置为中输出口,可配置
3、为中断输入信号断输入信号(用于键盘用于键盘),增加了有关中断的寄存器,增加了有关中断的寄存器: 边沿方式边沿方式PPSx、中断使能、中断使能PIEx、中断标志、中断标志PIFx2022-4-207江苏理工学院;* main:START: LDAA #$FF STAA DDRB ;设为输出设为输出 LDAA #$7E STAA PORTB ;输出电平输出电平 BRA * 2022-4-208江苏理工学院SW: LDAA #$F0 STAA DDRB ;设设B口方向口方向LOOP: LDAA PORTB;读读B口到口到A TFR A,B ;转存到转存到B LSLB ;逻辑左移逻辑左移 LSLB ;
4、低位补低位补0 LSLB LSLB STAB PORTB ;亮、灭灯亮、灭灯 RORA ;循环右移循环右移 BCC PRO1 ;C=0转转 RORA BCC PRO2 RORA BCC PRO3 RORA BCC PRO4 BRA LOOP ;循环检测循环检测PRO1: PRO2: PRO3: PRO4: 问:不外接上拉电阻时,如何处理?问:不外接上拉电阻时,如何处理?2022-4-209江苏理工学院2022-4-2010江苏理工学院;*;按键检查子程序:无键按下直接退出,有键输入时等松按后退出按键检查子程序:无键按下直接退出,有键输入时等松按后退出 ;出口参数:出口参数:Key_numb 按
5、键号,按键号, 0 无键,无键,14 键号键号 ;*Test_key: PSHA MOVB #0, Key_Numb LDAA PORTA ORAA #$F0 COMA BEQ Test_key_RTS ; 无键按下,直接退出无键按下,直接退出 JSR DELAY_20ms ;去抖动去抖动 Test_key_NEXT: INC Key_Numb LSRA ; 查键号查键号,条件控制循环条件控制循环 BCC Test_key_NEXT Test_key_LP1: LDAA PORTA ORAA #$F0 COMA BNE Test_key_LP1 ; 等松按等松按 JSR DELAY_20ms
6、;去抖动去抖动 Test_key_RTS: PULA RTS2022-4-2011江苏理工学院行扫描法行扫描法按键识别方按键识别方法,右图,原理:法,右图,原理:1、全扫描、全扫描 各行送各行送“0”,查是,查是否有键按下否有键按下2、逐行扫描、逐行扫描 逐行送逐行送“0”,确定,确定哪行、哪列键按下哪行、哪列键按下2022-4-2012江苏理工学院 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定义值键值键盘的中断响应方法键盘的中断响应方法 加接中断电路:将所有列线接到一个多输入与
7、门上(如4与门74LS21),与门的输出接到MCU的输入中断引脚(如IRQ)。主程序中仍然实施全扫描,一旦有键按下,与门的输出会出现低电平,响应这个输入中断,在中断服务程序中实施逐行扫描查键值和后续键盘功能处理。这样的好处是可以减少程序主循环查询对MCU的负担。 利用MCU资源:在Freescale S12X单片机应用系统中,键盘可以接在有中断功能的P口、H口或J口,这样可以省略行扫描法中的全扫描步骤,并且不需要加接电路。一旦有键按下,则进入中断服务程序,直接实施逐行扫描查键值和后续键盘功能处理。这样更简捷方便。2022-4-2013江苏理工学院;*;主程序中循环查询主程序中循环查询,键盘扫描
8、法找键值。键盘扫描法找键值。;*KEYVAL EQU $2000 ;定义键值的存放地址在;定义键值的存放地址在$2000 LDAA #$ 0F ;预备预备I/O口线低口线低4位输出,做行线用;高位输出,做行线用;高4位输入,做列线用位输入,做列线用 STAA DDRH ;完成;完成I/O口数据方向设置口数据方向设置LOOP LDAA #$ F0 STAA PTH ;行线送低电平,全扫描;行线送低电平,全扫描 LDAA PTH ;读入读入I/O口状态,其中高口状态,其中高4位有零代表有键按下,低位有零代表有键按下,低4位维持零位维持零 ORAA #$ 0F ;累加器;累加器A低低4位强制置位强制
9、置1,高,高4位不变位不变 COMA ;A取反,此时如果无键按下,则取反,此时如果无键按下,则A值应为值应为 $00 BEQ LOOP JSR DELAY20ms ;去抖动,然后开始逐步扫描过程;去抖动,然后开始逐步扫描过程 LDX #TABLE1 ;有键按下时,置行扫描码的首地址;有键按下时,置行扫描码的首地址 LDY #4 ;置行扫描次数;置行扫描次数LP1 : LDAB X ;取出行扫描码;取出行扫描码 INX ;指向下一行扫描码,为下次循环做准备;指向下一行扫描码,为下次循环做准备 STAB PTH ;送行扫描码到;送行扫描码到I/O口口LDAA PTH ;读回键值;读回键值STAA
10、KEYVAL ;另存键值;另存键值2022-4-2014江苏理工学院SBA ;(A)-(B)A,减法用以判断是否相等BNE FIND ;是当前行的键按下,按键找到;否则高4位等于F,A=BDBNE Y , LP1 ;未找到;若Y减1不为0,继续查找下一行BRA LOOP ;4行查完,仍未找到,可能是抖动,返回总循环FIND: LP2: LDAA PTH ORAA #$ 0F COMA BNE LP2 ;A不为0跳转;以上4条等松按 JSR DELAY20ms ;去抖动 JSR KEYPRO ;开始处理按键对应的功能,此时KEYVAL单元已装有该键键值BRA LOOP ;返回总循环 TABLE1
11、: FCB $FE , $FD , $FB , $F7 ;行扫描码 ;/;子程序DELAY20:利用寄存器XY,执行两重循环实现延时; 延时约 20ms=40*200*5*0.5 (2MHz 总线频率时);/2022-4-2015江苏理工学院DELAY20ms: PSHX PSHY LDX # 40DL1: LDY #200DL2: NOP ;1T NOP ; 1T DBNE Y , DL2 ; 3T DBNE X ,DL1 PULY PULX RTS 2022-4-2016江苏理工学院(a) 外形结构与引脚外形结构与引脚(共阴共阴) (b) 共阴极共阴极 (C) 共阳极共阳极2022-4-2
12、017江苏理工学院 共阴、动态显示共阴、动态显示4位位BCD码码($2000开始存放开始存放)的程序示例的程序示例:DISP:LDX #$2000 LDY #TABLE LDAB #$FF CLC ;准备完毕准备完毕 LP: LDAA #$FF STAA PTT ;LED全关全关 LDAA X ;取数取数 LDAA A,Y ;查段码查段码 ROLB ;左移位选左移位选 STAA PTP ;段码输出段码输出 STAB PTT ;位选输出位选输出 BSR DELAY10ms INX ;指针加指针加1 CPX #$2004 ;比较比较 BNE LP ;4次循环次循环 RTS ;返回返回Entry:
13、LDAA #$FF ;设置设置P口、口、T口输出口输出 STAA DDRP STAA DDRT LOOP: JSR DISP ;调显示子程序调显示子程序 BRA LOOPTABLE:DC.B $3F,$06,$5B,$4F,$66,$6D,$7D,$07,$7F,$6F 2022-4-2018江苏理工学院例题:5-6;*;子程序:将键值转换成自定义的键号,并调用显示;*KEYPRO:KEYNUMB EQU $2001 ;定义计数器,地址在$2001,其内容即是可能的自定义值(键号) CLC ;C清零 LDAA #$00 STAA KEYNUMB ;$2001单元的初值置0,将从0F查找 LDY
14、 #TABLE2 ;键值表首地址传给YLP3: LDAB Y ;查假设的键号对应的键值,装载到B INY ;键值指针加1,为下次循环做准备 LDAA KEYVAL ;将存放在KEYVAL单元的实际键值装载到A SBA ;(A) - (B)A,减法用以判断是否相等 BEQ DISPLAY ;减等于零,键值比对成功,当前建号即为找到,调用显示 INC KEYNUMB ;$2001内容加1 LDAA KEYNUMB2022-4-2019江苏理工学院 LDAB #$10 SBA ;以上3条减法比较 BEQ NOKEY ;当前键号已与$10相等意味着0F键号未找到,退出 BRA LP3 ;暂未找到,循环NOKEY: RTSTABLE2: FCB $EE , $DE , $BE , $7E, $ED , $DD, $BD, $7D, $EB , $DB ,$BB ,$7B ,$E7 ,$D7 ,$B7 ,$77 ;4*4行列键值,预定义的,16个可能的读回值;*;子程序,LED数码管指定位显示键号;*DISPLAY: LDAA #$01 STAA PORTK ;位选,只最低PK0位的数码管显示 LDAB K
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公司部门年度工作计划范文
- 幼儿园中班下学期德育工作计划范文
- 招标方案之施工、监理个人招标方案
- 园林景观设计项目合作协议书范本
- 香港购销合同范本
- 美容院合伙股份合同范本
- 建设工程抗震加固施工合同范本
- 投资合伙企业(有限合伙)合伙协议书范本
- 网络平台销售代理协议书范本
- 湘教版数学七年级上册2.4《整式》听评课记录1
- 同等学力英语申硕考试词汇(第六版大纲)电子版
- 旅游文本的翻译课件
- 最全新能源材料-锂离子电池材料189张课件
- 公共区管理部班组建设进度推进表
- 申论详解(PPT课件)
- 立式加工中心说明书
- 作文纸格子信纸
- 第八版神经病学配套课件-12-中枢神经系统感染性疾病
- 15MW风力发电机
- 正面管教 读书分享(课堂PPT)
- 肌肉注射流程
评论
0/150
提交评论