数码管动态显示原理及实现方法

什么是数码管动态显示

本实验中使用的实验板的资源电路图如下:其中P0端口是一个段代码,在低级别上是有效的。
P2 端口是位代码,高级别是有效的。
P2 .0端口控制第一个数字管道到P2 .7 端口,控制了第八个。
该板的片段COD表如下:每个数字管的段代码都是从P0端口发送的,即,从每个数字管道输入段代码是相同的。
动态屏幕可以使用。
在视觉逗留中,只要我们的延迟时间足够短,数字屏幕就可以非常稳定且清晰。
该过程在下面显示。
上述方法和想法写如下:org0000h start:mova,#08 H; 0; 段代码movp0,movp2 ,#01 H; 位代码LCALLDELAY_1 MS MOVA,#0ABH; 1 movp0,一个movp2 ,#02 H lcalldelay_1 ms mova,#1 2 h; 2 movp0,一个movp2 ,#04 H lcalldelay_1 ms mova,#2 2 H; 3 movp0,a movp2 ,#08 h lcalldelay_1 ms mova,#0a1 h; 4 movp0,一个movp2 ,#1 0H lcalldelay_1 ms mova,#2 4 H; 5 movp0,一个movp2 ,#2 0H lcalldelay_1 ms mova,#04 H; 6 movp0,一个movp2 ,#4 0H lcalldelay_1 ms; Mova,#0aah; 7 MOVP0,A MOVP0,#0AAH; 我觉得使用此短语和以上两个句子以相同的方式实现,此习惯在将来可以在Movp2 ,#8 0H lcalldelay_1 ms ljmpstart delome_1 ms:movr6 ,#2 temp:movr5 ,#0ffh djnzr5 ,#0ffh djnzr5 ,#2 它是向董事会获得的,以获得八个$的测试结果 DJNZR6 ,Temp ret将其下载到板上,以分别从低屏幕到高屏幕0到7 分别从八个$ DJNZR6 数字获得测试结果(包括点)。
★该方法超过将值连续分配给P0或P2 如果要更改显示的数字,更改程序非常麻烦。
因此,我们需要在5 1 微控制器中使用经常使用的方法:表查找方法。
例如,当我们在P0端口上发送片段代码时,我们可以添加要在表中显示的段代码,然后每次从该表中获取数字并将其发送到P0端口。
当您在P2 端口上发送BIT代码时,您可以在另一个表中添加要使用的位代码,并每次从该表中获取数字并将其发送到P2 端口。
这样,如果要更改显示的数字,则只需要更改表中的数字即可。
org0000h启动:movr7 ,#0ffh; r7 ,r6 查找表格时,它将发送到索引寄存器A(因为添加1 后为0,因此是预设FFH)movr6 ,#0ffh loop:lcallplay1 ; CallPlay1 ; CallPlay子例程显示段代码LCALLPLAY2 ; 呼叫播放显示BitCode subroutine lcalldelay_1 ms cjnea,#8 0H,loop; 它是否达到左数,也就是说,第8 位代码ajmpstart Play1 :; 搜索表并查找段代码子例程; Mova,R7 ; 印加; movr7 ,a reg7 ; R7 ; 这里是索引寄存器movdptr,#table1 ; +dptr; 基本寄存器加索引寄存器地址movp0,re ret play2 :; 表搜索表BitCode子例程(原理与Play1 相同)Mova,R6 Inca Movr6 ,A MovdPtr,#Table2 Movca,@A+Dptr movp2 ,ret table1 :db08 h,0abh,0abh,1 2 h,1 2 h,2 2 ,2 2 ,2 2 ,2 2 ,2 4 1 h,2 4 h,2 4 h,2 4 h,2 4 h,2 4 h,2 4 h,2 4 h,2 4 h,2 4 h, 0aah; 段代码表2 :DB01 H,02 H,04 H,08 H,1 0H,2 0H,4 0H,8 0H; 位代码表延迟_1 MS:MOVR5 ,#02 H; 延迟1 MS子例程温度:MOVR4 ,#0FFH DJNZR4 ,$ DJNZR5 ,TEMP RETT将其延迟到董事会以确认并获得预期的结果。
----------------------------------------------------------------------------- -------------------------------------------------------------------------- --------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------------------------------------------------------- ------ ------------------------------------------------------------------------- ----------------------------------------------------------------------------- -------------------------------------------------------------------------- ----------------------------包括 //包括左移位函数_crol_()voems(usignedCharms); //延迟子例程USIGNEDCHARDATADIS_DIGIT; //位街道价值,转移到P2 端口到街道当前的数字管道值。
,//如果等于0x01 ,当数字管道P2 .0连接到USignerTcharcodedis_code [1 1 ] = {0x08 .0xab,0x1 2 ,0x2 2 .0xa1 ,// 0x1 2 ,0x2 2 .0xa1 ,// 0.1 ,2 ,3 ,4 0x2 4 0x2 4 ,0x04 ,0x04 ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x2 0.0xff}; (){p0 = 0xff; //关闭所有数字绳索P2 = 0x00; ] = dis_code [4 ]; 0; //当前位移为0,而(1 ){p0 = dis_buf [dis_ind ex]; //段代码发送p0端口p2 = dis_digit; //选择位(IE BITCODE)延迟(1 ); // delay dis_digit = _crol_(dis_digit,1 ); //位门向左切换,第二个Strobe dis_index ++的下一点; //下一个段代码dis_index&= 0x07 ; //请参阅注释}}无效的所有管道,返回第一个开始下一次扫描。
写回常规形式:dis_index = dis_index&0x07 此方法非常新。
例如,在第一个循环之后,dis_index 0000001 的值是0x07 的值保持不变,仍然是0x01 直到值增加。
可以用(dis_index == 8 )dis_index = 0代替此句子,效果是相同的。
★当通过上述方法实现C5 1 时,将段代码放置在数组dis_code [1 1 ]中,然后通过BufferArraray dis_buf []加载要在程序中调用的值,以便订阅(OFFSET)可以使用。
这看起来有些复杂,但是这些想法很清楚,结构很清晰,而且通用性且易于扩展。
★此外,只需扩展程序的延迟,例如延迟(1 000),然后下载到板上,您可以看到数字管实际上从低到高点出现。
----------------------------------------------------------------------------- -------------------------------------------------------------------------- --------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------------------------------------------------------- ------ ------------------------------------------------------------------------- ----------------------------------------------------------------------------- -------------------------------------------------------------------------- ------------------------------在订阅中标记为0到7 的值,而没有设置缓冲区阵列dis_buf []是实现如下:#include #include // _ crol_()使用voicedaymes(unsignertecharms); //延迟子例程usignertchadatad is_digit; //位门值将当前数字管道值转移到街道上的P2 端口。
0x2 2 ,0xa1 ,// 0.1 ,2 ,3 ,4 0x2 4 ,0x04 ,0xaa,0x00.0x2 0.0xff}; // 5 ,6 ,7 ,8 ,9 ,在USIGNEDCHARDATADIS_INDEX上; //显示索引,用于识别其位移目前的索引显示数字管道和缓冲区voidmain(){p0 = 0xff; //关闭所有数字编码器管道P2 = 0x00; 代码发送P2 端口延迟(1 ); 程序(晶体振荡器1 2 m){unsignedChari; dis_index <8 ; dis_index ++){p0 = dis_code [dis_index]; //段代码发送p0端口p2 = dis_index+1 ; // BitCode发送P2 端口延迟(1 ); 0当第二个位置显示三个8 时,第三位数字显示了七个数字,而较高的四位数没有出现。
位观察后的扩展延迟部分发现没有故障,我对Keil错误搜索并不熟悉。
[2 006 .5 .2 ]找出原因,补充:我今天再次看了一下,发现上述错误在哪里。
当时,我想将dis_index的值用作位代码,也就是说,当第一个位显示0时,段代码为dis_code [0],也就是说,dis_index的值为0,并且位代码该值目前为1 当另一个位显示1 时,段代码为dis_code [1 ],dis_index的值为1 ,目前的比特码值为2 因此,我只是使用1 个手术的添加将移位值与端口P0与位代码与端口P2 联系起来。
但是,如果您仔细考虑比特码的原理,上面的方法显然是错误的。
dis_index值为2 ,添加1 后,它是3 当您遵循上述方法时,将此3 用作位代码,并且正确的比特码应为4 (000001 00B)。
所以出了点问题。
实际的存在此对应比的比率,而且不仅添加了1 比特码应该是2 的dis_index幂。
也就是说:0--1 1 -2 2 -4 3 -8 4 --1 6 功率操作函数floatpow( floatx,floaty)包含在Math.h中,返回值为XY(float类型):for(dis_index = 0; dis_index <8 ; dis_index ++){p0 = dis_code [dis_index]; //段代码发送p0端口p2 =(char)pow(2 ,dis_index); // BitCode发送P2 补贴(2 5 5 ); 再次将其下载到董事会,发现仍然存在一个问题,也就是说,当延迟很小时,显示器很混乱,但是如果延迟时间增加(例如程序的价值),您可以看到数字管的显示正确。
此外,此方法生成的代码量也很大(从写作速度来看很明显)。
这里只有一个想法,它仅在本实验中重要,这并不重要,因此仅此而已。
[附加端] ------------------------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------------------------------------------------------- ------ --------------------------------------------------------------------- ------- -------------------------------------------- -------------------------------------------------------------------------董事会,如下所示:#include #include //包括左移动函数_crol_()usignerThardAtaDADADIS_DIGIT; //位街道值转移到街道到街的当前数字管道值。
] = {0x08 .0xab,0x1 2 .0x2 2 .0xa1 ,// 0.1 .2 ,3 .4 0x2 4 .0x04 .0xaa,0x00.0x2 0.0xff}; // 5 ,6 ,7 ,8 ,9 ,作者:usignetchardatadis_buf [8 ]; // dis_buf出现在缓冲区基础地址USIGNERTHARDATADIS_INDEX中; //显示索引,用于识别当前显示数字管道和缓冲区voidmain(){p0 = 0xff; //关闭所有数字管p2 = 0x00; FC1 7 H = 6 4 5 3 5 d,2 1 6 -6 4 5 3 5 = 1 001 US = 1 MS IE = 0x8 2 ; // 1 000001 0bt0溢出dis_buf [0] = dis_code [0x0]; dis_buf [5 ] = dis_code [0 x5 ]; = 1 ; //启动T0时(1 ); //循环等待中断} void hours0()interu pt1 //小时0中断服务程序,用于数字管的动态扫描{th0 = 0xfc; //发生中断时间/计数重新安装初始值TL0 = 0x1 7 ; //我觉得(及以上)应该是0x1 8 ,而不是1 7 个分析P2 = 0x00; //修复所有数字管p0 = dis_buf [dis_index]; //段代码发送p0端口p2 = dis_digit; // /位代码发送P2 -pport dis_digit = _Crol_(dis_digit,1 ); //位端口值向左移动,下一次中断将中断时,下一个数字管道连接到下一个数字管道dis_index ++; = 0x07 ; //通行证后扫描所有8 个数字管道,返回第一个开始进行下一次扫描}★计时器/计数器的入口脉冲周期与机器周期相同,即时钟转频的1 /1 2 。
当晶体振荡器为1 2 m时,入口脉冲周期间隔为1 U。
机器周期为1 U。
假设T0的原始值为X,是计算原始值的方法:在此示例中,计时器使用方法1 ,即1 6 位计时器,即导致中断并输入中断处理程序。
在这里,如果您想用1 ms推迟它,即1 000US,则是公式2 1 6 -X = 1 000,您可以获得x = 6 4 5 3 6 ,该x = 6 4 5 3 6 ,它转换为十六进制到fc1 8 ,即第一个值th0 = 0xfc, TL0 = 0x1 8 也就是说,计时器从6 4 5 3 6 开始计数,1 000个计数后的值为6 5 5 3 6 在上面的示例中是加载的初始值,而不是FC1 8 (6 4 5 3 6 ),而是FC1 7 (6 4 5 3 5 )。
我认为这可能是计数区域为0〜6 5 5 6 5 的原因,我也没有随机考虑这个问题,我写了更多书籍,但前者使用了更多,我认为前者更明智,因为在计算机中,1 6 位二进制不能代表6 5 5 3 6 当所有位均为1 时,代表的值为6 5 5 3 5 ,即6 5 5 3 5 H = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 b,也可以说,6 5 5 3 6 是通过溢出来实现的6 5 5 3 6 当响应中断时,钥匙就会变成。
以上面的示例为例,如果起始值为6 4 5 3 5 (FC1 7 ),则计数为6 5 5 3 5 ,则计数为1 000,即1 ms,但目前没有溢出。
也没有触发中断。
它仅在下一个计数之后发生。
确切的值应为1 001 U。
如果起始值为6 4 5 3 6 (FC1 8 ),则正是所需的值,则上面示例中的原始值应为FC1 8 而不是FC1 7 这只是我自己的看法。
----------------------------------------------------------------------------- -------------------------------------------------------------------------- --------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------------------------------------------------------- ------ ------------------------------------------------------------------------- ----------------------------------------------------------------------------- -------------------------------------------------------------------------- ---------------------------------- ###################### ograph #### ####### ograph #######################也就是说,先前与段代码的连接。
此外,这八个数字模拟的数字管的左端是第一个位置,右端是第八位,与板上的顺序相反,因此为了统一,该数字是基于数字的。
在板上。
上图还可以模拟结果而不添加草稿电阻,但是P0门的高水平显示为灰色,即高电阻。

led数码管六位动态显示时分秒,有一位不亮,其他都正常,而且1-9数字中有一位数字动态显示不出来

在遇到一分钟和第二个动态显示Dignit Digital Tube时,如果无法显示该数字,则首先必须确认是否无法显示所有数字。
如果可能是这种情况,则是因为相应的数据数字管错误或电路数字管的问题作为选定的管子的段。
如果您没有很多人可以显示,那么这是一些读取行连接或位阅读信息的问题,并且选择了一些课程。
确认所有线条和数据正确之后,如果您不能显示您,则数字管可能会损坏。
此外,如果未点亮数字管,您还需要检查驱动器信息和硬件连接。
如果您确认其中没有一个是错误的,并且数字管并没有显示任何要损坏的数字管。
通常,问题通常不是照明,因为未选择本地阅读。
当解决问题时,您可以在步骤中进行测试,从最基本的驱动器信息和线路连接开始,然后逐渐故障排除可能是故障点。
如果恐惧后可以解决问题,则可以考虑将新的数字管替换为显示功能是正常的。
患者和细致的检查对于与SO问题的相互作用非常重要。
采取所有步骤以准确解决真正的问题。
如果问题持续存在,建议检查提供连接和电源正常的机会,无论电源电压稳定,无论是内部电路数字管是否完好无损。
有时,功率问题也会导致数字管或正常解决。
简而言之,LED数字管显示的问题需要检查许多角,包括驱动器数据,硬件连接,商店等,以解决故障的原因以一种方式找到真正的问题。

什么是数码管动态显示

数字管道的动态显示是微控制器中最常用的显示方法之一。
g,dp“连接在一起,并在每个数字管的通用马球com中添加一个门的控制电路。
门位由每个独立的I/O线控制。
当微控制器发出Glyph代码时,所有数字管道都会接收相同的glifo。
只要我们打开必须显示的数字管门的控制,钻头就会显示出雕文,并且没有选择数字管不会点亮。
相关推荐
数码产品分类及手机在其中的地位
手机属于数码产品吗1数字产品的数量包括可以使用数字和编码工作的机器,并且可以连接到计算机。因此,手机被归类为数字产品。2智能手机或智能手机是指配备移动操作系统的电话设备的一般术语,该术语可以通过安装应用程序来增加功能,并可以通过移动网络访问无线网络。智能手机具有三个主要功能,包括功
数码管共阳共阴字形码及显示代码解析
急需数码管共阳和共阴对应的所有字形码?基于我的MipoonControwProcess程序的装运显示屏基于付款代码表。与经文1相匹配的剧烈数字管部分的通常窗格以101111表示。教室代码1是11F9H。它由10100100代表,他与0。5100的第3.4节相关。参与了与N00010相关的GaryChod数字浴缸部分:5bh,51011套装为5bh,51011
数码管共阴共阳代码表详解(0-9)
数码管共阴和共阳的管码表是什么(0-9)具有共同负和常见的数字管道代码表是正面的,如下所示:*频繁的负数字管道代码表(0-9):0x3F,0x06,0x5b,0x4f,0x66,0x66,0x6d,0x07,0x7,0x7f,0x6f,0x6f。*总数字管代码表(0-9):0xc0,0xf9,0xa4,0xb0,0x99,0x99,0x92,0x82,0xf8,0x80,0x90。现在,让我们仔细研究这
OPPO手机格机指令全解析:实用代码大揭秘
OPPO手机格机指令4:这台机器的工厂日期*#807#:自动测试*#808#:原始设置*#8778#:还原设置Originals*#900#bluetoothon*#901#bluetoothoff*#4321#蓝牙模式,但编辑*#*#*#4636#*#*#*在手机,电池信息,电池记录,使用统计信息,信息wifi(android)上显示信息(android)常规命令)*2767*3855#还原原始设置和SD卡的所
热门文章
数码管显示技巧:静态与动态显示解析

数码管显示技巧:静态与动态显示解析

如何让8个数码管显示出不一样的数值有两种查看数字管道的方法:一个是静态显示屏,另一种是动态显示。以8个数字管显示“12345678”为例,描述如下:静态显示:8个数字管道同时照亮,显示的为“12345678”。该方法相对“愚蠢”,易于理解,但占据了更多的资源。由于数字管具有7个段,因此电路包括1
2025-02-24
数码游戏与职场关系解析

数码游戏与职场关系解析

游戏跟数码有什么关系数字主要是指游戏和硬件,而游戏是程序和软件。数码与页码的关系是什么/侧数是书籍的第几页数,而编号是页码(0〜9)的数量。和下属发生过关系的人算什么与下属有关系的人是什么?发
2025-02-21
数码管显示技术:静态与动态显示差异解析

数码管显示技术:静态与动态显示差异解析

数码管的静态显示和动态显示有何不同状态显示:1数码管动态显示和静态显示的区别?动态屏幕和数字管的静态屏幕之间的区别是:不同的字符更改,不同的CPU时间占据了不同的硬件源。1不同的字符更改1动态屏幕:动态屏幕获取曲线以显示每个字符。利用人眼的暂
2025-02-24
51单片机汇编语言实现电子钟八段数码管显示教程

51单片机汇编语言实现电子钟八段数码管显示教程

第一个用51单片机完成电子钟的八段数码管显示,只要可以显示时,分,秒就行。不要c语言,要汇编语言。急为您提供程序。Atequp0;数字管CLEQUEC22的数据;“-”;22c_dieequ24;“离开”;24;-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
2025-02-25
郑州图文广告店学徒招募信息及学习资源指南

郑州图文广告店学徒招募信息及学习资源指南

郑州图文广告店哪里有招学徒的?谁知道告诉我好吗?我找了好久了,谢谢您可以从中东路和FuniuRoad前往中尤阿恩路。门前有贴纸。如何掌握Illustrator软件的应用,还有我想学菲林输出胶片输出是数字的普及,类似于以前的负面照片。就个人而言,它分为三个阶段,软
2025-02-21
三菱PLC数码管显示红绿灯剩余时间教程

三菱PLC数码管显示红绿灯剩余时间教程

三菱plc用数码管显示红绿灯剩余时间在此数字管道中显示交通信号灯的其余临时步骤如下:1确定输入信号:交通信号灯的状态和数字管显示的。2编写程序:根据交通信号灯的状态和数字管显示的编写PLC程序。3连接硬件:使用数字管和交通信号灯连接PLC。4.调试程序:使用调试程序,请确保PLC可以正确控制数字管的交
2025-02-24
数码管动态显示原理及C51单片机应用解析

数码管动态显示原理及C51单片机应用解析

数码管的显示与闪烁实验简介:数字管的动态显示是蓝色桥杯单元图案中的关节测试问题。数字管道显示为公共阳极和公共阴极。LANQIAO杯官方开发板的数字管模块用共同的阳极照亮。本节解释了数字管理原则和显示屏的控制。知识点公共阳极原理常见阳极数字管将阳极与公共夹具结合在一起,该端子连接到电源
2025-02-24
拼多多开店必备:常见类目资质详解及获取途径

拼多多开店必备:常见类目资质详解及获取途径

拼多多开店类目资质在哪?常见类目资质介绍!在Pinduoduo开设一家商店是许多企业家的选择,但是开设商店时,您需要选择此类别需要资格,并且不同的类别资格也不同。哪一个?粮食和医疗保健需要交易员的企业/食品许可证];2数字电器是主要类别,下面有许多小型类别,例如手机,3C数字配件等。选择这种类型的交易
2025-02-22
推荐阅读

