微机原理与接口技术实验报告

合集下载

微机原理与接口技术实验总结

微机原理与接口技术实验总结

微机原理与接口技术实验总结篇一:微机原理与接口技术实验总结微机原理与接口技术实验总结11107108徐寒黎一、实验内容以及设计思路1、①试编写一程序,比较两个字符串STRinG1、STRinG2所含字符是否相同,若相同输出“maTcH”,若不相同输出“nomaTcH”。

设计思路:定义一个数据段,在数据段中定义两个字符串作为STRinG1、STRinG2以及几个用于输入提示的和输出所需内容的字符串,定义一个堆栈段用于存放,定义代码段。

关键步骤以及少量语句:第一步将STRinG1和STRinG2都实现用键盘输入,方法是moVdX,oFFSETSTRinG2moVaH,0aHinT21H并且显示在显示器上,显示方法将0aH改成09H,语句与上面类似。

然后进行比较第一个单元,moVaL,[STRinG1+1]cmPaL,[STRinG2+1]JnznomaTcH若字符串长度不等,则直接跳转,输出输出“nomaTcH”;若长度相等再逐个比较LEaSi,[STRinG1+2]LEadi,[STRinG2+2]moVcL,[STRinG1+1]moVcH,0cLdREPEcmPSBJcXzmaTcH,意思是全部相同就跳转maTcH,输出“maTcH”;不然进入下面的nomaTcH。

退出。

②试编写求级数1 +2 +3 …..前几项和刚大于10000的程序。

设计思路:原先编写的程序,设定和为10000,结果是14。

但要求高一点的话,可以自己设置,实现用键盘输入和的值。

一个难点是将输入的aScii码字符串,转换成与之相同的十进制数的数值。

关键的思路部分是:从1开始求级数,将和的值存在aX里,要加下一项级数前,比如这时已经加到4,PUSH一下aX,然后将5乘三遍,将乘积moV到BX里,再PoPaX,然后将BX的值加到aX 里,然后将aX与n比较,如果比n小就继续上述步骤,知道刚比n 大就输出数字。

③试编写一程序,完成字符串中各字符出现频度的统计,统计结果在屏幕上输出。

微机原理及接口技术实验报告

微机原理及接口技术实验报告

《微机原理与接口技术》实验报告姓名:学号:班级:专业:电气工程及其自动化学院:电气与信息工程学院目录实验一数据传送 (2)实验二算术运算 (4)实验三代码转换 (6)实验四程序的基本结构 (9)1、分支程序 (9)2、循环程序 (13)3、子程序 (16)实验五中断实验(8259) (19)实验六并行接口实验(8255) (25)实验七定时器/计数器实验(8235) (31)实验八D/A接口实验 (36)实验九A/D接口实验 (40)实验十串行通信实验 (43)实验一数据传送一、实验目的1. 掌握与数据有关的不同寻址方式。

2. 继续熟悉实验操作软件的环境及使用方法。

二、实验设备PC微机一台、TD-PIT + 或TD-PIT ++ 实验系统一套。

三、实验内容本实验要求将数据段中的一个字符串传送到附加段中,并输出附加段中的目标字符串到屏幕上。

四、实验步骤(1) 运行Tdpit 集成操作软件,编写实验程序。

(2) 编译连接无误后,进入调试环境,进行程序的调试。

按F8 键单步运行程序,执行完MOV DS,AX 语句后,观察DS 寄存器中出现的段地址。

如图1-1所示可以看出DS数据段中MSR源数据串"HELLO,WORLD!$"。

图1-1 进入调试环境(3)继续单步运行程序,执行MOV ES,AX 语句后,可以看数据段出现的段地址,用同样的方法可以查看ES:0000 的数据。

数据传输还没开始进行,此时ES 段的数据为空,如图1-1所示。

继续单步运行程序如图1-2可以看出数据正在逐渐的进入ES段中。

图1-2 DS源数据段数据(4)直到数据传输完毕,可以看到ES 数据段中目的数据串MSD 已经被写入了数据串"HELLO,WORLD!$"。

