微机原理实验报告三

合集下载

微机实验报告——定时器计数器

微机实验报告——定时器计数器

实验三8253定时器/计数器实验一、实验目的1.学会8253芯片与微机接口的原理和方法。

2.掌握8253定时器/计数器的工作原理和编程方法。

二、实验内容编写程序,将8253的计数器0设置为方式2(频率发生器),计数器1设置为方式3(方波频率发生器),计数器0的输出作为计数器1的输入,计数器1的输出接在一个LED上,运行后可观察到该LED在不停地闪烁。

1.编程时用程序框图中的二个计数初值,计算OUT1的输出频率,用表观察LED,进行核对。

2.修改程序中的二个计数初值,使OUT1的输出频率为1Hz,用手表观察LED,进行核对。

3.上面计数方式选用的是 16 进制,现若改用 BCD 码,试修改程序中的二个计数初值,使LED的闪亮频率仍为1Hz。

三、实验区域电路连接图CS3→0040H;JX8→JX0;IOWR→IOWR;IORD→IORD;A0→A0;A1→A1;GATE0→+5V;GATE1→+5V;OUT0→CLK1;OUT1→L1;CLK0→0.5MHz;(单脉冲与时钟单元)四、程序框图8253方式控制字五、编程程序code segmentassumecs:codeorg 1000hstart:mov dx,43h /控制字地址/ mov al,00110100boutdx,almov dx,40h /计时器0地址/mov al,0F4houtdx,almov al,01h /计数器0写入初值01F4H/outdx,almov dx,43hmov al,01110110boutdx,almov dx,41h /计时器1地址/mov al,0E8houtdx,almov al,3h /计数器1写入初值03E8H/out dx,al /分两次赋值,先低八位0E8H,后高八位03H/jmp $ /8253自行控制led灯/code endsend start六、实验步骤1. 按连线图连接好,检查无误后打开实验箱电源。

微机南京晓庄学院实验报告3

微机南京晓庄学院实验报告3

南京晓庄学院信息工程学院微机原理与接口技术实验报告实验名称:___8255A可编程并行口实验_年级专业班级:14级计转本__专业_2_班级学号:___14131609_姓名:__黄强___学号:________姓名:_______学号:________姓名:_______时间:_____年_____月_____日一、实验目的、要求:1、掌握并行接口芯片8255A和微机接口的连接方法。

2、掌握并行接口芯片8255A的工作方式及其编程方法。

二、实验仪器设备、器件及环境:仪器设备名称规格型号编号备注DVCC软件8255A发光二极管三、实验方法、原理:L3,L4,L5,作为南北路口的交通灯与PC3,PC4,PC5(红绿黄)相连,L0,L1,L2作为东西路口的交通灯与PC0,PC1,PC2(红绿黄)相连,编程使得六个灯按交通变化规律亮灭。

要求:(1)南北路口的绿灯、东西路口的红灯同时亮并延迟一段时间(2)南北路口的黄灯闪烁5次,同时东西路口的红灯继续亮(3)南北路口的红灯、东西路口的绿灯同时亮并延迟一段时间(4)南北路口的红灯继续亮、同时东西路口的黄灯亮闪烁5次(5)转(1)重复。

四、实验内容、步骤:(1) CS_8255插孔连译码输出070H~07FH插孔(图中Y7= 070H~07FH),8255A地址范围为70H-73H。

(2)L3,L4,L5与PC3,PC4,PC5(红绿黄)相连;L0,L1,L2与PC0,PC1,PC2(红绿黄)相连。

实验现象、结果:DATAS SEGMENT;此处输入数据段代码DATAS ENDSSTACKS SEGMENT;此处输入堆栈段代码STACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKS START:mov dx,073h;mov al,10000000Bout dx ,al;开始LOP:mov al,00100001Bout 72h,alCALL LOP1CALL LOP1CALL LOP1mov bx,06Habd:mov al,00010010Bout 72h,alCALL LOP1mov al,00000000Bout 72h,alCALL LOP1sub bx,01hcmp bx,01hjg abdmov al,00001100Bout 72h,alCALL LOP1CALL LOP1CALL LOP1JMP LOP五、实验体会:___实验时主要为设置8255c口输出,然后让南北路的灯亮,然后通过延迟,让每个灯延迟闪烁,进行延迟主要方便停留现象,以便于观察。

微机原理综合实验报告

微机原理综合实验报告

滨江学院微机原理综合实验实验报告学生姓名学号专业信息工程班级2016级二O一八年十二月三十日微机原理综合实验实验一利用DEBUG调试程序调试程序段1、实验目的1)熟悉DEBUG有关命令的使用方法。

2)利用DEBUG掌握有关指令的功能。

3)利用DEBUG运行简单的程序段。

2、实验内容1)进入和退出DEBUG程序。

2)学会DEBUG中的D命令、E命令、R命令、T命令、A命令、G命令等的使用。

对于U命令、N命令、W命令等,也应试一下。

3)利用DEBUG,验证乘法、除法、加法、减法、带进位加、带借位减、堆栈操作指令、串操作指令的功能。

3、实验准备1)仔细阅读有关DEBUG命令的内容,对有关命令,都要事先准备好使用的例子。

2)作为例子,准备用A命令,输入在显示器上显示字符“S”的系统调用程序段。

3)阅读将AX左移9位的程序段。

4、实验步骤1)在DOS提示符下,进入DEBUG程序。

2)在DOS目录下启动DEBUG。

3)详细记录每一步所用的命令,以及查看结果的方法和具体结果。

5、实验报告要求1)如何启动和退出DEBUG程序。

2)整理每个DEBUG命令使用的方法,实际示例及执行结果。

3)启动DEBUG后,要装入某一个.EXE文件,应通过什么方法实现?实验结果:实验二分支程序实验1、实验目的1)掌握分支程序的设计方法。

2)掌握利用DEBUG修改参数、检查结果的方法。

3)掌握汇编语言源程序的编辑、汇编、连接及调试过程。

