实验六:并行口8255的使用—LED静态显示

一、实验目的

熟悉使用8255并行口扩展芯片
熟悉使用发光二极管及数码管等常见的外围设备
理解静态显示的方法

二、实验内容

使用数码管静态显示的方法,使最右边的数码管循环显示0-9的数值。
在这里插入图片描述
硬件连接:
选通端:PC0-S0

段码端:PA0-a、PA1-b、PA2-c、PA3-d、PA4-e、PA5-f、PA6-g、PA7-dp

8255的CS:接288H

已知:
1、8255的端口地址:
          A口为 288H、C口为28AH、控制口为28BH,
放在数据段定义
              C8255 equ 28ah
              K8255 equ 28bh
              A8255 equ 288h

2、实验台上的七段数码管为共阴型,本应在公共端S0加低电平点亮,但是内部做了反向处理,所以输入端S0为1才选中最右边的数码管显示,位码输入端(段码端)高电平点亮。所以,可以求得0-9的段码可如下定义为(段码也应写在数据段的定义中):
    LED db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh

3、8255的设置:注意设置A、C口都为输出。

4、延时程序:
            mov cx,60000
            delay: loop delay ;延时
   如果延时时间不够,可以多次使用。

三、实验报告

①写出该程序中8255的控制字中每一位设置的意义。
D6、D5基本输入输出方式 (方式0)
D4:A口是输出的,所以是0
D3:C口也是输出的,所以是0
D2、D1:B口没有用,都是0
D0:C口的第四位也是输出的,所以是0

D7 D6 D5 D4 D3 D2 D1 D0
1 0 0 0 0 0 0 0

即(80H)
在这里插入图片描述

②写出程序代码并加上注释。

data segment
    C8255        equ 	28ah
	K8255        equ 	28bh
	A8255        equ 	288h    
	LED db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh
ends

stacks segment
    dw   128  dup(0)
ends

code segment 
    ASSUME CS:CODE,DS:DATA,SS:stacks
start:
	mov ax, data
      mov ds, ax

	MOV	DX,K8255	;控制口的端口地址
	MOV AL,80H	;AL是命令字
	OUT	DX,AL	;80H控制字送入8255的控制口,让它的A口和C口都属于输出形式

	MOV AL,0FH;低四位都是1,高四位都是0----那些数码管会点亮?
	MOV DX,C8255
	OUT DX,AL;把AL中的内容out到DX端口去

	
	;取段码
N1:MOV BX,OFFSET	LED
   MOV SI,10
   loop delay
N2:MOV	AL,[BX]
	
	MOV	DX,A8255;通过A口送出去
	OUT DX,AL;这样我们就可以在整个LED上显示0这个数字
	INC BX
	SUB SI,1
	CMP SI,0
	JE N1
	mov cx,0  
delay:  loop delay                  ;延时
	mov di,0 
delays:  loop delays                  ;延时
	JMP  N2
ends

end start 

最右边单个数码管显示
只需要将上述的0FH改为01H
并在此基础上连接上PC2—S2,PC3—S3

在这里插入图片描述
在这里插入图片描述

另一份代码,此代码正确,已经验证

data segment
    C8255        equ 	28ah
	K8255        equ 	28bh
	A8255        equ 	288h    
	LED db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh
ends

stack segment
    dw   128  dup(0)
ends

code segment 
    ASSUME CS:CODE,DS:DATA,SS:stack
  	start:
  			mov al,80H
  			mov	dx,K8255 
  			out dx,al
  	n2:
  			mov	bx,offset LED
  			mov si,10
  			mov	ax,data
  			mov	ds,ax
  	n1:		
  			mov	al,[bx]
  			mov	dx,A8255 
  			out dx,al
			
			mov cx,60000
	delay:	loop delay
			mov	al,01h
			mov dx,C8255
			out dx,al
	
			inc bx
			dec si
			jz n2
			jmp n1
	ends
	end start

四、程序流程图

在这里插入图片描述

五、实验结果显示

在这里插入图片描述

在这里插入图片描述

  




评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值