您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 北工大8255a微机接口实验
北工大微机接口实验报告8255A基础实验:一:实验目的1.熟悉GX-8000实验系统;2.进一步熟悉汇编语言程序的设计,调试过程;3.掌握可编程并行接口芯片8255A方式0的工作原理和编程方法。二:实验内容1.LED静态显:在8个LED上显示组内一个同学学号的后两位对应的二进制数。2.开关数显示:使用8255A的A口和B口,将8个逻辑开关的状态分别显示在8个LED上3.七段数码管显示:在八个七段数码管上显示组内另一名同学的学号。三:实验环境1.硬件:GX-8000实验箱,USB电缆,自锁紧导线2.软件:icode集成开发环境四:实验提示1.LED静态显示实验(1)若使用8255A的A口输出学号,则实验连线如图3.6所示。(2)根据实验要求画出程序流程图,如图3.7所示。(3)完善8255A初始化程序:将A口设置为方式0,输出MOVAL,80H;填写8255A控制字;A口输出,方式0MOVDX,283H;填写8255A控制口地址OUTDX,AL;写8255A控制字(4)编写汇编语言程序。源代码如下:DATASEGMENT;定义数据段IDDB28;定义学号变量DATAENDSCODESEGMENT;定义代码段ASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVAL,80HMOVDX,283HOUTDX,ALMOVAL,IDMOVDX,280H;将A端口地址放入DX寄存器OUTDX,AL;将AL的8位值送DX端口CODEENDSENDSTART(5)在icode集成开发环境中编译。链接。娙该程序,观察实验结果。2.开关数显示实验(1)使用8255A的B口读入8个逻辑开关的状态数据,然后通过A口将状态数据输出到LED显示。实验连线如图3.8所示(2)程序参考流程图如图3.9所示。(3)源程序代码如下:DATASEGMENTDATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAL,10000010BMOVDX,283HOUTDX,ALLP1:MOVDX,281HINAL,DXMOVDX,280HOUTDX,ALJMPLP1CODEENDSENDSTART(4)在icode集成开发环境中编译,链接,运行该程序,观察程序运行结果。3.七段数码管显示实验(1)GX-8000试验箱上的七段数码管采用共阴极连接,可以得到数字0~9所对应的段码,如表3.2所示。GX-8000实验箱上的八个数码管共用段码输入端a~g和dP,由位选信号输入端B7~B0决定所对应数码管是否显示。如当B0为1时,右侧第一个数码管显示断码信息;当B1为1时,右侧的第二个数码管显示段码信息,若B0~B7输入全为0时,所有数码管显示关闭;反之全为1时,所有数码管显示相同的信息。为了是八个数码管显示不同的字形,同一时刻,只能有一个数码管显示,其他均关闭。得到的实验连线如图3.10所示。(2)为了在八个数码管上得到稳定的显示,需要不断的刷新显示,程序流程图如图311所示(3)编写源程序,如下所示:MOVCX,0A00HLP2:LOOPLP2MOVAL,04HMOVDX,280HOUTDX,ALMOVDX,281HMOVAL,[SI+1]OUTDX,ALMOVCX,0A00HLP3:LOOPLP3MOVAL,08HMOVDX,280HOUTDX,ALMOVDX,281HMOVAL,[SI+4]OUTDX,ALMOVCX,0A00HLP4:LOOPLP4MOVAL,10HMOVDX,280HOUTDX,ALMOVDX,281HMOVAL,[SI+2]OUTDX,ALMOVCX,0A00HLP5:LOOPLP5总结程序调试经验:在编写动态数码管显示程序时应注意哪些问题?数码动态显示是一个占用IO资源较多、程序设计较复杂的模块。在设计时,应从IO占用与软件复杂程度两方面考虑。MOVAL,20HMOVDX,280HOUTDX,ALMOVDX,281HMOVAL,[SI+0]OUTDX,ALMOVCX,0A00HLP6:LOOPLP6MOVAL,40HMOVDX,280HOUTDX,ALMOVDX,281HMOVAL,[SI+2]OUTDX,ALMOVCX,0A00HLP7:LOOPLP7MOVAL,80HMOVDX,280HOUTDX,ALMOVDX,281HMOVAL,[SI+1]OUTDX,ALMOVCX,0A00HLP8:LOOPLP8JMPLPCODEENDSENDSTART8253基础实验:一:实验目的1进一步熟悉GX-8000实验系统;2进一步熟悉汇编语言程序的设计,调试过程;3掌握可编程定时器/计数器芯片8253的工作原理和编程方法。二:实验内容1.产生周期为1秒的方波信号,用逻辑笔观察输出结果。2.脉冲计数器:对单脉冲按钮进行技术,按下五次,L0点亮,重复计数。三:实验环境1硬件:GX-8000实验箱,USB电缆,自锁紧导线2软件:icode集成开发环境四:实验提示1.产生周期为1秒的方波信号。(1)8253内部有三个独立的16位的计数通道,单通道最大计数𝟐𝟏𝟔=65536,若使用1MHz的时钟产生周期为1s的方波信号,计数器的计数初值N=时钟频率/输出信号频率=𝟏𝟎𝟔65536.可见,一个通道不够用,可以将两个通道级联起来使用,且两个通道的计数初值N1和N2应满足N=N1*N2通过上诉分析可得到实验连线如图所示:(2)源程序代码如下:CODESEGMENTASSUMECS:CODESTART:MOVDX,28BHMOVAL,36HOUTDX,ALMOVDX,288HMOVAL,0E8HOUTDX,ALMOVAL,03HOUTDX,ALMOVDX,28BHMOVAL,56HOUTDX,ALMOVDX,289HMOVAL,64HOUTDX,ALCODEENDSENDSTART2.脉冲计数器(1)若使用8253的计数器0进行计数,则实验连线如下图所示(2)回答1:OUT0输出端为什么要加一个非门。答:因为当计数器减到1时OUT0变成低并持续一个CLK周期后变高,(3)源程序代码如下:CODESEGMENTASSUMECS:CODESTART:MOVDX,28BHMOVAL,14HOUTDX,ALMOVDX,288HMOVAL,05HOUTDX,ALCODEENDSENDSTART(3)icode集成开发环境中进行调试,运行,观察实验结果,
本文标题:北工大8255a微机接口实验
链接地址:https://www.777doc.com/doc-2623982 .html