北京理工大学自动化专业微机原理硬件软件实验
北理工通信电路软件实验报告二

实验二 二进制键控系统分析(一) 相干接收2ASK 系统分析1. 相干接收2ASK 系统分析相干接收2ASK 系统组成如下图所示:图1 2ASK 系统组成原理图2. 上机操作步骤在SystemView 系统窗下创建仿真系统, 首先设置时间窗, 运行时间: 0-0.3秒, 采样速率: 10000Hz 。
组成系统组成如下图。
参数如元件参数便笺所示。
3. 分析内容要求1) 在系统窗下创建仿真系统, 观察指定分析点的波形、功率谱及谱零点带宽;改变元件设置参数, 观察仿真结果:如果PN 码改为双极性码(Amp=1v,Offset=0v ), 能产生2ASK 信号吗?此时产生的是什么数字调制信号?改变高斯噪声强度, 观察解调波形变化, 体会噪声对数据传输质量的影响;4. 实验结果与分析(1) 调制信号为PN 码信道二进制 基带信号噪 声滤波 采样判决载 波 载 波 {}{}a)各分析点波形b)功率谱分析: 由功率谱可以看出, 基带信号能量主要在低频段, 而2ASK调制信号的能量则位于载频的3KHz左右, 符合信号经过乘法器线性搬移的结果。
同时, 谱零点带宽约为200Hz, 也符合码元速率的两倍。
(2)调制信号为双极性码(Amp=1v,Offset=0v)a)各分析点波形b)功率谱分析: 由PN码变为双极性码之后, 调制波形不再是2ASK, 而是BPSK, 两者功率谱密度规律基本一致, 谱零点带宽也均为200Hz左右。
(3)改变高斯噪声强度(Std Dev=1v)分析: 将高斯噪声标准差提高到1V, 发现输出信号与输入信号之间已有明显差别, 发生了较为严重的误码。
可见信道噪声越大, 误码率越高。
(二) 2FSK 系统分析1. 2FSK 系统组成以话带调制解调器中CCITT V.23建议规定的2FSK 标准为例, 该标准为: 码速率1200bit/s ;f0=1300Hz 及f1=2100Hz 。
要求创建符合CCITT V.23建议的2FSK 仿真系统, 调制采用“载波调频法”产生CP-2FSK 信号, 解调采用“锁相鉴频法”。
北理工微机原理上机实验考试题目类型及参考程序

北理工微机原理上机实验考试题目类型及参考程序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任意一个;重新编写程序。
北京理工大学微机原理实验报告二

本科实验报告实验名称:利用中断方式设计数字时钟课程名称:实验时间:任课教师:实验地点:实验教师:实验类型:□原理验证■综合设计□自主创新学生姓名:学号/班级:组号:学院:同组搭档:专业:成绩:实验二利用中断方式设计数字时钟一、实验目的1、掌握PC 机中断处理系统的基本原理。
2、熟悉定时/计数器8254 工作原理及其编程方法。
3、利用实验板上的8254 定时器为中断源发中断申请,中断请求用IRQ3(系统总线区的IRQ)。
4、熟悉数码管显示原理,掌握数码管显示接口技术。
5、学习数字时钟原理,实现数字时钟。
6、掌握中断控制器8259 管理。
二、实验内容与步骤接线:三、实验原理1、PC 机用户可使用的硬件中断只有可屏蔽中断,由8259 中断控制器管理。
中断控制器用于接收外部的中断请求信号,经过优先级判别等处理后向CPU 发出可屏蔽中断请求。
IBMPC、PC/XT 机内有一片8259 中断控制器对外可以提供8 个中断源:中断源中断类型号中断功能IRQ0 08H 时钟IRQ1 09H 键盘IRQ2 0AH 保留IRQ3 0BH 串行口2IRQ4 0CH 串行口1IRQ5 0DH 硬盘IRQ6 0EH 软盘IRQ7 0FH 并行打印机8 个中断源的中断请求信号线IRQ0~IRQ7 在主机的62 线ISA 总线插座中可以引出,系统已设定中断请求信号为“边沿触发”,普通结束方式。
对于PC/AT 及286 以上微机内又扩展了一片8259 中断控制,IRQ2 用于两片8259 之间级连,对外可以提供16 个中断源:中断源中断类型号中断功能IRQ8 070H 实时时钟IRQ9 071H 用户中断IRQ10 072H 保留IRQ11 073H 保留IRQ12 074H 保留IRQ13 075H 协处理器IRQ14 076H 硬盘IRQ15 077H 保留实验系统总线区的IRQ 接到了3 号中断IRQ3 上,即进行中断实验时,所用中断类型号为0BH。
北理工 自动化 微机原理实验一