2、实验内容1)编写一个程序,显示AL寄存器中的两位十六进制数2)编写一个程序,判别键盘上输入的字符;若是1-9字符,则显示之;若为A-Z 或a-z字符,均显示“c”;若是回车字符<CR>(其ASCII码为0DH),则结束程序,若为其它字符则不显示,继续等待新的字符输入。

3、实验准备1)编写实验内容要求的两个程序。

2)写出调试以上程序,即修改程序参数,检查结果的操作方法。

3)熟悉源程序汇编、连接命令的使用方法即要回答的内容。

微机原理实验三实验报告

微机原理实验三实验报告

实验3. 循环程序设计一、实验目的⒈掌握移位指令的使用方法。

⒉学会循环结构程序的编程方法。

⒊利用DEBUG调试程序查看循环程序循环过程中CS和IP的变化情况。

二、实验要求⒈编写程序并上机调试,记录运行结果。

⒉用DEBUG调试程序调试所编程序,查看并记录每条指令内存单元地址及执行结果(包括F标志寄存各位值。

)⒊注意观察并记录每条指令执行后CS和IP寄存器值变化情况,以加深对循环程序的概念的理解。

三、实验内容⒉编写统计15个学生数学学习成绩程序。

要求:分别统计出低于60分,60-69分,70-79分,80-89分,90-100分的人数,并存放到S5,S6,S7,S8,S9,S10对应内存单元中。

源程序代码;DATA SEGMENTDATA1 DB 55,60,65,88,67,70,75,80,77,85,90,66,95,53,100DATA2 DB 5 DUP(?)DATA ENDS;CODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXMOV CX,15LEA SI,DATA1LEA DI,DATA2AGAIN:MOV AL,[SI]CMP AL,90JB NEXT1INC BYTE PTR[DI]JMP NEXT0NEXT1:CMP AL,80JB NEXT2INC BYTE PTR[DI+1]JMP NEXT0NEXT2:CMP AL,70JB NEXT3INC BYTE PTR[DI+2]JMP NEXT0NEXT3:CMP AL,60JB NEXT4INC BYTE PTR[DI+3]JMP NEXT0NEXT4:INC BYTE PTR[DI+4]NEXT0:INC SILOOP AGAINMOV AH,4CHINT 21HCODE ENDSEND START程序运行结果截图:四、实验总结本次实验掌握移位指令的使用方法。

微机原理实验报告

微机原理实验报告

微机原理实验报告实验一两个多位十进制数相加的实验一、实验目的学习数据传送和算术运算指令的用法熟悉在PC机上建立、汇编、链接、调试和运行汇编语言程序的过程。

二、实验内容将两个多位十进制数相加,要求被加数和加数均以ASCII码形式各自顺序存放在以DATA1、DATA2为首的5个内存单元中(低位在前),结果送回DATA1处。

三、程序流程图图3-1四、参考程序清单DATA SEGMENTDATA1 DB 33H,39H,31H,37H,34H;被加数DATA1END EQU $-1DATA2 DB 34H,35H,30H,38H,32H;加数DATA2END EQU $-1SUM DB 5 DUP(?)DATA ENDSSTACK SEGMENTSTA DB 20 DUP(?)TOP EQU LENGTH STASTACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK,ES:DATA START: MOV AX,DATAMOV DS,AXMOV AX,STACKMOV SS,AXMOV AX,TOPMOV SP,AXMOV SI,OFFSET DATA1ENDMOV DI,OFFSET DATA2ENDCALL ADDAMOV AX,4C00HINT 21HADDA PROC NEARMOV DX,SIMOV BP,DIMOV BX,05HAD1: SUB BYTE PTR [SI],30HSUB BYTE PTR [DI],30HDEC SIDEC DIDEC BXJNZ AD1MOV SI,DXMOV DI,BPMOV CX,05HCLCAD2: MOV AL,[SI]MOV BL,[DI]ADC AL,BLAAAMOV [SI],ALDEC SIDEC DILOOP AD2MOV SI,DXMOV DI,BPMOV BX,05HAD3: ADD BYTE PTR [SI],30H ADD BYTE PTR [DI],30H DEC SIDEC DIDEC BXJNZ AD3RETADDA ENDP CODE ENDS END STAR实验二排序实验一、实验目的掌握用汇编语言编写排序程序的思路和方法。

微机原理实验报告

微机原理实验报告

微机原理实验报告微机原理与接口技术实验报告学院:信息工程学院班级:学号:姓名:实验一:系统认识实验1 实验目的:掌握TD-PITE 80X86 微机原理及接口技术教学实验系统的操作,熟悉Wmd86联机集成开发调试软件的操作环境。

2 实验设备:PC机一台,TD-PITE 实验装置一套。

3 实验内容:编写实验程序,将00H~0FH 共16 个数写入内存3000H 开始的连续16 个存储单元中。

4 实验步骤:1. 运行Wmd86 软件,进入Wmd86 集成开发环境。

2. 环境调试,“设置”选项中选择汇编语言。

语言环境选择界面3. 新建文档,编写程序,程序如下:SSTACK SEGMENT STACKDW 32 DUP(?)SSTACK ENDSCODE SEGMENTASSUME CS:CODE,SS:SSTACKSTART: PUSH DSXOR AX, AXMOV DS, AXMOV SI, 3000HMOV CX, 16AA1: MOV [SI], ALINC SIINC ALLOOP AA1AA2: JMP AA2CODE ENDSEND START4. 编译连接,程序无误下载:信息界面5. 连接PC与实验系统的通讯电缆,打开实验系统电源。

6. 下载程序,查看内存3000H 开始的连续16 个存储单元中的内容,显示如下:8.由于该内存段原始数据与实验数据相同,便于区分观察,将该内存段初始化,然后查看:9.点击运行程序,在此查看该段内存:10.设置断点,执行程序:5 操作练习编写程序,将内存3500H 单元开始的8 个数据复制到3600H 单元开始的数据区中。

通过调试验证程序功能,使用E命令修改3500H 单元开始的数据,运行程序后使用D命令查看3600H 单元开始的数据。

