资源描述:
《六位LED八段数码管显示.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、八段数码管显示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(
2、或8255的PA0-5口输出,经uA2003反向驱动后,选择相应显示位。74LS164是串行输入并行输出转换电路,串行输入的数据位由8155的PB0控制,时钟位由8155的PB1控制输出。写程序时,只要向数据位地址输出数据,然后向时钟位地址输出一高一低两个电平就可以将数据位置到74LS164中,并且实现移位。向显示位选通地址输出高电平就可以点亮相应的显示位。本实验仪中数据位输出地址为0e102H,时钟位输出地址为0e102H,位选通输出地址为0e101H。本实验涉及到了8155I0/RAM扩展芯片的工作原理以及74LS164器件的工作原理。7.参考程序(SY10.ASM
3、:OUTBITequ0e101h;位控制口CLK164equ0e102h;段控制口(接164时钟位DAT164equ0e102h;段控制口(接164数据位INequ0e103h;键盘读入口LEDBufequ60h;显示缓冲Numequ70h;显示的数据DelayTequ75horg0000hljmpStartLEDMAP:;八段管显示码db3fh,06h,5bh,4fh,66h,6dh,7dh,07hdb7fh,6fh,77h,7ch,39h,5eh,79h,71hDelay:;延时子程序movr7,#0DelayLoop:djnzr7,DelayLoopdjnzr6,
4、DelayLoopretDisplayLED:movr0,#LEDBufmovr1,#6;共6个八段管movr2,#00100000b;从左边开始显示Loop:movdptr,#OUTBITmova,#00hmovx@dptr,a;关所有八段管mova,@r0movB,#8;送164DLP:rlcamovr3,amovacc.0,cANLA,#0FDHmovdptr,#DAT164movx@dptr,amovdptr,#CLK164orla,#02hmovx@dptr,aanla,#0fDhmovx@dptr,amova,r3djnzB,DLPmovdptr,#OUTB
5、ITmova,r2movx@dptr,a;显示一位八段管movr6,#1callDelaymova,r2;显示下一位rramovr2,aincr0djnzr1,Loopmovdptr,#OUTBITmova,#0movx@dptr,a;关所有八段管retStart:movdptr,#0e100hmova,#03hmovx@dptr,amovsp,#40hmovNum,#0MLoop:incNummova,Nummovb,amovr0,#LEDBufFillBuf:mova,banla,#0fhmovdptr,#LEDMapmovca,@a+dptr;数字转换成显示码mo
6、v@r0,a;显示在码填入显示缓冲incr0incbcjner0,#LEDBuf+6,FillBufmovDelayT,#30DispAgain:callDisplayLED;显示djnzDelayT,DispAgainljmpMLoopEND八位数码管显示:8155控制参考程序2:对8155初始化,使I/O口控制LED的显示情况。ORG0000HMOVDPTR,#4400H;指向8155命令寄存器MOVA,#03HMOVX@DPTR,A;写入控制字。A口、B口为输出,C口为输入INCDPTR;指向8155A口MOVA,#00HMOVX@DPTR,A;向A口写入00H,
7、;输出选中所有8个LEDINCDPTR;指向8155B口MOVA,#0FFHMOVX@DPTR,A;向B口写入某个字型码,输出点亮8个LEDSJMP$8155控制8位数码管和键盘电路图2多位动态显示接口应用采用8051与8155接口,再采用8155的I/O口控制数码管的段码和位码,同时,采用动态扫描方式依次循环点亮各位数码管,即可构成多位动态数码管显示电路。整体设计思路如下:由8155的A口控制段码输出,C口控制位码输出。采用定时器中断方式实现动态扫描,每隔20ms扫描一次,每位数码管点亮的时间为1ms。在单片机内部RAM设置待显示数据缓