




已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
6.5.38255a的编程(p211)(1)8255工作方式控制字,0-output1-input,例1:设8255a口、b口、c口都工作在方式0。a口输出;b口输出,c口输入,填出方式字,10001001,标aac高4bbc低4志方式0输出输入方式0输出输入,方式控制字为89h,例2:设8255a口、b口、c口都工作在方式0。a口输入;b口输出,c口高4位输出,低4位输入,填出方式字,10010001,标aac高4bbc低4志方式0输入输出方式0输出输入,方式控制字为91h,*c口的两个部分可以分别设置输入/输出工作方式,例3:设8255a口工作在方式1输入;b口工作在方式1输出;c口输出,填出方式字,10110100,标aac高4bbc低4志方式1输入输出方式0输出输出,方式控制字为0b4h,注意:a口方式1输入占用pc3、4、5作为联络线;b口方式1输出占用pc0、1、2作为联络线;c口仅余pc6、7作为输出,(2)c口按位置位/复位控制字*专门用来对c口8条口线中任一口线置1/置0*用“按位置1/置0控制字”完成c口的按位操作。,*必须写入控制寄存器,例1:把pc4置1(置位),例2:把pc2置0(复位),(3)初始化举例例如,若规定端口a为方式1输出,端口c上半部分为输出,端口b指定为方式0输入,端口c下半部分为输入,则方式选择控制字应是:10100011b或a3h。若将此控制字的内容写入8255a的控制寄存器,即完成了对8255a的初始化。初始化程序段为:,movdx,210h;假设控制端口的地址为210hmoval,0a3h;方式选择控制字outdx,al;送到控制端口,又如:要使端口c的pc5置“1”,pc2置“0”,可通过下面的程序段实现(假设8255a的控制端口地址为83h):,moval,0bh;pc5置“1”out83h,al;送到控制端口moval,04h;pc2置“0”out83h,al;送到控制端口,(4)读状态字略,6.5.48255a的应用,(1)8255a在pc中的应用(暂缓)pc使用一片8255a管理键盘、控制扬声器和输入系统配置开关的状态等。这片8255a的端口a、b、c和控制口的地址分别为60h、61h、62h和63h。在pc机中,8255a工作在基本输入/输出方式。*端口a为方式0输入,用来读取键盘扫描码;*端口b工作于方式0输出,pb6和pb7控制键盘接口电路、pb0和pb1控制扬声器发声;端口c为方式0输入,存放系统配置开关的状态。这样,系统利用如下两条指令就完成了8255a的初始化编程:moval,10011001b;8255a的方式控制字99out63h,al;设置端口a和端口c为方式0输入、;端口b方式0输出。80286以上的微机系统中,由其他的多功能芯片取代了8255a的功能,为了保证和低档微机的兼容性,系统仍使用8255a的口地址,仍然可从60h端口地址读取按键扫描码,可使用pb0和pb1来控制发声系统。,(2)8255a在输入/输出中的应用设系统中外扩了一片8255a和相应的实验电路,如图所示。要求每按一次k键,则使发光二极管ledi的状态随开关ki的状态变化(ki闭合,ledi亮;ki断开,ledi灭)。(p214),操作结束条件:主机标准键盘有任意键按下。,1)开关量输入/输出说明k7闭合pb7=0通过指令取反pa7=1led7亮:k0闭合pb0=0通过指令取反pa0=1led0亮,3)8255各个端口工作方式选择由于开关k连接在pc2上,并且要求k控制操作。在方式1下pc2充当stbb信号(见p209图6.41),该信号有效时锁存b口的信息(开关状态),完成选通输入。所以,口b:方式1输入。口a各条口线,只需要输出1或0就可以确定led的亮或灭,选用方式0输出即可。,4)cpu与8255交换信息的方式可以有两种:查询方式,或中断方式,*1按查询方式完成该例方式选择控制字为:10000110b,即86h.,10000110,标aac高4bbc低4志方式0输出输出方式1输入输出,*查询什么信号?查询stbb(pc2)?,5)关于biosint16h键盘输入子功能格式:movah,01;1号功能调用号:读键盘缓冲区字符int16h;完成操作出口参数:z=0,有键入,al=键入字符的ascii码ah=扫描码z=1,无键入。,参考程序如下:codesegmentassumecs:codemain:moval,86hout83h,al;写入8255的方式选择控制字again:movah,1;int16h;标准键盘有键按下?,jnzdone;有键入,转done,准备结束操作inal,82h;无键入,读8255ac口testal,00000010b;k键已按下(pc1=1?)?;通过判断pc1是否为1来实现。jzagain;没有按下,继续查询k状态。inal,81h;k键已经按下,读8255ab口notal;取反out80h,al;输出到a口,使对应的led亮jmpagain;继续done:movah,4ch;int21hcodeendsendmain,*2按中断方式完成该例方式选择控制字为:10000110b,即86h.通过intrb向cpu发中断请求,必须把inteb设为1,以允许b口发出中断请求。为此必须把pc2置“1”,对应的“置位/复位控制字”为:00000101b或05h,0000010105h标志无定义选中把选中位pc2置1参考程序如下:codesegmentassumecs:code;以下是主程序,main:moval,86hout83h,al;写入8255的方式选择控制字moval,05h;置位/复位控制字out83h,al;pc2=1(inteb=1)允许b口发中断请求movax,0;0段movds,ax;填充段基址movbx,0ah*4;确定中断向量在“表”中的起始位置leaax,intsub;取中断向量的偏移地址movbx,ax;偏移地址填入“表”中movax,segintsub;取中断向量的段基址movbx+2,ax;段基址填入“表”中inal,21h;读8259a的imrandal,11111011b;out21h,al;开放8259air2的中断sti;cpu开中断again:movah,1int16h;标准键盘有键按下?jzagain;没有,等待按键或中断movah,4chint21h;返回dos操作系统,;以下是中断服务程序(注意,什么时候cpu执行本程序?)intsubprocfarinal,81h;读8255a端口bnotalout80h,al;输出至8255a端口amoval,20hout20h,al;中断结束命令iret;中断返回intsubendpcodeends;代码段结束endmain,8255应用(补充)(1)中断控制功能8255有两个中断请求输出引脚intra和intrb,可以通过8259中断控制器进行中断管理,向cpu发出中断请求。,cpu,8259,8255,*intra能够发出中断请求的必要条件:intea=1;控制intea=1的操作是:用c口置位/复位控制字,使pc4置1(输入)。用c口置位/复位控制字,使pc6置1(输出)*intrb能够发出中断请求的必要条件:inteb=1;控制inteb=1的操作是:用c口置位/复位控制字,使pc2置1(输入、输出)。,见p209图6.41,p210图6.42,例1:设8255a口工作在方式1输入(选通输入,占pc5、4、3),b口方式1输出(选通输出,占pc2、1、0),见p209图6.41,p210图6.42两个口都允许发出中断请求。c口余下的pc6,pc7作为输入。编写初始化程序,1)方式控制字:bch,10111100,标aac高4bb无意义志方式1输出输入方式1输出,pc4置位/复位控制字0000100109hpc2置位/复位控制字0000010105h,初始化编程:movdx,20bh;控制寄存器地址moval,0bch;方式控制字outdx,al;moval,09h;outdx,al;intea=1,允许a口发中断moval,05houtdx,al;inteb=1,允许b口发中断,注意:方式控制字和置位/复位控制字都是送入控制口,请看一看p209图6.41和p210图6.42!,例2:在如下电路中,74ls138,8255,1)如果要求8255的4个口地址为:31ch,31dh,31eh,31fh138的输入端应当如何与cpu的地址总线连接?2)8255的其它信号线应当怎么连接?3)要求a口控制8个led,b口采集8个开关信号,那么,a、b口各自应当工作在什么方式下?4)要求led的亮、灭与开关的开闭状态对应,编写程序,只要满足a9a2的电平要求,可以有多种构成方法,2)连线如图所示3)a口方式0,输出;b口方式0,输入4)程序段:movdx,31fh;控制口地址moval,82h;方式控制字outdx,alloop:movdx,31dh;b口地址inal,dx;读入开关状态decdx;取a口地址31choutdx,al;开关状态控制led亮、灭jmploop;:,例3:8254,8255,8259综合应用,1mhz,8255b口控制8个led(l1l8),初始状态为l8亮,其余灭。8254每秒产生一次中断请求信号,加在8259的ir3(其中断向量号为0bh)引脚上,通过8259向cpu请求中断,在中断服务程序中,依次点亮右边一个led(其余灭)。当k11时,结束运行。,1)8254的通道1(t1)工作于方式3,其out1输出频率为1khz(周期=1ms)的方波,输入到clk0(t0工作于方式0),使out0输出频率为1hz(周期1秒)的信号,作为中断请求信号。口地址:20ch20fh,2)利用系统机内的8259,因初始化工作已经由系统完成,我们只需按要求送入操作控制字ocw。口地址:20h21h,3)8255b口工作于方式0输出,控制led;a口工作于方式0输入,读入pa0(k1)的状态,以确定是否结束运行。口地址:208h20bh4)out0加在三态门的输入端,pc7为0时,打开三态门。,*在80x86中,主片8259的ir0ir7的中断向量号已经设定为:08h0fh,8254,8255,8259综合应用程序清单codesegmentassumecs:code;8255初始化start:movdx,20bh;取8255控制口地址moval,90h;b,c方式0输出,a口方式0,入outdx,al;8255初始化moval,0eh;置位/复位控制字outdx,al;pc7置0,打开三态门;中断逻辑movax,350bh;dos35号功能调用:;取原来0b*4处中断向量int21h;入口:ah=35,al=0bh;出口:es:bxpushes;保存原中断向量段基址pushbx;保存偏移地址movax,segintp;取中断服务程序入口地址的段基址movds,ax;段基址在dsmovdx,offsetintp;dx:偏移地址movax,250bh;dos25号功能调用:填充中断向量表int21h;入口:ah=25h,al=0bh,ds:dxinal,21h;从中断屏蔽寄存器imr读屏蔽字andal,0f7h;d3位(imr3)=0,其它位状态不变out21h,al;回送屏蔽字(ocw1),开放ir3的中断sti;cpu开中断,;8254初始化movdx,20fh;8254控制寄存器地址moval,76h;通道1:方式3(方波发生器),字读/写outdx,al;通道1初始化movdx,20dh;通道1地址movax,1000;通道1计数初值outdx,al;先写低字节moval,ah;outdx,al;再写高字节movdx,20fh;控制寄存器地址moval,30h;通道0:方式0(计数),字读/写outdx,al;通道0初始化movdx,20ch;通道0地址movax,1000;通道0计数初值outdx,al;先低moval,ahoutdx,al;后高;led初始状态movbl,80h;bl保存led状态moval,bl;movdx,209h;8255b口地址outdx,al;点亮最左边一个led(l8),wait0:hlt;等待外中断(ir3)movdx,208h;从中断服务程序返回到此.;取8255a口地址inal,dx;读入开关状态testal,01h;检测pa0(k1)jzwait0;k1未打开,继续运行程序popdx;k1打开,准备结束运行,取原中断向量popdsmov
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中国环磷酰胺一水物行业市场分析及投资价值评估前景预测报告
- 2025年甘肃庆阳西峰数字服务就业中心招聘100人考前自测高频考点模拟试题有完整答案详解
- 2025江西招收劳务派遣制工作人员3人模拟试卷及答案详解(典优)
- 2025年中国化妆品级卡拉胶行业市场分析及投资价值评估前景预测报告
- 2025福建漳州城市职业学院招聘38人模拟试卷及完整答案详解1套
- 2025年福建省泉州市丰泽区部分公办学校专项公开编制内17人考前自测高频考点模拟试题参考答案详解
- 2025年上半年江苏无锡市新吴区新瑞医院(上海交通大学医学院附属瑞金医院无锡分院)招聘32人模拟试卷(含答案详解)
- 2025北京市海淀区锦秋学校招聘考前自测高频考点模拟试题及完整答案详解1套
- 2025年金华兰溪市卫健系统面向普通高校第二批招聘医学类应届毕业生27人考前自测高频考点模拟试题及参考答案详解
- 2025安徽工程大学硕士专职辅导员招聘8人考前自测高频考点模拟试题及答案详解(夺冠系列)
- 班次调度冲突解决
- 管理会计学 第10版 课件 第1、2章 管理会计概论、成本性态与变动成本法
- 领导科学之领导用人(经典)
- HGT4134-2022 工业聚乙二醇PEG
- 大米先生管理制度
- 手术室仪器设备管理PPT
- 高中政治课程标准解读
- GB/T 42695-2023纺织品定量化学分析木棉与某些其他纤维的混合物
- YY/T 1617-2018血袋用聚氯乙烯压延薄膜
- 尿动力学检查操作指南2023版
- 五星领导人课件
评论
0/150
提交评论