微型计算机原理与接口技术软件实验报告(一)班级:学号:姓名:2012.11一、实验题目1、学习并掌握IDE86集成开发环境的使用;2、参考书例4-8,以单步形式观察程序的执行过程;3、修改该程序,求出10个数中的最大值和最小值。
以单步形式观察如何求出最大值、最小值。
二、实验目的1、熟悉IDE86集成开发环境的使用。
2、通过编程、上机调试,进一步理解汇编语言的设计思路与执行过程。
3、锻炼动手编程,独立思考的能力。
三、实验内容3.1题目2设计思路及流程图3.1.1设计思路为实现求和的功能,首先将十个数存入内存中,设定AX为计算结果存储单元,CX为计数器,随后建立循环,将每个数依次加到AX上,直至CX=O,最后将AX中存储的结果移动到SUM存储单元中,结束程序。
3.1.2程序流程图题目2的程序流程图如图1所示:图1题目2的程序流程图3.2题目3设计思路及流程图3.2.1设计思路为实现求取最大值最小值的功能,首先将十个数存入内存中,设定CX为计数器,将第一个数分别存入到MAX与M1N储存单元中,随后建立循环,将每个数依次与MAX(MIN)相比较,如果有大于(小于)MAX(MIN)中的,移入相应存储单元,直至CX=0。
最后将MAX和MIN中存储的数据打印在屏幕上,返回DoS系统,结束程序。
3.2.2程序流程图题目3的程序流程图如图2所示:图2题目3的程序流程图4.1题目2源程序DATA SEGMENT ;定义数据段TAB1E DB12H,23H,34h,45h,56h ;10个加数DB67H,78H z89H z9AH z0FDHSUM DW?DATA ENDSCODE SEGMENT ;定义代码段ASSUMECS:CoDE,DS:DATA,ES:DATASTART: MOVAX z DATAMOVDS,AX ;初始化DSMOVES,AX ;初始化ES1EASUAB1E ;SI指向TAB1EMOVCX,10 ;循环计数器XORAX z AX ;AX为中间结果NEXT: ADDA1z[SI] ;把一个数加到A1中ADCAH z O ;若有进位,则加到AH中INCSI ;指向下一个数1OOPNEXT ;若未加完,继续循环MOVSUM Z AX ;若结束,存结果于SUMH1T ;结束CODE ENDS ;代码段结束END START ;汇编结束DATA SEGMENT ;定义数据段TAB1E DB12H,23H,34h,45h,56h;十个待比较数DB67H,78H,89H,9AH,0FDHMAX DB?MIN DB?A DB,MaxOS ;屏幕提示字符串B DBoDH,0AH「Min:,SDATA ENDSCODE SEGMENT;定义代码段ASSUMECS:CoDE,DS:DATA,ES:DATASTART: MOVAX z DATAMOVDS,A× ;初始化DSMOVES,AX ;初始化ES1EASIJAB1E ;SI指向TAB1EMOVCX z IO ;循环计数器XORAX z AX ;清空AXC1D ;清方向标志DF1ODSB ;A1存入一个8位数MOVMAX z A1 ;将该数送MAXMOVMIN Z A1 ;将该数送MINDECCX ;计数器减一NEXT: 1ODSB ;取下一个数CMPA1Z MAX ;与MAX比较JA1ARGERCMPA1Z MIN JBSMA11ERJMPGOON1ARGER:M0VMAX,A1JMPGOONSM A11ER:MOVMIN z A1GO ON:1OOPNEXT1EADX,AMOVAH z09HINT21HMOVA1z MAXCA11DISP1AY1EADX,BMOVAH z09HINT21HMOVA1z MINCA11DISP1AYMOVAH z4CHINT21H DISP1AYPROCPUSHBXPUSHCX ;若大于转1ARGER;否则与MIN比较;若小于转SMA11ER ;否则转GOON;A1的值存入MAX;转到GOON;A1的值存入MIN;CX-1,若CXWO转NEXT ;获取A的首地址;调用字符串显示功能;MAX值存入A1;调用显示子程序;获取B的首地址;调用字符串显示功能;MIN值存入A1;调用显示子程序;调用返回DoS功能;十六进制显示子程序;保持BX内容;保持CX内容MOVBH z A1MOV CH,2 ;设置循环计数器ROT: MOV C1,4 ;移位次数RO1 BX z C1MOV A1B1AND A1z OFH ;清空A1高四位ADD A1,30H ;0-9转换ASCII码CMP A1z3AHJ1 PRITADD A1,7H ;A-F转换ASCII码PRIT: MOV D1,A1MOV AH,2 ;调用字符显不功能INT 21HDEC CH ;计数器-1JNZ ROT ;CHW0,继续循环POPCX 丁恢复CX内容POPBX 丁恢复BX内容RET ;返回D ISP1AYENDPCODEENDS ;代码段结束END START ;结束五、实验运行结果5.1题目2运行结果前五个数运算结束后寄存器状态:图3 其中ax 值为图4前五个数计算后AX 的值故此时前五个数之和为0104Ho 前八个数运算结束后寄存器状态:×0000图6前八个数计算后AX 的值故此时前八个数之和为026CH o 全部运算结束后,ax 的值为:图7计算结束后AX 的值故十个数的和为0403H 。
北京理工大学微机原理实验报告四

