六位LED八段数码管显示精.docx

上传人:b****2 文档编号:2539278 上传时间:2023-05-03 格式:DOCX 页数:19 大小:18.66KB
下载 相关 举报
六位LED八段数码管显示精.docx_第1页
第1页 / 共19页
六位LED八段数码管显示精.docx_第2页
第2页 / 共19页
六位LED八段数码管显示精.docx_第3页
第3页 / 共19页
六位LED八段数码管显示精.docx_第4页
第4页 / 共19页
六位LED八段数码管显示精.docx_第5页
第5页 / 共19页
六位LED八段数码管显示精.docx_第6页
第6页 / 共19页
六位LED八段数码管显示精.docx_第7页
第7页 / 共19页
六位LED八段数码管显示精.docx_第8页
第8页 / 共19页
六位LED八段数码管显示精.docx_第9页
第9页 / 共19页
六位LED八段数码管显示精.docx_第10页
第10页 / 共19页
六位LED八段数码管显示精.docx_第11页
第11页 / 共19页
六位LED八段数码管显示精.docx_第12页
第12页 / 共19页
六位LED八段数码管显示精.docx_第13页
第13页 / 共19页
六位LED八段数码管显示精.docx_第14页
第14页 / 共19页
六位LED八段数码管显示精.docx_第15页
第15页 / 共19页
六位LED八段数码管显示精.docx_第16页
第16页 / 共19页
六位LED八段数码管显示精.docx_第17页
第17页 / 共19页
六位LED八段数码管显示精.docx_第18页
第18页 / 共19页
六位LED八段数码管显示精.docx_第19页
第19页 / 共19页
亲,该文档总共19页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

六位LED八段数码管显示精.docx

《六位LED八段数码管显示精.docx》由会员分享,可在线阅读,更多相关《六位LED八段数码管显示精.docx(19页珍藏版)》请在冰点文库上搜索。

六位LED八段数码管显示精.docx

六位LED八段数码管显示精

 

八段数码管显示

 

1.实验目的:

 

