bc7277(键盘数码管驱动IC)

bc7277(键盘数码管驱动IC)
bc7277(键盘数码管驱动IC)

BC7277

9位LED数码管及16键键盘接口芯片

● 可驱动9位共阴式数码管或72只LED

● 无需外围器件

● 9个显示位均可单独闪烁显示

● 单独LED闪烁

● 闪烁速度可调

● 段寻址可以单独控制任意显示段

● 译码显示时小数点显示不受显示更新影响

● 可直接访问显示寄存器(显示特殊字符)

● 16键键盘支持任意组合键和长按键

● 标准SPI串口,可用2线、3线或4线方式

● SSOP24小体积封装

● 与其它BC727X系列芯片软件兼容,软件无需修改,

即可用于其它BC727X芯片

摘要

BC7277具有9位数码管显示管理功能,无需外围器件,即可以构成9位(72段)LED显示和键盘驱动。因为支持段寻址,可以独立地控制每一个显示段,也非常适用于独立的LED。BC7277支持闪烁显示功能,且闪烁速度可调,每一位均可独立控制闪烁属性,而前8位更可以独立控制每一段的闪烁,在使用独立的LED指示灯时,非常有用。

BC7277内部提供译码功能,用户可以直接向译码寄存器写入数值,而得到相应数字显示。译码显示时,该位的小数点显示不受影响,用户只需更新显示数据,而无需考虑小数点的问题,尤其对于将小数点用作单独指示灯的用户,使用非常简便。同时,也支持直接写入显示寄存器,可以完成一些特殊字符的显示。

键盘可最多支持16键,芯片内含去抖动电路,可以支持任意的组合键,长按键,可以支持各种常开或常闭开关。

BC7277采用串行接口,可以直接与标准SPI接口连接,通讯速率可达64Kbps,用户可以充分利用微处理器上硬件SPI接口资源,当使用中断方式时,可使显示部分的通讯几乎不占用主程序时间。BC7277的SPI接口可以接为2线、3线或4线方式。可以通过CS片选信号,在一个SPI总线上使用多个器件,而在MCU I/O口资源紧张时,片选CS线可以直接接地,其内部独特的SPI口计时复位逻辑可以使得即便没有片选信号的接口清零功能,也可以

保障通讯不会出错。

极限参数:(注:超出所列范围有可能造成器件永久损坏)

储存温度-65至+150°C

工作温度-40至+85°C

任意脚对地电压-0.5至6.0V

电特性:(除特别说明外,T A=25°C, Vcc=5.0V)

参数最小值典型值最大值单位备注

电源电压 2.7 5.0 5.5V

工作电流 4.9mA

输入低电平 1.4V

输入高电平 3.7V当Vcc=3V时,为1.9V

输出低电平0.1V

输出高电平 4.4V

显示扫描周期15mS

引脚说明:

名称序号说明

VDD1正电源端,电压范围2.7-5.5V

MOSI2SPI口数据输入端,接MCU的SPI

口数据输出端移位寄存器数据

线

接地端移位寄存器时钟线

GND3

CS4片选端,低电平有效

A-DP5-12A段-DP段段驱动

DIG0-DIG813-21SPI时钟,由MCU输出

KEY22按键状态指示,每当按键状态变化时,KEY的电平会发生翻转MISO23从机数据输出,BC7277数据输出,接MCU的SPI数据输入

CLK24移位寄存器锁存脉冲,每8个SCLK脉冲,会输出一个STR脉冲内部寄存器

BC7277内部具有23个寄存器,包括16个显示寄存器,以及14个特殊寄存器。地址范围为00H-1DH,其中00H-08H为显示寄存器,其余为特殊寄存器。

地址内容缺省值说明

00H第0位显示寄存器FFH显示寄存器每一位对应1个显示段

地址内容缺省值说明

01H第1位显示寄存器FFH

02H第2位显示寄存器FFH

...第3-7位显示寄存器FFH

07H第8位显示寄存器FFH

...无效寄存器...此地址范围对BC7277无效

10H第0位段闪烁控制寄存器00H每一位对应一个显示段,1=闪烁,0=不闪烁11H第1位段闪烁控制寄存器00H

.........

17H第7位段闪烁控制寄存器00H

18H0-7位位闪烁控制寄存器00H bit0-bit7分别对应显示位0-7,1=闪烁,0=不闪

19H第8位位闪烁控制寄存器00H只有bit0有效,对应显示位8

1AH闪烁速度控制寄存器10H值越小,闪烁速度越快

1BH译码寄存器-写入该寄存器的数据被译码后更新显示寄存

1CH段寻址寄存器-写入该寄存器可单独控制各显示段状态

1DH群操作寄存器FFH写入该寄存器的值,将被同时写入到所有的

显示寄存器,可用于清除显示等操作

显示寄存器:地址00H-08H

显示寄存器直接映射各个LED显示段,数码管上的显示段与各位的

映射关系为如图:

D7D6D5D4D3D2D1D0

DP G F E D C B A

用户可以直接改变显示寄存器的内容,从而改变显示,这主要用在需要显示译码表中没有的特殊字符的时候。

显示寄存器中,如某一位被置0,则该显示段被点亮。复位后,所有显示寄存器的内容被置为FFH。

段闪烁控制寄存器:地址10H-17H

和显示寄存器类似,段闪烁控制寄存器也采用位映射的方式控制显示段的闪烁,每一个位对应一个显示段,映射的方法同显示寄存器。

当段闪烁控制寄存器中相应的位为1时,对应的显示段具有闪烁属性。闪烁仅发生在该显示段被点亮的情况下,如该显示段未点亮(相应显示寄存器位为1),则该显示段没有任何显示。当闪烁的显示段被清除(相应显示寄存器位被置1)时,其闪烁属性并不受影响,当该显示寄存器位再次被置为0时,对应的显示段将依然为闪烁显示。

复位时,段闪烁控制寄存器被全部清零(不闪烁)。

位闪烁控制寄存器:地址18H, 19H

位闪烁控制寄存器控制显示位的整体闪烁属性,寄存器内每一个位对应一个显示位,对应关系如下表

19H18H

D7D6D5D4D3D2D1D0D7D6D5D4D3D2D1D0-------位8位7位6位5位4位3位2位1位0

显示位数据为1时,该位为闪烁显示。闪烁仅发生在该显示位有显示内容的情况下,如该显示位没有显示(显示寄存器所有位为1),则不会有任何显示。复位时,位闪烁控制寄存器被置为00H(不闪烁)。

闪烁速度控制寄存器:地址1AH

BC7277的闪烁速度可调,只需要通过改变闪烁速度控制寄存器,就可以方便地控制闪烁的速度。闪烁速度控制寄存器中的值越大,闪烁速度越慢,相反值越小闪烁速度越快。在复位后,该寄存器的值为10H,在这个值下面,其闪烁频率大约为2Hz。

译码寄存器:地址1BH

通过译码寄存器,用户可以通过送入数值,直接得到数字显示,省去了用户自己编制解码表的烦恼。写入译码寄存器的数据格式如下:

D7D6D5D4D3D2D1D0

A3A2A1A0d3d2d1d0

,即显示位,为0000时,译码结果显示在第0位,0011时,则显示在第3位上。d3:d0为待显示的数值。译码表如下:

d3d2d1d0d3:d0 (16进制值)显示

00000

00011

d3d2d1d0d3:d0 (16进制值)显示

00102

00113

01004

01015

01106

01117

10008

10019

1010A

1011B

1100C

1101D

1110E

1111F

通过译码寄存器更新显示内容,将不影响小数点位,即DP位的状态将保持不变。通过这种设计,当显示有小数点的数据,或在将小数点用作其它指示灯的情况下,数据的更新将非常方便,因为可以不用考虑重新刷新小数点显示。小数点的控制,可以通过段寻址指令来完成。

段寻址寄存器:地址1CH

BC7277可以实现以段(单独LED)为单位的显示控制,这是通过段寻址寄存器来实

现的。

通过给每个显示段(LED)分配一个地址,可以通过段寻址寄存器控制每个显示段的点亮和关闭。每个显示段的地址如下:

显示位DP G F E D C B A

007H06H05H04H03H02H01H00H

10FH0EH0DH0CH0BH0AH09H08H

217H16H15H14H13H12H11H10H

31FH1EH1DH1CH1BH1AH19H18H

427H26H25H24H23H22H21H20H

52FH2EH2DH2CH2BH2AH29H28H

637H36H35H34H33H32H31H30H

73FH3EH3DH3CH3BH3AH39H38H

847H46H45H44H43H42H41H40H

写入段寻址寄存器的数据格式如下:

D7D6D5D4D3D2D1D0

Seg A6A5A4A3A2A1A0

06。Seg为写入该段的数据,当Seg为0时,该LED被点亮,Seg为1时,LED熄灭。

全局操作寄存器:地址1DH

全局操作寄存器是个特殊的寄存器,所有写入该寄存器的值,都会被同时复制到所有的显示寄存器中。对于需要清屏或者点亮所有LED的操作,可以通过向该寄存器写入FFH或者00H轻易地实现。注意,写入该寄存器,并不会改变闪烁控制等其它寄存器,所以如果写入前有显示段或显示位被置为闪烁显示,即便对全局操作寄存器写入FFH清除显示,原来闪烁的显示段也仍然维持闪烁显示的属性,如果再次被点亮,依然会以闪烁方式显示。

串行接口

BC7277采用SPI串行接口,可以连接标准的4线SPI接口,如果不使用键盘,可以不接MISO口,当不需要片选时,CS可直接接地,这样最少只需2跟口线,即可完成与BC7277的接口。接口速率最高为64Kbps,可以直接与多种MCU的硬件串行接口相连,充分利用控制器的硬件资源,节省处理器时间。对没有SPI接口资源的MCU,也可用非常短的代码用

I/O口实现其通讯协议。

一、数据格式

BC7277的指令都是以两个字节为一个单位。这两个字节第一个字节为寄存器地址,第

指令字节的低5位A4-A0为寄存器地址,有效地址范围为00H-1DH. 如果输入的地址范

发送一个伪指围超出了有效范围,则该指令会被忽略,有时可以利用这个特性,向BC7277‘

令,目的只在于得到输出的键盘映射值。

在接收指令的同时,BC7277会在MISO引脚上输出16bit的数据,该数据为键盘的映射,用户可以通过该数据获取键盘的状态。输入和输出为同时进行,每次CLK脉冲到来时,数

据在CLK脉冲的低电平期间被BC7277平均采样,同时输出键盘映射数据,MCU一侧使用

硬件SPI接口时,应该设置成在CLK的上升沿采样MISO数据。详见时序图。

按键处于开路状态时,对应的键盘映射为1,导通状态时,对应的映射值为0. 换而言之,如果没有连接键盘,则输出的值将为0xFFFF. 键盘映射数据位和键盘按键间的对应关系如下表,请参考后文中键盘部分的电路图。

DIG3DIG2DIG1DIG0

DIG4S3S2S1S0

DIG5S7S6S5S4

DIG6S11S10S9S8

DIG7S15S14S13S12

当使用CS片选信号时,键盘映射值会在CS信号的下降沿得到更新,因此每次输出的键盘映射值均为当时最新的键盘状态。当CS信号被直接接地时,键盘映射值只在每次指令传

输的结尾时得到更新,因此每次每次输出的键盘映射值,实际上是上一个指令传送结束时的键盘状态,如果两个指令的间隔时间比较长,则输出的数据可能并不能及时反应键盘的状态。这时如果想取得最新的键盘状态,可以连续发送两个指令或者伪指令。

二、时序

接口,可以连接为标准4线的方式,BC7277可以连接标准的同步串行接口,比如SPI

包括数据(MOSI), 时钟(CLK)和片选(CS). 当MCU的I/O口线紧张的时候,也可以将CS 直接

接地。如果不使用键盘,还可以省去MISO的连接,这时只需要2跟口线MOSI和CLK,即可完成与MCU的接口。

对于使用硬件SPI 接口的情况,请设置SPI 接口为如下参数: CLK 空闲状态为高电平, 数据在第一个时钟沿(下降沿)改变,在第二个时钟沿(上升沿)被采样,串口速率≤64Kbps.

如果使用I/O 口模拟SPI 接口,因为数据在CLK 低电平期间被BC7277平均采样,因此需要在将CS 置为低电平前将数据线设置好相应的高低电平,并维持数据线稳定至少半个时钟周期以上(T hold >?T).

图中,T 1为指令中CS 下降沿到第一个CLK 时钟脉冲下降沿的时间,此时间要求大于?个时钟周期T, 当使用硬件SPI 接口时,从数据写入SPI 接口发送寄存器到第一个时钟脉冲输出,一般会自动加入约1个时钟周期的延时,用户使用时程序中先将CS 置低电平,然后写入SPI 接口寄存器即可,对此延时可不予考虑,但如果所用MCU 的SPI 接口没有此特性,或者使用软件模拟SPI 接口,则需人工加入此延时。

T 2为一个指令中,寄存器地址字节和数据字节之间的延时,此时间要求大于1个时钟周期T. 当使用硬件SPI 接口时,一般硬件会自动在两个传送的字节之间加入此延时,如果所用MCU 不能产生此延时,或使用软件模拟SPI 接口时,则需人工加入延时。

T 3为最后一个时钟脉冲上升沿到CS 上升沿的时间,要求大于?个时钟周期T. 当使用硬件SPI 接口时,如果用户程序在等待SPI “”接口状态变为发送完成状态后再将CS 置1,则此时间可由硬件保证,因为时钟脉冲的最后一个上升沿到整个时钟周期结束正好还有?个时钟 周期。如果所用SPI 接口不符合该特性,或使用软件模拟SPI 接口,则该延时需要人工加入。

T4为前一个CS 信号的上升沿到下一个CS 信号的下降延之间的延时,要求大于?个时

T

T hold

T 1

T 2

T 3

T 4

钟周期T.

在每个指令的2个字节之间,必须保持CS为低电平状态,CS可以在每个指令之间置为高电平。CS的作用有2个,1个是在系统中有多个SPI器件时作为片选信号,另外一个作用是在CS的下降延,BC7277内部会对SPI串口寄存器做复位操作,保证数据传输正确。每个指令传送完成后,恢复CS为高电平的操作并不是必须的,当连续传送批量指令时,可一直维持CS为低电平,在所有指令传送完成后再恢复为高电平。

三、接口复位机制

SPI口必须有某种机制使得串行接口可以被复位,以防当因某种原因时钟和数据线失去同步时,造成传送的数据混乱。当使用CS信号时,接口在CS的下降沿被复位。

具有独特的时间复位机制,此机制生效时,当时钟线上静当CS直接接地时,BC7277“

音超过2个显示扫描周期(约30mS)时,SPI接口就会被复位。也就是说,当CLK引脚上”

无电平变化超过2个扫描周期,当前所接收的数据将被抛弃,下一个CLK脉冲对应的数据将作为新指令的MSB。

在时间复位机制下,即便前一个指令因为某种因素造成了时钟与数据不同步(比如主机发送了16个时钟脉冲,数据已经传送完,但BC7277只接收到了15个时钟脉冲,还在继续等待最后一个数据位),只要后面一个双字节指令和前面一个指令之间的时间间隔大于两个扫描周期(期间时钟线CLK上须没有时钟脉冲),BC7277就会对内部接收缓存器复位,这样后面一个指令仍可以正确被接收,而不会将后一个指令的最高位当作前一个指令的最后一位而使错位持续下去,造成不可预估的后果。

此时间复位机制,只有在系统上电时CS处于低电平的情况下才会启动,如果当

信号静系统上电时CS为高电平,则时间复位机制不会启动,BC7277不会检测CLK“音的时间,只有CS信号可以将SPI接口复位。

时间复位机制生效的情况下,CS片选端依然具有作用,即如果CS变为高电平,

BC7277将不会接收任何数据,同时在CS信号的下降沿,BC7277的串口缓存器仍然将被复

