⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sy6-8253.asm

📁 汇编语言接口技术硬件实验中
💻 ASM
字号:
        PORT  EQU       0C400H-0280H
     P8253_C  EQU       PORT+283H;控制口
     P8253_0  EQU       PORT+280H;定时器0
     P8251_C  EQU       PORT+2B9H;控制口
     P8251_D  EQU       PORT+2B8H;数据口

        DATA  SEGMENT
         DIS  DB        0AH,0DH,'Please enter a charater:',0AH,0DH,'$'
        ERRO  DB        'Transport error!',0AH,0DH,'$'
       ENDDD  DB        'The end!',0AH,0DH,'$'
        DATA  ENDS

        CODE  SEGMENT
              ASSUME    CS:CODE,DS:DATA
      START:  MOV       AX,DATA
              MOV       DS,AX

              MOV       DX,P8253_C  ;初始化8253
              MOV       AL,00010110B            ;工作在方式3,定时器0
              OUT       DX,AL
              MOV       DX,P8253_0
              MOV       AL,52    ;十进制为52,计数器初值为52
              OUT       DX,AL

              MOV       DX,P8251_C  
              MOV       BL,3           ;8251复位
              MOV       AL,00
         NEXT:OUT       DX,AL
              DEC       BL
              JNZ       NEXT     
              MOV       AL,01000000B           
              OUT       DX,AL
              ;NOP
              ;NOP

              MOV       AL,11001110B            ;设置8251工作方式异步,2个停止位,无校验,字长8,波特率因子为16
              OUT       DX,AL
              MOV       AL,00110111B            ;命令启动(命令控制字)RTS ER 有效 接受允许 DTR有效 发送允许
              OUT       DX,AL
              ;NOP
              ;NOP
              MOV       DX,OFFSET DIS           ;显示
              MOV       AH,09H
              INT       21H

              MOV       DX,P8251_C  ;发送
         L1:  IN        AL,DX
	 
              TEST      AL,01H      ;是否准备好(测试D0)
              JZ        L1
              MOV       AH,01H      ;输入一个字符
              INT       21H
              CMP       AL,1BH
              JZ        ENDD
	 
              INC       AL          ;加1
              MOV       DX,P8251_D
              OUT       DX,AL

              MOV       DX,P8251_C  ;接收
         L2:  IN        AL,DX
	 
              TEST      AL,02H      ;是否准备好
              JZ        L2
              MOV       DX,P8251_D
              IN        AL,DX
      
              MOV       DL,AL       ;接收到后输出
              MOV       AH,02H
              INT       21H
              JMP       L1          ;直到输入ESC为止
    
       ENDD:  MOV       DX,OFFSET ENDDD
              MOV       AH,09H
              INT       21H
              MOV       AH,4CH
              INT       21H
        CODE  ENDS
              END       START

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -