微机原理与接口技术试验报告
- 格式:docx
- 大小:812.16 KB
- 文档页数:24
微机原理与接口技术实验总结篇一:微机原理与接口技术实验总结微机原理与接口技术实验总结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. 若源块地址和目标地址有重叠,该如何避免?答:先执行一次数据转移操作将源块地址中的数据先暂存入一块地址与目标地址和源块地址均不重叠的存储区,再执行一次数据转移操作将暂存区的数据移入目标地址区域。
微机原理与接口技术实验报告
本次实验是关于微机原理与接口技术的实验报告,通过本次实验,我们将深入
了解微机原理与接口技术的相关知识,并通过实际操作来加深对这些知识的理解和掌握。
实验一,微机原理。
在本次实验中,我们首先学习了微机的基本原理,包括微机的组成结构、工作
原理和基本功能。
通过实际操作,我们了解了微机的主要组成部分,如中央处理器(CPU)、内存、输入输出设备等,并学习了它们之间的工作原理和相互配合关系。
同时,我们还学习了微机的基本指令系统和数据传输方式,加深了对微机工作原理的理解。
实验二,接口技术。
在接口技术的实验中,我们学习了微机与外部设备之间的接口技术,包括并行
接口、串行接口和通用接口等。
我们通过实际操作,了解了这些接口技术的工作原理和应用场景,学会了如何通过接口技术实现微机与外部设备的数据交换和通信。
实验三,实验综合。
在本次实验的最后,我们进行了一个综合实验,通过实际操作来综合运用微机
原理和接口技术的知识,实现一个具体的功能。
通过这个实验,我们加深了对微机原理与接口技术的理解,掌握了如何将理论知识应用到实际操作中。
总结。
通过本次实验,我们深入学习了微机原理与接口技术的相关知识,并通过实际
操作加深了对这些知识的理解和掌握。
微机原理与接口技术作为计算机科学与技术的基础知识,对我们今后的学习和工作都具有重要意义。
希望通过这次实验,能够对大家的学习和工作有所帮助,并为今后的学习打下坚实的基础。
以上就是本次实验的实验报告,希望对大家有所帮助。
感谢大家的阅读!。
微机原理与接口技术实验报告实验目的:本次实验旨在通过实际操作,加深对微机原理与接口技术的理解,掌握接口技术的基本原理和应用方法,提高学生的动手能力和实际应用能力。
实验内容:1. 学习并掌握微机原理与接口技术的基本知识;2. 了解并熟悉常见的接口技术及其应用;3. 进行实际操作,设计并完成一个简单的接口电路。
实验仪器与设备:1. 个人电脑;2. 电子元件,电阻、电容、集成电路等;3. 实验板、示波器、示教电脑等。
实验步骤:1. 阅读相关的微机原理与接口技术的教材,了解基本原理;2. 学习常见的接口技术,例如并行接口、串行接口等;3. 进行实际操作,设计一个简单的接口电路,包括硬件设计和软件编程;4. 调试电路,确保接口电路能够正常工作;5. 编写实验报告,总结实验过程和实验结果。
实验结果与分析:经过实际操作,我们成功设计并完成了一个简单的接口电路。
在实验过程中,我们深入理解了微机原理与接口技术的相关知识,掌握了接口技术的基本原理和应用方法。
通过调试电路,我们验证了接口电路的正常工作,加深了对接口技术的理解。
结论:本次实验使我们更加深入地了解了微机原理与接口技术,提高了我们的动手能力和实际应用能力。
通过设计和完成接口电路,我们对接口技术有了更加直观的认识,为今后的学习和工作打下了坚实的基础。
总结:微机原理与接口技术是计算机专业的重要课程,通过实验学习,我们不仅加深了对知识的理解,还提高了动手能力和实际应用能力。
希望同学们能够认真对待每一次实验,不断提升自己的能力,为未来的发展打下坚实的基础。
至此,本次微机原理与接口技术实验报告完毕。
实验一熟悉汇编语言程序开发过程一、实验目的1.熟悉与实验有关的系统软件(如编辑程序、汇编程序、连接程序和调试器等)的使用。
2.在程序调试过程中,学习及掌握调试器CodeView的各种操作命令,掌握程序的调试方法及技巧。
二、实验内容用查表法求0~9之间某个整数的平方,设该数x及结果y均存放在内存中,在数据段定义一个平方表table。
1.建立源程序asm文件用Windows的记事本输入以下源程序:data segmenttable db 0,1,4,9,16,25,36,49,64,81x db ?y db ?data endscode segmentassume cs:code,ds:datastart: mov ax,datamov ds,axlea bx,tablemov al,xmov ah,0add bx,axmov al,[bx]mov y,almov ah,4chint 21hcode endsend start2.BUFFER单元有一字节数据,将它拆开,低四位送L单元,高四位送H单元,编写程序实现以上功能,调试通过。
data segnmentbuffer db 0f8hl db ?h db ?data endscode segnmentassume cs:code,ds:datastart:mov ax,datamov ds,axmov al,bufferand al,0fhmov l,almov al,buffermov cl,4shr al,clmov h,almov ah,4chint 21hcode endsend start二、实验总结:1.用汇编程序masm对源文件汇编产生目标文件objmasm demo.asmMicrosoft (R) MASM Compatibility DriverCopyright (R) Microsoft Corp 1991. All rights reservedInvoking: ML.EXE/I. /Zm /C /Ta demo.asmMicrosoft (R) Macro Assembler Version 6.00Copyright (R) Microsoft Corp 1981-1991. All rights reservedAssembling: demo.asm2.用连接程序link产生执行文件exelink demoMicrosoft (R) Segmented-Executalle Linker Version 5.13Copyright (R) Microsoft Corp 1984-1991. All rights reservedRun File [demo.exe]: ↙List File [NUL.MAP]: ↙Libraries [.LIB]: ↙Definitions File [NUL.DEF]: ↙LINK: warning L4021: no stack segment↙表示按Enter键,得到可执行程序demo.exe。
微机原理与接口技术实验报告实验目的:本次实验旨在熟悉并掌握微机原理与接口技术的相关知识,通过实例操作和分析实验数据,加深对微机原理与接口技术的理解。
一、实验器材与软件1. 硬件器材:计算机主机、外设设备2. 软件工具:操作系统、编程软件二、实验步骤及结果分析1. 实验1:计算机开机自检在实验中,通过开机启动计算机,观察计算机进行自检的过程。
根据显示屏上的自检信息,可以判断计算机硬件的工作状态。
2. 实验2:串口通信测试在本实验中,通过串口通信实现计算机与外设设备之间的数据传输。
首先,将串口接口连接到计算机主机,然后进行相应的设置,包括波特率、数据位、停止位和校验位等。
在实验中,通过编写相应的程序,实现计算机与外设设备之间的数据交互。
通过观察实验结果,判断串口通信是否正常。
3. 实验3:并口通信测试本实验旨在通过并行口通信实现计算机与外设设备之间的数据传输。
首先,将并行口接口连接到计算机主机。
然后,根据实验要求进行相应的设置,包括数据总线的宽度、传输模式等。
通过编写程序,实现计算机与外设设备之间的数据交互。
观察实验结果,判断并口通信是否正常。
4. 实验4:USB接口测试在本实验中,通过USB接口实现计算机与外设设备之间的数据传输。
首先,将USB接口连接到计算机主机。
然后,在计算机中安装相应的驱动程序。
通过编写程序,实现计算机与外设设备之间的数据交互。
观察实验结果,判断USB接口是否正常工作。
5. 实验5:网络接口测试本实验旨在通过网络接口实现计算机之间的数据传输。
首先,将计算机连接到局域网中的其他计算机。
然后,进行相应的设置,包括IP地址、子网掩码等。
通过编写程序,实现计算机之间的数据交互。
观察实验结果,判断网络接口是否正常工作。
三、实验总结通过本次实验,我对微机原理与接口技术有了更深入的了解,掌握了串口、并口、USB接口和网络接口等常用接口的使用方法。
通过实验的操作和分析,我对接口通信的原理和实现方式有了更详细的了解,对计算机与外设设备之间的数据传输有了更清楚的认识。
微机原理与接口技术硬件实验报告目录实验一基本的IO实验 (2)A.I/O地址译码 (2)一、实验目的 (2)二、实验原理和内容 (2)三、硬件接线图与软件流程图 (3)四、源程序 (4)五、实验结果 (5)实验总结 (5)六、实验收获与心得体会 (5)B.简单并行接口 (5)一、实验目的 (5)二、实验原理和内容 (6)三、硬件接线图与软件流程图 (6)四、源程序 (7)五、实验结果 (8)六、实验总结 (8)七、实验收获与心得体会 (8)实验二可编程并行接口8255实验 (8)一、实验目的 (8)二、实验原理和内容 (8)三、硬件接线图与软件流程图 (10)四、源程序 (12)五、实验结果 (15)六、实验总结 (15)七、实验收获与心得体会 (15)实验三可编程定时器/计数器(8253)实验 (15)一、实验目的 (15)二、实验原理和内容 (15)三、硬件接线图与软件流程图 (17)四、源程序 (17)五、实验结果 (24)六、实验总结 (24)七、实验收获与心得体会 (24)八、思考题 (24)实验四串行通讯接口8251实验 (25)一、实验目的 (25)二、实验原理和内容 (25)三、硬件接线图与软件流程图 (25)四、源程序 (26)五、实验结果 (31)实验总结 (31)六、实验收获与心得体会 (31)七、思考题 (31)实验一基本的IO实验A.I/O地址译码一、实验目的掌握I/O地址译码电路的工作原理。
二、实验原理和内容1.实验电路硬件接线图所示,其中74LS74为D触发器,可直接使用实验台上数字电路实验区的D触发器,74LS138为地址译码器。
译码输出端Y0~Y7在实验台上“I/O地址“输出端引出,每个输出端包含8个地址,Y0:280H~287H,Y1:288H~28FH, ……当CPU执行I/O指令且地址在280H~2BFH范围内,译码器选中,必有一根译码线输出负脉冲。
例如:执行下面两条指令MOV DX,2A0HOUT DX,AL(或IN AL,DX)Y4输出一个负脉冲,执行下面两条指令MOV DX,2A8HOUT DX,AL(或IN AL,DX)Y5输出一个负脉冲。
微机原理与接口技术实验报告专业____________________ 年级___________________ 完成时间________________小组成员_________________________________________________________________实验一汇编语言编译过程一、实验目的1、熟悉汇编语言源程序的基本格式。
2、掌握在DOS环境下汇编程序的编写、汇编和调试方法。
3、掌握在MF2KP(MIFID实验箱软件平台)环境下汇编程序的编写、汇编和调试方法。
二、实验内容软件实验1、编写汇编语言源程序2、使用MASM进行汇编,查找错误并修改3、使用LINK进行连接4、运行程序三、实验要求在DOS环境下利用文本编辑器编写汇编语言源程序,用汇编工具编译、调试、连接,生成可执行文件在DOS环境下正确运行,并记录相关数据。
四、实验仪器IBM-PC机,MFID实验箱五、实验步骤1、在DOS方式下键入edit new.asm<CR>2、输入源程序并保存3、键入masm new<CR>进行汇编,生成new.obj目标文件,并保存new.list列表文件4、如果提示有错误,参考列表文件并修改程序文件new.asm,重复第三步5、键入link new<CR>进行连接,生成new.exe可执行文件6、键入new<CR>运行程序六、实验程序stack segment stack ‘stack’dw 32 dup(?)stack endsdata segmentSB DB 9AHOBUF DB 9 DUP (?)data endscode segmentmain proc farassume ss:stack, cs:code, ds:datastart: push dssub ax, axmov ax, datamov ds, axMOV CX, 8MOV BX, 0MOV AL, SBAGAIN: MOV AH,0SHL AX, 1ADD AH, 30HMOV OBUF[BX], AHINC BXLOOP AGAINMOV OBUF[BX], ‘$’MOV DX, OFFSET OBUFMOV AH, 9INT 21Hretmain endpcode endsend start七、实验结果分析1、记录编译过程中错误并分析原因2、本程序中9号功能调用输出数据如何获得3、如将MOV CX, 8 语句中的8改为4,输出结果又是什么4、如果将语句MOV OBUF[BX], ‘$’去掉,输出结果是什么,试分析其原因微机原理与接口技术实验报告专业____________________ 年级___________________ 完成时间________________小组成员_________________________________________________________________实验二DEBUG调试一、实验目的1、熟悉使用DEBUG调试可执行文件的基本方法2、掌握在DEBUG中显示寄存器内容与显示存储器内容的命令3、掌握利用DEBUG中的反汇编命令对可执行文件进行反汇编与置断点的命令二、实验原理DEBUG是一个专门为汇编语言设计的交互式调试工具,它提供一个控制测试的环境,以便用户能够监视和控制被调试程序的执行;可以直接确定直接确定程序中出现的问题,然后立即修改程序以便判定这些问题是否已经解决,而不必重新去编写一个程序;可以直接设置寄存器和存储器的值,也可设置断点使程序暂停执行以便察看中间结果;总之,它为汇编语言程序员提供了非常有效的调试手段。
微机原理与接口技术实验报告实验一,微机原理实验。
1. 实验目的。
本实验旨在通过对微机原理的实验,加深学生对微机原理相关知识的理解,提高学生的动手能力和实验技能。
2. 实验内容。
本实验主要包括微机原理的基本知识、微处理器的结构和功能、微机系统的总线结构、存储器与I/O接口。
3. 实验步骤。
(1)了解微机原理的基本知识,包括微处理器的分类、功能和工作原理。
(2)学习微机系统的总线结构,掌握总线的分类、功能和工作原理。
(3)了解存储器与I/O接口的基本概念和工作原理。
(4)进行实际操作,通过实验板进行微机原理实验,加深对微机原理知识的理解。
4. 实验结果。
通过本次实验,我深刻理解了微机原理的基本知识,掌握了微处理器的结构和功能,了解了微机系统的总线结构,以及存储器与I/O接口的工作原理。
通过实际操作,我对微机原理有了更深入的认识,提高了自己的动手能力和实验技能。
实验二,接口技术实验。
1. 实验目的。
本实验旨在通过对接口技术的实验,加深学生对接口技术相关知识的理解,提高学生的动手能力和实验技能。
2. 实验内容。
本实验主要包括接口技术的基本知识、接口电路的设计与调试、接口技术在实际应用中的作用。
3. 实验步骤。
(1)了解接口技术的基本知识,包括接口的分类、功能和设计原则。
(2)学习接口电路的设计与调试,掌握接口电路设计的基本方法和调试技巧。
(3)了解接口技术在实际应用中的作用,包括各种接口的应用场景和实际案例。
(4)进行实际操作,通过实验板进行接口技术实验,加深对接口技术知识的理解。
4. 实验结果。
通过本次实验,我深刻理解了接口技术的基本知识,掌握了接口电路的设计与调试方法,了解了接口技术在实际应用中的作用。
通过实际操作,我对接口技术有了更深入的认识,提高了自己的动手能力和实验技能。
总结。
通过微机原理与接口技术的实验,我对微机原理和接口技术有了更深入的理解,提高了自己的动手能力和实验技能。
希望通过今后的学习和实践,能够更加深入地掌握微机原理与接口技术的知识,为将来的工作和研究打下坚实的基础。
微机原理与接口技术实验报告姓名学号班级指导教师戴胜华时间2013年12月一、I/O地址译码与交通灯控制实验一.实验目的通过并行接口8255实现十字路口交通灯的模拟控制,进一步掌握对并行口的使用。
二.实验内容如图5-3,L7、L6、L5作为南北路口的交通灯与PC7、PC6、PC5相连,L2、L1、L0作为东西路口的交通灯与PC2、PC1、PC0相连。
编程使六个灯按交通灯变化规律燃灭。
十字路口交通灯的变化规律要求:(1)南北路口的绿灯、东西路口的红灯同时亮3秒左右。
(2)南北路口的黄灯闪烁若干次,同时东西路口的红灯继续亮。
(3)南北路口的红灯、东西路口的绿灯同时亮3秒左右。
(4)南北路口的红灯继续亮、同时东西路口的黄灯亮闪烁若干次。
(5)转(1)重复。
8255动态分配地址: 控制寄存器: 0EC0BHA口地址: 0EC08HC口地址: 0EC0AH三.程序流程图和程序清单DATA SEGMENTX DB ?DATA ENDSSTACK1 SEGMENT STACKDW 100H DUP(0)STACK1 ENDSCODE SEGMENTASSUMECS:CODE,DS:DATA,SS:STACK1 START: MOV AX,DATAMOV DS,AX;---------------INIT----------------MOV DX,0EC0BH ;写控制字MOV AL,80HOUT DX,AL L3: MOV DX,0EC0AHMOV AL,24H ;南北绿灯,东西红灯亮OUT DX,ALCALL DELAYCALL DELAY ;长延时,3s左右CALL DELAYCALL DELAYCALL DELAYCALL DELAYCALL DELAYMOV BL,8MOV AL,04HL0: XOR AL,40H ;南北黄灯闪,东西红灯亮OUT DX,ALCALL DELAY ;延时CALL DELAYDEC BL ;闪烁几次JNZ L0CALL DELAYMOV AL,81H ;南北红灯亮,东西绿灯亮OUT DX,ALCALL DELAYCALL DELAYCALL DELAY ;长延时,3s左右CALL DELAYCALL DELAYCALL DELAYCALL DELAYMOV BL,9MOV AL,80HL1: XOR AL,02H ;南北红灯亮,东西黄灯闪OUT DX,ALCALL DELAY ;延时CALL DELAYDEC BLJNZ L1 ;闪烁几次CALL DELAYMOV DL,0FFHMOV AH,06HINT 21HJZ L3 ;六号功能判断若无字符输入ZF=1继续循环;------------------------------MOV AH,4CHINT 21H;-----------延时函数------------DELAY : PUSH CXPUSH DXMOV CX,1FFFHLOP1: MOV DX,0FFFFHLOP2: DEC DXJNZ LOP2LOOP LOP1POP DXPOP CXRETCODE ENDSEND START四、总结这是我们微机实验的第一次实验,以前的实验都是要么是硬件实验,要么是软件实验,这样又要连接电路,又要编写程序的实验这还是我第一次做,因此这次实验对我来说是一次全新的体验。
这次实验我更加深入地了解了微机接口和汇编语言,对8255的芯片了解以及编程的学习不仅停留在书本上,自己的动手能力也得到了很大的提升。
二、可编程定时时钟/计数器(8253)一、实验目的掌握8253的基本工作原理和编程方法。
二、实验内容1.按图5-1虚线连接电路,将计数器0设置为方式0,计数器初值为N(N≤0FH),用手动逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用逻辑笔观察OUT0电平变化(当输入N+1个脉冲后OUT0变高电平)。
图5-12.按图5-2连接电图,将计数器0、计数器1分别设置为方式3,计数初值设为1000,用逻辑笔观察OUT1输出电平的变化(频率1HZ)。
图5-2三.实验原理8253具有3个独立的计数通道,采用减1计数方式。
在门控信号有效时,每输入1个计数脉冲,通道作1次计数操作。
当计数脉冲是已知周期的时钟信号时,计数就成为定时。
作计数器时,要求计数的次数可直接作为计数器的初值预置到减“1”计数器中。
8253中各通道可有6种可供选择的工作方式,以完成定时、计数或脉冲发生器等多种功能。
本实验用到的是方式0—计数结束中断。
在写入计数值N之后的第一个CLK的下降沿将N装入计数执行单元,待下一个CLK的下降沿到来且门控信号GATE为高电平时,通道开始启动计数。
在计数过程中,OUT一直保持低电平,直到计数达“0”时,OUT输出由低电平变为高电平,并且保持高电平。
8253动态分配地址: 控制寄存器: 0EC03H计数器0地址: 0EC00H计数器1地址: 0EC01H四.程序流程图和程序清单1)CODE SEGMENT ;段定义开始(CODE段)ASSUME CS:CODE ;规定CODE为代码段START:MOV AL,10H ;设置控制字00010000(计数器0,方式0,写两个字节,二进制计数)MOV DX,283H ;把控制寄存器地址放在DX寄存器中OUT DX,AL ;将AL的值送入DX端口MOV DX,280H ;把计数器0地址放在DX寄存器中MOV AL,0FH ;将0FH存入AL寄存器OUT DX,AL ;将此时AL的值送入DX端口LP1: IN AL,DX ;从DX端口读入8位,放在AL寄存器中CALL DISP ;调用DISPPUSH DX ;将DX内容保存到堆栈段MOV AH,06H ;将06H存入AH,为了下句调用21中断MOV DL,0FFH ;将0FFH存入DLINT 21H ;调用21中断POP DX ;将DX的内容推出栈段JZ LP1 ;如果DX的内容是0,就跳转到LP1MOV AH,4CH ;将4CH存入AH,为了下句调用21中断INT 21H ;调用21中断DISP PROC NEAR ;定义一个名为DISP的子程序PUSH DX ;把DX的内容保存到堆栈段中AND AL,0FH ;将AL寄存器的内容与0FH进行“与”运算,再把结果存入AL中MOV DL,AL ;将AL的值送入DL寄存器CMP DL,9 ;比较DL中的值与9的大小JLE NUM ;如果DL的值小于或等于9时,则跳转到NUMADD DL,7 ;将DL的值与7进行相加后,再送入DL中NUM: ADD DL,30H ;将DL的值与30H进行相加后,再送入DL中MOV AH,02H ;将02H存入AHINT 21H ;调用DOS21中断MOV DL,0DH ;结合“MOV AH,02H”就是说输出0DHINT 21H ;调用中断指令MOV DL,0AH ;结合“MOV AH,02H”就是说输出0AHINT 21H ;调用DOS21中断POP DX ;将DX的内容推出栈段RET ;子程序在功能完成后返回调用程序继续执行DISP ENDP ;子程序结束CODE ENDS ;代码段结束END START ;程序结束2)CODE SEGMENT ;段定义开始(CODE段)ASSUME CS:CODE ;规定CODE为代码段START:MOV DX,283H ;把控制寄存器地址放在DX寄存器中MOV AL,36H ;设置控制字00110110(计数器0,方式3,写两个字节,二进制计数)OUT DX,AL ;将AL的值送入DX端口MOV AX,1000H ;该语句是立即寻址方式,就是把1000H这个数赋给AXMOV DX,280H ;把计数器0地址放在DX寄存器中OUT DX,AL ;将AL的值送入DX端口MOV AL,AH ;将AX的高8位存入AL寄存器中OUT DX,AL ;将此时AL的值送入DX端口MOV DX,283H ;把端口地址放在DX寄存器中MOV AL,76H ;设置控制字01110110(计数器1,方式3,写两个字节,二进制计数)OUT DX,AL ;将AL的值送入DX端口MOV AX,1000H ;把1000H赋给AXMOV DX,281H ;把端口地址放在DX寄存器中OUT DX,AL ;将AX的低8位送入DX端口MOV AL,AH ;将AX的高8位存入AL寄存器中OUT DX,AL ;将AL的值送入DX端口MOV AH,4CH ;将4CH存入AHINT 21H ;调用DOS21中断CODE ENDS ;代码段结束END START ;程序结束五、总结通过这次实验,我再一次巩固了8253的初始化、工作方式以及编程的方法等等。
在此次实验中我从前一次的实验的什么都不知道的状态中走了出来,能比较熟练地使用该调试软件。
而在硬件连接方面,我也能按照电路图熟悉地连接出来。
在实验过程中,一开始出现了输入程序,屏幕无反应的情况,之后检查才发现原来是我的程序的入口地址写错了。
因此这次实验同时也提醒我无论做什么事情都需要踏实认真,这样才能将事情做好。
三、中断实验(纯DOS)一、实验目的1、掌握PC机中断处理系统的基本原理。
2、学会编写中断服务程序。
二、实验原理与内容1、实验原理PC机用户可使用的硬件中断只有可屏蔽中断,由8259中断控制器管理。
中断控制器用于接收外部的中断请求信号,经过优先级判别等处理后向CPU发出可屏蔽中断请求。
IBMPC、PC/XT 机内有一片8259中断控制器对外可以提供8个中断源:中断源中断类型号中断功能IRQ0 08H 时钟IRQ1 09H 键盘IRQ2 0AH 保留IRQ3 OBH 串行口2IRQ4 0CH 串行口1IRQ5 0DH 硬盘IRQ6 0EH 软盘IRQ7 0FH 并行打印机8个中断源的中断请求信号线IRQ0~IRQ7在主机的62线ISA总线插座中可以引出,系统已设定中断请求信号为“边沿触发”,普通结束方式。
对于PC/AT及286以上微机内又扩展了一片8259中断控制,IRQ2用于两片8259之间级连,对外可以提供16个中断源:中断源中断类型号中断功能52IRQ8 070H 实时时钟IRQ9 071H 用户中断IRQ10 072H 保留IRQ11 O73H 保留IRQ12 074H 保留IRQ13 075H 协处理器IRQ14 076H 硬盘IRQ15 077H 保留PCI总线中的中断线只有四根,INTA#、INTB#、INTC#、INTD#,它们需要通过P&P的设置来和某一根中断相连接才能进行中断申请。
2、实验内容实验电路如图31,直接用手动产单脉冲作为中断请求信号(只需连接一根导线)。