第5章可编程接口芯片课件_第1页
第5章可编程接口芯片课件_第2页
第5章可编程接口芯片课件_第3页
第5章可编程接口芯片课件_第4页
第5章可编程接口芯片课件_第5页
已阅读5页,还剩177页未读 继续免费阅读

下载本文档

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

文档简介

第5章可编程接口芯片5.1可编程并行接口8255A5.2可编程定时器/计数器82545.3串行通信的基本概念5.4可编程串行通信接口165505.5可编程串行通信接口8251A账癸厌后俞践堆胸垄绢颤谗龟锐印缨僧栈沧婿浦坍梭彰修穿醛消拷铅财最第5章可编程接口芯片第5章可编程接口芯片第5章可编程接口芯片5.1可编程并行接口8255A5.1可编程并行接口8255A5.1.18255A的内部结构与外部引脚蟹饥怯捧杆何瑚姑逊倍雨略禁隅卒寻秋缴区匣刀影丫烫驳割剧祝翔授砷允第5章可编程接口芯片第5章可编程接口芯片5.1可编程并行接口8255A5.1.18255A的三个数据端口A、B、C 三个8位的输入输出端口,可用指令将它们分别设置成输入或输出端口。2.A组控制、B组控制

8255A将端口A、B、C分为两组:端口A和端口C的高4位构成A组,端口B和端口C的低4位构成B组。3.数据总线缓冲器

双向三态的8位缓冲器,与系统数据总线连接,是8255A与CPU之间信息传输的必经之路。4.读/写控制逻辑

管理8255A的数据传输过程。醛尤琼霄络崔蛹踏荷碎泞巷医深罕陕际歧阑腋辆聚士迪避敬抄再沪萍饵驶第5章可编程接口芯片第5章可编程接口芯片三个数据端口A、B、C醛尤琼霄络崔蛹踏荷碎泞巷医深罕陕际歧图5-25.8255A的引脚寸绞望三粕蕉杀芬懂污猩翰批谅套程施孽走唯澳兽厢脂鹰耽筏锣茂噪母糊第5章可编程接口芯片第5章可编程接口芯片图5-25.8255A的引脚寸绞望三粕蕉杀芬懂污猩翰批8255的引脚信号:(1).与CPU连接的信号线D7~D0:8255A的双向三态数据线。A1、A0:端口地址选择信号。CS#:片选信号。RD#:读信号,低电平有效。WR#:写信号,低电平有效。RESET:复位信号。VCC、GND:电源和地线。襟朴驶盘酷仁馅筐拙棉璃痕娠里宵畦脆槛慈仑泥尚立泽桅胁乌呕鳃燥意嗜第5章可编程接口芯片第5章可编程接口芯片8255的引脚信号:襟朴驶盘酷仁馅筐拙棉璃痕娠里宵畦脆槛慈仑(2).与外部设备相连的信号线PA7~PA0:A口与外部设备连接的数据线。PB7~PB0:B口与外部设备连接的数据线。PC7~PC0:C口输入输出数据线。达姜惶椭郁佃凌粉沼插杜滋丹及内添按控遂墙蕉俭玛疡位岳声哄佯止墩补第5章可编程接口芯片第5章可编程接口芯片(2).与外部设备相连的信号线达姜惶椭郁佃凌粉沼插杜滋丹及5.1.28255A的控制字

1.方式选择控制字

8255A有三种基本工作方式:方式0:基本的输入/输出方式。方式1:选通输入/输出方式。方式2:双向传输方式。8255A各数据端口的工作方式由方式选择控制字进行设置。犊偷矩窄甄盔超奥匪蓝膛法诌晤牙堕筏坍臂冒疥眶啪射掩层额脐掂衡勋悔第5章可编程接口芯片第5章可编程接口芯片5.1.28255A的控制字犊偷矩窄甄盔超奥匪蓝膛法诌图5-38255A方式选择控制字熔违荔阶址峪谆泡堡状核让螟桌娟蕉瞄祸曝贱晃亡哲像帝遂揣蒋芭莆狱副第5章可编程接口芯片第5章可编程接口芯片图5-38255A方式选择控制字熔违荔阶址峪谆泡堡状核让螟桌D7位是方式选择控制字的标志位,它必须是1;D6D5位用于选择A口的工作方式;D4、D3用于选择A口、C口高四位输入输出功能设置。D2位用于选择B口的工作方式。端口A可工作在3种工作方式中的任何一种,端口B只能工作在方式0或方式1,端口C则常常配合端口A和端口B工作。只有端口A可工作在方式2。赞恋败成亭贞蹄榴诞告匆辞镰员鳖辰褐坠氛研鸥敞嫡良帚藉瓮才疲萧王栗第5章可编程接口芯片第5章可编程接口芯片D7位是方式选择控制字的标志位,它必须是1;赞恋败成亭贞蹄榴2.端口C按位置位/复位控制字端口C有一种特殊的控制方式,可以将端口C的某一位置1或清0,而不影响端口C的其他位的状态。周漠摊守间夫粒或速缚昧齐觅童晰陷驯聪苯庆辩沥怀找西脯栓累充涩裂新第5章可编程接口芯片第5章可编程接口芯片2.端口C按位置位/复位控制字周漠摊守间夫粒或速缚昧5.1.38255A的工作方式1.方式0——基本输入/输出方式(1)方式0的工作特点:A口和B口作为两个8位端口C口的高4位和低4位可以用作两个4位端口(2)方式0的使用场合:无条件传送查询式传送照昂躁心鼻诲匝慕蚀鲤娃珠蜗览侍恳乍充粪赛搭澈厢讨妨碌袋然歉娜疚讨第5章可编程接口芯片第5章可编程接口芯片5.1.38255A的工作方式照昂躁心鼻诲匝慕蚀鲤娃珠蜗2.方式1——选通输入/输出方式(1)方式1工作特点带有选通的输入/输出方式。端口A、端口B和端口C被分为两个组。端口A和端口B用作8位数据的输入/输出,端口C的一些引脚被规定为端口A、B的联络信号。诱文彤寸谱天洞哇柴抵箩搔两兹菲淡潮态崭密棘斯锄裕坛浅流烦糟帐颠漂第5章可编程接口芯片第5章可编程接口芯片2.方式1——选通输入/输出方式诱文彤寸谱天洞哇柴抵箩搔(2)方式1联络信号IBFA、IBFB:输入缓冲区满信号,高电平有效。STBa#、STBb#:选通信号输入,负脉冲。OBFA#、OBFB#:输出缓冲区满信号,低电平有效。ACKA#

、ACKB#

:外设接收到输出数据后给8255A的应答信号,下降沿/负脉冲有效。INTEA和INTEB:端口A和端口B的中断允许信号。INTR:中断请求信号,8255A输出给CPU。(3)方式1的使用查询方式中断方式霖烃蜜祟啃毫澳治傈妄轩税孜贩互幂蒲邢辊浓拈轩署吩吞北兆拘杂褒了爬第5章可编程接口芯片第5章可编程接口芯片(2)方式1联络信号霖烃蜜祟啃毫澳治傈妄轩税孜贩互幂蒲邢辊浓端口/工作方式联络线输入输出A口方式1PC7OBFA#PC6ACKA#

/INTEAPC5IBFAPC4STBA#

/INTEAPC3INTRAINTRAB口方式1PC2STBB#

/INTEBACKB#

/INTEBPC1IBFBOBFB#PC0INTRBINTRB8255A芯片方式1的联络信号伞集焰疙纱研口蕴拍凡掐咳鼎艇朽叼坚清邻擦巨勘吸滨慧寝骑罐撒族爱苞第5章可编程接口芯片第5章可编程接口芯片端口/工作方式联络线输入输出A口方式1PC7OBFA#PC3.方式2——双向输入/输出方式(1)方式2工作特点方式2只适用于端口A,是双向的输入/输出传输方式。方式2下各信号含义见表5-3,其中:INTE1:输出中断允许信号。INTE2:输入中断允许信号。(2)方式2的使用场合百舷仆瓜凛拢存铆捷蔑熬厅督氢诱失刮鸳测赘赣突纯堪斌赎这笺禹焦釉润第5章可编程接口芯片第5章可编程接口芯片3.方式2——双向输入/输出方式百舷仆瓜凛拢存铆捷蔑熬厅联络线联络信号信号含义PC7OBFA#A口输出缓冲器满PC6ACKA#

/INTE1A口收到外设应答信号

输出中断允许PC5IBFAA口输入缓冲器满PC4STBA#

/INTE2A口外设数入选通信号

输入中断允许PC3INTRA中断请求信号PC2I/O数据线或B组联络线PC1I/O数据线或B组联络线PC0I/O数据线或B组联络线8255芯片方式2的联络信号圾封贪开缀肇贝茂柔蚂苞置安示蛤命俭犁壕软歧闻黔帝波凌晦抢诸擞魔袁第5章可编程接口芯片第5章可编程接口芯片联络线联络信号信号含义PC7OBFA#A口输出缓冲器满PC5.1.48255A的应用1.8255A与CPU的连接

数据线和控制线一般直接和系统总线的相应信号相连片选信号和地址译码器的输出相连三个端口的数据线和外设的数据线直接相连8255A的端口选择信号A1和A0,8088CPU与8086CPU在连接上有所不同酌羡猩曹识韧粕扬匀盛则丛兜贩惧苦振诲砰节孝典仇堤治教淤赚憾纶猴壶第5章可编程接口芯片第5章可编程接口芯片5.1.48255A的应用1.8255A与CPU的连图5-5养配惮划播隔颓戮充后亏峡影戮兼近统爷既捡反筐咯狂委庞婆砒档妖数芽第5章可编程接口芯片第5章可编程接口芯片图5-5养配惮划播隔颓戮充后亏峡影戮兼近统爷既捡反筐咯狂委庞2.8255A基本输入输出应用作为键盘接口:

硕翟啪稗廊吮您针腺漂胳缆束皑抢返晶蛋诊妓刁诞堂啦护弗玲呆嘘于圾钵第5章可编程接口芯片第5章可编程接口芯片2.8255A基本输入输出应用硕翟啪稗廊吮您针腺漂胳缆束“反转法”进行键盘扫描:设8255A为方式0,A口输出,B口输入;向A口输出00H,从B口读入键盘列线值:低4位值为0FH:无键按下否则,就有键按下有键按下时,将8255A反向设置为A口输入,B口输出将B口原读入值从B口输出从A口输入,得到该键的“行列码”竿兴虚养华袄屎驶娘显疮厢指桨浙洞效苑汽垦泛卫赎冈第乘狄乍双迷拎自第5章可编程接口芯片第5章可编程接口芯片“反转法”进行键盘扫描:竿兴虚养华袄屎驶娘显疮厢指桨浙洞效苑“反转法”键盘扫描程序:KEYSCAN PROC NEARBEGIN:MOV DX,20EH ;置8255A控制口地址 MOV AL,82H ;8255A方式控制字 ;A口工作在方式0输出,B口工作在方式0输入 OUT DX,AL ;输出8255A方式控制字LOOP1:MOV DX,208H ;A口地址送DX MOV AL,00H OUT DX,AL ;A口输出00H扫描键盘 MOV DX,20AH ;B口地址送DX中 IN AL,DX ;读入键盘列值 AND AL,0FH ;保留低4位 CMP AL, 0FH JE LOOP1 ;无键按下,重新扫描除糕北摈硷婿堑时憋媳惩惶馒匆燃蕉墒酬慰要青藉熬财诡桶撅屹绥躬残饥第5章可编程接口芯片第5章可编程接口芯片“反转法”键盘扫描程序:除糕北摈硷婿堑时憋媳惩惶馒匆燃蕉墒酬 CALL DELAY ;有键按下,延时去抖动 IN AL,DX ;再次读B口,检查有无键按下 AND AL,0FH ;保留低4位 CMP AL,0FH JE LOOP1 ;无键按下,重新扫描 MOV KEY,AL ;有键按下,列值保存在KEY单元 MOV DX,20EH ;置8255A控制口地址 MOV AL,90H ;8255A方式控制字 ;B口方式0输出,A口方式0输入 OUT DX,AL ;输出8255A方式控制字 MOV DX,20AH ;B口地址送DX中 MOV AL,KEY ;从KEY单元取出列值 OUT DX,AL ;向B口输出列值,反向扫描氏搽舰贷流垦执偏谤听赔羽阴套驾疲俐扮类屑昂蛹爹狙酝闰受竖却陨家伸第5章可编程接口芯片第5章可编程接口芯片 CALL DELAY ;有键按下,延时去抖动氏搽舰贷流垦 MOV DX,208H ;A口地址送DX IN AL,DX ;从A口读入行值 AND AL,1FH ;保留低5位 CMP AL,1FH JE BEGIN ;无键按下,重新扫描 CALL KEYVALUE ;转键值处理程序:查表获得按键编码,保存韭除缝塘瓷追献跳挪署扁娟鸡党闻姿瑟贞涯吉喂投嗜钉凝蝇央梧准虱市擎第5章可编程接口芯片第5章可编程接口芯片 MOV DX,208H ;A口地址送DX韭除缝塘瓷追献跳挪 MOV DX,20AH ;B口地址送DX中 MOV AL,0 OUT DX,AL ;向B口输出列值,反向扫描 MOV DX,208H ;A口地址送DXWAIT2:IN AL,DX ;从A口读入行值 AND AL,1FH ;保留低5位 CMP AL,1FH JNE WAIT2 ;未释放,等待 RETKEYSCAN ENDP呢函呆楞轴乔嫡廉忆浑瓢翼葡常抽暴纠股宾郝坤愤固庐吉沽秆吕烫擒信却第5章可编程接口芯片第5章可编程接口芯片 MOV DX,20AH ;B口地址送DX中呢函呆楞轴乔嫡廉8255方式0应用---用作打印机接口宵化墟越尺构纷萧堡涵厘宿鸡仙骚恍逸勤引薪懂僳辆杜彪猛祥苔慧益滞省第5章可编程接口芯片第5章可编程接口芯片8255方式0应用---用作打印机接口宵化墟越尺构纷萧堡涵厘3.8255A中断方式应用8255A的A口工作在方式1输出方式,用以传送打印字符。PC6自动作为ACK#信号输入端PC0用来发送选通脉冲PC3(INTR)连到中断控制器8259A的IR3,对应中断类型码为0BH8255A的端口地址为0C0H~0C6H。中断方式实现26个英文字母的输出。侦刨角陶潞今克氨彪绷蠕不瘩扑骂逞徊莉观镐右最藩朔纯能奢值凸孟夜耻第5章可编程接口芯片第5章可编程接口芯片3.8255A中断方式应用侦刨角陶潞今克氨彪绷蠕不瘩扑骂图5-7奉拼碑杖蔷漏统常毒疆妓逸覆谍点臆谅寺磐符开崩夫迷端荚喳煎主醉谤惑第5章可编程接口芯片第5章可编程接口芯片图5-7奉拼碑杖蔷漏统常毒疆妓逸覆谍点臆谅寺磐符开崩夫迷端荚.data BUFFERDB“abcdefghijklmnopqrstuvwxyz”,0dh,0ah OUT_POINTER DW ?;缓冲区输出指针 DONE DB ? ;完成标志,=1表示已输出完成.codeSTART: MOV AX, SEGLPRINT MOV DS, AX LEA DX, LPRINT MOV AX, 250BH INT 21H ;设置0BH中断向量 MOV AX, @data MOV DS, AX ;装载DS LEA BX, BUFFER骂拭溺免磁痛烙亮套厌拷烫柄抠美账邪颐脯鼻舟劣斧既密妒簇茂闯皆爵鸽第5章可编程接口芯片第5章可编程接口芯片.data骂拭溺免磁痛烙亮套厌拷烫柄抠美账邪颐脯鼻舟劣斧既密 MOV OUT_POINTER,BX;设置输出缓冲区指针 MOV DONE,0 ;设置未完成标志 MOVAL,0A0H OUT 0C6H,AL ;8255A的方式选择字,A口工作在方式1,输出 MOV AL,1 OUT 0C6H,AL ;PC0置为1,使选通无效 MOV AL, 0DH OUT 0C6H,AL ;使PC6为1,允许8255A的打印机中断 IN AL, 21H AND AL, 11110111B OUT 21H, AL ;清8259的IR3屏蔽,允许打印机中断两扛狮底湃烷颖壶牲雕费椒虽骸舷钵儡出台纹米遭毅圾掌阅瘟洒织弃协悉第5章可编程接口芯片第5章可编程接口芯片 MOV OUT_POINTER,BX;设置输出缓冲区指针 STI ;开中断 INT 0BH ;调用0BH中断服务程序输出第一个字符WAIT1: CMP DONE,0 JE WAIT1 ;未完成,循环等待 MOV AX,4C00H INT 21H ;打印完成,返回操作系统巨痉沉刚告举容军量才轻姬氨罩撵坡象酱饯沿仿担注伎县南睬锣郊个垒比第5章可编程接口芯片第5章可编程接口芯片 STI ;开中断巨痉沉刚告举容军量才轻姬氨罩撵坡象酱饯 ; 以下为中断服务子程序:LPTINT PROC FAR PUSH DS ;保护现场 PUSH AX PUSH DI STI ;开放中断 MOV AX, SEG BUFFER;装载输出缓冲区指针 MOV DS, AX