推荐 手机相机专业模式五大参数解析

手机相机专业模式的五个参数在手机摄像机的专业方式中,五个主要参数在射击效果中起着至关重要的作用:1个物体(例如鸟类);慢门适合夜景和天空,需要固定的设备射击以防止握手。2灵敏度(ISO):调节光的灵敏度,将光线降低至强光,以减少噪声并将光泽度增加到低光,但噪声会增加。3白平衡(WB):调整色彩平

推荐 工程记录必备:MarkWatermark

工程上用什么相机APP?1MarkWatermark摄像头是工程项目的理想选择。它具有独特的AI技术,可以识别水印模板并自动添加。2在使用此相机拍摄建筑材料的照片后,水印会自动显示材料的详细信息,例如:B.显着提高工作效率的数量。3除了材料管理外,MarkWatermark相机还具有许多功能,例如团队访问,现场摄影,证据收集

推荐 Word表格边框大小与颜色设置教程

word如何设置表格默认边框大小1在单词表中设置边界线。外帧线为0.75磅,双水平线,设置为绿色。内部框架线设置为0.5磅,单线,蓝色。2在表的左上角中选择全部,然后选择整个表。3单击表工具设计,然后选择边框和脱落。4打开对话框后,我们选择样式的外部框架线的样式,然后选择颜色作为绿

