精华内容
下载资源
问答
  • 发光二极管导通的方向是一定的(导通电压一般取为1.7V),这八个发光二极管的公共端有两种:可以分别接+5V(即为共阳极数码管)或接地(即为共阴极数码管)共阳极: 位选为高电平(即1)选中数码管, 各段选为低电平(即0接地...

    描述

    一个数码管有八段:A,B,C,D,E,F ,G,H即由八个发光二极管组成;发光二极管导通的方向是一定的(导通电压一般取为1.7V),这八个发光二极管的公共端有两种:可以分别接+5V(即为共阳极数码管)或接地(即为共阴极数码管)

    共阳极: 位选为高电平(即1)选中数码管, 各段选为低电平(即0接地时)选中各数码段,

    共阴极: 位选为低电平(即0)选中数码管, 各段选为高电平(即1接+5V时)选中各数码段。

    16a9b9e671f22f53ff2a87f19241aee8.png

    1位数码显示数字其实就是这8个发光二极管,哪个亮哪个不亮,从而达到显示数字的效果,亮和不亮无非就是0或1。以共阴极为例。

    数码管的段依次从低到高如图中的a,b,c,d,e,f,g,h(h是小数点),如果要显示数字1,即b,c亮,其他都不亮,对应的二进制数字为:00000110,转换为16进制为0x06。即段码为0X06时,这个数码管就能显示数字1了。以此类推就可以得出1-9的断码了。共阳极的原理也是如此,对共阴极的段码取反即可。

    8位数码管可以理解为8个1位数码管组成的,这就涉及到位码,你可以理解为位置,像第一位数码管,第二位数码管这样。以共阴极为例。位选为低电平(即0)时选中该数码管。

    比如你有1个8八位数码管,你只想让第1、2、3、位数码管显示亮起来,那么即选中1,2,3,其他均不选,二进制数字为11111000,转换为16进制为0XF8,只要设置位码为0xF8即可达到这个效果了,其他也是一样的,共阳极取反即可。

    数码管结构及工作原理,段码计算方法

    03da460f718b0a7b1d522845cce94487.png

    段码计算方法:理论上,八个笔段可以显示128种不同的字符,扣除其中没有意义的组合状态后,七段LED数码管可以显示的字符如表所示。相应的其它字符也可推算出来。

    118b1c6d8951239422389011baaac412.png

    单片机点亮数码管

    5b852be43f38a4179f0f7559a41c0962.png

    基于上图设计显示驱动函数

    #include 《STC89.H》 //延时程序代码

    void delay_ms(unsigned int Cnt) {

    unsigned int t; while(Cnt--) { t=100; while(--t); } }

    //主程序代码

    void main()

    { unsigned char i;

    unsigned char code LED[16]= { 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c,

    0x39,0x5e,0x79,0x71, };

    while(1) { P1=0xfe; for(i=1;i《=6;i++) { P0=LED[i];

    delay_ms(400);

    P1=(P1《《1)|0x01;

    }

    }

    }

    打开APP阅读更多精彩内容

    点击阅读全文

    展开全文
  • 如图所示,我所使用的数码管为共阳极数码管,即公共端(位选)连高电平,引脚a b c d e f g dp连接单片机的P0口。 数码管点亮原理: 因为为共阳极,因此接收到低电平点亮; 比如要显示数字“1”,需要数码管引脚b和...

    静态数码管显示

    原理
    共阳极数码管
    如图所示,我所使用的数码管为共阳极数码管,即公共端(位选)连高电平,引脚a b c d e f g dp连接单片机的P0口。
    数码管点亮原理:

    • 因为为共阳极,因此接收到低电平点亮;
    • 比如要显示数字“1”,需要数码管引脚b和引脚c接收到低电平才能点亮;
    • 即a=1;b=0;c=0;d=1;e=1;f=1;g=1;dp=1才能点亮数字“1”,合起来为P0=10011111;
    • 以此类推,点亮其他数字。

    代码原理

    • 数码管显示编码用数组表示;
    • 每个数字显示一秒,不断循环;

    全部代码

    /*功能:数码管静态显示*/
    
    #include <reg52.h>
    #define uint unsigned int
    #define uchar unsigned char
    
    uchar number;
    //数码管显示编码,共阳极
    uchar code shumaguan[]= {
    0x03,0x9f,0x25,0x0d,0x99,
    0x49,0x41,0x1f,0x01,0x09};
    
    //延迟函数声明,大约1ms
    void delay(uint x);
    
    void main()
    {
     P0=shumaguan[0];
     
     while(1)
     {
      for(number=0;number<10;number++)
      {
       P0 = shumaguan[number];
       delay(1100);   
      }
     }
    }
    
    //延时函数定义
    void delay(uint x)
    {
     uint m,n;
     for(m=x;m>0;m--)
     {
      for(n=110;n>0;n--);
     }
    }
    
    展开全文
  • issp调试数码管显示

    2020-07-06 12:19:48
    本设计采用的是8位8段的数码管(8位代表8个数码管),每个数码管的结构图如下,下图为共阳极数码管,共阴极与共阳极数码管的的区别在于,公共端是接到高电平还是低电平。数码管的那个段需要点亮时,只需要给所对应的...

    项目名称

    issp数码管显示

    具体要求

    对数码管驱动电路进行设计,并利用In system sources and probes editor(ISSP)输入显示的数据,在数码管上正常显示

    设计说明

    本设计采用的是8位8段的数码管(8位代表8个数码管),每个数码管的结构图如下,下图为共阳极数码管,共阴极与共阳极数码管的的区别在于,公共端是接到高电平还是低电平。数码管的那个段需要点亮时,只需要给所对应的段给低电平例如如果要显示数字0,只需将a、b、c、d、e、f置0,其他段置1即可。

                               

    数码管可以显示0-F, 共阳极数码管显示的译码格式如下。

    显示的内容         段码(二进制)     段码(16进制)
    a b c d e f g h
    0 0 0 0 0 0 0 1 1 8'hc0
    1 1 0 0 1 1 1 1 1 8'hf9
    2 0 0 1 0 0 1 0 1 8'ha4
    3 0 0 0 0 1 1 0 1 8'hb0
    4 1 0 0 1 1 0 0 1 8'h99
    5 0 1 0 0 1 0 0 1 8'h92
    6 0 1 0 0 0 0 0 1 8'h82
    7 0 0 0 1 1 1 1 1 8'hf8
    8 0 0 0 0 0 0 0 1 8'h80
    9 0 0 0 0 1 0 0 1 8'h90
    a 0 0 0 1 0 0 0 1 8'h88
    b 1 1 0 0 0 0 0 1 8'h83
    c 0 1 1 0 0 0 1 1 8'hc6
    d 1 0 0 0 0 1 0 1 8'ha1
    e 0 1 1 0 0 0 0 1 8'h86
    f 0 1 1 1 0 0 0 1 8'h8e

           一般为了节约IO口的资源,数码管 的段选一般接在一起,如果要点亮第一个和第三个数码管,只需要将所对应的位选打开,根据要显示的内容打开段选,但是如果说要同时只显示第一个码管的a段和第二个数码管的b段就没办法实现,因为打开位选之后,打开a段之后,第二个数码管的a段也是打开的。所以就要利用人眼的视觉暂留效果,可以让第一个数码管显示a段,等待1ms之后再显示第二个数码管的b段,在人眼睛看到的是同时显示的。

    数码管驱动模块设计架构

    cnt产生1ms的标志信号,每个1ms到来改变一次数码管的位选,进行移位。 data_in为数码管输入的内容,经过位选之后,输出选择的数码管的内容,数码管的内容经过lut进行译码转化为16进制显示。

               

    由于本次输出的seg和sel采用两块8位74HC595芯片串转并进行输出,节约IO资源。将两块芯片看成一个模块,则为16位的串转并进行输出。ds是数据端口串行数据输入,shcp为移位寄存器的时钟输入,stcp存储寄存器时钟输入。

    下图为部分时序图,当shcp为时钟下降沿时,输入数据的最高位,数据最高位最终从第二个移位寄存器进行输出到段选所以输入数据的组成为{seg,sel}, ds在每个shcp的下降沿进行输入数据,上升沿时数据保持不变,由于总共要输入16位数据,所以需要16个下降沿,待16位数据全部输入后,再来一个时钟上升沿数据并行输出。

    具体的设计过程是 ,所需要的shcp的时钟设置为12.5MHz,所以先生成12.5M的时钟,由于每个下降沿需要对数据进行输入,上升沿保持不变。设计一个边沿检测电路对shcp的上升沿和下降沿进行检测 ,需要检测到32个,因为从0-31计数进行数据输入,开始计数的时候是从下降沿开始计数,在计数31时刚好也是一个下降沿,下一个上升沿 stcp输出一个高电平,数据进行并行输出  。

               

           这里要注意的是第一次计数是从下降沿开始计数,之后是来一个下降沿或者上升沿计数器加一,这里笔者采用状态机来实现,可能还有更多的方法,但是笔者习惯使用状态机,因为百分之90的逻辑都可以用状态机来实现。这里普通的计数器没办法实现,第一个状态先检查下降沿,检测到之后,跳转状态2计数器加1,检测到有上升沿或者下降沿并且未计满32,计数器加1,  如果没有检测到上升沿或者下降沿继续等待,如果检测到了,并且计满32返回状态1。

                                            

    生成issp的ip核

    这里没有用到probe,将它的位宽设置为0,将源位宽(数据输入)定义为32,创建好ip核之后,ctrl+o快捷键可以快速打开文件。

         

    代码设计

    顶层模块设计

    module sel_seg_top(
    	input	clk,
    	input	rst_n,
    	output	shcp,
    	output	stcp,
    	output	ds
    );
    wire [31:0] data_in;
    issp  issp(
    	.probe(),
    	.source(data_in)
    );
    
    wire [7:0] sel;
    wire [7:0] seg;
    sel_seg sel_seg(
    	.clk(clk),
    	.rst_n(rst_n),
    	.data_in(data_in),
    	.sel(sel),
    	.seg(seg)
    );
    hc595  hc595(
    	.clk(clk),
    	.rst_n(rst_n),
    	.data({seg,sel}),
    	.shcp(shcp),
    	.ds(ds),
    	.stcp(stcp)
    );
    
    endmodule

     数码管显示模块

    module sel_seg(
    	input			clk,
    	input			rst_n,
    	input [31:0]data_in,
    	output   [7:0] sel,
    	output	reg[7:0]	seg
    );
    
    //每1ms改变一下位选
    
    reg [19:0] cnt;
    localparam cnt_top=20'd50000;
    always@(posedge clk or negedge rst_n)
    	if(!rst_n)
    		cnt<=0;
    	else if(cnt<cnt_top-1)
    		cnt<=cnt+1;
    	else
    		cnt<=0;
    wire delay_1ms_done=(cnt==cnt_top-1)?1:0;
    
    //数码管位选移位,每隔1ms改变一个数码管显示
    
    reg [7:0] sel_r;
    always@(posedge clk or negedge rst_n)
    	if(!rst_n)
    		sel_r<=8'b0000_0001;
    	else if(delay_1ms_done)begin
    		if(sel_r==8'b1000_0000)
    			sel_r<=8'b0000_0001;
    		else
    			sel_r<=sel_r<<1;
    	end
    	else
    		sel_r<=sel_r;
    	
    选择要显示的数码管
    reg [3:0] disp;//显示的数码管
    always@(*)
    begin
    		case(sel_r)
    			8'b0000_0001:disp<=data_in[3:0];
    			8'b0000_0010:disp<=data_in[7:4];
    			8'b0000_0100:disp<=data_in[11:8];
    			8'b0000_1000:disp<=data_in[15:12];
    			8'b0001_0000:disp<=data_in[19:16];
    			8'b0010_0000:disp<=data_in[23:20];
    			8'b0100_0000:disp<=data_in[27:24];
    			8'b1000_0000:disp<=data_in[31:28];
    			default:disp<=0;
    		endcase
    end
    	
    //选择的数码管显示的内容
    always@(*)
    	if(!rst_n)
    		seg<=0;
    	else begin
    		case(disp)
    			4'h0:seg<=8'hc0;
    			4'h1:seg<=8'hf9;
    			4'h2:seg<=8'ha4;
    			4'h3:seg<=8'hb0;
    			4'h4:seg<=8'h99;
    			4'h5:seg<=8'h92;
    			4'h6:seg<=8'h82;
    			4'h7:seg<=8'hf8;
    			4'h8:seg<=8'h80;
    			4'h9:seg<=8'h90;
    			4'ha:seg<=8'h88;
    			4'hb:seg<=8'h83;
    			4'hc:seg<=8'hc6;
    			4'hd:seg<=8'ha1;
    			4'he:seg<=8'h86;
    			4'hf:seg<=8'h8e;
    			default:seg<=0;
    		endcase
    	end
    	
    assign sel=sel_r;
    endmodule

    位选和段选数据串转并进行输出

    module hc595(
    	input			clk,
    	input			rst_n,
    	input	[15:0]data,
    	output		shcp,
    	output	reg	ds,
    	output	reg	stcp
    );
    
    
    //生成12.5M的时钟
    reg [3:0] cnt;
    always@(posedge clk or negedge rst_n)
    	if(!rst_n)
    		cnt<=0;
    	else if(cnt<3)
    		cnt<=cnt+1;
    	else
    		cnt<=0;
    wire shcp_clk=(cnt<2)?1:0;
    assign shcp=shcp_clk;
    
    //边沿检测
    reg shcp_clk_c1;
    reg shcp_clk_c2;
    always@(posedge clk or negedge rst_n)
    	if(!rst_n)begin
    		shcp_clk_c1<=0;
    		shcp_clk_c2<=0;
    	end
    	else begin
    		shcp_clk_c1<=shcp_clk;
    		shcp_clk_c2<=shcp_clk_c1;
    	end
    
    wire nedge=shcp_clk_c2  && (~shcp_clk_c1);
    wire pedge=shcp_clk_c1  && (~shcp_clk_c2);
    
    //对shcp时钟上升沿和下降沿进行计数,采用状态机进行实现
    reg [5:0] shcp_cnt;
    reg state;
    always@(posedge clk or negedge rst_n)
    	if(!rst_n)begin
    		shcp_cnt<=0;
    		state<=0;
    	end
    	else begin
    		case(state)
    		0:	begin
    				if(nedge)begin
    					shcp_cnt<=shcp_cnt+1;
    					state<=1;
    				end
    				else
    					state<=0;
    			end	
    		1:	begin
    				if(nedge || pedge)begin
    					if(shcp_cnt<32)
    						shcp_cnt<=shcp_cnt+1'b1;
    					else
    						shcp_cnt<=0;
    				end
    				else
    					state<=state;
    			end
    		default:;
    		endcase
    	end
    //---------------------------------------------//	
    always@(posedge clk or negedge rst_n)
    	if(!rst_n)
    		begin
    			stcp<=0;
    			ds<=0;
    		end
    	else
    begin
    		case(shcp_cnt)
    			6'd0	:	begin	ds<=data[15];stcp<=0;	end
    			6'd1	:	;	
    			6'd2	:	ds<=data[14];
    			6'd3	:	;
    			6'd4	:	ds<=data[13];	
    			6'd5	:	;	
    			6'd6	:	ds<=data[12];	
    			6'd7	:	;	
    			6'd8	:	ds<=data[11];	
    			6'd9	:	;	
    			6'd10	:	ds<=data[10];	
    			6'd11	:	;	
    			6'd12	:	ds<=data[9];	
    			6'd13	:	;	
    			6'd14	:	ds<=data[8];	
    			6'd15	:	;	
    			6'd16	:	ds<=data[7];	
    			6'd17	:	;	
    			6'd18	:	ds<=data[6];	
    			6'd19	:	;	
    			6'd20	:	ds<=data[5];	
    			6'd21	:	;	
    			6'd22	:	ds<=data[4];	
    			6'd23	:	;	
    			6'd24	:	ds<=data[3];	
    			6'd25	:	;	
    			6'd26	:	ds<=data[2];	
    			6'd27	:	;	
    			6'd28	:	ds<=data[1];	
    			6'd29	:	;	
    			6'd30	:	ds<=data[0];	
    			6'd31	:	;	
    			6'd32	:	stcp=1;	
    			default:begin	ds<=0;stcp<=0;	end
    		endcase
    end
    
    
    		
    
    	
    	
    endmodule

    利用issp进行显示

    全编译并配置好代码之后,打开tool->issp,在name中将数据格式改为16进制,随便输入要显示的数据,可以正常显示。

     

     

    展开全文
  • 数码管显示

    千次阅读 2015-05-24 19:25:55
    要使某个数码管点亮,只需置上低电平,代码中该位置'0' 二、单个数码管显示 a~h:表示单个数码管上面的8个LED。 根据阳的特性,点亮相应的LED,组成想要的数字(一般由取模软件得到) 如:数码管显示...

    一、区分数码管的类别

    共阴数码管:即所有数码管的阴极接在一起。要使某个数码管点亮,只需置上高电平,代码中该位置'1'

    共阳数码管:即所有数码管的阳极接在一起。要使某个数码管点亮,只需置上低电平,代码中该位置'0'


    二、单个数码管显示

    a~h:表示单个数码管上面的8个LED。

    根据共阴共阳的特性,点亮相应的LED,组成想要的数字(一般由取模软件得到)

    如:共阴数码管显示数字'0,即代码中该数码管赋值0x3F (0011 1111)


    三、多位数码管显示

    1、区分段、位:段指的是单个数码管上的8段LED;位指的是数码管所在的位置

    2、存在问题:

    a)各个数码管轮流闪烁显示——原因:数码管逐个显示的间隔时间长

    b)数码管显示存在乱码残影——原因:数码管显示存在“鬼影”,即没有做消隐处理


    四、数码管消隐

    对不需要显示的数码管进行关闭操作即可。


    五、消除鬼影,残影

    1、为什么存在“鬼影”

    程序执行代码需要时间,存在瞬态,上一代码数据,会造成下一代码数据的干扰

    2、如何消除鬼影

    总的来说,就是对端口赋新值时,先清空上一次的数据。

    法1)操作段前,先关闭段

    //个位
    DataPort = 0xff;			//关闭段
    DataPort = Data[curNum%10];	//设置段,两个段操作之间有其他运算代码,即有时间间隔
    Location = 0x02;			//设置位
    
    delay(20);					//延时
    		
    //十位	
    DataPort = 0xff;
    DataPort = Data[curNum/10];
    Location = 0x01;
    		
    delay(20);

    法2)操作位前,先关闭位

    /*ERROR
    		
    DataPort = Data[curNum%10];	//设置段	
    Location = 0x00;			//关闭位
    Location = 0x02;			//设置位,两个位操作没有时间间隔,显示仍然会有残影
    		
    */
    
    //个位
    DataPort = Data[curNum%10];	//设置段
    Location = 0x02;			//设置位
    
    delay(20);					//延时
    		
    //十位
    Location = 0x00;
    DataPort = Data[curNum/10];
    Location = 0x01;
    		
    delay(20);

    注意:对段/位的关闭、赋值的操作不能是上下语句关系,必须要有时间间隔


    六、连接数码管

    1、可以数码管引脚直接与单片机连接,但是对于共阴数码管,因为单片机引脚驱动能力不足,需要外加电源驱动

    2、使用74HC573节省I/O口

    代码中的位锁存,段锁存(LATCH),其实分别控制两个74HC573的使能端。

    哪个使能有效,P0口的数据就往位或者段传送,达到对位和段的分别控制。



    展开全文
  • 我们使用的是共阳极数码管低电平点亮对应的LED,比如我们要点亮数码管中的LED a,需要在Q0上输出低电平,即 让 Q0 = 0; 同学们自己完成上表。 完整的源代码 #include <ioCC2530.h> //定义控制灯...
  • 共阳极数码管为例, 要想点亮某段, 只需要在相应的段上给低电平即可。图1B为共阳极数码管段码分布, 以及一个显示的实例。 图1 数码管段码分布及显示示例 按照工作方式, 数码管驱动可以分为和动态扫描。所谓静态...
  • 基于FPGA的数码管驱动

    2021-06-14 21:09:29
    数码管:所有 8 个发光二极管的正极或负极有一个公共端,通常必须接 GND(共阴极数码管)或者接 VCC(共阳极数码管)。 如果我们使用的是共阴极的数码管,那么就要将其公共端接地(或者接低电平 0),这便是数码管的...
  • 通常数码管分为共阳极数码管和共阴极数码管,结构如下图所示: 共阴8段数码管的信号端低电平有效,而共阳端接高电平有效。当共阳端接高电平时只要在各个位段上加上相应的低电平信号就可以使相应的位段发光。比如:...
  • FPGA-数码管显示

    千次阅读 多人点赞 2018-11-19 11:10:35
    今天来看看入门级必备代码之–数码管显示。 简单的说,理解了原理,哪种语言都...如果数码管是共阴极,给高电平1即可相应点亮,反之如果是共阳极,给低电平0即可相应点亮。所以才有: /******数字0-9的显示******/...
  • C51入门之数码管

    2019-11-11 06:37:16
    由于是阳极性,所以数码管低电平驱动点亮段画 •点亮0~9数码对应的段码,做成一个表格存入一个数组中。 code unsigned char disp_code[] = {0xC0,0xF9,0xA4,0xB0,0x99, 0x92,0x82,0xF8,0x80,0x90};...
  • 共阳极数码管字段为高电平时,点亮。本开发板所使用的数码管是共阴极数码管。 共有八个数码管,八个数码管采用2个74HC573锁存器对单片机P0口的输出信号进行锁存,并增强信号驱动能力进而驱动8个数码管,其中U7的...
  • fpga学习之数码管显示

    万次阅读 2018-12-09 19:14:48
    1、设计需求: 设计一个数码管驱动电路,是数码管能够...以共阳极数码管为例(给二极管低电平点亮二极管),如图二所示显示数字与段选关系 数码管位选如图三所示,Y0~Y7表示8位数码管。1为数码管有效 代码功能...
  • 共阳极数码管与共阴极数码管 共阴极–输出低电平0,点亮 共阳极–输出高电平点亮 共有十个引脚,2个接地GND, ②根据电路图看段选与位选 P2^6是段选,控制那一个数字的具体显示,可根据字形表对应输出 P2^7是位选...
  • 数码管显示实验、按键控制实验

    千次阅读 2019-06-11 11:37:10
    共阳极数码管,8个LED的阳极全部并联到一起引出连接+5V。点亮对应的数码管段给低电平,反之熄灭给高电平。 新建数码管SMG文件,用于装相关的驱动文件(smg.c)和头文件(smg.h)。 smg.c #include "smg.h" void ...
  • LED数码管结构与工作原理

    千次阅读 多人点赞 2019-11-27 00:16:01
    LED数码管有两大类,一类是共阴极接法,另一类是共阳极接法,共阴极就是7段的显示字码共用一个电源的负极,是高电平点亮,共阳极就是7段的显示字码共用一个电源的正极,是低电平点亮。只要控...
  • 51的静态和动态数码管的显示

    千次阅读 2019-03-06 09:18:42
    数码管其实就是有8个LED构成,分为a、b、c、d、e、f、g、dp,而数码管又分为共阴极(左边,高电平点亮)和共阳极(右边,低电平点亮),点亮对应的LED即可显示对应的数字,共阴极编码表如下: 0x3f , 0x06 , 0x5b ,...
  • 数码管动态显示模块

    2021-04-09 17:18:55
    数码管共阳极,即给端口低电平才能点亮 数码管显示代码 module seg_dynamic( input sys_clk , input sys_rst_n , input [19:0] data , //输入的数据 input [5:0] point , //小数点位,...
  • LED数码管也叫数码显示器,由8段(7段,8多一位小数点)发光二极管组成,控制不同组合,就可以...若选用共阳极LED数码管时,使他的公共阳极接高电平,阴极a-dp输入低电平,对应的二极管点亮 数码管各段与字节中各...
  • 所以当X1-X6接8255的IO口时,可以通过IO口输出低电平,将阴极拉低。同时8个段选A-Dp也引出了外部接口可以接到8255IO上,通过8255IO选择具体是哪一个LED亮,所以点亮数码管的原理已经很清楚了,X1-X6可以选择哪一个...
  • 由于刚上手FPGA,所以刚开始有些兵荒马乱,在网上疯狂的查找资料,结果是迷迷糊糊的。网上的那些教程啊什么的都是抄过来抄过去的,...由原理图可知,数码管共阳极的,所以给一个低电平数码管点亮。 首先对照上图将
  • 汇编语言题5

    2020-06-02 11:59:30
    采用共阳极接法,比如显示7,abc段低电平点亮,因此D2D1D0为0,D7D6D5D4D3为1,故7的段选码为11111000B,即0F8H。 若有一片8255A的连接如图7所示,端口地址的范围保持不变,在PC0连接了一个开关。 实现以下程序要求...
  • 这是共阳极数码管显示数据,当输入低电平,也就是0时相应的LED点亮。 对应16进制 Dp G F E D C B A D7D6D5D4D3D2D1D0 举个例子 显示0 ,那么ABCDEF点亮,G Dp不点亮,所以对应关系为: 1 1 0 0 0 0 0 0=C0 前面的...
  • 发光二极管采用共阳极接法,由于P0口为高电平呈输入状态,当有按键按下时,P0口呈低电平与按键对应的发光二极管满足点亮条件点亮。在程序编程上采用查询,查询P1口P1.0到P1.7的八个端口呈低电平,即查询是哪个选手先...
  • 采用了共阳极接法。 H——键盘,包括K1到K16矩阵键盘和K01到K04独立键盘。 I——DS18B20温度传感器接口。注意丝印指示温度传感器的接法。 J——红外接收管。 K——AT24C02电路。 L——蜂鸣器电路,低电平控制使能。 ...
  • 数字IC设计学习笔记 8位7段数码管 ...当led灯阴极为低电平,led灯点亮;当led灯阴极为高电平,led灯灭。 由于无法同时点亮8个数码管中单一的一个led灯,故采用动态扫描实现。 动态扫描:将操作平均
  • 数码管有共阴极和共阳极两种,对于共阳数码管,字形驱动输出0有效,字位驱动输出1有效;而对于共阴数码管则相反,即:字形驱动输出1有效,字位驱动输出0有效。 4.2矩阵按键 键盘是单片机系统中最常用的人机对话输入...
  • 通过4 个LED 数码管将测得的频率值显示给用户。 (8)系统软件 包括测量初始化模块、显示模块、信号频率测量模块、量程自动转换模 块、信号周期测量模块、定时器中断服务模块、浮点数格式化模块、浮点数算 术运算模块...
  • Proteus仿真—40个单片机初学程序.

    热门讨论 2009-04-13 13:00:56
    1. 闪烁灯 1. 实验任务 如图4.1.1所示:在P1.0端口上接一个发光二极管L1,使L1在不停地一亮一灭,一亮一灭的时间间隔为0.2秒。...如图13所示,利用AT89S51单片机的P0端口的P0.0-P0.7连接到一个数码管...

空空如也

空空如也

1 2
收藏数 28
精华内容 11
关键字:

共阳极数码管低电平点亮