1、编写程序如下:SSTACK SEGMENT STACKDW 32 DUP(?)SSTACK ENDSCODE SEGMENTASSUME CS:CODE,SS:SSTACKSTART: PUSH DSXOR AX, AXMOV DS, AXMOV SI, 3500HMOV DI, 3600HMOV CX, 8AA1: MOV AL, [SI]MOV [DI], ALINC SIINC DILOOP AA1AA2: JMP AA2CODE ENDSEND START2、执行过程如上,内存变化如下:程序执行前程序执行后实验二:数制转换实验1、实验目的1. 掌握不同进制数及编码相互转换的程序设计方法,加深对数制转换的理解;2. 熟悉程序调试的方法。

微机原理(单片机汇编)实验报告

微机原理(单片机汇编)实验报告

软件实验报告软件实验一一、实验目的1.熟悉软件实验的基本步骤和汇编程序的调试方法;2.了解内存块的移动方法;3.了解将十六进制数转换成ASCII值的方法。

二、实验原理用MOV和MOVX指令可以进行数据的赋值和移动,用循环可以完成大量数据的复制。

三、实验内容及步骤1、软件设置为模拟调试状态,在所建的Project文件中添加例程1的源程序进行编译,编译无误后,可以选择单步或跟踪执行方式或全速运行程序。

打开CPU窗口,观察CPU窗口各寄存器的变化。

打开View菜单中的Memory Window,可以观察内部RAM、外部RAM的数据和程序存储器中的程序。

在Address窗口输入X:8000H后回车,观察8000H-800FF起始的256个字节单元的内容。

2、新建一个Project文件,添加例程2的源程序进行编译,编译无误后,可以选择单步或跟踪执行方式或全速运行程序。

打开View菜单中的Memory Window,在Address 窗口的Memory#1输入X:3000H后回车,点击运行按钮后, 在Memory#2输入X:4000H后回车,观察外部RAM3000H和4000H中的内容。

3、添加将片内30H-3FH单元的内容复制片外片外1030H~103FH中的源程序,编译运行,观察比较30-3FH单元中的内容和片外1030H-103FH中的内容。

4、添加将30H、31H单元中的十六进制数,转换成ASCII码,存放到40H开始的4个单元中的源程序,编译运行,观察结果。

5、添加求内部RAM 30H—37H单元中8个无符号数的算术和的源程序,8个无符号数设定为25H,36H,4AH,65H,7FH,82H,9BH,1DH,观察39H,38H中的数字是否分别为02H,C3H。

四、实验结果1.步骤1的结果为8000H-80FFH的内容都为1.2.步骤2的结果为3000H起始的256个字节存储块与4000H起始的256个字节存储块各单元内数据对应相同。

微机原理实习报告

微机原理实习报告

目录1.实验题目、目的、要求及内容 (2)2.设计过程 (3)2-1. A/D采集电压模块 (3)2-2.数码管显示电压模块 (4)2-3.D/A转换与电机控制模块 (8)3.附录 (9)3-1.系统硬件 (9)3-2.系统软件 (10)4.实习心得 (14)5.参考资料 (15)实验题目:数字电压表实验目的:通过本次实习,能够掌握各个芯片与8086的接口方法及工作原理,了解ADC0809转换器的性能、编程及8086采集数据的过程,了解数码管动态显示的原理,学会D/A转换的基本原理和D/A 转换芯片的性能和编程方法,学习各芯片在硬件电路中的连接,实现模数转换、数模转换、数码管显示等过程并最终完成整个数字电压表系统。

在实验中要熟悉对一般模拟、数字电路的实际设计过程,充分掌握对小型系统的设计能技巧,同时巩固以往的学习内容,达到灵活运用的能力。

实验要求:完成对系统硬件的设计,分析出各个芯片的地址及功能,并进行编程调试使硬件与软件相结合。

