数码管驱动与程序设计精.ppt
数码管驱动与程序设计第1页,本讲稿共21页 目 录 LED数码管数码管 数码管驱动电路数码管驱动电路 段码表的生成段码表的生成 数码管的动态扫描显示数码管的动态扫描显示 数字符号与数值的关系数字符号与数值的关系 第2页,本讲稿共21页 LED数码管的内部结构单个单个LED数码管数码管 单个数码管就是用单个数码管就是用8个独立的个独立的LED发光二极管按照发光二极管按照“日日”字形排列起来的。字形排列起来的。在实际应用中,一般会将在实际应用中,一般会将8个个LED的阳极或者阴极并联在一起组成数码管。的阳极或者阴极并联在一起组成数码管。由此可见由此可见,一个数码管至少有,一个数码管至少有9个引入端,其中个引入端,其中ah被定义为段选端,并联在一起的公共端被定义为段选端,并联在一起的公共端com被被定义为位选定义为位选 端。端。8个独立的个独立的LED发光二极管发光二极管abcdefghCOM COM abcdefgh共阴共阴:阴极并联:阴极并联 共阳共阳:阳极并联:阳极并联 a b c d e f g h 为了方便地控制数码管为了方便地控制数码管的每个笔段,相应地将数的每个笔段,相应地将数码管的每个笔段分别命名码管的每个笔段分别命名为为ah。第3页,本讲稿共21页 LED数码管的工作原理 abcdefghGND+5V abcdefgh共阴极数码管共阴极数码管 共阳极数码管共阳极数码管 笔段发光:笔段发光:位选端输入低电平位选端输入低电平0;段选端输入高电平段选端输入高电平1。a b c d e f g h a b c d e f g h 笔段发光:笔段发光:位选端输入低电平位选端输入低电平1;段选端输入高电平段选端输入高电平0。COM COM 1000000010000000通过控制笔段发光,数码管可以通过控制笔段发光,数码管可以显示数字显示数字09,以及一些字母符号,以及一些字母符号等。等。第4页,本讲稿共21页 单个共阳极数码管LN3161BSabcdefghcom com abcdefghVcc P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0LN3161BS引脚结构图引脚结构图它有它有10个管脚,个管脚,2个内部相连的个内部相连的com端端1和和6,8个位选端。个位选端。LN3161BS测试电路测试电路将段选端将段选端ah连接到单片机的连接到单片机的P0口,则通过程口,则通过程序即可控制笔段的亮灭。序即可控制笔段的亮灭。与单片机相连与单片机相连 R8 1kR7 1kR6 1kR5 1kR4 1kR3 1kR2 1kR1 1k 一个数码管只能显示一个数码管只能显示1位数字,如果要位数字,如果要 显示多位数字怎么办?显示多位数字怎么办?方法一:将多只单个数码管并接在一起。方法一:将多只单个数码管并接在一起。缺缺 点:点:4位并列的数码管就需要位并列的数码管就需要4 8=32根段根段 选信号,管脚过多,连线复杂。选信号,管脚过多,连线复杂。方法二:方法二:动态扫描方式动态扫描方式进行数码管显示。进行数码管显示。优优 点:不增加段选信号线,利用人眼的视觉暂点:不增加段选信号线,利用人眼的视觉暂 留效应,使数字轮流显示来实现。留效应,使数字轮流显示来实现。1001100110011001abcdefghcom com abcdefgh第5页,本讲稿共21页 4位动态数码管351012471168912COM1 COM2 COM3 COM4351012471168912COM1 COM2 COM3 COM4LN3461AS四位动态共阴数码管内部结构四位动态共阴数码管内部结构 LN3461BS四位动态共阳数码管内部结构四位动态共阳数码管内部结构 段段 选选 端端 复复 用用段段 选选 端端 复复 用用 采用段选端复用的方法,仅需采用段选端复用的方法,仅需12个个 管脚。管脚。两者外型尺寸大小、管脚的排列顺两者外型尺寸大小、管脚的排列顺 序和名称完全一样。序和名称完全一样。4位数码管管脚排列图位数码管管脚排列图 第6页,本讲稿共21页 目 录 LED数码管数码管 数码管驱动电路数码管驱动电路 段码表的生成段码表的生成 数码管的动态扫描显示数码管的动态扫描显示 数字符号与数值的关系数字符号与数值的关系 第7页,本讲稿共21页 TinyView数码管电路组成 TinyView 数码管电路数码管电路 4位共阳数码管位共阳数码管LN3461BS限流电阻限流电阻PNP型三极管型三极管单片机单片机I/O口驱动能力不够,增加口驱动能力不够,增加三极管以提高三极管以提高com口的电流驱口的电流驱动能力动能力与单片机相连与单片机相连第8页,本讲稿共21页 目 录 LED数码管数码管 数码管驱动电路数码管驱动电路 段码表的生成段码表的生成 数码管的动态扫描显示数码管的动态扫描显示 数字符号与数值的关系数字符号与数值的关系 第9页,本讲稿共21页 笔段与数值的对应关系a b c d e f g h+5V hgfedcba共阳极数码管共阳极数码管 11111110数码管有数码管有8个笔段,每个笔段有亮和灭两种个笔段,每个笔段有亮和灭两种状态,则每个数码管有状态,则每个数码管有28=256种显示组合,种显示组合,去掉去掉“点(点(h)”,其余,其余7个笔段有个笔段有27=128种种显示组合。显示组合。笔段数值对应关系表笔段数值对应关系表笔段笔段hgfedcba数值数值0 x7f0 xbf0 xdf0 xef0 xf70 xfb0 xfd0 xfe11111101111110111111011111101111110111111011111101111111假设将假设将ah对应对应8位二进制数的位二进制数的07位:位:第10页,本讲稿共21页 七段共阳极数码管段码表 数字数字hgfedcba数值数值a b c d e f g h 假设将假设将ah对应对应8位二进位二进制数的制数的07位:位:0110000000 xC01111110010 xF92101001000 xA43101100000 xB04100110010 x995100100100 x926100000100 x827111110000 xF88100000000 x809100100000 x90A100010000 x88b100000110 x83C110001100 xC6d101000010 xA1E100001100 x86F100011100 x8E第11页,本讲稿共21页 实验1TinyView段码表生成8个开关控制数码管的个开关控制数码管的8个显示段,个显示段,JP1与与JP36的的segAsegH连接连接将将JP36的的com连接到与连接到与K9相连的相连的JP1位选控制开关位选控制开关 8个段选控制开关个段选控制开关 当位选控制开关当位选控制开关K9拨拨到位置到位置0时,三极管导通,时,三极管导通,com1被拉到高电平,被拉到高电平,K1K8对段选端的控制才有效。对段选端的控制才有效。假设将假设将K1K8对应对应8位位二进制数的二进制数的07位,位,通过通过实验验证:笔段数值对实验验证:笔段数值对应关系表和七段共阳极应关系表和七段共阳极数码管段码表。数码管段码表。第12页,本讲稿共21页 实验24位数码管显示1234实验分析:只要求在实验分析:只要求在4位数码管上显示位数码管上显示1234,但并没有要求在同一时间显示数字。,但并没有要求在同一时间显示数字。实现方法:每次只让一个数码管显示。将与实现方法:每次只让一个数码管显示。将与K9相连的相连的JP1先与先与JP36中的中的com1相连,拨动相连,拨动K1K8在第在第1个数码管上显示正确的数字;然后将个数码管上显示正确的数字;然后将K9拨到控制拨到控制com2,依此类推,实现在依此类推,实现在4个数码管上个数码管上分别显示分别显示1234。实验步骤:实验步骤:第第1个数码管显示个数码管显示1;第第2个数码管显示个数码管显示2;第第3个数码管显示个数码管显示3;第第4个数码管显示个数码管显示4。根据段码表,拨到显示字符根据段码表,拨到显示字符“1”的位置的位置1111 1001与与com1相连相连 根据段码表,拨到显示字符根据段码表,拨到显示字符“2”的位置的位置1010 0100与与com2相连相连 根据段码表,拨到显示字符根据段码表,拨到显示字符“3”的位置的位置1011 0000与与com3相连相连 根据段码表,拨到显示字符根据段码表,拨到显示字符“4”的位的位置置1001 1001与与com4相连相连 好像有点投机取好像有点投机取巧,对实际有什巧,对实际有什么作用呢么作用呢第13页,本讲稿共21页 目 录 LED数码管数码管 数码管驱动电路数码管驱动电路 段码表的生成段码表的生成 数码管的动态扫描显示数码管的动态扫描显示 数字符号与数值的关系数字符号与数值的关系 第14页,本讲稿共21页 数码管的动态扫描显示实验电路 与与P1口相连,相当于口相连,相当于K1K8位置位置分别与分别与P3.0、P3.1、P3.2、P3.3相连,替代手动拨插连接它们的引相连,替代手动拨插连接它们的引线线动态扫描动态扫描:每次只有一位数码管显示,即在实际操作过程中数字是轮流显示的,但只要轮流:每次只有一位数码管显示,即在实际操作过程中数字是轮流显示的,但只要轮流操作的速度达到一定的范围,人眼看到的将是整体显示的效果。操作的速度达到一定的范围,人眼看到的将是整体显示的效果。第15页,本讲稿共21页 数码管的动态扫描显示程序实现.AREAHOME(ABS,CODE).ORG 0 x0000Start:MOV P1,#0 xF9 ;等效:将K1K8拨到显示字符“1”的位置CLR P3.0 ;等效:将com1连接到K9(0电平)ACALL Delay ;延时SETB P3.0 ;等效:拔掉com1的连接线MOV P1,#0 xA4 ;等效:将K1K8拨到显示字符“2”的位置CLR P3.1 ;等效:将com2连接到K9(0电平)ACALL Delay ;延时SETB P3.1 ;等效:拔掉com2的连接线MOV P1,#0 xB0 ;等效:将K1K8拨到显示字符“3”的位置CLR P3.2 ;等效:将com3连接到K9(0电平)ACALL Delay ;延时SETB P3.2 ;等效:拔掉com3的连接线MOV P1,#0 x99 ;等效:将K1K8拨到显示字符“4”的位置CLR P3.3 ;等效:将com4连接到K9(0电平)ACALL Delay ;延时SETB P3.3 ;等效:拔掉com4的连接线SJMP Start;返回Start,循环执行程序在第在第1位数码管显示字符位数码管显示字符“1”在第在第2位数码管显示字符位数码管显示字符“2”在第在第3位数码管显示字符位数码管显示字符“3”在第在第4位数码管显示字符位数码管显示字符“4”0 xF9:1111 1001 字符字符“1”的数值的数值 将将0 xF9送往送往P1口,即数码管的段选口,即数码管的段选端端segAsegHP3.0置置0,三极管,三极管Q11导通,导通,com1被拉高,第被拉高,第1位数码管将显位数码管将显示字符示字符“1”延时长短:在保证数码管显示亮延时长短:在保证数码管显示亮度的前提下尽量短度的前提下尽量短 P3.0置置1,三极管,三极管Q11关闭,第关闭,第1位数码位数码管的所有笔段全部熄灭管的所有笔段全部熄灭 第第1位数码管显示位数码管显示“1”熄灭第熄灭第1位数码管位数码管第第2位数码管显示位数码管显示“2”熄灭第熄灭第2位数码管位数码管第第3位数码管显示位数码管显示“3”熄灭第熄灭第3位数码管位数码管第第4位数码管显示位数码管显示“4”熄灭第熄灭第4位数码管位数码管流程图流程图 10011111100111110110第16页,本讲稿共21页 数码管的动态扫描显示实验现象人眼看到的最终效果:人眼看到的最终效果:第第1位数码管显示位数码管显示“1”熄灭第熄灭第1位数码管位数码管第第2位数码管显示位数码管显示“2”熄灭第熄灭第2位数码管位数码管第第3位数码管显示位数码管显示“3”熄灭第熄灭第3位数码管位数码管第第4位数码管显示位数码管显示“4”熄灭第熄灭第4位数码管位数码管流程图流程图 abcdefghcom1 com2 com3 com4 动态扫描动态扫描:每次只有一位数码管显示,即:每次只有一位数码管显示,即在实际操作过程中数字是轮流显示的,但只要在实际操作过程中数字是轮流显示的,但只要轮流操作的速度达到一定的范围,人眼看到的轮流操作的速度达到一定的范围,人眼看到的将是整体显示的效果。将是整体显示的效果。第17页,本讲稿共21页 目 录 LED数码管数码管 数码管驱动电路数码管驱动电路 段码表的生成段码表的生成 数码管的动态扫描显示数码管的动态扫描显示 数字符号与数值的关系数字符号与数值的关系 第18页,本讲稿共21页 数字符号的意义 1?1 个个2?2 个个对小孩而言,只有将数字字符和具体的事对小孩而言,只有将数字字符和具体的事物联系起来,才能真正理解数字的含义,物联系起来,才能真正理解数字的含义,对机器而言同样如此对机器而言同样如此。数字符号只有和具体的事物联系起来才有意义,否则将什么也不是。数字符号只有和具体的事物联系起来才有意义,否则将什么也不是。第19页,本讲稿共21页 让单片机能够识别数字字符在上一个实验中,显示了在上一个实验中,显示了“1234”,但单片机并,但单片机并“不知道不知道”显显示的示的“1234”是什么意思?是什么意思?如何让单片机如何让单片机“知道知道”这些数字符号呢?这些数字符号呢?在数字字符和数值之间建立对应的关系在数字字符和数值之间建立对应的关系。比如,数字比如,数字“1”和数值和数值“0 xF9”之间的对应关系,即数值之间的对应关系,即数值“0 xF9”在数码管上显示的符号就是数字在数码管上显示的符号就是数字“1”。“段码表段码表”既建既建立了数字与数值之间的这种联系。立了数字与数值之间的这种联系。如何用程序来实现呢?如何用程序来实现呢?将这些无序的数据列成表格将这些无序的数据列成表格。如:。如:对对Table表格的数据,可以用指令表格的数据,可以用指令“MOVC A,A+DPTR”查找,其所查的查找,其所查的表地址是由表地址是由“DPTR”寄存器(寄存器(16位)和位)和A寄存器(寄存器(8位)相加而来,所以可以位)相加而来,所以可以将将DPTR的数值固定在的数值固定在Table不动,而用不动,而用A寄存器做查表指针。当寄存器做查表指针。当A 的数值为的数值为09时,时,其所指向的地址偏移量正好是数值所对应的数字符号。其所指向的地址偏移量正好是数值所对应的数字符号。Table:.DB 0 xC0,0 xF9,0 xA4,0 xB0,0 x99;字符:0、1、2、3、4.DB 0 x92,0 x82,0 xF8,0 x80,0 x90 ;字符:5、6、7、8、9第20页,本讲稿共21页 数字字符获取子程序范例 从从“数字字符与数值的关系数字字符与数值的关系”可知,使用查表法即可找到与数字符号可知,使用查表法即可找到与数字符号相对应的数值。相对应的数值。Get_Segment_Code:ANL A,#0 x0F ;屏蔽高屏蔽高4位以便位以便调调出字符出字符 MOV DPTR,#Table ;DPTR取表格首地址取表格首地址MOVC A,A+DPTR ;查查表取得字符真表取得字符真值值RETTable:.DB 0 xC0,0 xF9,0 xA4,0 xB0,0 x99,0 x92,0 x82,0 xF8,0 x80,0 x90;09字符表字符表(数字)字符获取子程序范例:(数字)字符获取子程序范例:第21页,本讲稿共21页