您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 2016-1微机原理实验资料
-------------软件实验------------实验一二进制多位加法运算一、实验目的1、熟悉实验系统键盘显示的使用。2、掌握使用加法类运算指令编程及调试方法。3、掌握加法类指令对状态标志位的影响。二、实验内容计算X+Y+Z=?(X、Y、Z为16位二制数)三、编程指南由于本实验是三个十六位二制数相加运算,因此,当X+Y时要考虑用ADC指令,把进位C加到结果的高16位中,当(X+Y)+Z时,再把进位C加到结果的高16位中,本实验设定三个加数0FFFFH,计算结果应为2FFFDH。四、实验步骤联机模式:(1)在PC机和实验系统联机状态下,运行该实验程序,可用鼠标左键单击菜单栏“文件”或工具栏“打开图标”,弹出“打开文件”的对话框,然后打开598k8Asm文件夹,点击S1.ASM文件,单击“确定”即可装入源文件,再单击工具栏中编译装载,即可完成源文件自动编译、装载目标代码功能,再单击“调试”中“连续运行”或工具图标运行,即开始运行程序。(2)运算结果保留在内存4100H~4102H单元中,点击DJ-8086K软件中存贮器RAM窗口,输入RAM的起始地址4100、4101、4102,单元内容应为FD、FF、02。脱⑴在P.态机模式:下,按SCAL键,输入2CA0,按EXEC键。⑵复位RST键,运算结果保留在内存4100H~4102H单元中,共内容分别为:FD、FF、02,低位在前,高位在后,具体操作方法:输入键[4100]→[ME]→[NX]→[NX]。五、实验程序清单CODESEGMENT;S1.ASM--BINADDASSUMECS:CODEORG2CA0H;程序入口地址START:CLCMOVSI,4000H;被加数首址MOV[SI],0ffffH;输入被加数MOV[SI+2],0ffffH;输入加数1MOV[SI+4],0ffffH;输入加数2MOVAX,0000H;AX清零MOV[SI+102H],AX;存结果单元4102清零MOVAX,[SI];取被加数ADDAX,[SI+2];被加数+加数1ADC[SI+102H],0000;带进位加ADDAX,[SI+4];连加加数2MOV[SI+100H],AX;存结果低位ADC[SI+102H],0000;存结果高位JMP$;结束CODEENDSENDSTART实验二BCD码转换为二进制码一、实验目的1、掌握BCD码到二进制码的转换方法。2、用于BCD码输入信号处理。二、实验内容对于内存中给定的几个十进制BCD码数转换为二进制数。三、实验程序框图四、实验步骤联机模式:(1)在内存单元4000H~4006H中依次写入四个十进制数(12、34、56、78)的BCD码,即输入01、02、03、04、05、06、07,按MON键,返回P状态。(2)在PC机和实验系统联机状态下,运行该实验程序,可用鼠标左键单击菜单栏“文件”或工具栏“打开图标”,弹出“打开文件”的对话框,然后打开598K8ASM文件夹,点击S3.ASM文件,单击“确定”即可装入源文件,再单击工具栏中编译装载,即可完成源文件自动编译、装载目标代码功能,再单击“调试”中“连续运行”或工具图标运行,即开始运行程序。(3)复位RST键,查看结果在4100~4107中,其内容应为:0C,00,22,00,38,00,4E,00。脱机模式:⑴在P.态下,按SCAL键,然后在内存单元4000H~4006H中依次写入四个十进制数(12、34、56、78)的BCD码,即输入01、02、03、04、05、06、07,按MON键,返回P状态。⑵在P.态下,输入2D40,按EXEC键。⑶复位RST键,查看结果在4100~4107中,其内容应为:0C,00,22,00,38,00,4E,00。五、实验程序清单CODESEGMENT;S3.ASM,BCD码转换为2进制码ASSUMECS:CODEORG2D40HSTART:MOVCX,0004H;输入数据长度。[4000]:01,02..MOVDI,4000H;结果存放在[4100]:0C,00,..CON1:MOVAL,[DI]ADDAL,AL;*2MOVBL,ALADDAL,AL;*2ADDAL,AL;*2ADDAL,BL;*10INCDIMOVAH,00ADDAL,[DI];BCD码个位,十位相加MOV[DI+0FFH],AX;存结果INCDI;结果地址加1LOOPCON1;CX不为零继续JMP$CODEENDSENDSTART实验三内存清零一、实验目的1、掌握内存读写方法。2、了解内存的块操作方法。二、实验内容对指定内存起址和长度的块,要求将其内容清零,设起址为4000H,长度为1000H。三、实验程序框图四、实验步骤联机模式:(1)在PC机和实验系统联机状态下,运行该实验程序,可用鼠标左键单击菜单栏“文件”或工具栏“打开图标”,弹出“打开文件”的对话框,然后打开598K8ASM文件夹,点击S5.ASM文件,单击“确定”即可装入源文件,再单击工具栏中编译装载,即可完成源文件自动编译、装载目标代码功能,再单击“调试”中“连续运行”或工具图标运行,即开始运行程序。⑵按复位键RST,查看内存4000H~4FFFH单元内容应为00脱机模式:1、在P.态下,按SCAL键,输入2DC0,按EXEC键。2、按复位键RST,查看内存4000H~4FFFH单元内容应为00五、实验程序清单CODESEGMENT;S5.ASM,CLRASSUMECS:CODEORG2DC0H;thisisaprogramofclear0START:MOVAL,00H;CLEARRAM:4000--4FFFHMOVBX,4000H;内存首址CON1:MOV[BX],AL;清零INCBX;内存加一CMPBX,5000H;比较末址JNECON1;不等继续JMP$CODEENDSENDSTART-------------硬件实验------------实验四8255A并行口实验--模拟交通灯一、实验目的掌握通过8255A并行口传输数据的方法,以控制发光二极管的亮与灭。二、实验内容用8255做输出口,控制十二个发光管亮灭,模拟交通灯管理。三、实验接线图图6-4四、编程指南⑴通过8255A控制发光二极管,PB4-PB7对应黄灯,PC0-PC3对应红灯,PC4-PC7对应绿灯,以模拟交通路灯的管理。⑵要完成本实验,必须先了解交通路灯的亮灭规律,设有一个十字路口l、3为南北方向,2、4为东西方向,初始状态为四个路口的红灯全亮,之后,1、3路口的绿灯亮,2、4路口的红灯亮,1、3路口方向通车。延时一段时间后,l、3路口的绿灯熄灭,而l、3路口的黄灯开始闪烁,闪烁若干次以后,l、3路口红灯亮,而同时2、4路口的绿灯亮,2、4路口方向通车,延时一段时间后,2、4路口的绿灯熄灭,而黄灯开始闪烁,闪烁若干次以后,再切换到l、3路口方向,之后,重复上述过程。⑶程序中设定好8255A的工作模式及三个端口均工作在方式0,并处于输出状态。⑷各发光二极管共阳极,使其点亮应使8255A相应端口的位清0。五、实验程序框图六、实验步骤⒈在系统显示监控提示符“P.”时,按SCAL键。⒉按图6-4连好实验线路8255A:PC0-L3,PC1-L6,PC2-L9,PC3-L12,PC4-L2,PC5-L5,PC6-L8,PC7-L11;PB4-L1,PB5-L4,PB6-L7,PB7-L10⒊在“P.”态时,输入11E0后,按EXEC键;系统显示执行符“┌”,同时Ll-Ll5发光二极管模拟交通灯显示。七、实验程序清单CODESEGMENT;H8255-2.ASMASSUMECS:CODEIOCONPTEQU0FF2BH;8255控制口IOAPTEQU0FF28H;PA口IOBPTEQU0FF29H;PB口IOCPTEQU0FF2AH;PC口ORG11e0HSTART:MOVAL,82H;PB输入,PA,PC输出MOVDX,IOCONPTOUTDX,AL;写命令字MOVDX,IOBPT;读PB口INAL,DXMOVBYTEPTRDS:[0601H],AL;保存PB口数据MOVDX,IOCONPT;8255控制口MOVAL,80HOUTDX,AL;写命令字,PA,PB,PC输出MOVDX,IOBPT;MOVAL,DS:[0601H]ORAL,0F0HOUTDX,ALMOVDX,IOCPTMOVAL,0F0HOUTDX,AL;四路口红灯全亮CALLDELAY1;延时IOLED0:MOVAL,10100101BMOVDX,IOCPTOUTDX,AL;南北绿灯亮,东西红灯亮CALLDELAY1;延时CALLDELAY1;延时ORAL,0F0HOUTDX,AL;南北绿灯灭MOVCX,8HIOLED1:MOVDX,IOBPTMOVAL,DS:[0601H]ANDAL,10101111BOUTDX,AL;南北黄灯亮CALLDELAY2;延时ORAL,01010000BOUTDX,AL;南北黄灯灭CALLDELAY2;延时LOOPIOLED1;南北黄灯闪烁8次MOVDX,IOCPTMOVAL,0F0HOUTDX,AL;四路口红灯全亮CALLDELAY2;延时MOVAL,01011010BOUTDX,AL;东西绿灯亮CALLDELAY1;延时CALLDELAY1ORAL,0F0HOUTDX,AL;东西绿灯灭MOVCX,8HIOLED2:MOVDX,IOBPTMOVAL,DS:[0601H]ANDAL,01011111BOUTDX,AL;东西黄灯亮CALLDELAY2;延时ORAL,10100000BOUTDX,AL;东西黄灯灭CALLDELAY2;延时LOOPIOLED2;东西黄灯闪烁8次MOVDX,IOCPTMOVAL,0F0HOUTDX,AL;四路口红灯全亮CALLDELAY2JMPIOLED0;循环继续DELAY1:PUSHAXPUSHCXMOVCX,0030HDELY2:CALLDELAY2LOOPDELY2POPCXPOPAXRETDELAY2:PUSHCXMOVCX,8000HDELA1:LOOPDELA1POPCXRETCODEENDSENDSTART实验五电子琴实验一、实验目的l、进一步掌握定时器编程和应用。2、了解微机利用定时器产生音乐的基本方法。二、实验内容利用实验仪键盘,使数字键1、2、3、4、5、6、7作为电子琴键,按下数字键发出相应的音调,PB0作为定时器门控信号,OUT1发出音频信号,驱动喇叭。三、实验接线图图6-11四、编程指南1、根据音阶频率表,利用定时器可以产生相应频率的脉冲信号,不同频率的脉冲信号经驱动电路放大后,就会发生不同的音调。2、对于每个按键的音调发音时间由软件延时控制,如键一直按下,就会连续发音各音阶标称频率值:五、实验程序框图六、实验步骤⑴8253的CLK1接分频输出端T2。⑵GATE1接PB0。⑶OUT1接VIN。⑷8MHZ→T。⑸VOUT-SP+、SP-GND。⑹在P.态,按SCAL键,输入18F0,按EXEC键,显P.,按1、2……7键,依次发出1、2……7音调声。七、实验程序清单CODESEGMENT;DZQ.ASMASSUMECS:CODE,ds:codeCONTROLequ43hCOUNT0equ40hCOUNT1equ41hCOUNT2equ42hIOCONPTEQU0FF2BH;扩展8255命令口IOBPTEQU0FF29H;扩展8255PB口IOAPTEQU0FF28H;扩展8255PA口PAEQU0FF20H;字位口PBEQU0FF21H;字形口PCEQU0FF22H;键入口ORG18F0HSTART:JMPSTART0BUFDB?,?,?,?,?,?;显示缓冲区KZDB?;存放键值ltimedb?;定时单元lkeydb?;上次键值ZPDW?;显示指针data1:;字形代码表db0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,88h,8
本文标题:2016-1微机原理实验资料
链接地址:https://www.777doc.com/doc-4098990 .html