《微机原理上机个人总结.doc》由会员分享,可在线阅读,更多相关《微机原理上机个人总结.doc(50页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、微机原理上机个人总结微机原理上机课程设计报告微机原理课程设计报告设计题目:微机原理专班学业级号建筑电气与智能化学生姓名指导教师设计时间教师评分2021-2021学年上学期2021年6月目录实验一两个多位十进制数相加的实验.2一、实验目的.2二、实验内容.2三、程序框图.2四、程序清单.3五、实验要求.7实验二两个数相乘的实验.11一、实验目的.11二、实验内容.11三、程序框图.11四、程序清单.12五、实验要求.13实验一两个多位十进制数相加的实验一、实验目的1、学习数据传送和算术运算指令的用法。2、熟悉在PC机上建立、汇编、链接、调试和运行8088汇编语言程序的过程。二、实验内容将两个多位
2、十进制数相加。要求被加数均以ASCII码形式各自顺序存放在以DATA1和DATA2为首的5个内存单元中(低位在前)结果送回DATA1处。三、程序框图显示被加数和加数被加数和加数以ASCII码表示的数字串形式转化为由十六进制表示的数字串形式计数值5C_清除最低位进位执行ADC带进位相加AAA调整结果送被加数区N调整偏移量C_1=0?Y十六进制的结果转化为ASCII码表示的数字串显示结果结束四、程序清单CRLFMACROMOVMOVINTMOVMOVINTENDMDATADATA1DATA2DATASTACKSTA用TOPSTACKCODEEQUENDSSEGMENT;代码段定义LENGTHSTA
3、;TOP等于堆栈单元数SEGMENTDB33H,39H,31H,37H,34HDB36H,35H,30H,38H,32HENDSSEGMENTDB20DUP(?)DL,0DHAH,02H21HDL,0AHAH,02H21H;宏指令定义结束;数据段定义;第一个数据(作为加数)47193;第二个数据(作为被加数)28056;数据段定义结束;堆栈段定义;定义从STA开始20个单元作为堆栈使;换行;2号调用换行;宏定义指令(回车执行程序);回车;2号调用显示回车ASSUMECS:CODE,DS:DATA,SS:STACK,ES:DATASTART:MOVMOVMOVMOVMOVMOVMOVMOVCAL
4、LCRLFMOVMOVCALLCRLFMOVCALLMOVMOVCALLCRLFMOVA_,4C00HDI,OFFSETDATA2ADDA;使用加法运算程序SI,OFFSETDATA1B_,05DISPLA_,DATADS,A_A_,STACKSS,A_A_,TOPSP,A_SI,OFFSETDATA2B_,05DISPL;DATA2的偏移地址送SI;计数次数为5次;调用多次显示子程序DISPL(显示28056);回车换行;DATA1的偏移地址送SI;计数次数为5次;调用多次显示子程序DISPL(显示47193);回车换行;设置堆栈段;设置数据段SI,OFFSETDATA1;将和显示在屏幕上B
5、_,05DISPL;显示结束;调用多次显示子程序DISPL;执行回车换行程序;返回系统提示符INTDISPLDS1:PROCMOVMOVINTDECJNZRETDISPLADDAENDPPROCMOVMOVMOVAD1:制SUB16进制DECJNZMOVMOVMOVSUB21HNEARAH,02DL,SI+B_-121HB_DS1;多次显示子程序;显示功能号;显示字符串中一字符;DOS的中断调用;B_减1修改偏移量;如果B_未减到零跳到DSL执行指令;返回;完成显示功能子程序定义NEARD_,SIBP,DIB_,05;转换5次;实行加法运算子程序定义、属性为NEARBYTEPTRSI+B_-1
6、,30H;把加数的ASCLL转换为16进BYTEPTRDI+B_-1,30H;把被加数的ASCLL转换为B_AD1SI,D_DI,BPC_,05;修改偏移量;包括进位共5位CLCAD2:MOVMOVADCAAAMOVINCINCLOOPMOVMOVMOVAD3:ADDADDDECJNZRETADDACODEENDENDPENDSSTARTSI,ALSIDIAD2SI,D_DI,BPB_,05BYTEPTRSI+B_-1,30HBYTEPTRDI+B_-1,30HB_AD3AL,SIBL,DIAL,BL;清进位;进行代进位加法;非组合BCD码的加法调整;结果送被加数区;指向下一位;循环;十六进制
7、的数字串转化;加法程序结束;代码段结束;整个程序结束五、实验要求1.读懂源程序写出源程序注释。2.把源程序修改为任意两个六位十进制相加。并思考如果最高位有进位怎么办?CRLFMACROMOVMOVINTMOVMOVINTENDMDATADATA1DATA2DATA3DATASTACKSTATOPSTACKCODESEGMENTDB6DUP(?)DB6DUP(?)DBENDSSEGMENTDBEQUENDSSEGMENT20DUP(?)LENGTHSTADL,0DHAH,02H21HDL,0AHAH,02H21HASSUMECS:CODE,DS:DATA,SS:STACK,ES:DATASTAR
8、T:MOVMOVMOVMOVMOVMOVA_,DATADS,A_A_,STACKSS,A_A_,TOPSP,A_MOVCALLCRLFMOVCALLCRLFMOVCALLMOVSAHFMOVADCCMPJZMOVINTJIEGUO:MOVMOVCALLCRLFMOVINTDISPLPROCDS1:MOVMOVINTDECJNZRETDISPLENDPSI,OFFSETDATA2ADDBSI,OFFSETDATA1ADDBDI,OFFSETDATA2ADDAAH,DATA3DL,30HDL,0DL,30HJIEGUOAH,02H21HSI,OFFSETDATA1B_,06DISPLA_,4C00
9、H21HNEARAH,02DL,SI+B_-121HB_DS1ADDAPROCMOVMOVMOVAD1:SUBSUBDECJNZMOVMOVMOVCLCAD2:MOVMOVADCAAAMOVINCINCLOOPLAHFMOVMOVMOVMOVAD3:ADDADDDECJNZRETNEARD_,SIBP,DIB_,06BYTEBYTEB_AD1SI,D_DI,BPC_,06PTRSI+B_-1,30HPTRDI+B_-1,30HAL,SIBL,DIAL,BLSI,ALSIDIAD2DATA3,AHSI,D_DI,BPB_,06BYTEPTRSI+B_-1,30HBYTEPTRDI+B_-1,30
10、HB_AD3ADDAENDPADDBPROCNEARMOVSH1:INTMOVDECCMPJNZRETADDBENDPCODEENDSENDSTARTB_,6MOVAH,01H21HSI+B_-1,ALB_B_,0SH1实验二两个数相乘的实验一、实验目的掌握乘法指令和循环指令的用法。二、实验内容实现十进制数的乘法。被乘数和乘数均以ASCII码形式存放在内存中乘积在屏幕上显示出来。三、程序框图乘数BLBL中数由ASCII码转化为十六进制SI指向被乘数计数值5C_取被乘数SI单元与BL相乘AAM调整结果低位与前次计算的进位DI相加AAA调整结果DIDI+1指向下一单元本次计算的进位DINC_1=0
11、?Y显示结果结束四、程序清单DATADATA1DATA2RESULTDATASTACKSTATOPSTACKSEGMENTDBDBDBENDSSEGMENTDB20DUP(?);定义堆栈段;从STA开始留出20个单元作为堆栈空间;给TOP赋值32H,39H,30H,35H,34H33H6DUP(00H);定义数据段;定义被乘数;定义乘数;定义乘积存放位置EQULENGTHSTAENDSCODEASSUMESTART:SEGMENTCS:CODE,DS:DATA,SS:STACK,ES:DATAMOVMOVMOVMOVMOVMOVMOVMOVANDMOVMOVA_,DATADS,A_A_,STA
12、CKSS,A_A_,TOPSP,A_SI,OFFSETBL,SIBL,00001111BSI,OFFSETDI,OFFSETDATA1RESULTDATA2;定义代码段;给DS赋初值;给SS赋初值;给SP赋初值;取乘数;乘数ASCLL转化为十六进制数;取被乘数偏移地址;取乘积存放的偏移地址MOVLOOP1:MOVANDINCMULC_,05AL,SIAL,00001111BSIBL;乘5次;取被乘数;被乘数ASCLL转化为十六进制数;指向下一个被乘数字节(高位);乘法运算AAM;乘法调整AHAL/10所得的商ALAL/10所得的余数ADDAAAMOVINCMOVLOOPMOVMOVDISPL:
13、MOVMOVADDINTDECLOOPMOVINTCODEENDENDSSTARTDI,ALDIDI,AHLOOP1C_,06SI,OFFSETAH,02DL,SI+5DL,30H21HSIDISPLA_,4C00H21H;判断是否6位显示结束;显示结束调用4CH号系统功能调用;返回系统提示符状态;代码段结束;整个程序结束;存调整后的高位积;判断乘法运算是否结束;取六个乘积字节RESULT;给定乘积存放的起始地址;调用2号系统功能调用;取出乘积(从高位开始取);将乘积的十六位进制数转化为ACSLL码;调用2号调用进行显示AL,DI;乘积低位加部分乘积;非压缩形式BCD码调整指令;存调整后的低位
14、积五、实验要求读懂程序写出程序注释。微机原理上机报告实验一:EMU8086软件安装与使用一、实验目的通过本实验学习EMU8086软件的安装与使用。二、实验设备PC微机一台Emu8086仿真软件三、实验任务1.安装Emu8086仿真软件。2.利用Emu8086仿真软件编程。四、实验原理Emu8086仿真软件就是在Windows下的一种仿真软件它可以仿真模拟8086的程序运行并且可以直观地观察CPU寄存器的变化情况。Emu8086-MicroprocessorEmulator结合了一个先进的原始编辑器、组译器、反组译器、具除错功能的软件模拟工具(虚拟PC)还有一个循序渐进的指导工具。这对刚开始学组
15、合语言的人会是一个很有用的工具。它会在模拟器中一步一步的编译程序码并执行视觉化的工作环境让它更容易使用。你可以在程序执行当中检视暂存器、旗标以及记忆体。模拟器会在虚拟PC中执行程序这可以隔绝你的程序避免它去存取实际硬体像硬碟、记忆体而在虚拟机器上执行组合程序这可以让除错变得更加容易。这个软件完全相容於Intel的下一代处理器包括了PentiumII、Pentium4而相信Pentium5也会继续支援8086的。这种现象让8086程序码的可携性相当高它可以同时在老机器以及现代的电脑是执行8086的另一个优势是它的指令比较小且相当容易学习。五、实验内容1.安装Emu8086仿真软件熟悉菜单栏工具栏
16、的每个选项的作用按照操作流程完成程序的编译、链接并对编辑窗口中所编写的简单汇编程序进行仿真调试最后能够输出正确结果。2.编写简单程序实现字符串的显示显示内容为“姓名(换行)、学号”。六、实验过程及结果1.EMU8086安装。图1-1-1Emu8086的安装图1-1-2Emu8086的安装图1-1-3Emu8086的安装图1-1-4Emu8086的安装图1-1-5Emu8086的安装图1-1-6Emu8086的安装图1-1-7Emu8086的安装2.EMU8086使用安装完毕得到窗口如下图1-1:图1-2Emu进入主界面3.操作流程(1)file-new-emptyworkplace编辑程序如下
17、图1-2:图1-3Emu8086的安装(2)file-save保存程序(_.asm格式)完成程序的编辑.(3)assmbler-pile完成程序的编译和链接如下图1-3:图1-4Emu程序编译完成界面4.emulator-showemulator开始仿真调试如下图1-4:图1-5Emu程序仿真调试界面5.左键点击run运行程序结果如图1-5:图1-6Emu程序仿真调试结果界面七、实验感想这是微机原理的第一次上机我熟悉了用emu8086的使用方法通过这个模拟仿真软件初步了解了计算机的原理。因为是第一次实验我并不能很好地编写汇编语言程序但是相信通过以后的学习我可以变更强。八、参考文献1李继灿,谭浩
18、强.微机原理与接口技术.北京:清华大学出版社2王爽.汇编语言.北京:清华大学出版社3沈美明,温冬婵.汇编语言程序设计.北京:机械工业出版社4许立梓.微型计算机原理及应用.北京:机械工业出版社32位微机原理上机实验报告西北工业大学明德学院实验报告实验项目班姓学级名号微机原理与接口应用实验121204田家豪王辰硕121566121567指导老师伍明高实验题目(1)显示班级符号输出;(2)显示学号符号输出;(3)显示姓名符号输出;(4)显示单个字符输出;实验目的1、掌握在PC机上以十六位进制形式显示数据的方法2、熟悉汇编的调试环境和使用实验内容STACK1STACK2DATAMES1MES2MES3
19、MES4MES5MES6SDDATASEGMENTSTACKDW256DUP(?)ENDSSEGMENTUSE13DB121204,0AH,0DH,$DB121566,0AH,0DH,$DBTIANJIAHAO,0AH,0DH,$DB121204,0AH,0DH,$DB121567,0AH,0DH,$DBWANGCHENSHUO,0AH,0DH,$DBAENDSINT21HMOVD_,OFFSETMES3MOVAH,09HINT21HMOVD_,OFFSETSDMOVAL,DS:SIANDAL,0F0HSHRAL,4CMPAL,0AHJBC2ADDAL,07HCODESEGMENTUSE13A
20、SSUMESTART:MOVA_,DATAMOVDS,A_MOVD_,OFFSETMES1MOVAH,09HINT21HCS:CODE,DS:DATAMOVAH,09HMOVD_,OFFSETMES2C2:ADDAL,30HMOVDL,ALMOVAH,02HINT21HMOVAL,DS:DIANDAL,0FHCMPAL,0AHJBC3:C3ADDAL,07HADDAL,30HMOVDL,ALMOVAH,02HINT21HMOVA_,4C00HINT21HCODEENDSENDSTART实验步骤(1)运行编译器编译程序。(2)单击编译保存。(3)单击调试程序发现无误。(4)运行程序。实验总结1.
21、通过实验熟悉了汇编语言编译环境了解了程序的编译运行和调试的方法2.实验过程中在调试的时候各调试指令的用法十分复杂需要不断练习熟悉指令的运行目的。3.不同的程序代码在不同的环境运行方式也不同这是我们必须要掌握的技能。实验题目显示程序实验实验目的(1)掌握在PC机上以十六进制形式显示数据的方法。(2)掌握部分DOS功能调用使用方法。(3)熟悉Tdpit集成环境和调试器的使用。实验内容及说明一般来说有很多程序需要显示输出提示运行的状况和结果有的还需要将数据区中的内容显示在屏幕上。本实验要求将指定数据区的数据以十六进制数形式显示在屏幕上并通过DOS功能调用完成一些提示信息的显示。实验中可使用DOS功能
22、调用(INT21H)。(1)显示单个字符输出入口:AH=02H调用参数:DL=输出字符(2)显示字符串入口:AH=09H调用参数:DS:D_=串地址$为结束字符(3)键盘输入并回显入口:AH=01H返回参数:AL=输出字符(4)返回DOS系统入口:AH=4CH调用参数:AL=返回码实验步骤(1)运行Tdpit软件选择文件菜单点击新建进入一个源文件编辑界面。根据实验内容的描述编写实验程序。(2)使用编译菜单中的编译和链接对实验程序进行汇编、连接。(3)使用编译菜单中的运行运行程序观察运行结果。(4)使用编译菜单中的调试调试程序观察调试过程中数据传输指令执行后各寄存器及数据区的内容。(5)更改数据
23、区中的数据检查程序的正确性。程序如下:DATASEGMENTMESSDDB'Showaashex:',0AH,0DH,'$'DB'a'DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVA_,DATAMOVDS,A_MOVD_,OFFSETMESMOVAH,09HINT21HMOVDI,OFFSETSDMOVAL,DS:DIANDAL,0F0HSHRAL,4CMPAL,0AHJBC2ADDAL,07HC2:ADDAL,30HMOVDL,ALMOVAH,02HINT21HMOVAL,DS:DIANDAL
24、,0FHCMPAL,0AHJBC3ADDAL,07HC3:ADDAL,30HMOVDL,ALMOVAH,02HINT21HMOVA_,4C00HINT21HCODEENDSENDSTART;返回DOS;显示字符;取低4位;显示字符;是否是A以上的数;取高4位;显示提示信息实验题目7种寻址方式指令编程实验目的通过对传送和算术运算类指令的实验结果的观察和分析加深对各指令完成操作功能的理解并了解各指令对于相关标志位的影响。实验内容7种寻址方式指令的编程包括:(1)MOV传送类;(2)堆栈操作传送;(3)交换传送;(4)输入/输出传送;(5)串传送指令等。(6)在指令后面注释源操作数和目的操作数的寻址
25、方式。程序如下:DATASEGMENTDATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTADATASEGMENTRT:MOVA_,DATAMOVDS,A_MOVAL,04HMOVD_,2000HMOVA_,99AAHMOVB_,1257HSUBA_,B_MOVA_,5000HMOVSI,3000HMOVA_,DS:SIPUSHA_PUSHEB_PUSHSIPUSHDOWRDPTRDIPUSHW0A124HPUSHD20HMOVA_,3000H_CHGA_,1000HMOV3000H,A_IND_,7000H/立即寻址/寄存器寻址/寄存器间接寻址/堆栈操作指令/
26、交换传送指令INA_,D_/输入指令实验步骤1.2.3.建立文件编写源程序。编译、连接生成E_E可执行文件。行调试分析每条指令的寻址方式验证操作数所在的地址空间。实验总结1.2.3.通过本次实验可以正确的编写传送类指令与算术运算类指令、逻辑运算类指令的应用实验更加清楚的能分析各种运算指令并对其有了更深的理解。实验过程中必须认真仔细特别是在应用逻辑运算指令时不然一旦有一点错误实验就无并了解了编译链接调试的过程检查程序结果的正确与否会观察分析。法正常进行必须返回去查找错误费时费力。实验题目各种逻辑指令的编程实验目的1、掌握在PC机上各种逻辑指令的用法2、熟悉各种逻辑指令的用法实验内容在上次编辑七种
27、寻址方式实验的中加入各种逻辑指令的运算并且调试。程序如下:STACK1SEGMENTSTACKDW256DUP(?)STACK1ENDSDDATASEGMENTMSRDB'HELLO,WORLD!$'LENEQU$-MSRDDATAENDSE_DAMSDE_DACODESEGMENTDBLENDUP(?)ENDSSEGMENTASSUMECS:CODE,DS:DDATA,ES:E_DASTART:MOVA_,DDATAMOVDS,A_MOVA_,E_DAMOVES,A_MOVSI,OFFSETMSRMOVDI,OFFSETMSDMOVC_,LENMOVB_,0NE_T:MOVA
28、L,MSRB_MOVES:MSDB_,ALINCB_LOOPNE_TPUSHESPOPDSMOVD_,OFFSETMSDMOVAH,9INT21HMOVA_,2233HMOVD_,3344HADDA_,D_ADDAL,DLADDA_,5566HADCAL,DHDIVBLMOVB_,6677HMULB_SBBA_,D_MOVA_,4C00HINT21HCODEENDSENDSTART实验步骤1.2.3.运行编译器编译程序。单击编译保存。调试程序。实验总结1.2.3.4.通过实验熟悉了各种逻辑指令的用法了解了其程序的编译。调试程序的过程中需要不断地发现问题、解决问题。实验过程中各指令的用法十分复杂
29、需要不断练习熟悉指令的运行目的。不同的程序代码在不同的环境的运用方式也不同这是我们必须要掌握的技能。实验题目数据传送实验实验目的(1)熟悉Tdpit集成环境和调试器的使用。(2)掌握与数据有关的不同寻址方式。实验内容本实验要求将数据段中的一个字符串传送到附加段中并输出附加段中的目标字符串到屏幕上。实验程序如下:DDATAMSRLENDDATAE_DAMSDE_DASEGMENTEQU$-MSRENDSSEGMENTDBLENDUP(?)ENDS;定义堆栈段;定义附加数据段;定义源数据段DB“HELLO,WORLD!$”MYSTACKSEGMENTSTACKDW20DUP(?)MYSTACKEN
30、DSCODESTART:SEGMENTMOVA_,DDATA;定义代码段ASSUMECS:CODE,DS:DDATA,ES:E_DAMOVDS,A_MOVA_,E_DAMOVES,A_MOVDI,OFFSETMSDMOVC_,LENNE_T:MOVAL,SIMOVES:DI,ALINCSIINCDIDECC_JNZNE_TPUSHESPOPDS;将附加段寄存器指向的段值赋给数据段寄存器;开始传输数据;装载附加数据段寄存器;设置DIMOVSI,OFFSETMSR;设置SI;装载数据段寄存器MOVD_,OFFSETMSDMOVAH,9INT21HMOVA_,4C00HINT21HCODEENDSE
31、NDSTART将程序主体部分的寄存器间接寻址方式改为相对寻址方式则如下所示:MOVB_,0MOVC_,LENNE_T:INCB_LOOPNE_TMOVAL,MSRB_MOVES:MSDB_,AL;利用DOS功能调用返回DOS状态实验步骤(1)运行Tdpit软件选择文件菜单点击新建进行实验程序的编写。(2)使用编译菜单中的编译和连接对实验程序进行汇编、连接。(3)使用编译菜单中的运行运行程序观察运行结果。(4)使用编译菜单中的调试调试程序观察调试过程中数据传输指令执行后各寄存器及数据区的内容。(5)更改数据区中的数据考察程序的正确性。实验题目基本I/O接口电路设计实验实验目的(1)掌握基本I/O
32、接口电路的设计方法。(2)熟练汇编语言I/O端口操作指令的使用。实验内容利用三态缓冲器74LS245、锁存器74LS374设计微机总线和外部设备的数据通道实现微机对外部输入数据的读取和对输出数据的输出。用开关及LED显示单元的开关和数据灯作为输入和输出显示设备将读到开关的数据显示在数据灯上。实验原理1输入接口设计输入接口一般用三态缓冲器实现外部设备输入数据通过三态缓冲器通过数据总线传送给微机系统。74LS245是一种8通道双向的三态缓冲器。DIR引脚控制缓冲器数据方向DIR为1表示数据由A7:0至B7:0DIR为0表示数据由B7:0至A7:0。G引脚为缓冲器的片选信号低电平有效。2输出接口设计
33、输出接口一般用锁存器实现从总线送出的数据可以暂存在锁存器中。74LS374是一种8通道上沿触发锁存器。D7:0为输入数据线Q7:0为输出数据线。CLK引脚为锁存控制信号上升沿有效。当上升沿到时输出数据线锁存输入数据线上的数据。OE引脚为锁存器的片选信号低电平有效。3输入输出接口设计用74LS245和74LS374可以组成一个输入输出接口电路既实现数据的输入又实现数据的输出输入输出可以占用同一个端口。是输入还是输出用总线读写信号来区分。总线读信号IOR和片选信号CS相“或”来控制输入接口74LS245的使能信号G。总线写信号IOW和片选信号CS相“或”来控制输出接口74LS374的锁存信号CLK
34、。实验系统中基本输入输出单元就实现了两组这种的电路。实验说明及步骤本实验实现的是将开关K7:0的数据通过输入数据通道读入CPU的寄存器然后再通过输出数据通道将该数据输出到数据灯显示该程序循环运行直到按动键盘上任意按键再退出程序。实验步骤如下:(1)确认从PC机引出的两根扁平电缆已经连接在实验平台上。(2)如图1所示连接实验线路。(3)首先运行CHECK程序查看并记录与片选信号对应的I/O端口始地址。(4)参考实验流程图编写程序注意使用正确的端口地址然后编译链接。(5)运行程序拨动开关观看数据灯显示是否正确。图1实验程序如下:IOY0EQU0D000H;片选IOY0对应的端口始地址;_MY825
35、5_AMY8255_BMY8255_CMY8255_MODEEQUIOY0+00H_4EQUIOY0+01H_4EQUIOY0+02H_4EQUIOY0+03H_4;8255的A口地址;8255的B口地址;8255的C口地址;8255的控制寄存器地址STACK1SEGMENTSTACKDW256DUP(?)STACK1ENDSCODESEGMENTASSUMECS:CODESTART:MOVD_,MY8255_MODEMOVAL,82HOUTD_,ALLOOP1:MOVD_,MY8255_BINAL,D_MOVD_,MY8255_AOUTD_,ALMOVAH,1INT16HJZLOOP1;初始
36、化8255工作方式;工作方式0A口输出B口输入;读B口;写A口;判断是否有按键按下;无按键则跳回继续循环有则退出QUIT:MOVA_,4C00HINT21H;结束程序退出CODEENDSENDSTART实验题目8255并口控制器应用实验实验目的(1)掌握8255的工作方式及应用编程。(2)掌握8255的典型应用电路接法。实验内容(1)基本输入输出实验。编写程序使8255的A口为输出B口为输入完成拨动开关到数据灯的数据传输。要求只要开关拨动数据灯的显示就改变。(2)流水灯显示实验。编写程序使8255的A口和B口均为输出实现16位数据灯的相对循环显示。实验原理并行接口是以数据的字节为单位与I/O设
37、备或被控制对象之间传递信息。CPU和接口之间的数据传送总是并行的即可以同时传递8位、16位、32位等。8255可编程外围接口芯片是Intel公司生产的通用并行I/O接口芯片它具有A、B、C三个并行接口用+5V单电源供电能在以下三种方式下工作:方式0-基本输入/出方式、方式1-选通输入/出方式、方式2-双向选通工作方式。实验说明及步骤1基本输入输出实验本实验使8255端口A工作在方式0并作为输出口端口B工作在方式0并作为输入口。用一组开关信号接入端口B端口A输出线接至一组数据灯上然后通过对8255芯片编程来实现输入输出功能。实验步骤如下。(1)确认从PC机引出的两根扁平电缆已经连接在实验平台上。
38、(2)如图1所示连接实验线路。(3)首先运行CHECK程序查看I/O空间始地址。(4)利用查出的地址编写程序然后编译链接。(5)运行程序拨动开关看数据灯显示是否正确。图12.流水灯显示实验首先分别向A口和B口写入80H和01H然后分别将该数右移和左移一位再送到端口上这样循环下去从而实现流水灯的显示。实验步骤如下:(1)确认从PC机引出的两根扁平电缆已经连接在实验平台上。(2)首先运行CHECK程序查看I/O空间始地址。(3)利用查出的地址编写程序然后编译链接。(4)如图2所示连接实验线路。(5)运行程序看数据灯显示是否正确。图2流水灯程序如下IOY0EQU0D000H;片选IOY0对应的端口始
39、地址;_MY8255_AEQUIOY0+00H_4;8255的A口地址MY8255_BEQUIOY0+01H_4;8255的B口地址MY8255_CEQUIOY0+02H_4;8255的C口地址MY8255_MODEEQUIOY0+03H_4;8255的控制寄存器地址STACK1SEGMENTSTACKDW256DUP(?)STACK1ENDSDATASEGMENTLADBLBDBDATAENDSCODESEGMENT;定义数据变量ASSUMECS:CODE,DS:DATASTART:MOVA_,DATAMOVDS,A_MOVD_,MY8255_MODEMOVAL,80HOUTD_,ALMOV
40、D_,MY8255_AMOVAL,80HOUTD_,ALMOVLA,ALMOVD_,MY8255_BMOVAL,01HOUTD_,ALMOVLB,ALLOOP1:CALLDALLYMOVAL,LARORAL,1MOVLA,ALMOVD_,MY8255_AOUTD_,ALMOVAL,LBROLAL,1MOVLB,ALMOVD_,MY8255_BOUTD_,ALMOVAH,1INT16HJZLOOP1QUIT:MOVA_,4C00HINT21H;将A口起始数据右移再写入A口;定义8255工作方式;工作方式0A口和B口为输出;写A口发出的起始数据;写B口发出的起始数据;将B口起始数据左移再写入B口;
41、判断是否有按键按下;无按键则跳回继续循环有则退出;结束程序退出DALLYPROCNEARPUSHC_PUSHA_MOVC_,3FFHD1:MOVA_,0FFFFH;软件延时子程序D2:DECA_JNZD2LOOPD1POPA_POPC_RETDALLYENDPCODEENDSENDSTART实验题目A/D转换实验实验目的(1)学习掌握模/数信号转换基本原理。(2)掌握ADC0809芯片的使用方法。实验内容编写实验程序用ADC0809完成模拟信号到数字信号的转换。输入模拟信号由A/D转换单元可调电位器提供的05V输出数字量显示在显示器屏幕上。显示形式为:AD0809:IN0_。实验原理ADC08
42、09包括一个8位的逐次逼近型的ADC部分并提供一个8通道的模拟多路开关和联合寻址逻辑。用它可直接输入8个单端的模拟信号分时进行A/D转换在多点巡回检测、过程控制等应用领域中使用非常广泛。ADC0809的主要技术指标为:分辨率:8位单电源:5V总的不可调误差:1LSB转换时间:取决于时钟频率模拟输入范围:单极性05V时钟频率范围:10KHz1280KHzADC0809的地址信号与选中通道的关系如表1所示。表1实验步骤及说明(1)确认从PC机引出的两根扁平电缆已经连接在实验平台上。(2)首先运行CHECK程序查看I/O空间始地址。(3)利用查出的地址编写程序然后编译链接。(4)如图1所示连接实验线
43、路。(5)运行程序调节电位器观察屏幕上显示的数字量输出。图1程序如下:IOY0EQU0D000H;片选IOY0对应的端口始地址;_AD0809EQUIOY0+00H;AD0809的端口地址STACK1SEGMENTSTACKDW256DUP(?)STACK1ENDSDATASEGMENTSTR1DB'AD0809:IN0$'DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVA_,DATAMOVDS,A_LOOP1:MOVD_,AD0809OUTD_,ALCALLDALLYMOVD_,OFFSETSTR1MOVAH,9INT21HM
44、OVD_,AD0809INAL,D_;启动A/D转换;定义显示的字符串;显示字符串AD0809:IN0;读出转换结果MOVCH,ALANDAL,0F0HMOVCL,04HSHRAL,CLCMPAL,09HJGA1ADDAL,30HJMPA2A1:A2:ADDAL,37HMOVDL,ALMOVAH,02HINT21HMOVAL,CHANDAL,0FHCMPAL,09HJGA3ADDAL,30HJMPA4A3:A4:ADDAL,37HMOVDL,ALMOVAH,02HINT21HMOVDL,0DHMOVAH,02HINT21HMOVAH,1INT16HJZLOOP1QUIT:MOVA_,4C00HINT21H;分析结果进行显示;取出数据的十位;对AF的处理;对09的处理;取出数据的各位;对AF的处理;对09的处理;回车置光标到行首;判断是否有按键按下;无按键则跳回继续循环有则退出;结束程序退出DALLYPROCNEARPUSHC_PUSHA_MOVC_,4000HD1:MOVA_,0600HD2:DECA_;软件延时子程序JNZD2LOOPD1POPA_POPC_RETDALLYENDPCODEEN