第三部分 接口技术实验.docx

上传人:b****5 文档编号:7179816 上传时间:2023-01-21 格式:DOCX 页数:29 大小:87.20KB
下载 相关 举报
第三部分 接口技术实验.docx_第1页
第1页 / 共29页
第三部分 接口技术实验.docx_第2页
第2页 / 共29页
第三部分 接口技术实验.docx_第3页
第3页 / 共29页
第三部分 接口技术实验.docx_第4页
第4页 / 共29页
第三部分 接口技术实验.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

第三部分 接口技术实验.docx

《第三部分 接口技术实验.docx》由会员分享,可在线阅读,更多相关《第三部分 接口技术实验.docx(29页珍藏版)》请在冰豆网上搜索。

第三部分 接口技术实验.docx

第三部分接口技术实验

第三部分接口技术实验

实验一

【实验内容】利用DOS系统功能调用,从键盘输入一串字符,分别统计字母、数字和其他字符的个数,并输出显示统计结果,编写出实现这一功能的汇编源程序。

解:

程序如下:

    DATA        SEGMENT

    MAXSTRING   DB  100

    INACT       DB  ?

    STRING      DB  100

    DISMESS     DB 'PLEASEENTERASTRING:

',0AH,0DH,'$'

    DIGITAL     DB 'DIGITALIS:

','$'

    LETTER      DB 'LETTER IS:

','$'

    OTHERCHAR   DB 'OTHER  IS:

','$'

CRLF        DB   0AH,0DH,'$'

DATA        ENDS

CODE        SEGMENT

                 ASSUMECS:

CODE,DS:

DATA

MAIN        PROC  FAR

                 MOV   AX,DATA

                 MOV   DS,AX

                 MOV   BL,0

                 MOV   BH,0

                 MOV   CH,0

 DISPSTRING  MACRO

                 MOV   AH,9

                 INT   21H

                 ENDM

DISPCHAR    MACRO

                 MOV   AH,2

                 INT   21H

                 ENDM

                 LEA   DX,DISMESS

                 DISPSTRING

BEGIN:

      LEA   DX,MAXSTRING

                 MOV   AH,0AH

                 INT   21H

                 MOV   DL,INACT

                 MOV   DH,0

                 INC   DX

                 LEA   SI,STRING

REPEAT:

     DEC   DX

                 JZ    ENDCHE

                 MOV   AL,[SI]

                 INC   SI

                 CMP   AL,'0'

                 JB     OTHER

                 CMP    AL,'9'

                 JA     NEXT1

                 INC    BL

                 JMP    REPEAT

     NEXT1:

     OR     AL,20H

                 CMP    AL,'a'

                 JB     OTHER

                 CMP    AL,'z'

                 JA     OTHER

                 INC   BH 

                 JMP   REPEAT

OTHER:

     INC   CH

                 JMP   REPEAT

 ENDCHE:

    LEA   DX,DIGITAL

                 DISPSTRING

                 MOV   CL,BL

                 CALL  DISP

                 LEA   DX,LETTER

                 DISPSTRING

                 MOV   CL,BH

                 CALL  DISP

                 LEA   DX,OTHERCHAR

                 DISPSTRING

                 MOV   CL,CH

                 CALL  DISP

                 MOV  AH,4CH

                 INT  21H

       MAIN     ENDP

       DISP     PROC  NEAR

                 MOV   AL,CL

                 MOV   AH,0

                 MOV   CL,100

                 DIV   CL

                 MOV   CL,AH

                 MOV   DL,AL

                 ADD   DL,30H

                 DISPCHAR

                 MOV   AL,CL

                 MOV   AH,0

                 MOV   CL,10

                 DIV   CL

                 MOV   CL,AH

                 MOV   DL,AL

                  ADD   DL,30H

                  DISPCHAR

                  MOV   DL,CL

                 ADD   DL,30H

                  DISPCHAR

                  LEA   DX,CRLF

                  DISPSTRING

                  RET

          DISP   ENDP

          CODE   ENDS

                  END   MAIN

实验二

【实验内容】把地址偏移量为100H单元开始的256个单元分别写入数据00H,01H,02H,03H,…,FFH,并用DOS功能调用显示各单元的内容。

为了显示清晰明了,要求每行显示16个数据,两个数据之间用空格分开,编写出实现这一功能的汇编源程序。