推荐 vivo手机拦截陌生来电教程汇总

如何拦截全部陌生来电如果您使用的是Vivo手机,请参阅以下:1拒绝一个未知数:长时间按此号码将其添加到黑名单中;-长时间按一定的数字---仅加入黑名单。您也可以输入“+”图标检查或手动输入的Ibutton-utitility-tool-tool-tool-tool-tool-tool-harassmentintercept-back-lack-click。将联系人添加到黑名单后,如果联系人致电您,则说“您

推荐 数码产品全解析:类型及功能大盘点

数码产品都包括什么数字产品是指通常是数字技术或数字生产的产品。他们使用数字技术。该信息易于传输和存储,并执行情报的兴趣。特别是,数字产品包括以下类型:**计算机类型:计算机类型2**手机和通信产品**-智能手机在人们的日常生活中至关重要。他们仅与语音通话和短信进行通信。互联网访

推荐 计算机数值三大概念解析

数字计算机数值中有哪3个概念?在计算机数值之间,三个概念:数字,基数和重量的一部分。数字:代表基本数字值大小的数值值的不同数字符号。十进制系统中有10个数字:0、1、2、3、4、5、6、7、8、9基础:用于价值的数字数量。基数二进制为2,x小数。重量重量:尺寸值代表值中的1的1例如,十进