如图1-3所示。

图1-3 根据ES值查看附加段的数据实验二算术运算一、实验目的1. 掌握运算类指令编程及调试方法。

2. 掌握运算类指令对各状态标志位的影响及测试方法。

微机原理与接口技术软件实验报告

微机原理与接口技术软件实验报告

第一篇软件实验实验一存储器块操作实验一、实验目的1. 熟悉KEIL集成调试环境和汇编程序的调试方法。

2. 掌握存储器读写方法;3. 了解内存块的移动方法;二、实验说明实验1 指定某存储器的其实地址和长度,要求能将其内容赋值。

通过该实验学生可以了解单片机读写存储器的方法,同时也可以了解单片机编程、调试方法。

块移动是单片机常用操作之一,多用于大量的数据复制和图像操作。

例程2给出起始地址,用地址加1方法移动块,将指定源地址和长度的存储块移到指定目标为起始地址的单元中去。

移动3000H起始的256个字节到4000H起始的256个字节。

三、实验内容1. 试编程将片内RAM中的数据依次复制到片外RAM。

假设源数据区的首地址为40H,目的数据区的首地址为1000H,数据块长度为10H。

流程图:程序:运行结果:Memory显示,片内RAM中40H开始数据为03 00 29 00 00 00 71 00 AB 00 00 00 1E 00 00 FF,说明测试数据已经成功输入片内RAM。

从片外RAM中1000H位置开始记录为03 00 29 00 00 00 71 00 AB 00 00 00 1E 00 00 FF,说明片内RAM从40H开始的数据已经成功复制到片外从1000H开始的地址。

2. 两个16位无符号二进制数分别存放在片外RAM首址为2000H和2002H单元内,将它们相加,结果存入RAM 30H(低8位)、31H(高8位)。

程序(以0506H+CDEFH为例):0506H和CDEFH已存入片外单元,运算结果D2F5已存入30H和31H中。

四、思考题1. 如何将存储块的内容置成某固定值(例全填充为0FFH)?请用户修改程序,完成此操作。

答:将源程序中的MOV A, #01H 改为MOV A,#0FFH即可。

2. 若源块地址和目标地址有重叠,该如何避免?答:先执行一次数据转移操作将源块地址中的数据先暂存入一块地址与目标地址和源块地址均不重叠的存储区,再执行一次数据转移操作将暂存区的数据移入目标地址区域。

微机原理与接口技术实验1报告

微机原理与接口技术实验1报告

微机原理与接口技术实验报告实验一实验名称:试验箱硬件连接实验实验一:地址译码电路设计实验实验内容:用74LS138译码器设计地址译码电路,并用其输出作为基本输入输出单元的片选信号,使用设计的端口地址编写程序,实现数据的输入输出。

实验原理:微机接口电路中,常采用74LS138译码器来实现I/O端口或存储器的地址译码。

74LS138有3个输入引脚、3个控制引脚及8个输出引脚,其管脚信号如图1所示。

当3个控制信号有效时,相应于输入信号A、B、C状态的那个输出端为低电平,该信号即可作为片选信号。

32位总线地址是由XA2开始,所以地址是以4字节边界对齐的。

实验系统的I/O地址空间共有256字节,偏移地址一般从00H~FFH。

起始地址由PC机系统分配,可以查看端口资源得到起始地址。

所以设计地址译码电路,主要是针对XA7以下低8位地址线译码,得到偏移在00H~FFH之间的端口。

本实验要求不使用总线上的片选信号,自行设计端口偏移地址为E0H~FFH的译码电路,然后用译码输出作为I/O接口单元的片选。

编写程序,完成I/O数据操作。

实验步骤:(1) 实验接线图如图2所示,按图连接实验线路图。

(2)运行Tdpit集成操作软件,根据实验内容,编写实验程序,对实验程序进行编译、链接。

(3)运行程序,拨动开关,观看数据灯显示是否正确。

运行结果:屏幕上能够正确显示开关所表示的十进制数。

