1、软硬件实验报告微机原理与接口技术上机实验实验一 实验环境熟悉与简单程序设计实验目的(1)掌握DEBUG调试程序的使用方法。(2)掌握简单程序的设计方法。实验容编程将BH中的数分成高半字节和低半字节两局部,把其中的高半字节放到DH中的低4位高4位补零,把其中的低半字节放到DL中的低4位高4位补零。如:BH=10110010B则运行程序后DH=00001011BDL=00000010B实验准备(1)熟练掌握所学过的指令。(2)根据实验容,要求预先编好程序。实验步骤(1)利用DEBUG程序输入、调试程序。(2)按下表要求不断地修改BH的容,然后记录下D*的容。BH100111011101100100
2、111111DHDL实验报告(1)给出程序清单。(2)详细说明程序调试过程。程序:CODE SEGMENT START : MOV BH,00111111B MOV AL,BH MOV CL,4 SHR AL,CL MOV DH,AL MOV AL,BH AND AL,00001111B MOV DL,AL MOV CL,0CODE ENDS END START实验二简单程序设计实验目的(3)掌握DEBUG调试程序的使用方法。(4)掌握简单程序的设计方法。实验容试编写一个汇编语言程序,要现功能:在屏幕上显示:Hello worldMy name is Li Jianguo参考程序如下:有错da
3、ta segment out1 db Hello world a* db My name is Li Jianguo data ens code segment assume cs:code;ds:data lea d*,out1mov ah,2 int 21h mov dl,0ah mov ah,2 int 21h mov dl,0dh moo ah,2 int 21h lea d*,a* mov ah, int 21h code ends实验步骤(3)利用IDE86程序输入、调试程序。实验报告(3)给出正确的程序清单。(4)详细说明程序调试过程。程序:DATAS SEGMENT STRIN
4、G1 DB 13,10,Hello World!,13,10,$;13为回车,10为换行,$为完毕符 STRING2 DB 13,10,My name is LI Jianguo,13,10,$ DATAS ENDSCODES SEGMENT ASSUME CS:CODES,DS:DATASSTART: MOV A*,DATAS MOV DS,A* LEA D*,STRING1 MOV AH,9 INT 21H LEA D*,STRING2 MOV AH,9 INT 21H MOV AH,4CH INT 21HCODES ENDS END START实验三循环程序设计实验目的(1)掌握在PC机
5、上建立、连接、调试和运行8086汇编语言程序的过程。(2)掌握数据传送和算术运算指令的使用方法。(3)了解局部DOS系统调用的使用方法。实验容将两个5位十进制数相加。要求被加数和加数均以ASCII码形式各自顺序存放在以DATA1和DATA2为首地址的5个存单元中低位在前,结果送回DATA1处。另外,程序利用DOS的9号调用功能完成将被加数、加数和最后的和在显示器上的显示。参考程序如下:data segmentdata1 db 32h, 38h, 30h, 36h, 37h,$data2 db 33h, 35h, 33h, 38h, 32h, $data endsstac segmentsta
6、db 100 dup(?)stac endscode segmentassume cs:code, ds:data, ss:stac, es:datastart proc farpush ds*or a*,a*push a*mov a*, datamov ds,a*mov es,a*mov ah,9mov d*, offset data1int 21hmov ah,2mov dl, +int 21hmov ah,9mov d*,offset data2int 21hmov si,offset data1mov di,offset data2mov b*,5push b*push siconv1
7、: and byte ptrsi+b*-1,0fhand byte ptrdi+b*-1,0fhdec b*jnz conv1mov c*,5*or a*,a*add1: mov al,si+4mov bl,di+4adc al,blaaamov si+4,aldec sidec diloop add1pop sipop b*conv2: or byte ptrsi+b*-1,30hdec b*jnz conv2mov ah,2mov dl, =int 21hmov ah,9mov d*,siint 21hretstart endpcode endsend start实验准备1仔细阅读本书第一
8、章,掌握源程序的编辑、汇编、连接和调试方法。2阅读教材,熟练掌握数据传送和算术运算指令的使用方法。3阅读有关DOS系统调用的参考书,掌握1号调用、2号调用、7号调用、8号调用和9号调调用的使用方法。(4)仔细阅读参考程序。实验步骤(1)首先用IDE86软件输入汇编语言源程序,然后对此源程序进展汇编,再用LINK程序进展连接,最后执行。如果程序运行结果不正确:1重复以上过程,并记录下修改经过,直至程序正确运行为止。2在步骤1中,如果程序运行结果不正确,可使用DEBUG程序进展动态调试,直到程序正确运行为止。(2)利用DEBUG程序修改被加数和加数,运行程序,并记录下程序运行结果。将被加数修改为:
9、31H,32H,33H,34H,35H将加数修改为:35H,34H,33H,38H,39H程序运行后,请照实写出屏幕显示结果。(3)修改你编写的或前面给出的参考程序。利用DOS系统功能完成5位被加数和加数的键盘输入,程序完成加法后,输出相加的和,记录下程序运行过程及结果。实验四子程序及分支构造程序设计实验目的(1)掌握分支程序及子程序设计的方法。(2)进一步熟悉汇编语言源程序的上机过程。实验容设有10个学生的成绩分别为:76、69、84、90、73、88、99、63、100、80,试编制一个程序统计60到69、70到79、80到89、90到99和100分的人数,分别放到五个存储单元中,然后在屏
10、幕上显示。统计局部和显示局部要求用子程序实现。要求用堆栈进展参量传递。实验准备(1)认真阅读教材,掌握分支程序的编程方法。(2)绘制程序流程图,编写程序。实验步骤(1)完成汇编语言源程序的编辑和连接过程。(2)利用DEBUG进展程序调试和运行。(3)撰写实验报告。DATAS SEGMENT SCORE db 76,69,84,90,73,88,99,63,100,80 STR1 db THE NUMBER OF 100 IS: ,$ STR2 db THE NUMBER OF 90-100 IS: ,$ STR3 db THE NUMBER OF 80-90 IS: ,$ STR4 db TH
11、E NUMBER OF 70-80 IS: ,$ STR5 db THE NUMBER OF 60-70 IS: ,$ COUNT EQU 10 GRADEA db ? GRADEB db ? GRADEC db ? GRADED db ? GRADEE db ?DATAS ENDSSTACKS SEGMENTSTACKS ENDSCODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKSSTART: MOV A*,DATAS MOV DS,A* LEA B*,SCORE MOV C*,COUNTA1:MOV AL,B* CALL PARE INC B*
12、LOOP A1 CALL OUTPUT MOV AH,4CH INT 21H PARE PROC PUSH B* CMP AL,100 JE L1 CMP AL,90 JAE L2 CMP AL,80 JAE L3 CMP AL,70 JAE L4 CMP AL,60 JAE L5L1:INC GRADEA JMP DONEL2:INC GRADEB JMP DONEL3:INC GRADEC JMP DONEL4:INC GRADED JMP DONEL5:INC GRADEE JMP DONEDONE: POP B* RET PARE ENDP OUTPUT PROC LEA D*,STR
13、1 MOV AH,9 INT 21H ADD GRADEA,30H MOV DL,GRADEA MOV AH,2 INT 21H MOV DL,0AH MOV AH,2 INT 21H MOV DL,0DH MOV AH,2 INT 21H LEA D*,STR2 MOV AH,9 INT 21H ADD GRADEB,30H MOV DL,GRADEB MOV AH,2 INT 21H MOV DL,0AH MOV AH,2 INT 21H MOV DL,0DH MOV AH,2 INT 21H LEA D*,STR3 MOV AH,9 INT 21H ADD GRADEC,30H MOV
14、DL,GRADEC MOV AH,2 INT 21H MOV DL,0AH MOV AH,2 INT 21H MOV DL,0DH MOV AH,2 INT 21H LEA D*,STR4 MOV AH,9 INT 21H ADD GRADED,30HMOV AH,2 MOV DL,GRADED INT 21H MOV DL,0AH MOV AH,2 INT 21H MOV DL,0DH MOV AH,2 INT 21H LEA D*,STR5 MOV AH,9 INT 21H ADD GRADEE,30H MOV DL,GRADEE MOV AH,2 INT 21H MOV DL,0AH M
15、OV AH,2INT 21H RET OUTPUT ENDPCODES ENDS END START实验五简单I/O口扩展实验一、实验目的1、利用74LS273,74LS244扩展 I/0 。 2、 掌握用锁存器、三态门扩展简单的并行输入、输出口的方法。二、实验容1熟悉74LS273,74LS244的应用接口方法。2掌握用锁存器(74LS273)、三态门扩展简单的并行输入。3扩展的方法:a逻辑电平开关CZ1作为74LS244U10的输入。b发光二极管CZ2作为74LS273的输出,c编写程序,使得逻辑电平开关的输入状态从发光二极管上显示出来。三、实验原理图:四、实验步骤1、连线: a.将74L
16、S244 ( IC25)的输入SI0SI7分别与逻辑电平开关电路的K1K8相连。b.从I/O地址片选信号CS0CS7中任选一个与74LS244的片选信号相连。例如CS0。c.将74LS273IC24的输出S00S07分别与发光二极管电路的L1L8相连。d.从I/O地址片选信号CS0CS7中任选一个与74LS273的片选信号(CSU8)相连。如CS1。2、翻开计算机上已安装的DB86软件,参照.软件的使用a.编写程序。b.编译连接。c.调试程序。d.单步运行。e.如果调试通过后,全速运行,观察实验结果。 3、 全速运行后拔动开关,其变化反响的到发光二极管上。当作为信号输入量的开关任意位拔上时,对
17、应的发光二极管点亮、拔下时熄灭。 4. 编写实验报告五、实验说明用逻辑电平开关CZ1作为74LS244 (IC25) 的输入, 用发光二极管CZ2作为 74LS273 (IC24) 的输出。编写程序,使得逻辑电平开关的输入状态从发光二极管上显示出来。逻辑电平开关拔上时为5V,拔下时为0V。发光二极管输入1为亮、0为灭。从74LS244读入的数据后从输出口输出。在8086CPU 中有四个16位通用数字存放器,其中仅 A*( AH, AL) 有输入输出功能。本实验通过输入语句( IN ),将开关量输入存到 AL 中,在通过输出语句 ( OUT ) 将 AL 值输出到发光二极管,从而实现开关控制发光
18、二极管。当开关量换作其他形式控制输入,发光二极管换作其他形式控制对象,输入数据后对输入量做一定的运算处理再输出时,就实现了计算机控制,同时这些输入输出点均为I/O 扩展口,当输入输出点较多时,这种扩展十分必要六、程序框图实验六 8255并行口实验一、实验目的利用 8255A 实现并行接口实验二、实验容1. 掌握8255A的编程原理。2. 熟悉计算机并行接口的使用方法三、实验原理图:四、实验步骤:1.连线:a8255A(IC37)的PA0PA7分别与逻辑电平开关电路的 K1-K8 相连。bPB0PB7 分别与发光二极管电路的L1L8相连。c从CS0CS7中任选一个与8255A的片选( CS825
19、5)端相连。如CS0其他线路均已连好。 2软件: 与实验一一样3编写实验程序。五、实验说明:逻辑电平开关拨上时5V,拨下时0V;发光二极管输入为1时亮,输入为0时灭。拨动开关,观察发光二极管CZ2的变化。当开关CZ1*位拨上时,对应的发光二极管点亮,拨下时熄灭。8255A是并行接口电路中比较常用的一种芯片, 8255A有三个8位的输入输出端口,由于部电路原因,通常将A端口PA0PA7作输入用,B端口PB0PB7作输出用,C端口作辅助控制用,本实验也是如此。本实验中,输入输出都比较简单,控制相对简单,因此可选择在根本输入输出方式方式0,即输入输出设置与上一样下工作。在设计程序时,先设置8255的
20、工作方式控制端口地址为04A6H,然后循环读PA端口开关状态地址为04A0H,输出至PB端口发光二极管地址为04A2H。A_port EQU 04A0HB_port EQU 04A2HC_port EQU 04A4Hctrc_port EQU 04A6HCODES SEGMENT ASSUME CS:CODESorg 100hSTART: mov d*,ctrc_port mov al,90h out d*,al add1: mov d*,04a0h in al,d* mov d*,B_port out d*,al jmp add1 MOV AH,4CH INT 21HCODES ENDS E
21、ND START六、程序框图实验七 8253定时器/计数器接口实验一、实验目的掌握8253定时器的编程原理,用示波器观察不同模式下的输出波形。二、实验容编程将计数器0,1,2设置为模式2分频方式,并观察其输出波形。三、实验原理图四、实验步骤1、连线:a 从CS0CS7中任选一个如CS0与8253的片选信号CS8253相连,8253的OUT0与CLK2相连,bOUT2与发光二极管 L1相连,c. OUT1接示波器,其他未提信号均已接好或无需连接。2.软件:同实验一。3.编写实验报告。五、实验说明8253的时钟端CLK0,CLK1均为1/8 M。CLK2的时钟由OUT0来控制。8253位8086系
22、统中常用的可编程定时器/计数器,部有三个相互独立的计数器,发别称为计数器0,计数器1、计数器2。8253有多种工作模式,其中模式2为方波方式。当给定初值后,自动将所设周期平分为两个局部,前一局部保持为高电平“1,后一局部保持为低电平“0,输出为一方波。CLK0、CLK1的频率均为1M/8,设计数器0的初值为0F24H十进制为62500时,方波周期为0.5s。在计数器2中设置不同的初值2n时,可的周期n0.5s的方波,n的最大值为7FFFH十进制为32767时,周期最长为16383.5s(4小时33分3.5秒),此时的初值为7FFEH。因此,采用两级计数叠加后,输出周期围可大幅度提高。如能合理设
23、置初值,这种广域围的周期设定在实际控制中非常有用。CODES SEGMENT ASSUME CS:CODES ORG 100HSTART:MOV AL,00110110BMOV D*,04A6HOUT D*,ALMOV A*,750MOV D*,04A0HOUT D*,ALMOV AL,AHOUT D*,ALMOV AL,10110110BMOV D*,04A6HOUT D*,ALMOV A*,1000MOV D*,04A4HOUT D*,ALMOV AL,AHOUT D*,ALMOV AL,01110110BMOV D*,04A6HOUT D*,ALMOV A*,750MOV D*,04A2
24、HOUT D*,ALMOV AL,AHOUT D*,ALCODES ENDS END START六、程序框图实验八A/D实验一、实验目的熟悉A/D转换的根本原理,掌握ADC0809的使用方法。二、实验容 按查询方式采样三路A/D转换数据,用简单输入口U10查询EOC信号。每循环一次0,1,2通道各采样一次。采样结果是0通道放入C*中,CL有效,1通道放入B*中,BL有效,2通道放入A*中AL有效。三、实验原理图三、实验步骤1、连线:a. 将可变电位器 KB1,KB2,KB3分别与ADC0809的IN0、IN1、IN2相连。b. 从CS0CS3中任选一个如CS1与ADC0809的片选端相连。c.
25、 将ADC0809的EOC与IC2574LS244的SI0相连。d. 从CS0CS7中任选一个如CS1与U10的片选端相连。2、软件: 同实验一。3、编写实验报告。四、实验说明1、实验电路中启动信号START与地址锁存信号相连,所以启动A/D转换的方法为:MOV D* ,PADC ;PADC是ADC0809 的端口地址OUT AL, D* ;发片选及IOW信号,这是0通道 ;启动1通道时,D*应加1程序:CODE SEGMENT ASSUME CS:CODEORG 100HSTART:MOV D*,04A0H OUT D*,AL *OR AH,AHDAC:MOV D*,04B0H IN AL,
26、D* TEST AL,01H JZ DAC MOV D*,04A0H IN AL,D* MOV CL,AL JMP DACCODE ENDS END START五、程序框图实验九 DA实验一、实验目的熟悉数模转换的根本原理,掌握DAC0832的使用方法。二、实验容看懂接口电路后连好硬件线路,并编制程序以产生以下两种波形并用示波器。1、锯齿波形 2、三角波三、实验原理图四、实验方法1、连线:a. 从CS0CS7中任选一个如CS0与DAC0832的片选端相连。 b. 将示波器接至DAC0832的输出端OUT相连。 2、进展调零KB5和调满偏KB4。3、软件:同实验一。 4、编写实验报告。五、实验说
27、明DAC0832在图所示的接口电路中,KB6调节参考电压VREF,KB5调节DA的零点,KB4调节DA的满偏。工作在双缓冲接口方式下。当A1=0 时可锁存输入数据,当A1=1时,可起动转换输出。所以要进展DA转换,需分二步进展,方法如下: MOV D*,DACPORT ;DAC0832片选信号偶地址 MOV AL, DACPORT OUT DL,AL ;锁存数据 ADD D* ,2 OUT D*,AL ;启动转换锯齿波:CODES SEGMENT ASSUME CS:CODESorg 100hSTART: *OR A*,A* Y1: MOV D*,04A0H OUT D*,AL ADD D*,
28、2 OUT D*,AL INC AL CMP AL,0FFH JNZ YI JMP STARTCODES ENDSEND START三角波:CODES SEGMENT ASSUME CS:CODESorg 100hSTART: *OR A*,A* *1: MOV D*,04A0H OUT D*,AL ADD D*,2 OUT D*,AL INC AL CMP AL,0FFH JNZ *1*2: OUT D*,AL ADD D*,2 OUT D*,AL DEC AL CMP AL,0 JNZ *2 JMP STARTCODES ENDS END START六、程序框图锁存数据A*启动转换B*减一开场 B*清零B*?A*锁存数据A*启动转换B*加一B*?A*B*=FFH.B*=0?NYN图二 产生三角波流程图
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1