解:

程序如下:

       DATA   SEGMENT

               ORG 100H

       BUF1   DB  256DUP(?

       COUNT  EQU $-BUF1

       DATA   ENDS

       CODE   SEGMENT

               ASSUME CS:

CODE,DS:

DATA

       START:

 MOV  AX,DATA

               MOV  DS,AX

               MOV  SI,OFFSETBUF1

               MOV  CX,COUNT

               PUSH SI

               PUSH CX

               XOR  AL,AL

        NEXT:

 MOV  [SI],AL

               INC  AL

               INC  SI

               LOOP NEXT

               POP  CX

               POP  SI

       ZRBH:

  MOV  BH,16

       NEXT1:

 MOV  AL,[SI]

               MOV  BL,AL

               SHR  AL,1

               SHR  AL,1

               SHR   AL,1

               SHR   AL,1

               CMP AL,0AH

               JC   JIA30

               ADD  AL,7

      JIA30:

  ADD  AL,30H

               CALL DISP

               MOV  AL,BL

               AND  AL,0FH

               CMP  AL,0AH

               JC   JIA30A

               ADD  AL,7

      JIA30A:

 ADD  AL,30H

               CALL DISP

               MOV  AL,20H

               CALL DISP

               INC  SI

               LOOP NEXT2

               JMP  STOP

            NEXT2:

  DEC  BH

               JNZ  NEXT1

               MOV  AL,0AH

               CALL DISP

               MOV  AL,0DH

               CALL DISP

               JMP  ZRBH

        DISP    PROC NEAR

               MOV  DL,AL

MOV  AH,2

               INT  21H

               RET

       DISP    ENDP

       STOP:

   MOV  AH,4CH

               INT  21H

    CODE    ENDS

            END  START

实验三(8253)

【实验内容】以1MHz的信号为时钟信号,利用8253产生一个周期为1ms的方波。

解:

程序如下:

      CODE     SEGMENT

      MAIN     PROCFAR

                ASSUMECS:

CODE

      START:

   CLI

                MOVDX,303H

                MOVAL,36H

OUTDX,AL

MOVDX,300H

MOVAL,0E8H

OUTDX,AL

MOVAL,03H

OUTDX,AL

MOVDX,303H

MOVAL,74H

OUTDX,AL

MOVDX,301H

MOVAL,0AH

OUTDX,AL

MOVAL,00H

OUTDX,AL

STI

MOVAH,4CH

INT21H

MAINENDP

          CODE     ENDS

                     ENDSTART

实验四(8255)

【实验内容】读入开关量到8255A,再将其通过指示灯显示。

以8255A的A口作输入,B口作输出,输入用开关,输出用发光二极管,要求当输入不全为0时,输入与输出保持一致。

当输入为全0时,发光二极管闪烁。

 

解:

程序如下:

               PORTA=308H

            PORTB=309H

            CONTROL=30BH

            DCONS=10H

DATA     SEGMENT

MESS     DB0DH,0AH,'PRESSANYKEYTOEXIT…',0AH,0DH,'$'

                DATA     ENDS

                CG       SEGMENT'CODE'

                          ASSUMECS:

CG,DS:

DATA

                BEGIN:

   PUSHDS

                          XORAX,AX

                          PUSHAX

                          MOVAX,DATA

MOVDS,AX

MOVDX,OFFSETMESS

                          MOVAH,9

INT21H

                          MOVDX,CONTROL

                          MOVAL,90H

                          OUTDX,AL

                          MOVAH,0FFH

                          MOVBL,0

                LP:

      PUSHAX

                          MOVAH,0BH

                          INT21H

                          CMPAL,0

                          JNEBACK

POPAX

MOVDX,PORTA

INAL,DX

NOP

NOP

TESTAL,AH

JZSHIFT

MOVDX,PORTB

OUTDX,AL

 JMPLP

              SHIFT:

     MOVAL,BL

 MOVDX,PORTB

 OUTDX,AL

 CALLDELAY

 SHLBL,1

 TESTBL,AH

 JNZLP

 MOVBL,1

 JMPLP

               BACK:

   POPAX

                        RETF

               DELAY   PROCNEAR

                         PUSHAX

                        MOVBH,DCONS

               DDLY:

   MOVCX,0

               DELAY1:

 DECCX

 LOOPDELAY1

 DECBH

 TESTBH,AH

 JNZDDLY

 POPAX

DELAY   ENDP

CG      ENDS

 ENDBEGIN

实验五(8259A)

【实验内容】要求使用8259A的IRQ0,用单脉冲信号模拟外部中断信号,使中断程序在屏幕上显示信息,在中断程序中,要求依次显示a~z这26个字母。

STACK     SEGMENTSTACK

           DB200DUP(0)

STACK     ENDS

C8259     EQU20H

CODE      SEGMENT 'CODE'

MAIN      PROCFAR

           ASSUME CS:

CODE,SS:

STACK

START:

    XORAX,AX

MOVDS,AX

           LEAAX,IRQ0

           MOVDS:

20H,AX

           MOVDX,C8259

           MOVAL,00010011B

           OUTDX,AL

           INCDX

           MOVAL,00001000B

           OUTDX,AL

           MOVAL,00001101B

           OUTDX,AL

           MOVAL,11111110B

OUTDX,AL

           MOVAL,20H

           OUT20H,AL

MOVBL,'a'

MOVAL,BL

MOVAH,1

INT14H

STI

JMP$

IRQ0:

     CLI

INCBL

          CMPBL,'{'

          JNZNEXT

             MOVAH,4CH

          INT21H

NEXT:

    MOVAL,BL

          MOVAH,1

INT14H

          MOVAL,20H

OUT20H,AL

STI

 IRET

MAIN      ENDP

CODE      ENDS

          END START

实验六(8250)

【实验内容】两台微机之间按RS232C标准协议使用COM1进行串行通信,构成一个字符或数据的各位按时间先后,从低位到高位一位一位地传送。

解:

程序如下:

  STACK  SEGMENTPARASTACK'STACK'

           DB256DUP(0)

  STACK  ENDS

  CODE   SEGMENTPARAPUBLIC'CODE'

  START  PROCFAR

          ASSUMECS:

CODE

          PUSHDS

          MOVAX,0

          PUSHAX

          MOVDX,3FBH

          MOVAL,80H

          OUTDX,AL

          MOVDX,3F8H

          MOVAL,12

OUTDX,AL

                    INCDX

               MOVAL,0

OUTDX,AL

MOVDX,3FBH

MOVAL,0AH

OUTDX,AL

MOVDX,3FCH

MOVAL,03H

OUTDX,AL

MOVDX,3F9H

MOVAL,0

OUTDX,AL

FOREVER:

   MOVDX,3FDH

           INAL,DX

           TESTAL,1EH

JNZERROR

                          TESTAL,01H

               JNZRECEIVE

TESTAL,20H

JZFOREVER

MOVAH,1

INT16H

JZFOREVER

MOVAH,0

INT16H

MOVDX,3F8H

OUTDX,AL

MOVAH,2

MOVDL,AL

INT21H

CMPAL,27

JNZNEXT

MOVAH,4CH

INT21H

    NEXT:

     JMPFOREVER

 RECEIVE:

     MOVDX,3F8H

               INAL,DX

               ANDAL,7FH

               CMPAL,27

JNZDISP

 MOVAH,4CH

           INT21H

DISP:

      PUSHAX

           MOVBX,0

MOVAH,14

INT10H

POPAX

CMPAL,0DH

JNZFOREVER

MOVAL,0AH

MOVBX,0

MOVAH,14

INT10H

JMPFOREVER

ERROR:

     MOVDX,3F8H

           INAL,DX

           MOVAL,'?

'

           MOVBX,0

           MOVAH,14

           INT10H

           JMPFOREVER

START     ENDP

CODE      ENDS

           ENDSTART

实验七(A/D及D/A)

【实验内容】如果要在PC/XT机上采用ADC0809设计一块8通道的数据采集卡,要求以200Hz的速率对每个通道均采集1024个数据,也就是每隔5ms对各通道轮流采集一个数据,然后将它们存到数据段中以DBUF为始址的数据缓冲区中。

数据存放的次序须与通道号一致,即从通道0开始,先依次存入每个通道的第一个数据,再存入各通道的第二个数据,直到各通道都存满1024个数据为止。

 

 

分析:

可以选用8253芯片来产生定时脉冲,控制采样率。

假设加到8253的CLK0的时钟脉冲的频率为1MHz,编程使通道0工作于方式2,由于采样率fS=200Hz,当选

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

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1