精华内容
下载资源
问答
  • LCD1602动态显示
    千次阅读 多人点赞
    2019-06-05 10:49:17

    仿真元原理图如下:
    在这里插入图片描述

    /*-------------------------------------
    功能:LCD1602局部动态显示
    描述:在屏幕的第二行固定位置显示count:
    后面接着动态显示按键次数(00 ~ 99)
    Author: Zhang Kaizhou
    Date: 2019-6-5 10:50:22
    -------------------------------------*/
    #include <reg52.h>
    #include <string.h>
    #define uchar unsigned char
    #define uint unsigned int
    	
    uchar code table0[] = {"Press time"}; // 每行的字符数据
    uchar code table1[] = {"Count:00"};
    uchar code table2[] = {"0123456789"};
    sbit lcdrs = P1^2; // LCD数据/命令选择端
    sbit lcdrw = P1^3; // LCD读写选择端
    sbit lcden = P1^4; // LCD使能端,高脉冲有效
    sbit k1 = P1^5;
    uchar num, ge = 0, shi = 0;
    
    void init();
    void displayInit();
    void keyScan();
    void writeCommand(uchar command);
    void delay(uchar xms);
    void writeData(uchar dat);
    
    void main()
    {
    	init();
    	displayInit();
    	while(1)
    	{	
    		keyScan();
    	}
    }
    
    /*初始化LCD1602的设置*/
    void init()
    {
    	lcden = 0; // 拉低使能端,准备产生使能高脉冲信号
    	writeCommand(0x38); // 显示模式设置(16x2, 5x7点阵,8位数据接口)
    	writeCommand(0x0c); // 开显示,不显示光标
    	writeCommand(0x06); // 写一个字符后地址指针自动加1
    	writeCommand(0x01); // 显示清零,数据指针清零
    }
    
    /*LCD上电界面*/
    void displayInit()
    {
    	writeCommand(0x80); // 将数据指针定位到第一行首
    	for(num = 0; num < strlen(table0); num++)
    	{
    		writeData(table0[num]);
    		delay(5);
    	}
    	
    	writeCommand(0x80 + 0x40); // 将数据指针定位到第二行首
    	for(num = 0; num < strlen(table1); num++)
    	{
    		writeData(table1[num]);
    		delay(5);
    	}
    }
    
    /*按键扫描*/
    void keyScan()
    {
    	writeCommand(0x80 + 0x40 + strlen(table1) - 0x01);
    	if(!k1)
    	{
    		delay(5);
    		if(!k1)
    		{	
    			while(!k1);
    			ge++;
    			if(ge == 10)
    			{
    				ge = 0;
    				shi++;
    				if(shi == 10)
    				{
    					shi = 0;
    					displayInit();
    				}else{
    					writeCommand(0x80 + 0x40 + strlen(table1) - 0x02);
    					writeData(table2[shi]);
    					writeCommand(0x80 + 0x40 + strlen(table1) - 0x01);
    					writeData(table2[ge]);
    				}
    			}else{
    				writeData(table2[ge]);
    			}
    		}
    	}
    }
    
    /*写指令函数*/
    void writeCommand(uchar command)
    {
    	lcdrs = 0; // 命令选择
    	lcdrw = 0;
    	P0 = command;
    	delay(5);
    	
    	lcden = 1; // 产生一个正脉冲使能信号
    	delay(5);
    	lcden = 0;
    }
    
    /*写数据函数*/
    void writeData(uchar dat)
    {
    	lcdrs = 1; // 数据选择
    	lcdrw = 0;
    	P0 = dat;
    	delay(5);
    	
    	lcden = 1;
    	delay(5);
    	lcden = 0;
    }
    
    /*延时函数*/
    void delay(uchar xms)
    {
    	uint i, j;
    	for(i = xms; i > 0; i--)
    		for(j = 110; j > 0; j--);
    }
    
    更多相关内容
  • 嵌入式静态显示与动态显示

    千次阅读 2021-04-12 21:08:16
    **嵌入式静态显示与动态显示** 首先LED显示器工作方式有两种:静态显示方式和动态显示方式。下面细说两种不同的显示。 1.静态显示: 静态显示的特点是每个数码管的段选必须接一个8位数据线来保持显示的字形码。当...
                                                                **嵌入式静态显示与动态显示**
    

    首先LED显示器工作方式有两种:静态显示方式和动态显示方式。下面细说两种不同的显示。
    1.静态显示:
    静态显示的特点是每个数码管的段选必须接一个8位数据线来保持显示的字形码。当送入一次字形码后,显示字形可一直保持,直到送入新字形码为止。
    以七段码为例:
    在这里插入图片描述你需要8根线去控制它,你若想让它对应的地方亮,就给它对应的8位2进制代码为1,然后输入,就可以命它发亮而且是一直发亮,但是这是仅仅一个七段码就需要8根线来控制,而一个板子可以使用的接口是有限的,故就用到了动态显示。
    小显示,代码大家都懂
    在这里插入图片描述

    2.动态显示
    动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。选亮数码管采用动态扫描显示。所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。
    这上面就是说其实每次仅仅只有一个亮,但是每个灯亮的时间很短,变化很快,你就看到了都在亮。
    如下图,这是我做的小时钟。
    在这里插入图片描述这是运行的的时候,看起来是都亮的。
    在这里插入图片描述但是一静止,就只有一个亮了。(上图有个锁存器(中转器)没有显示)中转器的多些肯定是比版子多好很多
    这里我讲为什么,一个锁存器控制亮的地方(控制一个亮),一个锁存器控制亮的样子(这是我就输入对应七段码二进制了),
    而且可以一说的是我就同样一个版子,加上两个锁存器,控制了8个七段码合成的屏幕(一个板子是没有64根线的哈)。
    代码如下

    #include <reg52.h>
    #define uint unsigned int
    #define uchar unsigned char
    sbit du =P2^6;          
    sbit we =P2^7;
    
    void delay(uint z)    //时间函数dealy(1000)=1秒
    {
    	uint x,y;
    	for(x=z;x>0;x--)
    	   for(y=120;y>0;y--);
    }
    
    unsigned char leddata[]={ //用一字符组存更好变化
     
                    0x3F,  //"0"
                    0x06,  //"1"
                    0x5B,  //"2"
                    0x4F,  //"3"
                    0x66,  //"4"
                    0x6D,  //"5"
                    0x7D,  //"6"
                    0x07,  //"7"
                    0x7F,  //"8"
                    0x6F,  //"9"
                             };
    void main()
    {
    	int i=0,j=0,h=0,l=0,t=0;
    	while(1)
    	{
    		    we = 1;     //每次前面都要段选与位选为0,要不在原有值上再赋值会有问题,
    		                     这我说不出来为什么
    	        P1 = 0xff;
    	        we = 0;
    		    du = 1;
    	        P1 = 0x00;
    	        du = 0;
    	 
    			du = 1;
    		    P1 = leddata[i];        
    		    du = 0;                         //个位秒
    	  
    	        we = 1;
    		    P1 = 0x7f;
    		    we = 0;
    		                                  delay(5);//这是一个小延迟,以下每个变化后都有,大家可以想想每个都是5毫秒不变时间非常的短,就跳到下以个地方闪了,但又很快跳回来,
    这在肉眼是看不到中间变化的,这就是动态规划,它不是赋值了就不变的。
    
    		     we = 1;
    	         P1 = 0xff;
    	         we = 0;
    			
    	         du = 1;
    	         P1 = 0x00;
    	         du = 0;
    					 
    			du = 1;
    		    P1 = leddata[j];                   //十位秒
    		    du = 0;
    	  
    	        we = 1;
    		    P1 = 0xbf;
    		    we = 0;
    					             delay(5);
    			we = 1;
    	        P1 = 0xff;
    	        we = 0;
    			
    	        du = 1;
    	        P1 = 0x00;
    	        du = 0;
    					 
    		    du = 1;
    		    P1 = leddata[h];                     //各位分
    		    du = 0;
    	  
    	        we = 1;
    		    P1 = 0xef;
    		    we = 0;
    					             delay(5);
    		     we = 1;
    	         P1 = 0xff;
    	         we = 0;
    			
    	         du = 1;
    	         P1 = 0x00;
    	         du = 0;
    					 
    		     du = 1;
    		     P1 = leddata[l];                  //十位分,下面小时没有变化,没有写出来,可以同上。
    		     du = 0;
    	  
    	         we = 1;
    		     P1 = 0xf7;
    		     we = 0;
    					             delay(5);
    			we = 1;
    	        P1 = 0xff;
    	        we = 0;
    			
    	        du = 1;
    	        P1 = 0x00;
    	        du = 0;
    	 
    			du = 1;
    		    P1 = leddata[1];
    		    du = 0;
    	  
    	        we = 1;
    		    P1 = 0xfe;
    		    we = 0;
    											 delay(5);
    			we = 1;
    	        P1 = 0xff;
    	        we = 0;
    			
    	        du = 1;
    	        P1 = 0x00;
    	        du = 0;
    	 
    			du = 1;
    		    P1 = leddata[2];
    		    du = 0;
    	  
    	        we = 1;
    		    P1 = 0xfd;
    		    we = 0;
    					              delay(5);
    									t++;                 //这里上面共用6个dealy(5),就是dealy(30),而1000是一秒,33*30=990我就t%33来控制一秒变化(这里有点误差)
    				   if(t%34==0)                    //控制每秒变化,接下来就是改数了
    					 {
    						 i++;
    						 if(i==10)
    						 {
    							 i=0;
    							 j++;
    							 if(j==6)
    							 {
    								 j=0;
    								 h++;
    								 if(h==10)
    								 {
    									 h=0;
    									 l++;
    								 }
    							 }
    						 }
    					 }
    	     }
    	
    	}
    
    展开全文
  • 数码管动态显示

    千次阅读 2022-01-05 09:04:15
    数码管动态显示


    前言

      上期课程中,我们学习了数码管,并通过代码实现了数码管静态显示。本期课程将延续上节课的内容,讲解数码管动态显示。


      提示:上节课已经学习了数码管,所以跳过数码管的讲解,直接从数码管驱动开始讲解。

    一、数码管驱动

      由于段选信号共用,如图2所示,所以在同一时刻只能选择一个数码管,具体选择十位还是个位由位选信号决定。
      问:采用此种方式一次只能选择一种数码管,如何能够同时选择多种数码管?
      答:视觉暂留现象:物体快速移动时,在大脑中残留的影响会暂留一段时间。

    在这里插入图片描述

    图1. 数码管静态显示
    在这里插入图片描述

    图2. 数码管动态显示

    二、数码管原理图

      原理图中除了数码管的段选信号,还有数码管位选信号。数码管位选和段选信号都是低电平有效。

    在这里插入图片描述

    图3. 数码管原理图

    三、实验任务

    3.1 任务描述

      通过使用6位数码管动态显示,实现一个计时器,每0.5秒变化一次,显示数字123456。模块设计如图4所示,一个顶层模块调用两个子模块,time_count是计时模块,sel_led_dynamic是数码管动态显示模块,top_sel_led_dynamic是顶层模块。
    在这里插入图片描述

    图4. 模块关系示意图

    3.2 系统框图

    在这里插入图片描述

    图5. 系统框图

    3.3 模块原理图

    在这里插入图片描述

    图6. 模块原理图

    3.4 模块代码

    1. 创建time_count文件,并编写 time_count模块代码。
    module time_count(
    	input 	clk,//时钟频率,50MHz
    	input	rst_n,//复位信号,下降沿有效
    	
    	output reg	flag//一个时钟周期的脉冲信号 	
    
    );
    
    parameter 	MAX_NUM = 25'd25_000_000;//0.5s时钟
    reg [24:0]	cnt							;//时钟计数器
    
    //计时器对时钟计数,每0.5s输出一个时钟周期脉冲信号
    always@(posedge clk or negedge rst_n)begin
    	if(!rst_n)begin//按下复位信号时
    		cnt <= 25'd0;//计数器设置位0
    		flag <= 1'b0;//周期脉冲信号设置位0
    	end 
    	else if(cnt == MAX_NUM - 1'd1)begin//如果时间到
    		cnt <= 25'd0;//计数器清零
    		flag <= 1'b1;//周期脉冲信号输出为1,表示记慢一个周期
    	end 
    	else begin//如果时间没有到
    		cnt <= cnt + 1'd1;//计数器不停计数
    		flag <= 1'b0;//周期脉冲信号不变
    	end 
    end 
    
    
    endmodule 
    
    1. 创建sel_led_dynamic文件,并编写 sel_led_dynamic模块代码。
    module sel_led_dynamic(
    	input 				clk  ,//时钟,50MHz
    	input 				rst_n,//复位信号,下降沿有效
    	input 				flag ,//周期信号
    	
    	output reg [5:0]	sel  ,//位选信号,六个数码管
    	output reg [7:0]	seg  //段选信号,八段led
    
    );
    
    reg [2:0]	cstat ;//当前状态
    reg [2:0]	nstat ;//下一个状态
    
    //状态跳转
    always@(posedge clk or negedge rst_n)begin
    	if(!rst_n)begin//下降沿有效
    		cstat <= 3'd0;//当前状态置0
    	end 
    	else begin
    		cstat <= nstat;//状态跳转
    	end 
    end 
    
    //下一个状态判断(组合逻辑)
    always@(*)begin
    
    	case(cstat)
    		3'd0:	if(flag)begin
    					nstat = 3'd1;
    				end 
    				else begin
    					nstat = 3'd0;
    				end 
    		3'd1: if(flag)begin
    					nstat = 3'd2;
    				end 
    				else begin
    					nstat = 3'd1;
    				end 
    		3'd2: if(flag)begin
    					nstat = 3'd3;
    				end 
    				else begin
    					nstat = 3'd2;
    				end 
    		3'd3: if(flag)begin
    					nstat = 3'd4;
    				end 
    				else begin
    					nstat = 3'd3;
    				end 
    		3'd4: if(flag)begin
    					nstat = 3'd5;
    				end 
    				else begin
    					nstat = 3'd4;
    				end 
    		3'd5: if(flag)begin
    					nstat = 3'd0;
    				end 
    				else begin
    					nstat = 3'd5;
    				end 
    	default:	nstat= 3'd1;
    	endcase 
    end 
    
    reg [2:0] value;
    
    //各个状态下的动作(可以组合也可以时序)
    always@(*)begin
    	if(!rst_n)begin
    		value = 3'd0;
    	end 
    	else begin
    		case(cstat)
    			3'd0:   begin
    							 sel = 6'b111_110;//选择最右边数码管。 sel低有效
    							 value = 3'd1;
    					end
    			3'd1:   begin
    							 sel = 6'b111_101;
    							 value = 3'd2;
    					end
    			3'd2:   begin
    							 sel = 6'b111_011;
    							 value = 3'd3;
    					end
    			3'd3:   begin
    							 sel = 6'b110_111;
    							 value = 3'd4;
    					end
    			3'd4:   begin
    							 sel = 6'b101_111;
    							 value = 3'd5;
    					end
    			3'd5:   begin
    							 sel = 6'b011_111;
    							 value = 3'd6;
    					end
    		   default:		begin//默认就第1种情况
    							 sel = 6'b111_110;
    							 value = 3'd1;
    					  	end
    		endcase
    	end 
    end 
    
    //数码管seg的输出
    always@(*)begin
    	if(!rst_n)begin
    		 seg = 8'b00000000;
    	end 
    	else begin
    		case(value)
    			 3'd1:   seg = 8'b11111001;//根据数码管真值表查找
    			 3'd2:   seg = 8'b10100100;
    			 3'd3:   seg = 8'b10110000;
    			 3'd4:   seg = 8'b10011001;
    			 3'd5:   seg = 8'b10010010;
    			 3'd6:   seg = 8'b10000010;
    			 default :   seg = 8'b00000000;
    		endcase
    	end 
    end 
    
    endmodule 
    
    1. 创建top_sel_led_dynamic文件,并编写 top_sel_led_dynamic模块代码。
    module top_sel_led_dynamic(
    	input 			clk  ,//时钟信号,50MHz
    	input 			rst_n,//复位信号,下降沿有效
    	
    	output [5:0]	sel  ,//位选信号
    	output [7:0]	seg   //段选信号
    );
    wire flag;//wire连接两个模块
    parameter	MAX_NUM = 25'd25_000_000;
    time_count #(.MAX_NUM(MAX_NUM))	u_time_count(//实例化计时器模块
    .clk		(clk)  ,//时钟频率,50MHz
    .rst_n		(rst_n),//复位信号,下降沿有效
    
    .flag		(flag)  //一个时钟周期的脉冲信号 	
    
    );
    
    sel_led_dynamic	u_sel_led_dynamic(//实例化数码管动态显示模块
    .clk  	(clk)  ,//时钟信号
    .rst_n	(rst_n),//复位信号,下降沿有效
    .flag 	(flag) ,//周期信号
    
    .sel  	(sel)  ,//位选信号,六个数码管
    .seg  	(seg)   //段选信号,八段led
    
    );
    	
    endmodule
    
    

    3.5 测试代码

      创建top_sel_led_dynamic_tb测试文件,并编写 top_sel_led_dynamic_tb测试模块代码。

    `timescale 1ns/1ns//单位1ns/精度1ns
    module top_sel_led_dynamic_tb();
    
    reg 			clk  ;
    reg 			rst_n;
    wire [5:0]		sel  ;
    wire [7:0]		seg  ;
    
    parameter CYCLE = 5'd20   ;//20ns
    parameter MAX_NUM = 7'd100;//计时100x20ns
    
    always #(CYCLE/2) clk = ~clk;//10ns翻转时钟
    
    initial begin
    	clk = 1'b0			  ;//时钟置0
    	rst_n = 1'b0		  ;//复位信号置0
    	#(CYCLE)			  ;//延迟20ns
    	rst_n = 1'b1		  ;//复位信号置1
    	#(MAX_NUM * CYCLE * 6);//观看六个数码管的情况
    	$stop				  ;//停止
    end 
    top_sel_led_dynamic	#(.MAX_NUM(MAX_NUM)) u_top_sel_led_dynamic(
    .clk  	(clk)  ,//时钟信号,50MHz
    .rst_n	(rst_n),//复位信号,下降沿有效
    
    .sel  	(sel)  ,//位选信号
    .seg   	(seg)//段选信号
    );
    endmodule 
    

    3.6 功能仿真

      在功能仿真中,与数码管静态显示不同的地方就是sel位选信号不停改变。seg是段选信号,不同的段选信号对应1—6个数字。
    在这里插入图片描述

    图7. 数码管动态显示仿真

    四、引脚分配

    在这里插入图片描述

    图1. pin planner
    元件管脚
    SEL0A4
    SEL1B4
    SEL2A3
    SEL3B3
    SEL4A2
    SEL5B1
    DIG0B7
    DIG1A8
    DIG2A6
    DIG3B5
    DIG4B6
    DIG5A7
    DIG6B8
    DIG7A5
    CLOCK(时钟)E1
    KEY1E15
    表1. 引脚信息表

    五、运行效果

    数码管动态显示


    总结

      本期课程中,我们讲解了数码管动态显示的原理是改变数码管的位选信号。下期课程中将基于数码管动态显示,制作一个数字时钟。敬请期待!谢谢你的观看!

    展开全文
  • 数码管的静态显示和动态显示

    千次阅读 2021-10-23 08:28:56
    静态显示原理:LED显示器工作方式有两种:静态显示方式和动态显示方式。 二、数码的静态显示 静态显示的特点是每个数码管的段选必须接一个8位数据线来保持显示的字形码。当送入一次字形码后,显示字形可一直保持,...

    一、数码管简介

        数码管也称LED数码管,不同行业人士对数码管的称呼不一样,其实都是同样的产品。

        按发光二极管单元连接方式可分为共阳极数码管共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管,共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮,当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管,共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮,当某一字段的阳极为低电平时,相应字段就不亮。

    生活中常见的数码管主要有1位数码管,两位数码管,三位数码管,四位数码管,五位数码管,六位数码管,八位数码管。

     

     静态显示原理:LED显示器工作方式有两种:静态显示方式和动态显示方式。

     二、数码的静态显示

        静态显示的特点是每个数码管的段选必须接一个8位数据线来保持显示的字形码。当送入一次字形码后,显示字形可一直保持,直到送入新字形码为止。这种方法的优点是占用CPU时间少,显示便于检测可控制。缺点是硬件电路比较复杂,成本较高。 

     下面是一位数码管静态显示的仿真电路图,由于本次演示的是共阴极数码管,所以数码管右端的公共引脚接地。左端的八个引脚分别对应数码管的A,B,C,D,E,F,G,H。与单片机的P0口相连接。

     

     下面的程序功能实现的是从0开始显示数字,每隔一秒切换一次,循环显示到F。

    #include<reg51.h>//包含头文件
    unsigned char code tabl[]={0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f, 0x77, 0x7c, 0x39, 0x5e, 0x79, 0x71};//定义数码管显示数字编码数组(这里采用的是共阴极数码管的编码)
    void delayms(unsigned int xms){//延时函数
    unsigned int i,j;
        for(i=xms;i>0;i--)
            for(j=110;j>0;j--)
                ;
    }
    void display(){//显示函数
        unsigned char i;
        for(i=0;i<16;i++){
            P0=tabl[i];//送入数码管需要显示的数字进行显示
            delayms(1000);//延时1秒
        }
    }
    void main(){//主函数
    
        while(1){//whlie大循环
    
            display();
    
        }
    }

     仿真运行结果截图:

     

     

    二、动态显示方式: 

        将所有的数码管的段选线并接在一起,用一个IO接口控制,公共端并不是直接接地(共阴极)或者电源(共阳极),而是通过相应的IO接口控制。以阴极为例假设4个数码管工作过程为:每个数码管的公共端与一根IO相连,第一步使最右边一个数码管的公共端为0,其余数码管公共端为1,同时在IO上 发送右边第一个数码管的字段码,这时候只有右边的第一个数码管显示,其余不显示;第二部使右边第二个数码管的公共端为0,其余的公共端为1,同时在上发送右边第二个数码管的字段码,这时候,只有右边第二个数码管显示,其余不显示,以此类推,直到最后一个,这样子4个数码管轮流显示相应的信息,一遍显示完毕,隔一段时间,又这样循环显示。从计算机角度,每个数码管隔一段时间才显示一次,但是由于人的视觉暂留效应,只要隔离时间足够短,循环的周期足够长,每秒达到24次以上,看起来数码管就一直稳定显示了,这就是动态显示原理。

     

     下面的程序功能是利用数码管的动态扫描,实现四位数码管显示1234这四个数字

    #include<reg51.h>
    sbit we1=P2^0;//定义数码管第一位的公共控制端,用来控制数码管的显示和关闭
    sbit we2=P2^1;
    sbit we3=P2^2;
    sbit we4=P2^3;
    unsigned char code tabl[]={0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f, 0x77, 0x7c, 0x39, 0x5e, 0x79, 0x71};
    void delayms(unsigned int xms){
        unsigned int i,j;
        for(i=xms;i>0;i--)
            for(j=110;j>0;j--)
                ;
    }
    void display(){
        we1=0;//给左边第一个数码管公共端一个低电平,使其进行显示
        P0=tabl[1];//送入数字1到数码管中
        delayms(5);//延时5ms 
        we1=1;//给第一个数码管的公共端一个高电平,使其关闭显示
        P0=0xff;//消影处理,(这里非常重要,如果不进行消影,会使下一个数码管显示不正确,出现乱码的情况)
    
        we2=0;//这里是进行第二个数码管显示,原理和第一个显示原理一样
        P0=tabl[2];
        delayms(5);
        we2=1;
        P0=0xff;
    
        we3=0;
        P0=tabl[3];
        delayms(5);
        we3=1;
        P0=0xff;
    
        we4=0;
        P0=tabl[4];
        delayms(5);
        we4=1;
        P0=0xff;
    
    }
    void main(){
    
        while(1){
    
            display();
    
        }
    }
    

    动态扫描显示仿真结果截图

     

    展开全文
  • 1、数码管动态显示

    千次阅读 2019-08-22 14:53:53
    数码管动态显示(多位数码管)原理 数码的动态显示:所谓动态显示是我们轮流向各位数码管送出相应的形码和相应的位选,利用发光管的余晖和人眼视觉的暂留作用,使人的感觉好像数码管各位的数码管同时都在显示,二...
  • 什么是动态显示2.什么是静态显示3.优缺点对比二、如何控制多只数码管1.电路图2.代码3.程序分析三、控制多只数码管的方法 本次实验任务如下: 一、动态显示与静态显示的比较 1.什么是动态显示 驱动电路可以使数码管...
  • 文章是参考博客http://blog.csdn.net/eastmount/article/details/41808179完成,主要讲述通过GridView控件点击加号图片动态添加本地相册图片,点击图片可以删除已添加图片。同时界面比较美观。 免费资源,希望对大家...
  • 51单片机——数码管动态显示

    千次阅读 2021-05-19 17:03:11
    在静态显示时所有数码管显示的是一样的,动态显示时可以单独决定每个数码管显示什么; 静态显示时,数码管是常亮的。动态显示时每时刻只有一个数码管在亮; 2、按原理图找对应控制端口 数码管的显示由P0口...
  • matlab 坐标图动画,动态显示数据

    千次阅读 2021-04-23 07:06:17
    但是有些时候,比如实时的数据采集然后通过串口或pci在matlab中画出数据的变化图并同步动态显示,以及在一些想用matlab绘图回放大块的数据模拟随时间变化的情景。这时候就需要用到坐标图的动画显示了。这个功能实现...
  • 设计一个单片机控制的两位数码管动态显示电路,动态显示任意两位数字。 要求: 1、在Proteus中绘制单片机控制的数码管动态显示电路; 2、在Keil软件中编写控制程序(c语言)
  • 【51单片机】数码管的静态显示和动态显示 数码管显示原理 此次以点亮共阴数码管为例,a,b,c,d,e,f,g,dp在二进制中按照低位到高位的顺序对应。下表用16进制表达对应的数码管点亮的图案 静态显示 数码管有静态显示和...
  • FPGA数码管静态与动态显示区别

    千次阅读 2020-07-12 22:32:21
    FPGA数码管静态与动态显示区别 1.1 静态显示 静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。静态驱动的优点是编程简单,显示...
  • C51单片机数码管动态显示

    万次阅读 多人点赞 2018-08-27 21:49:25
    数码管作为最廉价的输出设备,在各种自动化设备中有很大的应用,最简单普通的显示方式为动态刷新显示,称为假动态显示,即通过分时扫描每一位,利于人眼的视觉停留现象,造成一种静态显示的效果,如下图所示: ...
  • 单片机实验(十)数码管动态显示

    千次阅读 2020-11-22 16:49:07
    2、实验目的:学习通过编程数码管动态显示。 3、实验连接图。 4、实验代码。 #include<reg52.h> unsigned char seg7code[]={0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x00}; ...
  • 数码管动态显示原理

    千次阅读 2018-12-27 22:03:00
    2、由于段码连接在一起,如果数码管全亮,则显示的数据相同,所以为了显示不同的数字,任何时刻,只能有一个数码管显示,其余不显示。 3、我们用软件使这几个数码管轮流显示我们需要的数字。 4、只要更新频率足够...
  • 51单片机:数码管动态显示

    万次阅读 多人点赞 2020-06-01 17:54:14
    51单片机:数码管的动态显示 51单片机,用三个7段共阴极数码管动态显示0~99,每隔0.5s刷新一次数字。用keil与Proteus联合仿真 硬件设计 以AT89C51单片机为核心,包括74HC573锁存器,三个7段共阴极数码管。 1.74HC573...
  • html数据动态显示、利用ajax动态显示mysql的数据

    千次阅读 热门讨论 2017-06-22 15:15:47
    然而网页的动态显示卡了好久(温湿度一直更新,静态html不能一直刷新),多次请教最后还是解决了,方法就是利用ajax来实现。准备工作环境:php环境、jquery、mysqlmysql: 数据库名称:design 表名:testmysql> ...
  • 在前面,我们对于电路的动态显示进行了一定的学习与了解。 (即数码管显示实验与数码管动态显示实验) 详见:单片机数码管实验 这次,我们将进一步学习一下开发板动态显示电路移植的知识。 即上文实验项目三的...
  • FPGA之数码管动态显示

    千次阅读 2020-02-06 10:28:09
    实现数码管动态计数,每隔0.1秒计数一次 数码管连接方式不同分为共阴极数码管和共阳极数码管。 数码管引脚: 上图两个com引脚实际是连在一起的,其他引脚的公共端,称为位选,位选的高低电平决定改数码管能否点亮,...
  • 动态数码管显示原理

    千次阅读 2020-12-06 15:13:12
    (除资料夹通篇无代码)静态显示数码管对比学习动态显示数码管原理(两位8字形),初识模块思维
  • 很多网站都会在顶部显示实时的日期,时间,而且时间可以根据自己电脑的时间自动的更新。就像网站上装了一个时钟一样,当用户进入我们做的网站时就会看到今天是哪一年,哪一月,哪一日,星期几,时,分,秒,并且它是...
  • Vue中什么是动态组件

    千次阅读 2019-09-30 10:46:23
    简单的说,动态组件就是将几个组件放在一个挂载点下,这个挂载点就是标签,其需要绑定is属性,属性值为父组件中的变量,变量对应的值为要挂载的组件的组件名,然后根据父组件里某个变量来动态显示哪个,也可以都不...
  • 51单片机之动态数码管显示

    万次阅读 多人点赞 2019-05-17 19:34:33
     动态显示是多个数码管,交替显示,利用人的视觉暂停作用使人看到多个数码管同时显示的效果。就像我们看的电影是有一帧一帧的画面显示的,当速度够快的时候我们看到它就是动态的。当我们显示数码管的速度够快的时候...
  • 8位数码管动态显示字符

    千次阅读 2021-03-15 10:31:22
    使用单片机89C51的P0和P2口显示“872AF635”。 Proteus连线 过程 1、首先定义好数码管的字符码,我习惯采用共阴极的(使用共阳极的数码管直接取反就行了) uchar code display[]={ 0x0C0,//"0" 0x0F9,//"1" 0x0...
  • PyQt5实现数据动态显示【超简单,附源码】

    千次阅读 多人点赞 2021-01-07 11:50:34
    窗口的初次显示 编写ui驱动代码 from guitest import Ui_MainWindow #导入我们的ui文件 from PyQt5.QtWidgets import * #导入pyqt的相关文件 import sys #导入系统库 if __name__ == "__main__": #创建应用...
  • 数码管动态显示电路设计(VHDL)

    千次阅读 多人点赞 2020-11-26 20:39:21
    VHDL数码管动态显示电路 文章目录前言一、动态数码管是什么?二、VHDL实现代码1.根据 电路图完成VHDL描述:2.8个数码管显示不同的数字或符号3.管脚锁定总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:...
  • 动态数码管显示实验

    万次阅读 多人点赞 2019-04-19 19:20:24
    本实验采用了普中科技的51单片机开发板 本实验以静态数码管显示实验为基础 通过动态扫描方式静态显示八个数据
  • Tkinter界面动态显示变化数值

    千次阅读 热门讨论 2021-04-03 16:34:30
    Label(top, text= var.get() , font = ("黑体",14),fg = "red" , width = 12,height = 2).place(x = 120,y = 40,anchor = 'nw') top.mainloop() 通过StringVar()和IntVar()就可以利用传感器等将变量值动态显示在界面...
  • vue 动态显示实时时间

    千次阅读 2020-08-31 17:47:33
    成品图: 简单来说就两步,首先把时间转换成常规时间,再定时器让其动起来 首先data里面定个变量showtime,用timeFormate方法转换当前时间,nowTimes动起来 ... // 显示当前时间 timeFormate(timeStamp) { le
  • vue实现当前时间动态显示

    千次阅读 多人点赞 2020-10-29 21:02:29
    beforeDestroy: function () { if (this.timer) { clearInterval(this.timer) } }, this.timer即为定时器 做到这里时间就可以显示了 如图: 3.我们可以对时间进行格式化: 按钮改为需要调用格式的方法即可 {{...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,275,334
精华内容 510,133
关键字:

什么是动态显示