实验内容:(1)利用A/D转换器检测模拟电压(2)利用8255将检测的电压在数码管上显示(3)利用D/A转换器将电压输出,控制直流电动机的运行设计过程:1) A/D 采集电压模块硬件部分:CSEG SEGMENTASSUME CS:CSEGSTART:DO:MOV DX,9000H ;选择地址为9000H 的通道OUT DX,AL ;将AL 的内容在该通道中输出MOV CX,200 ;设置循环次数DELAY:DEC CXJNE DELAY ;延时IN AL,DX ;读入转换结果JMP DO ;无条件转向DO ,实现对电压值不断测量和转换 JMP $CSEG ENDSEND START2)数码管显示电压模块七段数码管的字型代码表如下表:位选通信号(0x002H)段码输出 (0x004H) 数据总线软件部分:①将A/D转换的数据按位分配DSGE SEGMENTWAN DB 0THA DB 0HUN DB 0TEN DB 0ONE DB 0DSGE ENDSCSEG SEGMENTASSUME CS:CSEG,DS:DSEGSTART:MOV AX,DSEGMOV DS,AXMOV BL,196MUL BLMOV DX,0MOV CX,10000DIV CXMOV WAN,AL ;取出万位数赋给WANMOV AX,DXMOV DX,0MOV CX,1000DIV CXMOV THA,AL ;取出千位数赋给THAMOV AX,DXMOV CL,100DIV CLMOV HUN,AL ;取出百位数赋给HUNMOV AL,AHMOV AH,0MOV CL,10DIV CLMOV TEN,AL;取出十位数赋给TENMOV ONE,AH ;取出个位数赋给ONE CSEG ENDSEND START②在数码管上显示数字DSEG SEGMENTDUAN DB 3FH,06H,5BH,4FH,66H,6DH ;设置段选WEI DB 20H,10H,08H,04H,02H,01H ;设置位选DSEG ENDSCSEG SEGMENTASSUME CS:CSEG,DS:DSEGSTART:MOV AX,DSEGMOV DS,AXDO:CALL XS ;调用子程序XSJMP DOXS PROCLEA SI,WEI ;将数据段WEI的首地址赋给SIMOV DX,8002H ; 将8002H赋给DXMOV AL,[SI] ;将地址SI里的内容赋给ALOUT DX,AL ; 第一个数的位选LEA DI,DUAN ;将数据段DUAN的首地址赋给DI MOV DX,8004H ;将8004H赋给DXMOV AX,[DI] ;将地址DI里的内容赋给AXOUT DX,AX ; 显示第一个数CALL DELAY ;调用延时子程序DELAYLEA SI,WEIMOV DX,8002HMOV AL,[SI+1]OUT DX,AL ;第二个数的位选LEA DI,DUANMOV DX,8004HMOV AL,[DI+1]OUT DX,AL ;显示第二个数CALL DELAYLEA SI,WEIMOV DX,8002HMOV AL,[SI+2]OUT DX,AL ;第三个数的位选LEA DI,DUANMOV DX,8004HMOV AL,[DI+2]OUT DX,AL ;显示第三个数CALL DELAYLEA SI,WEIMOV DX,8002HMOV AL,[SI+3]OUT DX,AL ;第四个数的位选LEA DI,DUANMOV DX,8004HMOV AL,[DI+3]OUT DX,AL ;显示第四个数CALL DELAYLEA SI,WEIMOV DX,8002HMOV AL,[SI+4]OUT DX,AL ;第五个数的位选LEA DI,DUANMOV DX,8004HMOV AX,[DI+4]OUT DX,AL ;显示第五个数CALL DELAYLEA SI,WEIMOV DX,8002HMOV AL,[SI+5]OUT DX,AL ;第六个数的位选LEA DI,DUANMOV DX,8004HMOV AL,[DI+5]OUT DX,AL ;显示第六个数CALL DELAYRETXS ENDPDELAY PROC ;延时子程序MOV BL,25NEXT1: MOV CX,10W10MS1:LOOP W10MS1DEC BLJNZ NEXT1RETDELAY ENDPCSEG ENDSEND START ;程序结束3)D/A转换与电机控制模块CS0软件部分:CSEG SEGMENTASSUME CS:CSEGSTART:MOV DX,0A000H ;选择通道口CALL DELAYOUT DX,AL ;在该通道输出模拟量DELAY PROC ;延时子程序MOV BL,25NEXT1: MOV CX,20W10MS1:LOOP W10MS1DEC BLJNZ NEXT1RETDELAY ENDPCSEG ENDSEND START;程序结束附录:1)系统硬件:2)系统软件:DSEG SEGMENTDUAN DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,80H WEI DB 20H,10H,08H,04H,02H,01HWAN DB 0THA DB 0HUN DB 0TEN DB 0ONE DB 0 ;设置不同位DSEG ENDSSSEG SEGMENTZZ DB 10 DUP(0) ;设置堆栈保护段SSEG ENDSCSEG SEGMENTASSUME CS:CSEG,DS:DSEG,SS:SSEGSTART:MOV AX,DSEGMOV DS,AXDO:CALL AD ;调用子程序ADPUSH AX ;入栈保护CALL DA ;调用子程序DAPOP AX ;AX出栈CALL NUMBER ;调用子程序NUMBERCALL XS ;调用子程序XSJMP DOAD PROC ;A /D转换子程序MOV DX,9000HOUT DX,ALCALL DELAY1IN AL,DXRETAD ENDPDA PROC ; D/A转换子程序MOV DX,0A000HCALL DELAYOUT DX,ALRETDA ENDPNUMBER PROC ; 取出不同位的数值MOV BL,196MUL BLMOV DX,0MOV CX,10000DIV CXMOV WAN,ALMOV AX,DXMOV DX,0MOV CX,1000DIV CXMOV THA,ALMOV AX,DXMOV CL,100DIV CLMOV HUN,ALMOV AL,AHMOV AH,0MOV CL,10DIV CLMOV TEN,ALMOV ONE,AHRETNUMBER ENDPXS PROC ; 数码管显示子程序LEA SI,WEI ; 取位选偏移首地址给SIMOV DX,8002H ; 数码管位地址8002HMOV AL,[SI]OUT DX,AL ; 输出AL数据LEA DI,DUAN ; 取段选偏移首地址给DIMOV DX,8004H ; 数码管段地址8004HMOV BL,WANMOV BH,0 ; 将BX寄存器高位置零,低位取万位数据MOV AX,[DI+BX]OR AL,80H ; 将DI+BX地址所对应数据给AX,并与80H相或显示小数点OUT DX,AL ; 输出AL数据CALL DELAY ; 调用延时函数LEA SI,WEIMOV DX,8002HMOV AL,[SI+1]OUT DX,AL ;选取通道输出万位数的位选LEA DI,DUANMOV DX,8004HMOV AL,[DI+10]OUT DX,AL ;输出万位的数值CALL DELAYLEA SI,WEIMOV DX,8002HMOV AL,[SI+2]OUT DX,AL ;选取通道输出千位数的位选LEA DI,DUANMOV DX,8004HMOV BL,THAMOV BH,0MOV AL,[DI+BX]OUT DX,AL ;输出千位的数值CALL DELAYLEA SI,WEIMOV DX,8002HMOV AL,[SI+3]OUT DX,AL ;选取通道输出百位数的位选LEA DI,DUANMOV DX,8004HMOV BL,HUNMOV BH,0MOV AL,[DI+BX]OUT DX,AL ;输出百位的数值CALL DELAYLEA SI,WEIMOV DX,8002HMOV AL,[SI+4]OUT DX,AL ;选取通道输出十位数的位选LEA DI,DUANMOV DX,8004HMOV BL,TENMOV BH,0MOV AX,[DI+BX]OUT DX,AL ;输出十位的数值CALL DELAYLEA SI,WEIMOV DX,8002HMOV AL,[SI+5]OUT DX,AL ;选取通道输出个位数的位选LEA DI,DUANMOV DX,8004HMOV BL,ONEMOV BH,0MOV AL,[DI+BX]OUT DX,AL ;输出个位的数值CALL DELAYRETXS ENDPDELAY PROC ;延时子程序DELAYMOV BL,25NEXT1: MOV CX,20W10MS1:LOOP W10MS1DEC BLJNZ NEXT1RETDELAY ENDPDELAY1 PROC ;延时子程序DELAY1MOV BL,2NEXT2: MOV CX,5W10MS2:LOOP W10MS2DEC BLJNZ NEXT2RETDELAY1 ENDPCSEG ENDSEND START ;程序结束实习心得:在为期一周的实习过程中,我学到了许多书本上学不到的知识,本以为十分枯燥的设计过程却让我得到了很多乐趣,同时也让我懂得了团队合作的力量,为今后的进一步学习奠定了基础。