外围电路

BC7277外围电路简单,只需外接少量限流电阻,就可以构成多位LED显示电路。典型的电路如下:

限流电阻,可以用下面近似公式计算:

R = 67*(VCC-U LED) – 100

正向管压降。电压单位为伏,结果电阻其中,VCC为BC7277电源电压,U LED为LED‘’

单位为欧姆。当VCC=5V,U LED=1.85V,可得结果R=111Ω,可取近似值100Ω;当‘’

VCC=3.3V时,计算结果为-2.85Ω,取近似值为0Ω,即限流电阻可以省略;当VCC=3V时,计算结果R=-23Ω,表明此时限流电阻可以省略,且在此条件下使用亮度会有所降低。

一、滤波电路

当电路具有以下几种情况之一:使用于高干扰环境、使用开关电源供电,以及电路中有模拟电路部分的情况,最好在BC7277的供电电路中,串入如下的滤波电路,一方面减小干扰可能对芯片正常工作的影响,另一方面也可滤除显示电路给模拟电路带来的噪音。

二、串行接口电路

BC7277采用SPI接口,接口速率可以达到64Kbps,可以使用MISO, MOSI, CLK, CS 4

线连接标准的SPI接口(见典型应用图), 不用键盘时最低可以接为2线方式,将CS直接接地,只使用时钟线和数据线。

一般MCU上SPI接口均可设置不同的工作模式,与BC7277相连时,应该设置成主机(Master)模式,CLK空闲时高电平,数据在第一个时钟沿传递,在第二个时钟沿采样。接口

的时钟频率,必须在64KHz以下。

因为接口部分的高电平最低输入电压在电源电压为5V时为3.7V, 因此,如果BC7277的电源电压为5V, 无法直接与3V系统接口,但因BC7277本身可工作在3V电源电压下,因此当系统MCU为3V或3.3V供电时,建议BC7277也采用相同的供电电压,如果需要用更高

电压驱动数码管,可以使用后文中驱动大尺寸数码管的电路,仅在驱动部分使用更高电压。

“”

如果确需令BC7277工作于5V,需要外加电平转换电路。74HCT的逻辑电路,当电源

电压为5V时,高电平最低输入电压为2V,可以直接接受3V系统的输入。在通讯线路中串

入这样的缓冲器,即可解决电平匹配的问题。如图:

三、键盘电路

16个键盘接成4x4的矩阵,接在DIG0-DIG7上,连接方式见下图。

矩阵的行和列上,都需要串入电阻,电阻的作用在于防止位驱动输出之间的短路,4.7K 的阻值可以适用于大多数情况。

因为BC7277采用键盘映射寄存器反映每个按键的状态,因此可以适用于各种常开和常闭开关,而不限于常用的常开按键。不过因为上电时系统复位状态键盘映射寄存器为

0xFFFF, 对应所有键盘开路状态,因此如果按键中有的采用的是常闭式,则上电一开始,会

有一次KEY引脚的电平跳变。

KEY引脚在上电时可以是任意状态,键盘矩阵每个扫描周期(约15ms)会被扫描一遍。换而言之,KEY最短的变化周期,为一个扫描周期。

KEY在每次键盘状态发生变化时电平跳变一次,但不等于每次电平变化对应一个按键的变化。如果在一个扫描周期内,同时有2个或2个以上按键的状态发生了改变,KEY仍然只会发生一次电平的变化,即一次KEY引脚电平变化有可能对应多个按键的同时变化。KEY 不是键盘状态的反映,用户应该在意KEY上电平的变化,而不是该引脚具体为高电平还是低电平,因为同样的电平可以对应任何的键盘状态,没有按键时,KEY可以是高电平或低电平。举例说明:如果系统在某一时刻所有按键为开路状态,且KEY电平为高电平;如果此时有两个按键同时(时间相差1个扫描周期以内)被按下变为短路状态,则KEY会变成低电平,过了一定时间,两个被按下的按键中的一个被释放重新变为开路状态,此时KEY会恢复成高电平,但此时对应的键盘状态为有一个键被按下,再过一段时间此按键也被释放,此时按键状态恢复成和初始状态一样,即所有按键均为开路状态,但此时KEY会再次发生电平翻转,变成低电平。最后键盘的状态和初始时刻一样,但KEY的状态由高电平变成了低电平。

程序流程

因为接口协议简单,而且很多新型单片机都带有内置的硬件SPI接口,因此,与BC7277的软件接口也非常容易实现。简单来说,可以分为三种方式:

?纯软件使用I/O口模拟

?使用硬件SPI接口,但使用查询方式

?使用硬件SPI接口,且使用SPI接口中断

因为数字显示往往是系统中对实时性要求最低的、同时也是优先级最低的任务,并不需要使用中断来做后台的SPI接口控制,因此,一般建议使用硬件SPI接口+查询方式的方案。

软件模拟方式流程图:

硬件SPI接口+查询方式流程图:

硬件SPI 接口+中断方式流程图:

(注: 流程图中省略了可能需要的在CS 下降延后和上升沿前的?T 延时)

“”注:在中断方式下,因为缓冲区的存在,发送一个指令子程序的调用和数据实际在SPI 口

“”上发出的时间会有不同步的问题,因此,不能如其它两种方式一样在发送一个指令子程序中控制CS ““片选信号的电平变化。比较好的方式是,在发送一个字节子程序中,检查如果当前SPI 口处于空闲状态,则先将CS 信号置低,然后将数据写入SPI 口发送寄存器开始发送。在SPI 口中断处理程序中,如果发现当前缓冲区已经为空,表示所有数据均发送完成,此时将CS “”恢

复为高电平。这个方式和在发送指令子

程序中控制CS

效果有所区别,在发送指令子程序中控制CS时,CS信号随每个指令都会跳变一次;

“”

中断方式下,CS则按指令组为跳变,每组连续发出的指令中间,CS都将维持在低电平,直至所有数据发送完成,才会恢复为高电平。

同样原因,在发送一个字节子程序中,无法返回读入的键盘映射数据。因此在使用中“”

断方式通讯时,在设置发送缓冲区的同时,还需要一个接收缓冲区,用来存放接收到的键盘映射数据。程序在SPI口发送完成中断处理子程序中,首先将接收寄存器的内容写入接收缓冲区,然后再将下一个待发送数据写入发送寄存器。

封装信息

BC7277有SDIP24和SSOP24两种封装,封装的尺寸分别如下:SSOP24封装尺寸

SDIP24封装尺寸

附录:

BC727X系列芯片

BC7275BC7276BC7277芯片封装DIP20/SSOP20DIP20/SSOP20SDIP24/SSOP24可驱动数码管位数58或169键盘接口无16键16键

数码管类型共阴共阳共阴

外接驱动不需要三极管和移位寄存器不需要驱动大尺寸数码管不可以可以不可以

数码管引脚图

七段数码管引脚图 《七段数码管引脚图》 数码管使用条件: a、段及小数点上加限流电阻 b、使用电压:段:根据发光颜色决定;小数点:根据发光颜色决定 c、使用电流:静态:总电流 80mA(每段 10mA);动态:平均电流 4-5mA 峰值电流 100mA 上面这个只是七段数码管引脚图,其中共阳极数码管引脚图和共阴极的是一样的,4位数码管引脚图请在本站搜索我也提供了,有问题请到电子论坛去交流. 数码管使用注意事项说明: (1)数码管表面不要用手触摸,不要用手去弄引角; (2)焊接温度:260度;焊接时间:5S (3)表面有保护膜的产品,可以在使用前撕下来。

这类数码管可以分为共阳极与共阴极两种,共阳极就是把所有LED的阳极连接到共同接点com,而每个LED的阴极分别为a、b、c、d、e、f、g及dp(小数点);共阴极则是把所有LED的阴极连接到共同接点com,而每个LED的阳极分别为a、b、c、d、e、f、g及dp(小数点),如下图所示。图中的8个LED分别与上面那个图中的A~DP各段相对应,通过控制各个LED的亮灭来显示数字。 那么,实际的数码管的引脚是怎样排列的呢?对于单个数码管来说,从它的正面看进去,左下角那个脚为1脚,以逆时针方向依次为1~10脚,左上角那个脚便是10脚了,上面两个图中的数字分别与这10个管脚一一对应。注意,3脚和8脚是连通的,这两个都是公共脚。 还有一种比较常用的是四位数码管,内部的4个数码管共用 a~dp这8根数据线,为人们的使用提供了方便,因为里面有4个数码管,所以它有4个公共端,加上a~dp,共有12个引脚,下面便是一个共阴的四位数码管

单片机驱动数码管显示

单片机驱动数码管显示实验报告 学校:三亚学院 专业名称:测控技术与仪器 班级: 1301班 姓名:刘金坤 日期: 2015/05/08

实验四单片机驱动数码管显示 一实验目的 1 学习单片机驱动数码管动态显示的电路设计和编程方法 二实验原理 1、单片机系统中常用的显示器有:发光二极管LED(Light Emitting Diode)显示器、液晶LCD(Liquid Crystal Display)显示器、CRT显示器等。LED、LCD显示器有两种显示结构:段显示和点阵显示。 七段数码管显示 为了显示数字或字符,必须对数字或字符进行编码。七段数码管加上一个小数点,共计8段。因此为LED显示器提供的编码正好是一个字节。字母一般用米字型。 编码表: 七段数码管对应八位由低到高:a,b,c,d,e,f,g,dp 例:数码管显示2则要点亮a,b,g,e,d段,对应的八位是01011011

数码管动态显示方式是将所有显示位的段选择线并联在一起,有统一的I/O资源来控制。各个数码管公共端也有I/O资源来控制,分时的选通各个数码管进行动态显示。每个瞬间只能选通一个数码管,人眼的暂留时间为0.1s,每个数码管的选通时间必须在0.1s以内,通常选择15ms~20ms。电路图见实验附图。 三实验内容 理解动态显示电路图,参考驱动程序,单片机P0口作段码输出控制,P1口作位码控制,使单片机驱动6个7段数码管输出实验当天年、月、日六位数字。 四、实验步骤 (1)单片机最小应用系统1的P0口接段码口a~h,P1口接位码口S1~S6。 (2)在KEIL软件下编写程序并调试,完成实验内容要求。 (3)下载程序,通过实验箱验证设计电路和编写的程序是否达到实验要求。 下载程序,通过实验箱验证设计电路和编写的程序是否达到实验要求。 五参考程序与电路 数码管动态显示电路图(数码管位选信号为高电平,段选信号为高电平)

四位共阴和共阳数码管的引脚介绍及检测方法概括

内部的四个数码管共用a~dp这8根数据线,为人们的使用提供了方便,因为里面有四个数码管,所以它有四个公共端,加上a~dp,共有12个引脚,下面便是一个共阴的四位数码管的内部结构图(共阳的与之相反)。引脚排列依然是从左下角的那个脚(1脚)开始,以逆时针方向依次为1~12脚,下图中的数字与之一一对应。 数码管使用条件: a、段及小数点上加限流电阻 b、使用电压:段:根据发光颜色决定;小数点:根据发光颜色决定 c、使用电流:静态:总电流 80mA(每段 10mA);动态:平均电流 4-5mA 峰值电流 100mA

上面这个只是七段数码管引脚图,其中共阳极数码管引脚图和共阴极的是一样的,4位数码管引脚图请在本站搜索我也提供了数码管使用注意事项说明: (1)数码管表面不要用手触摸,不要用手去弄引角; (2)焊接温度:260度;焊接时间:5S (3)表面有保护膜的产品,可以在使用前撕下来。 数码管测试方法与数字显示译码表

ARK SM410501K SM420501K 数码管引脚图判断 数码管识别 ARK SM410501K 共阳极数码管 ARK SM420501K 共阴极数码管 到百度搜索下,这两种数码管只有销售商,并无引脚图。 对于判断引脚,对于老手来说,很简单,可是对于新手来讲,这是件很难的事情,因为共阴、 共阳表示的含义可能还不太懂 ZG工作室只是将该数码管的引脚图给出,并让大家一起分享。 注:SM410501K 和SM420501K 的引脚排列是一模一样的。 这张图很明确给出该数码管的引脚排列。 数字一面朝向自己,小数点在下。左下方第一个引脚为1、右下方第二个引脚为5,右上方第一个引脚为6。见图所示。 其中PROTEL图中K 表示共阴、A表示共阳。 能显示字符的LED数码管(三) 常用LED数码管的引脚排列图和内部电路图 CPS05011AR(1位共阴/红色 0.5英寸)、SM420501K(红色 0.5英寸)、 SM620501(蓝色0.5英寸)、SM820501(绿色0.5英寸)

单片机控制数码管显示

单片机实训 项目:用单片机控制数码管显示及其应用班级: 应用电子技术二班 姓名:赵林旺 学号: 2008061532 时间:2010. 5. 21

用单片机控制数码管显示及其应用 一、实训目的 1. 通过用单片机控制数码管的静态显示,学会用单片机编程进行控制和8段共阳极数码管的使用方法,学会编写与调更复杂的程序,进一步熟悉单片机串行接口的使用,为以后打下基础。 2.在用可能的情况下制作数码管的使用电路,本次通过密码锁的制作,进一步熟悉单片机键盘接口和显示器接口技术,掌握独立式键盘结构下的程序设计思路和步骤。 3.通过本次实训提高汇编语言编程能力、识别元器件能力、单片机外围电路连接。同时加强理论联系实际的能力,提高学生的动手能力,培养学生之间团结协作能力和刻苦耐劳精神。 4.在日常生活中,可以看到采用八段LED数码管构成的显示屏。这里主要完成利用单片机控制数码管,实现静态显示与动态扫描移动显示。 二、实训器材 1. 面包板一片 2.AT89S52 三片 3. 共阳极8段LED数码管三个 4.40引脚的IC插座三个

5. 74LS164芯片 一片 6..+5V 电源 一个 7.510Ω、220Ω、1K Ω、10K Ω电阻 若干 8.晶体振荡器 若干 9.复位开关 若干 10电解电容22uF 、瓷片电容30pF 若干 11.发光二极管 若干 三 、实训原理图 1. 用单片机控制一个数码管依次显示数字0~9的硬件电路如A 图所示: p 1.01p 1.12p 1.23p 1.34p 1.45p 1.56p 1.67p 1.78R ST/VPD 9R X D/p 3.0 10TX D/p 3.111INT 0/p 3.212INT 1/p 3.313T0/p 3.414T1/p 3.515WR /p3.616R D /p3.717XT AL 218 XT AL 119Vss 20 p 2.0 21 p 2.122p 2.223p 2.324p 2.425p 2.526p 2.627p 2.728PSEN 29AL E/PR OG 30EA /Vp p 31p 0.732p 0.633p 0.534p 0.435p 0.336p 0.237p 0.138p 0.039Vcc 4089C 51 R 1R 2R 3R 4R 5R 6R 7R 8 a b f c g d e DP Y 1234567a b c d e f g 8 dp dp DPY_7-SE G_DP co m 510*8 89C51 +5 C 3 22u f C 230p f C 130p f Y1 12MH Z K1 R 910K + GN D +5+5 因为只控制一个数码管,选择采取一直点亮各段的静态显示方式,这种显示可以在较小的电流驱动下获得较高的显示亮度,且占用CPU 时间少,编程简单,便于显示和控制。 汇编语言的程序如下:

51单片机并行口驱动LED数码管显示电路及程序

