北理工微机实验四
北京理工大学总汇编实验报告材料实验四
本科实验报告实验名称:分支和循环实验一、实验目的1)掌握比较指令;2)理解条件转移和无条件转移指令的区别;3)掌握单分支、双分支、多分支的程序设计方法;4)掌握循环程序设计方法。
二、实验内容内容一程序代码:DATAS SEGMENTBUF DB 12H,98H,45H,64H,78H,36H,55H,44H,0ABH,0CFH COUNT EQU $-BUFNUM1 DB 0NUM2 DB 0BUF1 DB 00,00BUF2 DB 00,00DATAS ENDSSTACKS SEGMENTSTACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKSSTART:MOV AX,DATASMOV DS,AXMOV CX,COUNTMOV SI,0MOV DI,0L:MOV AL,BUF[SI]CMP AL,0JG L1INC NUM2CBWADC WORD PTR BUF2[DI],AXJMP L2L1:INC NUM1CBWADC WORD PTR BUF1[DI],AX L2:INC SILOOP LMOV AH,4CHINT 21HCODES ENDSEND START程序运行结果:内容二实验代码:DATAS SEGMENTBUF DB 12H,98H,45H,64H,78H,36H,55H,44H,0ABH,0CFH COUNT EQU $-BUFMAX DB 0MIN DB 0DATAS ENDSSTACKS SEGMENTSTACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKSSTART:MOV AX,DATASMOV DS,AXMOV CX,COUNTMOV SI,0MOV AL,BUF[SI]MOV MAX,ALL:INC SIMOV AL,BUF[SI]CMP AL,MAXJL L1MOV MAX,ALL1:DEC CXJNZ LMOV CX,COUNTMOV SI,0MOV AL,BUF[SI]MOV MIN,ALM:INC SIMOV AL,BUF[SI]CMP AL,MINJA M1MOV MIN,ALM1:DEC CXJNZ MMOV AH,4CHINT 21HCODES ENDSEND START程序运行结果:所以可得有符号数的最大值为78H,无符号数的最小值12H。
北理工微机课后习题答案
课后习题部分参考答案第1章1.3 (1)166D;A6H(2)0.75D(3)11111101.01B;FD.4H(4)5B.AH;(10010001.011000100101)BCD1.4 8位原码:-127~+127;反码:-127~+127;补码:-128~+12716位原码:-32767~+32767;反码:-32767~+32767;补码:-32768~+327671.5 (1)原码:11110011B;补码:10001101B(2)原码:11000111B;补码:10111001B(3)原码:01001001B;补码:01001001B1.9 34H,41H,33H,3DH,21H1.10 34H,B9H1.11 B4H,39H第2章2.10 8088在最小模式下:(1)当CPU访问存储器时,要利用信号线:WR#、RD#、IO/M#(低)、ALE、AD0~AD7、A8~A19。
(2)当CPU进行I/O操作时,要利用信号线:WR#、RD#、IO/M#(高)、ALE、AD0~AD7、A8~A19。
(3)当HOLD有效并得到响应时,CPU所有三态输出的地址信号、数据信号和控制信号置高阻。
2.15 8086/8088系统中,存储器分段的主要目的是便于存储器的管理,使得可用16位寄存器来寻址20位的内存空间。
最大段为64KB,最小段为16B。
第3章3.2 源操作数寻址方式及其物理地址为:(1)MOV AX,BX 寄存器寻址;寄存器BX(2)MOV DL,80H 立即寻址;指令码MOV所在字节的下一字节单元(3)MOV AX,V AR 立即寻址,同上。
(4)MOV AX,V AR[BX][SI] 基址-变址-相对寻址;(DS)*16+(BX)+(SI)+V AR=608F0H。
(5)MOV AL,‘B’立即寻址,同2。
(6)MOV DI,ES:[BX] 寄存器间接寻址;(ES)*16+(BX)=20800H。
北理工20年春季《微机技术及应用》在线作业_3.doc
1.主存和微处理器之间增加高速缓存的目的是()A.解决微处理器和主存之间的速度匹配问题B.扩大主存的容量C.既扩大主存容量,又提高存取速度【参考答案】: A2.JMP FAR PTR BLOCK (BLOCK是符号地址)是()A.段内间接转移B.段间间接转移C.段内直接转移D.段间直接转移【参考答案】: D3.当M/ ̄IO=0, W/ˉR=0时,微处理器完成的操作是()A.存储器读B.I/O读C.存储器写D.I/O写【参考答案】: B4.CPU响应外部中断请求是()A.在一条指令执行结束后B.在一个机器周期结束后C.一旦请求,立即响应D.由中断类型码n引起【参考答案】: A5.80486的W/R▔引脚的功能是()A.执行读操作B.执行写操作C.输出高电平是写操作D.输出低电平是读操作E.输入高电平是写操作【参考答案】: C6.可做简单输入接口的电路是()A.三态缓冲器B.锁存器C.反相器D.译码器【参考答案】: A7.8255A的端口A工作在方式2时,如果端口B工作在方式1,则固定用做端口B的联络信号的端口C的信号是()A.PC2-PC0B.PC6-PC4C.PC7-PC5D.PC3—PC1【参考答案】: A8.主机与外设传送数据时,采用(),CPU的效率最高。
A.程序查询方式B.中断方式C.DMA方式D.同步方式【参考答案】: C9.8255A工作方式设置为方式1时,CPU与外设通信()A.可以采用查询方式传送,或者采用中断方式传送B.只能采用中断方式传送C.可以进行双向方式传送D.只能采用无条件传送方式或查询方式传送【参考答案】: A10.8253()A.只能实现计数B.只能实现定时C.既可实现计数,又可实现定时D.以上工作均不能完成【参考答案】: C11.十进制数-38的8位机器数补码是()A.01011011B.11011010C.11011011D.01011010【参考答案】: B12.8255A工作在方式1时,端口A和端口B作为数据输入输出使用,而端口C的各位分别作为端口A和端口B的控制信息和状态信息。
北理工5系微波技术基础实验报告
从实验数据可以看出, 增益压缩点在输入约为 2.5dBm 处, 1dB 则接收机的动态范围为: -75dBm~2.5dBm
六、 实验问题探讨
(1)详细描述图像传输系统中发射机/接受机的各个组成部分及其功能。 答:摄像头采集的信号送入调制器进行频率调制,在经过一次变频后,滤波,放大,通过天 线发射出去。经过空间传播,接受甜心将信号接收进来,在经过低噪放大,滤波,下变频到 480MHZ,再经中频滤波,滤去谐波和杂波,经视频解调器,解调后输出到显示器还原图像 信号。 (2)该发射机的输入功率、接收机增益与接受机灵敏度? 答:输入为中心频率为 2.2GHz 的微波信号,测量信号强度为-60dBm,测量仪器与测试点间 传输线损耗为-2.3dB,接收机中频放大后信号为中心频率 480MHz 的中频信号,测试信号强 度 为 -39dBm , 传 输 线 损 耗 为 -1dB( 用 了 另 一 个 传 输 线 ) 。 则 接 收 机 增 益 为 : -39-(-60)+2.3+1=23.3dB 。 测试接收机灵敏度为-88dBm,输入信号最小为-85dBm,此时传输线损耗为-3dB。 (3)若在接收机的低噪声放大器前加入衰减器,会明显改变图像质量,而在中频放大器前加
北京理工大学 5 系《微波技术基础》实验报告
入波导中, 听过没一根金属棒伸进波导内部长度的变化改变反射波的幅度和相位, 可以将传 输线从终端短路状态调整到终端匹配状态。
三、 实验步骤
1、首先按图 1 所示将测量系统安装好,然后接通电源和测量仪器的有关开关,观察微 波信号源有误输出只是。若有知识,当改变衰减量或移动测量闲谈整的位置是,测量放大器 的表头指示会有起伏的裱花, 这说明系统意在工作了。 但这并不一定是最佳工作状态。 例如, 若是反射式速调管信号源的话还应把它调到输出功率最大的震荡模式, 凭借和调节信号源处 的短路活塞,以使能量更有效地传向负载。若有必要,还可以调节测量线探头座内的短路活 塞,以获得较高地灵敏度,或者调节测量线探针深入波导的程度,以便较好地拾取信号的能 量(注意,深入太多会影响波导内的场分布) 。对于其他微波信号源也应根据说明书调到最 佳状态。有时信号源无输出,但测量放大器也有一定指示。这可能是热噪声或其他杂散场的 影响;弱信号原有输出,但测量放贷的指示不稳定或者当测量线探针移动式,岂止是不便, 均属不正常情况,应检查原因,使之正常工作。系统正常工作时,可调节测量放大器的有关 旋钮或可变衰减器的衰减量(衰减量不能为零,否则会烧坏晶体二极管,最低调到 5) ,是 测量放大器的指示便于读数。 2、 波导中横向场分布测量。 将图 1 中横向场分布测量线检波器输出连接至测量放大器, 将横向电场探针一直波导宽边中心位置, 调整测量放大器灵敏度和可变衰减器是测量放大器 表头读书处于 50~80 范围内(注意:切不要使表头满刻度,满刻度时会使指示针变形) 。 波导中 TE10 模横向场分布为预先函数,移动横向场分布测量线中电场探针从波导宽边 中心至边缘等间距都 5 个测量放大器读书 3、测量波导波长。将图 1 中纵向场分布测量线检波器输出连接至测量放贷,调整测量 放大器灵敏度和可变衰减器是测量放贷表头读书处于 50~80 范围内 (注意: 切不要使表头满 刻度,满刻度时会使指示针变形) 。 测量g 时应将系统终端短路(将终端三螺调配器的每一根金属棒推出波导,此时利用 三螺调配器的终端短路片实现终端短路) ,则系统呈纯驻波状态(理论上) ,其波导中场强的 纵向幅度如图 3 所示。当测量线的探针处于 Z1 和 Z2 位置时,测量放大器的指示为最小(理 论上为零) ,此时从测量线的刻度上即可求出波导波长g =2|Z2-Z1|。在实际测量中,由于受 设备的精度、灵敏度的限制,以及其他因素的影响,很难精确的确定 Z2 和 Z1 的位置。为提 高测试精度,可采用“平均法”测定它们的位置,如图 3 所示。为了确定 Z1,使在 Z1 两侧 (尽量地靠近 Z1)d1 和 d2 处测量放大器有相同的指示数,则 Z1=(d1+d2)/2,同理可得 Z2= (d3+d4)/2.这比直接去测 Z1 和 Z2 要精确些。
北理工微机原理上机实验考试题目类型及参考程序
北理工微机原理上机实验考试题目类型及参考程序1到100奇数的累加和显示:DATA SEGMENTSUM DB 4 DUP(?),'$'DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AXMOV AX,0MOV BX,1MOV CX,50AGAIN:ADD AX,BXADD BX,2LOOP AGAINMOV CX,4LEA SI,SUMMOV [SI],AXNEXT: MOV AX,[SI]ROL AX,4MOV [SI],AXAND AX,000FHCMP AL,9JA NEXT1ADD AL,30HMOV DL,ALMOV AH,2INT 21HJMP GOONNEXT1:ADD AL,37HMOV DL,ALMOV AH,2INT 21HGOON:LOOP NEXTMOV DL,48HMOV AH,2INT 21HMOV AH,4CHINT 21HCODE ENDSEND START八个数判断奇偶个数:DATA SEGMENTJI DB 0OU DB 0BUFFER DB 01H,02H,03H,04H,05H,06H,07H,08H DATA ENDS CODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXMOV CX,8LEA SI,BUFFERAGAIN:MOV AL,[SI]MOV BL,2MOV AH,00HDIV BLAND AH,AHJNZ JISHUINC OUJMP GONEJISHU:INC JIGONE: INC SILOOP AGAINMOV DL,JIADD DL,30HMOV AH,2INT 21HMOV DL,' 'MOV AH,2INT 21HMOV DL,OUADD DL,30HMOV AH,2INT 21HMOV AH,4CHINT 21HCODE ENDSEND START十个有符号数从大到小排序并显示DATA SEGMENTTABLE1 DB 11H,33H,22H,44H,55H,66H,77H,88H,99H,0AH DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXMOV CH,9NEXT:XOR AX,AX LEA SI,TABLE1 MOV CL,9 CLDNEXT1: LODSBCMP AL,[SI] JG NEXT2 XCHG AL,[SI] MOV [SI-1],AL NEXT2:DEC CLJNZ NEXT1 DEC CHJNZ NEXT LEA SI,TABLE1 MOV CX,10 NEXT3:XOR AX,AX CLD LODSBMOV BX,16 XOR DX,DX DIV BX XCHG DL,AL PUSH AX ADD DL,30H CMP DL,'9' JBE NEXT4 ADD DL,07HMOV AH,2INT 21HPOP AXMOV DL,ALADD DL,30HCMP DL,'9'JBE NEXT5ADD DL,07HNEXT5:MOV AH,2INT 21HMOV DL,'H'MOV AH,2INT 21HMOV DL,' 'MOV AH,2INT 21HLOOP NEXT3NEXT6:MOV AH,4CHINT 21HCODE ENDSEND START五个有符号数从小到大排列并显示DATA SEGMENTTABLE1 DB 11H,33H,22H,44H,55H,66H,77H,88H,99H,0AH DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATAMOV AX,DATAMOV DS,AXMOV CH,4红色字体是和上一个程序的不同点NEXT: XOR AX,AXLEA SI,TABLE1MOV CL,4CLDNEXT1:LODSBCMP AL,[SI]JG NEXT2XCHG AL,[SI]MOV [SI-1],ALNEXT2:DEC CLJNZ NEXT1DEC CHJNZ NEXTLEA SI,TABLE1MOV CX,5 NEXT3:XOR AX,AXCLDLODSBMOV BX,16XOR DX,DXDIV BXXCHG DL,ALPUSH AXADD DL,30HCMP DL,'9'JBE NEXT4ADD DL,07H NEXT4:MOV AH,2INT 21HPOP AXMOV DL,ALADD DL,30HCMP DL,'9'JBE NEXT5ADD DL,07H NEXT5:MOV AH,2INT 21HMOV DL,'H'MOV AH,2INT 21HMOV DL,' 'MOV AH,2INT 21HLOOP NEXT3 NEXT6:MOV AH,4CHINT 21H CODE ENDSEND START输出最大值以ASC11码输出DATA SEGMENTMEM DB 12H,56H,89H,0ABH,0DFH,29H,0,87H RESULT DB ? DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXLEA SI,MEMMOV CX,8MOV AL,0 NEXT: CMP AL,[SI] JA L1MOV AL,[SI]L1: INC SILOOP NEXTMOV CX,2LEA SI,RESULT MOV [SI],AL DISP: MOV AL,[SI] ROL AL,4MOV [SI],ALAND AL,0FHCMP AL,9JA NEXT1ADD AL,30H MOV DL,ALMOV AH,2INT 21HJMP NEXT2 NEXT1:ADD AL,37H MOV DL,ALMOV AH,2INT 21HNEXT2:LOOP DISP MOV AH,4CHINT 21HEND START字符串中0,1的个数DATA SEGMENTNUM DW 3FFFHONE DB 0ZERO DB 0DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA START: MOV AX,DATAMOV DS,AXLEA SI,NUMLEA DI,ZEROMOV AX,[SI]LEA SI,ONEMOV CH,16NEXT1:ROL AX,1JC NEXT2INC BYTE PTR [DI]JMP NEXT3NEXT2:INC BYTE PTR [SI]NEXT3:DEC CHJNZ NEXT1NEXT4:MOV AH,4CHINT 21HEND START字符串中0,1的个数带输出DATA SEGMENT NUM DW 3FFFHONE DB 0ZERO DB 0DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA START: MOV AX,DATAMOV DS,AXLEA SI,NUMLEA DI,ZEROMOV AX,[SI]LEA SI,ONEMOV CH,16NEXT1:ROL AX,1JC NEXT2INC BYTE PTR [DI]JMP NEXT3NEXT2:INC BYTE PTR [SI]NEXT3:DEC CHJNZ NEXT1NEXT4:MOV BX,10XOR DX,DXMOV DL,[DI]ADD DL,30HMOV AH,2INT 21HMOV DL,' 'MOV AH,2INT 21HXOR DX,DXXOR AX,AXMOV AX,[SI]XOR AH,AHDIV BXXCHG DL,ALADD DL,30H PUSH AXMOV AH,2INT 21HPOP AXXOR DX,DXMOV DL,ALADD DL,30HMOV AH,2INT 21H NEXT5: MOV AH,4CHINT 21H CODE ENDS END START。
北京理工大学自动化专业微机原理硬件软件实验
北京理工大学自动化专业微机原理硬件软件实验------------------------------------------作者xxxx------------------------------------------日期xxxx微机原理与接口技术硬件实验报告班级:姓名:学号:实验一: 8259中断控制器实验一、实验目的1. 掌握8259的工作原理。
2. 掌握编写中断服务程序的方法。
3. 掌握初始化中断向量的方法。
二、实验内容用单脉冲发生器的输出脉冲为中断源,每按一次产生一次中断申请,点亮或熄灭发光二极管。
三、实验设备微机实验教学系统实验箱、8086CPU模块四、连线①单脉冲发生器输出P+与8259的IR0相连②8259的片选CS8259与CS0相连③8259的INT与8086的INT相连④8259的INTA与8086的INTA相连⑤CS273与CS1相连⑥00与LED1相连其它线均已连好如下图:五、实验步骤(1)连线。
(2)编辑程序,编译链接后,调试程序。
(3)调试通过后,在中断服务程序内设置断点,运行程序,当接收到中断请求后,程序停在中断服务程序内的断点处。
(4)撰写实验报告。
六、实验源程序CODE SEGMENT PUBLICASSUME CS:CODEORG 100HSTART: MOV DX,4A0H ;写ICW1MOV AX,13HOUT DX,AXMOV DX,4A2H ;写ICW2MOV AX,80H ;IR0的中断向量码为80HOUT DX,AXMOV AX,01OUT DX,AX ;一般嵌套,非缓冲,非自动EOIMOV AX,0 ;写OCW1OUT DX,AX ;允许中断;中断向量存放在(0000H:0200H)开始的四个单元里MOV AX,0MOV DS,AXMOV SI,200H ;中断类型号为80HMOV AX,OFFSET HINT ;中断服务程序的入口地址MOV DS:[SI],AXADD SI,2MOV AX,CSMOV DS:[SI],AXSTI ;开中断,设置IF=1JMP $ ;原地跳转HINT: ;中断服务程序XOR CX,0FFH ;CX取反MOV DX,4B0H ;CS273接口的地址,与8个LED灯相连MOV AX,CX ;输出高低电平控制LED灯的亮灭OUT DX,AXMOV DX,4A0H ;OCW2的地址MOV AX,20H ;一般EOI命令,全嵌套方式OUT DX,AXIRET ;中断返回CODE ENDSEND START七、实验思考题1.将P+连线连接到IR1—IR7任意一个;重新编写程序。
北理工微机实验四
实验4 A/D和D/A转换一、实验目的1.了解A/D转换的基本原理,掌握ADC0809芯片的使用方法。
2.了解D/A转换的基本原理,掌握DAC0832芯片的使用方法。
3.了解直流电机控制的基本方法。
二、实验内容与步骤(一)A/D转换部分1. 接线:CS /0809 接Y3 /IO地址IN0 /0809 接0~5V /直流信号EOC 接总线的IRQ2. 实验电路原理图如图1.通过实验台左下角电位器RW1输出0 ~ 5V 直流电压送入ADC0809通道0(IN0),利用 debug 的输出命令启动 A/D 转换器,输入命令读取转换结果,验证输入电压与转换后数字的关系。
启动IN0开始转换:OUT 298H读取转换结果:IN 298H图1 模数转换电路3. 用万用表测量 CLOCK、ADD-C、ADD-B、ADD-A 在实验系统上如何联系的?4. 编程按中断方式采集IN0输入的电压,在屏幕上显示出转换后的数据(用16进制数)。
5. 考虑如果采用IN7输入的电压,启动开始转换和读取转换结果的地址应该是多少?6. 按查询方式采集IN0输入的电压,软硬件如何实现?● 编程提示1. ADC0809的IN0口地址为298H.2. IN0 单极性输入电压与转换后的数字的关系为:其中,为输入电压,为参考电压,这里的参考电压为+5V电源。
3. 一次A/D 转换的程序可以为:MOV DX , port OUT DX , AL ;延时IN AL , DX(二)D/A转换部分1. 接线:CS /0832 接Y2 /IO地址用万用表测量WR2和XFER在实验系统上如何联系的?2. 实验电路原理如图2所示:图2 DAC0832电路原理图DAC0832采用单缓冲方式,具有单双极性输入端(图中的Ua、Ub),利用debug输出命令(Out 290 数据)输出数据给DAC0832,用万用表测量单极性输出端Ua及双极性输出端Ub的电压,验证数字与电压之间的线性关系。
北京理工大学-实验四--实验报告表
RAM把第一个操作数存放在哪个寄存器上,通过哪组总线传送给CPU
:
数据存储器 DBΒιβλιοθήκη CPU把取到的第一个操作数存放在哪里
GR
步骤5 加法计算
CPU把两个加数放入哪里进行加法运算
ALU 计算器
当两个加数相加结束后,CPU把相加结果存放在哪里
加数一所在的通用寄存器中
00000034
RAM中加数一的编码与内存地址
00000000000011000036
步骤2 取指令
CPU使用哪根总线将PC中的内存地址送至RAM
AB
RAM将CPU传来的指令地址存储在哪里
地址储存器
MAR中存放的是什么具体的二进制编码是什么
指令编码0001110100110110
#
MAR中二进制编码对应的内存地址是什么该内存地址中存放了什么数据该数据放在哪个寄存器中
000A 指令编码 指令寄存器
PC被访问后其中的内容发生了什么变化为什么
PC中的指令地址自动加一
因为这一指令执行完要执行下一次指令
RAM将MDR中的数据通过哪条总线传送给力CPU
DB
CPU将RAM传来的指令存放在哪里
指令寄存器 IR
IR中存放的指令二进制编码是什么
0001 110100 110110
¥
步骤3 指令译码
IR中的操作码和两个操作数的内存地址分别是什么(请分别用用六位二进制数和四位十六进制表示)
0000010001
操作数1:110100 0034
操作数2:110110 0036
译码在哪里进行并通过哪组总线把该操作传递给RAM
CU控制器 CB
步骤4 取数据
CPU通过哪组总线传送地址RAM将这个地址存放在哪里
北理(bit)微机原理上机软件实验报告
北理(bit)微机原理上机软件实验报告微机原理软件编程实验报告班级:学号:姓名:⼀、实验题⽬1、IDE86集成开发环境的学习和运⽤2、编写程序求出10个数中的最⼤值和最⼩值,并以单步形式观察如何求出最⼤值、最⼩值。
3、求1到100 的累加和,并⽤⼗进制形式将结果显⽰在屏幕上。
要求实现数据显⽰,并返回DOS状态。
4、将存储器中的⼗个字节型⼗六进制有符号数按从⼩到⼤的顺序排序并按⼗六进制显⽰出来。
(56H、0ffH、78H、82H、12H、0、95H、58H、0bcH、34H)⼆、实验⽬的1、学习并掌握IDE86集成开发环境的使⽤包括编辑、编译、链接、调试与运⾏等步骤编辑:源程序的输⼊、修改。
编译:常见编译出现的语法错误的修改。
可执⾏⽂件。
运⾏:运⾏、断点设置、单步运⾏、单步跟踪;观察寄存器、标志寄存器值;观察数据存储器中的数据。
2、完成所有题⽬,提⾼编程能⼒,加深对理论课的理解。
三、实验内容1、⽂字叙述设计思路1.1编写程序求出10个数中的最⼤值和最⼩值由于⼀共有⼗个数,所以求其最⼤数或者最⼩数需要⽐较9次。
从数据段的段⾸开取数,先取两个数进⾏⽐较,⽐较完后取其中的最⼤数或者最⼩数放⼊数据段的第⼆位中。
再取第三位数与第⼆位数⽐较,如此循环,⽐较9次后在数据段最末位的就是我们需要的数。
1.2求1到100 的累加和,并⽤⼗进制形式将结果显⽰在屏幕上求和部分:1~100⼀共有100个数,所以需要做100次加法。
做加法要有两个数,第⼀个数是第i位的数值,第⼆个数是i-1位以及之前所有数的和,所以这两个数必须分别存放在两个寄存器⾥,并且两个数相加之后的所得的值,必须放在存放“和”的寄存器中,另外⼀个寄存器每做完⼀次加法⾃加1。
显⽰部分:我们所求得的最终数值在内存中是以16进制数存放的,但是由于结果只是⼀个数,我们可以把它的每⼀位所对应的ASCII码按照⼀定的顺序存放到⼀个数据段中,再以字符串形式直接输出。
1.3将存储器中的⼗个字节型⼗六进制有符号数按从⼩到⼤的顺序排序并按⼗六进制显⽰出来⽐较部分:题⽬⼀共给了我们10个数,如果要进⾏排序的话可以先把⼗个数中最⼤的数选出来,放到数据段的最后⼀个位置,接着再选出次⼤的数放到数据段的倒数第⼆位,如此循环到最后便可成功将所给的⼗个数排序好。
北理工微机原理与接口技术之8255,8253实验报告
北理工微机原理与接口技术之8255,8253实验报告微机原理与接口技术实验报告———8253可编程定时器8255并行接口实验实验一8255并行接口实验一,实验内容8255的A口作为输入口,与逻辑电平开关相连。
8255的B口作为输出口,与发光二极管相连。
编写程序,使得逻辑电平开关的变化在发光二极管上显示出来。
二,实验目的(1)掌握8255的工作原理。
(2)掌握编写8255并行接口初始化及编程实现的方法。
三,实验仪器微机实验教学系统实验箱、8086CPU模块四,实验步骤(1)连线8255的PA0—PA7分别与逻辑电平开关的K1—K8相连?PB0—PB7分别与发光二极管电路的LED1—LED8相连?CS0与8255的片选CS8255相连其它线路均已连好具体如图所示:(2)编辑程序,编译链接后,单步运行,调试程序。
(3)调试通过后,全速运行,观察实验结果。
(4)撰写实验报告。
五,实验源程序如下CODE SEGMENT PUBLICASSUME CS:CODEORG 100HSTART:MOV DX,04A6HMOV AX,90H ;写8255的控制字,A组工作在方式0,A口输入,C口高4位输出,B组工作在方式0,B口及C口的低4位均工作在输出OUT DX,AXSTART1:MOV DX,04A0HIN AX,DX ;读取A口数据MOV DX,04A2HOUT DX,AX ;将从A口读取的数据从B口输出,控制LED灯JMP START1CODE ENDSEND START六,实验现象LED灯低电平有效。
当某一开关拨到低电平时,对应的LED灯点亮。
当某一开关拨到高电平时,对应的LED灯熄灭七,思考题1.将片选线接到CS1—CS7;重新编写程序。
CS0对应地址是04A0---O4AF, CS1对应地址是04B0---O4BF.现将片选线接到CS1,重新编程:CODE SEGMENT PUBLICASSUME CS:CODEORG 100HSTART:MOV DX,04B6H ;CS1对应的地址MOV AX,90HOUT DX,AXSTART1:MOV DX,04B0HIN AX,DXMOV DX,04B2HOUT DX,AXJMP START1CODE ENDSEND START实验现象:如同片选线接到CS02.交换A B接线,A口输出、B口输入;重新编写程序。
北京理工大学自动化专业微机原理软件实验报告
微型计算机原理与接口技术软件实验报告班级:姓名:学号:实验一一.实验题目1、学习并掌握IDE86集成开发环境的使用;2、参考书例4-8,以单步形式观察程序的执行过程;3、修改该程序,求出10个数中的最大值和最小值。
以单步形式观察如何求出最大值、最小值。
二.实验目的1、熟悉IDE86集成开发环境的使用。
2、通过编程、上机调试,进一步理解汇编语言的设计思路与执行过程。
3、锻炼动手编程,独立思考的能力。
三.实验内容1、题目1的设计思路及流程图a.设计思路为实现求和的功能,首先将十个数存入内存中,设定AX为计算结果存储单元,CX为计数器,随后建立循环,将每个数依次加到AX上,直至CX=0,最后将AX中存储的结果移动到SUM存储单元中,结束程序。
b.流程图2、题目3设计思路及流程图a.设计思路为实现求取最大值最小值的功能,首先将十个数存入内存中,设定CX为计数器,将第一个数分别存入到MAX与MIN储存单元中,随后建立循环,将每个数依次与MAX(MIN)相比较,如果有大于(小于)MAX(MIN)中的,移入相应存储单元,直至CX=0。
最后将MAX和MIN中存储的数据打印在屏幕上,返回DOSb.四.实验源程序a.题目2源程序DATA SEGMENT ;定义数据段TABLE DB 12H,23H,34h,45h,56h ;10个加数DB 67H,78H,89H,9AH,0FDHSUM DW ?DATA ENDSCODE SEGMENT ;定义代码段ASSUME CS:CODE,DS:DATA,ES:DATASTART: MOV AX,DATAMOV DS,AX ;初始化DSMOV ES,AX ;初始化ESLEA SI,TABLE ;SI指向TABLEMOV CX,10 ;循环计数器XOR AX,AX ;AX为中间结果NEXT: ADD AL,[SI] ;把一个数加到AL中ADC AH,0 ;若有进位,则加到AH中INC SI ;指向下一个数LOOP NEXT ;若未加完,继续循环MOV SUM,AX ;若结束,存结果于SUMHLT ;结束CODE ENDS ;代码段结束ENDSTART ;汇编结束b.题目3源程序DATA SEGMENT ;定义数据段TABLE DB 12H,23H,34h,45h,56h ;十个待比较数DB 67H,78H,89H,9AH,0FDHMAX DB ?MIN DB ?A DB 'Max:','$' ;屏幕提示字符串B DB 0DH,0AH,'Min:','$'DATA ENDSCODE SEGMENT ;定义代码段ASSUME CS:CODE,DS:DATA,ES:DATASTART: MOV AX,DATAMOV DS,AX ;初始化DSMOV ES,AX ;初始化ESLEA SI,TABLE ;SI指向TABLEMOV CX,10 ;循环计数器XOR AX,AX ;清空AXCLD ;清方向标志DFLODSB ;AL存入一个8位数MOV MAX,AL ;将该数送MAXMOV MIN,AL ;将该数送MINDEC CX ;计数器减一NEXT: LODSB ;取下一个数CMP AL,MAX ;与MAX比较JA LARGER ;若大于转LARGERCMP AL,MIN ;否则与MIN比较JB SMALLER ;若小于转SMALLERJMP GOON ;否则转GOONLARGER:MOV MAX,AL ;AL的值存入MAX JMP GOON ;转到GOONSMALLER:MOV MIN,AL ;AL的值存入MINGOON: LOOP NEXT ;CX-1,若CX≠0转NEXTLEA DX,A ;获取A的首地址MOV AH,09H ;调用字符串显示功能INT 21HMOV AL,MAX ;MAX值存入ALCALL DISPLAY ;调用显示子程序LEA DX,B ;获取B的首地址MOV AH,09H ;调用字符串显示功能INT 21HMOV AL,MIN ;MIN值存入ALCALL DISPLAY ;调用显示子程序MOV AH,4CH ;调用返回DOS功能INT 21HDISPLAY PROC ;十六进制显示子程序PUSH BX ;保持BX内容PUSH CX ;保持CX内容MOV BH,ALMOV CH,2 ;设置循环计数器ROT: MOV CL,4 ;移位次数ROL BX,CLMOV AL,BLAND AL,0FH ;清空AL高四位ADD AL,30H ;0-9转换ASCII码CMP AL,3AHJL PRITADD AL,7H ;A-F转换ASCII码PRIT:MOV DL,ALMOV AH,2 ;调用字符显示功能INT 21HDEC CH ;计数器-1JNZ ROT ;CH≠0,继续循环POP CX ;恢复CX内容POP BX ;恢复BX内容RET ;返回DISPLAY ENDPCODE ENDS ;代码段结束ENDSTART ;结束五.实验运行结果a.题目2运行结果前五个数运算结束后寄存器状态:图3 前五个数计算后寄存器状态其中ax值为图4 前五个数计算后AX的值故此时前五个数之和为0104H。
北理工《微机技术及应用》在线作业参考答案
B.输入∕输出信号
C.输入信号
答案:C
3.使用A/D转换器对一个频率为4k H z的正弦波信号进行输入,要求在一个信号周期内采样5个点,则应选用A/D转换器的转换时间最大为()
A.50us
B.1us
C.10us
D.100us
答案:A
4.IF可以屏蔽的中断类型有()
A.外部中断的可屏蔽中断
B.外部中断和内部中断均可屏蔽
C.外部中断
D.内部中断
答案:A
5.设有一现场模拟信号,其最大可能变化频率为2KHz,则计算机在收集此信息时,最多每隔()输入一次,才能反映出输入信号的变化。
A.0.5ms
B.2ms
C.0.25ms
D.0.15ms
答案:C
6.下列指令中,有语法错误的是()
A.PUSH WORD PTR 20[BX+SI]
A.锁存器
B.缓冲器
C.移பைடு நூலகம்寄存器
D.寄存器
答案:C
14.8255A工作在方式1时,端口A和端口B作为数据输入输出使用,而端口C的各位分别作为端口A和端口B的控制信息和状态信息。其中作为端口A和端口B的中断请求信号的分别是端口C的()
A.PC6和PC7
B.PC5和PC1
C.PC4和PC2
D.PC3和PC0
A.OBH,00F0:23FFH
B.0CH ,F000:FF23H
C.0CH,23FF:00FoH
D.0BH,F000:FF23H
答案:D
19.指令指针寄存器(EIP)中存放的是()
A.操作数地址
B.当前指令
C.下一条要执行的指令
D.下一条要执行指令的地址
北理工微机原理硬件实验课件
实验程序
MOV DX,482H CODE SEGMENT PUBLIC MOV AX,0 ASSUME CS:CODE OUT DX,AX ORG 100H MOV DX,48AH START: IN AX,DX MOV DX,486H MOV DX,480H 线路状态寄存器 MOV AX,80H IN AX,DX OUT DX,AX LOOP1: MOV DX,480H CALL RECV 设置波特率为:9600 MOV AX,12 CALL SEND JMP LOOP1 OUT DX,AX 9600——12 SEND: MOV DX,482H 4800——24 PUSH AX MOV AX,0 2400——48 MOV DX,48AH 1200——96 OUT DX,AX IN AX,DX MOV DX,486H TEST AX,20H MOV AX,3 JNZ SEND2 OUT DX,AX POP AX JMP SEND SEND2: POP AX MOV DX,480H OUT DX,AX RET RECV: MOV DX,48AH IN AX,DX TEST AX,1 没有接收到 JZ RECV MOV DX,480H 接收到字符 IN AX,DX RET CODE ENDS 指向接收缓冲器 , END START 接收一个字符
8250串行接口实验
8250的内部结构
RBR RSR
THR TSR
实验目的
1.熟悉串行通信的一般原理和8250的工作原理。 2.了解RS—232串行接口标准及连接方法。 3.掌握8250芯片的编程方法。
实验设备
微机实验教学系统实验箱、8086CPU模块。
实验内容
在实验箱与PC机(上位机)之间 实现串行通信,主机每下传一个字符, 若通讯正确,则下位机返回一个同样 的字符;若不正确,则无返回值或者 返回值不同。
北京理工大学微机原理实验报告
微机原理与接口技术实验报告实验内容:汇编语言程序设计实验组别:12姓名:班级:学号:一、实验目的1、熟悉IDE86集成开发环境的使用。
2、通过编程、上机调试,进一步理解汇编语言的设计思路与执行过程。
3、熟悉DOS命令调用,以达到输入输出、返回DOS系统等目的。
4、掌握利用汇编实现求和与求最值的方法。
5、掌握利用汇编实现数制转换的方法。
6、巩固理论知识,锻炼动手编程,独立思考的能力。
二、实验内容(具体内容)1、求从TABLE开始的10个无符号字节数的和,并将结果放在SUM字单元中。
并查看前5个,前8个数之和以及各寄存器和内存的状态。
2、在1的基础上修改程序,求出10个数中的最大值和最小值,最后将最大最小值分别赋给MAX及MIN。
3、求1到 100 的累加和,并用十进制形式将结果显示在屏幕上。
要求实现数据显示,并返回DOS状态。
三、实验方法1、设计思路(1)实验1的设计思路:先将10个要相加的数存在以TABLE为首的10个连续的存储单元中,然后利用循环结构依次取出数值放在AL中并累加,若有进位则加到AH中直至循环10次累加结束,将累加的结果放在SUM中并返回DOS状态。
(2)实验2的设计思路:先将10个要比较的数放在以TABLE为首的10个连续的存储单元中。
将第一个数首先赋给AL和AH(分别存储相对最小和最大值)在利用LOOP循环结构,依次和下面的数进行比较,每次把相对的最大值与最小值存储到AH和AL中直至循环9次比较结束,将AH和AL里面的最大值与最小值赋给MAX和MIN,返回DOS状态(3)实验3的设计思路:先在内存中定义COUNT=100,表示1-100求和,若相求1-n的和并显示只需COUNT的值为n即可,同时定义一块以DNUM为首地址的数据区用于存储累加和的十进制数对应的ASCII码。
先利用AX和LOOP求出1-COUNT的累加和存在AX中;在进行数值转化,AX 依次除10取余数保存,将16进制数转化为10进制ASCII码值并存在DUNM中。
北京理工大学计算机实验四
Welcome !!!
欢迎您的下载,
资料仅供参考!
RMA中二进制编码对应的内存地址是什么?该内存地址中存放了什么数据?该数据放在哪个寄存器中?
000A指令编码指令寄存器
PC被访问后其中的内容发生了什么变化?为什么?
PC中的指令地址自动加一因为这一指令执行完要执行下一次指令
RAM将MDR中的数据通过哪条总线传送给力CPU?
DB
CPU将RAM传来的指令存放在哪里?
0000101110111000 0034
RAM中加数二的编码与内存地址
0000000000001100 0036
步骤2取指令
CPU使用哪根总线将PC中的内存地址送至RAM?
AB
RAM将CPU传来的指令地址存储在哪里?
地址储存器
RMA中存放的是什么?具体的二进制编码是什么?
指令编码00011101 00110110
实验四实验报告表
实验名称:一条指令的执行过程
学号姓名班级:实验时间:年月日
实验报告表4-1一条指令执行过程记录表
步骤1用户指定两个加数
加数1,加数2
3000 12
PC中存储的指令地址
00000000 00001011
RAM中对应指令地址中的指令码
00011101 00110110
RAM中加数一的编码与内存地址
指令寄存器IR
IR中存放的指令二进制编码是什么?
0001 110100 110110
步骤3指令译码
IR中的操作码和两个操作数的内存地址分别是什么?(请分别用用六位二进制数和四位十六进制表示)
000001 0001
操作数1: 110100 0034
北京理工大学计算机实验四
RAM中加数二的编码与内存地址
0000000000001100 0036
步骤2取指令
CPU使用哪根总线将PC中的内存地址送至RAM?
AB
RAM将CPU传来的指令地址存储在哪里?
地址储存器
RMA中存放的是什么?具体的二进制编码是什么?
指令编码00011101 00110110
加数一所在的通用寄存器中
欢迎您的下载,
资料仅供参考!
致力为企业和个人提供合同协议,策划案计划书,学习资料等等
打造全网一站式需求
RMA中二进制编码对应的内存地址是什么?该内存地址中存放了什么数据?该数据放在哪个寄存器中?
000A指令编码指令寄存器
PC被访问后其中的内容发生了什么变化?为什么?
PC中的指令地址自动加一因为这一指令执行完要执行下一次指令
RAM将MDR中的数据通过哪条总线传送给力CPU?
DB
CPU将RAM传来的指令存放在哪里?
实验四实验报告表
实验名称:一条指令的执行过程
学号姓名班级:实验时间:年月日
实验报告表4-1一条指令执行过程记录表
步骤1用户指定两个加数
加数1,加数2
3000 12
PC中存储的指令地址
00000000 00001011
RAM中对应指令地址中的指令编码
00011101 00110110
RAM中加数一的编码与内存地址
CU控制器CB
步骤4取数据
CPU通过哪组总线传送地址?RAM将这个地址存放在哪里?
AB地址储存器
RAM把第一个操作数存放在哪个寄存器上,通过哪组总线传送给CPU?
数据寄存器DB
CPU把取到的第一个操作数存放在哪里?
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
北理工微机实验四实验4 A/D和D/A转换一、实验目的1.了解A/D转换的基本原理,掌握ADC0809芯片的使用方法。
2.了解D/A转换的基本原理,掌握DAC0832芯片的使用方法。
3.了解直流电机控制的基本方法。
二、实验内容与步骤(一)A/D转换部分1. 接线:CS /0809 接 Y3 /IO地址IN0 /0809 接0~5V /直流信号EOC 接总线的IRQ2. 实验电路原理图如图1.通过实验台左下角电位器RW1输出0 ~ 5V 直流电压送入 ADC0809通道0(IN0),利用 debug 的输出命令启动A/D 转换器,输入命令读取转换结果,验证输入电压与转换后数字的关系。
启动IN0开始转换:OUT 298H读取转换结果:IN 298H图1 模数转换电路3. 用万用表测量 CLOCK、ADD-C、ADD-B、ADD-A 在实验系统上如何联系的?4. 编程按中断方式采集IN0输入的电压,在屏幕上显示出转换后的数据(用16进制数)。
5. 考虑如果采用IN7输入的电压,启动开始转换和读取转换结果的地址应该是多少?6. 按查询方式采集IN0输入的电压,软硬件如何实现?● 编程提示1. ADC0809的IN0口地址为298H.2. IN0 单极性输入电压与转换后的数字的关系为:其中,为输入电压,为参考电压,这里的参考电压为+5V电源。
3. 一次A/D 转换的程序可以为:MOV DX , port OUT DX , AL ;延时IN AL , DX(二)D/A转换部分1. 接线:CS /0832 接Y2 /IO 地址用万用表测量WR2和XFER在实验系统上如何联系的?2. 实验电路原理如图2所示:图2 DAC0832电路原理图DAC0832采用单缓冲方式,具有单双极性输入端(图中的Ua、Ub),利用debug输出命令(Out 290 数据)输出数据给DAC0832,用万用表测量单极性输出端Ua及双极性输出端Ub的电压,验证数字与电压之间的线性关系。
3. 编程产生以下波形(从Ub输出,用示波器观察)(1)锯齿波(2)正弦波● 编程提示1. 8位D/A转换器DAC0832的口地址为290H,输入数据与输出电压的关系为:(UREF表示参考电压,N表示数数据),这里的参考电压为PC机的+5V电源。
2. 产生锯齿波只须将输出到DAC0832的数据由0循环递增。
产生正弦波可根据正弦函数建一个下弦数字量表,取值范围为一个周期,表中数据个数在16个以上。
3. 参考流程图设计(三)直流电机转速控制1. 按图5线路接线:图5 直流电机连线在实验时,我们对实验进行了改进,考虑到拿8255去做,只有开关的几种状态,因此我们使用ADC0809对电位器的采样值来控制电机转速,从而实现了电机速度的连续可调。
CS /0832 接Y2 /IO 地址UB /0832 接直流电机DJCS /0809 接 Y3 /IO地址IN0 /0809 接0~5V /直流信号EOC 接总线的IRQ三、程序代码及注释3.1 ADC0809程序;ADC0809DATAS SEGMENT ;数据段PORT_ADC EQU 298HSPACE DB 13,'$'INT_SEG DW ?;保存中断向量段基址的变量INT_OFF DW ?;保存中断向量偏移量的变量INT_SOR DB ?;定义保存中断屏蔽字的变量DATAS ENDSSTACKS SEGMENT ;堆栈段STA DB 256 dup(?)TOP EQU SIZE STASTACKS ENDSCODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKS MAIN PROC FAR ;主函数MOV AX,DATASMOV DS,AXMOV AX,STACKSMOV SS,AXMOV SP,TOP ;建立堆栈指针;初始化0B号中断向量PUSH ESPUSH BX ;保护MOV AL,0BH ;指定中断号,0BH 对应IRQ3MOV AH,35H ;取该中断向量INT 21HMOV INT_SEG,ES ;保存向量段基址MOV INT_OFF,BX ;保存向量偏移地址CLI ;中断允许标志位清零POP BXPOP ES;填写中断向量表PUSH DSMOV AX,SEG INTPMOV DS,AX;中断服务程序入口段基址送DSMOV DX,OFFSET INTP;中断服务程序入口偏移量送DX MOV AL,0BH ;IRQ3中断类型号MOV AH 25H ;功能号INT 21HPOP DSIN AL,21HMOV INT_SOR,AL ;保存原中断屏蔽字AND AL,11110111B ;开放IRQ3的中断请求OUT 21H,ALSTI ;开中断LO:MOV DX,PORT_ADCOUT DX,AL ;启动ADHLTMOV CX, 0FFFFHLOOP $JMP LOEND_PRO:MOV AX,INT_SEG ;恢复中断向量MOV DS,AXMOV DX,INT_OFFMOV AL,0BHMOV AH,25HINT 21HMOV AL,INT_SOROUT 21H,ALSTIMOV AH,4CHINT 21H ;结束程序MAIN ENDPINTP PROCMOV DX,PORT_ADCIN AL,DX ;读ADC数据CALL DISPLAY ;显示;OUT DX,AL ;启动下一次ADC转换MOV AL,20H ;EOI结束OUT 20H,ALIRETINTP ENDPDISPLAY PROCMOV AH,0MOV CL,4SHL AX,CL ;AH中高4bitSHR AL,CL ;AL中低4bitPUSH AXMOV AL,AHCMP AL,10 ;AL<10JB DISP1JMP DISP2DISP1: ;显示高4bitADD AL,30H ;30H-39HMOV DL,AL ;显示MOV AH,2INT 21HJMP DISP_NEXTDISP2:SUB AL,10ADD AL,41H ;41H--AMOV DL,AL ;显示MOV AH,2INT 21HDISP_NEXT:POP AXCMP AL,10JB DISP3JMP DISP4DISP3:ADD AL,30H ;0-9MOV DL,AL ;显示MOV AH,2INT 21HJMP DISP_END DISP4:SUB AL,10ADD AL,41HMOV DL,ALMOV AH,2INT 21HDISP_END:MOV DL,48H ;显示MOV AH,2INT 21HLEA DX,SPACE ;回车换行 MOV AH,9INT 21HRETDISPLAY ENDPCODES ENDSEND MAIN3.2 DAC0832程序;DAC0832DATAS SEGMENT ;数据段PORT_DAC EQU 290HLEN DB 32DATA_SIN DB 80h, 96h, 0aeh, 0c5h, 0d8h, 0e9h, 0f5h,0fdh ;正弦表DB0ffh,0fdh,0f5h,0e9h,0d8h,0c5h,0aeh,96h DB 80h,66h,4eh,38h,25h,15h,09h,04h DB 00h,04h,09h,15h,25h,38h,4eh,66hDATA_JUCHI DB 0H,1H,2H,3H,4H,5H,6H,7H;锯齿波DB8H,9H,0AH,0BH,0CH,0DH,0EH,0FHDB10H,0FH,0EH,0DH,0CH,0BH,0AH,9HDB 8H,7H,6H,5H,4H,3H,2H,1H DATAS ENDSSTACKS SEGMENT ;堆栈段STA DB 256 dup(?)TOP EQU SIZE STASTACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKS MAIN PROC FAR ;主函数MOV AX,DATASMOV DS,AXMOV AX,STACKSMOV SS,AXMOV SP,TOP ;建立堆栈指针MOV DX,PORT_DACINIT_LO:MOV BH,LEN;LEA SI,DATA_SINLEA SI,DATA_JUCHISEND_LO:MOV AL,[SI]MOV CL,3 SHL AL,CLOUT DX,AL ;向DA 送数据 INC SI DEC BHCMP BH,0 ;一个周期已完成 JZ INIT_LOMOV AH,1 ;检测按键INT 16H JZ SEND_LO MOV AH,4CH;结束INT 21H MAIN ENDP CODES ENDS END MAIN3.3 利用AD 采样值调速直流电机(PWM );PWM_motor DATAS SEGMENT;数据段PORT_ADCEQU 298HPORT_DAC EQU 290HDUTY DB 0 ;保存AD 采样数据SPACE DB 13,'$'INT_SEG DW ? ;保存中断向量段基址的变量INT_OFF DW ? ;保存中断向量偏移量的变量INT_SOR DB ? ;定义保存中断屏蔽字的变量 DATAS ENDS STACKS SEGMENT;堆栈段STA DB 256 dup(?)TOPEQU SIZE STASTACKS ENDS CODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKS MAIN PROC FAR;主函数MOV AX,DATAS MOV DS,AX MOV AX,STACKS MOV SS,AX MOV SP,TOP;建立堆栈指针 PUSH ES ;初始化0B 号中断向量PUSH BX;保护MOV AL,0BH ;指定中断号,0BH 对应IRQ3MOV AH,35H ;取该中断向量INT 21H MOV INT_SEG,ES;保存向量段基址MOV INT_OFF,BX ;保存向量偏移地址CLI;中断允许标志位清零POP BX POP ES;填写中断向量表 PUSH DSMOV AX,SEG INTPMOV DS,AX;中断服务程序入口段基址送DS MOV DX,OFFSET INTP;中断服务程序入口偏移量送DXMOV AL,0BH ;IRQ3中断类型号 MOV AH,25H;功能号INT 21H POP DS IN AL,21H MOV INT_SOR,AL;保存原中断屏蔽字AND AL,11110111B ;开放IRQ3的中断请求 OUT 21H,AL STI;开中断MOV DX,PORT_ADCOUT DX,AL ;启动ADMOV BL, 0LO:MOV AL, 0FFHMOV AH, DUTY;AND AH, (0FFH - 111B)CMP BL, AHJB SKIP_ZEROMOV AL, 128SKIP_ZERO:MOV DX,PORT_DACOUT DX,AL ;向DA送数INC BL;MOV CX,10 ;延时;LOOP $JMP LOEND_PRO:MOV AX,INT_SEG ;恢复中断向量MOV DS,AXMOV DX,INT_OFFMOV AL,0BHMOV AH,25HINT 21HMOV AL,INT_SOROUT 21H,ALSTIMOV AH,4CHINT 21H ;结束程序MAIN ENDPINTP PROCPUSH DXPUSH CXPUSH AXMOV DX,PORT_ADCIN AL,DX ;读ADC数据MOV DUTY, AL ;SAVE THE SAMPLED DUTYCALL DISPLAY ;显示MOV DX,PORT_ADCOUT DX,AL ;启动下一次ADC转换MOV AL,20H ;EOI结束OUT 20H,ALPOP AXPOP CXPOP DXIRETINTP ENDPDISPLAY PROCMOV AH,0MOV CL,4SHL AX,CL ;AH中高4bitSHR AL,CL ;AL中低4bitPUSH AXMOV AL,AHCMP AL,10 ;AL<10JB DISP1JMP DISP2DISP1: ;显示高4bitADD AL,30H ;30H-39HMOV DL,AL ;显示MOV AH,2INT 21HJMP DISP_NEXTDISP2:SUB AL,10ADD AL,41H ;41H--AMOV DL,AL ;显示MOV AH,2INT 21HDISP_NEXT:POP AXCMP AL,10JB DISP3JMP DISP4DISP3:ADD AL,30H ;0-9MOV DL,AL ;显示MOV AH,2INT 21HJMP DISP_END DISP4:SUB AL,10ADD AL,41HMOV DL,ALMOV AH,2INT 21HDISP_END:MOV DL,48H ;显示MOV AH,2INT 21HLEA DX,SPACE ;回车换行 MOV AH,9INT 21HRETDISPLAY ENDPCODES ENDSEND MAIN四、实验结果及分析1)对ADC0809芯片进行正确连线,然后用实验板上的逻辑笔测量 CLOCK、ADD-C、ADD-B、ADD-A,发现其电平均为低电平,因此在实验系统上这三条线均为低电平,选中的是ADC0809的通道IN0.运行ADC0809的中断程序,拧动电位器,以16进制,显示AD转换的结果:采样值以16进制显示,如图,此时显示为5EH.2)运行DAC0832的程序,将示波器接在Ub 脚,在示波器上可以看到完整的正弦波。