实验二:点阵LED显示设计实验实验内容:(1) 在TD-PIT+上使用基本输入输出单元中的两路输出OA[7:0]、OB[7:0]分别控制点阵LED的行控制R[7:0]和列控制L[7:0]。

编写程序,使点阵LED的每一行和每一列依次循环显示。

(2) 在TD-PIT++上使用32位I/O接口单元的32位输出O0~O31控制点阵LED 单元R0~R15和L0~L15。

编写程序,在16×16点阵上循环显示汉字。

实验原理:8×8点阵LED相当于8×8个发光管组成的阵列,其中每一行共用一个阳极(行控制),每一列共用一个阴极(列控制)。

微机原理与接口技术实验报告

微机原理与接口技术实验报告

微机原理与接口技术实验报告
本次实验是关于微机原理与接口技术的实验报告,通过本次实验,我们将深入
了解微机原理与接口技术的相关知识,并通过实际操作来加深对这些知识的理解和掌握。

实验一,微机原理。

在本次实验中,我们首先学习了微机的基本原理,包括微机的组成结构、工作
原理和基本功能。

通过实际操作,我们了解了微机的主要组成部分,如中央处理器(CPU)、内存、输入输出设备等,并学习了它们之间的工作原理和相互配合关系。

同时,我们还学习了微机的基本指令系统和数据传输方式,加深了对微机工作原理的理解。

实验二,接口技术。

在接口技术的实验中,我们学习了微机与外部设备之间的接口技术,包括并行
接口、串行接口和通用接口等。

我们通过实际操作,了解了这些接口技术的工作原理和应用场景,学会了如何通过接口技术实现微机与外部设备的数据交换和通信。

实验三,实验综合。

在本次实验的最后,我们进行了一个综合实验,通过实际操作来综合运用微机
原理和接口技术的知识,实现一个具体的功能。

通过这个实验,我们加深了对微机原理与接口技术的理解,掌握了如何将理论知识应用到实际操作中。

总结。

通过本次实验,我们深入学习了微机原理与接口技术的相关知识,并通过实际
操作加深了对这些知识的理解和掌握。

微机原理与接口技术作为计算机科学与技术的基础知识,对我们今后的学习和工作都具有重要意义。

希望通过这次实验,能够对大家的学习和工作有所帮助,并为今后的学习打下坚实的基础。

以上就是本次实验的实验报告,希望对大家有所帮助。

感谢大家的阅读!。

微机原理与接口技术实验报告

微机原理与接口技术实验报告

微机原理与接口技术实验报告实验目的:本次实验旨在通过实际操作,加深对微机原理与接口技术的理解,掌握接口技术的基本原理和应用方法,提高学生的动手能力和实际应用能力。

实验内容:1. 学习并掌握微机原理与接口技术的基本知识;2. 了解并熟悉常见的接口技术及其应用;3. 进行实际操作,设计并完成一个简单的接口电路。

实验仪器与设备:1. 个人电脑;2. 电子元件,电阻、电容、集成电路等;3. 实验板、示波器、示教电脑等。

实验步骤:1. 阅读相关的微机原理与接口技术的教材,了解基本原理;2. 学习常见的接口技术,例如并行接口、串行接口等;3. 进行实际操作,设计一个简单的接口电路,包括硬件设计和软件编程;4. 调试电路,确保接口电路能够正常工作;5. 编写实验报告,总结实验过程和实验结果。

实验结果与分析:经过实际操作,我们成功设计并完成了一个简单的接口电路。

在实验过程中,我们深入理解了微机原理与接口技术的相关知识,掌握了接口技术的基本原理和应用方法。

通过调试电路,我们验证了接口电路的正常工作,加深了对接口技术的理解。

结论:本次实验使我们更加深入地了解了微机原理与接口技术,提高了我们的动手能力和实际应用能力。

通过设计和完成接口电路,我们对接口技术有了更加直观的认识,为今后的学习和工作打下了坚实的基础。

总结:微机原理与接口技术是计算机专业的重要课程,通过实验学习,我们不仅加深了对知识的理解,还提高了动手能力和实际应用能力。

