八段数码管显示.docx

上传人:小飞机 文档编号:5036218 上传时间:2023-05-31 格式:DOCX 页数:6 大小:113.76KB
返回 下载 相关 举报
八段数码管显示.docx_第1页
第1页 / 共6页
八段数码管显示.docx_第2页
第2页 / 共6页
八段数码管显示.docx_第3页
第3页 / 共6页
八段数码管显示.docx_第4页
第4页 / 共6页
八段数码管显示.docx_第5页
第5页 / 共6页
亲,该文档总共6页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《八段数码管显示.docx》由会员分享,可在线阅读,更多相关《八段数码管显示.docx(6页珍藏版)》请在三一办公上搜索。

1、实验一八段数码管显示1、实验目的:了解数码管动态显示的原理。了解74LS164扩展端口的方法。2、实验要求:利用实验仪提供的显示电路,动态显示一行数据.3、实验电路图LED1LED2 LED3 LED4 LED5 LED6ab 1c 1d 1e 1f 1g ha二 bcde 1_ f一 ghP2.7P2.4P2.5P2.6PC0PC1PC2PC3CLAMPOUT1UIN1OUT7AIN7OUT62IN6OUT50IN5OUT40IN4OUT3OUT23IN3IN2Y0Y1Y2Y3译码器8 051P0.0P0.1P0.2P0.3P0.4P0.5P0.6 07 -WRRDALEP2.0RESETA

2、D0 AD1 AD2 AD3 AD4 AD5 AD6AD7 -ULELT V AVRDALE IO/M RESETPA5PA4PA3PA2PA1PA0PB0PB11台1台1台4、实验器材:(1) 超想-3000TB综合实验仪(2) 超想3000仿真器(3) 计算机5、实验连线无6、实验说明:(1) 本实验仪提供了 8段码LED显示电路,学生只要按地址输出相应数据, 就可以实现对显示器的控制。显示共有6位,用动态方式显示。8段数码管是由 8155的PB0、PB1经74LS164 “串转并”后输出得到。6位位码由8155的PA0 口输出,经Ua2003反向驱动后,选择相应显示位。74LS164是串

3、行输入并行输出转换电路,串行输入的数据位由8155的PB0 控制,时钟位由8155的PB1控制输出。写程序时,只要向数据位地址输出数据, 然后向时钟位地址输出一高一低两个电平就可以将数据位移到74LS164中,并 且实现移位。向显示位选通地址输出高电平就可以点亮相应的显示位。本实验仪中数据位输出地址为0e102H,时钟位输出地址为0e102H,位选通 输出地址为0e101H。本实验涉及到了 8155 I0/RAM扩展芯片的工作原理以及 74LS164器件的工作原理。(2) 七段数码管的字型代码表dp显示字 形0 1 2 3 4 5 6 78 9 A B C D E Fg f01 00 10 1

4、0 11 11 11 00 11 11 11 11 01 10 11 11e d11 00 11 01 00 01 11 00 11 01 10 11 11 11 11 10c b1111 01 111110101111111110 00 1100 00a 段码1 3fh 0 06h1 6bh1 4fh0 66h1 6dh1 7dh1 07h1 7fh1 6fh1 77h0 7ch1 39h0 5eh1 79h1 71h7、程序框图8、实验步骤1. 将KEIL仿真器上40芯排线一端和实验箱上51CPU板上的40芯排针连接起来, 将仿真器连接的USB或串口线与PC机对应的USB或串口连接起来,打

5、开实验箱电源。2. 进入KEIL软件界面,点击项目/打开项目在C: KEILUV23000TC51配套实验 例程中选实验一,内有ASM和C51两种程序,进入ASM文件夹打开LED项目文件3. 点击“调试/启动/停止调试”,进入调试界面,点击“调试徒行”可看到8段数 码管交9、实验程序;实验一八段数码管显示OUTBIT equ 0e101h ;位控制口CLK164 equ 0e102h ;段控制口(接 164 时钟位)DAT164 equ 0e102h ;段控制口(接 164 数据位)INequ 0e103h ;键盘读入口LEDBuf equ 60h;显示缓冲Numequ 70h;显示的数据De

6、layT equ 75h;org 0000hljmp StartLEDMAP:;八段管显示码db 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07hdb 7fh, 6fh, 77h, 7ch, 39h, 5eh, 79h, 71hDelay:;延时子程序mov r7, #0DelayLoop:djnz r7, DelayLoopdjnz r6, DelayLoopretDisplayLED:mov r0, #LEDBufmov r1, #6;共6个八段管mov r2, #00100000b ;从左边开始显示Loop:mov dptr, #OUTBITmov a, #0

7、0hmovx dptr, a;关所有八段管mov a, r0mov B, #8;送164,送完一个显示一个,动态显示DLP: rlc a;依次取出最右边的每一位mov r3, a;mov acc.0, cANL A, #0FDH;将 PB1 置 0mov dptr, #DAT164;将取出的每 位数据送入164,;用一个脉冲实现(PB1)movx dptr, amov dptr, #CLK164orl a,#02h;将 PB1 置 1movx dptr, aanl a,#0fDh;将 PB1 置 0movxdptr, amova, r3djnzB, DLP;判断8段是否都送完movdptr,

8、#OUTBITmova, r2movxdptr, a;显示位八段管movr6, #1callDelaymova, r2;显示下一位rramovr2, aincr0djnzr1, Loopmovdptr, #OUTBITmova, #0movxdptr, a;关所有八段管retStart:mov-dptr,#0e100hmov a,#03h;给8155初始化,PA PB输出movxdptr,amovsp, #40hmovNum, #0MLoop:incNummova, Nummovb, amovr0, #LEDBufFillBuf:mova, banla, #0fhmovdptr, #LEDMapmovca, a+dptr;数字转换成显示码movr0,a;显示在码填入显示缓冲incr0incbcjner0, #LEDBuf+6,FillBufmovDelayT,#30DispAgain:callDisplayLED; 显示djnzDelayT,DispAgainljmpMLoopEND1、试着改变一下数字的变化速度。2、改变一下数字跳动的幅度,如1 , 3, 5, 7, 9, 113、改变一下LED显示的方向,让数字从左到右跳动。

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号