51单片机并行口驱动LED数码管显示电路及程序 介绍利用51单片机的一个并行口实现多个LED数码管显示的方法,给出了利用此方法设计的多路LED显示系统的硬件电路结构原理图和软件程序流程,同时给出了采用51汇编语言编写程序。 1 硬件电路 多位LED显示时,常将所有位的段选线并联在一起,由一个8位I/O口控制,而共阴极点或共阳极点分别由另一个8位I/O口控制;也可采用并行扩展口构成显示电路,通常,需要扩展器件管脚的较多,价格较高。本文将介绍一种利用单片机的一个并行I/O口实现多个LED显示的简单方法,图1所示是该电路的硬件原理图。其中,74LS138是3线-8线译码器,74LS164是8位并行输出门控串行输入移位寄存器,LED采用L05F型共阴极数码管。 显示时,其显示数据以串行方式从89C52的P12口输出送往移位寄存器74LS164的A、B 端,然后将变成的并行数据从输出端Q0~Q7输出,以控制开关管WT1~WT8的集电极,然后再将输出的LED段选码同时送往数码管LED1~LED8。位选码由89C52的P14~P16口输出并经译码器74LS138送往开关管Y1~Y8的基极,以对数码管LED1~LED8进行位选控制,这样,8个数码管便以100ms的时间间隔轮流显示。由于人眼的残留效应,这8个数码管看上去几乎是同时显示。

<51单片机并行口驱动LED数码管显示电路> 2 软件编程 该系统的软件编程采用MCS-51系列单片机汇编语言完成,并把显示程序作为一个子程序,从而使主程序对其进行方便的调用。图2所示是其流程图。具体的程序代码如下:

<51单片机并行口驱动LED数码管显示程序>

七段数码管引脚图

由于很多多都需要这个数码管引脚图,于是今天专门用qq截了图,请大家记好引角的顺序 《七段数码管引脚图》 数码管使用条件: a、段及小数点上加限流电阻 b、使用电压:段:根据发光颜色决定;小数点:根据发光颜色决定 c、使用电流:静态:总电流 80mA(每段 10mA);动态:平均电流 4-5mA 峰值电流 100mA 上面这个只是七段数码管引脚图,其中共阳极数码管引脚图和共阴极的是一样的,4位数码管引脚图请在本站搜索我也提供了数码管使用注意事项说明: (1)数码管表面不要用手触摸,不要用手去弄引角; (2)焊接温度:260度;焊接时间:5S (3)表面有保护膜的产品,可以在使用前撕下来。 数码管测试方法与数字显示译码表

图 三、测试:同测试普通半导体二极管一样。注意!万用表应放在R×10K档,因为R×1K档测不出数码管的正反向电阻值。对于共阴极的数码管,红表笔接数码管的“-”,黑表笔分别接其他各脚。测共阳极的数码管时,黑表笔接数码管的vDD,红表笔接其他各脚。另一种测试法,用两节一号电池串联,对于共阴极的数码管,电池的负极接数码管的“-”,电池的正极分别接其他各脚。对于共阳极的数码管,电池的正极接数码管的VDD,电池的负极分别接其他各脚,看各段是否点亮。对于不明型号不知管脚排列的数码管,用第一种方法找到共用点,用第二种方法测试出各笔段a-g、Dp、H等。 uchar bit_secl=0x01; for(n=0;n<8;n++) //显示数字 {P0=bit_secl; P2=0x03;

delay_ms(1500); } return; } void display4(void) {uchar n; uchar bit_secl=0x01; for(n=0;n<8;n++) //显示数字{P0=bit_secl; P2=0x04; bit_secl=bit_secl<<1; delay_ms(1500); } return; } void display5(void) {uchar n; uchar bit_secl=0x01; for(n=0;n<8;n++) //显示数字{P0=bit_secl; P2=0x05; bit_secl=bit_secl<<1; delay_ms(1500); } return; } void display6(void) {uchar n; uchar bit_secl=0x01; for(n=0;n<8;n++) //显示数字{P0=bit_secl; P2=0x06; bit_secl=bit_secl<<1; delay_ms(1500); } return; } void display7(void) {uchar n; uchar bit_secl=0x01; for(n=0;n<8;n++) //显示数字{P0=bit_secl; P2=0x07;

单片机控制步进电机和数码管显示

一、设计任务书 设计内容:用80C51单片机设计一个步进电机控制器 设计要求: 1.用8015设计一个四相步进电机。 2.可控制步进电机的启动与停止,正转与反转。 3.10档速度调节。 4.点动控制。 5.可显示电机运行参数。 二、设计总体方案 (一)控制方式的选择 控制主要用于电机速度和方向的转换。控制方式有按键控制和开关控制两种。按键较开关而言,操作更加简便,故选按键控制。 方案一:独立按键。独立按键可自由连接,线路简单。 方案二:编码式键盘。编码式键盘的按键接触点接于74LS148芯片。当键盘上没有闭合时,所有按键都断开,当某一键闭合时,该键对应的编码由74LS148输出。 本次设计所需按键不多,不需要采用复杂编码,考虑硬件条件、线路连接和经济性等方面,选择方案一。 (二)电机电路设计方案的选择 由于条件的限制,对于电机的选择只能是实验台上最小步距角18°的电机,其中已包含了驱动电路。 (三)单片机的选择 方案一:AT89C51高性能8位单片机,内部集成CPU、存储器、寄存器、I/O接口,从而构成较为完整的计算机,价格便宜。 方案二:C8051F005单片机,该单片机是完全集成的混合信号系统及芯片,具有8051兼容的微控制器内核,与MCS-51指令集完全兼容。除了具有标准8052的数字外设部件,片内还继承了数据采集和控制系统中常用的模拟部件和其他数字外设及功能部件,执行速度快,但价格较贵。 本次课程设计是在仿真环境下进行,没有太过考虑单片机选择的问题,但就设计本身来讲,从物美价廉的角度考虑,选择方案一较合适。 (四)显示方案的选择 方案一:采用LED数码管。LED数码管是轮流现实的,其利用人烟的视觉暂留特性,使人感觉不到数码管闪动,看到每只数码管都常亮。利用其显示必须不停给数码管数据输入口循环赋值,显示内容较多,编程和接线较为复杂。 方案二:采用LCD1602液晶显示器。LCD1602具有功率小,效果明显,变成容易等优点,且它最多能显示2×16个字符,可以轻松满足设计要求。 由上可知,LCD1602液晶显示器的优点突出,故选择方案二。 (五)软件部分的选择 软件部分的选择主要是指编程语言的选择,编译调试工具根据设计平台选择伟福软件。编程语言主要有以下两种方案。

51单片机(四位数码管的显示)程序[1]

51单片机(四位数码管的显示)程序 基于单片机V1或V2实验系统,编写一个程序,实现以下功能:1)首先在数码管 上显示P ”个字符;2)等待按键,如按了任何一个键,则将这 4个字符清除, 改为显示0000”个字符(为数字的0)。 E3最佳答案 下面这个程序是4x4距阵键盘丄ED 数码管显示,一共可以到0-F 显示,你可以稍微 改一下就可以实现你的功能了,如还有问题请发信息,希望能帮上你! #i nclude un sig ned char code Dig[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1 ,0x86,0x8e}; //gongyang 数码管 0-F 代码 void key_delay(void) { int t; for(t=0;t<500;t++); } un sig ned char k; //设置全局变量k 为键盘的键值 键盘延时函数 键盘扫描函数 ***************************** */ //延时函数

void keyscan(void) //键盘初始化 //有键按下? //延时 //确认真的有键按下? //使行线 P2.4 为低电平,其余行为高电平 //a 作为缓存 //开始执行行列扫描 { case 0xee:k=15;break; case 0xde:k=11;break; case 0xbe:k=7;break; case 0x7e:k=3;break; default:P2 = 0xfd; //使行线 P2.5 为低电平,其余行为高电平 a = P2; switch (a)//键盘扫描函数 { unsigned char a; P2 = 0xf0; if(P2!=0xf0) { key_delay(); if(P2!=0xf0) { P2 = 0xfe; key_delay(); a = P2; switch (a)

怎样用单片机驱动LED数码管显示

