实验报告3完整版本.2(正式报告)_第1页
实验报告3完整版本.2(正式报告)_第2页
实验报告3完整版本.2(正式报告)_第3页
实验报告3完整版本.2(正式报告)_第4页
实验报告3完整版本.2(正式报告)_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

3.28255A基础实验实验名称8255A基础实验实验目的1.熟悉GX-8000试验系统;2.进一步熟悉汇编语言程序的设计、调试过程;3.掌握可编程并行接口8255A方式0的工作原理和汇编方法;实验内容1.LED静态显示:在8个LED上显示组内一个同学学号的后两位对应的二进制数。2.开关数显示:使用8255A的A口和B口,将8个逻辑开关的状态分别显示在8个LED上。3.七段数码管显示:在八个七段数码管上显示组内另一名同学学号。实验部分1.LED静态显示实验若使用8255A的A口输出学号,则实验连线如图3.6所示。根据实验要求画出程序流程图,如图3.7所示。完善8255A初始化程序:将A口设置为方式0,输出。MOVAL,80H;填写8255A控制字;A口输出,方式0MOVDX,0283H;填写8255A控制口地址OUTDX,AL;写8255A控制字编写汇编语言程序,源代码如下。完善该程序,并为标有“;”的代码行添加注释。DATASEGMENT;定义数据段IDDB00110011B;定义学号变量DATAENDSCODESEGMENT;定义代码段ASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AX;此处加入8255A初始化程序MOVAL,80H;填写8255A控制字;A口输出,方式0MOVDX,0283H;填写8255A控制口地址OUTDX,AL;写8255A控制字MOVAL,IDMOVDX,00D0HOUTDX,AL;CODEENDSENDSTAR在icode集成开发环境中编译、链接、运行该程序,观察程序运行结果。实验结果:学号所对应的二进制位所对应的LED灯正确的亮了。2.开关数显示实验(1)使用8255A的B口读入8个逻辑开关的状态数据,然后通过A口将状态数据输出到LED显示。实验连线如图3.8所示。(2)程序参考流程图如图3.9所示。参考图3.9所示流程图,仿照LED静态显示实验程序编写源程序,调试、运行,观察实验结果。程序代码:STACKSSEGMENTSTACK;堆栈段DW128DUP(?);注意这里只有128个字节STACKSENDSDATASSEGMENT;数据段DATASENDSCODESSEGMENT;代码段ASSUMECS:CODES,DS:DATASSTART:MOVAX,DATAS;初始化MOVDS,AXMOVAL,82HMOVDX,0283HOUTDX,ALLP1:MOVDX,0281HINAL,DXMOVDX,0280HOUTDX,ALJMPLP1MOVAX,4C00H;退出程序INT21HCODESENDSENDSTART实验结果:开启/关闭开关时,对应的LED灯马上亮/暗。3.七段数码管显示实验(1)根据图3.11所示,GX-8000实验箱上的七段数码管采用共阴极连接,可以得到数字0~9所对应的段码,如表3.2所示。GX-8000实验箱上的八个数码管共用段码输入端a~g和dp,由位选信号输入端B7~B0决定对应的数码管是否显示。如当B0为1时,右侧第一个数码管显示段码信息;当B1为1时,右侧第二个数码管显示段码信息。若B7~B0输入全为0时,所有数码管关闭显示;反之,全为1时,所有数码管显示相同的信息。为了使八个数码管显示不同的字形,同一时刻,只能有一个数码管显示,其他均关闭。得到的实验连线如图3.10所示。(2)为了在八个数码管上得到稳定的显示,需要不断重复刷新显示,程序流程图如图3.11所示。为了提高程序的通用性,便于程序的修改,在编程时,可以将要显示的八个数定义为字节变量,根据变量的值查段码表,得到段码后再输出显示。程序的数据段可定义为:DATASEGMENT;定义数据段LEDDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH;定义段码段NODB1,2,3,4,5,6,7,8;列出待显示的数字DATAENDS查段码表的方法可以参考3.1节第一个程序的实现方法。编写汇编语言程序,调试、运行,观察实验结果。总结程序调试经验:在编写动态数码管显示程序时应注意哪些问题?程序代码:DATASEGMENTLEDDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FHNODB1,2,3,4,5,6,7,8NUMDB?WHICHDB?DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVNUM,00HMOVWHICH,00000001H QUSHUZI:MOVAL,080HMOVDX,283HOUTDX,ALMOVAL,NUMMOVAH,0LEABX,NOMOVAH,0ADDBX,AXMOVAL,[BX];将NO中对应数字给ALLEABX,LEDMOVAH,0ADDBX,AXMOVAL,[BX];将对应的数码管号码给AL,用来输出 MOVDX,281H;B端口输出数码管段码OUTDX,AL MOVAL,WHICHMOVAH,0MOVDX,280H;A端口输出数码管选择信号OUTDX,ALROLWHICH,1CALLDELAY;调用延时子程序CMPNUM,7JEDES;已经是第八个了,该新一轮循环了INCNUM;还不是第八个,继续进行本轮操作JMPQUSHUZIDES:MOVNUM,00H;清零之后,进行新的一轮操作JMPQUSHUZIDELAYPROC;延时子程序PUSHCX;保存环境MOVCX,0010HT1:MOVAX,0010HT2:DECAXJNZT2LOOPT1POPCX;还原环境RETDELAYENDP CODEENDSENDSTART实验结果:数码管上显示预先设置好的数字。实验小结本次实验室8255A基础实验。在本次实验中,我们温习了8255A的使用方法,注意事项。在预习过程,我们自习阅读实验参考书,并结合课本,认真思考,写出了实验代码。在上机过程中,我们调试程序,询问老师,询问同学,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论