八段数码管数字显示实验c语言,八段数码管显示实验

实验一 八段数码管显示实验

一、实验目的:

1、了解数码管动态显示的原理。 2、了解74LS164扩展端口的方法。

二、实验要求:

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

三、实验电路:

这里只是显示草图,详细原理参见第一章的1.1.15 “8155键显模块”。

四、实验说明:

1、本实验仪提供了8段码数码管LED 显示电路,学生只要按地址输出相应数据,就可以实现对显示器的控制。显示共有6位,采用动态方式显示。8段数码管是由8155的PB0、PB1经74LS164“串转并”后输出得到。6位位码由8155的PA0口输出,经uA2003反向驱动后,选择相应显示位。

74LS164是串行输入并行输出转换电路,串行输入的数据位由8155的PB0控制,时钟位由8155的PB1控制输出。写程序时,只要向数据位地址输出数据,然后向时钟位地址输出一高一低两个电平就可以将数据位移到74LS164中,向显示位选通地址输出高电平就可以点亮相应的显示位。

本实验仪中数据位输出地址为0e102H ,时钟位输出地址为0e102H ,位选通输出地址为 0e101H 。本实验涉及到了8155 I0/RAM扩展芯片的工作原理以及74LS164器件的工作原理。

2

六、实验步骤:

1、将KEIL 仿真器上40芯排线一端和实验箱上51CPU 板上的40芯排针连接起来,将仿真器连接的USB 或串口线与PC 机对应的USB 或串口连接起来,打开实验箱电源。

2、进入KEIL 软件界面,点击项目/打开项目

在C:\KEIL\UV2\次1配套实验例程中选择实验一,内有ASM 和C51两种程序,进入ASM 文件夹打开LED 项目文件

进入如图所示界面

点击“调试/启动/停止调试”,进入调试界面,点击“调试/运行”可看到8段数码管交替显示0—

F

七、实验程序:

OUTBIT equ 0e101h ; 位控制口

CLK164 equ 0e102h ; 段控制口(接164时钟位) DAT164 equ 0e102h ; 段控制口(接164数据位) IN equ 0e103h ; 键盘读入口 LEDBuf equ 60h ; 显示缓冲 Num equ 70h ; 显示的数据 DelayT equ 75h ; org 0000h ljmp Start

LEDMAP: ; 八段管显示码

db 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07h db 7fh, 6fh, 77h, 7ch, 39h, 5eh, 79h, 71h Delay: ; 延时子程序 mov r7, #0 DelayLoop:

djnz r7, DelayLoop djnz r6, DelayLoop ret DisplayLED:

mov r0, #LEDBuf

mov r1, #6 ; 共6个八段管 mov r2, #00100000b ; 从左边开始显示 Loop:

mov dptr, #OUTBIT mov a, #00h

movx @dptr, a ; 关所有八段管 mov a, @r0

mov B, #8 ; 送164 DLP:

rlc a mov r3, a mov acc.0, c ANL A, #0FDH mov dptr, #DAT164 movx @dptr, a mov dptr, #CLK164 orl a,#02h movx @dptr, a anl a,#0fDh movx @dptr, a mov a, r3 djnz B, DLP mov dptr, #OUTBIT mov a, r2

movx @dptr, a ; 显示一位八段管 mov r6, #1 call Delay

mov a, r2 ; 显示下一位 rr a mov r2, a inc r0 djnz r1, Loop mov dptr, #OUTBIT mov a, #0

movx @dptr, a ; 关所有八段管 ret

Start: mov dptr,#0e100h mov a,#03h movx @dptr,a mov sp, #40h mov Num, #0 MLoop:

inc Num mov a, Num mov b, a mov r0, #LEDBuf FillBuf:

mov a, b anl a, #0fh mov dptr, #LEDMap

movc a, @a+dptr ; 数字转换成显示码 mov @r0,a ; 显示在码填入显示缓冲 inc r0 inc b

cjne r0, #LEDBuf+6, FillBuf mov DelayT,#30 DispAgain:

call DisplayLED ; 显示 djnz DelayT,DispAgain ljmp MLoop END

    原文作者:数码反欺诈联盟
    原文地址: https://blog.csdn.net/weixin_29153859/article/details/117180268
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