怎样用单片机驱动LED数码管显示 驱动LED数码管有很多方法,按显示方式分,有静态显示和动态(扫描)显示,按译码方式可分硬件译码和软件译码之分。 静态显示就是显示驱动电路具有输出锁存功能,单片机将所要显示的数据,显示数据稳定,占用很少的CPU时间。动态显示需要CPU时刻对显示器件进行数据刷新,显示数据有闪烁感,占用的CPU时间多。 这两种显示方式各有利弊;静态显示虽然数据稳定,占用很少的CPU 时间,但每个显示单元都需要单独的显示驱动电路,使用的硬件较多; 动态显示虽然有闪烁感,占用的CPU时间多,但使用的硬件少,能节 省线路板空间。 硬件译码就是显示的段码完全由硬件完成,CPU只要送出标准的BCD 码即可,硬件接线有一定标准。软件译码是用软件来完成硬件的功能,硬件简单,接线灵活,显示段码完全由软件来处理,是目前常用的显示驱动方式。 比较常用的显示驱动芯片有:74LS164 , CD4094+ULN2003(2803) ,74HC595+ULN2003(2803) , TPIC6B595,AMT9095B, AMT9595等许多。 另外,市场上还有一些专用的LED扫描驱动显示模块如MAX7219等,功能很强,价格稍高一些。下面是一个用74LS164驱动显示的例子和一个用4094扫描驱动显示的例子: ? 上例图中加了一个PNP型的三极管来控制数码管的电源,是因为164没有数据锁存端,数据在传送过程中,对输出端来说是透明的,这样,数据在传送过程中,数码管上有闪动现象,驱动的位数越多,闪动现象越明显。为了消除这种现象,在数据传送过程中,关闭三极管使数码管没电不显示,数据传送

数码管引脚图(常用)

由于很多多都需要这个数码管引脚图,下边介绍几种常用的二极管数码管引脚 《七段数码管引脚图》 数码管使用条件: a、段及小数点上加限流电阻 b、使用电压:段:根据发光颜色决定;小数点:根据发光颜色决定 c、使用电流:静态:总电流 80mA(每段 10mA);动态:平均电流 4-5mA 峰值电流 100mA 上面这个只是七段数码管引脚图,其中共阳极数码管引脚图和共阴极的是一样的,4位数码管引脚图请在本站搜索我也提供了数码管使用注意事项说明: (1)数码管表面不要用手触摸,不要用手去弄引角; (2)焊接温度:260度;焊接时间:5S (3)表面有保护膜的产品,可以在使用前撕下来。 数码管测试方法与数字显示译码表

图 三、测试:同测试普通半导体二极管一样。注意!万用表应放在R×10K档,因为R×1K档测不出数码管的正反向电阻值。对于共阴极的数码管,红表笔接数码管的“-”,黑表笔分别接其他各脚。测共阳极的数码管时,黑表笔接数码管的vDD,红表笔接其他各脚。另一种测试法,用两节一号电池串联,对于共阴极的数码管,电池的负极接数码管的“-”,电池的正极分别接其他各脚。对于共阳极的数码管,电池的正极接数码管的VDD,电池的负极分别接其他各脚,看各段是否点亮。对于不明型号不知管脚排列的数码管,用第一种方法找到共用点,用第二种方法测试出各笔段a-g、Dp、H等。 数码管引脚图,一般都是一样的。

数字对应数码管显示控制转换字节 (共阴编码) 显示--HGFE,DCBA--编码 0 --0011,1111--0x3F; 1 --0000,0110--0x06; 2 --0101,1011--0x5B; 3 --0100,1111--0x4F; 4 --0110,0110--0x66; 5 --0110,1101--0x6D; 6 --0111,1101--0x7D; 7 --0000,0111--0x07; 8 --0111,1111--0x7F; 9 --0110,1111--0x6F; 共阳为编码取反即可, 接线为高低端口对应接法。 备注:第一脚的识别很简单,看管脚的底部,有一个方块型的就是第一脚。或者正面(就是显示那面)超你,左下角第一个为第一脚。

51单片机控制4个数码管显示

. //使用AT89c51单片机控制四个数码管动态显示0-9999 ,12MHz #include void jiayi();//加1函数 void chufa();//除法函数 void xianshi();//显示函数 void delay();//延时函数 sbit P2_0=P2^0;//个位位码 sbit P2_1=P2^1;//十位位码 sbit P2_2=P2^2;//百位位码 sbit P2_3=P2^3;//千位位码 unsigned char qianwei,baiwei,shiwei,gewei; unsigned int count=0; unsigned char code dis[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //共阳极0-9 void main() { while(1) { jiayi(); chufa(); xianshi(); } } void chufa()//将数字的各个位拆开 { qianwei=count/1000;//千位数 baiwei=count%1000/100; //百位数 shiwei=count%100/10; //十位数 gewei=count%10; //个位数 } void jiayi() { count=count+1; if(count==10000) count=0; } void delay()//延时 { unsigned int i,j; for(i=0;i<10;i++) { for(j=0;j<200;j++); } }

基于51单片机的LED数码管动态显示

基于51单片机的LED数码管动态显示 LED数码管动态显示就是一位一位地轮流点亮各位数码管,对于每一位LED数码管来说,每隔一段时间点亮一次,利用人眼的“视觉暂留"效应,采用循环扫描的方式,分时轮流选通各数码管的公共端,使数码管轮流导通显示。当扫描速度达到一定程度时,人眼就分辨不出来了。尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,认为各数码管是同时发光的。若数码管的位数不大于8位时,只需两个8位I/O口。 1 硬件设计 利用51单片机的P0口输出段码,P2口输出位码,其电路原理图如下所示。 在桌面上双击图标,打开ISIS 7 Professional窗口(本人使用的是v7.4 SP3中文版)。单击菜单命令“文件”→“新建设计”,选择DEFAULT模板,保存文件名为“DT.DSN”。在器件选择按钮中单击

“P”按钮,或执行菜单命令“库”→“拾取元件/符号”,添加如下表所示的元件。 51单片机AT89C51 一片 晶体CRYSTAL 12MHz 一只 瓷片电容CAP 22pF 二只 电解电容CAP-ELEC 10uF 一只 电阻RES 10K 一只 电阻RES 4.7K 四只 双列电阻网络Rx8 300R(Ω) 一只 四位七段数码管7SEG-MPX4-CA 一只 三极管PNP 四只 若用Proteus软件进行仿真,则上图中的晶振和复位电路以及U1的31脚,都可以不画,它们都是默认的。 在ISIS原理图编辑窗口中放置元件,再单击工具箱中元件终端图标,在对象选择器中单击POWER 和GROUND放置电源和地。放置好元件后,布好线。左键双击各元件,设置相应元件参数,完成电路图的设计。 2 软件设计 LED数码管动态显示是一位一位地轮流点亮各位数码管的,因此要考虑每一位点亮的保持时间和间隔时间。保持时间太短,则发光太弱而人眼无法看清;时间太长,则间隔时间也将太长(假设N位,则间隔时间=保持时间X(N-1)),使人眼看到的数字闪烁。在程序中要合理的选择合适的保持时间和间隔时间。而循环次数则正比于显示的变化速度。 LED数码管动态显示的流程如下所示。

最全四位七段数码管引脚图、公共脚

最全四位七段数码管引脚图、公共脚 数码管在现在的自动控制中的显示应用极为广泛,由于使用时间的问题会导致缺画的现象发生,为了便于大家更好找到合适的数码管进行更换,特给大家详细介绍 《七段数码管实物图》

数码管使用条件: a、段及小数点上加限流电阻 b、使用电压:段:根据发光颜色决定;小数点:根据发光颜色决定 c、使用电流:静态:总电流 80mA(每段 10mA);动态:平均电流 4-5mA 峰值电流 100mA 上面这个只是七段数码管引脚图,其中共阳极数码管引脚图和共阴极的是一样的,4位数码管引脚图请在本站搜索我也提供了数码管使用注意事项说明: (1)数码管表面不要用手触摸,不要用手去弄引角; (2)焊接温度:260度;焊接时间:5S (3)表面有保护膜的产品,可以在使用前撕下来。

一种四位双排引脚共阴(阳)脚位图