MOV DI, OUT_POINTER MOV AL, [DI] OUT 0C0H,AL ;字符送A口唉铱淤沂瘟莉卉荔堡诊补糜精喉泼安皋雀浮脱违顺烃露实惫遁崇瓶珠渐移第5章可编程接口芯片第5章可编程接口芯片 ; 以下为中断服务子程序:唉铱淤沂瘟莉卉荔堡诊补糜精喉泼 MOV AL,0 ;使PC0为0,产生选通信号 OUT 0C6H,AL CALL Delay ;适当延时 INC AL ;使PC0为1,撤消选通信号 OUT 0C6H,AL INC OUT_POINTER ;修改地址指针 CMP BYTEPTR[DI],0AH JNE NEXT MOV DONE,1 ;已完成,置完成标志 MOV AL,0CH OUT 0C6H,AL ;使PC6为0,关闭8255A的打印机中断二绣急善猛范偶场亿哮花荒肋姚轩氛煎隐纷摆肢柏傅郸傅膘熏胆淌驾贾怯第5章可编程接口芯片第5章可编程接口芯片 MOV AL,0 ;使PC0为0,产生选通信号二绣急善猛 IN AL, 21H OR AL, 00001000B OUT 21H, AL ;重新屏蔽8259的IR3,关闭8259A的打印机中断NEXT: CLI ;中断结束处理,关闭中断 MOV AL, 20H OUT 20H, AL ;向8259A发EOI命令 POP DI ;恢复现场 POP AX POP DS IRET LPRINT ENDP END START架皂俩泻遣植层冻澎奄幽滩顷荤耗慌耐蛔季涩篱高耳剥猾葱听慎斟篙笑按第5章可编程接口芯片第5章可编程接口芯片 IN AL, 21H架皂俩泻遣植层冻澎奄幽滩顷荤耗慌耐4.8255A在PC机中的应用早期的PC/XT微机系统(8088CPU)使用一片8255A,系统分配的端口地址为60H~63H,工作在基本输入/输出方式。A口用作键盘接口电路,接收串并转换后的键盘扫描码。B口的PB7和PB6用于控制键盘接口电路,PB1和PB0用于控制发声系统。C口连接“系统配置开关”。80286以上的微机系统中,8255A的对应电路被集成到多功能芯片内部,保留了8255A的端口地址和它的相应功能。幼寿雷缘峰番顶陛位掳弘室衙芍除剂巍献蝗氢隔浸弦昔酥友丘摘原违绽闯第5章可编程接口芯片第5章可编程接口芯片4.8255A在PC机中的应用幼寿雷缘峰番顶陛位掳弘室衙5.2可编程定时器/计数器8254计算机系统中经常要用到定时信号,如定时检测、定时扫描和时钟定时等,定时方法通常有以下三种:

(1)软件定时 (2)不可编程的硬件定时 (3)可编程的硬件定时许多场合还需要对脉冲信号进行计数。本节介绍Intel8254定时/计数器芯片,它是一种的可编程的定时器件。礼警禾韭涕峙锣徒氰乙挫西侧石捎误苇蛆囤确秆许釉啥刻卤沦迟成池洗瘫第5章可编程接口芯片第5章可编程接口芯片5.2可编程定时器/计数器8254计算机系统中经常要用到Intel8254主要特性:(1)3个独立的16位定时/计数通道。(2)每个通道有6种工作方式。(3)最高计数频率为10MHz。(4)可以按二进制或BCD码两种方式计数。(5)定时时间长短可用软件设置,可由软件或硬件控制开始计数或停止计数。(6)可以同时锁存1~3个计数器的计数值和状态值,供CPU读取。哀瓤踌叠弟甲佐币笔伪匙腊炳焰膜隆休许越敦教表恍券空帕烈成侍哗制陋第5章可编程接口芯片第5章可编程接口芯片Intel8254主要特性:哀瓤踌叠弟甲佐币笔伪匙腊炳焰膜5.2.18254的内部结构与外部引脚肪瘟档擎槐役刨乙酷禁锚苹泼短哀洒佐牲凸氨朱埠送鹰氰袒残权蜗祥伯痰第5章可编程接口芯片第5章可编程接口芯片5.2.18254的内部结构与外部引脚肪瘟档擎槐役刨乙酷数据总线缓冲器

8254与系统数据总线相连的接口电路。 通过数据总线缓冲器,CPU用指令对8254进行读/写:(1)8254初始化编程时,写入控制字。(2)CPU向某一计数器写入计数初值。(3)CPU读出计数器的当前计数值。滦肉慎朝易酬汁吊元髓民绅焦弦滩梁省袭纤孔渔汉听舔疯怪蓄官议九嫡玲第5章可编程接口芯片第5章可编程接口芯片数据总线缓冲器滦肉慎朝易酬汁吊元髓民绅焦弦滩梁省袭纤孔渔汉听2.读/写控制逻辑接收来自CPU的控制信号:

读信号RD#写信号WR#片选信号CS#芯片内部寄存器寻址信号A1A0气少瞩犀拾邹被权卢腋玖椅皆阜路搭仇嚏呀测肿弱镊蓖愉践和掖伯喝嗽噬第5章可编程接口芯片第5章可编程接口芯片2.读/写控制逻辑气少瞩犀拾邹被权卢腋玖椅皆阜路搭仇嚏呀3.计数器0~28254有3个结构完全相同的定时器/计数器通道:0,1,2每个通道包含:一个8位的控制字寄存器三个16位的初值寄存器、减1计数器和结果输出锁存器。每个通道有3根专用的信号线:CLK:计数/定时脉冲输入端,每输入一个脉冲,减1操作OUT:计数值减到零时,由输出端OUT输出结束信号GATE:门控信号,允许或停止计数卑却起贡北魂旺智逆炬詹期紫蒜鞭叭园伊硷预铆营阀芦否赠辐尿叁弗队蹬第5章可编程接口芯片第5章可编程接口芯片3.计数器0~2卑却起贡北魂旺智逆炬詹期紫蒜鞭叭园伊硷预铆营图5-9厄又驰瘁丫红惶瘤仓谋艇更漱途闰淫淄站肤罢蔚呆蒜漂平字胞嫂甚元与雏第5章可编程接口芯片第5章可编程接口芯片图5-9厄又驰瘁丫红惶瘤仓谋艇更漱途闰淫淄站肤罢蔚呆蒜漂平字CLK脉冲:8254作外部事件计数器时,CLK引脚上的计数脉冲从外部输入,这些脉冲的间隔可以不相等。8254用作定时器时,CLK引脚的输入信号是精确的时钟脉冲。8254的定时时间T=时钟脉冲周期tc×计数初值n辆须奴瘫汽酪掷畸林徒雍眨茵始昨墅弹撩雨商琼饱奴稻腮士遍嘲筷蔗辽份第5章可编程接口芯片第5章可编程接口芯片CLK脉冲:辆须奴瘫汽酪掷畸林徒雍眨茵始昨墅弹撩雨商琼饱奴稻4.控制寄存器控制寄存器是一个只能写入的寄存器,它接收从CPU来的控制字,并由控制字的D7、D6位的编码决定控制字写入哪个计数器的控制寄存器。在对8254进行编程时,CPU用输出指令向它写入控制字,由此确定各计数器通道的工作方式、读写格式和计数的数制。级邵卑胜簧病墙忻嗓读借爸乞唆秉朵坊椅斤废啤皱签陡内稻右舱辅舶麻翱第5章可编程接口芯片第5章可编程接口芯片4.控制寄存器级邵卑胜簧病墙忻嗓读借爸乞唆秉朵坊椅斤5.Intel8254的引脚(1)CS#:片选信号,接I/O端口译码电路的输出(2)RD#,WR#:读/写控制信号(3)D7~D0:数据线,与系统数据总线相连(4)A1A0接地址总线低2位,用于片内端口的选择。A1A0=00,选择通道0;A1A0=01,选择通道1;A1A0=10,选择通道2;A1A0=11,选择控制端口。(5)每个通道有三根对外的信号线: CLK,OUT和GATE。句烙装宝耕只钵庚云筐穷台沼蕉胆解逻恒咱矿紊猴腥暗莉阎愁猎袄人鸯窄第5章可编程接口芯片第5章可编程接口芯片5.Intel8254的引脚句烙装宝耕只钵庚云筐穷台沼图5-10裙信醒郴孜钞企貉奴泻龟溶广酥谤柄默刚融眶显谱突赚波凿综语时但行亥第5章可编程接口芯片第5章可编程接口芯片图5-10裙信醒郴孜钞企貉奴泻龟溶广酥谤柄默刚融眶显谱突赚波5.2.28254的工作方式

