• 627.00 KB
  • 2022-04-29 14:23:54 发布

最新可编外围接口芯片8255A及其应用(精)课件PPT.ppt

  • 41页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'可编外围接口芯片8255A及其应用(精) A组控制B组控制DBRDWRA0A1RESETCS读/写控制逻辑A口B口上C口下C口PA7~PA0PC7~PC4PC3~PC0PB7~PB0内部总线总线缓冲器内部控制逻辑电路与CPU连接的接口电路与外设连接的数据端口一、结构和工作原理 1、数据端口三个8bit的数据端口PA、PB、PCPA:可用于输入、输出或双向PB:可用于输入、输出,但不能用于双向PC:可用于输入、输出。可分为二个4bit端口作为PA、PB口状态、控制信号的通路B口PA7~PA0PC7~PC4PC3~PC0PB7~PB0内部总线上C口下C口A口 4、8255与CPU的连接8255(1)A0A1CSD7~D0RDWRRESETPAPBPC8255(2)A0A1CSD7~D0RDWRRESETPAPBPCA0A1译码200H208HD7~D0RDWRRESET8088CPU208H~20BH200H~203HA15~A2M/IO 二、8255A的控制字1、工作方式控制字 2、位控(置位/复位)方式的数据输出端口C有一种特殊的控制方式,可以将端口C的某一位置1或清0,而不影响端口C其他位的状态 三、8255A的工作方式1、方式0基本输入输出方式适用于不需要握手信号的简单I/O场合。2、方式1-选通输入输出方式指定端口有PA、PB、PC输入或输出都通过选通握手信号实现。指定端口有PA、PB;握手信号专用通道是PC,不再作为数据端口。在满足握手条件时,8255向CPU申请中断,在中断服务程序中执行IN或OUT指令对指定端口读入或写出。 选通输入方式CPU8255外设PA数据线INTRAPC3PC4STBAPC5IBFAPB数据线INTRBPC0PC1IBFBPC2STBB选通输出方式CPU8255外设PA数据线INTRAPC3PC6ACKAPC7OBFAPB数据线INTRBPC0PC1OBFBPC2ACKB方式1选通输入输出方式 选通输入信号说明IBF-输入缓冲器满信号,高电平有效。由8255A输出的状态信号,表示输入锁存器已满,向外设指明不能再送入数据。INTE-中断允许信号。是控制8255A能否向CPU发中断请求信号,它没有外部引脚,INTEA、INTEB是由用户对PC4、PC2按位置位实现的。INTR-中断请求信号,高电平有效。是8255A向CPU发出的请求中断信号,要求CPU服务。当IBF=1、STB=1且INTE=1时,INTR=1。STB-选通输入,低电平有效,外设数据输入送输入缓冲器;STBAIBFAINTRAI/O线PA7~PA08PC3PC6PC7&INTEARD方式1输入(A口)PC5PC4 方式1输入时序图 选通输出信号说明ACK-外设的回答信号,低电平有效,由外设送给8255A。表示CPU送到指定端口的数据已被外设接受。OBF-输出缓冲器满信号,输出,低电平有效。表示CPU已输出数据到指定端口。INTR-中断请求信号,高电平有效。INTE-中断允许信号。INTEA、INTEB是由用户对PC6、PC2按位置位实现的PA7~PA08PC6ACKAPC7OBFAPC3INTRAPC4PC5I/O线&INTEAWR方式1输出(A口) 方式1输出时序图 3、方式2-双向总线方式(仅适用于A口)PA7~PA0作为双向数据总线,PC3~PC7用作A口的联络控制信号。PC2~PC0可用作B口的应答信号线,或作I/O线。PC3INTRAPA78PC7PC6OBFAACKAPC4PC5PC2~PC03STBAIBFAINTE2&~PA0&INTE11WRRD 8255A的应用举例例:检测开关状态(断开/闭合)并在LED显示(亮/暗)…K7K0…LED7LED0PA7PA0PB0PB7D7~D0RDWRRESETG1G2AG2BCBAY4CSA1A0D7~D0RDWRRESETM/IOA4A5A6A7A3A0A2A18255A808674LS138+5VPA口:111100000FOHPB口:111100100F2HPC口:111101000F4H控制口:111101100F6H R+5VK上拉电阻K状态PA7断开1闭合0开关状态的检测PA78255 限流电阻LEDPB78255PB7LED状态1亮0暗发光二极管的控制 下C口I/O1=输入0=输出B口I/O1=输入0=输出B组方式0=方式01=方式1上C口I/O1=输入0=输出特征位D7=1A组方式:00=方式001=方式11x=方式2A口I/O1=输入0=输出D0D1D2D3D4D5D6D7A组B组1A口:基本输入,方式0B口:基本输出,方式010010000 MOVDX,0F6HMOVAL,90HOUTDX,AL;向控制口写方式控制字TEST:MOVDX,0F0HINAL,DX;从PA口读入8个开关状态MOVDX,0F2HOUTDX,AL;开关状态送PB口,由LED显示JMPTEST;不断循环CALLDELAY;延时 二、键盘接口矩阵键盘接口的特点:1、键盘由触点按键(开关)组成的矩阵形式。在行与列的交叉点位置安装按键。当按键闭合,相应的行和列连接。0123456789ABCDEF+Vcc10K10K 2、按键具有弹性,在闭合和断开的过程中有抖动。需要采取消抖措施。抖动抖动断开闭合闭合1采取延时10ms,再检测的消抖措施 例:用8255A芯片端口A做行线端口,端口B做列线端口,构成扫描键盘 两种键盘扫描方法正向扫描法:A口输出00H,B口读入键盘列线值。如果无键按下,则B口读入低4位值为0FH,否则,就有键按下。如果有键按下,A口输出FEH,如果B口读入有0,则第一行有键按下;如果没有,A口输出FDH,再查下去反转扫描法:A口输出,B口输入。A口输出00H,B口读入键盘列线值。如果无键按下,则B口读入低4位值为0FH,否则,就有键按下。如果有键按下,将8255A的A口设置为输入,B口为输出。把B口读入的列值从B口输出,同时从A口读入行值。用读入的行、列值查表,可以确定是哪一个键被按下 KEYSCANPROCNEARBEGIN:MOVDX,XXH;置8255A控制口地址MOVAL,82H;A方式0输出,B方式0输入OUTDX,AL;输出8255A方式控制字LOOP1:MOVDX,XXH;A口地址送DXMOVAL,00HOUTDX,AL;A口输出00H扫描键盘MOVDX,XXH;B口地址送DX中INAL,DX;读入键盘列值ANDAL,0FH;保留低4位CMPAL,0FHJELOOP1;无键按下,重新扫描CALLDELAY;有键按下,延时去抖动反转扫描法程序 INAL,DX;再次读B口,检查有无键按下ANDAL,0FH;保留低4位CMPAL,0FHJELOOP1;无键按下,重新扫描MOVKEY,AL;有键按下,列值保存在KEY单元MOVDX,XXH;置8255A控制口地址MOVAL,90H;B口方式0输出,A口方式0输入OUTDX,AL;输出8255A方式控制字MOVDX,XXH;B口地址送DX中MOVAL,KEY;从KEY单元取出列值OUTDX,AL;向B口输出列值,反向扫描MOVDX,208H;A口地址送DXINAL,DX;从A口读入行值ANDAL,1FH;保留低5位 CMPAL,1FHJEBEGIN;无键按下,重新扫描CALLKEYVALUE;查表获得按键编码MOVDX,XXH;B口地址送DX中MOVAL,0OUTDX,AL;向B口输出列值,反向扫描MOVDX,XXH;A口地址送DXW2:INAL,DX;从A口读入行值ANDAL,1FH;保留低5位CMPAL,1FHJNEW2;未释放,等待RETKEYSCANENDP 三、七段LED显示器及接口电路DPadbcfegDPgfedcba阴极共阴极LEDDPgfedcba阳极共阳极LED+VCC 反相驱动器PA0PA1PA2PA3PA4PA5PA6PA78255ADB7~DB0共阴极LED显示器接口电路DPgfedcba阴极共阴极LED adbcfegDPgfedcbaD6D5D4D3D2D1D00100000040H1111100179H2010010024H3011000030H4001100119HE000011006HF00011100EH……………………显示代码 DB40H,79H,24H,30H,19H,12H,02H,78HTABLEDB40H,79H,24H,30H,19H,12H,02H,78HDISPY:MOVBX,OFFSETTABLEMOVAL,COUNTXLATMOVDX,POROUTDX,AL查表显示数字的程序 例:8255A作为开关K0~K3及七段LED显示器接口。要求开关设置的二进制信息,由PC0~PC3输入,经程序转换为对应的七段LED显示器的字形代码后,由PA口输出显示。8255APA7PA0~驱动+5V+5VK0K1K2K3PC3PC2PC1PC0D7~D0RDWRA0A1CSD7~D0RDWRA0A1ABCG2AG2BG1Y0Y1Y2OOO&A2A3A9M/IO8088LS138CPU 8255A各端口地址确定:由图可知:A9A8A7A6A5A4A3A2A1A011100010各端口地址为:388H~38BH8255A方式选择控制字:按题意设置端口A方式0输出,下C口输入.控制字为:1000×0×1=81H(或83H等)LED显示器的字形代码表存放在TABLE单元开始的内存中.TABLEDB40H,79H,24H,30H,19H,12H,02H,78HDB40H,79H,24H,30H,19H,12H,02H,78HABCG2AG2BG1Y0Y1Y2&A2A3A9LS138CSM/IOA4A5~ MOVDX,38BH;设置8255A工作方式MOVAL,81HOUTDX,ALMOVDX,38AH;指向端口C,读开关状态INAL,DXANDAL,0FHLEABX,TABLE;显示代码表首地址送BXXLAT;查表,取出相应的字形码送ALMOVDX,388H;指向端口AOUTDX,AL;输出字形码显示HLT 第九章作业9,10 中国福利会儿童计箅机活动中心计算机数学班讲义王指导2003-11数学欣赏(三) 握手问题一位先生说:“前些日子,我同我太太一起参加了一个宴会,酒席上还有另外四对夫妻。见面时,大家相互问候,亲切握手。当然,没有人会去同自己的太太握手,自己也不会同自己握手,与同一个人握过手之后,也不可能再同他或她进行第二次握手。彼此之间的握手全部结束之后,我好奇地询问在座的各位先生和女士,当然也包括我太太在内,每人各握过几次手?使我惊奇的是,每个人报出的握手次数竟完全不一样。请问:我太太同别人共握了几次手?”为了使这个问题的叙述更为严密,还需作如下说明:(1)甲与乙握手,在计算握手次数时,甲算一次,乙也算(2)握手并不要求一个都不漏,可握而未握的情况也是有的,例如,行注目礼,双手合掌,拍拍肩膀,对方正在与别人握手不便越位等等,这当然不算不礼貌。不过,这样一来就大大地增加了问题的复杂性,使问题似乎变得无从求解了。 解决这个问题,主要是运用逻辑推理。既然宴会上共有10人,任何人都不同自己握手,也不同自己的配偶握手,所以,任何一个人握手的次数最多只能等于8。由于这位先生已问过各位宾客,得知他们每人握手的次数都不一样,可见这9个人的握手次数必定是0,1,2,·3,4,5,6,7,8。显然,握手次数为8的那一位已同除了自己的配偶以外的每个人都握过丁手,所以,这个人(无法判定这个人是先生或女士)的配偶必定就是那个握手次数为0的人。由于这两个人的关系已被确定,于是就可以请他们退到“圈子”以外。接着可以推定,握手次数为?的人必定与握手次数为l的人是一对夫妻;握手次数为6的人必定与握手次数为2的人是一对夫妻;如此等等。 最后只剩下握手次数为4的人,可以断定,此人肯定是提出问题的那位先生的太太。解决问题之后,让我们再来回顾这道题目,对称性、递归性、消去法从这道题中都得到了很好的体现。怪不得一些评论冢们说:这样的数学题目,真是太“艺术化”了。此题的发明权,属于当代美国数学科普大师—马丁·家德纳。 '