您好,欢迎访问三七文档
7段数码管动态显示数字一、实验原理图共阳极的LED数码管,共阳就是7段的显示字码共用一个电源的正。原理示意图:数码管显示数字的两个条件为:1、是要在VT端(3/8脚)加正电源;2、要使(a,b,c,d,e,f,g,dp)端接低电平或“0”电平。这样才能显示的。例:如要显示“0”,则要a,b,c,d,e,f六个字段亮就显示“0”了,而g和dp字段不亮;这样只要向P0口送出相应的代码即可,编码表如下:dpgfedcba显示的字符编码P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.00001001000C0H1011101110F9H1100001020A4H1010001030B0H00101011499H00100110592H00000110682H1011101070F8H00000010880H00100010990H程序使用时,只需将显示数字所对应的编码送P0口,然后打开相应的数码管显示位的电源控制即可显示相应的字符。两位数码管显示控制程序及说明START:MOVR0,#0;清零MOVDPTR,#TABLE;指定查表起始地址LOOP:ACALLDISPLAY;调用子程序DISPLAYINCR0;R0加1CJNER0,#100,LOOP;R0未到100则转换JMPSTART;跳转DISPLAY:MOVA,R0;把R0里的数据送入AMOVB,#10;把10送入BDIVAB;ab相除MOV20H,A;十位送入20HMOV21H,B;个位送入21HMOVR3,#50;把50送入R3LOOP1:MOVA,21H;取个位数ACALLCHANG;调用子程序CHANGCLRP2.4;开个位显示ACALLDLY;调用子程序DLYSETBP2.4;关闭个位显示MOVA,20H;取十位数ACALLCHANG;调用子程序CHANGCLRP2.5;开十位显示ACALLDLY;调用子程序DLYSETBp2.5;关闭十位显示DJNZR3,LOOP1;循环50次RET;子程序返回CHANG:MOVCA,@A+DPTR;查表MOVP0,A;查表结果送入P0RET;子程序返回DLY:MOVR6,#20;典型延时子程序延时D1:MOVR7,#248;10msDJNZR7,$DJNZR6,D1RETTABLE:DB0C0H,0F9H,0A4H;表数据共阳极数码管显示代码DB0B0H,99H,92H,82HDB0F8H,80H,90HEND
本文标题:数码管动态显示数字
链接地址:https://www.777doc.com/doc-2335902 .html