微机原理实验报告

微机原理实验报告

实验一DEBUG 调试实验类型:实验课时:指导教师:时间:2013 年月日课次:第节教学周次:第周实验分室:实验台号:实验员:一、实验目的1.练习使用DEBUG,调试简单汇编程序。

二、实验要求1.掌握DEBUG的使用,调试程序。

2.读懂程序中各条指令,说明程序功能。

三、实验内容1.启动DEBUG,用A命令输入并汇编下列程序段。

100 MOV SI,200103 MOV CX,10106 MOV AL,0108 MOV [SI ],AL10A INC SI10B INC AL10D DEC CX10E JNZ 108110 INT 3四、实验结果及分析实验二简单汇编语言设计实验类型:实验课时:指导教师:时间: 2012 年月日课次:第节教学周次:第周实验分室:实验台号:实验员:一、实验目的1.巩固DEBUG及宏汇编的使用。

2.加深对指令的理解。

二、实验要求1.设堆栈指针SP=2000H,(AX)=3000H,(BX)=5000H。

请编一程序将AX的内容和BX的内容进行交换。

请用堆栈作为两寄存器交换内容的中间存储单元,用DEBUG调试程序进行汇编与调试。

2.设DS=当前段指地址,(BX)=0300H,(SI)=0002H,请用DEBUG的命令将存储器偏移地址300H~304H连续单元顺序装入0AH、0BH、0CH、0DH、0EH。

在DEBUG状态下送入下面程序,并用单步执行的方法,分析每条指令源地址的形成过程?当数据传送完毕时,AX中的内容是什么?程序清单如下:MOV AX,BXMOV AX,0304HMOV AX,[0304H]MOV AX,[BX]MOV AX,0001[BX]MOV AX,[BX][SI]MOV AX,0001[BX][SI]HLT3.设(AX)=0002H,编一个程序段将AX的内容乘10,要求用移位的方法完成。

三、思想描述实验内容1将两个寄存器的内容进行交换时,必须有一个中间寄存器才能进行内容的交换,如果用堆栈做为中间存储单元,必须遵循先进后出的原则。

微机原理与接口技术实验3报告

微机原理与接口技术实验3报告

微机原理与接口技术实验报告实验三实验名称:数码管显示实验实验代码:代码一:数码管动态显示0-9;Io-8.asm;数码管显示示例程序1;动态显示0-9IOY0 EQU 3000H ;片选IOY0对应的端口始地址DA TA1 SEGMENT;定义数码管显示0-9的值NUM DB 0FCH,60H,0DAH,0F2H,66H,0B6H,0BEH,0E0H,0FEH,0F6H DA TA1 ENDSSTACK1 SEGMENT STACKDW 256 DUP(?)STACK1 ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA1START:;载入数据段MOV AX,DATA1MOV DS,AXMOV DX,IOY0LEA SI,NUMMOV CX,10XOR AX,AXNEXT:MOV AL,[SI] ;低八位确定要显示的数值MOV AH,1FH ;高八位确定选择的数码管OUT DX,AX ;将值输出到外设CALL DALL YINC SI ;显示下一数值LOOP NEXTJMP STARTDALL Y PROC NEAR ;软件延时子程序PUSH CXPUSH AXMOV CX,0FFFHD1: MOV AX,0FFFFHD2: DEC AXJNZ D2LOOP D1POP AXPOP CXRETDALL Y ENDPCODE ENDSEND START运行结果:六位数码管动态显示0-9代码二:数码管动态显示0-99;数码管动态显示0-99IOY0 EQU 3000H ;片选IOY0对应的端口始地址DA TA1 SEGMENT;定义数码管显示0-9的值NUM DB 0FCH,60H,0DAH,0F2H,66H,0B6H,0BEH,0E0H,0FEH,0F6H DA TA1 ENDSSTACK1 SEGMENT STACKDW 256 DUP(?)STACK1 ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA1START:;载入数据段MOV AX,DATA1MOV DX,IOY0LEA SI,NUMLEA DI,NUMMOV CX,10XOR AX,AXMOV CX,100MOV BX,0ADD DI,BXNEXT1:;---------SW----;MOV CX,10;----------GW-------;NEXT:PUSH CXMOV CX ,0FFHNEXT3:MOV AL,[SI] ;低八位确定要显示的数值MOV AH,2FH ;高八位确定选择的数码管OUT DX,AXCALL DALL YMOV AL,[DI]MOV AH,1FHOUT DX,AXCALL DALL YLOOP NEXT3INC SIPOP CX;JMP MYLOOP ;显示下一数值LOOP NEXTINC DILEA SI,NUMJMP NEXT1DALL Y PROC NEAR ;软件延时子程序PUSH CXMOV CX,0FFHD1: MOV AX,0FFFHD2: DEC AXJNZ D2LOOP D1POP AXPOP CXRETDALL Y ENDPCODE ENDSEND START运行结果:数码管后两位动态显示0-99。

微机原理_中断实验报告(3篇)

微机原理_中断实验报告(3篇)

第1篇一、实验目的1. 理解中断系统的基本概念和工作原理。

2. 掌握中断源、中断向量、中断服务程序等基本概念。

3. 学习使用Keil软件进行中断程序的编写和调试。

4. 熟悉中断在微机系统中的应用。

二、实验原理中断系统是微机系统中重要的组成部分,它允许CPU在执行程序的过程中,响应外部事件或内部事件,从而实现多任务处理。

中断系统主要包括以下几个部分:1. 中断源:产生中断请求的设备或事件,如外部设备、定时器、软件中断等。

2. 中断向量:中断服务程序的入口地址,用于CPU在响应中断时找到相应的服务程序。

3. 中断服务程序:处理中断请求的程序,完成中断处理任务。

4. 中断优先级:不同中断源的优先级不同,用于确定中断响应的顺序。

三、实验设备与软件1. 实验设备:单片机实验板、计算机、Keil软件、Proteus仿真软件。