希望同学们能够认真对待每一次实验,不断提升自己的能力,为未来的发展打下坚实的基础。

至此,本次微机原理与接口技术实验报告完毕。

微机原理与接口技术实验报告

微机原理与接口技术实验报告

微机原理与接口技术实验报告实验目的:本次实验旨在熟悉并掌握微机原理与接口技术的相关知识,通过实例操作和分析实验数据,加深对微机原理与接口技术的理解。

一、实验器材与软件1. 硬件器材:计算机主机、外设设备2. 软件工具:操作系统、编程软件二、实验步骤及结果分析1. 实验1:计算机开机自检在实验中,通过开机启动计算机,观察计算机进行自检的过程。

根据显示屏上的自检信息,可以判断计算机硬件的工作状态。

2. 实验2:串口通信测试在本实验中,通过串口通信实现计算机与外设设备之间的数据传输。

首先,将串口接口连接到计算机主机,然后进行相应的设置,包括波特率、数据位、停止位和校验位等。

在实验中,通过编写相应的程序,实现计算机与外设设备之间的数据交互。

通过观察实验结果,判断串口通信是否正常。

3. 实验3:并口通信测试本实验旨在通过并行口通信实现计算机与外设设备之间的数据传输。

首先,将并行口接口连接到计算机主机。

然后,根据实验要求进行相应的设置,包括数据总线的宽度、传输模式等。

通过编写程序,实现计算机与外设设备之间的数据交互。

观察实验结果,判断并口通信是否正常。

4. 实验4:USB接口测试在本实验中,通过USB接口实现计算机与外设设备之间的数据传输。

首先,将USB接口连接到计算机主机。

然后,在计算机中安装相应的驱动程序。

通过编写程序,实现计算机与外设设备之间的数据交互。

观察实验结果,判断USB接口是否正常工作。

5. 实验5:网络接口测试本实验旨在通过网络接口实现计算机之间的数据传输。

首先,将计算机连接到局域网中的其他计算机。

然后,进行相应的设置,包括IP地址、子网掩码等。

通过编写程序,实现计算机之间的数据交互。

观察实验结果,判断网络接口是否正常工作。

三、实验总结通过本次实验,我对微机原理与接口技术有了更深入的了解,掌握了串口、并口、USB接口和网络接口等常用接口的使用方法。

通过实验的操作和分析,我对接口通信的原理和实现方式有了更详细的了解,对计算机与外设设备之间的数据传输有了更清楚的认识。

微机原理与接口技术实验报告二

微机原理与接口技术实验报告二