本科实验报告实验名称:A/D和D/A转换课程名称:实验时间:任课教师:实验地点:实验教师:实验类型:□原理验证■综合设计□自主创新学生姓名:学号/班级:组号:学院:同组搭档:专业:成绩:实验四 A/D和D/A转换一、实验目的1、了解A/D 转换的基本原理,掌握ADC0809 的使用方法。
2、了解D/A 转换的基本原理,掌握DAC0832 芯片的使用方法。
3、了解直流电机控制的基本方法。
二、实验内容与步骤(一)A/D 转换部分1、接线:2、实验电路原理图下图通过实验台左下角电位器RW1 输出0~5V直流电压送入ADC0809 通道0(IN0),利用debug 的输出命令启动A/D转换器,输入命令读取转换结果,验证输入电压与转换后数字的关系。
启动IN0开始转换: Out 298H读取转换结果: In 298H3、用万用表测量CLOCK、ADD-C、ADD-B、ADD-A 在实验系统上如何联系的。
4、编程按中断方式采集IN0 输入的电压,在屏幕上显示出转换后的数据(用16 进制数)。
5、考虑如果采用IN7 输入的电压,启动开始转换和读取转换结果的地址应该是多少。
6、按查询方式采集IN0 输入的电压,软硬件如何实现。
编程方案1、ADC0809 的IN0 口地址为298H。
2、IN0 单极性输入电压与转换后数字的关系为:其中Ui 为输入电压,UREF 为参考电压,这里的参考电压为+5V电源。
3、一次A/D 转换的程序可以为MOV DX, PortOUT DX,AL ;启动转换;延时IN AL,DX ;读取转换结果放在AL 中(二) D/A 转换部分1、接线:CS /0832 接 Y2 /IO 地址用万用表测量 WR2 和XFER 在实验系统上如何联系的。
2、实验电路原理如图2,DAC0832 采用单缓冲方式,具有单双极性输出端(图中的Ua、Ub),利用debug 输出命令(Out 290 数据)输出数据给DAC0832,用万用表测量单极性输出端Ua 及双极性输出端Ub 的电压,验证数字与电压之间的线性关系。
北理工自动化数据结构实验报告3

