合工大 微机原理 实验报告
- 格式:doc
- 大小:3.54 MB
- 文档页数:30
滨江学院微机原理综合实验实验报告学生姓名学号专业信息工程班级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程序运行结果截图:四、实验总结本次实验掌握移位指令的使用方法。
实验一汇编语言的编译、链接和调试一、实验目的1、学会使用masm对汇编源程序进行编译、链接、调试、运行。
2、掌握汇编语言的程序格式。
3、巩固所学的汇编语言指令。
二、实验环境1、硬件:PC 微机2、软件:宏汇编MASM 软件三、实验原理1、汇编语言程序的上机与处理过程2、汇编语言的程序格式(1)汇编程序一般由若干段组成,每个段都有一个名字,以SEGMENT作为段的开始,以ENDS作为段的结束,这两者前要冠以相同的名字作为段名。
(2)代码段和堆栈段必不可少,数据段和附加段可根据需要设置。
堆栈段的SEGMENT之后有关键字STACK。
代码段中有伪指令ASSUME告诉汇编程序,在各种指令执行时所要访问的各段寄存器将分别对应哪一段。
(3)源程序的每一段是由若干行汇编语句组成,每一行只有一条语句,且不能超过128个字符,但一条语句允许有后续行,最后均以回车结束。
(4)整个源程序必须以END语句结束,它通知汇编程序停止汇编。
四、实验内容进入DOS环境中相应的目录下。
如汇编软件的文件来为:D:\MASM,则对应的操作为(1)选择windows的“开始”→“程序”→“附件”→“命令提示符”(2)在DOS命令提示符下输入如下命令(其中带下划线部分为输入内容)。
C:\Documents and Settings\new>D:D:\>CD MASMD:\MASM>EDIT TEXT.ASM进入编辑程序,在其环境下输入编好的源程序,然后在盘上生成一个扩展名为.asm的文件。
程序示例DATA SEGMENTDA1 DB 10H,20H,30H,40HDA2 DB 0F0H,0B0H,0A0H,90HDA3 DB 00H,00H,00H,00HDATA ENDSSTACK1 SEGMENT PARA STACKDB 10 DUP(?)STACK1 ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK1START: MOV AX,DATAMOV DS,AXMOV AL,[DA1]ADD AL,[DA2]MOV [DA3],ALMOV AL,[DA1+1]ADC AL,[DA2+1]MOV [DA3+1],ALMOV AL,[DA1+2]ADC AL,[DA2+2]MOV [DA3+2],ALMOV AL,[DA1+3]ADC AL,[DA2+3]MOV [DA3+3],ALCODE ENDSEND START3. 用宏汇编程序MASM,将扩展名为.ASM的源程序汇编成目标程序,即生成盘上扩展名为.OBJ的文件。
微机实验报告范文微机原理实验报告2022-11一、实验题目IDE86集成开发环境的学习和运用二、实验目的:学习并掌握IDE86集成开发环境的使用包括编辑、编译、链接、调试与运行等步骤编辑:源程序的输入、修改。
编译:常见编译出现的语法错误的修改。
连接:形成可执行文件运行:运行、断点设置、单步运行、单步跟踪;观察寄存器、标志寄存器值;观察数据存储器中的数据;三、实验内容1.参考书例4-8,P165(第3版161页)以单步形式观察程序的执行过程输入该程序,编译、连接、运行以单步形式观察程序的执行过程(1)执行每条指令后,寄存器A某、C某、SI及标志位CF的值。
(2)分别查看前5个数值和、前8个数之和。
(3)查看以TABLE开始的存储器单元中的内容。
基本思路:设计循环程序,通过指针不断指向下一个元素来实现10个数值的相加2.改该程序,求出10个数中的最大值和最小值。
以单步形式观察如何求出最大值、最小值。
3.求1到100的累加和,并用十进制形式将结果显示在屏幕上。
要求实现数据显示,并返回DOS状态。
基本思路:先循环求出累加之后的结果,然后将结果转换为10进制即任何一个用十六进制表示的二进制数,其除以10后的余数即是它对应十进制数的最低位,且一定在0—9之间;用得到的余数加上30H,就得到了最低位对应的ASCII码。
4.将存储器中的十个字节型十六进制有符号数按从小到大的顺序排序并按十六进制显示出来56H、0ffH、78H、82H、12H、0、95H、58H、0bcH、34H基本思路:首先这是一个多重循环程序,先使第一个数与下一个数比较,若小于则使其位置保持不变,大于则将小数放低地址,大数放高地址;完成一次排序工作后,在通过第二重的9次循环,即可实现对10个有符号数的大小排序,且有符号数的比较跳转用到JL和JG四、实验源程序(必要的文字注释)1.求十个数的和的程序:DATASEGMENT;定义数据段TABLEDB12H,23H,34H,45H,56H;10个加数DB67H,78H,89H,9AH,0FDHSUMDWDATAENDS;CODESEGMENT;定义代码段ASSUMECS:CODE,DS:DATA,ES:DATASTART:MOVA某,DATAMOVDS,A某;初始化DSMOVES,A某;初始化ESLEASI,TABLE;SI指向TABLEMOVC某,10;循环计数器某ORA某,A某;A某为中间结果NE某T: ADDAL,[SI];把第一个数加到AL中ADCAH,0;若有进位,则加到AH中INCSI;指向下一个数LOOPNE某T;若未加完,继续循环MOVSUM,A某;若结束,存结果于SUMMOVAH,4CH;结束,返回到DOSINT21HCODEENDS;代码段结束ENDSTART;汇编结束,起始运行地址为START主界面编译连接调试2.修改后的程序:求最大值和最小值源程序:DATASEGMENT;定义数据段TABLEDB12H,23H,34H,45H,56HDB67H,78H,89H,9AH,0FDHMA某DWMINDWDATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,ES:DATASTART:MOVA某,DATAMOVDS,A某MOVES,A某LEASI,TABLEMOVC某,10某ORA某,A某CLDLODSBMOVMA某,A某MOVMIN,A某DECC某NE某T:LODSBCMPA某,MA某JGLARGERCMPA某,MINJLSMALLJMPGOONLARGER:MOVMA某,A某JMPGOONSMALL:MOVMIN,A某GOON:LOOPNE某TMOVAH,4CHINT21HCODEENDSENDSTART编译;初始化DS;初始化ES;SI指向TABLE;循环计数器;使A某清零;清方向标志DF;取一个8位无符号数给AL;第一个数赋值给最大值;第一个数赋值给最小值;取下一个8位无符号数;与MA某单元内容进行比较;若大于则转LARGER;否则再与MIN单元内容进行比较;若小于MIN的内容则转SMALL;否则就转至GOON;A某赋值给MA某;A某赋值给MIN;C某-1,若C某!=0,则转NE某T;调用返回DOS功能;返回DOS五、实验运行结果1.十个数的累加和Sum=403H2.求最大最小值MA某=0FDHMIN=12H3.累加和SUM=50504.排序0H,12H,56H,58H,78H,82H,95H,0BCH,34H,0FFH六、流程图开始输入数据以及计数器C某,SUMC某+1SUM=SUM+INPUTYC某<10N结束开始定义C某,SUM,B某开始输入数据以及计数器CL,CH,A某YMA某[SI]NMIN=[SI]++C某YC某<10结束开始输入数据以及计数器内循环CL和外循环CHCL=1,CH=10CL++YNCL结束NCH--CH<0NY七、实验中遇到的问题及解决方法1.进行实验时,在输入数据的过程中,由于马虎大意导致一两个字母输入错误,结果程序反复调试依旧不对,解决方法是通过设置断点进行排查,最终找到实验的错误之处,并顺利改正。
微机原理及应用实验报告微机原理及应用实验报告1. 引言微机原理及应用是计算机科学与技术专业的一门重要课程,通过该课程的学习和实验,我们可以深入了解微机的基本原理和应用技术。
本文将对我们进行的微机原理及应用实验进行详细报告,包括实验目的、实验内容、实验步骤、实验结果及分析等。
2. 实验目的本次实验的目的是通过实际操作,加深对微机原理的理解,掌握微机的基本组成和工作原理,以及学习并应用微机的常见应用技术。
3. 实验内容本次实验主要涉及以下内容:- 微机的基本组成和结构- 微机的工作原理- 微机的存储器和输入输出设备- 微机的指令系统和编程技术4. 实验步骤4.1 实验一:微机的基本组成和结构在这个实验中,我们首先学习了微机的基本组成和结构,包括中央处理器、存储器、输入输出设备等。
通过观察实际的微机硬件设备,我们对微机的组成有了更加直观的认识。
4.2 实验二:微机的工作原理在这个实验中,我们学习了微机的工作原理,包括指令的执行过程、中央处理器的工作原理等。
通过实际操作,我们对微机的工作过程有了更加深入的理解。
4.3 实验三:微机的存储器和输入输出设备在这个实验中,我们学习了微机的存储器和输入输出设备的原理和应用。
通过实际操作,我们了解了存储器的读写过程,以及输入输出设备的工作原理。
4.4 实验四:微机的指令系统和编程技术在这个实验中,我们学习了微机的指令系统和编程技术。
通过实际编写和执行简单的汇编语言程序,我们掌握了微机的编程技术,并了解了指令的执行过程。
5. 实验结果及分析通过以上实验,我们对微机的原理和应用有了更加深入的理解。
我们通过实际操作,掌握了微机的基本组成和结构,了解了微机的工作原理,熟悉了微机的存储器和输入输出设备,掌握了微机的指令系统和编程技术。
这些知识和技能对我们今后的学习和工作都具有重要的意义。
6. 总结通过本次微机原理及应用实验,我们深入了解了微机的基本原理和应用技术。
通过实际操作,我们对微机的组成和工作原理有了更加直观和深入的理解,掌握了微机的存储器和输入输出设备的原理和应用,以及微机的指令系统和编程技术。
微机原理实验总结(共5篇)第一篇:微机原理实验总结微机原理实验总结不知不觉,微机原理与接口技术实验课程已经结束了。
回想起来受益匪浅,主要是加深了对计算机的一些硬件情况和运行原理的理解和汇编语言的编写汇编语言,对于学习机电工程的自动控制和计算机都是很重要的,因为它是和机器语言最接近的了,如果用它来编程序的话,会比用其它高级语言要快得多。
本学期我们在老师的带领下,进行了微机原理实验六到十这五组实验。
它们分别是:实验六8255 PA口控制PB口实验目的掌握单片机系统中扩展外围芯片的方法,了解8255 芯片的结构及编程方法。
实验内容用 8255 PA 口作开关量输入口,PB 口作输出口。
实验步骤1、用8 芯线将8 255 PA口接至开关Kl~K8,PB口接至发光二极管L1~L8;2、运行程序 HW06.ASM,拨动开关K1~K8,观察L1~L8发光二极管是否对应点亮。
实验七8255控制交通灯实验目的进一步了解8 255 芯片的结构及编程方法,学习模拟交通控制的实现方法。
实验内容用8255 做输出口,控制六个发光二极管燃灭,模拟交通灯管理。
实验步骤1、用双头线将8 255 PA0~PA2 口接至发光二极管L3~L1,PA3~PA5口接至发光二极管L7~L5;2、执行程序HW07.ASM,初始态为四个路口的红灯全亮,之后,东西路口的绿灯亮,南北路口的红灯亮,东西路口方向通车,延时一段时间后东西路口的绿灯熄灭,黄灯开始闪烁,闪烁若干次后,东西路口红灯亮,而同时南北路口的绿灯亮,南北路口方向开始通车,延时一段时间后,南北路口的绿灯熄灭,黄灯开始闪烁,闪烁若干次后,再切换到东西路口方向,之后重复以上过程。
实验八简单I /O口扩展实验目的学习单片机系统中扩展简单I/O 口的方法;学习数据输入输出程序的编制方法。
实验内容利用74LS244 作为输入口,读取开关状态,并将此状态,通过74LS273再驱动发光二极管显示出来。
微机原理及应用实验报告实验名称:微机原理及应用实验实验目的:通过实际操作,学习微机原理及应用,了解微机硬件组成和工作原理,掌握微机汇编语言的基本操作及应用。
实验器材与软件:电脑、汇编语言编译软件、实验板、示波器。
实验内容:1.微机硬件组成及工作原理-学习微机硬件包括中央处理器(CPU)、存储器(RAM和ROM)、输入输出设备(I/O)等组成部分。
-了解CPU的工作原理,包括指令译码、执行和数据传输。
-掌握存储器的分类和作用,了解RAM的读写操作和ROM的存储功能。
-理解输入输出设备的工作原理,例如键盘、显示器、串口等。
2.微机汇编语言基础-学习汇编语言的基本语法和指令格式。
-掌握汇编语言中的数据存储和操作方法。
-学习汇编语言的控制结构,包括顺序、选择和循环结构。
3.实验操作-实验前准备:连接实验板、示波器和电脑,启动汇编语言编译软件。
-编写简单的汇编程序,例如实现两个数字相加的功能。
-编译和调试汇编程序,观察电路的输出情况。
-修改程序代码,实现其他功能,例如实现数字的乘法和除法。
实验结果与分析:根据实验内容,我们成功学习了微机硬件组成和工作原理,掌握了汇编语言的基础知识并进行了实际操作。
在实验过程中,我们发现CPU是整个微机系统的核心,通过执行指令和数据操作来实现各种功能。
存储器用于存储程序和数据,RAM可以读写操作,而ROM只能读取。
输入输出设备是与外部环境进行数据交互的媒介。
通过编写简单的汇编程序,例如实现两个数字相加的功能,我们深入了解了汇编语言的语法和指令格式。
在编译和调试过程中,我们发现对于了解指令执行的效率和结果的正确性非常重要。
在修改程序代码的过程中,我们扩展了功能,例如实现数字的乘法和除法。
在这个过程中,我们学会了如何在程序中使用循环结构和控制结构。
总结与心得:通过本次实验,我们深入了解了微机原理及应用的相关知识。
通过实际操作,我们掌握了微机的硬件组成和工作原理,学会了使用汇编语言编写和调试程序。
微机原理实验报告一2021年5月24日一、实验目的1、自学程序设计的基本方法和技能;2、熟练掌握汇编语言设计、编写、调试和运行;二、实验内容和要求撰写一程序,比较两个字符串string1和string2含有字符与否相同,若相同则在屏幕上表明‘match’,否则,表明‘notmatch’。
三、实验主要仪器设备和材料1、计算机一台四、实验方法、步骤及结构测试1、建立asm文件2、用汇编程序masm对源文件“*.asm”编订产生目标文件*.obj;3、用相连接程序link产生可执行文件*.exe.4、执行程序5、用debug调试程序五、分析程序功能,调试程序过程中碰到的问题该程序实现对两个字符串的比较,字符串内容相同,则显示match,内容不相同,则显示nomatch。
调试过程中,由于存在着中文和英文字符的差异,导致出现了编译错误,经过学习修改,改正了错误,同时也学习到了标准序,返回dos系统等基本操作。
六、思考题1、汇编语言的内置环境存有几个主要环节?汇编语言的集成环境主要有编译,连接,执行三大环节。
2、将程序中的指令jzmatch改成jnzmatch,程序结果如何?为什么?若将指令改为jnzmatch,则将导致结果相反,字符串相等时显示nomatch,反之显示match。
jnz意思是当结果不为0时跳转到match所在地址,故当比较结果为0时不跳,跟原程序意思相反,故出现相反结果3、将内存data1单元已经开始的0~15共16个数传输至data2单元已经开始的数据区中主要程序段如下:data1db1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16data2db16dup(?)leadi,[data1]leasi,[data2]movcx,15loop1:movbx,ds:[di]movds:[si] ,bxincdiincsilooploop1。
微机原理实验报告
虚拟仿真实验课程充分体现了信息技术与教育教学实验技术的深度融合,“微机原理实验”作为一门培养学生创新实践能力重要的设计类课程,对学生后期的专业学习具有承上启下的作用,不可或缺。
受疫情影响,教学团队及时开展实验教学模式改革,转变传统线下动手实验模式,充分发挥“实时、共享”的线上平台优势,利用虚拟仿真资源共享平台,开展“学生自主实验,教师在线指导”的线上实验;突破了传统实验在时间和空间的限制,并从真正意义上实现了实验课堂的“翻转”。
一、建立翻转课堂,组建“线上”实验部落
打造“空中”实验课堂,在“石大云课堂”、“智慧树”等优质在线教学平台上按照实验教师所授专业班级的学生进行实验课堂的划分,建立实验翻转课堂;并在理论教师前期工作的基础上,利用QQ 群组建按照理论课教师所授专业班级的学生划分的线上实验部落。
这样不仅让实验课堂保持一定的独立性便于实验教师布置实验任务、批改实验报告等任务的实施,而且确保了实验教学与理论课程进度保持一致,促进了实验课堂与理论教学的进一步融合。
二、搭建“线上实验”环境发布教学指导视频
搭建线上仿真实验室,建立虚拟仿真实验环境。
因此,上传相关仿真设计实验所需软件及安装说明,发布相关教学指导视频是必不可少的。
其中,环境搭建的在线指导也让教师了解到学生目前的学习状况,为接下来“线上实验”的教学设计提供了参考依据。
班级自动化学号姓名实验一系统认识实验一实验目的掌握教学系统的基本操作二实验设备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 《微机原理与接口技术》课程实验报告 实验名称 实验一 8251可编程通信实验(与微机) 姓 名 系院专业 你的专业 班 级 你的专业 13-5班 学 号 实验日期 2015.5.20 指导教师 成 绩 一、实验目的和要求 1、了解8251的内部结构、工作原理;了解8251与8086的接口逻辑;掌握对8251的初始化编程方法,学会使用8251实现设备之间的串行通信。
二、实验内容(包括实验步骤和代码) (一)实验内容 1、编制程序:实现8251A与PC机的串行通讯,使用8253作分频器提供8251的收发时钟。 2、连接线路,从微机接收一批数据,接收完毕,再将它们回送给微机。
(二)实验步骤 1、连线说明: C4区:CS(8253)、A0、A1 —— A3区:CS2、A0、A1 C4区:CLK0 —— B2区:2M C4区:GATE —— C1区的VCC C4区:OUT0 —— C3区:RxC TxC C3区:CS(8251)、C/D —— A3区:CS4、A0 C3区:CLK —— B2区:4M C3区:RXD、TXD —— D7区:RXD、TXD 2、运行程序 3、运行“串口助手(ComPort.EXE)”,设置串口(波特率4800,8个数据位,一个停止位,偶校验),打开串口,选择“HEX发送”、“HEX显示”,向8251发送10个字节数据(输入数据之间用空格分隔),是否能接收到10个字节数据,接收到的数据是否与发送数据一致。 4、改变传输数据的数目,重复实验,观察结果。
(三)实验代码 .MODEL TINY ;使用8253的计数器0,外接2Mhz,经26分频后,送给8251,产生4800bps CTL_ADDR EQU 0241H ;控制字或状态字
DATA_ADDR EQU 0240H ;读写数据
W_8253_T0 EQU 0260H ;计数器0地址
W_8253_C EQU 0263H ;控制字
.STACK 100 2
.DATA Receive_Buffer DB 10 DUP(0) ;接受缓冲器
Send_Buffer EQU Receive_Buffer ;发送缓冲器
.CODE START: MOV AX,@DATA MOV DS,AX MOV ES,AX NOP CALL INIT_8253 CALL INIT_8251 START1: MOV CX,10 CALL Receive_Group MOV CX,10 CALL Send_Group JMP START1 INIT_8253 PROC NEAR MOV DX,W_8253_C MOV AL,37H ;定时器0,方式3
OUT DX,AL MOV DX,W_8253_T0 MOV AL,26H ;BCD码26(2000000/26)=16*4800
OUT DX,AL MOV AL,0 OUT DX,AL RET INIT_8253 ENDP INIT_8251 PROC NEAR CALL RESET_8251 MOV DX,CTL_ADDR MOV AL,7EH ;波特率系数为16,8个数据位
OUT DX,AL ;一个停止位,偶校验
CALL DLTIME ;延时
MOV AL,15H ;允许接收和发送发送数据,清错误标志
OUT DX,AL CALL DLTIME RET INIT_8251 ENDP Reset_8251 PROC NEAR MOV DX,CTL_ADDR MOV AL,0 OUT DX,AL ;向控制口写入"0"
CALL DLTIME ;延时,等待写操作完成
OUT DX,AL ;向控制口写入"0"
CALL DLTIME ;延时 3
OUT DX,AL ;向控制口写入"0"
CALL DLTIME ;延时
MOV AL,40H ;向控制口写入复位字40H
OUT DX,AL CALL DLTIME RET Reset_8251 ENDP ;接受一组数据,CX--接受数目 Receive_Group PROC NEAR LEA DI,Receive_Buffer Receive_Group1: CALL Receive_Byte STOSB LOOP Receive_Group1 RET Receive_Group ENDP ;接受一个字节 Receive_Byte PROC NEAR MOV DX,CTL_ADDR Receive_Byte1: IN AL,DX ;读入状态
TEST AL,2 JZ Receive_Byte1 ;有数据吗?
MOV DX,DATA_ADDR ;有
IN AL,DX RET Receive_Byte ENDP ;发送一组数据,CX--发送数目 Send_Group PROC NEAR LEA SI,Send_Buffer
Send_Group1: LODSB CALL SendByte LOOP Send_Group1 RET Send_Group ENDP ;发送一个字节 Sendbyte PROC NEAR PUSH AX MOV DX,CTL_ADDR ;读入状态
Sendbyte1: IN AL,DX TEST AL,1 JZ Sendbyte1 ;允许数据发送吗?
POP AX ;发送
MOV DX,DATA_ADDR 4
OUT DX,AL RET Sendbyte ENDP ;延时 DLTIME PROC NEAR MOV CX,10 LOOP $ RET DLTIME ENDP
END START
三、实验结果及其分析 (一)实验结果 由图1.1可知,使用串口助手每发送十个字节的十六进制数便可以接收到这十个字节的十六进制数。
图1.1 (二)实验扩展及思考 1、请读者思考,如何修改程序实现8251的自发自收功能? 答:将8251的TxD与RxD相连接,由TxD逐个发送字符,并用RxD逐个接收。 5
2、8251 与8250有何区别? 答:8250是异步收发器UART,8251是同步异步收发器USART,在PC机中带的串行口是8250 6 实验名称 实验二 8255控制交通灯实验 姓 名 系院专业 你的专业 班 级 你的专业 13-5班 学 号 实验日期 2015.6.8 指导教师 成 绩 一、实验目的和要求 1、了解8255芯片的工作原理,熟悉其初始化编程方法以及输入、输出程序设计技巧。学会使用8255并行接口芯片实现各种控制功能,如本实验(控制交通灯)等。 2、熟悉8255内部结构和与8086的接口逻辑,熟悉8255芯片的3种工作方式以及控制字格式。
二、实验内容(包括实验步骤和代码) (一)实验内容 1、编写程序:使用8255的PA0..2、PA4..6控制LED指示灯,实现交通灯功能。 2、连接线路验证8255的功能,熟悉它的使用方法。
(二)实验步骤 1、连线说明: D3区:CS、A0、A1 —— A3区:CS1、A0、A1 D3区:JP23(PA口) —— F4区:JP18 2、观察实验结果,是否能看到模拟的交通灯控制过程。
(三)实验代码 .MODEL TINY COM_ADD EQU 0273H PA_ADD EQU 0270H PB_ADD EQU 0271H PC_ADD EQU 0272H .STACK 100 .DATA LED_Data DB 10111110B ;东西绿灯,南北红灯
DB 10111111B ;东西绿灯闪烁,南北红灯
DB 10111101B ;东西黄灯亮,南北红灯
DB 11101011B ;东西红灯,南北绿灯
DB 11111011B ;东西红灯,南北绿灯闪烁
DB 11011011B ;东西红灯,南北黄灯亮
.CODE START: MOV AX,@DATA MOV DS,AX NOP 7
MOV DX,COM_ADD MOV AL,80H ;PA、PB、PC为基本输出模式
OUT DX,AL MOV DX,PA_ADD ;灯全熄灭
MOV AL,0FFH OUT DX,AL LEA BX,LED_Data START1: MOV AL,0 XLAT OUT DX,AL ;东西绿灯,南北红灯
CALL DL5S MOV CX,6 START2: MOV AL,1 XLAT OUT DX,AL ;东西绿灯闪烁,南北红灯
CALL DL500ms MOV AL,0 XLAT OUT DX,AL CALL DL500ms LOOP START2 MOV AL,2 ;东西黄灯亮,南北红灯
XLAT OUT DX,AL CALL DL3S MOV AL,3 ;东西红灯,南北绿灯
XLAT OUT DX,AL CALL DL5S MOV CX,6 START3: MOV AL,4 ;东西红灯,南北绿灯闪烁
XLAT OUT DX,AL CALL DL500ms MOV AL,3 XLAT OUT DX,AL CALL DL500ms LOOP START3 MOV AL,5 ;东西红灯,南北黄灯亮
XLAT OUT DX,AL CALL DL3S JMP START1