(1认识数码管动向显示的原理。

 

(2认识74LS164扩展端口的方法。

 

2.实验内容:

 

利用实验仪供给的显示电路,动向显示一行数据。

 

3.实验线路:

PB0数据输入

 

PB1时钟输入

 

说明:

这里不过显示草图,详尽原理拜见"8155接口实验"

 

4.实验器械:

 

(1QTH2008下载式综合实验仪1台(2QTH2008仿真器1台

 

(3计算机1台

 

5.实验说明:

 

(1本实验仪供给了8段码LED显示电路,学生只需按地点输出相应数据,就能够实现对显示器的控制。

显示共有6位,用动向方式显示。

8段码是由8155的PB0、PB1经74LS164“串转并”后输出获得。

6位位码由8155(或8255的PA0-5口输出,经uA2003反向驱动后,选择相应显示位。

 

74LS164是串行输入并行输出变换电路,串行输入的数据位由8155的PB0控制,时钟位由8155的PB1控制输出。

写程序时,只需向数据位地点输出数据,而后向时

 

钟位地点输出一高一低两个电平就能够将数据地点到74LS164中,而且实现移位。

向显示位选通地点输出高电平就能够点亮相应的显示位。

 

本实验仪中数据位输出地点为0e102H,时钟位输出地点为0e102H,位选通输出地点为0e101H。

本实验波及到了8155I0/RAM扩展芯片的工作原理以及74LS164器件的工作原理。

 

7.参照程序(SY10.ASM:

OUTBITequ0e101h;位控制口

 

CLK164equ0e102h;段控制口(接164时钟位DAT164equ0e102h;段控制口(接164数据位INequ0e103h;键盘读进口

 

LEDBufequ60h;显示缓冲

 

Numequ70h;显示的数据

 

DelayTequ75h

 

org0000h

 

ljmpStart

 

LEDMAP:

;八段管显示码

 

db3fh,06h,5bh,4fh,66h,6dh,7dh,07hdb7fh,6fh,77h,7ch,39h,5eh,79h,71hDelay:

;延时子程序

 

movr7,#0

 

DelayLoop:

 

djnzr7,DelayLoop

 

djnzr6,DelayLoop

 

ret

 

DisplayLED:

 

movr0,#LEDBuf

 

movr1,#6;共6个八段管

 

movr2,#00100000b;从左侧开始显示Loop:

 

movdptr,#OUTBIT

 

mova,#00h

 

movx@dptr,a;关全部八段管

 

mova,@r0

 

movB,#8;送164

 

DLP:

 

rlca

 

movr3,a

 

movacc.0,c

 

ANLA,#0FDH

 

movdptr,#DAT164

 

movx@dptr,a

 

movdptr,#CLK164

 

orla,#02h

 

movx@dptr,a

 

anla,#0fDh

 

movx@dptr,a

 

mova,r3

 

djnzB,DLP

 

movdptr,#OUTBIT

 

mova,r2

 

movx@dptr,a;显示一位八段管movr6,#1

 

callDelay

 

mova,r2;显示下一位

 

rra

 

movr2,a

 

incr0

 

djnzr1,Loop

 

movdptr,#OUTBIT

 

mova,#0

 

movx@dptr,a;关全部八段管

 

ret

 

Start:

movdptr,#0e100h

 

mova,#03h

 

movx@dptr,a

 

movsp,#40h

 

movNum,#0

 

MLoop:

 

incNum

 

mova,Num

 

movb,a

 

movr0,#LEDBuf

 

FillBuf:

 

mova,b

 

anla,#0fh

 

movdptr,#LEDMap

 

movca,@a+dptr;数字变换成显示码

 

mov@r0,a;显示在码填入显示缓冲

 

incr0

 

incb

 

cjner0,#LEDBuf+6,FillBuf

 

movDelayT,#30

 

DispAgain:

 

callDisplayLED;显示

 

djnzDelayT,DispAgain

 

ljmpMLoop

 

END

 

八位数码管显示:

8155控制

 

参照程序2:

对8155初始化,使I/O口控制LED的显示状况。

 

ORG0000H

 

MOVDPTR,#4400H;指向8155命令寄存器

 

MOVA,#03H

 

MOVX@DPTR,A;写入控制字。

A口、B口为输出,C口为输入INCDPTR;指向8155A口

 

MOVA,#00H

 

MOVX@DPTR,A;向A口写入00H,

 

;输出选中全部8个LED

 

INCDPTR;指向8155B口

 

MOVA,#0FFH

 

MOVX@DPTR,A;向B口写入某个字型

 

码,输出点亮8个LED

 

SJMP$

 

8155控制8位数码管和键盘电路图

 

2多位动向显示接口应用采纳8051与8155接口,再采纳8155的I/O口控制数码管的段码和位码,同时,采纳动向扫描方式挨次循环点亮各位数码管,即可组成多位动向数码管显示电路。

 

整体设计思路以下:

 

由8155的A口控制段码输出,C口控制位码输出。

采纳准时器中止方式实现动向扫描,每隔20ms扫描一次,每位数码管点亮的时间为1ms。

在单片机内部

RAM设置待显示数据缓冲区,由查表程序达成显示译码。

 

将缓冲区内待显示数据变换成相应的段码,再将段码经过8051的

8155的A口;位码数据由累加器循环左移指令产生,再经过P0口送至

 

P0口送至

8155的C

口。

 

硬件电路设计以下:

 

上图为数码管动向显示电路。

此中,8路驱动采纳74LS244总线驱动器,6路驱动采纳74LS07OC门驱动器。

74LS244输出经300Ω上拉(或限流电阻后接至电源,同时,接至数码管的各段,控制数码管的显示字符。

74LS07输出经1kΩ上拉电阻接至电源,同时接至各位数码管的公共端,控制每位数码管的显示时间,实现动向扫描。

模拟生产线计数的按键信号接至P3.3口。

六位实现6位显示的秒表:

从左到右每2位LED分别显示小时、分和秒,并正常计数进位;上电后小时000000,当显示到235959后,6位显示清零,重新开始显示。

 

软件设计以下:

 

以单片机内部RAM的30H~35H单元作为显示数据缓冲区,六位数码管段码的获取及每位数码管的显示时间均由显示子程序达成。

采纳准时器中止方式实现动向扫描,每隔50ms扫描一次,每位数码管点亮的时间为1ms。

单片机每接收一次按键信号(即模拟交通灯改变计数信号,显示缓冲区的待显示数据被刷新一次,数码管相应的显示数值也就随之发生变化。

如连续按键进行测试,即可产生计数数据从左至右循环挪动的成效。

依据图中IO/、与单片机的连结可知,能够确立数令/状态字A口、B口、C口、计数值低8位寄存器及高6位和方式寄存器地点分别

为:

0100H、0101H、0102H、0103H、0104H、0105H。

片内资源分派以下表:

 

主程序:

 

MSECEQU20H;50MS计数单元

 

SECONDEQU21H;秒单元

 

MINEQU22H;分单元

 

HOUREQU23H;小时单元

 

ORG0000H

 

LJMPMAIN

 

ORG000BH

 

LJMPCONT

 

MAIN:

MOVSP,#3FH

 

MOVTMOD#01H

 

MOVTH0,#3CH

 

MOVTL0,#0B0H

 

MOVIE,#82H

 

MOVSECOND,#00H

 

MOVMIN,#00H

 

MOVHOUR,#00H

 

MOVMSEC,#14H

 

MOV35H,#00H

 

MOV34H,#00H

 

MOV33H,#00H

 

MOV32H,#00H

 

MOV31H,#00H

 

MOV30H,#00H

 

SETBTR0

 

START:

LCALLDISP

 

SJMPSTART

 

;LED动向显示子程序

 

;功能:

动向显示六个数码管

 

;进口:

显示缓冲区30H—35H中待显示的6个数据

 

DISP:

MOVR0,#30H;显示缓冲区首址

 

MOVR7,#00H;设定每位显示延不时间

 

MOVR2,#06H;显示位数

 

MOVR3,#20H;共阳管位码初始值,从右端先亮MOVA,@R0;取显示缓冲区的一个数据DISP1:

MOVDPTR,#TAB;查表首址给DPTR

 

MOVCA,@A+DPTR;查表获得显示字符的字型码MOVP0,A;将字型码送

P0口

 

MOVDPTR,#0101H

 

MOVX@DPTR,A;字型码送8155A口

 

MOVA,R3;位选码送A

 

MOVP2,A;位码送P2口

 

MOVDPTR,#0103H

 

MOVX@DPTR,A;位码送8155C口

 

DJNZR7,$;延时

 

DJNZR7,$;延时

 

RRA;位码右移

 

MOVR3,A;位码回送R3

 

INCR0;指向下一位

 

MOVA,@R0;取显示缓冲区下一个数据

 

DJNZR2,DISP1;6位显示一遍吗?

 

RET

 

TAB:

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

 

主程序流程图:

 

;准时器中止子程序:

 

;功能:

50MS履行一次,达成秒、分、小时单元的刷新并打开放到显示缓冲区

 

;出口:

显示缓冲区30H—35H中寄存待显示的6个数据

 

CONT:

PUSHACC

 

MOVTH0,#3CH

 

MOVTL0,#0B0H

 

DJNZMSEC,RN;判断到20次吗?

(暨1秒到1秒,返回主程序

 

MOVMSEC,#14H;1秒到,重置MSEC=20

 

INCSECOND

 

MOVA,SECOND

 

MOVR1,#31H;指向显示缓冲区的31H单元

 

LCALLBINBCD;调用拆字子程序,将秒打开为十位、个位,分别放31H,30H

MOVA,SECOND

 

CJNEA,#60,RN;到60秒?

未到返主程序

 

MOVA,#0

 

MOVSECOND,A;60秒到,秒单元清零

 

显示子程序流程图:

 

MOVR1,#31H;指向31H单元

 

LCALLBINBCD;调用拆字子程序

 

MOVA,MIN

 

INCA;分单元内容加1

 

MOVMIN,A

 

MOVR1,#33H;R1指向33H单元

 

LCALLBINBCD;调用拆字子程序,将分单元打开为十位、个位,分别寄存

33H和32H单元

 

MOVA,MIN

 

CJNEA,#60,RN;到60分吗?

未到返主程序

 

MOVA,#00

 

MOVMIN,A;60分到,分单元清零

 

MOVR1,#33H;指向33H单元

 

LCALLBINBCD;调用拆字子程序

 

MOVA,HOUR

 

INCA;小时单元内容加1

 

MOVHOUR,A

 

MOVR1,#35H;R1指向35H单元

 

LCALLBINBCD;调用拆字子程序,将小时打开为十位、个位,分别寄存到

35H和34H单元

 

MOVA,HOUR

 

CJNEA,#24,RN;到24小时吗?

未到返回主程序

 

MOVA,#00

 

MOVHOUR,A;到24小时,小时单元清零

 

MOVR1,#35H

 

LCALLBINBCD

 

RN:

POPACC

 

RETI

 

准时中止子程序流程图:

 

;BCD码拆字子程序:

 

;进口参数:

A,待打开的BCD码

 

;R1:

打开后BCD码寄存的末地点;功能:

将A中的两个十六进制数打开为哦两个BCD码,分别寄存到R1指向的两个缓冲单元BINBCD:

MOVB,#10DIVABMOV@R1,ADECR1MOVA,BMOV@R1,ARETEND

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

当前位置:首页 > 工程科技 > 能源化工

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

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