实验三数码管动态显示程序设计1.docx

上传人:b****1 文档编号:13372689 上传时间:2023-06-13 格式:DOCX 页数:14 大小:32.12KB
下载 相关 举报
实验三数码管动态显示程序设计1.docx_第1页
第1页 / 共14页
实验三数码管动态显示程序设计1.docx_第2页
第2页 / 共14页
实验三数码管动态显示程序设计1.docx_第3页
第3页 / 共14页
实验三数码管动态显示程序设计1.docx_第4页
第4页 / 共14页
实验三数码管动态显示程序设计1.docx_第5页
第5页 / 共14页
实验三数码管动态显示程序设计1.docx_第6页
第6页 / 共14页
实验三数码管动态显示程序设计1.docx_第7页
第7页 / 共14页
实验三数码管动态显示程序设计1.docx_第8页
第8页 / 共14页
实验三数码管动态显示程序设计1.docx_第9页
第9页 / 共14页
实验三数码管动态显示程序设计1.docx_第10页
第10页 / 共14页
实验三数码管动态显示程序设计1.docx_第11页
第11页 / 共14页
实验三数码管动态显示程序设计1.docx_第12页
第12页 / 共14页
实验三数码管动态显示程序设计1.docx_第13页
第13页 / 共14页
实验三数码管动态显示程序设计1.docx_第14页
第14页 / 共14页
亲,该文档总共14页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

实验三数码管动态显示程序设计1.docx

《实验三数码管动态显示程序设计1.docx》由会员分享,可在线阅读,更多相关《实验三数码管动态显示程序设计1.docx(14页珍藏版)》请在冰点文库上搜索。

实验三数码管动态显示程序设计1.docx

实验三数码管动态显示程序设计1

实验三-数码管动态显示程序设

计1

实验三数码管动态显示程序设计

实验目的

1、理解数码管动态显示原理

2、理解数码管动态显示电路的设计方法

3、掌握数码管动态显示程序的设计方法

实验仪器

单片机开发板、万利仿真机、稳压电源、计算机

实验内容

1、动态扫描显示程序

2、特征位小数点控制显示程序

实验电路图

程序流程图

、数码管动初始化显示

 

取缓冲区一输出位选数

显示指针指

实验步骤及调试信息

1、新建实验项目

2、输入实验程序并补充完整

;数码管动态显示程序

;包含小数点显示

;位选码输出有两种方式:

;DispSelection1:

—次一位

;DispSelection2:

—次一字节

;2009-08-20

LEDCLKbitP3.4

LEDDINbitP2.3

LEDDATAdataP0

dsegat30h

dispbuf:

ds8;显示缓冲区8字节disppoint:

ds1;小数点控制数据maincodeSEGMENTCODE

CSEGat0

LJMPStart

RSEGmaincode

Start:

CLREA

movsp,#0c0h

movdispbuf,#08h

movdispbuf+1,#04h

movdispbuf+2,#00h

movdispbuf+3,#08h

movdispbuf+4,#02h

movdispbuf+5,#00h

movdispbuf+6,#02h

movdispbuf+7,#07h

movdisppoint,#02h;第2位小数点亮

LCALLdisp

SJMP$-3

;数码管动态显示程序

;包含小数点显示

;位选码输出有两种方式:

;DispSelection1:

—次一位

;DispSelection2:

—次一字节

;2009-08-20

Disp:

MOVR7,#8

MOVR0,#dispbuf

CLRLEDCLK

SETBLEDDIN

Displ:

MOVA,@R0

MOVDPTR,#DispTab

MOVCA,@A+DPTR

cpla

;LCALLDispdot;显示小数点程序MOVLEDDATA,A;在输出之前加入显示小数点程序

LCALLDispSelection1;输出位选择信号,

DispSelection2是第二种

;lcalldispsel3

LCALLDelay1ms

movp2,#0ffh

INCR0

DJNZR7,Disp1

movp2,#0ffh

RET

;位选码以一次一位方式输出dispsel3:

movdptr,#DispSTab

mova,r7

movea,@a+dptrepia

;swapamovp2,aret

DispSeleetion1:

CJNER7,#8,DispSelectionilCLRLEDDIN

