微机原理上机实验实验报告 74HC138译码器实验 16x16点阵显示实验.docx

上传人:牧羊曲112 文档编号:5285964 上传时间:2023-06-22 格式:DOCX 页数:21 大小:207.66KB
返回 下载 相关 举报
微机原理上机实验实验报告 74HC138译码器实验 16x16点阵显示实验.docx_第1页
第1页 / 共21页
微机原理上机实验实验报告 74HC138译码器实验 16x16点阵显示实验.docx_第2页
第2页 / 共21页
微机原理上机实验实验报告 74HC138译码器实验 16x16点阵显示实验.docx_第3页
第3页 / 共21页
微机原理上机实验实验报告 74HC138译码器实验 16x16点阵显示实验.docx_第4页
第4页 / 共21页
微机原理上机实验实验报告 74HC138译码器实验 16x16点阵显示实验.docx_第5页
第5页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《微机原理上机实验实验报告 74HC138译码器实验 16x16点阵显示实验.docx》由会员分享,可在线阅读,更多相关《微机原理上机实验实验报告 74HC138译码器实验 16x16点阵显示实验.docx(21页珍藏版)》请在三一办公上搜索。

1、微机原理上机实验报告实验六:74HC138译码器实验 实验十:LED 16x16点阵显示实验微机原理上机实验(六)实验报告实验六:74HC138译码器实验实验目的1、掌握74HC138译码器的工作原理,熟悉74HC138译码器的具体运用连接方法,了 解74HC138是如何译码的。2、认真预习本节实验内容,尝试自行编写程序,填写实验报告实验内容1、编写程序:使用8255的PC0、PC1、PC2控制74HC138的数据输入端,通过译 码产生8选1个选通信号,轮流点亮8个LED指示灯。2、运行程序,验证译码的正确性。实验原理图(8255)PC:(1)VCC -:J(&255)PC0 (&255)PC

2、1 ; -lWWW.莹SN74HC13SMIfl 7四、实验步骤1、连线说明:F7 区:A、B、C D3 区:PC0、PC1、PC2F7 区:G1、G2A、G2B C1 区:VCC、GND、GNDF7 区:JP63 F4 区:JP18( LED 指示灯)D3 区:CS、A0、A1 A3 区:CS1、A0、A12、调试程序,查看运行结果是否正确五、实验代码PC_8255EQU0272H;8255 PC 口_STACKSEGMENTSTACK;设置堆栈段DW100 DUP(?)STACKENDSCon_8255 EQU0273H;8255控制口STARTPROCNEARASSUMECS:CODE,

3、 SS:_STACKMOVDX,Con_8255MOVAL,80HOUTDX,AL;8255初始化,PC口作输出用,向8255的控制口输入置位/复位控制字10000000B,PC0PC7全部复位MOVDX,PC_8255MOVAL,0START1:OUTDX,AL将00000000B 输入8255的 PC 口CALLDelay延时INCALAL加一JMPSTART1循环DelayPROCNEAR;延时Delayl:XORCX,CX;CX清零LOOP$当前位置循环一次后推出RETDelayENDPSTARTENDPCODEENDSENDSTART六、实验思考题1.在应用系统中,74HC138通常

