




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1第九章 可编程并行接口8255An8255A的简介n8255A的外部引脚n8255A的内部逻辑结构n8255A的工作设定n8255A的应用28255A的简介n8255A是一种通用的可编程并行I/O接口芯片(PPI),通过对它进行编程,可以有不同的工作方式。n通常不需要附加外部逻辑电路就可以直接为CPU与外设之间提供数据通道。38255A的外部引脚引脚名称 信号名称D7D0双向数据总线PA7PA0PB7PB0PC7PC0A口双向数据线B口双向数据线C口双向数据线RESET复位信号,使所有内部寄存器清零CS A1 A0片选信号, A1 和A0不同组合,可选不同端口RD WR读、写信号线48255
2、A内部逻辑结构n3个I/O端口A,B,C:每个都是8位并行端口,都可由程序选择作为输入或输出。nA组和B组控制电路:A组包括A口和C口的上半部(PC7PC4);B组包括B口和C口的下半部(PC3PC0)。n数据总线缓冲器:双向三态8位缓冲器,能直接与CPU数据总线对接。n读/写控制电路:与地址总线中的A1,A0以及有关的控制信号RD,WR,RESET相连,用来管理内部和外部数据,状态或控制字的传送。58255A的端口寻址引 脚寻址的端口CSA1A00000100110101端口A端口B端口C控制字寄存器本芯片没有被选中68255A工作设计n8255A的控制字n方式控制字n对C口按位置位/复位控
3、制字n8255A的方式选择7方式控制字D7D6D5D4D3D2D1D0方式标志位D7=100A口方式001A口方式11A口方式20A口输出1A口输入0C口高四位输出1C口高四位输入0B口方式01B口方式10B口输出1B口输入0C口低四位输出1C口低四位输入8举例n设8255A的控制字寄存器的端口地址为63H,若A口工作于方式1,B口工作于方式0 ,A口、B口和C口的高四位作输入,C口的低四位作输出,写出方式控制字,并写入8255A的控制字寄存器中。9对C口按位置位/复位控制字D7D6D5D4D3D2D1D0该类型控制字标志位D7=0任意值000选中PC0001选中PC1010选中PC2011选
4、中PC3100选中PC4101选中PC5110选中PC6111选中PC70复位1置位10举例n设8255A的口地址为60H63H,PC5平时为低电平,要求从PC5引脚输出一个正脉冲。试编写程序段。118255A的方式选择n方式0基本输入/输出方式n方式1选通输入/输出方式,A口和B口作为数据的输入/输出端口,C口的高5位作为A口的联络信号,C口低3位作为B口联络信号。n方式2双向选通传送方式,只有通道A工作在这种方式,C口的高5位作为A口的联络信号。128255A方式0n8255A的每个口都作为基本的输入和输出口nA口、B口、C口的高4位、C口的低4位都可独立设定为输入口和输出口;这样8255
5、A在方式0时,各个端口的输入、输出可以有16种不同的组合138255A方式1n通道A:包括一个8位数据端口(端口A),和一个5位的控制端口(端口C的高5位PC7PC3)n通道B:包括一个8位数据端口(端口B),和一个3位的控制端口(端口C的低3位PC2PC0)148255A方式1输入C口各引脚定义通道 C口各引脚定义APC7,6 用作输入/输出信号,由方式控制字D3位设定PC5IBF,端口A的输入缓冲器满信号PC4STB,端口A的选通输入控制信号PC3INTR,通道A发出的中断请求信号BPC2STB,端口B的选通输入控制信号PC1IBF,端口B的输入缓冲器满信号PC0INTR,通道B发出的中断
6、请求信号158255A方式1输入中断的允许与禁止通道号允许中断禁止中断APC4=1PC4=0BPC2=1PC2=0168255A方式1输出C口各引脚定义通道 C口各引脚定义APC7OBF,端口A输出缓冲器满信号PC6ACK,端口A的响应输入信号PC5,4用作输入/输出信号,由方式控制字D3位设定PC3INTR,通道A发出的中断请求信号BPC2 ACK,端口B的响应输入信号PC1OBF,端口B输出缓冲器满信号PC0INTR,通道B发出的中断请求信号178255A方式1输出中断的允许和禁止通道号允许中断禁止中断APC6=1PC6=0BPC2=1PC2=0188255A方式2n该方式只能用于端口A,
7、A口既能发送数据,又能接收数据nC口的高5位PC7PC3,用作A口的控制信息和状态信息n端口B可以工作在方式0或方式1,既可以作为输入,也可以作为输出198255A方式2 C口各引脚的定义nPC7=OBF,输出,输出缓冲器满信号nPC6=ACK,输入,由外设发来的对OBF的响应信号nPC5=IBF,输出,输入缓冲器满信号nPC4=STB,外设发来的选通信号nPC3=INTR,输出,双向工作时,向CPU发出中断请求信号nPC2PC0: 若B口工作在方式0,可作为基本输入/输出口;若B口工作在方式1,可作为控制信号和状态信号208255A方式2中断的允许和禁止通道号输入/输出允许中断禁止中断A输入
8、输出PC4=1PC6=1PC4=0PC6=0218255A的应用n 用LED显示开关状态n 键盘接口n 8255A在PC/XT机中的应用n PC/XT机中的扬声器发声程序设计接口n 七段数码管数字显示221、用LED显示开关状态n逻辑电路图n8255A端口地址的确定n8255A工作方式设定n程序代码23逻辑电路图写出8255A各端口的地址?248255A工作方式设定端口端口地址工作方式输入/输出A0F0H0输入B0F2H0输出25程序代码MOV DX,0F6HMOV AL,10010000BOUT DX,ALNEXT:MOV DX,0F0HIN AL,DX;从A口读入开关状态MOV DX,0F
9、2HOUT DX,AL;B口LED显示开关状态JMP NEXT262、键盘接口n按键开关的比较n键盘接口电路n8255A工作方式设定n键盘扫描原理n程序代码27按键开关的比较开关种类价格 性能应用场合机械式便宜 易产生抖动,手感好计算机键盘薄膜式便宜 密封性好家电、医疗仪器电容式较贵 无抖动,需要附加电路测电容的变化车间电器中霍尔效应式贵密封性好,寿命长,响应快精密仪器28键盘接口电路44键盘矩阵通过A口向某一行输出0,再通过B口低4位读取列值,如果有0值,则该行有键按下298255A工作方式设定端口端口地址工作方式输入/输出A0FF9H0输出B0FFBH0输入30键盘扫描原理所有键都释放了所
10、有键都释放了?有键按下有键按下?获取键盘扫描码获取键盘扫描码否是是消除抖动消除抖动初始化初始化否有键按下有键按下?是否结束结束31获取键盘扫描码过程该行有键按下该行有键按下?是否扫描第扫描第0行行该行有键按下该行有键按下?是否扫描第扫描第1行行该行有键按下该行有键按下?是否扫描第扫描第2行行该行有键按下该行有键按下?是否扫描第扫描第3行行出错处理出错处理获取键盘扫描码获取键盘扫描码32键盘扫描码的设置PB7PB6PB5PB4PB3PB2PB1PB0指示按键所在行有且仅有一位为0,哪一位为0表示哪一行有键按下指示按键所在列有且仅有一位为0,哪一位为0表示哪一列有键按下第0行第3行第0列第3列如果
11、按键位于第1行第2列,写出该键的扫描码。33键扫描码和键值的对应扫描码77H7BH7DH7EH0B7H0BBH0BDH0BEH键值01234567扫描码0D7H0DBH0DDH0DEH0E7H0EBH0EDH0EEH键值89ABCDEF某键的键值一般人为设定,本例中键扫描码和键值的对应关系如下表所示:34程序代码n在数据段中设置键盘扫描码表n8255初始化n检查按键n获取键盘扫描码35在数据段中设置键盘扫描码表DATA SEGMENTTABLE DB 77H,7BH,7DH,7EH DB 0B7H,0BBH,0BDH,0BEH DB 0D7H,0DBH,0DDH,0DEH DB 0E7H,0E
12、BH,0EDH,0EEHDATA ENDS每个扫描码所在单元的偏移量即为该扫描码对应的键值。每个扫描码所在单元的偏移量即为该扫描码对应的键值。368255初始化代码MOV DX,0FFFHMOV AL,10000010BOUT DX,AL37检查按键的工作过程n首先检查所有键是否都处于松开状态:通过A口向所有行送0,然后读取列值,即读取B口的低四位,如果全部为1,说明所有的键都松开了;如果至少有一位为0的话,说明至少有一个键仍然处于按下的状态,则等待。38检查按键的代码MOV DX,0FF9HMOV AL,0OUT DX,ALMOV DX,0FFBHWAIT1:IN AL,DXAND AL,0
13、FHCMP AL,0FHJNE WAIT1WAIT2:IN AL,DXAND AL,0FHCMP AL,0FHJE WAIT2通过A口向所有行输出0从B口读取列值检查所有按键是否都松开了,如没有,则等待如果都松开了则等待按键39延时去抖动n由于机械开关的按钮从开始到按下接触稳定,需要经过一段时间的抖动过程,这个过程一般持续20ms。n用软件的方法解决抖动问题:在程序安排一定的延时MOV CX,COUNTLOOP $其中的COUNT的值与具体的CPU和主频有关40COUNT值的计算NfTTNTCOUNTCLKDDDTCLKfN需要延时的时间(秒)CPU的时钟频率(Hz)LOOP 指令执行时所需的
14、时钟周期数8086 CPU的时钟频率为5MHz,LOOP 指令执行需要17个时钟周期数,如果要延时20毫秒,则COUNT值为5866,即16EAH41键盘扫描码的获取n如果按键有效的话,这时可以读取键盘的扫描码。实质就是判断被按下的键的行号和列号n采用逐行扫描的办法:先扫描第0行,即通过A口输出一个第0位为0其余位为1的数,在从B口读取列值,即B口的低四位,如果这四位均为1的话,说明第0行没有键按下,继续扫描第1行;如果这四位有且仅有一位为0的话,说明被按下的键就在第0行,然后从B口读取被按下的键的扫描码。42键盘扫描码的获取程序MOV AL,0FEHNR:PUSH AXMOV DX,0FF9
15、HOUT DX,ALMOV DX,0FFBHIN AL,DXAND AL,0FHCMP AL,0FHJNE ENCODEPOP AXROL AL,1JMP NRENCODE: MOV BX,000FHIN AL,DXNEXT:CMP AL,TABLEBXJE DONEDEC BXJNS NEXTMOV AH,1JMP EXITDONE: MOV AL,BLMOV AH,0EXIT:HLT扫描第0行检查是否有键按下如果有获取键值如没扫描下一行有效键值送AL433、8255A在PC/XT机中的应用n硬件连接n8255A的工作方式n软件编程(大家自学)44硬件连接458255A各端口的工作方式端口号
16、端口地址工作方式输入/输出功能A60H0输入1、机器刚上电自检,输出,输出当前检测部件的标志,以便查错2、进入正常工作状态,输入,读取键盘的8为扫描码B61H0输出用来输出若干控制信号C62H0输入用来读取系统内部的状态464、PC/XT机扬声器发声程序设计nPC/XT机中的扬声器接口电路n扬声器发声原理n音乐简谱音调和时长n音乐程序设计47PC/XT机中的扬声器接口电路48扬声器发声原理n扬声器发声主要决定于上图中A和B的波形,由此有两种方式:nB点固定为高电平,A点为方波(见教材第271页 例7-9)nA点固定为高电平,B点为方波(如果B点的方波的频率固定,则为纯音;如果B点方波的频率不断
17、变化,则能够演奏美妙的音乐)本例采用第二种方法。49一首乐曲组成乐曲的每个音符的频率值和持续时间(节拍)是乐曲程序发声所需要的两个数据。5051音符-频率对照表音符12345671频率131 147 165 175 196 220 246 262音符234567i频率294 330 349 392 440 494 523. . . . . . .52音符节拍-持续时间的对应n在2/4中,四分音符为一节,每一小节二拍,全音符持续2拍,二分音符持续1拍,四分音符持续半拍,八分音符持续四分之一拍。n如果给全音符分配1s(10010ms)的时间,则二分音符的持续时间为0.5s(5010ms),四分音符
18、持续时间0.25s(2510ms),八分音符持续时间0.125s(12.510ms)。53乐曲转化为频率表和持续时间表Freq dw 262,294,330,294,330,392,330,294,262,294,440 dw 262,294,330,294,330,392,330,294,262,294 Duration dw 10 dup(50),100 dw 8 dup(50),2 dup(100)注:Duration表中的数值为10ms的倍数。54频率表中各种频率方波的产生n通过8253通道2产生:n工作方式设为3;n计数初值Nfclk/f (f即为频率表中某个频率值,fclk即为CL
19、K2端时钟频率1.19318MHz)n8253初始化代码558253初始化代码MOV AL,10110110BOUT 43H,ALMOV DX,0012HMOV AX,34DCHDIV DI ;DI为频率表中某频率值为频率表中某频率值OUT 42H,ALMOV AL,AHOUT 42H,ALDX:AX为8086CPU的主频AX为通道2的计数初值56持续时间表中的10ms延时的产生n通过硬件产生固定时间的延时,与具体的CPU和主频无关。n硬件定时的方法:通过监控8255 B口(61H)的PB4,使PB4每15.08us触发一次,以产生一个固定不变的时间基准。5710ms延时代码waitf proc nearpush axwaitf1: in al,61hand al,10h;PB4cmp al,ahje waitf1mov ah,alloop waitf1pop axretwaitf endpMOV CX,633CALL WAITFWAITF子程序产生15.08us的延时63315.0810ms58完整代码n在数据段建立乐曲的频率和持续时间表n8253通道2工作方式初始化n在频率表取出某频率值,转换为8253初始化时写入的计数初值n产生某一频率
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 共文化旅游融合发展项目可行性研究报告
- 低空经济数字化转型与未来发展趋势分析
- 表面麻醉剂行业发展趋势与未来市场潜力分析
- 八年级数学上册 第5章 二次根式5.1 二次根式第2课时 二次根式的化简教学设计 (新版)湘教版
- 夏季营销策略
- 7《多元文化 多样魅力》教学设计-2023-2024学年道德与法治六年级下册统编版
- 教师违反职业道德行为处理办法培训
- 关于成立跨平台智能计算中心公司可行性研究报告(范文)
- 废旧新能源汽车动力蓄电池回收利用项目可行性研究报告(范文模板)
- 二恶英采样培训
- 郑州工业应用技术学院单招《职测》参考试题库(含答案)
- 提醒纳米颗粒对环境的影响
- 血液科护士的造血干细胞移植护理
- HGE系列电梯安装调试手册(ELS05系统SW00004269,A.4 )
- 护理教学查房组织与实施
- 小学五年级家长会课件
- 机动车检测站仪器设备日常维护和保养作业指导书
- 立式数控铣床工作台(X轴)设计
- 万千心理情绪障碍跨诊断治疗的统一方案:治疗师指南
- 藏毛窦护理业务查房课件
- 水土保持-新时代水土保持重点工作课件
评论
0/150
提交评论