微机接口实验1
- 格式:doc
- 大小:54.00 KB
- 文档页数:7
微机原理及接口技术实验一、实验目的本实验旨在通过学习微机原理和接口技术,了解和掌握微机系统的基本原理和接口技术的应用,培养学生对微机系统的认识和实践操作能力。
二、实验内容1. 微型计算机系统设计与搭建2. 微机输入输出接口技术应用实验3. 微机总线技术应用实验4. 微机存储器技术应用实验5. 微型计算机中断和DMA技术应用实验三、实验原理1. 微型计算机系统设计与搭建微型计算机主要由中央处理器、存储器、输入输出设备和总线组成。
本实验通过选择适当的芯片、电路连接和控制程序设计,实现一个基本的微型计算机系统。
2. 微机输入输出接口技术应用实验输入输出是微型计算机的重要组成部分,通过实验学习各种输入输出接口的原理和使用方法,并进行实际应用。
3. 微机总线技术应用实验总线是微型计算机各个部件之间传送数据和控制信息的公共通信路径。
通过实验学习总线的分类、结构和时序要求,掌握总线的实际应用。
4. 微机存储器技术应用实验存储器是微型计算机中存储数据和程序的重要设备。
通过实验学习不同类型存储器的原理和应用,掌握存储器的选择和使用。
5. 微型计算机中断和DMA技术应用实验中断和直接存储器访问(DMA)是微型计算机连接外部设备的重要技术。
通过实验学习中断和DMA的工作原理,掌握中断和DMA的应用方法。
四、实验步骤1. 根据实验要求,设计并搭建微型计算机系统;2. 连接输入输出设备,并编写控制程序;3. 进行输入输出接口技术应用实验,如串行通信、并行通信等;4. 进行总线技术应用实验,如总线传输数据测试等;5. 进行存储器技术应用实验,如读写存储器数据等;6. 进行中断和DMA技术应用实验,如中断服务程序编写等;7. 完成相关实验报告并进行总结。
五、实验设备和材料1. 微型计算机实验箱、电源适配器;2. 8051单片机、存储器芯片、输入输出芯片,如74HC164等;3. LED数码管、LCD液晶显示器、键盘、计算器等输入输出设备;4. 可编程芯片编程器、逻辑分析仪等实验设备。
实验报告课程名称汇编语言与微机接口技术实验项目汇编语言及I/O地址译码编程练习实验仪器 PC微机、CZ-CIU实验箱学院__ _ _计算机学院_ _ _ 专业计算机科学与技术班级/学号 *学生姓名___ _ _ *_______实验日期 2018/10/23成绩指导教师 *指导书中实验1一、实验目的掌握I/O地址译码电路的原理。
二、实验原理、内容描述和硬件连接实验电路,其中74LS74位D触发器,可直接使用试验台上数字电路实验区的D触发器,74SL138为地址译码器。
译码输出端Y0-Y7在实验台上“I/O地址”输出端引出,每个输出端包含8个地址,Y0:280H-287H,Y1:288H-28FH,当CPU执行I/O指令且地址在280H-2BFH范围内,译码器必中,必有一根译码线输出负脉冲。
接线:Y4/IO地址接 CLK/D触发器Y5/IO 地址接 CD/D触发器D/D触发器接 SD/D角触发器Q/D触发器接逻辑笔三、程序流程图四、代码、和关键注释1.实验电路中D触发器CLK端输入脉冲时,上升沿使Q端输出高电平L7发光,CD端加低电平L7灭。
outport1 equ 2a0h ;给outport1赋值outport2 equ 2a8h ;给outport2赋值code segmentassume cs:code ;声明start: ;程序开始mov dx,outport1out dx,alcall delay ;调延时子程序mov dx,outport2out dx,alcall delay ;调延时子程序mov ah,1 ;功能号01Hint 16h ;中断调用,若ZF=0,表示键盘缓冲区不空,有键按下了,AL中存放键入字符的ASCII码,AH存放扫描码,若ZF=1,表示缓冲区空je startmov ah,4ch ;功能号4CHint 21h ;中断调用,程序终止delay proc near ;延时子程序mov bx,200 ;200作为循环次数存入lll: mov cx,0 ;存入10000Hll: loop ll ;循环本身dec bx ;BX自减一jne lllretdelay endpcode endsend start2.编程实现:在显示器上显示全部标准和拓展ASCII码字符(每输入16个字符换行)MYSTACK SEGMENT STACKDW 64 DUP(?)MYSTACK ENDSDATA SEGMENTDW ?DATA ENDSASSUME CS:CODE,DS:DATA,SS:MYSTACKCODE SEGMENTSTART:MOV AX,DATAMOV DS,AX ;设置DSMOV CX,0100H ;设置循环次数MOV DH,00 ;设定起始字符对应ASCII码DIS: ;循环体TEST DH,0FH ;检测是否到了该行的第16个字符JNZ MEXT ;调到MEXT进行MOV DL,0AH ;将换行符对应得ASCII码存入CALL DISP ;调用DISP子程序MOV DL,0DH ;将回车符对应得ASCII码存入CALL DISP ;调用DISP子程序MEXT:MOV DL,00MOV AH,02HINT 21H ;中断调用,使每输出一个字符个隔一个空白符MOV DL,DHMOV AH,02HINT 21H ;中断调用,输出每一个ASCII码字符INC DH ;DH自加一LOOP DISMOV AH,4CHINT 21H ;中断调用,程序终止DISP PROC NEARPUSH AXMOV AH,02H ;存入功能号02HINT 21H ;显示每个字符POP AXRETDISP ENDPCODE ENDSEND START3.编程实现:从键盘输入一个10进制数字0-9,查表求键入数字的七段代码,存入DL中,并在键入数字之前,显示信息“Please input a number:”。
一、实验目的(1)了解可编程定时/计数器芯片8253在PC机里的工作情况。
(2)掌握PC机定时操作的工作原理。
二、实验内容及要求1.【实验内容】:对PC机中的8253进行编程,使得PC机成为一个精确的时钟;2.【实验要求】:(1)程序截获系统原有的时钟中断向量,置入用户自己的时钟中断向量。
(2)将8253的通道0设置为工作方式3,二进制数,装入计数初值11932,使其没10ms产生一次定时中断,即每秒钟中断100次,在程序中设置每一个中断次数计数器count100,初值为100,每次中断减一,到0后又重新置为100,并对时间显示串进行处理。
(3)程序运行时,在命令行输入用户指定的当前时间“nn:mm:ss”,即以两位数给出的“时:分”秒”,按任意键后开始计时,并以12小时的格式显示当前时间。
(4)在程序运行过程中,即时间显示过程中,用户按住任意键,恢复系统原中断向量,退出时钟程序的运行。
3.【实验流程图】:【计时操作判断流程图】【用户定时中断程序流程图】4.【实验代码】:.model small.model small.stack 256.datacount100 db 100 ;中断次数计数器tenhour db 0 ;一小时的十位数hour db 0 ;一小时的个位数db ':'tenmin db 0 ;分钟的十位数minute db 0 ;分钟的个位数db ':'tensec db 0 ;秒钟的十位数second db 0 ;秒钟的个位数oldtime dw 0 ;保存原时钟中断向量dw 0.codestart proc farpush ds ;进行程序的首地址保护xor ax, axpush axmov ax, @datamov es, ax ;指向数据段mov si, 82h ;指向PSP内命令行参数mov di, offset tenhourmov cx, 8 ;放入“nn:mm:ss”的8个ASCII码的值cldrep movsb ;命令行的参数移入显示串中mov ds, ax ;将数据段的段地址ax存入ds中mov ah, 0 ;等待按键程序启动int 16hcli ;关中断mov ax, 0mov es, ax ;将段地址ax存入es段中mov di, 20h ;产生类型号为20H的中断放入di中mov bx, es:[di] ;将中断向量保存在bx中mov oldtime, bxmov bx, es:[di+2]mov [oldtime+2], bxmov ax, offset timer ;设置用户的中断向量stoswmov ax, seg timerstoswmov al, 36h ;8253中的命令字:通道0,方式3,二进制数out 43h, al ;将设置好的命令字送到8253控制端口mov bx, 11932 ;每秒钟中断100次计数值mov al, blout 40h, al ;置入通道0的寄存器mov al, bhout 40h, alin al, 21h ;读取8259A的中断屏蔽寄存器and al,0fch ;开放键盘和时钟中断out 21h, al ;写入8259A的新的屏蔽字sti ;开中断forever: mov ah, 0bh ;循环检查用户书否键入内容int 21hcmp al,0ffh ;如果按键,则退出循环jz exitmov bx, offset tenhour ;时间显示串首地址放入bx中mov cx, 8dispclk: mov al, [bx] ;读取显示字符串中的一个字符call dispchar ;显示字符一个字符inc bx ;指向下一个字符loop dispclkmov al, 0dh ;完成8次字符显示后回车call dispcharmov al, second ;读取秒钟的数wait1: cmp al, second ;判断秒钟是否有改变jz wait1 ;等待直到有改变jmp forever ;重复显示exit: xor bx, bx ;恢复原来时钟中断向量mov es, bxmov di, 20hmov bx, oldtimemov es:[di], bxmov bx, oldtime+2mov es:[di+2],bxretstart endptimer proc far ;用户定时中断服务程序push axdec count100 ;中断次数减一jnz timerx ;结果如果非零,退出mov count100, 100 ;结果为0,则计数器恢复初值,并继续循环inc second ;秒加1cmp second, '9' ;判断是否秒大于等于9jle timerx ;否,退出中断处理mov second, '0' ;是,秒的个位置0inc tensec ;秒的十位加1cmp tensec, '6' ;判断是否秒的十位大于等于6jl timerx ;否,退出中断处理mov tensec, '0' ;是,将秒的十位置0inc minute ;分的个位加1cmp minute, '9' ;判断分的个位是否大于等于9jle timerx ;否,退出中断处理mov minute, '0' ;是,将分的十位置0inc tenmin ;分十位加1cmp tenmin, '6' ;分的个位数是否大于等于6jl timerx ;否,退出mov tenmin, '0' ;是,分的十位置0inc hour ;小时加1cmp hour, '9' ;判断小时的个位数是否达到9ja adjhour ;超过9调整,超过程39Hcmp hour, '3' ;判断时的个位数是否是3jnz timerx ;否,退出cmp tenhour, '1' ;判断时的十位是否为1jnz timerx ;否,没有超过12,退出mov hour, '1' ;是,超过12,时的个位置为1mov tenhour, '0' ;时的十位置为0jmp short timerx ;退出adjhour: inc tenhour ;时的十位加1mov hour, '0' ;时的个位置0timerx: mov al, 20h ;终端结束命令out 20h, al ;送8259A0CW2,结束本次中断处理pop axirettimer endpdispchar procpush axpush dxmov dl, almov ah, 02hint 21hpop dxpop axretdispchar endpend start三、实验原理8253是NMOS工艺制成的可编程计数器/定时器,有几种芯片型号,外形引脚及功能都是兼容的,只是工作的最高计数速率有所差异。
微机原理与接口技术实验指导书实验一:微处理器概述及数据传输实验一、实验目的•了解微处理器的基本概念和工作原理;•学习数据传输的基本知识;•掌握使用微处理器进行数据传输的方法。
二、实验器材•1个微处理器开发板;•1个串行通信模块;•相应的连接线。
三、实验内容在该实验中,你将学习如何使用微处理器进行数据传输,具体实验步骤如下:1.将开发板和串行通信模块连接起来;2.将数据发送器连接到串行通信模块的发送端口,将数据接收器连接到串行通信模块的接收端口;3.通过开发板上的开关设置要发送的数据;4.通过串行通信模块将数据发送到计算机;5.在计算机上使用相应的软件接收数据,并验证接收到的数据是否正确。
四、实验步骤1.将开发板和串行通信模块连接起来,确保连接正确并稳定;2.将数据发送器插入串行通信模块的发送端口,将数据接收器插入串行通信模块的接收端口;3.在开发板上的开关上设置要发送的数据;4.打开计算机上的串行通信软件,配置正确的串口号和波特率;5.点击软件的接收按钮,准备接收数据;6.在开发板上的开关上切换到发送模式,并观察串行通信模块的指示灯是否正常闪烁;7.在串行通信软件上观察接收到的数据是否与设置的数据一致;8.如果数据传输正常,则实验完成。
五、实验注意事项1.连接线务必稳固连接,确保数据传输正常;2.阅读并理解实验器材的使用说明书;3.注意保持实验环境的整洁,避免影响实验结果;4.在进行数据传输时,确保计算机已正确安装了相应的驱动程序。
六、实验总结通过这次实验,我们初步了解了微处理器的基本概念和工作原理,学习了数据传输的基本知识,并掌握了使用微处理器进行数据传输的方法。
我们在实验中成功地连接了开发板和串行通信模块,并成功地进行了数据传输。
通过实验,我们发现数据传输过程中需要注意连接线的稳固连接,以及计算机是否安装了相应的驱动程序。
实验的结果验证了我们的操作方法的正确性,同时也为后续实验奠定了基础。
注意:本指导书旨在引导实验过程,实验过程中如有任何危险情况,请立即停止实验并寻求实验室管理员的帮助。
实验一Debug 调试程序的应用一、实验目的1.掌握Debug常用命令的应用。
2.利用Debug调试可执行文件(*.EXE)。
二、实验内容1. 进入Debug,使用A命令将源程序写入100H开始的内存并汇编,然后使用G命令运行程序,接着用U命令反汇编,将机器指令送到起始地址为200H 的若干单元并加以验证,用Q命令退出Debug,返回DOS提示符。
2. 进入Debug,使用A命令将源程序写入100H开始的内存并汇编,然后使用G命令运行程序,接着用D命令观察运行结果后,在用U命令反汇编,用Q命令退出Debug,返回DOS提示符。
3.进入Debug,用A命令写入汇编源程序,接着用R命令显示状态,并用T命令单条执行指令,注意在执行命令的同时观察相应寄存器的状态。
4.练习使用填充命令F、搬家命令M和比较命令C。
5.利用Debug调试可执行文件(*.EXE)。
三、实验仪器、材料1. 软件DOSBOX、MASM2. PC微机一台四、实验步骤1.进入debug,使用A命令:-a100写入以下代码:MOV DL, 33H ;字符3的ASCII送DLMOV AH, 2 ;使用DOS的2号功能调用INT 21H ;进入功能调用,输出‘3’INT 20H ;执行INT 20H中断服务程序,结束程序,返回DOS 写完回车两下,再用-g=起始地址结束地址命令回车,再用-u命令回车,用-d100可得如图1-1,然后用-e200命令空格依次输入:B2 33 B4 02 CD 21 CD 20回车,用-d200可得如图1-2,用q退出debug。
2.进入dedug,使用A命令:-a300 写入以下代码MOV AL, [0120]ADD AL, [0122]DAAMOV BY[0124],ALMOV AL, [0121]ADC AL, [0123]DAAMOV BY[0125],ALINT 20用-g命令,再-d100查看结果如图2-1,在用U命令反汇编,用Q命令退出debug。
西安交通大学实验报告成绩第页共页课程微机原理与接口技术实验系别生物医学工程实验日期年月日专业班级组别交报告日期年月日姓名学号报告退发 (订正、重做) 同组者教师审批签字实验名称汇编语言程序设计一、实验目的1.掌握Lab6000p实验教学系统基本操作;2.掌握8088/8086汇编语言的基本语法结构;3.熟悉8088/8086汇编语言程序设计基本方法。
二、实验设备b6000p实验教学系统;2.IBM-PC机三、实验内容1.有一个10字节的数组,其值分别是80H,03H,5AH,FFH,97H,64H,BBH,7FH,0FH,D8H。
编程并显示结果:1)如果数组是无符号数,求出最大值,并显示;2)如果数组是有符号数,求出最大值,并显示。
2.将二进制数500H转换成二-十进制(BCD)码,并显示“500H的BCD是:”3.将二-十进制码(BCD)7693转换成ASCII码,并显示“BCD码7693的ASCII是:”4.两个长度均为100的内存块,先将内存块1全部写上88H,再将内存块1的内容移至内存块2。
在移动的过程中,显示移动次数1,2 ,3…0AH…64H(16进制-ASCII码并显示子程序)5.键盘输入一个小写字母(a~z),转换成大写字母显示:请输入一个小写字母(a~z):转换后的大写字母是:6.实现4字节无符号数加法程序,并显示结果,如99223344H + 99223344H= xxxxxxxxH四、实验结果1.有一个10字节的数组,其值分别是80H,03H,5AH,FFH,97H,64H,BBH,7FH,0FH,D8H。
编程并显示结果:(1)如果数组是无符号数,求出最大值,并显示;(2)如果数组是有符号数,求出最大值,并显示。
程序:(1)无符号数#make_COM#; COM file is loaded at CS:0100hORG 100hJMP STARTABC DB 80H,03H,5AH,0FFH,97H,64H,0BBH,7FH,0FH,0D8HMAIN PROC FARSTART: MOV SI,0MOV AL,ABC[SI]A1: INC SICMP SI,9JNC EXITMOV BL,ABC[SI]CMP AL,BLJC A2JMP A1A2: XCHG BL,ALJMP A1EXIT: MOV CL,16DIV CLMOV DX,AXMOV CL,9CMP DL,CLJA E1ADD DL,30HMOV AH,2INT 21HE1: ADD DL,37HMOV AH,2INT 21HMOV DL,DHCMP DL,9JA E2ADD DL,30HMOV AH,2INT 21HE2: ADD DL,37HMOV AH,2INT 21HMOV DL,'H'MOV AH,2INT 21HRETMAIN ENDPEND START结果:(2)有符号数#make_COM#; COM file is loaded at CS:0100hORG 100hJMP STARTSHUZU DB 80H,03H,5AH,0FFH,97H,64H,0BBH,7FH,0FH,0D8H MAIN PROC FARSTART: MOV SI,0MOV AL,SHUZU[SI]L1: INC SICMP SI,9JNC NEXTMOV BL,SHUZU[SI]CMP AL,BLJL L2 ;带符号数比较 JMP L1L2: XCHG BL,ALJMP L1NEXT: MOV CL,16DIV CLMOV DX,AXMOV CL,9CMP DL,CLJA L3 ;无符号数比较 ADD DL,30HMOV AH,2INT 21HJMP L4L3: ADD DL,37HMOV AH,2INT 21HL4: MOV DL,DH ;ASCII码转换 CMP DL,9JA L5ADD DL,30HMOV AH,2INT 21HJMP L5L5: ADD DL,37HMOV AH,2INT 21HL6: MOV DL,'H'MOV AH,2INT 21HHLTMAIN ENDPEND START2.将二进制数500H转换成二-十进制(BCD)码,并显示“500H的BCD是:”程序:#make_COM#; COM file is loaded at CS:0100hORG 100hJMP START;DATA SEGMENTSHUCHU DB 'BCD IS $'ABC DB 15 DUP(?);DATA ENDSMAIN PROC FARSTART: MOV DX,OFFSET SHUCHUMOV AH,9INT 21HMOV AX,OFFSET ABCMOV DX,AXMOV AX,500H ;分离出各位数,分别进行BCD码转换SUB DX,DXMOV CX,1000DIV CXXCHG DX,AX ;商在DX中,余数在AX中MOV BX,AXADD DL,30HMOV AH,2INT 21H ;千位转换并输出MOV AX,BXMOV CL,100DIV CLMOV DX,AXADD DL,30HMOV AH,2INT 21H ;百位转换并输出MOV AL,DHSUB AH,AHMOV CL,10DIV CLMOV BX,AXMOV DL,BLADD DL,30HMOV AH,2INT 21H ;个位转换并输出MOV DL,BHADD DL,30HMOV AH,2INT 21HRETMAIN ENDPEND START结果:3.将二-十进制码(BCD)7693转换成ASCII码,并显示“BCD码7693的ASCII 是:”程序:#make_COM#; COM file is loaded at CS:0100hORG 100hJMP START;DATA SEGMENTSHUCHU DB 'ASCII IS $'ABC DB 20 DUP(?);DATA ENDSMAIN PROC FARSTART: MOV DX,OFFSET SHUCHUMOV AH,9INT 21HMOV CH,4MOV AX,OFFSET ABCMOV DX,AXMOV BX,7693HEXIT: MOV CL,4ROL BX,CLMOV AL,BLAND AL,0FH ;与运算分离出最高位MOV AH,0ADD AL,30HMOV CL,16DIV CL ;分离出高位和低位MOV DH,AHMOV DL,ALADD DL,30HMOV AH,2INT 21HMOV DL,DHADD DL,30HMOV AH,2INT 21H ;分别输出高低位DEC CHJNZ EXIT ;进行循环HLTMAIN ENDPEND START结果:4.两个长度均为100的内存块,先将内存块1全部写上88H,再将内存块1的内容移至内存块2。
最新微机接口实验报告实验目的:1. 熟悉微机接口的基本原理和功能。
2. 掌握微机接口的编程和操作技巧。
3. 通过实验加深对微机接口技术的理解。
实验环境:- 微机接口实验箱- 个人电脑- 相关软件和驱动程序实验内容:1. 实验一:了解微机接口的基本结构和工作原理。
- 学习微机接口的基本概念,包括数据总线、地址总线、控制总线等。
- 观察实验箱中的微机接口模块,识别各部分的功能。
2. 实验二:编写简单的输入输出程序。
- 使用汇编语言或C语言编写程序,实现对微机接口的控制。
- 通过程序实现LED灯的点亮和熄灭,以及按键的读取。
3. 实验三:中断和DMA操作。
- 学习中断的基本概念和处理流程。
- 实现一个基于中断的键盘输入程序。
- 了解DMA的工作原理,并编写相应的数据传输程序。
实验步骤:1. 准备实验环境,确保所有设备和软件均已正确安装和配置。
2. 按照实验指导书的要求,逐步完成各个实验项目。
3. 在实验过程中记录关键步骤和结果,以便撰写实验报告。
4. 对遇到的问题进行分析和解决,记录解决方案。
实验结果:1. 成功理解微机接口的基本结构和功能。
2. 编写的输入输出程序能够正确控制LED灯和读取按键状态。
3. 中断和DMA操作实验顺利完成,实现了预期的功能。
实验结论:通过本次实验,加深了对微机接口技术的理解,掌握了基本的编程和操作技能。
实验中遇到的问题和挑战也有助于提高解决问题的能力。
通过实践,更加明确了理论知识与实际应用之间的联系。
建议和反思:- 在实验过程中,应更加注重对理论知识的应用,以提高实验效率。
- 对于复杂的问题,应采取分步解决的策略,避免在实验中出现混乱。
- 未来应加强实验前的准备工作,确保实验能够顺利进行。
微机原理与接口技术实验报告实验一,微机原理实验。
1. 实验目的。
本实验旨在通过对微机原理的实验,加深学生对微机原理相关知识的理解,提高学生的动手能力和实验技能。
2. 实验内容。
本实验主要包括微机原理的基本知识、微处理器的结构和功能、微机系统的总线结构、存储器与I/O接口。
3. 实验步骤。
(1)了解微机原理的基本知识,包括微处理器的分类、功能和工作原理。
(2)学习微机系统的总线结构,掌握总线的分类、功能和工作原理。
(3)了解存储器与I/O接口的基本概念和工作原理。
(4)进行实际操作,通过实验板进行微机原理实验,加深对微机原理知识的理解。
4. 实验结果。
通过本次实验,我深刻理解了微机原理的基本知识,掌握了微处理器的结构和功能,了解了微机系统的总线结构,以及存储器与I/O接口的工作原理。
通过实际操作,我对微机原理有了更深入的认识,提高了自己的动手能力和实验技能。
实验二,接口技术实验。
1. 实验目的。
本实验旨在通过对接口技术的实验,加深学生对接口技术相关知识的理解,提高学生的动手能力和实验技能。
2. 实验内容。
本实验主要包括接口技术的基本知识、接口电路的设计与调试、接口技术在实际应用中的作用。
3. 实验步骤。
(1)了解接口技术的基本知识,包括接口的分类、功能和设计原则。
(2)学习接口电路的设计与调试,掌握接口电路设计的基本方法和调试技巧。
(3)了解接口技术在实际应用中的作用,包括各种接口的应用场景和实际案例。
(4)进行实际操作,通过实验板进行接口技术实验,加深对接口技术知识的理解。
4. 实验结果。
通过本次实验,我深刻理解了接口技术的基本知识,掌握了接口电路的设计与调试方法,了解了接口技术在实际应用中的作用。
通过实际操作,我对接口技术有了更深入的认识,提高了自己的动手能力和实验技能。
总结。
通过微机原理与接口技术的实验,我对微机原理和接口技术有了更深入的理解,提高了自己的动手能力和实验技能。
希望通过今后的学习和实践,能够更加深入地掌握微机原理与接口技术的知识,为将来的工作和研究打下坚实的基础。
微机接口实验报告实验一:显示程序实验(2021年4月22日)1、实验目的及实验内容实验目的:1.掌握在PC机上以十六进制数形式显示数据的方法2.掌握部分DOS功能调用的使用方法3.熟悉Tddebug调试环境和Turbo Debugger的使用实验内容及说明:本实验要求将指定的数据区的数据以十六进制数形式显示在屏幕上,并通过DOS功能调用完成一些提示信息的显示。
0~9的ASII码为:30H~39H,转换时,直接在原数据后面加上30H即可;A以后的数据ASII码为:41H~ 在原数据上加上7H,再加上30H即可。
实验中可使用DOS功能调用(INT21H)。
1.显示单个字符入口:AH=02H调用参数:DL=输出字符 2.显示字符串入口:AH=09H调用参数:DS:DX:串地址,’$’为结束字符 3.键盘输入并回显入口:AH=01H调用参数:AL=输出字符若不回显,入口:AH=07H 或 AH=10H 4.返回DOS系统入口:AH=4CH调用参数:AL=返回码2、实验环境及实验步骤实验环境:PC机一台实验步骤:1.运行Tddebug软件,选择Edit菜单,根据实验内容的描述编写实验程序。
显示部分实验流程图如下:2.使用Compile菜单中的Compile和Link对实验程序进行汇编、连接3.使用Run菜单中的Run运行程序,观察运行结果4.使用Run菜单中的Debug调试程序,观察调试过程中的数据传输指令执行后各寄存器及数据区的内容5.更改数据区中的数据,考察程序的正确性本实验的显示部分试验流程如图所示取字节的高4位N数据是否大于等于A?Y是A-F,加7H转换成ASCH码送屏幕显示取字节的低四位数据是否大于等于A?NY是A-F,加7H转换成ASCH码送屏幕显示3、实验过程与分析(1).取字节的高四位的实现首先将一个字节读入寄存器,将该字节同0F0H相与,即可将该字节的高四位保持不变而第四位变为全0。
然后将相与后的字节右移四位即得到原始字节的高四位。
一、8255串口实验一
1 8255芯片的端口地址是
8255 接入的地址线是两位所以有四个端口地址分别是:
00 PA
01 PB
10 PC
11 控制口
记住实验中8255地址是
IOCONPT EQU 0073H 控制口
IOAPT EQU 0070H PA口
IOBPT EQU 0071H PB口
IOCPT EQU 0072H PC口
我们在写出端口则是0070H到0073H
2注释下面指令
MOV DX,IOCONPT ;控制端口地址
OUT DX,AL ;送控制字
MOV DX,IOBPT ;PB端口地址
IN AL,DX ;从PB端口读8位
MOV DX,IOCONPT ;控制端口地址
MOV AL,80H ;控制字内容
OUT DX,AL ;送控制字80H
其中控制字格式是
以看书上148页图7-13和图7-14两个图
二、8253 计数器、计时器实验
1、记住8253 的是个端口
TCONTRO EQU 004BH
TCON2 EQU 004AH
还有两个是 0048H和0049H
2、注释下列代码
MOV DX,TCONTRO ;控制端口
MOV AL,0B6H ;T2计时器控制字内容
OUT DX,AL ;送控制字
MOV DX,TCON2 ;T2计时器端口地址
MOV AL,00 ; T2计时器低8位
OUT DX,AL ;送低8位
MOV AL,10H ;T2计时器高8位
OUT DX,AL ;送高8位
因为控制字是 0B6H,要求是先送低位再送高位。
8253控制字格式是:
这个也可以看书 128页图6-4 很详细
3已知译码器是139 两进四出地址是10位
其中端口地址是200H 到 203H,求地址范围?
方法如下:
因为译码器是139输入2位输出4个
高位是用于送译码器的(这里是送两位)
写出200H,203H的二进制是:
0010 0000 0000
其中译码器位是不能动的是10
则后面8个位是可变的从 0000 0000 到1111 1111
最后地址范围是:200H 到2FFH
补充:
译码有三种方法:
1.线性选择法:最高位地址线送译码器
2.部分译码法:从高位中选出所需的位
什么是高位:把所以的地址线看成两半,一半是高位,另一半是低位。
3.全译码法:高位全部送译码器
三、8259中断实验
1、8259端口地址是:
INTPORT1 EQU 0020H
INTPORT2 EQU 0021H
2、初始化四个分别是ICW1-ICW4和操作命令字三个OCW1-OCW3
其中ICW1,OCW2,OCW3是从0020H端口写入,ICW2-ICW4,OCW1从0021H端口写入。
各个字的含义可以看书112页比较详细
3、如果是两级中断怎么连线?
这个可以看122页作业11题。
4、如果是四片8259 怎么分配地址?
其中一块是主片三块是从片
现在每片的地址都要包含20即
0010 0000
0010 0001
上面红色部分是不能变的了那就只能变前面两位用139芯片就可以了。
139刚好可以译码出四个
00, 01, 10 ,11
用这四个代替最前面两位就可得到四片的地址了
主片地址是0010 0000 和0010 0001即20H,21H
从片1地址是 0110 0000和0110 0001即30H,31H
从片2地址是1010 0000和1010 0001即0A0H,0A1H 从片3地址是1110 0000和1110 0001即 0E0H,0E1H 四、存储器实验
背下以下代码并且理解:
CODE SEGMENT
ASSUME CS:CODE
START: MOV AX,0H
MOV DS,AX
MOV BX,2000H
MOV AX,55AAH
MOV CX,03FFH
RAMW1: MOV DS:[BX],AX
ADD BX,0002H
LOOP RAMW1
MOV AX,2000H
MOV SI,AX
MOV AX,3000H
MOV DI,AX
MOV CX,03FFH
CLD
REP MOVSB
RAMW2: JMP RAMW2
CODE ENDS
END START
其中CX是循环计数和字符串计数
5已知CPU ,138 和8255一片构成一个系统实现输入输出功能,怎么连线?
如果8255端口地址是70H,71H,72H,73H
0111 0000
如果地址线是8根则最高三位011送译码器138中得出是Y3,Y3出来送到8255的CS端,A0,A1送8255的A0,A1,A2-A4悬空。
138有三个使能端两个低电平和一个高电平,其中G3接电源的高电平上即VC++上,还有就是CPU的读写接到8255的读写上,最后画出8255三个口得方向是输入还是输出,具体图如下(注意以下图没组合不要乱动)。