LED八段数码管显示实验目的_第1页
LED八段数码管显示实验目的_第2页
LED八段数码管显示实验目的_第3页
LED八段数码管显示实验目的_第4页
LED八段数码管显示实验目的_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

八段数码管显示1.实验目的:(1)了解数码管动态显示的原理。(2)了解74LS164 扩展端口的方法。2.实验内容:利用实验仪提供的显示电路,动态显示一行数据。7.参考程序(SY10.ASM):OUTBIT equ 0e101h ; 位控制口CLK164 equ 0e102h ; 段控制口(接164 时钟位)DAT164 equ 0e102h ; 段控制口(接164 数据位)IN equ 0e103h ; 键盘读入口LEDBuf equ 60h ; 显示缓冲Num equ 70h ; 显示的数据DelayT equ 75horg 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, #00hmovx dptr, a ; 关所有八段管mov a, r0mov B, #8 ; 送164DLP:rlc amov r3, amov acc.0, cANL A, #0FDHmov dptr, #DAT164movx dptr, amov dptr, #CLK164orl a,#02hmovx dptr, aanl a,#0fDhmovx dptr, amov a, r3djnz B, DLPmov dptr, #OUTBITmov a, r2movx dptr, a ; 显示一位八段管mov r6, #1call Delaymov a, r2 ; 显示下一位rr amov r2, ainc r0djnz r1, Loopmov dptr, #OUTBITmov a, #0movx dptr, a ; 关所有八段管retStart: mov dptr,#0e100hmov a,#03hmovx dptr,amov sp, #40hmov Num, #0MLoop:inc Nummov a, Nummov b, amov r0, #LEDBufFillBuf:mov a, banl a, #0fhmov dptr, #LEDMapmovc a, a+dptr ; 数字转换成显示码mov r0,a ; 显示在码填入显示缓冲inc r0inc bcjne r0, #LEDBuf+6, FillBufmov DelayT,#30DispAgain:call DisplayLED ; 显示djnz DelayT,DispAgainljmp MLoopEND八位数码管显示:8155 控制参考程序 2:对 8155 初始化,使 I/O 口控制 LED 的显示情况。ORG 0000HMOV DPTR,#4400H ;指向 8155 命令寄存器MOV A,#03H MOVX DPTR,A ;写入控制字。A 口、B 口为输出,C 口为输入INC DPTR ;指向 8155A 口MOV A,#00HMOVX DPTR,A ;向 A 口写入 00H,;输出选中所有 8 个 LEDINC DPTR ;指向 8155B 口MOV A,#0FFH MOVX DPTR,A ;向 B 口写入某个字型码,输出点亮 8个 LEDSJMP $8155 控制 8 位数码管和键盘电路图26P2.6 27P2.7 28PSEN 29ALE/P 30TXD 11RXD 108031WRP20P21P22P23P24 接 8031RD接 8031WR接 8031ALE接 8031RESET8031P2274LS138200 8AD012 PA0 21AD113 PA1 22AD214 PA2 23AD315 PA3 24AD416 PA4 25AD517 PA5 26AD618 PA6 27AD719 PA7 28PB0 29CE8 PB1 30RD9 PB2 31WR10 PB3 32IO/M7 PB4 33ALE11 PB5 34PB6 35PB7 36TMROUT6 PC0 37PC1 38TMRIN3 PC2 39PC3 1PC4 2RESET4 PC5 58155e d cdp b afg70 1 2 3 4 5 6VCCPC0PC1PC2PC3PA0PA70 1 2 34 5 6 78 9 10 1112 13 14 155.1 k4D03 Q0 2D14 Q1 5D27 Q2 6D38 Q3 9D413 Q4 12D514 Q5 15D617 Q6 16D718 Q7 19OE1 LE1174LS373A1 B2C3E14 E25E36Y0 15Y1 14Y2 13Y3 12Y4 11Y5 10Y6 9Y7 7VCCP25P26P27A0 10A1 9A2 8A3 7A4 6A5 5A6 4A7 3A8 25A9 24A10 21A11 23A12 2CS1 20CS2 26WE 27OE 22D011 D112D213 D315D416 D517D618 D7196264VCCEA/VP31X119 X218RESET9RD17 WR16INT012 INT113T014 T115P1.01 P1.12P1.23 P1.34P1.45 P1.56P1.67 P1.78P0.0 39P0.1 38P0.2 37P0.3 36P0.4 35P0.5 34P0.6 33P0.7 32P2.0 21P2.1 22P2.2 23P2.3 24P2.4 25P2.52) 多位动态显示接口应用采用 8051 与 8155 接口,再采用 8155 的 I/O 口控制数码管的段码和位码,同时,采用动态扫描方式依次循环点亮各位数码管,即可构成多位动态数码管显示电路。整体设计思路如下:由 8155 的 A 口控制段码输出, C 口控制位码输出。采用定时器中断方式实现动态扫描,每隔 20ms 扫描一次,每位数码管点亮的时间为 1ms。在单片机内部 RAM 设置待显示数据缓冲区,由查表程序完成显示译码。 将缓冲区内待显示数据转换成相应的段码,再将段码通过 8051 的 P0 口送至 8155 的A 口;位码数据由累加器循环左移指令产生,再通过 P0 口送至 8155 的 C 口。硬件电路设计如下:上图为数码管动态显示电路。其中,8 路驱动采用 74LS244 总线驱动器,6 路驱动采用 74LS07 OC 门驱动器。74LS244 输出经 300 上拉(或限流)电阻后接至电源,同时,接至数码管的各段,控制数码管的显示字符。74LS07 输出经 1 k 上拉电阻接至电源,同时接至各位数码管的公共端,控制每位数码管的显示时间,实现动态扫描。模拟生产线计数的按键信号接至 P3.3 口。六位实现 6 位显示的秒表:从左到右每 2 位 LED 分别显示小时、分和秒,并正常计数进位;上电后小时 00 00 00,当显示到 23 59 59 后,6 位显示清零,从头开始显示。EA/VPX1X2RESETRDWRINT0INT1T0T1PSENALE/PTXDRXD8031AD0 PA0AD1 PA1AD2 PA2AD3 PA3AD4 PA4AD5 PA5AD6 PA6AD7 PA7PB0CE PB1RD PB2WR PB3IO/M PB4ALE PB5PB6PB7TMROUT PC0PC1TMRIN PC2PC3PC4RESET PC581551A11A21A31A42A12A22A32A41Y1 181Y2 161Y3 141Y4 122Y1 92Y2 72Y3 52Y4 31G2G 74LS244a bfcgdeabcdefgdpa bfcgdeabcdefgdpa bfcgdeabcdefgdpa bfcgdeabcdefgdpa bfcgdeabcdefgdpa bfcgdeabcdefgdp74LS071 23 45 6891011 12131A 1Y2A 2Y3A 3Y4A 4Y5A 5Y6A 6Y5 V300 81 k65 V 1 k311918917161213141512345678P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7P2.0P2.1P2.2P2.3P2.4P2.5P2.6P2.7DPY DPY DPY DPY DPY DPYdp dp dp dp dp dp12345678123456781234567812345678123456781234567824681113151711921222324252627282930313233343536373839125121314151617181989107116343938373635343332212223242526272829301110软件设计如下:以单片机内部 RAM 的 30H35H 单元作为显示数据缓冲区,六位数码管段码的获取及每位数码管的显示时间均由显示子程序完成。采用定时器中断方式实现动态扫描,每隔 50 ms 扫描一次,每位数码管点亮的时间为 1 ms。单片机每接收一次按键信号(即模拟交通灯改变计数信号) ,显示缓冲区的待显示数据被刷新一次,数码管相应的显示数值也就随之发生变化。如连续按键进行测试,即可产生计数数据从左至右循环移动的效果。根据图中 IO/、与单片机的连接可知,可以确定命令 /状态字 A 口、B 口、C 口、计数值低 8位寄存器及高 6 位和方式寄存器地址分别为:0100H、0101H、0102H、0103H、0104H 、0105H 。片内资源分配如下表:名称 地址分配 用途 初始化值MSEC 20H 定时器 50MS 计数单元 14HSECOND 21H 秒计数单元 00HMIN 22H 分计数单元 00HHOUR 23H 小时计数单元 00H30H35H显示缓冲区30H:秒的个位31H:秒的十位32H:分的个位33H:分的十位34H:小时的个位35H:小时的十位00H40H 以上 堆栈区软件流程图如下页图所示:主程序:MSEC EQU 20H ;50MS 计数单元SECOND EQU 21H ;秒单元MIN EQU 22H ;分单元HOUR EQU 23H ;小时单元ORG 0000HLJMP MAINORG 000BHLJMP CONTMAIN: MOV SP, #3FHMOV TMOD #01HMOV TH0,#3CHMOV TL0,#0B0HMOV IE, #82HMOV SECOND, #00HMOV MIN, #00HMOV HOUR, #00HMOV MSEC, #14HMOV 35H, #00HMOV 34H, #00HMOV 33H, #00HMOV 32H, #00HMOV 31H, #00HMOV 30H, #00HSETB TR0START:LCALL DISPSJMP START;LED 动态显示子程序;功能:动态显示六个数码管;入口:显示缓冲区 30H35H 中待显示的 6 个数据DISP: MOV R0,#30H ;显示缓冲区首址MOV R7,#00H ;设定每位显示延时时间MOV R2,#06H ;显示位数MOV R3,#20H ;共阳管位码初始值,从右端先亮MOV A,R0 ;取显示缓冲区的一个数据DISP1: MOV DPTR, #TAB ;查表首址给 DPTRMOVC A, A+DPTR ;查表得到显示字符的字型码MOV P0 , A ; 将字型码送 P0 口MOV DPTR, #0101HMOVX DPTR, A ;字型码送 8155A 口MOV A , R3 ;位选码送 AMOV P2 , A ;位码送 P2 口MOV DPTR, #0103HMOVX DPTR, A ;位码送 8155C 口DJNZ R7 , $ ;延时DJNZ R7 , $ ;延时RR A ;位码右移MOV R3,A ;位码回送 R3INC R0 ;指向下一位MOV A,R0 ;取显示缓冲区下一个数据DJNZ R2,DISP1 ;6 位显示一遍吗?RETTAB: DB 0C0H, 0F9H, 0A4H , 0B0H, 99H, 92H, 82H, 0F8H, 80H, 90H 主程序流程图:;定时器中断子程序:;功能:50MS 执行一次,完成秒、分、小时单元的刷新并拆开放到显示缓冲区;出口:显示缓冲区 30H35H 中存放待显示的 6 个数据CONT:PUSH ACCMOV TH0,#3CHMOV TL0,#0B0HDJNZ MSEC, RN ;判断到 20 次吗?(暨 1 秒)到 1 秒,返回主程序MOV MSEC, #14H ;1 秒到,重置 MSEC=20INC SECONDMOV A, SECONDMOV R1,#31H ;指向显示缓冲区的 31H 单元LCALL BINBCD ;调用拆字子程序,将秒拆开为十位、个位,分别放31H,30HMOV A, SECONDCJNE A, #60,RN ;到 60 秒?未到返主程序MOV A, #0MOV SECOND, A ;60 秒到,秒单元清零显示子程序流程图:MOV R1, #31H ;指向 31H 单元LCALL BINBCD ;调用拆字子程

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论