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

📄 实验五-led(2).asm

📁 微机原理,用汇编语言教的哦!哈哈慢慢看哦
💻 ASM
字号:
data  segment
	led      db   3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh ;段码
	buffer1  db   0,0         ;存放要显示的十位和个位
	bz       dw   ?           ;位码
data ends
code  segment
	assume cs:code,ds:data
start:mov ax,data
	mov ds,ax
	mov dx,28bh                  ;将8255设为A口输出
	mov al,80h
	out dx,al
     mov di,offset buffer1        ;设di为显示缓冲区
loop1:mov cx,0300h                 ;循环次数
loop2:mov bh,02
lll:    mov byte ptr bz,bh
	push di
	dec di
	add di, bz
	mov bl,[di]                  ;bl为要显示的数
	pop di
	mov bh,0
	mov si,offset led            ;置led数码表偏移地址为SI
	add si,bx                    ;求出对应的led数码
	mov al,byte ptr [si]
	mov dx,288h                  ;自8255A的口输出
	out dx,al
	mov al,byte ptr bz           ;使相应的数码管亮
	mov dx,28ah
	out dx,al
	push cx
	mov cx,3000
delay:loop delay                   ;延时
	pop cx
	mov bh,byte ptr bz
	shr bh,1
	jnz lll
	loop loop2                  ;循环延时
	mov  ax,word ptr [di]
	cmp  ah,09
	jnz  set
     cmp  al,09
	jnz  set
	mov  ax,0000
     mov  [di],al
	mov  [di+1],ah
	jmp  loop1
set:    mov dx,0ffh
	mov  ah,06
	int  21h
	jne  exit                   ;有键按下则转exit
	mov  ax,word ptr [di]
	inc  al
	aaa
	mov [di],al                 ;al为十位
	mov [di+1],ah               ;ah中为个位
	jmp loop1
exit:mov dx,28ah
	mov al,0                    ;关掉数码管显示
	out dx,al
	mov ah,4ch                  ;返回DOS
	int 21h
code ends
	end start



⌨️ 快捷键说明

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