4、用来产生片选信号,请读者考虑一下,应如何处理?将输入信号转换为三位无符号二进制数,将转换后的数据由低到高分别输入74HC138的A、B、C 口,即可实现对最多8的模块的片选功能。2.绘制本实验的详细实验电路图。(S2551PC0./::(8255)PC(CDVCC -(C 1)GND -(S255JPC2-目冥一目膏一、.SN74HCB3N3. 使用8255的PC 口读入开关信号,实现编码控制8个LED灯的开关本拓展实验的电路图在上个实验的基础上稍作修改74CH138的G1、G2A、G2B分别接入PC3、PC4、PC5,其余接口接线不变,当开关4为开启时,控制信号有效Con_8255EQU02

5、73HPC_8255EQU0272HPA_8255EQU0270H_STACK SEGMENT STACKDW 100 DUP(?)STACK ENDSSTART PROC NEARASSUME CS:CODE, SS:_STACKMOV DX, Con_8255MOV AL, 10010000BOUT DX,AL;向8255的控制口输入控制字PA 口方式0输入,其余口作为输出START1:MOVDX, PA_8255INAL, DX;从PA 口读入开关当前状态MOVDX, PC_8255OUTDX, AL;将PA 口读入的开关状态由PC 口输出,以控制LED灯的亮灭JMPSTART1循环执行

6、,不断地由PA 口读入开关状态START ENDPCODE ENDSEND START微机原理上机实验(十)实验报告实验十:LED 16x16点阵显示实验一、实验目的1、熟悉8255的功能,了解点阵显示的原理及控制方法;2、学会使用LED点阵,通过编程显示不同字符;3、认真预习本节实验内容,可尝试自行编写程序,做好实验准备工作,填写实验报告。实验内容1、编写程序,用B4区的二片74HC273控制16X16点阵的行;8255的PA、PB 口控制16X16点阵的列;显示字符。2、按图连接线路;运行程序,观察实验结果,学会编程控制LED点阵显示字符。实验原理图7声.AL1 一心AiY3A4Y4A5Y

7、5A6Y6A7Y7A8Y8:5 -L.:LI4MGNDU2D13 0?013 13014 150E1OE2VCCVYA2Y2心Y,:q15A6Y6A7Y7ASY8SN74L 涕 4NGNDO O Cl Cl U O U ULED38dUUUUOdULED47s14212115四、实验步骤1、连线说明:D3 区:CS( 8255 A0、A1A3 区:CS1、A0、A1D3 区:JP23(PA)、JP20(PB)A2区:JP21、JP22 (列输出线)B4 区:JP57(D0.D7)A3 区:JP42(D0.D7)B4 区:JP56(D8.D15)A3 区:JP40(D8.D15)B4(I/O)区

8、:CS273、BLE、BHEA3 区:CS5、BLE、BHEB4(I/O)区:RD、WRA3 区:IOR、IOWB4(I/O)区:JP51、JP55A2区:JP14、JP15 (行输出线)(注意连线方向)2、运行程序,观察实验结果。运行演示程序将会看到字符“欢迎使用星研实验仪”在点 阵上自下而上循环移动显示。五、实验代码ADDR_8255_PAEQU270H;8255 PA口ADDR_8255_PBEQU271H;8255 PB口ADDR_8255_CEQU273H;8255控制口ADDR_273EQU230H;IO区74HC273(16位I/O)LINEEQUADDR_273;行线1,行线2

9、ROW1EQUADDR_8255_PA冽线1ROW2EQUADDR_8255_PB;列线2_STACKSEGMENTSTACKDW100 DUP(?)_STACKENDSDATASEGMENTWORD PUBLIC DATA,HUAN DB 00H,0C0H,00H,0C0H,0FEH,0C0H,07H,0FFH,0C7H,86H,6FH,6CH,3CH,60H,18H,60HDB 1CH,60H,1CH,70H,36H,0F0H,36H,0D8H,61H,9CH,0C7H,0FH,3CH,06H,00H,00HYING DB 60H,00H,31H,0C0H,3FH,7EH,36H,66H,

10、06H,66H,06H,66H,0F6H,66H,36H,66HDB 37H,0E6H,37H,7EH,36H,6CH,30H,60H,30H,60H,78H,00H,0CFH,0FFH,00H,00HSHI DB 00H,00H,06H,30H,07H,30H,0FH,0FFH,0CH,30H,1FH,0FFH,3BH,33H,7BH,33HDB 1BH,0FFH,1BH,33H,19H,0B0H,18H,0E0H,18H,60H,18H,0FCH,19H,8FH,1FH,03HYONG DB 00,0,1FH,0FEH,18H,0C6H,18H,0C6H,18H,0C6H,1FH,0FEH

11、,018H,0C6H,18H,0C6HDB 18H,0C6H,1FH,0FEH,18H,0C6H,18H,0C6H,30H,0C6H,30H,0C6H,60H,0DEH,0C0H,0CCHXING DB 00H,00H,1FH,0FCH,18H,0CH,1FH,0FCH,18H,0CH,1FH,0FCH,01H,80H,19H,80HDB 1FH,0FEH,31H,80H,31H,80H,6FH,0FCH,01H,80H,01H,80H,7FH,0FFH,00H,00HYAN DB 0,0,0FFH,0FFH,18H,0CCH,18H,0CCH,30H,0CCH,30H,0CCH,7FH,0F

12、FH,7CH,0CCHDB 0FCH,0CCH,3CH,0CCH,3CH,0CCH,3DH,8CH,3DH,8CH,33H,0CH,06H,0CH,0CH,0CHSHI0 DB 01H,80H,00H,0C0H,3FH,0FFH,3CH,06H,67H,0CCH,06H,0C0H,0CH,0C0H,07H,0C0HDB 06H,0C0H,7FH,0FFH,00H,0C0H,01H,0E0H,03H,30H,06H,18H,1CH,1CH,70H,18HYAN0 DB 00H,00H,0FCH,60H,0CH,60H,6CH,0F0H,6CH,0D8H,6DH,8FH,6FH,0F8H,7EH,

13、00HDB 06H,0C6H,07H,66H,3FH,0ECH,0E7H,0ECH,06H,18H,1FH,0FFH,0CH,00H,00H,00HYI DB 0CH,0C0H,0CH,60H,18H,7CH,1BH,6CH,33H,0CH,73H,18H,0F1H,98H,31H,98HDB 30H,0F0H,30H,0F0H,30H,60H,30H,0F0H,31H,98H,33H,0FH,3EH,06H,30H,00HNONE DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00HDB 00H,00H,00H,

14、00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H_DATAENDSCODESEGMENTSTARTPROCNEARASSUMECS:CODE, DS:_DATA,SS:_STACKMOVAX,_DATAMOVDS,AXMOVES,AXNOPCALLINIT_IOCALLTEST_LED;调用测试子程序,测试LED是否全亮CALL CLEAR;滚动显示多个字符CHS_SHOW:MOVCX,9;九个汉字LEASI,HUAN;取首个汉字的有效地址CHS_1:PUSHCX;CHS_1可以滚动显示多个字符MOVCX,16CHS_2:CALLDISP_

15、CH;实现显示,DISP_CH可以把每个汉字的32个字节读完并显示出来INCSI实现逐行滚动,SI每次循环自增两次,体现为字模向上移动一行INCSILOOPCHS_2POPCXLOOPCHS_1;读下一个循环对应的汉字JMPCHS_SHOW;显示一个16*16点阵字子程序,字型码放在DPTR指出的地址DISP_CHPROCNEARPUSHCXMOVCX,8DISP_CH_1:CALLDISP1LOOPDISP_CH_1POPCXRETDISPCHENDP;显示一个16*16点阵字子程序,字型码放在显示缓冲区XBUFFDISP1PROC NEARPUSHSIPUSHCXMOVCX,16;计数器,

16、16列依次被扫描MOVBL,0FEH;上边列输出值MOVBH,0FFH;下边列输出值REPEAT:MOVMOVDX,LINEAX,BXOUTLODSBDX,AX;列输出CALLMOVADJUST;调整AL,将AL中二进制数旋转180度DX,ROW1OUTLODSBDX,AL;左边行输出CALLMOVADJUST;调整AL,将AL中二进制数旋转180度DX,ROW2OUTCALLCALLSTCRCLDX,AL;右边行输出DL10MSCLEARBL,1RCLLOOPPOPPOPRETDISP1ENDPBH,1;循环移位BX,行线扫描输出0REPEATCXSIINIT_IOPROCNEARMOVDX

17、,ADDR_8255_C;8255控制字地址MOVAL,80H;设置8255的PA、PB、PC口为输出口OUTRETINIT_IOENDPDX,AL;写控制字CLEARPROCMOVMOVOUTMOVMOVOUTMOVOUTRETCLEARENDPNEAR AX,0FFFFH DX,LINE DX,AX AL,0 DX,ROW1 DX,ALDX,ROW2 DX,AL;测试LED子程序,点亮LED并延时1STEST_LEDPROCNEARMOVDX,LINEXORAX,AXOUTDX,AXMOVAL,0FFHMOVDX,ROW1OUTDX,ALMOVDX,ROW2OUTDX,ALCALLDL50

18、0msCALLDL500msRETTEST_LEDENDP;调整AL中取到的字型码的一个字节,将最高位调整位最低位,最低位调整为最高位ADJUSTPROCPUSHMOVNEARCXCX,8ADJUST1:RCLAL,1XCHGAL,AHRCRAL,1XCHGAL,AHLOOPADJUST1MOVAL,AHPOPCXRETADJUSTENDPDL10msPROCNEARPUSHCXMOVCX,133LOOP$POPCXRETDL10msENDPDL500msPROCNEARPUSHCXMOVCX,0FFFFHLOOP$POPCXRETDL500msENDPSTARTENDPCODEENDSEND

19、START六、实验思考题1.修改程序,使显示的字符从左至右动态循环显示。ADDR_8255_PAEQU 270H;8255 PA口ADDR_8255_PBEQU 271H;8255 PB口ADDR_8255_C EQU 273H;8255控制口ADDR_273 EQU 230H;IO区74HC273(16位I/O)LINEEQU ADDR_273;行线 1,行线2ROW1EQU ADDR_8255_PA冽线1ROW2EQU ADDR_8255_PB;列线2_STACKSEGMENT STACKDW1024 DUP(?)_STACKENDSDATASEGMENTWORDPUBLIC DATA,H

20、UAN DB 00H,0C0H,00H,0C0H,0FEH,0C0H,07H,0FFH,0C7H,86H,6FH,6CH,3CH,60H,18H,60H DB 1CH,60H,1CH,70H,36H,0F0H,36H,0D8H,61H,9CH,0C7H,0FH,3CH,06H,00H,00HYING DB 60H,00H,31H,0C0H,3FH,7EH,36H,66H,06H,66H,06H,66H,0F6H,66H,36H,66H DB 37H,0E6H,37H,7EH,36H,6CH,30H,60H,30H,60H,78H,00H,0CFH,0FFH,00H,00HSHI DB 00H,

21、00H,06H,30H,07H,30H,0FH,0FFH,0CH,30H,1FH,0FFH,3BH,33H,7BH,33H DB 1BH,0FFH,1BH,33H,19H,0B0H,18H,0E0H,18H,60H,18H,0FCH,19H,8FH,1FH,03HYONG DB 00,0,1FH,0FEH,18H,0C6H,18H,0C6H,18H,0C6H,1FH,0FEH,018H,0C6H,18H,0C6H DB 18H,0C6H,1FH,0FEH,18H,0C6H,18H,0C6H,30H,0C6H,30H,0C6H,60H,0DEH,0C0H,0CCHXINGDB00H,00H,1F

22、H,0FCH,18H,0CH,1FH,0FCH,18H,0CH,1FH,0FCH,01H,80H,19H,80HDB 1FH,0FEH,31H,80H,31H,80H,6FH,0FCH,01H,80H,01H,80H,7FH,0FFH,00H,00HYANDB0,0,0FFH,0FFH,18H,0CCH,18H,0CCH,30H,0CCH,30H,0CCH,7FH,0FFH,7CH,0CCHDB 0FCH,0CCH,3CH,0CCH,3CH,0CCH,3DH,8CH,3DH,8CH,33H,0CH,06H,0CH,0CH,0CHSHI0DB01H,80H,00H,0C0H,3FH,0FFH,3

23、CH,06H,67H,0CCH,06H,0C0H,0CH,0C0H,07H,0C0HDB 06H,0C0H,7FH,0FFH,00H,0C0H,01H,0E0H,03H,30H,06H,18H,1CH,1CH,70H,18HYAN0DB00H,00H,0FCH,60H,0CH,60H,6CH,0F0H,6CH,0D8H,6DH,8FH,6FH,0F8H,7EH,00HDB 06H,0C6H,07H,66H,3FH,0ECH,0E7H,0ECH,06H,18H,1FH,0FFH,0CH,00H,00H,00HYI DB 0CH,0C0H,0CH,60H,18H,7CH,1BH,6CH,33H,0

24、CH,73H,18H,0F1H,98H,31H,98HDB 30H,0F0H,30H,0F0H,30H,60H,30H,0F0H,31H,98H,33H,0FH,3EH,06H,30H,00HNONE DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00HDB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00HCHANGE_RESULTDB00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,

25、00H,00H,00HDB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H_DATA ENDSCODE SEGMENTSTART PROC NEARASSUME CS:CODE, DS:_DATA, SS:_STACKMOV AX,_DATAMOV DS,AXMOV ES,AXNOPCALL INIT_IOCALL TEST_LED;调用测试子程序,测试LED是否全亮CALL CLEARLEA SI,HUAN;取首个汉字的有效地址;CHS_1可以滚动显示多个字符CHS_SHOW:MOV CX,9;九个汉字CALL

26、WORD_MOVE;字模拷贝CHS_1: PUSHCXMOV CX,16CHS_2: CALLDISP_CH;实现显示,DISP_CHW以把每个汉字的32个字节读完并显示出来;INC SI;原程序用于滚动的指令;INC SILEA SI,CHANGE_RESULT;除了第一次,每次的汉字读取都去CHANGE_RESULT找,只显CALL WORD_CHANGE示CHANGE_RESULT开头的32个字节;将WORD_CHANGE中的字模左移一位LOOP CHS_2POP CXLOOP CHS_1;读下一个汉字CALL WORD_MOVELEA SI,CHANGE_RESULTJMP CHS_S

27、HOWWORD_MOVE PROC NEAR;给CHANGE_RESULT赋初值HUAN,把十个汉字都拷贝过来PUSH CXPUSH ESPUSH DSPUSH SIPUSH DILEA SI,HUAN;源LEA DI,CHANGE_RESULT;目的MOV AX,DSMOV ES,AXMOV CX,320WORD_MOVE1:MOVSB;执行完毕后SI,DI自动加一LOOP WORD_MOVE1POPDIPOPSIPOPDSPOPESPOPCXRETWORD_MOVE ENDP;把字模拷出来,将WORD_CHANGE中的字模全部整体左移一位WORD_CHANGE PROC NEAR ;16x

28、2x10 个字节PUSH CXPUSH DSPUSH SIPUSH BXPUSHFXOR BX,BXLEA SI,CHANGE_RESULTMOV CX,320MOVE_TO_LAST:INC SILOOP MOVE_TO_LASTMOV CX,16;16行WORD_CHANGE1:CLC;CF置0PUSH CXMOV CX,10;10 个字WORD_CHANGE2:RCL SI,1DEC SIRCL SI,1SUB SI,31;SI=SI-31LOOP WORD_CHANGE2ADD SI,31POP CXADD SI,255;16+16+7x32-1=255LOOP WORD_CHANGE

29、1SUB SI,255;LEA SI,CHANGE_RESULT;测试是否回到开头POPFPOPBXPOPSIPOPDSPOPCXRETWORD_CHANGE ENDP;显示一个16*16点阵字子程序,字型码放在DPTR指出的地址DISP_CH PROCNEAR;把每个汉字的32个字节读完PUSH CXMOV CX,8DISP_CH_1:CALL DISP1LOOP DISP_CH_1POP CXRETDISP_CH ENDP;显示一个16*16点阵字子程序,字型码放在显示缓冲区XBUFFDISP1 PROC NEARPUSH SIPUSH CXMOV CX,16;计数器,16列依次被扫描MO

30、V BL,0FEH ;上边列输出值MOV BH,0FFH ;下边列输出值REPEAT:MOV DX,LINEMOV AX,BXOUT DX,AX ;列输出LODSBCALL ADJUST ;调整AL,将AL中二进制数旋转180度MOV DX,ROW1OUT DX,AL ;左边行输出LODSBCALL ADJUST ;调整AL,将AL中二进制数旋转180度MOV DX,ROW2OUT DX,AL ;右边行输出CALL DL10MSCALL CLEARSTCRCL BL,1RCL BH,1;循环移位BX,行线扫描输出0LOOP REPEATPOP CXPOP SIRETDISP1 ENDPINIT

31、_IO PROC NEARMOV DX,ADDR_8255_C ;8255控制字地址MOV AL,80H ;设置8255的PA、PB、PC口为输出口OUT DX,AL ;写控制字RETINIT_IO ENDPCLEAR PROC NEARMOV AX,0FFFFHMOV DX,LINEOUT DX,AXMOV AL,0MOV DX,ROW1OUT DX,ALMOV DX,ROW2OUT DX,ALRETCLEAR ENDP;测试LED子程序,点亮LED并延时1STEST_LED PROC NEARMOV DX,LINEXOR AX,AXOUT DX,AXMOV AL,0FFHMOV DX,RO

32、W1OUT DX,ALMOV DX,ROW2OUT DX,ALCALLDL500msCALLDL500msRETTEST_LED ENDP;调整AL中取到的字型码的一个字节,将最高位调整位最低位,最低位调整为最高位ADJUST PROC NEARPUSH CXMOV CX,8ADJUST1:RCL AL,1XCHG AL,AHRCR AL,1XCHG AL,AHLOOP ADJUST1MOV AL,AHPOP CXRETADJUST ENDPDL10ms PROC NEARPUSH CXMOV CX,133LOOP $POP CXRETDL10ms ENDPDL500msPROCNEARPUSHCXMOV CX,0FFFFHLOOP$POP CXRETDL500ms ENDPSTART ENDPCODE ENDSEND START

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号