资源描述:
《led八段数码管显示实验目的》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、八段数码管显示1.实验目的:(1)了解数码管动态显示的原理。(2)了解74LS164扩展端口的方法。2.实验内容:利用实验仪提供的显示电路,动态显示一行数据。7.参考程序(SY10.ASM):OUTBITequ0e101h;位控制口CLK164equ0e102h;段控制口(接164时钟位)DAT164equ0e102h;段控制口(接164数据位)INequ0e103h;键盘读入口LEDBufequ60h;显示缓冲Numequ70h;显示的数据DelayTequ75horg0000hljmpStartLEDMAP:;八段管显示码db3fh,06h,
2、5bh,4fh,66h,6dh,7dh,07hdb7fh,6fh,77h,7ch,39h,5eh,79h,71hDelay:;延时子程序movr7,#0DelayLoop:djnzr7,DelayLoopdjnzr6,DelayLoopretDisplayLED:movr0,#LEDBufmovr1,#6;共6个八段管movr2,#00100000b;从左边开始显示Loop:movdptr,#OUTBITmova,#00hmovx@dptr,a;关所有八段管mova,@r0movB,#8;送164DLP:rlcamovr3,amovacc.0,c
3、ANLA,#0FDHmovdptr,#DAT164movx@dptr,amovdptr,#CLK164orla,#02hmovx@dptr,aanla,#0fDhmovx@dptr,amova,r3djnzB,DLPmovdptr,#OUTBITmova,r2movx@dptr,a;显示一位八段管movr6,#1callDelaymova,r2;显示下一位rramovr2,aincr0djnzr1,Loopmovdptr,#OUTBITmova,#0movx@dptr,a;关所有八段管retStart:movdptr,#0e100hmova,#0
4、3hmovx@dptr,amovsp,#40hmovNum,#0MLoop:incNummova,Nummovb,amovr0,#LEDBufFillBuf:mova,banla,#0fhmovdptr,#LEDMapmovca,@a+dptr;数字转换成显示码mov@r0,a;显示在码填入显示缓冲incr0incbcjner0,#LEDBuf+6,FillBufmovDelayT,#30DispAgain:callDisplayLED;显示djnzDelayT,DispAgainljmpMLoopEND八位数码管显示:8155控制参考程序2:对
5、8155初始化,使I/O口控制LED的显示情况。ORG0000HMOVDPTR,#4400H;指向8155命令寄存器MOVA,#03HMOVX@DPTR,A;写入控制字。A口、B口为输出,C口为输入INCDPTR;指向8155A口MOVA,#00HMOVX@DPTR,A;向A口写入00H,;输出选中所有8个LEDINCDPTR;指向8155B口MOVA,#0FFHMOVX@DPTR,A;向B口写入某个字型码,输出点亮8个LEDSJMP$8155控制8位数码管和键盘电路图2)多位动态显示接口应用采用8051与8155接口,再采用8155的I/O口控
6、制数码管的段码和位码,同时,采用动态扫描方式依次循环点亮各位数码管,即可构成多位动态数码管显示电路。整体设计思路如下:由8155的A口控制段码输出,C口控制位码输出。采用定时器中断方式实现动态扫描,每隔20ms扫描一次,每位数码管点亮的时间为1ms。在单片机内部RAM设置待显示数据缓冲区,由查表程序完成显示译码。将缓冲区内待显示数据转换成相应的段码,再将段码通过8051的P0口送至8155的A口;位码数据由累加器循环左移指令产生,再通过P0口送至8155的C口。硬件电路设计如下:上图为数码管动态显示电路。其中,8路驱动采用74LS244总线驱动器
7、,6路驱动采用74LS07OC门驱动器。74LS244输出经300W上拉(或限流)电阻后接至电源,同时,接至数码管的各段,控制数码管的显示字符。74LS07输出经1kW上拉电阻接至电源,同时接至各位数码管的公共端,控制每位数码管的显示时间,实现动态扫描。模拟生产线计数的按键信号接至P3.3口。六位实现6位显示的秒表:从左到右每2位LED分别显示小时、分和秒,并正常计数进位;上电后小时000000,当显示到235959后,6位显示清零,从头开始显示。软件设计如下:以单片机内部RAM的30H~35H单元作为显示数据缓冲区,六位数码管段码的获取及每位数
8、码管的显示时间均由显示子程序完成。采用定时器中断方式实现动态扫描,每隔50ms扫描一次,每位数码管点亮的时间为1ms。单片机每接收一次按