2. 实验软件:Keil uVision4、Proteus 8.0。

四、实验内容1. 外部中断实验(1)使用外部中断0(INT0)实现按键控制LED灯的亮灭。

(2)使用外部中断1(INT1)实现按键控制LED灯的闪烁。

2. 定时器中断实验(1)使用定时器0产生1秒的定时中断,实现LED灯的闪烁。

(2)使用定时器1产生1秒的定时中断,实现按键输入的计数。

3. 软件中断实验(1)使用软件中断实现按键输入的字符显示。

(2)使用软件中断实现按键输入的字符加密显示。

五、实验步骤1. 在Keil软件中创建一个新项目,选择合适的单片机型号。

2. 根据实验要求,编写中断服务程序,设置中断向量。

3. 在Proteus软件中搭建实验电路,包括单片机、按键、LED灯等。

4. 将Keil软件编译后的程序下载到单片机中。

5. 在Proteus软件中运行仿真,观察实验结果。

六、实验结果与分析1. 外部中断实验(1)按键按下时,LED灯亮;按键松开时,LED灯灭。

(2)按键按下时,LED灯闪烁;按键松开时,LED灯停止闪烁。

大学微机原理实验报告(3篇)

大学微机原理实验报告(3篇)

第1篇实验名称:微机原理实验实验日期:2023年10月25日实验地点:计算机实验室实验教师:[教师姓名]实验学生:[学生姓名]班级:[班级名称]一、实验目的1. 理解微机原理的基本概念和组成结构。

2. 掌握微机硬件的基本操作和调试方法。

3. 熟悉汇编语言编程和程序调试技巧。

4. 通过实验加深对微机原理课程的理解,提高动手能力。

二、实验内容本次实验主要分为以下几个部分:1. 微机硬件系统结构认识:了解微机硬件系统的组成,包括CPU、内存、I/O接口等,熟悉各部件的功能和相互关系。

2. 汇编语言编程:学习汇编语言的基本语法和指令系统,编写简单的汇编程序,实现特定功能。

3. 程序调试:使用调试工具(如DEBUG)对汇编程序进行调试,查找并修正错误。

4. 微机原理实验:完成以下实验任务:1. 编写程序实现两个多位十进制数的相加。

2. 编写程序实现字符串比较功能。

3. 编写程序实现乘除法运算。

三、实验步骤1. 微机硬件系统结构认识:- 观察实验室中的微机硬件系统,了解各部件的连接方式和功能。

- 使用示波器检测实验装置的信号是否正常。

2. 汇编语言编程:- 学习汇编语言的基本语法和指令系统。

- 编写程序实现两个多位十进制数的相加,程序如下:```;加数DATA1 DB 3,4,5,6,7;被加数DATA2 DB 2,3,4,5,6;结果SUM DB 5 DUP(0);程序开始MOV CX, 5 ;循环次数MOV AL, 0 ;结果初始化为0MOV SI, OFFSET DATA1 ;加数地址MOV DI, OFFSET DATA2 ;被加数地址ADD_LOOP:ADD AL, [SI] ;加数加到AL寄存器ADC AL, [DI] ;进位加到AL寄存器MOV [DI], AL ;结果存回DI寄存器ADD SI, 1 ;加数地址加1ADD DI, 1 ;被加数地址加1LOOP ADD_LOOP ;循环;程序结束```- 编写程序实现字符串比较功能,程序如下:```;字符串1STRING1 DB 'Hello';字符串2STRING2 DB 'World';比较结果RESULT DB 0;程序开始MOV SI, OFFSET STRING1 ;字符串1地址MOV DI, OFFSET STRING2 ;字符串2地址CMP_LOOP:MOV AL, [SI] ;读取字符串1的当前字符CMP AL, [DI] ;与字符串2的当前字符比较 JNE NOT_EQUAL ;不相等则跳转到NOT_EQUAL INC SI ;字符串1地址加1INC DI ;字符串2地址加1LOOP CMP_LOOP ;循环MOV RESULT, 1 ;相等则将结果设置为1JMP END ;跳转到ENDNOT_EQUAL:MOV RESULT, 0 ;不相等则将结果设置为0END:;程序结束```- 编写程序实现乘除法运算,程序如下:```;被乘数DATA1 DB 10;乘数DATA2 DB 5;结果PRODUCT DB 0;程序开始MOV AL, [DATA1] ;被乘数加载到AL寄存器MUL [DATA2] ;乘数乘到AL寄存器MOV [PRODUCT], AL ;结果存回PRODUCT;程序结束```3. 程序调试:- 使用DEBUG工具对汇编程序进行调试,查找并修正错误。

微机原理中断实验报告(3篇)

微机原理中断实验报告(3篇)

第1篇一、实验目的1. 理解中断的概念和作用;2. 掌握中断系统的组成和基本工作原理;3. 熟悉中断向量表、中断服务程序和中断处理过程;4. 通过实验验证中断系统的正确性和可靠性。

二、实验原理1. 中断的概念:中断是CPU在执行程序过程中,由于某些事件的发生,暂时停止当前程序的执行,转而执行相应的事件处理程序的过程。

2. 中断系统的组成:中断系统主要由中断控制器、中断源、中断向量表、中断服务程序和CPU等组成。

3. 中断向量表:中断向量表是存储中断服务程序入口地址的表格,其中每个中断向量对应一个中断服务程序。

4. 中断服务程序:中断服务程序是处理中断事件的核心程序,用于完成中断事件的处理任务。

5. 中断处理过程:当中断事件发生时,CPU会根据中断向量表找到对应的中断服务程序入口地址,并跳转到该地址执行中断服务程序。

三、实验仪器与设备1. 实验台:微机原理实验台2. 电脑:一台3. 软件环境:Keil uVision、emu8086等四、实验步骤1. 启动实验台,打开微机原理实验台软件。

2. 在软件中设置实验参数,如中断源、中断向量等。

3. 编写中断服务程序,实现中断事件的处理任务。

4. 编写主程序,调用中断服务程序。

5. 运行实验程序,观察中断系统的运行情况。

五、实验内容1. 实验一:单级中断系统(1)设置一个外部中断源,如按键中断。