常见的四位双排引脚共阴(阳)脚位图 单排四位双排引脚共阴(阳)脚位图 国内外生产LED数码管的公司很多,命名方法也各不相同。下面主要介绍国产LED数码管和立得公司的LED数码管的命名方法,因为市面上这两中型号的数码管销售的最多。 国产LED数码管型号命名方法为: 示例:BS12.7R-1表示字高为12.7mm,红色,共阳极数码管。字串3 立得公司的LED数码管的命名方法为: 其中,A:极性;B:字高;C:发光颜色;D:位数;E:高效率,红;F:其它。字串2 极性:字串1 LA:共阳(单);LC:共阴(单);LD:共阳(双);LE:共阴(双);LN:共阳(加大);LM:共阴(加大)。

发光颜色: 1:红色(红底);2:绿色;3:黄色;4:橙色;5:红色;6:红色(高效率)。 位数: 1:(单位);2:(双位);3:(三位) 上图是字高为0.8英寸的四位共阳极双排12脚数码管,四个公共脚为,6、8、9、12 上图是字高为0.52英寸的四位共阳极双排12脚数码管,四个公共脚为2、3、6、10数码管测试方法与数字显示译码表

LED数码管及引脚图详细资料

LED数码管及引脚图资料LED数码管实际上是由七个发光管组成8字形构成的,加上小数点就是8个。这些段分别由字母a,b,c,d,e,f,g,dp来表示。当数码管特定的段加上电压后,这些特定的段就会发亮,以形成我们眼睛看到的 2个8数码管字样了。如:显示一个“2”字,那么应当是a亮b亮g亮e亮d亮f不亮c不亮dp不亮。LED数码管有一般亮和超亮等不同之分,也有0.5寸、1寸等不同的尺寸。小尺寸数码管的显示笔画常用一个发光二极管组成,而大尺寸的数码管由二个或多个发光二极管组成,一般情况下,单个发光二极管的管压降为1.8V左右,电流不超过30mA。发光二极管的阳极连接到一起连接到电源正极的称为共阳数码管,发光二极管的阴极连接到一起连接到电源负极的称为共阴数码管。常用LED数码管显示的数字和字符是0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。 led数码管(LED Segment Displays)是由多个发光二极管封装在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极。led数码管常用段数一般为7段有的另加一个小数点,还有一种是类似于3位“+1”型。位数有半位,1,2,3,4,5,6,8,10位等等....,led数码管根据LED的接法不同分为共阴和共阳两类,了解LED的这些特性,对编程是很重要的,因为不同类型的数码管,除了它们的硬件电路有差异外,编程方法也是不同的。图2是共阴和共阳极数码管的内部电路,它们的发光原理是一样的,只是它们的电源极性不同而已。颜色有红,绿,蓝,黄等几种。led数码管广泛用于仪表,时钟,车站,家电等场合。选用时要注意产品尺寸颜色,功耗,亮度,波长等。下面将介绍常用LED数码管内部引脚图片 10引脚的LED数码管 图1 这是一个7段两位带小数点 10引脚的LED数码管

51单片机数码管显示电子时钟C程序

#include #define LEDLen 6 ; #define tick10000; #define T100us=(256-100); unsigned char hour,minute,second; unsigned int c100us; xdata unsigned char OUTBIT_at_0x8002; xdata unsigned char OUTSEG_at_0x8004; unsigned char LEDBuf[6]; code unsigned char LEDMAP[]= {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71 }; void DisplayLED() { unsigned char i,j,pos,LED; pos = 0x20 ; for( i=0;i<6;i++ ) { OUTBIT =0; LED=LEDBuf[i]; OUTSEG =LED; OUTBIT = pos; Delay(1); pos>>=1; } } void main() { TMOD=0x02; TH0=T100us; TL0=T100us; EA=1,IT0=1; hour=0; minute=0 second=0; c100us=tick; TR0=1; while(1) { LEDBuf[0]=LEDMAP[hour/10] ; LEDBuf[1]=LEDMAP[hour%10] ;

LEDBuf[2]=LEDMAP[minute/10]; LEDBuf[3]=LEDMAP[minute%10]; LEDBuf[4]=LEDMAP[second/10]; LEDBuf[5]=LEDMAP[second%10]; DISplayLED(); } } void T0_interrupt1 { c100us--; if(c100us==0) { c100us=tick; second++; if(second==60) { second=0; minute++; if(minute==60) { minute==0; hour++; if(hour==24)hour==0; } } } }

7段数码管控制引脚

《EDA技术综合设计》 课程设计报告 报告题目:计数器7段数码管控制接口技术作者所在系部: 作者所在专业: 作者所在班级: 作者姓名: 作者学号: 指导教师姓名: 完成时间:

内容摘要 掌握VHDL语言基本知识,并熟练运用VHDL语言来编写程序,来下载实践到硬件上,培养使用设计综合电路的能力,养成提供文档资料的习惯和规范编程的思想。利用VHDL语言设计一个七段数码管控制引脚,在时钟信号的控制下,使6位数码管动态刷新显示十进制计数器及其进位,十二进制计数器,四位二进制可逆计数器,六十进制计数器的计数结果,这期间需要seltime分频器来动态的给各个计数器分配数码管,并显示数字的变化。 关键词:VHDL语言编程七段数码管控制引脚芯片

目录 一概述 (1) 二方案设计与论证 (1) 三单元电路设计与参数计算 (1) 3.1数码管译码器 (1) 3.2 十进制计数器 (2) 3.3六十进制计数器 (3) 3.4四位二进制可逆计数器 (5) 3.5时间数据扫描分时选择模块 (6) 3.6顶层文件 (8) 四总的原理图 (9) 五器件编程与下载 (9) 六性能测试与分析(要围绕设计要求中的各项指标进行) (10) 七实验设备 (10) 八心得体会 (10) 九参考文献 (10)

课程设计任务书课题 名称7段数码管控制引脚 完成 时间 2011. 12.12 指导 教师胡辉职称副教授 学生 姓名 庄仲班级B09212 总体设计要求和技术要点 通过本课程的学习使学生掌握可编程器件、EDA开发系统软件、硬件描述语言和电子线路设计与技能训练等各方面知识;提高工程实践能力;学会应用EDA技术解决一些简单的电子设计问题。 具体要求: 1.设计一个共阴7段数码管控制接口,在硬件时钟电路的基础上,采用分频器,输出一个1S的时钟信号,同时显示2、3、4所要求的计数器。 2.设计一个带使能输入、进位输出及同步清0的增1十进制计数器。 3.设计一个带使能输入及同步清0的六十进制同步加法计数器; 4.设计一个四位二进制可逆计数器; 工作内容及时间进度安排 第16周: 周一、周二:设计项目的输入、编译、仿真 周三:器件编程下载与硬件验证 周四:成果验收与总结 周五:撰写课程设计总结报告 课程设计成果 把编写好的程序下载到试验箱,使数码管能够按照编写的程序显示出正确的结果,实验成功。

单片机课设 数码管显示滚动控制

《单片机设计与实训》 设计报告 题目:数码管滚动显示控制 姓名:王伟杰 班级:自动化四班 学号: 2014550430 指导老师:张莹 提交日期:2016年10月29日

目录 一、设计题目与要求 (3) 1.1设计题目 (3) 1.2设计要求 (3) 二、系统方案设计 (3) 2.1硬件电路设计 (3) 1.单片机最小系统简介 (3) 2.数码管显示电路 (6) 2.3硬件选型及说明 (6) 1.ST89C51单片机 (6) 2.四位一体七段共阴极显示数码管 (8) 三、系统原理图设计与仿真 (9) 3.1系统仿真图 (9) 3.2系统仿真结果 (10) 四、程序设计 (11) 4.1程序设计 (11) 4.2程序流程图 (12) 五、系统调试 (14) 5.1系统硬件调试 (14) 5.2系统软件调试 (14) 六、总结与体会 (14) 附录一 (16) 附录二 (17) 附录三 (27)

