微机接口电路程序.docVIP

  • 2
  • 0
  • 约1.73千字
  • 约 3页
  • 2017-03-08 发布于重庆
  • 举报
微机接口电路程序

stack segment para stack stack dw 256 dup ? stack ends data segment intseg dw ? ;段基址 intoff dw ? ;偏移量 imr db ? ;IMR中的内容 count db ? ;采集计数器 data ends code segment start: assume cs:code,ds:data cli ;关中断 mov ax,data mov ds,ax mov ax,0000h mov ds,ax mov si,0020h lodsw mov bx,ax lodsw push ax;seg push bx;offset in al,21h ;读出IMR mov intimr,al ;保存原IMR的内容 and al,0fdh 允许IRQ2,其他不变 out 21h,al ;设置新的IMR mov dx, ;1309*8 5236 mov al;计数器0工作方式3,2进制 out dx,al mov ax,10000 mov dx, out dx,al mov al,ah out dx,al ;8253 mov dx,5243 mov al ; 计数器1工作方式3,2进制 mov ax,100 out dx,al mov al,ah out dx,al ;8253中断采集时间 mov dx, mov al ;8255A初始化 out dx,al mov al ;pc0 out dx,al mov count,0 ;采集次数 sti ;开中断 waitc: cmp count,100 jz waitc jmp exit exit: ;恢复原先的IMR mov al,intimr ;取出保留的IMR原内容 out 21h,al ;恢复IMR mov dx,intoff mov ax,intseg mov ds,ax mov ax,3572h int 21h sti mov ax,0 mov es,ax mov di,0020h pop ax stosw mov ah,4ch int 21h convert proc ;中断服务程序 push ax ;保护现场 push bx push cx push dx push ds sti ;开中断 mov ax,data mov ds,ax ;中断保护,DS位置不确定 mov dx, inc count mov dx,5239 mov al out dx,al ;OE信号有效 mov al out dx,al ;OE复位 call disp cli ;关中断 pop ds pop dx pop cx pop bx pop ax ;恢复现场 mov al,20h out 20h,al ;发送EOI命令 iret ;中断返回 convert endp disp proc push ax and al,0f0h ;显示高四位 mov cl,4 shr al,cl cmp al,9 ;比较输出 ja need1 add al,30h jmp next1 need1: add al,37h next1: mov dl,al mov ah,2 int 21h pop ax and al,0fh ;显示低四位 cmp al,9 ;比较输出 ja need2 add al,30h jmp next2 need2: add al,37h next2: mov dl,al mov ah,2 int 21h ret disp endp code ends end start

文档评论(0)

1亿VIP精品文档

相关文档