(2)编写中断服务程序,实现按键按下时的处理任务。

(3)在主程序中调用中断服务程序。

2. 实验二:多级中断系统(1)设置两个外部中断源,如按键中断和定时器中断。

(2)编写中断服务程序,实现按键中断和定时器中断的处理任务。

(3)设置中断优先级,实现多级中断。

(4)在主程序中调用中断服务程序。

3. 实验三:中断嵌套(1)设置两个外部中断源,如按键中断和定时器中断。

(2)编写中断服务程序,实现按键中断和定时器中断的处理任务。

(3)实现中断嵌套,即在定时器中断服务程序中再次触发按键中断。

微机原理实验报告3

微机原理实验报告3

微机原理实验报告实验三七段数码管显示一、实验目的掌握接口芯片的编址方法,掌握8255的初始化设置,及数码管显示原理,掌握段控及位控的概念。

二、实验内容连接地址译码器与8255的连线及8255与数码管的连线;在数据段中存放0到9的字形码;从微机键盘输入2个数字的ASCII码,在输入过程中检查如非数字键则重新输入;然后将输入的ASCII码变成相应的数字,再利用换码指令XLAT查表得到相应的字形码;将字形码送到8255输出口所接的数码管上显示。

三、实验原理图四、实验流程图定义堆栈段、数据段定义代码段,写主函数返回DOS开始输入1号数字并转换成BCD 码存入输入2号数字并转换成BCD 码存入找到1号数字对应的字符并转换输出找到2号数字对应的字符并转换输出是否有按键按下INT21H 6号功能YN五、实验结论数码管能正确显示数字,调节DELAY 函数中数值可以调整延迟时间,得到不同显示效果。

六、实验心得学习使用XLAT ,同时可以不使用此方法,利用偏移地址的方法转换字符。

学习使用了INT 21H 6号功能,判断按键是否按下。

学习使用了实验箱及正确的连线。

学习分辨简易非简易连线方法。

附录:程序清单INPORT_1 EQU 0EF00H-280H+28BHINPORT_A EQU 0EF00H-280H+288HINPORT_C EQU 0EF00H-280H+28AHSTACK SEGMENT STACKDB 100 DUP(?)STACK ENDSDATA SEGMENTTABL DB 3FH,06H,5BH,4FH,6BH,6DH,7DH,07H,7FH,6FH DIGIT DB 2 DUP(?)DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKMAIN PROCMOV AX,DATAMOV DS,AXLEA BX,DIGITCALL KEYINAND AL,0FHMOV [BX],ALINC BXCALL KEYINAND AL,0FHMOV [BX],ALMOV DX,INPORT_1MOV AL,10001010BOUT DX,ALDISP: MOV DX,INPORT_ALEA BX,DIGITMOV AL,[BX]LEA BX,TABLEXLAT TABLEOUT DX,ALMOV DX,INPORT_CMOV AL,10BOUT DX,ALCALL DELAYINC BXMOV DX,INPORT_ALEA BX,DIGITMOV AL,[BX]LEA BX,TABLXLAT TABLOUT DX,ALMOV DX,INPORT_CMOV AL,01BOUT DX,ALCALL DELAYMOV AH,6MOV DL,0FFHINT 21HJZ DISPMOV AX,4C00HINT 21H MAIN ENDPKEYIN PROC INPUT: MOV AH,8INT 21HCMP AL,30HJB INPUTCMP AL,39HJA INPUTMOV DL,ALMOV AH,2INT 21HRETKEYIN ENDPDELAY PROCPUSH DIPUSH CXMOV DI,0FFFHMOV CX,0 NEXT1: LOOP NEXT1DEC DIJNZ NEXT1POP CXPOP DIRETDELAY ENDPCODE ENDSEND MAIN。

微机原理实验报告

微机原理实验报告

微机原理及接口技术实验报告班级:光094-2姓名:....学号:20091350429实验一熟悉宏汇编程序及debug一.实验目的1.学习并掌握汇编语言指令寻址方式2.熟悉在PC机上用DEBUG调试和运行汇编语言指令的过程。

二.实验内容根据给定寄存器内容及存储单元内容,运行给定指令,观察记录运行结果1、给定的寄存器内容及存储单元内容(DS)=2000H,(SI)=0002H,(BX)=0100H(20100H)=1H,(20101H)=34H,(20102H)=56H,(20103H)=78H,(21200H)=2AH,(21201H)=4CH,(21202H)=0B7H,(21203H)=65H2、指令(1)M OV AX,1200H(2)M OV AX,BX(3)M OV AX,[1200H](4)M OV AX,[BX](5)M OV AX,1100H[BX](6)M OV AX,[BX][SI](7)M OV AX,1100H[BX][SI]四.调试步骤1.运行DEBUG。

2.用A命令汇编指令(1)3.按给定寄存器和存储单元内容修改寄存器和存储单元内容。

4.单步运行指令,查看结果5.重复上述步骤,调试指令(2)——(7)指令寻址方式源操作数有效地址源操作数物理地址指令运行结果(AX)1 立即寻址 0100 20100 12002 寄存器寻址 0103 20103 01003 直接寻址 1200 21200 4c2a4 寄存器间接寻址0100 20100 34125 寄存器相对寻址1200 21200 4c2a6 基址变址寻址 0102 20102 78567 相对基址变址寻址1202 21202 65b7 六.思考题1、汇编语言指令有哪些寻址方式?用于寻址的寄存器有哪些?立即数寻址、直接寻址,寄存器寻址,寄存器间接寻址,寄存器相对寻址,基址变址寻址,基址变址相对寻址。

对于16位数据,寄存器可以是AX,BX,CX,DX,SI,DI,SP,BP; 对于8位数据,寄存器可以是AH,AL,BH,BL,CH,CL,DH,DL实验二寻址方式练习及多字节运算程序一.实验目的1.学习并掌握数据传送指令和算术运算指令2.熟悉在PC机上编辑、汇编、连接、调试与运行汇编语言程序的过程。

微机原理第三次实验报告

微机原理第三次实验报告

实验三串口通信实验一、实验目的与要求利用开发板的串口仿真功能,掌握串口通信的编程方法。

实验要求:(1)利用串行口向PC机发送字符“0x55”,利用串口调试软件在计算机端观察接收到的数据是否与预期一致。

(2)利用串行口向PC机发送字符串,利用串口调试软件在计算机端观察接收到的数据是否与预期一致(3)观察分析参考程序3,利用开发板接收PC机发送过来的16进制数据并用数码管显示。

(4)掌握实验基础内容后根据参考源程序进行修改和拓展,自行设计程序目标并编程验证,比如修改发送程序的内容,实现由上位机控制数码管显示内容等。

二、实验注意事项1、启动KEIL软件,选择菜单“工程\新建工程”以建立工程(扩展名为.uv2,如T2a.uv2)。

2、选择菜单“文件\新文件”以建立一个新的文本编辑窗口,在窗口中输入参考源程序1并保存(扩展名为.asm),如test2a.asm,然后将其加入到源程序组1中。

3、在工程菜单的选项“目标1属性”中设置相应的选项,包括“输出\产生hex 文件”选项以便汇编生成HEX代码供编程器使用,在“调试\使用KeilMonitor-51 Driver”的设置中选择相应的串口号。

4、使用“工程”中的“编译全部文件”完成相应的文件编译,如果程序格式正确将生成相应HEX代码文件,如T2a.hex。

如果提示有编译错误请自行修改源程序然后再重新编译。

5、用单根连线将P1.0(JP44)连接到8路指示灯部分(JP32)的LED0,将P1.6、P1.7(JP44)分别连接到JP37的K01、K02。

6、完成仿真器与计算机之间的连线并通电。

7、在KEIL软件中启动“调试\开启仿真模式”,然后用“运行”命令实现全速运行的仿真。

8、观察实验现象并分别依次按下K01、K02,观察并记录实验现象然后在KEIL 软件中启动“中断运行-调试(debug)\关闭仿真模式”退出仿真,选择“工程\关闭工程”可关闭当前工程。

9、参考步骤1-4完成参考源程序2的建立与输入,如新项目T2b.uv2和新的源程序test2b.asm,完成编译与仿真设置。

《微机原理实验报告》word版

《微机原理实验报告》word版

班级自动化学号姓名实验一系统认识实验一实验目的掌握教学系统的基本操作二实验设备PC机一台masm软件三实验内容及步骤(1)输入程序并检查无误,经汇编连接后装入系统(2)输入E3500后回车,在3500-3510单元中分别送入00~09十个数据(3)按“T“键运行以上程序直至程序运行完(4)输入D3600后回车,查看3600单元后面的数据四程序及其显示的结果(1)程序(2)显示的结果实验三运算类编程实验一实验目的(1)掌握使用运算类指令编程及调试方法(2)掌握运算类指令对各状态标志位的影响及其测试方法二实验设备PC一台masm软件三实验内容及步骤(1)二进制双精度加法运算(2)输入程序并检查无误,经汇编连接后装入系统(3)用U0000:2000查看MOV AX,DA TA的语句,即得到数据段段位置CS:1412用E命令E1412:0000回车,给XL,YL,YH赋值存入二进制数A0,65,15,00和9E,B7,21,00(4)用G=0000:2000,运行以上程序(5)输入D1412:0008,检验显示的结果是否为:3E,1D,17,00四实验程序五程序显示的结果实验四分支程序设计实验一实验目的:(1)掌握分支程序的结构(2)掌握分支程序的设计,调试方法二实验设备:PC机一台masm软件三实验内容设计一数据块间的搬移程序。

设计思想:程序要求把内存中一数据区传送到另一存储区。

源数据块和目的数据块在存储中可能有三种情况,对于两个分离的情况,数据的传送从数据块的首位置开始,或者从数据块的末位置开始。

但对于有部分重叠的情况,则要加以分析,否则重叠部分会因搬移而遭到破坏,可以得到以下结论:(1)当源数据块首址大于目的块首址时,从数据块首址开始传送数据。

(2)当源数据块首址小于目的块首址时,从数据块末址开始传送数据。

四实验步骤(1)按实验流程图设计编写实验程序(2)输入程序并检查无误后,经汇编,连接后装入系统(3)用E命令在以SI为起址的单元中填入十六个数(4)用G=0000:2000运行实验程序(5)用D命令查看DI为起址的单元中的数据是否与SI单元中数据相同五实验程序及结果显示(1)实验程序(1)实验结果显示实验五循环程序设计一实验目的(1)加深对循环结构的理解(2)掌握循环结构程序设计的方法(3)熟练掌握调试循环程序的方法二实验设备:PC机一台masm软件三实验内容求数据区内负数的个数:设数据区的第一单元存放区内单元数据的个数,从第二单元开始开始存放数据,在区内最后一个单元存放结果。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验报告
姓名:实验日期:实验指导老师:
学号:班级:
实验名称:简单程序段设计与调试
一、实验目的
1、熟练掌握DEBUG的常用命令。

2、掌握简单程序段设计与调试,学会DEBUG调试程序的使用方法。

二、实验内容
1、已知:(DS)=3000H,在0500H单元中有一个数08H:
(1)利用加法指令使它乘2,且送回原存储单元;
(2)利用加法指令使它乘4,且送回原存储单元;
(3)利用加法指令使它乘10,且送回原存储单元;
(4)利用乘法指令使它乘2,且送回原存储单元。

2、已知:(DS)=3000H,在0100H单元中有一个数12H:
(1)把12H的前四位变0,后四位维持不变,送回同一单元;
(2)把12H的后七位变0,最高位维持不变,送回同一单元;
(3)把12H的前四位变1,后四位维持不变,送回同一单元;
(4)把12H的最低位变1,前七位维持不变,送回同一单元;
(5)把12H的前四位变反,后四位维持不变,送回同一单元。

三、实验要求
1、根据实验内容,编写好程序段和调试的说明。

2、学会DEBUG的单步(T命令)和连续(G命令)调试方法
四、实验步骤
(1)利用DEBUG命令输入源程序段。

(2)分别调试并记录实验结果。

根据实验结果进行分析。

五、心得体会。

相关文档
最新文档