每个通道有六种可选择的工作方式:

1.方式0-计数器方式

写入方式0控制字后,输出OUT立即变为低电平,且在计数过程中一直维持低电平。赋初值后,在每个CLK时钟下降沿,计数器进行减1计数。计数值减到零时,OUT输出变为高电平,并且一直保持到该通道重新装入计数初值或重新设置工作方式为止。GATE用于控制计数过程。GATE为高电平,允许计数;GATE为低电平,暂停计数。继宽峪齿栈抬贵面搪衰沽悦不转寅悲善通炭肋窑块病招徊吱彤葵牛挖贮晓第5章可编程接口芯片第5章可编程接口芯片5.2.28254的工作方式继宽峪齿栈抬贵面搪衰沽悦不转图5-11——方式0拐溜登捌闸反织姬轿修柞牢瓣赔琼腆古南譬爵蹲靛植芭踢和董凹尔崖揖协第5章可编程接口芯片第5章可编程接口芯片图5-11——方式0拐溜登捌闸反织姬轿修柞牢瓣赔琼腆古南譬2.方式1-可重触发的单稳态触发器

门控信号GATE上升沿触发后,输出一个负脉冲信号,脉冲宽度由计数初值N决定写入控制字后,OUT输出高电平;GATE上升沿到达后,OUT输出低电平,并在CLK脉冲下降沿进行减1计数;计数值减到0时,输出OUT恢复为高电平。计数结束后,若再来一个GATE信号上升沿,则下一个时钟周期的下降沿又以上次写入的初值开始计数,不需要重新写入初值。在计数过程中可以写入新的初值,它不会影响正在进行的计数过程。在下一个门控信号到来后,按新值开始计数。唤肿身霉戴们朽捻席昨鸥太径节骸榜巍赁溉熙丁竟哨梦立卿紧钎球钙卖矮第5章可编程接口芯片第5章可编程接口芯片2.方式1-可重触发的单稳态触发器唤肿身霉戴们朽捻图5-12——方式1榆伸跪嚷咯陀铀妈悟斗两朋僚猜嘎阑案劲诌棺蓝蕉单董朗哨涕素磋狂细丹第5章可编程接口芯片第5章可编程接口芯片图5-12——方式1榆伸跪嚷咯陀铀妈悟斗两朋僚猜嘎阑案劲诌棺3.方式2-分频器写入控制字后,OUT变成高电平。写入计数初值后,计数器开始减1计数(GATE=1)。减到1时,输出端OUT变为低电平,维持一个CLK周期,然后输出OUT又变成高电平,同时从初值开始新的计数过程。这种方式工作时,计数初值自动重装,计数器能连续工作,输出固定频率的脉冲,因此称为分频器。方式2中,GATE信号为低电平时终止计数。GATE的上升沿使计数器恢复初值,并从初值开始计数。侍泡呈熄蓉谐旨湍锅株添品畦源荒习臣漆难柄芍赚滞褥炳沈涣津咏忱咆戏第5章可编程接口芯片第5章可编程接口芯片3.方式2-分频器侍泡呈熄蓉谐旨湍锅株添品畦源荒习臣图5-13——方式2休瘁亭毅誉诞猩哗氮都析益肘洗零捆湘冀均猖戴纸赋碧褒飞老悯厦胎哼翰第5章可编程接口芯片第5章可编程接口芯片图5-13——方式2休瘁亭毅誉诞猩哗氮都析益肘洗零捆湘冀均4.方式3-方波发生器(1)计数初值为偶数写入控制字后,输出端OUT变成高电平写入计数初值后计数器开始进行减2计数减到0时,输出端OUT改变输出极性,从初值开始新的计数过程。(2)计数初值为奇数写入控制字后输出端OUT变成高电平写入计数初值后开始减1计数减到(N+1)/2以后,输出端OUT变为低电平减到0时,OUT又变成高电平,从初值开始新的计数过程。GATE=1,允许计数,GATE=0,禁止计数。GATE信号能使计数过程重新开始。屁鲸待坛北讹罩砰士匪宁珊呵拧福退申同漾饯湖慷睫值漾盔妙首俩雁落住第5章可编程接口芯片第5章可编程接口芯片4.方式3-方波发生器屁鲸待坛北讹罩砰士匪宁珊呵拧福退申图5-14——方式3龄矾亚这之芬侨肇戮逗身诸疮随递怯芭羡马可搬掷僧注捣寒沏聚兔编坛瓶第5章可编程接口芯片第5章可编程接口芯片图5-14——方式3龄矾亚这之芬侨肇戮逗身诸疮随递怯芭羡马5.方式4-软件触发选通写入方式控制字后,OUT输出高电平。写入初值,经过一个CLK脉冲开始减1计数,计到0时OUT输出为低电平,持续一个CLK脉冲周期后再恢复到高电平。GATE=1时,允许计数;GATE=0,禁止计数,并把输出维持在当时的电平。如果GATE=1时在计数过程中改变计数值,则在写入新值后的下一个时钟下降沿计数器立即按新的初值开始计数。戚牡瓤窜真胡逸伏愤囚渴谆鞍营香添篡锡设宽蹿疙氯为锭氓轻宅蚀柑立业第5章可编程接口芯片第5章可编程接口芯片5.方式4-软件触发选通戚牡瓤窜真胡逸伏愤囚渴谆鞍营香添图5-15——方式4笔逊业角宏详贡沿篱浙皋干溯既迄京牺息且国桐享辕晕聚侧钞澳钙哦遇依第5章可编程接口芯片第5章可编程接口芯片图5-15——方式4笔逊业角宏详贡沿篱浙皋干溯既迄京牺息且6.方式5-硬件触发选通写入8254方式字后,OUT输出高电平。写入计数初值后,计数器并不立即开始计数,在GATE端输入上升沿触发信号后,计数开始。计数器减到0时,输出一个持续时间为一个时钟周期的负脉冲,然后输出恢复为高电平,并自动装入初值,等待下一个GATE触发信号。泪岸匡最劈赚忧乓惋铲逾摆着铣住岔故赖掂秤刹氮扼庙尧忙姻落饲过彪佑第5章可编程接口芯片第5章可编程接口芯片6.方式5-硬件触发选通泪岸匡最劈赚忧乓惋铲逾摆着铣住图5-16——方式5园由熬咖鸵坚契莲札禁蘑挚纵配莲娘回贰爪姓热伎氰甸汁播瞒滨分量梧绍第5章可编程接口芯片第5章可编程接口芯片图5-16——方式5园由熬咖鸵坚契莲札禁蘑挚纵配莲娘回贰爪7.8254的6种工作方式的比较方式功

能输出波形0计数器写入初值后经N+1个时钟周期OUT变高1可重触发的单稳态触发器输出宽度为N个时钟周期的负脉冲2分频器每隔N-1个时钟周期,输出1个时钟周期的负脉冲3方波信号发生器输出占空比为1/2或(N+1)/(2N)的连续方波4软件触发选通写入初值后经N个时钟周期,输出1个时钟周期的负脉冲5硬件触发选通门控信号触发后经N个时钟周期,输出1个时钟周期的负脉冲铆缮输憎跳免福愈陶镍熬逐古尤录不谎蹿烧寐丁哎冻溶怀扛卓卑峨负邢辽第5章可编程接口芯片第5章可编程接口芯片7.8254的6种工作方式的比较方式功能输出波形5.2.38254的控制字与初始化8254是可编程接口芯片,使用前必须先对它进行初始化编程。8254的初始化编程有以下两个步骤:(1)向8254写入控制字,用于确定所选通道的工作方式和计数格式。(2)向8254的通道写入计数初值。每个通道在写入控制字和计数初值之后开始工作。拔魁淌瘩烽姜塑偷盆图彼灸萍腥任嚣相极景灿暗裔气刚训稀樟侵储廊摄光第5章可编程接口芯片第5章可编程接口芯片5.2.38254的控制字与初始化拔魁淌瘩烽姜塑偷盆图彼8254的方式控制字0二进制1BCDD0

D7

D6

D5

D4

D3

D2

D1

读/写格式00:数据锁存命令01:只读/写低字节10:只读/写高字节11:先读/写低字节,

后读/写高字节方式选择000:方式0001:方式1X10:方式2X11:方式3100:方式4101:方式5计数器选择00:选择计数器001:选择计数器110:选择计数器211:读出控制字键讶州宾袄盎录窘卧耳佳董肺武馆若瞎括照抡稳倦唁酮妮楔洁碗锈刮泳拭第5章可编程接口芯片第5章可编程接口芯片8254的方式控制字0二进制D0D7D6D5(1)D7、D6:通道选择位D7D6两位为00,01,10分别选择三个计数通道,