微机原理与接口技术实验报告(二)1、实验内容一:实验目的:(1) 阅读《实验操作.ppt》, 学习汇编工具的使用(2) 学习附录的程序代码, 理解并输入、编译和查错3) 学习利用编译错误信息进行附录的程序修改;(程序包含一个语法错误和一个逻辑错误)4)学习程序流程控制: (条件跳转指令ja jb (call指令, 观察程序执行时堆栈的变化(学会用debug –g命令设置断点);5 )学习程序中有限的寄存器的使用。

2.实验内容:(1)打开masm for windows软件, 在其中输入实验要求附给的程序, 保存后运行, 程序报错:(2)经分析发现, “noneeded”没有定义, 改为“notneeded”后正常运行(3)运行过程中发现当字母或数字个数达到两位数时, 统计结果的各位与十位对调了。

如下图, 字母数应为13, 但显示为31(4)经检查, 发现第80行程序有误, inc指令应改为dec指令。

运行后程序正常, 调试完毕。

如下图程序框图如下:实验内容二:1.实验目的及内容:编写完整程序, 实现功能:统计以下字符串STR中空格的数目, 结果保存在COUNT中, 并把个数在屏幕上显示出来。

STR DB ' AB CDE FG H I J K L MNOPQ RST UV W XYZ 12 34 56 78 9'L EQU $-STRCOUNT DB ?(字符串STR可以从这里直接拷贝到程序中)实验结果:程序如下:dispmsg macro messgemov ah,9lea dx,messgeint 21hendmDATA segmenttishi db 0dh,0ah,'the original string is:' string db ' AB CDE FG H I J K L MNOPQ RST UV W XYZ 12 34 56 78 9' STRINGLEN= $-stringnewline db 0dh,0ahNspace db 0dH,0aH,'Number of char space is:',?,?Nsp db ?,'$'DATA endsSTACK segment stack 'stack'sta db 100 dup(?)stack endsCODE segmentASSUME CS:CODE,DS:DATA,SS:STACK START:MOV AX,seg DATAMOV DS,AXxor cx,cxxor dl,dlmov cl,stringlenlea bx,stringcnt:mov al,[bx]cmp al,' 'jz yesspinc blloop cnt jmp shijinzhiyessp:inc dlinc blloop cntjmp shijinzhishijinzhi:lea bx,Nspmov ah,02hint 21hcall char2asc dispmsg tishiMOV AH,4CHINT 21Hchar2asc procmov dl,10 next: xor ah,ahdiv dladd ah,'0'mov [bx],ahdec bxor al,aljnz nextretchar2asc endpcode endsend startEND START运行结果如下:程序流程图如下:实验中遇到的问题及解决方法:1.汇编语言中寄存器有限, 在使用时注意是否保存寄存器中原有的值, 防止在使用寄存器时将原值改变。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

微机原理与接口技术课程设计报告题目:继电器控制实验设计学院电子与信息工程学院专业通信工程年级 10级学生姓名 xx学号 _ xxxxxxxx指导教师 xx完成时间 2012/11/9二O一二年十一月目录摘要 (3)一.实验目的 (4)二.实验原理 (4)1 实验基本原理 (4)2.1继电器结构原理图 (5)2.2继电器工作原理 (5)3.1 8255A组成 (6)3.2 8255A结构框图 (7)3.3 8255A工作方式 (7)三.实验内容 (11)四.程序设计 (12)4.1程序流程图 (12)4.2程序代码 (12)五.实验小结........................................................ 错误!未定义书签。

六.参考文献 ......................................................... 错误!未定义书签。

摘要现代自动控制设备中,都存在一个电子电路与电气电路的互相连接问题,一方面要使电子电路的控制信号能够控制电气电路的执行元件,另一方面又要为电子线路的电气电路提供良好的电气隔离,以保护电子电路和人身的安全。

继电器便能完成这一桥梁作用。

本课程设计主要采用了控制继电器和8255A芯片来完成。

电路的控制端为高电平时,继电器工作常开触点吸合,连触点的LED灯被点亮。

当控制端为低电平时,继电器不工作。

执行时,对应的LED将随继电器的开关而亮灭。

关键词:控制继电器 8255A芯片一.实验目的1、进一步熟悉汇编语言的设计编写2、掌握继电器控制的基本原理3、掌握继电器控制编程方法4、掌握8255芯片的应用二.实验原理1、利用8255A PA0输出高低电平,控制继电器的开合,以实现对外部装置的控制。

硬件线路原理图接线如下:2、继电器在现代工业中,人员和电子电路安全保障一直是首要考虑的问题,尤其在一些高危恶劣环境下,如高温高压等,如何在保障操作人员和电子电路安全的前提下对电路进行良好地控制便成为了工业进步不可回避的问题。

一方面要使电子电路的控制信号能够控制电气电路的执行元件,另一方面又要为电子线路的电气电路提供良好的电气隔离,以保护电子电路和人身的安全,符合这种需求的元件便是继电器。

控制继电器是一种自动电子控制器件,它适用于远距离接通和分断交、直流小容量控制电路, 它具有控制系统和被控制系统,通常应用于自动控制电路中,并在电力驱动系统中供控制、保护及信号转换用。

它实际上是用较小的电流去控制较大电流的一种“自动开关”,故在电路中起着自动调节、安全保护、转换电路等作用。

电磁式继电器一般由铁芯、线圈、衔铁、触点簧片等组成的。

只要在线圈两端加上一定的电压,线圈中就会流过一定的电流,从而产生电磁效应,衔铁就会在电磁力吸引的作用下克服返回弹簧的拉力吸向铁芯,从而带动衔铁的动触点与静触点吸合。

当线圈断电后,电磁的吸力也随之消失,衔铁就会在弹簧的反作用力返回原来的位置,使动触点与原来的静触点吸合。

这样吸合、释放,从而达到了在电路中的导通、切断的目的。

2.1继电器结构原理图2.2、继电器工作原理:继电器使能端不加电前,COM和NC是导通的。

继电器使能端加电后,COM 和NC断开,COM和NO导通。

当继电器输入量的变化达到一定程序时,能使其输入的控制量发送预计的状态变化,具有对控制电路实现“通”、“断”控制作用。

3、8255A芯片8255A是一种通用的可编程并行输入/输出接口芯片。

它的功能可通过软件程序来设置,通过它可直接将CPU数据总线与外部设备连接起来,使用灵活方便。

3.1 8255A由以下几个部分组成:1 .数据端口A、B、C它有三个输入输出端口: Port A、Port B和Port C。

通常端口A或B作为输入输出的数据端口,而端口C作为控制或状态信息的端口.每一个端口都是8位,都可以选择作为输入或输出,但功能上有着不同的特点:(1) 端口A:一个8位数据输出锁存和缓冲器;一个8位数据输入锁存器。

(2) 端口B:一个8位数据输入/输出、锁存/缓冲器;一个8位数据输入缓冲器。

(3) 端口C:一个8位数据输出锁存/缓冲器;一个8位数据输入缓冲器。

2. A组和B组控制电路这是两组根据CPU的命令字控制8255A工作方式的电路。

它们有控制寄存器,接受CPU输出的命令字,然后分别决定两组的工作方式,也可根据CPU的命令字对端口C的每一位实现按位“复位”或“置位”。

A组控制电路控制端口A和端口C的上半部(PC7~PC4)。

B组控制电路控制端口B和端口C的下半部(PC3~PC0)。

3. 数据总线缓冲器这是一个三态双向8位缓冲器,它是8255A芯片与系统数据总线的接口。

输入输出的数据,输出的指令以及CPU发出的控制字和外设的状态信息,也都是通过这个缓冲器传送的。

4. 读/写和控制逻辑它与CPU的地址总线中的A1、A0以及有关的控制信号(RD#,WR#,RESET,IO/M#)相连,由它控制把CPU的控制命令或输出数据送至相应的端口,也由它控制把外设的状态信息或输入数据通过相应的端口,送至CPU。

5. 一些控制命令(1) CS—选片信号,低电平有效,由它启动CPU与8255A芯片之间的通信。

(2) RD—读信号,低电平有效。

它控制8255A送出数据或状态信息至CPU。

(3)WR—写信号,低电平有效。

它控制把CPU输出的数据或命令信号写到8255A。

(4) RESET——复位信号,高电平有效。

它清除控制寄存器,并且置所有端口为输入方式。

6. 端口寻址8255A中有三个输入输出端口,另外,内部还有一个控制字寄存器,共有四个端口,要有两个输入端来加以选择,这两个输入端通常接到地址总线的最低两位A1和A0。

3.2 8255A结构框图如下所示3.3 8255A工作方式1、方式0——基本输入输出方式;在这种工作方式下,三个端口的每一个都可由程序选定作为输入或输出,但这种方式没有规定固定的用于应答式的联络信号线。

任一个端口都可由CPU用简单的输入或输出指令来进行读或写。

方式0可作为查询式输入或输出的接口电路,此时端口A和B可分别作为一个数据端口,而取端口C的某些位作为这两个数据端口的控制和状态信息,其基本功能为:(1) 两个8位端口(A,B)和两个4位端口(端口C);(2) 任一个端口可以作为输入或输出;(3) 输出是锁存的;(4) 输入是不锁存的;(5) 在方式0时,各个端口的输入、输出可以有16种不同的组合。

2、方式1——选通输入输出方式;在这种工作在方式下,端口A或端口B仍作为数据的输入/输出口,但同时规定端口C的某些位作为控制或状态信息。

具有以下主要功能:(1) 用作一个或两个选通端口;(2) 每一个端口包含: 8位的数据端口,三条控制线(是固定指定的,不能用程序改变),提供中断逻辑;(3) 任何一个端口都可作为输入或输出;(4) 若只有一个端口工作在方式1,余下的13位,可以工作在方式0(由控制字决定);(5) 若两个端口都工作在方式1,端口C还留下两位,这两位可以由程序指定作为输入或输出,也具有置位/复位功能。

其各个控制信号的意义如下:STB——选通输入,低电平有效。

这是由外设供给的输入信号,当其有效时,把输入装置来的数据送入输入锁存器。

IBF——输入缓冲器满,高电平有效。

表示数据已输入至输入锁存器,它由STB信号置位(高电平),而RD信号的上升沿使其复位。

INTR——中断请求信号,高电平有效。

作为向CPU的中断请求信号,以要求CPU服务。

INTEA——端口A中断允许信号,可由用户通过对PC4的按位置位/复位来控制(PC4=1,允许中断),而INTEB由PC2的置位/复位控制。

3、方式2——双向传送方式。

在这种工作在方式下,外设可以在单一的8位总线上,既能发送数据也能接收数据(双向总线I/O)。

工作时可用程序查询方式,也可工作在中断方式。

具有以下主要功能:(1) 方式2只用于端口A;(2) 一个8位的双向总线端口(A)和一个5位控制端口(端口C);(3) 输入和输出是锁存的;(4) 5位控制端口是用作端口A的控制和状态信息,如图所示。

INTR——中断请求信号,高电平有效。

在输入和输出方式时,用来作为向CPU发出的中断请求信号。

OBF——输出缓冲器满,低电平有效。

这是对外设的一种命令信号,表示CPU 已把数据输出至端口A。

ACK——响应信号,低电平有效。

ACK#的有效沿启动端口A的三态输出缓冲器,送出数据;否则,输出缓冲器处在高阻状态。

ACK#的上升沿是数据已输出的回答信号。

INTE1——与输出缓冲器相关的中断屏蔽触发器,由PC6的置位/复位控制。

STB——选通输入,低电平有效。

这是外设供给8255A的选通信号,它把输入数据选通至输入锁存器。

IBF——输入缓冲器满,高电平有效,指示数据已进入输入锁存器。

在CPU未把数据读走前,IBF始终为高电平,阻止输入设备送来新的数据。

INTE2——与输入缓冲器相关的中断屏蔽触发器,由PC4的置位/复位控制。

其中端口B可以工作在方式0或方式1;可以作为输入,也可以作为输出。

此时端口C的各位的功能如图所示。

可编程并行接口8255A的工作方式,可由CPU利用I/O指令输出一个控制字到8255A的控制字寄存器来选择。

如图所示。

可以分别选择端口A和端口B的工作方式,端口C分成两部分,上半部随端口A,下半部随端口B。

端口A有方式0、1和2三种工作方式,而端口B只能工作在方式0和1。

当CPU要从外设输入信号或者输出信息给外设,可以采用程序查询方式、中断方式和DMA方式。

但是,不论采用哪一种方式,CPU总是通过接口电路才能与外设连接。

所以,接口电路一边与CPU连接,另一边与外设连接。

三.实验内容1、按原理图连接好实验线路图(1)在EXIC1区插座上插上07芯片。

(2)8255A的PA0连EXIC1区07芯片的第一脚。

(3)将JDQ区的JIN插孔与07芯片的第二脚相连。

(4)将继电器的常开触点JK接发光二极管L1,常闭触点JB接发光二极管L2,继电器中心抽头JZ接地GND插孔2、运行实验程序(1)联机时,实验程序文件名为\DVCC\H8EXE\H811S.EXE。

(2)单机时,实验程序起始地址为F000:B670。

在系统显示“DVCC-86H”状态下,按任意键;在系统显示命令提示符“-”状态下,按GO键;在系统显示“1000 XX”状态下,输入F000 :B670 ,按EXEC键;3、继电器应循环吸合,L1和L2交替亮灭。

四.程序设计1、程序流程图2、程序代码(1)初始化程序代码如下:MOV DX,8255CTLMOV AL,1000X01XBOUT DX,ALMOV DX,8255AMOV AL,0FFH ;A口输出1,则无电流OUT DX,AL(2)定义代码段如下:CODE SEGMENT ASSUME CS:CODEIOCONPT EQU 0FF2BH 送控制器端口IOAPT EQU 0FF28H a端口的端口号为0ff28h IOBPT EQU 0FF29H b端口的端口号为0ff29h IOCPT EQU 0FF2AH c端口的端口号为0ff2ah ORG 10e0H 规定程序的起始地址为10e0h START: MOV DX,IOCONPT 控制器寄存器端口地址送DX MOV AL,80H 方式控制字80h给ALOUT DX,AL 方式控制字传送给控制寄存器Check: MOV DX,IOCPT C端口的端口地址给DXMOV AL,01H 将按位操作控制字01H给ALOUT DX,AL 将01H送到C端口,含义为让PA0置1,即小灯亮CALL DELAY 调用延时程序MOV AL, 00h 把00H给ALOUT DX,AL 将00H送到C端口,含义为PA0置零,小灯灭CALL DELAY 调用延时程序JMP CHECK 无条件循环到CHECK,再使小灯反复亮灭DELAY PROC 定义一个近过程PUSH BX 保护BX原来的内容PUSH CX 保护CX原来的内容MOV BL,2 外循环次数,根据情况可改NEXT: MOV CX,10000 内循环次数,实现延时时间,根据情况可改W10MS: LOOP W10MS CX 不为0,则循环DEC BL BL减一JNZ NEXT BL 不为零则转至NEXT,循环POP CX 恢复 CX内容POP BX 恢复BX内容RET 过程返回DELAY ENDP 过程结束CODE ENDS 程序结束END(3)检测控制程序如下:MOV DX,8255BIN AL,DXNOT AL ;开关闭合,B口线为1,A口相应传送0MOV DX,8255AOUT DX,AL(4)主程序代码:ORG 00HJMP STARTORG 23HJMP UARTORG 30HSTART: MOV SP,#70HMOV SCON,#50HMOV TMOD,#00100001B ;TIM1在模式2 TIM0在模式1MOV TH1,#0F4H ;设置定时时间SETB TR1 ;启动定时器1SETB ES ;允许串口中断SETB EA ;允许总中断MOV P0,#0 ;P0、P2输出低电平MOV P2,#0JMP $ ;等待状态串行口中断UART: PUSH ACCPUSH PSWCLR ES ;关闭串行口中断MOV TH0,#HIGH(65536-65536)MOV TL0,#LOW(65536-65536)SETB TR0 ;开定时器0MOV 30H,#00 ;同步位MOV 31H,#00 ;数据1MOV 32H,#00 ;数据2MOV 33H,#00 ;结束位MOV R0,#30HREC:JBC tf0,FS ;接收时间是否超时?是则执行FS JNB RI,REC ;接收数据CLR RIMOV A,SBUFMOV @R0,AINC R0JMP RECFS: CLR TR0 ;关定时器0CALL FUN ;解码并控制继电器SETB ES ;开串行口中断POP PSWPOP ACCRETI ;中断子程序返回FUN: MOV A,#0AH ;判断第1字节即同步位CJNE A,30H,ERRMOV A,#0DH ;判断第4字节即结束位CJNE A,33H,ERRMOV A,31HMOV P0,AMOV A,32HMOV P2,ARET数据错误处理ERR:MOV 30H,#00 ;同步位MOV 31H,#00 ;数据1MOV 32H,#00 ;数据2MOV 33H,#00 ;结束位RETEND五.实验小结本课题设计中利用8255A PA0输出高低电平,控制继电器的开合,以实现对外部装置的控制。

相关文档
最新文档