《数据结构与算法统计》实验报告——实验三一、实验目的1. 熟悉VC环境,掌握对二叉树的基本操作。
2. 在上机、调试的过程中,加强对二叉树的理解和运用。
3. 复习线性链表和递归4. 锻炼动手编程和独立思考的能力。
二、实验内容遍历二叉树。
请输入一棵二叉树的扩展的前序序列,经过处理后生成一棵二叉树,然后对于该二叉树输出前序、中序和后序遍历序列。
三、程序设计1、概要设计本程序包含三个模块:1.构造二叉树模块2.遍历二叉树模块3.主程序模块采用二叉链表作为存储结构。
(1)二叉树的抽象数据类型定义为:ADT BinaryTree {数据对象D:D是具有相同特性的数据元素的集合。
数据关系R:若D=Φ,则R=Φ,称BinaryTree为空二叉树;若D≠Φ,则R={H},H是如下二元关系;(1)在D中存在惟一的称为根的数据元素root,它在关系H下无前驱;(2)若D-{root}≠Φ,则存在D-{root}={D1,Dr},且D1∩Dr =Φ;(3)若D1≠Φ,则D1中存在惟一的元素x1,<root,x1>∈H,且存在D1上的关系H1 ⊆H;若Dr≠Φ,则Dr中存在惟一的元素xr,<root,xr>∈H,且存在上的关系Hr ⊆H;H={<root,x1>,<root,xr>,H1,Hr};(4)(D1,{H1})是一棵符合本定义的二叉树,称为根的左子树;(Dr,{Hr})是一棵符合本定义的二叉树,称为根的右子树。
基本操作:CreatBiTree(BiTree &T)操作结果:按先序次序建立二叉链表表示的二叉树TPreOrderTraverse(BiTree T,int (*visit)(char e))初始条件:二叉树T已经存在,visit是对结点操作的应用函数操作结果:先序遍历二叉树T ,对每个结点调用visit函数仅一次;一旦visit()失败,则操作失败。
北理(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个数,如果要进⾏排序的话可以先把⼗个数中最⼤的数选出来,放到数据段的最后⼀个位置,接着再选出次⼤的数放到数据段的倒数第⼆位,如此循环到最后便可成功将所给的⼗个数排序好。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
微机原理与接口技术硬件实验报告班级:姓名:学号:实验一: 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任意一个;重新编写程序。
将P+接到IR1,在原程序的基础上,把写ICW2的控制字改为81H,再把中断向量的入口地址改为0204H即可。
程序如下:CODE SEGMENT PUBLICASSUME CS:CODEORG 100HSTART: MOV DX,4A0H ;写ICW1MOV AX,13HOUT DX,AXMOV DX,4A2H ;写ICW2MOV AX,81H ;IR0的中断向量码为81HOUT DX,AXMOV AX,01OUT DX,AX ;一般嵌套,非缓冲,非自动EOIMOV AX,0 ;写OCW1OUT DX,AX ;允许中断;中断向量存放在(0000H:0200H)开始的四个单元里MOV AX,0MOV DS,AXMOV SI,204H ;中断类型号为81HMOV 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实验现象:运行程序,触发脉冲发生器产生中断请求,相应二极管点亮。
2.设置OCW1,屏蔽某个中断请求,运行程序观察现象。
将IR0重新接入LED0,设置OWC1为01H,屏蔽中断IR0,则IR0的中断无法得到响应。
程序如下:CODE SEGMENT PUBLICASSUME CS:CODEORG 100HSTART: MOV DX,4A0H ;ICW1的地址,写初始化命令字ICW1 MOV AX,13H ;上升沿触发单片8259,要写ICW4OUT DX,AXMOV DX,4A2H ;ICW2的地址,写中断向量码ICW2MOV AX,80H ;IR0的中断向量码为80HOUT DX,AXMOV AX,01 ;写中断结束控制字ICW4OUT DX,AX ;一般嵌套,非缓冲,非自动EOIMOV AX,01H ;写中断屏蔽字OCW1OUT DX,AX ;屏蔽IR0中断;中断向量存放在(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实验现象:每按单脉冲发生器一次产生一次中断申请,但连接的发光二极管一直不亮。
3. 设置OCW2,了解中断结束方式与设置优先权。
将IR0和IR1都连接到P+上,分别连接LED0和LED1到00和01。
一般EOI命令,将IR0设置为最低中断优先级。
程序如下:CODE SEGMENT PUBLICASSUME CS:CODEORG 100HSTART: MOV DX,4A0H ;ICW1的地址MOV AX,13H ;上升沿触发,单片8259,要写ICW4OUT DX,AXMOV DX,4A2H ;ICW2的地址MOV AX,80H ;IRO的中断向量码为80H,第三位自动写入OUT DX,AXMOV AX,01 ;写ICW4OUT DX,AX ;一般嵌套,非缓冲,非自动EOIMOV AX,0 ;写OCW1OUT DX,AX ;允许中断;IR0的中断向量存放在(0000H:0200H)开始的四个单元里MOV AX,0MOV DS,AXMOV SI,200HMOV AX,OFFSET HINTMOV DS:[SI],AXADD SI,2MOV AX,CSMOV DS:[SI],AXSTI ;开中断,设置IF=1;IR1的中断向量存放在(0000H:0204H)开始的四个单元里MOV AX,0MOV DS,AXMOV SI,204HMOV AX,OFFSET HINT2MOV DS:[SI],AXADD SI,2MOV AX,CSMOV DS:[SI],AXJMP $ ;原地跳转HINT1: ;中断服务程序1XOR CX,0F0H ;CX高四位取反MOV DX,4B0H ;CS273接口的地址,与8个LED灯相连MOV AX,CX ;输出高低电平控制LED灯的亮灭OUT DX,AXMOV DX,4A0H ;OCW2的地址MOV AX,E0H ;一般EOI命令,IR0优先级最低OUT DX,AXIRET ;中断返回HINT2: ;中断服务程序2XOR CX,00FH ;CX低四位取反MOV DX,4B0H ;CS273接口的地址,与8个LED灯相连MOV AX,CX ;输出高低电平控制LED灯的亮灭OUT DX,AXMOV DX,4A0H ;OCW2的地址MOV AX,E0H ;一般EOI命令,IR0优先级最低OUT DX,AXIRET ;中断返回CODE ENDSEND START实验现象:CS273的00与LED0相连,01与LED1相连,02与LED2相连,依次下去,直至07与LED7相连。
每按单脉冲发生器一次产生一次中断申请,由于IR0的优先级比IR1低,故先响应IR1,后响应IR0,观察到第四位的LED灯先点亮或熄灭,高四位的LED灯后点亮或熄灭。
八、实验心得本次实验让我熟悉了8086硬件实验系统的使用,对8259的内部寄存器的功能也有了更加深入的认识,掌握了8259的初始化步骤和工作方式的选择,以及中断服务程序的编写。
使用实验箱和编译软件对学习内容的掌握的理解有很大帮助,让我更透彻地学习了知识。
实验二 8255并行接口实验一、实验内容8255的A口作为输入口,与逻辑电平开关相连。
8255的B口作为输出口,与发光二极管相连。
编写程序,使得逻辑电平开关的变化在发光二极管上显示出来。
二、实验目的掌握8255的编程原理三、实验设备微机实验教学系统实验箱、8086CPU模块四、连线1.8255的PA0—PA7分别与逻辑电平开关的K1—K8相连。
2.PB0—PB7分别与发光二极管电路的LED1—LED8相连。
3.CS0与8255的片选CS8255相连。
4.其它线路均已连好。
五、实验步骤(1)连线。
(2)编辑程序,编译链接后,单步运行,调试程序。
(3)调试通过后,全速运行,观察实验结果。
(4)撰写实验报告。
六、实验源程序CODE SEGMENT PUBLICASSUME CS:CODEORG 100HSTART:MOV DX,04A6HMOV AX,90HOUT DX,AXSTART1:MOV DX,04A0HIN AX,DXMOV DX,04A2HOUT DX,AXJMP START1CODE ENDSEND START七、思考题1.将片选线接到CS1—CS7;重新编写程序。
将片选线接到CS1上。
在原程序的基础上,将控制口的地址改成04B6H,将A口的地址改成04B0H,将B口的地址改成04B2H。
程序如下:CODE SEGMENT PUBLICASSUME CS:CODEORG 100HSTART:MOV DX,04B6HMOV AX,90HOUT DX,AXSTART1:MOV DX,04B0HIN AX,DXMOV DX,04B2HOUT DX,AXJMP START1CODE ENDSEND START实验现象:实验将刚才的实验地址CS0换成了CS2。
这里CS0的地址为04A0H,CS1->04B0H,CS2->04C0H,CS3->04D0H,CS4->04E0H,CS5->04F0H。