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

📄 jkzzbb.asm

📁 简易电压表
💻 ASM
字号:
assume cs:code
       code segment public
        	org 100h 

;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>初始化8253
start:cli	
               mov 	dx,04a6h		;控制寄存器
	mov 	ax,36h		;计数器0,方式3
	out     dx,ax
	mov 	dx,04a0h
	mov 	ax,6000
	out     dx,al
	mov 	al,ah
	out 	dx,al		;计数值1s
                  mov dx,04a6h
	mov     ax,76h
                 out dx,al
                mov     dx,04a2h
                mov 	ax,2000
	out 	dx,al
	mov 	al,ah
	out 	dx,al
		      
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>初始化8259
start1:mov 	dx,04b0h
             mov 	ax,13h
              out 	dx,ax	    ; ICW4 NEEDED
              mov	dx,04b2h
	mov 	ax,80h
	out 	dx,ax 	 	;ICW2 中断类型80h
	mov 	ax,01h;
	out 	dx,ax   			;ICW4
	mov 	ax,00h
	out 	dx,ax    	  ;OCW1, 开放所有中断
	nop	                 ;以上为8259初始化
                mov 	ax,0
	mov 	ds,ax
	mov 	di,200h        ;初始化中断向量表
	mov 	ax,offset int0
	mov 	ds:[di],ax
	add 	di,2
	mov 	ds:[di],100h   

;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>主程序
main:  mov ax,0100h
           mov ds,ax     
start2: mov dx, 04d6h            ;初始化8255
           mov al, 81h
           out dx, al  
            sti
           mov dx,04d4h
           mov al,0
           out dx,al
           push cx
           mov cx,2000
           lop1:loop lop1
           pop cx
           mov dx,04c0h             ;开启AD
           mov ax,34h
           out dx,al
                     

         mov si,offset buff          ;
         mov di,offset LED
         mov ah,0f7h
         mov cx,3
 again: mov dx,04d0h
            mov al,ah
            out dx,al
            rol ah,1   
           push bx
          mov bx,0
          mov bl,[si]
          mov dx,04d2h
          mov al,[di+bx]
          push si
          cmp si,offset buff
          jnz then
          cmp byte ptr[si],0eh
          jz then
          or al,80h
then:   pop si 
          pop bx  
          out dx,al
          push cx
          mov cx,400
          lop:loop lop
          pop cx   
          inc si
          loop again
          jmp start2

;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>中断程序
int0:cli
          mov dx,04c0h
          mov ax,34h
          out dx,al
             
           mov dx, 04d4h                            ;读EOC的值
wait:   in al,dx
           and al,1
           cmp al,1
           jnz wait
           mov al,80h
           out dx,al
          
          mov dx,04c0h
          in al,dx
          mov dx,04e0h                           ;DA转换并显示
          out dx,al
          mov dx,04e2h
          out dx,al
         mov si,offset buff                       ; 数据处理
         and ah,0
         mov bx,100
         mul bx
         mov bx,51
         div bx
         mov bl,100
         div bl
         mov [si],al
         inc si
         mov bl,10
         mov al,ah
         and ah,0
         div bl
         mov [si],al
         inc si
         mov [si],ah
         mov dx,04b0h
         mov al,20h
         out dx,al
         iret

;>>>>>>>>>>>>>>>>>>>>>>>>>>>数据段定义
buff db 0eh,4h,07h
KEY:  db 0,1,2,3,4,5,6,7,8,9,0ah,0bh,0ch,0dh,0eh,0fh    
LED:  db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,77h,7ch,39h,5eh,79h,71h

code ends
end start     

⌨️ 快捷键说明

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