一、设计题目与要求 单片机课程设计是一门实践课程,要求学生具有制作调试单片机最小系统及外设的能力,能够掌握单片机内部资源的使用。单片机课程设计内容包括硬件设计、制作及软件编写、调试,学生在熟练掌握焊接技术的基础上,能熟练使用单片机软件开发环境Keil C51编程调试,并使用STC ISP调试工具采用串口下载方式联调制作的单片机最小系统。单片机课程设计题目包含基本部分及扩展部分,基本部分即单片机最小系统部分,扩展部分是对单片机内部资源及外部IO 口的功能扩展,使制作的单片机系统具有一定的功能。 1.1设计题目 数码管滚动显示控制 1.2设计要求 自制一个单片机最小系统,包括串口下载、复位电路,采用两个四位一体数码管作为显示器件,通过按钮选择实现四种滚动显示模式,例如从左至右,从右至左,内缩,外扩等,滚动信息可以是数字或有意义的英文字符。 二、系统方案设计 2.1硬件电路设计 本设计的硬件电路主要包括的模块有:单片机最小系统、七段数码管显示模块、 1.单片机最小系统简介 单片机最小系统,或者称为最小应用系统,是指用最少的元件组成的单片机可以工作的系统.对51系列单片机来说,最小系统一般应该包括:单片机、晶振电路、复位电路。结构图如下:

单片机实验四 I O显示控制实验(数码管显示实验)

电子信息工程学系实验报告 课程名称:单片微型计算机与接口技术Array 实验项目名称:实验四 I/O显示控制实验实验时间: 班级: **** 姓名:**** 学号:******** 一、实验目的: 1、熟悉keil仿真软件、proteus仿真软件、软件仿真板的使用。 2、了解并熟悉一位数码管与多位LED数码管的电路结构、与单片机的连接方法及其应用原理。 3、学习proteus构建LED数码管显示电路的方法,掌握C51中单片机控制LED数码管动态显示的原理与编程方法。 二、实验环境: 1、Windows XP系统; 2、Keil uVision2、proteus系列仿真调试软件 三、实验原理: 1、LED数码管的结构和原理 LED显示器是由发光二极管显示字段的显示器件。在单片机应用系统中通常使用的是七段LED,这种显示器有共阴极与共阳极两种。 (a)共阴极LED显示器的发光二极管阴极共地,当某个发光二极管的阳极为高电平时,该发光二极管则点亮; (b)共阳极LED显示器的发光二极管阳极并接。 2、七段显示器与单片机接口:只要将一个8位并行输出口与显示器的发光二极管引脚相连即可。8位并行输出口输出不同的字节数据即可获得不同的数字或字符,如下表所示。通常将控制发光二极管的8位字节数据称为段选码。 八段选码(显示码)的推导(以共阳数码管显示C为例): 要显示C则a、f、e、d四个灯亮2.为是共阳数码管,则a、f、e、d应送0时亮3.dp-a为11000110B 3、多位数码管的显示:电路结构、动态静态两种实现原理: LED显示器有静态显示与动态显示两种方式。 (1) LED静态显示方式 各位LED的位选线连在一起接地或接+5V;每位LED的段选线(a-dp)各与一个八位并行口相连; 在同一时间里每一位显示的字符可以各不相同。

单片机驱动数码管C程序

1、0到F轮流循环 #include //52单片机头文件 #define uint unsigned int //宏定义 #define uchar unsigned char //宏定义 sbit dula=P3^7; //数码管段选锁存端 uchar code table1[]={ //数码管显示编码 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71}; uchar i,j; unsigned char code table2[]={0,1,2,3,4,5,6,7}; void delay(uint z) //延时子函数 { uint x,y; for(x=z;x>0;x--) for(y=200;y>0;y--); } void main() { while(1) { for(i=0;i<16;i++) { j=i; P0=table1[i]; if(j>7) j=j-8; P2=table2[j]; delay(300); P0=0x00;//消影,非常重要 } } } 2、动态扫描01234567 /*******************************************************************/ /* 利用动态扫描方法在六位数码管上显示出稳定的76543210. 时钟频率为11.0592M */ /*********************************************************/ #include //52单片机头文件 #define uint unsigned int //宏定义

用单片机实现1位LED数码管显示0-9

单片机课程设计 题目1位LED数码管显示0-9 姓名陈益明 学号 班级 09电力 指导老师许丽汪厚新 目录 一:实验目的与任务…………………二:实验要求…………………………三:实验内容…………………………... 四:实验器材…………………………五:关于PLC控制LED介绍………. 六:原理图绘制说明…………………

七:流程图绘制以及说明……………八:电路原理图与仿真………………九:源程序……………………………十:心得体会………………………… 十一:参考文献……………………… 一、实验与任务 结合实际情况,编程设计、布线、程序调试、检查与运行,完成一个与接近实际工程项目的课题,以培养学生的实际操作能力,适应生产一线工作的需要。做到能检查出错误,熟练解决问题;对设备进行全面维修。 通过实训对PLC的组成、工作原理、现场调试以及基于网络化工作模式的基本配置与应用等有一个一系列的认识和提高。 利用51单片机、1个独立按键及1位7段数码管等器件,设计一个单片机输入显示系统,要求每按一下独立按键数码管显示数据加1(数码管初始值设为0,计到9后再加1 ,则数码管显示0)。 本次设计采用12MHz的晶体振荡器为单片机提供振荡周期,外加独立按键,复位电路和显示电路组成。 二、实验要求 1掌握可编程序控制器技术应用过程中的一些基本技能。 2、巩固、加深已学的理论知识。 3了解可编程控制器的装备、调试的全过程。

4、培养我们综合运用所学的理论知识和基本技能的能力,尤其是培养我们 把理论和实际结合起来分析和解决问题的能力。适应世界生产的需要。 培养出一批既有理论知识又有动手能力的人才。 三、实验内容 1、练习设计、连接、调试控制电路; 2、学习PLC程序编程; 四、元器件清单 五、关于PLC控制LED介绍: PLC可编程控制器:它采用一类可编程的存储器,用于其内部存储程序、执行逻辑运算、顺序控制、定时、计数与算数操作等面向用户的指令,并通过数字或模拟式输入/输出控制各种类型的机械或生产过程。 用PLC控制LED直接进行数据显示,可以降低成本,使得数据显示直观。 传统数显有两种方法:1、由PLC编制程序进行译码,来控制显示a-g段;2、利用译码组合电路产生a-g各段译码信号实现LED数码管显示。前一种方法逻辑译码关系复杂,后一种方法译码电路冗长,都不利于显示的实现。传统数显逻辑译码关系复杂,而用PLC的位组合元件和译码功能指令方法来实现

DSB 单片机数码管显示原理图和程序

最近天气热了,想要是做个能显示温度的小设备就好了,于是想到DIY个电子温度计,网上找了很多资料,结合自己的材料,设计了这个用单片机控制的实时电子温度计。作为单片机小虾的我做这个用了2天时间,当然是下班后,做工不行见谅了。 主要元件用到了单片机STC89C54RD+,DB18B20温度传感器,4为共阳数码管,PNPS8550三极管等。 先上原理图: 洞洞板布局图: 然后就是实物图了:

附上源程序:程序是别人写的,我只是自己修改了下,先谢谢原程序者的无私奉献。 #include eg52.h #define uchar unsigned char #define uint unsigned int sbit DQ=P3^4; //温度数据口 sbit wx1=P2^0; //位选1 sbit wx2=P2^1; //位选2 sbit wx3=P2^2; //位选3 sbit wx4=P2^3; //位选4

unsigned int temp, temp1,temp2, xs; uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99, //共阳数码管0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6}; /******延时程序*******/ void delay1(unsigned int m) { unsigned int i,j; for(i=m;i>0;i--) for(j=110;j>0;j--); } void delay(unsigned int m) //温度延时程序 { while(m--); } void Init_DS18B20() { unsigned char x=0; DQ = 1; //DQ复位ds18b20通信端口 delay(8); //稍做延时 DQ = 0; //单片机将DQ拉低 delay(80); //精确延时大于480us DQ = 1; //拉高总线 delay(4); x=DQ; //稍做延时后如果x=0则初始化成功x=1则初始化失败delay(20); } /***********ds18b20读一个字节**************/ uchar ReadOneChar() {

相关文档
最新文档