北京理工大学自动化专业微机原理硬件软件实验

合集下载

北理工通信电路软件实验报告二

北理工通信电路软件实验报告二

实验二 二进制键控系统分析(一) 相干接收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

北理工自动化数据结构实验报告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)微机原理上机软件实验报告

北理(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个数,如果要进⾏排序的话可以先把⼗个数中最⼤的数选出来,放到数据段的最后⼀个位置,接着再选出次⼤的数放到数据段的倒数第⼆位,如此循环到最后便可成功将所给的⼗个数排序好。

北京理工大学ZHZH

北京理工大学ZHZH

北京理工大学微机原理与接口技术实验报告实验内容:微机原理综合设计组别:姓名:班级:学号:一、实验目的1.利用所学知识设计简单计算器。

二、实验内容利用8255控制试验箱上的键盘,实现2位十进制数以内的加减乘除运算,将运算结果通过8250发送到上位机。

键盘为10个数字键0-9,六个功能键 +、-、*、/、=、复位。

三、实验方法1.设计思路⑴.根据题目要求首先应该实现试验箱上的键盘扫描功能,计算按下键码的键值(键值检测中应该加入相应的延时程序以达到精确扫描的目的)。

再进行加减乘除算数运算,通过8250芯片发送到上位机,利用串口小助手实现算数。

2.实验程序流程图。

四、实验源程序(必要的文字注释)初始化按键闭合? 开始按键扫描保存键值 进行算数运算按键恢复? 输出结果结束NN Y Y1.简单计算器程序。

ASSUME CS:CODECODE SEGMENTORG 100HSTART: MOV DX,04A6H ;控制寄存器地址MOV AX,90H ;设置为A口输入,;B口输出,C输出OUT DX,AX ;8255初始化MOV AX,0MOV DS,AXAAA: MOV DI,2000HMOV CX,10CCC1: MOV DS:[DI],0INC DILOOP CCC1MOV DI,2000HMOV DX,486HMOV AX,80HOUT DX,AXMOV DX,480HMOV AX,12OUT DX,AXMOV DX,482HMOV AX,0OUT DX,AXMOV DX,486HMOV AX,7OUT DX,AXMOV DX,482HMOV AX,0OUT DX,AXMOV DX,48AHIN AX,DXMOV DX,480HIN AX,DXCHECK0: ;CHECK0检测是否有健被按下MOV AX,OOH ;C口的PC0、PC1、PC2作为行选择线MOV DX,04A4H ;C口地址OUT DX,AX; 写入C口内容00H,即令所有行为低电平MOV DX,04A0H ;A口地址IN AX,DX ;读入A口的内容CMP AL,OFFH ;判定是否有列线为低电平JE CHECK0 ;没有,无闭合键,则循环等待MOV CX,05FFH ;延迟常数,可以修改来改变延时时间DELAY:LOOP DELAY ;有,则延迟清除抖动,当cx=0时则停止该循环行扫描键盘和列扫描键盘,确定被按键的行值和列值MOV CL,3 ;行数MOV AH,0MOV AL,0FBH ; 0fbh=1111 1011BCONTIN: PUSH AL ;将ax的内容(0fbh)入栈保存MOV DX,04A4H ;C口地址OUT DX,AL ;写入C口内容0fbh=1111 1011B,即将第三行置为低电平MOV DX,04A0H ;A口地址IN AL,DX ;读入A口的内容MOV AH,AL ;将A口的内容送入ahCMP GH,0FFH ;判断是否有列线为低电平JNE NEXT ;比较结果不等于0则转移,即有列线为低电平POP AX ; 比较结果等于0,即没有列线为低电平,(ax)=00fbhROR AL,1 ; fbh(1111 1011B)循环右移,(al)=1111 1101检测下一行LOOP CONTIN ;循环扫描下一行,确定行JMP CHECK0 ;若所有行都没有被按下,则返回check0重新检测NEXT: MOV CH,CL ;保存行值至chMOV CL,7 ;列值从0开始编号0-7BEGIN0: SHL AH,1 ; ah为A口的内容,逻辑左移1位,末位补0 JNC GOON ;无进位则转移,即可确定列LOOP BEGIN0 ;继续循环,确定列JMP CHECK0GOON: ;计算显示码在discode中的位置:(行数-1)*8 +列值MOV BL,CL ;保存列值至BLDEC CH ;行数减1MOV CL,3SHL CH,CL ;左移三位即相当于减1之后的行数*8ADD DL,CH ;确定显示码在discode表中的偏移量,即(行数-1)*8+列值MOV BH,0MOV CX,BX ;显示码在discode表中的偏移量送CXDISPLAY: ;显示输出MOV SI, OFFSET DISCODEADD SI,CX ;显示码偏移地址MOV DX,040AH ;C口地址MOV AL,0FHOUT DX,AL ;写入C口内容,使位控(LED1)有效MOV AL,CS:[SI] ; 取被按键的显示字形码送入al MOV DX,04A2H;B口地址OUT DX,AL ; 将显示字形码送B口输出显示NOPNOPCMP AL,3fhJNZ L1MOV AH,0JMP NEXT1L1: ;定义键码子程序L1CMP AL,06hJNZ L2MOV AH,1JMP NEXT1L2: ;定义键码子程序L2CMP AL,5bhJNZ L3MOV AH,2JMP NEXT1L3: ;定义键码子程序L3CMP AL,4fhJNZ L4MOV AH,3JMP NEXT1L4: ;定义键码子程序L4CMP AL,66hJNZ L5MOV AH,4JMP NEXT1L5: ;定义键码子程序L5CMP AL,6dhJNZ L6MOV AH,5JMP NEXT1L6: ;定义键码子程序L6CMP AL,7dhJNZ L7MOV AH,6JMP NEXT1L7:CMP AL,07hJNZ L8MOV AH,7JMP NEXT1L8: ;定义键码子程序L8 CMP AL,7fhJNZ L9JMP NEXT1L9:CMP AL,6fh ;AL与6FH比较JNZ L10 ;若ZF=0则存入L10中MOV AH,9JMP NEXT1L10:CMP AL,77hJNZ L11MOV AH,10JMP NEXT1L11:CMP AL,7chJNZ L12MOV AH,11JMP NEXT1L12:CMP AL,39hJNZ L13MOV AH,12JMP NEXT1L13:CMP AL,5ehJNZ L14MOV AH,13JMP NEXT1L14:CMP AL,79hJNZ L15JMP NEXT1L15:CMP AL,71hJMP AAANEXT1:MOV DS:[DI],AHINC DICMP DI,2004HCALL DELAY1JE ACLTJMP CHECK0ACLT:MOV AX,0MOV DX,0MOV DI,2000H ;将2000H送入DIMOV AL,DS:[DI] ;将DS:[DI]的地址送入AL MOV DL,DS:[DI+2]MOV BL,DS:[DI+1]CMP BL,10JNZ K1ADD AL,DLPUSH AX ;将AX压栈JMP LOOP1 ;转移到LOOP1地址K1:CMP BL,11JNZ K2SUB AL,DLPUSH AXJMP LOOP1K2:CMP BL,12JNZ K3MUL DLPUSH AXJMP LOOP1K3:CMP BL,13JNZ LOOP1DIV DLPUSH AXJMP LOOP1PPP:LOOP1:CALL DELAY1CALL SENDJMP KKKDELAY1: ;延时子程序MOV CX,0FFFFHLLL:LOOP LLLRETSEND:PUSH AXMOV DX,48AHSEND1:IN AX,DXJNZ SEND2JMP SEND1SEND2:POP AXMOV DX,480HOUT DX,ALRETKKK:JMP CHECK0DISCODE DB 3fh,06h,5bh,4fh,66h,6dh,7dh,07h;(0-7);定义各键码DB 7fh,6fh,77h,7ch,39h,5eh,79h,71h ;(8-F)DB 01h,02h,04h,08h,10h,20h,40h,80h;(abcdefgh);显示字形码表CODE ENDS ;代码段结束END START ;程序段结束五.实验结果简单计算器1位十进制实验结果截图。

北理工微机原理第一章课件共49页文档

北理工微机原理第一章课件共49页文档
掌握MCS-51单片机的汇编语言编程。 参考书目 《微型计算机原理与接口技术》(第9章除外),清华大学出
版社,冯博琴主编 《单片微型计算机原理、应用及接口技术》第二版,(第10、
第11章除外),国防工业出版社,张迎新 等编著。
第一章 计算机基础知识
§1-1 数制 十进制、二进制、十六进制
19 00010011B 13H
编语言程序设计。
考试要求
了解微型计算机的基本组成电路、8088 CPU的结构、存储 器、总线结构以及数据在电路中的形式;
理解可编程接口芯片的初始化编程原理,不要求熟记对应 的控制字、方式字等;
掌握8088汇编语言的编程方法及可编程接口芯片的初始化 编程;
理解MCS-51单片机的内部结构、外部引脚、CPU、存储器、 并行I/O口、串行口、定时器/计数器及中断系统等基本 结构;
为什么要用十六进制?
是为了简化二进制的书写,便于记忆
返回
§1-2 逻辑电路
逻辑电路由其三种基本门电路组成。
(1)非门 A 1 Y Y=A
(2) 或门 A B
≥1 Y
Y=A+B
逻辑电路
(3)与门 A B&
Y Y=AB
(4)异或门 A =1 Y Y=A⊕ B
B
=AB+AB
异或运算的特点为:相同为0,相异为1;
第四章:16位微处理器(以最小工作模式为主)
第五章:8086系列微计算机的指令系统 第六章:程序设计(简单汇编语言程序设计)
第七章:汇编语言及汇编程序
第八章:输入/输出接口 并行通信及接口芯片8255A,串行通信及接口芯片8251 注:第九章以后为微机原理(II)的内容
微机控制与应用技术

北理工微机原理实验3

北理工微机原理实验3

北理工微机原理实验3实验三串行通信一、实验目的1、了解串行通信的基本原理。

2、掌握串行接口芯片8251 的工作原理和编程方法。

2、掌握串行接口芯片8250 的工作原理和编程方法。

3、掌握对串行接口芯片的初始化编程;学会串行通信半双工和全双工的编程技巧。

二、实验内容及步骤1、利用PC 机系统的串行通信接口实现与实验系统的双机通信,PC 机的串行通信接口的端口地址为3F8H,并画出三线连接,七线连线通信接口的连线图,接口为标准RS�D�D232(25 芯)插座。

图1 七线连线通信接口的连线图2、按图1连接好电路,其中8254计数器用于产生8251 的发送和接收时钟,TXD 和RXD 连在九针接口处。

3、接线。

CLK0 /8254 接 1M时钟CLK /8251 接 1M时钟(系统已连接,不用连接) GATE0/8254 接 +5V 0UT0 /8254 接 TX/RXCLK /8251 CS /8254 接 Y0 /IO 地址CS /8251 接 Y7 /IO 地址RXD /8251 接 TXD /九针接口TXD /8251 接 RXD /九针接口4、8254 计数器的计数初值=时钟频率/(波特率×波特率因子),这里的时钟频率接1MHz,波特率若选1200,波特率因子若选16,则计数器初值为52。

5、设串行通信的波特率为 1200、偶校验、数据位为7 位、一位停止位,利用查询方式实现单工通信。

要求发送方将任一文件传送到收方,收方收到后将源程序写入磁盘。

分别编写收方和发方的通信程序。

6、上述参数不变,用中断方式实现半双工通信,编写程序。

7、PC 机寄存器的端口地址如下表所示。

PC 机寄存器的端口地址 PC 机寄存器的端口地址 I/O 端口 IN/OUT 3F8* OUT 3F8* IN 3F8** OUT 3F9** OUT 3F9* OUT 3FB OUT 3FA IN 3FC OUT 3FD IN 3FE IN * 线路控制寄存器第七位 DLAB=0 ** 线路控制寄存器第七位 DLAB=1波特率和除数因子对照表因子值波特率波特率单位 HZ 单位 HZ MSB LSB 50 09 00 1800 75 06 00 2000 110 04 17 2400 134.5 03 59 3600 150 03 00 4800 600 00 C0 9600 1200 00 60 寄存器名称发送保持寄存器接收数据寄存器波特率因子(LSB)波特率因子 (MSB) 中断允许寄存器线路控制寄存器中断标志寄存器 MODEM 控制寄存器线路状态寄存器 MODEM 状态寄存器因子值 MSB 00 00 00 00 00 00 LSB 40 3A 30 20 18 0C 三、程序实现对于整个程序的实现,可以分为几个步骤。

18北理工微机技术及应用

18北理工微机技术及应用

18北理工微机技术及应用
北理工微机技术及应用专业是一个涉及计算机硬件和软件技术的学科方向,培养学生具备扎实的计算机技术基础和应用能力。

本专业注重学生的理论学习和实践能力培养,使学生能够在计算机技术领域内具备独立研发和解决实际问题的能力。

首先,北理工微机技术及应用专业注重学生对计算机基础知识的学习。

学生主要学习计算机组成原理、操作系统、计算机网络、编程语言等基础课程。

这些课程帮助学生掌握计算机的工作原理、基本组件和基础技术,为学生提供了扎实的理论基础。

其次,北理工微机技术及应用专业重视学生的实践能力培养。

学生将在实验室中进行各种实际操作和项目实践,例如硬件设计、软件开发、网络配置等。

通过实践,学生们能够将理论知识应用于实际问题的解决上,提高自己的技术水平和应用能力。

此外,北理工微机技术及应用专业还鼓励学生进行科研和创新项目。

学院为学生提供了丰富的科研平台和项目资源,鼓励学生积极参与科研活动和创新项目。

学生可以通过参与科研项目,深入研究某一领域,提高自己的科研能力和创新能力。

北理工微机技术及应用专业毕业生主要从事计算机软件开发、系统集成、技术支持等工作。

他们在工作中能够灵活运用所学的计算机技术和知识,解决实际问题,并且能够与团队成员合作,达到理想的工作效果。

总之,北理工微机技术及应用专业是一个注重理论学习和实践能力培养的专业。

学生在学习过程中,将获得扎实的计算机基础知识和应用能力,培养自己的科研能力和创新能力,为将来的工作打下坚实的基础。

北京理工大学-微机原理综合设计实验-数字电压表A

北京理工大学-微机原理综合设计实验-数字电压表A

北京理工大学-微机原理综合设计实验-数字电压表A————————————————————————————————作者:————————————————————————————————日期:微机原理与接口技术实验报告实验内容:微机原理综合设计实验数字电压表A组别:31姓名:12届黄大师班级:xxxxxxxxx 学号:xxxxxxxxxx一、实验目的1、掌握8255的使用及编程原理。

2、掌握8253定时/计数器的编程原理。

3、掌握ADC0809的使用方法。

4、掌握共阴极七段数码管的工作原理。

5、加强多芯片的综合运用。

6、加强汇编语言程序设计。

二、实验内容利用ADC0809采集电位器的电压值,将采集的电压值通过8255显示在七段数码管上,显示数据保留小数点后2位,利用8253定时数据更新,每隔0.5秒数据更新一次。

扩展要求:具有设置报警阈值功能,当超过阈值时,点亮一个LED灯。

三、实验方法1、设计思路先利用ADC0809采集电位器的电压值,此时的电压值在AL中,但其真正的值应该为5/255*AL伏。

根据要求保留小数点后2位,利用程序先将AL乘以500/255,约为196,即将电压值扩大100倍,先除以100,得到最高位,再依次除以10,得到小数点后第一,二位,分别存在连续的三个存储单元中。

定义0-9共阴极七段数码管的显示码数据段,再通过8255 依次选通3个数码管,通过8255依次送入刚才所得的三个值的显示码。

利用8253工作在方式二,每隔0.5秒产生一低脉冲送到8255,利用程序检验,每隔0.5秒才调用电压采集程序。

对于扩展要求可利用74LS273实现。

实验简单主要原理图如下:将可变电位器AN0与ADC0809的ADIN0相连,将CS2与ADC0809的片选CS0809端相连,将ADC0809的EOC 与8255的PC0相连,CS0与8253的片选CS8253相连,CLK3(750KHz )与8253CLK0相连,8253的OUT0与8253CLK2相连,OUT2与8255的PA0相连,CS1与8255的片选CS8255相连,PC4-PC6与LED1-LED3依次相连,PB0-PB7依次与LED-A —LED-DP 相连。

北理工 自动化 模电EDA实验报告

北理工 自动化 模电EDA实验报告

模拟电子技术实验报告班级:学号姓名:2012.11EDA实验一、实验目的1、熟悉元器件的调用、编辑及参数设置的方法。

2、掌握应用虚拟仪器测量静态工作点、电压增益、输入电阻和输出电阻的方法。

3、学习应用软件仿真分析功能。

4、巩固单管放大电路的相关知识。

二、实验器材计算机、MULTISIM 2001软件三、实验电路图1 实验电路图四、实验内容与步骤4.1连接电路如图连接电路,其中:4R 、7R 和函数发生器暂时不接入电路;调节直流电压为12V ;调节函数信号发生器的输出信号为频率1kHz ,幅值为7.1mV 的正弦波。

4.2 单管放大电路的静态、动态性能测试 4.2.1 调节静态工作点,测定电压放大倍数接线检查正确无误后,打开开关。

不接入4R 、7R ,并将输入端对地短路,用万用表DC 档测定C 点电压C U 的值,调节电位器使得8C U V =,再测量出此时的B 、E 点电压B U 、E U 的值。

打开短路线,接入函数信号发生器,用示波器监视输出电压的波形,在输出电压不失真的条件下,用万用表测量输出电压o U '的值,然后计算u o s A U U ''=的值。

4.2.2 观察负载电阻的变化对输出电压波形及电压放大倍数的影响接入7 4.7R k =Ω,其他条件不变,观察输出电压波形的变化,测量输出电压o U 的值,计算u o s A U U =的值。

4.2.3 观察电位器的变化对输出电压波形的影响条件:40R =,7R =∞。

调节2R 为100k Ω,此时基极电流最小,加入正弦信号,观察输出电压波形的变化。

若输出电压无失真,用万用表测量输出电压o U 以及静态工作点B U 、C U 、E U 的值。

调节20R =,此时基极电流最大,加入正弦信号,观察输出电压波形是否失真,并用万用表测量静态工作点B U 、C U 、E U 的值。

4.2.4 测定输入电阻i R条件:42R k =Ω,7R =∞。

北理工微机原理硬件实验课件

北理工微机原理硬件实验课件

实验程序
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机(上位机)之间 实现串行通信,主机每下传一个字符, 若通讯正确,则下位机返回一个同样 的字符;若不正确,则无返回值或者 返回值不同。

北京理工大学 实验一 实验报告表

北京理工大学 实验一 实验报告表

实验一实验报告表
实验名称:图灵机模型与计算机硬件系统虚拟拆装实验
学号2015216898 姓名唐玮班级:计算机15-4班实验时间:2015年10月27日
实验报告表1-1图灵机模型中的主要组成部分及作用
说明:可根据需要加行
实验报表1-2冯.诺依曼计算机体系结构的功能描述
实验报告表1-3 实验所使用的计算机硬件配置登记表
实验报告表1-4 微型计算机拆卸顺序记录表
实验报告表1-5 微型计算机安装顺序记录表
实验报告表1-6 微型计算机安装顺序调整记录表
说明:可根据需要加行
实验报告表1-7 6个指定部件的安装顺序记录表
实验报告表1-8 扩充内存
实验报告表1-9更换显卡。

北京理工大学自动控制原理实验报告

北京理工大学自动控制原理实验报告

本科实验报告实验名称:控制理论基础实验实验1 控制系统的模型建立一、实验目的1、掌握利用MATLAB 建立控制系统模型的方法。

2、掌握系统的各种模型表述及相互之间的转换关系。

3、学习和掌握系统模型连接的等效变换。

二、实验原理1、系统模型的 MATLAB描述系统的模型描述了系统的输入、输出变量以及内部各变量之间的关系,表征一个系统的模型有很多种,如微分方程、传递函数模型、状态空间模型等。

这里主要介绍系统传递函数(TF)模型、零极点增益(ZPK)模型和状态空间(SS)模型的MATLAB 描述方法。

1)传递函数(TF)模型传递函数是描述线性定常系统输入-输出关系的一种最常用的数学模型,其表达式一般为在MATLAB 中,直接使用分子分母多项式的行向量表示系统,即num = [bm, bm-1, … b1, b0]den = [an, an-1, … a1, a0]调用tf 函数可以建立传递函数TF 对象模型,调用格式如下:Gtf = tf(num,den)Tfdata 函数可以从TF 对象模型中提取分子分母多项式,调用格式如下:[num,den] = tfdata(Gtf) 返回cell 类型的分子分母多项式系数[num,den] = tfdata(Gtf,'v') 返回向量形式的分子分母多项式系数2)零极点增益(ZPK)模型传递函数因式分解后可以写成式中, z1 , z2, …,z m称为传递函数的零点,p1,p2,…,p n称为传递函数的极点,k 为传递系数(系统增益)。

在MATLAB 中,直接用[z,p,k]矢量组表示系统,其中z,p,k 分别表示系统的零极点及其增益,即:z=[z1,z2,…,zm];p=[p1,p2,…,pn];k=[k];调用zpk 函数可以创建ZPK 对象模型,调用格式如下:Gzpk = zpk(z,p,k)同样,MATLAB 提供了zpkdata 命令用来提取系统的零极点及其增益,调用格式如下:[z,p,k] = zpkdata(Gzpk) 返回cell 类型的零极点及增益[z,p,k] = zpkdata (Gzpk,’v’) 返回向量形式的零极点及增益函数pzmap 可用于求取系统的零极点或绘制系统得零极点图,调用格式如下:pzmap(G) 在复平面内绘出系统模型的零极点图。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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。

相关文档
最新文档