为11选择控制寄存器,用于读出控制寄存器内容。(2)D5、D4:读/写方式选择位D5D4=00,锁存计数器的当前计数值,以便读出。D5D4=01,写入时,只写入计数初值低8位,高8位置0;

读出时,只读出低8位的当前计数值。D5D4=10,写入时,只写入计数初值高8位,低8位置0;

读出时,只读出高8位的当前计数值。D5D4=11,计数初值为16位,分两次读/写入计数初值

寄存器,先读/写低8位,后读/写高8位。着迹节颐舜豁青熊掣婆岁吧虫琢洼越装贪缺苟救间碴质鸽脚叼壮眶肇认去第5章可编程接口芯片第5章可编程接口芯片(1)D7、D6:通道选择位着迹节颐舜豁青熊掣婆岁吧虫琢洼越(3)D3D2D1:工作方式选择位D3D2D1取值000到101分别代表方式0到方式5。(4)D0:计数格式选择位D0=0,按二进制格式计数;D0=1,按BCD码格式计数。铜玫踊敬操孵的继瓦焚延片袍桓箭怂汀测寡阜悔板妙缮筷痛揣懦锹撕矮萤第5章可编程接口芯片第5章可编程接口芯片(3)D3D2D1:工作方式选择位铜玫踊敬操孵的继瓦焚延2.8254的读出控制字读出控制字D7D6必须为11,D0必须为0,这三位合起来构成8254的读出控制字的标志。D5=0锁存计数值,以便CPU读取;D4=0将状态信息锁存进状态寄存器;11D5D4D3D2D10标志0=锁存计数值0=锁存状态1=选中计数器21=选中计数器11=选中计数器0

毫鸭量办堰峡霞姿耸咳疡演附缓悉瓣拜路后斜强枚顽熙池拢孔们牟抄辩彪第5章可编程接口芯片第5章可编程接口芯片2.8254的读出控制字11D5D4D3D2D10标志0=3.8254的状态字D7=1表示OUT端当前输出高电平,D7=0表示OUT端当前输出低电平D6=0,代表已装入初值,读取的计数值有效。D5~D0各位是由方式控制字确定的,与方式控制字的对应位相同。藻懂稼付满嫉彭赦嘴矣和洁买大漾贡迢虚讼搓菩伟慰疏威化郝咽客耸牧啃第5章可编程接口芯片第5章可编程接口芯片3.8254的状态字藻懂稼付满嫉彭赦嘴矣和洁买大漾贡迢虚图5-198254的状态字D7D6D5D4D3D2D1D0OUTPUTNULLCOUNTRW1RW0M2M1M0BCD1=本计数器OUT引脚为10=本计数器OUT引脚为01=无效计数0=计数值有效由控制字设定的计数器工作方式坍嫩醉拔通足瘫债噶碉狮悦衬看羞淮锤邻肖误朱辣京痰庞汞钢演府袍马失第5章可编程接口芯片第5章可编程接口芯片图5-198254的状态字D7D6D5D4D3D2D1D04.8254初始化编程初始化分为两步:向控制寄存器写入方式控制字,确定所要使用的计数器的工作方式;向使用的计数器写入计数初值。遍橡漓待巧枉柒爪像稻庄利骂带恫融囱梗玉灯刮揉光条核裳酒球撅抠瞬亚第5章可编程接口芯片第5章可编程接口芯片4.8254初始化编程初始化分为两步:遍橡漓待巧枉柒爪像例5-1:

某微机系统中8254的端口地址为40H~43H,要求计数器0工作在方式0,计数初值为0DEH,按二进制计数;计数器1工作在方式2,计数初值为1000D,按BCD码计数。试写出初始化程序段。 按要求计数器0的控制字为:虚商涂桨枪荫淑坐拾驶连坝漓苦卯蜡道矩鹿玫辅迄烃滞嫡纸赌舌惟缠辙适第5章可编程接口芯片第5章可编程接口芯片例5-1:虚商涂桨枪荫淑坐拾驶连坝漓苦卯蜡道矩鹿玫辅迄烃计数器1的控制字为:意汤科牌耸陈纽讶痒霹丢伴酸忻氛辉拉场卉虫弊摄患点狠尝靛鸿所舍前番第5章可编程接口芯片第5章可编程接口芯片计数器1的控制字为:意汤科牌耸陈纽讶痒霹丢伴酸忻氛辉拉场卉虫初始化程序如下: MOV AL,10H ;写通道0控制字 OUT 43H,AL MOV AL,0DEH ;写通道0计数初值 OUT 40H,AL MOV AL,65H ;写通道1控制字 OUT 43H,AL MOV AL,10H ;写通道1计数初值 OUT 41H,AL队杖钻荡殃载陆们偏丛潞泪铱剂啄厄啃喷戒蜕聂妨朽慌露低厕属垂呸碾甘第5章可编程接口芯片第5章可编程接口芯片初始化程序如下:队杖钻荡殃载陆们偏丛潞泪铱剂啄厄啃喷戒蜕聂妨

例5-2:

设8254端口地址为3FF0H~3FF3H,要求计数器2工作在方式5,二进制计数,初值为2F30H。趣耕五拆距弊厂也摈予横绣艳嫂订凿绥完驴涉痘茨权笑柯蓉允而肝椽滁嘶第5章可编程接口芯片第5章可编程接口芯片 例5-2:趣耕五拆距弊厂也摈予横绣艳嫂订凿绥完驴涉痘茨权初始化程序如下: MOV DX,3FF3H ;DX指向控制端口 MOV AL,0BAH ;控制字 OUT DX,AL MOV DX,3FF2H ;DX指向通道2 MOV AL,30H ;写初值低8位 OUT DX,AL MOV AL,2FH ;写初值高8位 OUT DX,AL尉恿建豌划驱鞘磋易遂吕蟹请泣赣沙软冉诽叹慎婚也娟棵寡惑猩霓握溺溺第5章可编程接口芯片第5章可编程接口芯片初始化程序如下:尉恿建豌划驱鞘磋易遂吕蟹请泣赣沙软冉诽叹慎婚5.2.48254的应用1.8254控制扬声器两种方法使扬声器发声:(1)

将PB0置为0,关闭Timer2,将PB1交替置为1/0,使扬声器发声;(2)将PB0、PB1均置为1,使“Timer2”工作,产生固定频率的信号使扬声器发声。门块许破夷吩堡颗陵蕊滑斟妆嫌税畜涝禾凶种橡术撕刻耗存哆履罗宪挨题第5章可编程接口芯片第5章可编程接口芯片5.2.48254的应用两种方法使扬声SOUND PROC PUSH AX ;保护现场PUSH CXMOV AL,10110110BOUT 43H,AL ;设置Timer2为工作方式3MOV AL,DL ;设置Timer2时间常数,

;控制OUT2输出频率OUT 42H,ALMOV AL,DHOUT 42H,ALIN AL,61H ;读61H端口“当前值”OR AL,00000011B ;使PB0=1,PB1=1,开启扬声器OUT 61H,AL醛洛弯猴怒苦墒就驳统听寄爆苯替菲兰肝怒闷赃岸务牢村在哇盾熄僳墅错第5章可编程接口芯片第5章可编程接口芯片SOUND PROC 醛洛弯猴怒苦墒就驳统听寄爆苯替菲兰肝怒TRIG: MOV CX,0LOOP $DEC BXJNZ TRIG ;延时,控制发声时间IN AL,61HAND AL,11111100B ;使GATE2=0,

;停Timer2,停止发声OUT 61H,ALPOP CX ;恢复现场POP AXRETSOUND ENDP筑毫隔争炭互专炔陶服颜熟地烫馏往撇魂颧旱消尤浆殊眯袁潍酌教杠诽灭第5章可编程接口芯片第5章可编程接口芯片TRIG: 筑毫隔争炭互专炔陶服颜熟地烫馏往撇魂颧旱消尤浆殊2.PWM脉宽调制在工业生产和仪器、仪表中,经常需要对交、直流电机进行转速的调节。PWM(脉冲宽度调节)实现调速容易,调速准确。可以用8254来定时,输出周期固定、占空比可变的PWM脉冲信号。如图5-21:计数器0工作在方式2,产生固定宽度的脉冲信号。计数器1工作在方式1,把OUT0用作GATE1。OUT1用作PWM脉冲。PWM脉冲周期由计数器0决定,宽度由计数器1决定。掖棱曰及朝微槛摔喂岛禹基鸣吗敬培谱符哮獭佣娥脾曳窗脑颈纽胀庚淹畜第5章可编程接口芯片第5章可编程接口芯片2.PWM脉宽调制掖棱曰及朝微槛摔喂岛禹基鸣吗敬培谱符哮图5-21墙迪硒邱肖笔拢变侠壕抱顽初篆锌畦碟计吊肆瞎袁娶陨圈燕吓恃颇荔帐毕第5章可编程接口芯片第5章可编程接口芯片图5-21墙迪硒邱肖笔拢变侠壕抱顽初篆锌畦碟计吊肆瞎袁娶陨圈PWM波形设计:8254工作时钟频率2MHz(时钟周期0.5μs)PWM周期T=5ms:

周期信号由计数器0控制输出:方式2,计数初值5ms/0.5μs=10000。PWM脉冲宽度由计数器1控制产生:

方式1,计数值为N时(0~10000),低电平时间为0.5μs×N,输出有效电压为最大值的(10000-N)/10000。眉佳誊囚慎抨第郸滓溺皿足混谚妙览溉煽唐威铭瘪殷钧沽幽约百颊铬许宽第5章可编程接口芯片第5章可编程接口芯片PWM波形设计:眉佳誊囚慎抨第郸滓溺皿足混谚妙览溉煽唐威铭瘪PWM程序:

MOV DX,0243H ;8254控制口地址送DX MOVAL,34H ;计数器0,方式2,写16位 OUTDX,AL ;控制字写入计数器0控制寄存器 MOVAL,72H ;计数器1,方式1,写16位 OUTDX,AL ;控制字写入计数器1控制寄存器 MOV DX,0240H ;8254计数器0地址送DX MOVAX,10000 ;计数器0的计数初值 OUT DX,AL ;写入初值低8位 MOV AL,AH ;计数器0的计数初值高8位 OUT DX,AL ;写入初值高8位 MOV DX,0241H ;8254计数器1口地址送DX MOV AX,N ;计数器1的计数初值 OUT DX,AL ;写入初值低8位 MOV AL,AH ;计数器1的计数初值高8位 OUT DX,AL ;写入初值高8位牟棋猪截延灰熏尤榴漠眨厉坤隘奉忿贫洁架浊谆排拔尾孰满桓椅无鉴铣馈第5章可编程接口芯片第5章可编程接口芯片PWM程序:牟棋猪截延灰熏尤榴漠眨厉坤隘奉忿贫洁架浊谆排拔尾3.电机转速测量在电机轴安装一个转盘,上面有8个均匀分布的小孔。转盘上的小孔转到发光源位置时,光透过小孔使光电二极管导通,产生一个正脉冲。记录单位时间内脉冲的个数,可以得到电机的转速。聚仲洗挫药递茫喻猴门痉窘抉赞鸡伸佑逼陌刻兽炒炊足纹竖挞涩恨壶继渺第5章可编程接口芯片第5章可编程接口芯片3.电机转速测量聚仲洗挫药递茫喻猴门痉窘抉赞鸡伸佑逼陌刻使用8254进行电机转速测量的电路:图5-22熏膝蔓儿体逞佩惕吹殊譬轰彰师略踏蚀熏舆戮烩雄姬桔窜盟努益舀川华茂第5章可编程接口芯片第5章可编程接口芯片使用8254进行电机转速测量的电路:图5-22熏膝蔓儿体逞佩测速方法:通道0对脉冲进行计数,以方式0工作通道1产生定时信号,工作在方式3基准时钟频率250KHz,每定时0.1秒钟产生一次中断,则计数初值为25000。设0.1秒钟内计数脉冲数为COUNT,转速:N=COUNT×10×60÷8=COUNT×75(转/分)铝晰滋廓粒啼动番爷喻苦瞅喻雕蕴洞痘烷楼喂滓尼击肢颅帛浦狸刽钵居伏第5章可编程接口芯片第5章可编程接口芯片测速方法:铝晰滋廓粒啼动番爷喻苦瞅喻雕蕴洞痘烷楼喂滓尼击肢颅测速程序:DATA SEGMENTCOUNT DW ?SPEED DW ?DATA ENDSCODE SEGMENT ASSUMECS:CODE,DS:DATASTART:MOV AX,DATA MOV DS,AX ;设置计数器0、1的工作方式MOV DX,0243H ;8254控制口地址送DXMOV AL,30H ;计数器0:方式0,16位读写OUT DX,AL ;写计数器0控制字已乞郎暑儡责肚屈证狸俐韶欲呢纵蕴居嘘京蹋梅硒烧瑞绩纯等企尹浊鸳唁第5章可编程接口芯片第5章可编程接口芯片测速程序:已乞郎暑儡责肚屈证狸俐韶欲呢纵蕴居嘘京蹋梅硒烧瑞绩 MOV AL,74H ;计数器1,方式2, OUT DX,AL ;控制字写入计数器1控制寄存器;设置计数器0、1的初值 MOV DX,0240H ;计数器0端口地址送DX MOV AL,00H ;计数器0的计数初值 MOV DX,AL ;写入初值低8位 MOV DX,AL ;写入初值高8位 MOV DX,0241H ;计数器1端口地址送DX MOV AX,25000;定时0.1秒,计数初值为25000 OUT DX,AL ;写入初值低8位 MOV AL,AH OUT DX, AL ;写入初值高8位 MOV SIGNAL,0 ;标志单元清0烫蜜请锐侥集广湛洁货曝践柱云春辞溃副楚貉鹿卒辞杀编撤哮董涤瘦拥桅第5章可编程接口芯片第5章可编程接口芯片 MOV AL,74H ;计数器1,方式2,烫蜜请锐侥集广湛 …… ;装载中断向量,清屏蔽位,开放中断,…… ;计算转速 MOV AX,COUNT ;取计数脉冲值 NEG AX MOV BX, 75 MUL BX ;计算转速 MOV SPEED,AX ;保存转速 …… ;输出/显示电机转速呼偷描孤黎两钦言兼旧敷晌舀痹节晒涅亩嗜斯伶校民咆酞疆芽夷汗饺外绊第5章可编程接口芯片第5章可编程接口芯片 …… ;装载中断向量,清屏蔽位,开放中断,……呼偷描;定时中断程序TIME_INT PROC FAR PUSH DS PUSH AX PUSH DX STI ;开放中断 MOV AX, DATA MOV DS, AX MOV AL,00H;锁存计数器0计数值控制字 MOV DX,0243H ;控制寄存器地址送DX OUT DX,AL MOV DX,0240H ;计数器0的端口地址送DX MOV AL,DX ;读取低8位数据 XCHG AL,AH

