实验4 LED的驱动实验.docxVIP

  • 3
  • 0
  • 约小于1千字
  • 约 3页
  • 2024-07-13 发布于上海
  • 举报

实验四LED的驱动实验

—实验目的:

驱动LED循环显示0-9等数字。二简介

1、该系统最高位的LED为共阳极连接。

所以,在该LED上显示0-9的段码值表为:

TAB:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H。

2、该LED使用了8155控制,使得在端口地址FF21H输入数据,可以控制显示的LED位置。例如,如果FF21H地址送20H,将会在最高的LED6上显示数据。如果FF21H送10H,将会对LED5显示数据。

端口地址FF22H是控制要显示的数值的。所以只要在该端口输出要显示的数的段码值,则就能将该数据显示出来。

// 入口参数,即要显示的数值放在A中MOV DPTR,#TAB

MOVC A,@A+DPTRMOV DPTR,#0FF22HMOVX @DPTR,A

三程序流程:

开始

开始

用R0暂存要显示的数值

R0=0;

将R0的数据送到A中

查码值表,要显示的数的码值返回到A

向FF22H地址送数,显示

R0++

N

R0=10?

Y

四程序

BEGIN: MOVR0,#00HLOOP: MOV A,#10H

MOV DPTR,#0FF21H

MOVX @DPTR,A ;上面三条指令控制显示的位置

在第几个LED。

MOV A,R0

MOV DPTR,#TAB

MOVC A,@A+DPTR ;这三条指令查出要显示的数据的码值放到A中。

MOV DPTR,#0FF22H

MOVX @DPTR,A ;将码值送到显示端口显示ACALL DELAY1S

INC R0

CJNE R0,#10,LOOPAJMP BEGIN

DELAY1S:MOV R6,#00HL1: MOVR7,#00H

DJNZR7,$DJNZR6,L1RET

TAB:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90HEND

文档评论(0)

1亿VIP精品文档

相关文档