SM4205 七段数码管
- 格式:doc
- 大小:62.50 KB
- 文档页数:2
七段数码管显示设计报告目录一、设计任务二、题目分析与整体构思三、硬件电路设计四、程序设计五、心得体会一.设计任务数码的显示方式一般有三种:第一种是字型重叠式;第二种是分段式;第三种是点阵式。
目前以分段式应用最为普遍,主要器件是七段发光二极管(LED)显示器。
它可分为两种,一是共阳极显示器(发光二极管的阳极都接在一个公共点上),另一是共阴极显示器(发光二极管的阳极都接在一个公共点上,使用时公共点接地)。
数码管动态扫描显示,是将所用数码管的相同段(a~g 和p)并联在一起,通过选位通信号分时控制各个数码管的公共端,循环依次点亮各个数码管。
当切换速度足够快时,由于人眼的“视觉暂留”现象,视觉效果将是数码管同时显示。
根据七段数码管的显示原理,设计一个带复位的七段数码管循环扫描程序,本程序需要着重实现两部分:1. 显示数据的设置:程序设定4 位数码管从左至右分别显示1、2、3、4;2. 动态扫描:实现动态扫描时序。
利用EXCD-1 开发板实现七段数码管的显示设计,使用EXCD-1 开发板的数码管为四位共阴极数码管,每一位的共阴极7 段数码管由7 个发光LED 组成,7 个发光LED 的阴极连接在一起,阳极分别连接至FPGA相应引脚。
四位数码管与FPGA 之间通过8 位拨码开关(JP1)进行连接。
二.题目分析与整体构思使用EXCD-1 开发板的数码管为四位共阴极数码管,每一位的共阴极7 段数码管由7个发光LED 组成,呈“”字状,7 个发光LED 的阴极连接在一起,阳极分别连接至FPGA 相应引脚。
SEG_SEL1、SEG_SEL2、SEG_SEL3 和SEG_SEL4 为四位7 段数码管的位选择端。
当其值为“1”时,相应的7 段数码管被选通。
当输入到7 段数码管SEG_A~ SEG_G 和SEG_DP 管脚的数据为高电平时,该管脚对应的段变亮,当输入到7 段数码管SEG_A~SEG_G 和SEG_DP 管脚的数据为低电平时,该管脚对应的段变灭。
共阳极数码管带小数点段码共阳极数码管是一种常见的数字显示器件,它由多个LED组成,可以显示数字、字母、符号等信息。
其中,带小数点的共阳极数码管可以在每个数字上方显示一个小数点,用于显示带有小数位的数值。
下面介绍一下带小数点的共阳极数码管的段码。
共阳极数码管的每一位数字都由七个LED组成,分别对应a、b、c、d、e、f、g七个段。
带小数点的共阳极数码管还有一个小数点段,一般位于g段右侧。
根据七段码理论,每个数字和小数点都可以用一个七位二进制数表示,对应的数值和段的亮灭情况。
下面是带小数点的共阳极数码管的段码表:数字0:0xC0(11000000)数字1:0xF9(11111001)数字2:0xA4(10100100)数字3:0xB0(10110000)数字4:0x99(10011001)数字5:0x92(10010010)数字6:0x82(10000010)数字7:0xF8(11111000)数字8:0x80(10000000)数字9:0x90(10010000)小数点:0x7F(01111111)使用带小数点的共阳极数码管时,要将每个数字的七段码与小数点的段码分别送入对应的引脚,通过控制引脚电平高低来实现数字和小数点的显示。
例如,要显示数值12.34,需要将数字1的七段码和小数点的段码送入第一位数码管的引脚,数字2的七段码和小数点的段码送入第二位数码管的引脚,数字3的七段码和小数点的段码送入第三位数码管的引脚,数字4的七段码和小数点的段码送入第四位数码管的引脚。
带小数点的共阳极数码管在工业控制、计算器、电子钟表等领域得到广泛应用。
熟练掌握其七段码和引脚接法,可以更好地应用于实际工程设计中。
最全四位七段数码管引脚图、公共脚数码管在现在的自动控制中的显示应用极为广泛,由于使用时间的问题会导致缺画的现象发生,为了便于大家更好找到合适的数码管进行更换,特给大家详细介绍《七段数码管实物图》数码管使用条件: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极性:字串1LA:共阳(单);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数码管测试方法与数字显示译码表三、测试:同测试普通半导体二极管一样。
实验报告实验七八段数码管显示实验----b46086b6-6eaf-11ec-8071-7cb59b590d7d实验报告--实验七-八段数码管显示实验EDA实验报告七段或八段数码管显示实验1、实验目的1)了解数码管动态显示的原理。
2)了解如何通过总线控制数码管显示器2、实验要求:利用实验仪提供的显示电路,动态显示一行数据.提示:显示显示缓冲区的内容(例如,可以使用60H~65h作为缓冲区)。
修改显示缓冲区的内容时,可以显示修改后的内容(为键盘扫描和显示实验做准备)。
3、实验说明实验仪器提供了一个6位8段编码的LED显示电路。
学生可以控制显示,只要他们根据地址输出相应的数据。
显示器共有6位,以动态方式显示。
8位段码和6位码由两个74ls374芯片输出。
位代码由mc1413或uln2022反相驱动后,选择相应的显示位。
本实验仪中8位段码输出地址为0x004h,位码输出地址为0x002h。
此处x是由key/ledcs决定,参见地址译码。
在进行键盘和led实验时,需要将按键/LEDC连接到相应的地址解码。
以便使用相应的地址进行访问。
例如,如果钥匙/ledcs连接到CS0,则段代码地址为08004h,位代码地址为08002h。
七段数码管的字型代码表如下表:a-----f | | b | |------| g | e | c-----d。
h显示字体gfedcba段代码001111113FH100011006H210110115BH3100111114FH41100111066H51016DH61111017DH70000 1107H81111117FH911011116fha111011177hb11111007chc011100139hd10111105ehe111100179hf111000171h4.原理图和接线5、实验内容1)使用仪器和仪表开发平台模型本实验用到了wave6000软件平台,电脑一台,lab6000实验箱,示波器,若干连线,串行数据线。
7段数码管显⽰驱动代码数码管显⽰进⾏简单的介绍,数码管显⽰原理在数电中已经给出了⽐较详细的介绍,我就不赘述了,因为我们⽤的是⾄芯的开发板,其上的数码管显⽰模块采⽤的是共阳极的数码管,为低电平有效,0-F的显⽰码依次为:数码管的输⼊有3个位选和8个段选给出,位选信号sel来控制哪个数码管先亮,段选信号seg来控制数码管显⽰什么,位选本来应该是有6个的但是为了节约资源,采⽤了3-8译码器将6根线减少到3根,节约了FPGA的引脚资源。
因为⼈眼有⼀个视觉载留,所以60HZ来扫描的时候,数码管会让⼈眼觉得是同时点亮,所以时钟要⼤于60hz下⾯是具体的代码实现:module scan_led(input wire clk_1k,input wire rst_n,input wire [31:0] d,output wire [2:0] dig,//seloutput wire [7:0] seg);reg [7:0] seg_r;reg [2:0] dig_r;reg [3:0] disp_dat;reg [2:0] count;assign dig =dig_r;assign seg =sig_r;// 时钟不能直接接全局时钟,这⾥的时钟驱动给的是1k的always @(posedge clk_1k or negedge rst_n)beginif(!rst_n)count <=3'b000;else if(count == 3'd5)count <=3'b000;elsecount <=count +1'b1;endalways @(posedge clk_1k or negedge rst_n)begincase (count)3'd0:disp_dat = d[31:28];3'd1:disp_dat = d[27:24];3'd2:disp_dat = d[23:20];3'd3:disp_dat = d[19:16];3'd4:disp_dat = d[15:12];3'd5:disp_dat = d[11:8];3'd6:disp_dat = d[7:4];3'd7:disp_dat = d[3:0];endcasecase (count)3'd0:dig_r = 3'd0;3'd1:dig_r = 3'd1;3'd2:dig_r = 3'd2;3'd3:dig_r = 3'd3;3'd4:dig_r = 3'd4;3'd5:dig_r = 3'd5;3'd6:dig_r = 3'd6;3'd7:dig_r = 3'd7;endcaseendalways @(disp_dat)begincase(disp_dat)4'h0:seg_r = 8'hc0;4'h1:seg_r = 8'hf9;4'h2:seg_r = 8'ha4;4'h3:seg_r = 8'hb0;4'h4:seg_r = 8'h99;4'h5:seg_r = 8'h92;4'h6:seg_r = 8'h82;4'h7:seg_r = 8'hf8;4'h8:seg_r = 8'h80;4'h9:seg_r = 8'h90;4'ha:seg_r = 8'h88;4'hb:seg_r = 8'h83;4'hc:seg_r = 8'hc6;4'hd:seg_r = 8'ha1;4'he:seg_r = 8'h86;4'hf:seg_r = 8'h8e;endcaseendendmodule另⼀种写法:module display1 (clk, rst_n , sel, seg);input clk;input rst_n;//两个输出,位选sel和段选segoutput reg [2:0] sel;output reg [7:0] seg;//数码管扫描需要⼀个慢时钟 clk_slow,⽽产⽣慢时钟则需要⼀个计数器 cntreg [15:0] cnt;reg clk_slow;//这个always块⽤来产⽣慢时钟clk_slowalways @ (posedge clk)beginif(!rst_n)begincnt <= 0;clk_slow <= 1; //复位时clk_slow静⽌不动endelsebegincnt <= cnt + 1; //复位结束后cnt开始计数clk_slow <= cnt[12]; //扫描没有必要⾮得是60Hz整,⼤于60Hz即可endend//下⾯这个always块⽤于扫描数码管,也就是sel循环地变化,//时钟每⼀次上升沿sel变化⼀次,所以在括号⾥写上时钟上升沿作为触发条件always @ (posedge clk_slow or negedge rst_n)beginif(!rst_n)beginsel <= 0; //复位时sel静⽌endelsebeginsel <= sel + 1; //复位后sel开始扫描if(sel >= 5)sel <= 0; //因为只有6个数码管,所以让sel在0-5之间循环endendalways @ (*)beginif(!rst_n)seg <= 8'b11111111; //按下复位键时让数码管熄灭,共阳极数码管0亮1灭elsebegincase(sel)0: seg <= 8'b11111001; //右起第1个数码管上显⽰11: seg <= 8'b10100100; //右起第2个数码管上显⽰22: seg <= 8'b10110000;3: seg <= 8'b10011001;4: seg <= 8'b10010010;5: seg <= 8'b10000010; //右起第6个数码管上显⽰6default: seg <= 8'b11111111;endcaseendendendmodule。
最简单的七段数码管驱动电路
使用数码管时经常遇到驱动的问题,笔者之前就用过三极管来或集成块来驱动数码管,但这样一来不仅增加了成本而且增加了布线难度、功耗大,带来了很多问题。
平时设计电路的时候,要求亮度是不很高的情况下,比如用来显示温度、频率等通常要求的亮度并不是很高,这个时候我们可以不用任何驱动电路,直接把数码管和单片机连接起来,别不单片机没试过,但增用过AT89S52单片机和数码直接连起来,数码管亮度中等。
完全满足普通的显示,之前设计电路的时候,看到网上说的要加驱动什么的,非常麻烦。
然而现在事实证明,不用驱动电路已经能够满足我们的要求。
实践才是硬道理,下面的电路图是经过实际测试的。
提示:单击图片可放大
(按此电路图设计的真实硬件已经测试成功,亮度中等)
图中:左边是51单片机,P0口接七段数码管的段码,并接上拉电阻(排阻)。
电源共用单片机40脚的电源(用USB供电就可以了),位选是P2口。
使用的数码管是共阴数码管。
可以是单个数码管或4个一组的数码管。
电路图中的数码是4个一组的数码管。
共12引脚、8个段码与4个位选。
注:排阻有9个引脚,其中一脚接电源。
此电路图使用Protel 99 SE
测试时:排阻为4.7k 如果选更小的亮度会更好。
实验二七段数码管动态显示控制一、实验目的利用AT89S52和使用两位数码管显示器,循环显示两位数00-99。
其中P2.0和P2.1端口分别控制数码管的个位和十位的供电,当相应的端口变成低电平时,驱动相应的三极管会导通,+5V通过驱动三极管给数码管相应的位供电,这时只要P3口送出数字的显示代码,数码管就能正常显示数字。
二、实验要求1、使用两位数码管显示器,循环显示两位数00-99;2、具有电源开关和指示灯,有复位键;3、数码管动态显示,即扫描方式,每一位每间隔一段时间扫描一次。
字符的亮度及清晰度与每位点亮的停留时间和每位显示的时间内轮换导通次数有关。
三、实验电路四、实验器材AT89S52;动态扫描显示;共阳极数码管;电阻五、实验原理说明图1 AT89S52引脚图图2 共阳极七段数码管引脚图1AT89S52引脚图,说明如下:按照功能,AT89S52的引脚可分为主电源、外接晶体振荡或振荡器、多功能I/O 口、控制和复位等。
1.多功能I/O口AT89S52共有四个8位的并行I/O口:P0、P1、P2、P3端口,对应的引脚分别是P0.0 ~ P0.7,P1.0 ~ P1.7,P2.0 ~ P2.7,P3.0 ~ P3.7,共32根I/O线。
每根线可以单独用作输入或输出。
①P0端口,该口是一个8位漏极开路的双向I/O口。
在作为输出口时,每根引脚可以带动8个TTL输入负载。
当把“1”写入P0时,则它的引脚可用作高阻抗输入。
当对外部程序或数据存储器进行存取时,P0可用作多路复用的低字节地址/数据总线,在该模式,P0口拥有内部上拉电阻。
在对Flash存储器进行编程时,P0用于接收代码字节;在校验时,则输出代码字节;此时需要外加上拉电阻。
②P1端口,该口是带有内部上拉电阻的8位双向I/O端口,P1口的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。
对端口写“1”时,通过内部的上拉电阻把端口拉到高电位,此时可用作输入口。