DispSeleetionil:

SETBLEDCLK

NOP

CLRLEDCLK

SETBLEDDIN

RET

;位选码以一次一字节方式输出

DispSeleetion2:

MOVB,#8

MOVDPTR,#DispSTab

MOVA,R7

MOVCA,@A+DPTR

CPLA

DispSelection21:

RLC

A

MOV

LEDDIN,C

SETB

LEDCLK

NOP

CLR

LEDCLK

DJNZ

B,DispSelection21

RET

DispSTab:

DB

00H,80H,20H,40H,10H,08H,04H,02H,01H;位

 

选码数据表

dispaequ80h;数码管各段数据定义

dispbequ40h

dispcequ20h

dispdequ10h

dispeequ08h

dispfequ04h

dispgequ02h

disphequ01h

disp8equOffh-disph

DispTab:

db

disp8-dispg,dispb+dispc,dispa+dispb+dispg+dispd+dispe;0,1,2

db

disp8-dispe-dispf,disp8-dispa-dispd-dispe,disp8-dispb-dispe;3,4,5

db

disp8-dispb,dispa+dispb+dispc,disp8,disp8-dispe;6,7,8,9

db

disp8-dispd,disp8-dispa-dispb,disp8-dispb-dispc-dispg;a,b,c

db

disp8-dispa-dispf,disp8-dispb-dispc,disp8-dispb-dispc-dispd;d,e,f

dbdisp8-dispb-dispc,0ffh,00h,dispg

;H,全亮,全暗,-

;特征位小数点控制显示程序

;把小数点显示程序加到显示码输出之前

;输入:

A:

显示译码值

Dispdot:

MOV

B,A

MOV

A,R7

MOV

DPTR,#DispSTab

MOVC

A,@A+DPTR

ANL

A,disppoint

SETB

C;本行及以下4行可改成MOVC,P

JZ

Dispdot1

CLR

C;点亮小数点

;R7:

当前正在显示的LED编号

;输出:

Dispdotl:

CPLC;本行根据情况增减

MOVA,B

CPLA

MOVACC.7,C;小数点由D7控制;MOVLEDDATA,A;本行可以删除

RET

DelayNms:

LCALLDelaylms

DJNZR7,$-3

RET

Delaylms:

PUSH07

MOVR7,#250;1ms

NOP

NOP

DJNZR7,$-2

POP07

RET

END

3、编译下载实验程序,并修改错误(按附录说

明)

4、全速运行程序,查看实验现象。

数码管稳定的显示84082027

6单步执行,分析各程序的功能特点。

7、整理实验设备

实验现象

在LED数码管上稳定显示84082027,没有闪烁等情况。

说明显示扫描速度较快,一般大于50Hz以上。

LED数码管有一盏不亮,原因是它对应的三极管不能正常工作。

程序运行之后,0030H后8位为0804000802000207调试信息

1、编译无误。

2、程序各主要部分运行时间

显示一位数码管用时524us,显示8位用时4195us。

3、通过改变movedisppoint,#08H可以改变显示小数点。

如要显示后3

位小数点,可改为movedisappoint,#07H.

思考题

1、运行上面的程序,计算显示程序每秒运行的次数?

答:

显示8位数码管用时4197us,所以显

示程序每秒运行次数为1十(4197X106)=238次。

2、请说明数码管的消隐如何实现。

;包含小数点显示

;位选码输出有两种方式:

;DispSelection1:

—次一位

;DispSelection2:

—次一字节

;2009-08-20

LEDCLKbitP3.4

LEDDINbit

P2.3

LEDDATA

data

P0

dsegat

30h

dispbuf:

ds8

;显示缓冲区8字节

;disppoint:

ds

1;小数点控制数据

disapper:

ds1

maincodeSEGMENTCODE

CSEGat

0

LJMPStart

RSEGmaincode

Start:

CLREA

MO\sp,#0c0h;重定义堆栈空间

MOVdispbuf+0,#08h;往显示缓冲区填充数

MOVdispbuf+1,#04h

MOVdispbuf+2,#00h

MOV

dispbuf+3,#08h

MOV

dispbuf+4,#02h

MOV

dispbuf+5,#00h

MOV