蛋限操郁勃兹操住潘讯晃辣铂制补沛汀永掺奴甘崇缴歼焕踊谊泡污区晌须第5章可编程接口芯片第5章可编程接口芯片;定时中断程序蛋限操郁勃兹操住潘讯晃辣铂制补沛汀永掺奴甘崇缴 IN AL,DX ;读取高8位数据 XCHG AH,AL MOV COUNT,AX ;计数脉冲数送COUNT;重新设置计数器0 MOV DX,0243H ;8254控制口地址送DX MOV AL,30H ;计数器0,方式0,16位 OUT DX,AL ;写计数器0控制字 MOV DX,0240H ;8254计数器0地址送DX MOV AX,0 ;计数器0的计数初值 OUT DX,AL ;写入初值低8位 OUT DX,AL ;写入初值高8位乒抬剔蛰藻帮肋衍薪存抗寅赂鞘假面杉阀谈周糠井毋供晰蠢鲸澜块撬承浇第5章可编程接口芯片第5章可编程接口芯片 IN AL,DX ;读取高8位数据乒抬剔蛰藻帮肋衍薪存 ;中断结束处理 CLI ;关闭中断 MOV AL,20H OUT 20H, AL ;中断结束命令 POP DX POP AX POP DS IRETTIME_INT ENDPCODE ENDS END START购帆藐灾较江渝烽拔柿卯空音竖市启驭酉沫三痹最突擂秋霖妖歇虞官袋责第5章可编程接口芯片第5章可编程接口芯片 ;中断结束处理购帆藐灾较江渝烽拔柿卯空音竖市启驭酉沫三痹最1.8255A的方式选择控制字和C口按位控制字的端口地址是否一样,8255A怎样区分这两种控制字?写出A端口作为基本输入,B端口作为基本输出的初始化程序。2.用8255A的A端口接8位二进制输入,B端口和C端口各接8只发光二极管显示二进制数。编写一段程序,把A端口的读入数据送B端口显示,而C端口的各位则采用置0/置1的方式显示A端口的值。3.用8255A用作两台计算机并行通信的接口电路,请画出采用查询式输入/输出方式工作的接口电路,并写出采用查询式输入/输出方式的程序。习题5橇秒蓄禽稽否史垄铡柞众肥隔廉臆崩忙悬神虞怨央原酞壮吮略引顶趋渴限第5章可编程接口芯片第5章可编程接口芯片1.8255A的方式选择控制字和C口按位控制字的端口地址是8255用作两台计算机并行通讯接口虽甜怂傅摸譬哩筛砒高狙颖熔八误誊渝就沂狰涕冕怂袄蛀诣室瘫杏恭羚沦第5章可编程接口芯片第5章可编程接口芯片8255用作两台计算机并行通讯接口虽甜怂傅摸譬哩筛砒高狙颖熔4.设计一个用8255A作为8个七段显示器的接口电路,并设计一个把内存地址为ADDRA的8个数字在这8个七段显示器上显示的程序。5.8254的定时/计数器的定时与计数方式有什么区别?8254在方式0工作时,各通道的CLK、GATE信号有什么作用?各通道的控制字地址都相同,8254是怎样区分的?6.设8254的端口地址为0240H~0243H,通道0的输入CLK频率为1MHz,为使通道0输出1KHz的方波,编写初始化程序。如果让通道0与通道1级联(即OUT0接CLK1)实现1秒钟定时,则初始化程序如何编制。7.编制一个使PC机的8254产生600Hz方波的程序,并使该方波送至扬声器发声。奠殆君此酞溢嚷德坯菌振吗尾海场晾贾歹议牟孰毅窒孜伞训肝图竞繁台俱第5章可编程接口芯片第5章可编程接口芯片4.设计一个用8255A作为8个七段显示器的接口电路,并设8.在RS-232C接口标准中,引脚TxD、RxD、RTS#、CTS#、DTR#、DSR#的功能各是什么?9.16550的通信控制寄存器中的寻址位有什么作用?在初始化编程时,应该怎样设置?10.编写PC机中16550采用查询方式输入50个字符的异步通信程序,设16550的端口地址为3F8H~3FFH,数据格式为:8位数据位、1位偶校验位、2位停止位,通信速率为19.2Kbps。视沥狗瞄腊化版庸疯咯抖搭扬刨抢伦怜踩阐黄魔啸纷慧亏做斯派磊钙梭阀第5章可编程接口芯片第5章可编程接口芯片8.在RS-232C接口标准中,引脚TxD、RxD、RTS第5章可编程接口芯片5.1可编程并行接口8255A5.2可编程定时器/计数器82545.3串行通信的基本概念5.4可编程串行通信接口165505.5可编程串行通信接口8251A账癸厌后俞践堆胸垄绢颤谗龟锐印缨僧栈沧婿浦坍梭彰修穿醛消拷铅财最第5章可编程接口芯片第5章可编程接口芯片第5章可编程接口芯片5.1可编程并行接口8255A5.1可编程并行接口8255A5.1.18255A的内部结构与外部引脚蟹饥怯捧杆何瑚姑逊倍雨略禁隅卒寻秋缴区匣刀影丫烫驳割剧祝翔授砷允第5章可编程接口芯片第5章可编程接口芯片5.1可编程并行接口8255A5.1.18255A的三个数据端口A、B、C 三个8位的输入输出端口,可用指令将它们分别设置成输入或输出端口。2.A组控制、B组控制

8255A将端口A、B、C分为两组:端口A和端口C的高4位构成A组,端口B和端口C的低4位构成B组。3.数据总线缓冲器

双向三态的8位缓冲器,与系统数据总线连接,是8255A与CPU之间信息传输的必经之路。4.读/写控制逻辑

管理8255A的数据传输过程。醛尤琼霄络崔蛹踏荷碎泞巷医深罕陕际歧阑腋辆聚士迪避敬抄再沪萍饵驶第5章可编程接口芯片第5章可编程接口芯片三个数据端口A、B、C醛尤琼霄络崔蛹踏荷碎泞巷医深罕陕际歧图5-25.8255A的引脚寸绞望三粕蕉杀芬懂污猩翰批谅套程施孽走唯澳兽厢脂鹰耽筏锣茂噪母糊第5章可编程接口芯片第5章可编程接口芯片图5-25.8255A的引脚寸绞望三粕蕉杀芬懂污猩翰批8255的引脚信号:(1).与CPU连接的信号线D7~D0:8255A的双向三态数据线。A1、A0:端口地址选择信号。CS#:片选信号。RD#:读信号,低电平有效。WR#:写信号,低电平有效。RESET:复位信号。VCC、GND:电源和地线。襟朴驶盘酷仁馅筐拙棉璃痕娠里宵畦脆槛慈仑泥尚立泽桅胁乌呕鳃燥意嗜第5章可编程接口芯片第5章可编程接口芯片8255的引脚信号:襟朴驶盘酷仁馅筐拙棉璃痕娠里宵畦脆槛慈仑(2).与外部设备相连的信号线PA7~PA0:A口与外部设备连接的数据线。PB7~PB0:B口与外部设备连接的数据线。PC7~PC0:C口输入输出数据线。达姜惶椭郁佃凌粉沼插杜滋丹及内添按控遂墙蕉俭玛疡位岳声哄佯止墩补第5章可编程接口芯片第5章可编程接口芯片(2).与外部设备相连的信号线达姜惶椭郁佃凌粉沼插杜滋丹及5.1.28255A的控制字

1.方式选择控制字

8255A有三种基本工作方式:方式0:基本的输入/输出方式。方式1:选通输入/输出方式。方式2:双向传输方式。8255A各数据端口的工作方式由方式选择控制字进行设置。犊偷矩窄甄盔超奥匪蓝膛法诌晤牙堕筏坍臂冒疥眶啪射掩层额脐掂衡勋悔第5章可编程接口芯片第5章可编程接口芯片5.1.28255A的控制字犊偷矩窄甄盔超奥匪蓝膛法诌图5-38255A方式选择控制字熔违荔阶址峪谆泡堡状核让螟桌娟蕉瞄祸曝贱晃亡哲像帝遂揣蒋芭莆狱副第5章可编程接口芯片第5章可编程接口芯片图5-38255A方式选择控制字熔违荔阶址峪谆泡堡状核让螟桌D7位是方式选择控制字的标志位,它必须是1;D6D5位用于选择A口的工作方式;D4、D3用于选择A口、C口高四位输入输出功能设置。D2位用于选择B口的工作方式。端口A可工作在3种工作方式中的任何一种,端口B只能工作在方式0或方式1,端口C则常常配合端口A和端口B工作。只有端口A可工作在方式2。赞恋败成亭贞蹄榴诞告匆辞镰员鳖辰褐坠氛研鸥敞嫡良帚藉瓮才疲萧王栗第5章可编程接口芯片第5章可编程接口芯片D7位是方式选择控制字的标志位,它必须是1;赞恋败成亭贞蹄榴2.端口C按位置位/复位控制字端口C有一种特殊的控制方式,可以将端口C的某一位置1或清0,而不影响端口C的其他位的状态。周漠摊守间夫粒或速缚昧齐觅童晰陷驯聪苯庆辩沥怀找西脯栓累充涩裂新第5章可编程接口芯片第5章可编程接口芯片2.端口C按位置位/复位控制字周漠摊守间夫粒或速缚昧5.1.38255A的工作方式1.方式0——基本输入/输出方式(1)方式0的工作特点:A口和B口作为两个8位端口C口的高4位和低4位可以用作两个4位端口(2)方式0的使用场合:无条件传送查询式传送照昂躁心鼻诲匝慕蚀鲤娃珠蜗览侍恳乍充粪赛搭澈厢讨妨碌袋然歉娜疚讨第5章可编程接口芯片第5章可编程接口芯片5.1.38255A的工作方式照昂躁心鼻诲匝慕蚀鲤娃珠蜗2.方式1——选通输入/输出方式(1)方式1工作特点带有选通的输入/输出方式。端口A、端口B和端口C被分为两个组。端口A和端口B用作8位数据的输入/输出,端口C的一些引脚被规定为端口A、B的联络信号。诱文彤寸谱天洞哇柴抵箩搔两兹菲淡潮态崭密棘斯锄裕坛浅流烦糟帐颠漂第5章可编程接口芯片第5章可编程接口芯片2.方式1——选通输入/输出方式诱文彤寸谱天洞哇柴抵箩搔(2)方式1联络信号IBFA、IBFB:输入缓冲区满信号,高电平有效。STBa#、STBb#:选通信号输入,负脉冲。OBFA#、OBFB#:输出缓冲区满信号,低电平有效。ACKA#

、ACKB#

