:(1了解数码管动态显示的原理。(2了解74LS164扩展端口的方法。:利用实验仪提供的显示电路,动态显示一行数据。:PB0数据输入PB1时钟输入说明:这里只是显示草图,详细原理参见"8155接口实验":(1QTH2008下载式综合实验仪1台(2QTH2008仿真器1台(:(1本实验仪提供了8段码LED显示电路,学生只要按地址输出相应数据,就可以实现对显示器的控制。显示共有6位,用动态方式显示。8段码是由8155的PB0、PB1经74LS164“串转并”后输出得到。6位位码由8155(或8255的PA0-5口输出,经uA2003反向驱动后,选择相应显示位。74LS164是串行输入并行输出转换电路,串行输入的数据位由8155的PB0控制,时钟位由8155的PB1控制输出。写程序时,只要向数据位地址输出数据,然后向时钟位地址输出一高一低两个电平就可以将数据位置到74LS164中,并且实现移位。向显示位选通地址输出高电平就可以点亮相应的显示位。本实验仪中数据位输出地址为0e102H,时钟位输出地址为0e102H,位选通输出地址为0e101H。本实验涉及到了8155I0/RAM扩展芯片的工作原理以及74LS164器件的工作原理。(:OUTBITequ0e101h;位控制口CLK164equ0e102h;段控制口(接164时钟位DAT164equ0e102h;段控制口(接164数据位INequ0e103h;键盘读入口LEDBufequ60h;显示缓冲Numequ70h;0000hljmpStartLEDMAP:;八段管显示码db3fh,06h,5bh,4fh,66h,6dh,7dh,07hdb7fh,6fh,77h,7ch,39h,5eh,79h,71hDelay:;延时子程序movr7,#0DelayLoop:djnzr7,DelayLoopdjnzr6,DelayLoopretDisplayLED:movr0,#LEDBufmovr1,#6;共6个八段管movr2,#b;从左边开始显示Loop:movdptr,#OUTBITmova,#******@dptr,a;关所有八段管mova,***@r0movB,#8;送164DLP:rlcamovr3,.0,cANLA,#0FDHmovdptr,#******@dptr,amovdptr,#CLK164orla,#******@dptr,aanla,#******@dptr,amova,r3djnzB,DLPmovdptr,#OUTBITmova,******@dptr,a;显示一位八段管movr6,#1callDelaymova,r2;显示下一位rramovr2,aincr0djnzr1,Loopmovdptr,#OUTBITmova,#******@dptr,a;关所有八段管retStart:movdptr,#0e100hmova,#******@dptr,amovsp,#40hmovNum,#0MLoop:ummova,Nummovb,amovr0,#LEDBufFillBuf:mova,banla,#0fhmovdptr,#LEDMapmovca,***@a+dptr;数字转换成显示码******@r0,a;显示在码填入显示缓冲incr0incbcjner0,#LEDBuf+6,FillBufmovDelayT,#30DispAgain:callDisplayLED;显示djnzDelayT,DispAgainljmpMLoopEND八位数码管显示:8155控制参考程序2:对8155初始化,使I/0000HMOVDPTR,#4400H;指向8155命令寄存器MOVA,#******@DPTR,A;写入控制字。A口、B口为输出,C口为输入INCDPTR;指向8155A口MOVA,#******@DPTR,A;向A口写入00H,;输出选中所有8个LEDINCDPTR;指向8155B口MOVA,#******@DPTR,A;向B口写入某个字型码,输出点亮8个LEDSJMP$8155控制8位数码管和键盘电路图2多位动态显示接口应用采用8051与8155接口,再采用8155的I/O口控制数码管的段码和位码,同时,采用动态扫描方式依次循环点亮各位数码管,即可构成多位动态数码管显示电路。整体设计思路如下:由8155的A口控制段码输出,C口控制位码输出。采用定时器中断方式实现动态扫描,每隔20ms扫描一次,每位数码管点亮的时间为1ms。在单片机内部RAM设置待显示数据缓冲区,由查表程序完成显示译码。将缓冲区内待显示数据转换成相应的段码,再将段码通过8051的P0口送至8155的
六位LED八段数码管显示 来自淘豆网m.daumloan.com转载请标明出处.