dispbuf+6,#02h

MOV

dispbuf+7,#07h

;MOV

disppoint,#08h

;第4位小数点亮

MOV

disapper,#01h

;第1位数码管消隐

LCALL

disp

SJMP

$-3

;数码管动态显示程序

;包含小数点显示

;位选码输出有两种方式:

;DispSelection1:

—次一位

;DispSelection2:

—次一字节

Disp:

MO\R7,#8

MO\RO,#dispbuf;送缓冲区首地址

CLRLEDCLK;送低电平

SETBLEDDIN;

Disp1:

MO\A,@RO;送要显示的数据

MO\DPTR,#DispTab;表首地址

MOVCA,@A+DPTR;查表

;CPLA

;LCALLDispdot;显示小数点程序

LJMPdisapper1;消隐程序

F:

MO\LEDDATA,A;在输出之前加入显示小数点程序

LCALLDispSelection1;输出位选择信号,DispSelection2是第二种

;LCALLdispsel3

LCALLDelay1ms

MOVP2,#0FFH

INCR0

DJNZR7,Disp1

MOVP2,#0FFH

RET;位选码以一次一位方式输出;dispsel3:

J

;MOV)PTR,#DispSTab

;MO\A,R7

;MOVCA,@A+DPTR

;CPLA

;swapA

;MO\P2,A

;RETdisapperl:

movB,A

MOVA,R7

MOVDPTR,#DispSTabmovcA,@A+DPTRANLA,disapper

JNZdisapper2

MOVA,B

CPLA

LJMPF;不消隐

disapper2:

MOVA,#OFFH

LJMPF;消隐

DispSelection1:

;PUSHACC

;MOVLEDDATA,OFFH

CJNER7,#8,DispSelection11CLRLEDDIN

;POPACC

;MOVLEDDATA,A

DispSelection11:

SETBLEDCLK

NOP

CLRLEDCLK

SETBLEDDIN

RET;位选码以一次一字节方式输出;6和7不能显示相反

DispSelection2:

MO\B,#8

MOV)PTR,#DispSTab

MO\A,R7

MOVCA,@A+DPTRCPLA

DispSelection21:

RLCA

MO\LEDDIN,C

SETBLEDCLK

NOP

CLRLEDCLK

DJNZB,DispSelection21

RET

DispSTab:

DB00H,80H,20H,40H,10H,08H,04H,02H,01H;位选码数据表

dispa

equ80h;数码管各段数据疋义

dispb

equ40h

dispc

equ20h

dispd

equ10h

dispe

equ08h

dispf

equ04h

dispg

equ02h

disph

equ01h

disp8

equ0ffh-disph

DispTab:

;0,1,2

;6,7,8,9

;a,b,c

dbdisp8-dispg,dispb+dispc,dispa+dispb+dispg+dispd+dispe

db

disp8-dispe-dispf,disp8-dispa-dispd-dispe,disp8-dispb-dispe;3,4,5

dbdisp8-dispb,dispa+dispb+dispc,disp8,disp8-dispe

dbdisp8-dispd,disp8-dispa-dispb,disp8-dispb-dispc-dispg

dbdisp8-dispa-dispf,disp8-dispb-dispc,disp8-dispb-dispc-dispd;d,e,fdbdisp8-dispb-dispc,0ffh,00h,dispg;H,全亮,全暗,-

;特征位小数点控制显示程序

;把小数点显示程序加到显示码输出之前

;输入:

A:

显示译码值

;R7:

当前正在显示的LED编号

;输出:

Dispdot:

MO\B,A

M0\A,R7

MOV)PTR,#DispSTab

MOVCA,@A+DPTR

;ANLA,disppoint

C,P

SETBC;本行及以下4行可改成MOV

JZDispdot1

CLRC;点亮小数点

Dispdot1:

;CPLC;本行根据情况增减

MO\A,B

CPLA

MO\ACC.O,C;小数点由D7控制

;MONLEDDATAA本行可以删除

RET

DelayNms:

LCALLDelaylmsDJNZR7,$-3RET

Delaylms:

PUSH07

MO\R7,#25O;1ms

NOP

NOP

DJNZR7,$-2

POPO7

RET

END

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2