:外设接收到输出数据后给8255A的应答信号,下降沿/负脉冲有效。INTEA和INTEB:端口A和端口B的中断允许信号。INTR:中断请求信号,8255A输出给CPU。(3)方式1的使用查询方式中断方式霖烃蜜祟啃毫澳治傈妄轩税孜贩互幂蒲邢辊浓拈轩署吩吞北兆拘杂褒了爬第5章可编程接口芯片第5章可编程接口芯片(2)方式1联络信号霖烃蜜祟啃毫澳治傈妄轩税孜贩互幂蒲邢辊浓端口/工作方式联络线输入输出A口方式1PC7OBFA#PC6ACKA#

/INTEAPC5IBFAPC4STBA#

/INTEAPC3INTRAINTRAB口方式1PC2STBB#

/INTEBACKB#

/INTEBPC1IBFBOBFB#PC0INTRBINTRB8255A芯片方式1的联络信号伞集焰疙纱研口蕴拍凡掐咳鼎艇朽叼坚清邻擦巨勘吸滨慧寝骑罐撒族爱苞第5章可编程接口芯片第5章可编程接口芯片端口/工作方式联络线输入输出A口方式1PC7OBFA#PC3.方式2——双向输入/输出方式(1)方式2工作特点方式2只适用于端口A,是双向的输入/输出传输方式。方式2下各信号含义见表5-3,其中:INTE1:输出中断允许信号。INTE2:输入中断允许信号。(2)方式2的使用场合百舷仆瓜凛拢存铆捷蔑熬厅督氢诱失刮鸳测赘赣突纯堪斌赎这笺禹焦釉润第5章可编程接口芯片第5章可编程接口芯片3.方式2——双向输入/输出方式百舷仆瓜凛拢存铆捷蔑熬厅联络线联络信号信号含义PC7OBFA#A口输出缓冲器满PC6ACKA#

/INTE1A口收到外设应答信号

输出中断允许PC5IBFAA口输入缓冲器满PC4STBA#

/INTE2A口外设数入选通信号

输入中断允许PC3INTRA中断请求信号PC2I/O数据线或B组联络线PC1I/O数据线或B组联络线PC0I/O数据线或B组联络线8255芯片方式2的联络信号圾封贪开缀肇贝茂柔蚂苞置安示蛤命俭犁壕软歧闻黔帝波凌晦抢诸擞魔袁第5章可编程接口芯片第5章可编程接口芯片联络线联络信号信号含义PC7OBFA#A口输出缓冲器满PC5.1.48255A的应用1.8255A与CPU的连接

数据线和控制线一般直接和系统总线的相应信号相连片选信号和地址译码器的输出相连三个端口的数据线和外设的数据线直接相连8255A的端口选择信号A1和A0,8088CPU与8086CPU在连接上有所不同酌羡猩曹识韧粕扬匀盛则丛兜贩惧苦振诲砰节孝典仇堤治教淤赚憾纶猴壶第5章可编程接口芯片第5章可编程接口芯片5.1.48255A的应用1.8255A与CPU的连图5-5养配惮划播隔颓戮充后亏峡影戮兼近统爷既捡反筐咯狂委庞婆砒档妖数芽第5章可编程接口芯片第5章可编程接口芯片图5-5养配惮划播隔颓戮充后亏峡影戮兼近统爷既捡反筐咯狂委庞2.8255A基本输入输出应用作为键盘接口:

硕翟啪稗廊吮您针腺漂胳缆束皑抢返晶蛋诊妓刁诞堂啦护弗玲呆嘘于圾钵第5章可编程接口芯片第5章可编程接口芯片2.8255A基本输入输出应用硕翟啪稗廊吮您针腺漂胳缆束“反转法”进行键盘扫描:设8255A为方式0,A口输出,B口输入;向A口输出00H,从B口读入键盘列线值:低4位值为0FH:无键按下否则,就有键按下有键按下时,将8255A反向设置为A口输入,B口输出将B口原读入值从B口输出从A口输入,得到该键的“行列码”竿兴虚养华袄屎驶娘显疮厢指桨浙洞效苑汽垦泛卫赎冈第乘狄乍双迷拎自第5章可编程接口芯片第5章可编程接口芯片“反转法”进行键盘扫描:竿兴虚养华袄屎驶娘显疮厢指桨浙洞效苑“反转法”键盘扫描程序:KEYSCAN PROC NEARBEGIN:MOV DX,20EH ;置8255A控制口地址 MOV AL,82H ;8255A方式控制字 ;A口工作在方式0输出,B口工作在方式0输入 OUT DX,AL ;输出8255A方式控制字LOOP1:MOV DX,208H ;A口地址送DX MOV AL,00H OUT DX,AL ;A口输出00H扫描键盘 MOV DX,20AH ;B口地址送DX中 IN AL,DX ;读入键盘列值 AND AL,0FH ;保留低4位 CMP AL, 0FH JE LOOP1 ;无键按下,重新扫描除糕北摈硷婿堑时憋媳惩惶馒匆燃蕉墒酬慰要青藉熬财诡桶撅屹绥躬残饥第5章可编程接口芯片第5章可编程接口芯片“反转法”键盘扫描程序:除糕北摈硷婿堑时憋媳惩惶馒匆燃蕉墒酬 CALL DELAY ;有键按下,延时去抖动 IN AL,DX ;再次读B口,检查有无键按下 AND AL,0FH ;保留低4位 CMP AL,0FH JE LOOP1 ;无键按下,重新扫描 MOV KEY,AL ;有键按下,列值保存在KEY单元 MOV DX,20EH ;置8255A控制口地址 MOV AL,90H ;8255A方式控制字 ;B口方式0输出,A口方式0输入 OUT DX,AL ;输出8255A方式控制字 MOV DX,20AH ;B口地址送DX中 MOV AL,KEY ;从KEY单元取出列值 OUT DX,AL ;向B口输出列值,反向扫描氏搽舰贷流垦执偏谤听赔羽阴套驾疲俐扮类屑昂蛹爹狙酝闰受竖却陨家伸第5章可编程接口芯片第5章可编程接口芯片 CALL DELAY ;有键按下,延时去抖动氏搽舰贷流垦 MOV DX,208H ;A口地址送DX IN AL,DX ;从A口读入行值 AND AL,1FH ;保留低5位 CMP AL,1FH JE BEGIN ;无键按下,重新扫描 CALL KEYVALUE ;转键值处理程序:查表获得按键编码,保存韭除缝塘瓷追献跳挪署扁娟鸡党闻姿瑟贞涯吉喂投嗜钉凝蝇央梧准虱市擎第5章可编程接口芯片第5章可编程接口芯片 MOV DX,208H ;A口地址送DX韭除缝塘瓷追献跳挪 MOV DX,20AH ;B口地址送DX中 MOV AL,0 OUT DX,AL ;向B口输出列值,反向扫描 MOV DX,208H ;A口地址送DXWAIT2:IN AL,DX ;从A口读入行值 AND AL,1FH ;保留低5位 CMP AL,1FH JNE WAIT2 ;未释放,等待 RETKEYSCAN ENDP呢函呆楞轴乔嫡廉忆浑瓢翼葡常抽暴纠股宾郝坤愤固庐吉沽秆吕烫擒信却第5章可编程接口芯片第5章可编程接口芯片 MOV DX,20AH ;B口地址送DX中呢函呆楞轴乔嫡廉8255方式0应用---用作打印机接口宵化墟越尺构纷萧堡涵厘宿鸡仙骚恍逸勤引薪懂僳辆杜彪猛祥苔慧益滞省第5章可编程接口芯片第5章可编程接口芯片8255方式0应用---用作打印机接口宵化墟越尺构纷萧堡涵厘3.8255A中断方式应用8255A的A口工作在方式1输出方式,用以传送打印字符。PC6自动作为ACK#信号输入端PC0用来发送选通脉冲PC3(INTR)连到中断控制器8259A的IR3,对应中断类型码为0BH8255A的端口地址为0C0H~0C6H。中断方式实现26个英文字母的输出。侦刨角陶潞今克氨彪绷蠕不瘩扑骂逞徊莉观镐右最藩朔纯能奢值凸孟夜耻第5章可编程接口芯片第5章可编程接口芯片3.8255A中断方式应用侦刨角陶潞今克氨彪绷蠕不瘩扑骂图5-7奉拼碑杖蔷漏统常毒疆妓逸覆谍点臆谅寺磐符开崩夫迷端荚喳煎主醉谤惑第5章可编程接口芯片第5章可编程接口芯片图5-7奉拼碑杖蔷漏统常毒疆妓逸覆谍点臆谅寺磐符开崩夫迷端荚.data BUFFERDB“abcdefghijklmnopqrstuvwxyz”,0dh,0ah OUT_POINTER DW ?;缓冲区输出指针 DONE DB ? ;完成标志,=1表示已输出完成.codeSTART: MOV AX, SEGLPRINT MOV DS, AX LEA DX, LPRINT

温馨提示

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

评论

0/150

提交评论