led数码管proteus_c51单片机数码管

led数码管proteus_c51单片机数码管单片机——数码管数码管原理共阴极段码原理如何显示小数点共阳极单只数码管共阴极数码管从0-9两个单只数码管从00-99共阳极数码管从0-9数码管原理共阴极段码原理显示字符共阴极段码00x3f10

数码管原理

在这里插入图片描述

共阴极

段码原理

在这里插入图片描述

显示字符 共阴极段码
0 0x3f
1 0x06
2 0x5b
3 0x4f
4 0x66
5 0x6d
6 0x7d
7 0x07
8 0x7f
9 0x6f

如何显示小数点

dp=1时,为小数点,在段码后+0x80也可以

共阳极

共阳极与共阴极相反(就不演示了)

显示字符 共阳极段码
0 0xc0
1 0xf9
2 0xa4
3 0xb0
4 0x99
5 0x92
6 0x82
7 0xf8
8 0x80
9 0x90

单只数码管

共阴极

数码管从0-9

  1. 演示
    在这里插入图片描述

  2. 用到的器件

    数码管:7seg 然后找cat
    74hc573
    
  3. 代码

    #include<reg51.h>
    #include<intrins.h>
    
    #define uint unsigned int 
    #define uchar unsigned char
    
    uchar code tab[] = { 
         0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
    
    void delay(uint xms){ 
         
    	uint i,j;
    	for(i=xms;i>0;i--){ 
         
    		for(j=110;j>0;j--);
    	}
    }
    
    void main(){ 
         
    	while(1){ 
         
    		uint i;
    		for(i=0;i<10;i++){ 
         
    			P2=tab[i];
    			delay(500);
    		}
    	}
    }
    

两个单只数码管从00-99

  1. 演示

    由于P0口比较特殊,所以不能用74hc573器件,需要用上拉电阻(pullup)或者电阻(res)
    在这里插入图片描述

  2. 代码

    #include<reg51.h>
    #include<intrins.h>
    
    #define uint unsigned int
    #define uchar unsigned char
    	
    	
    void delay(uint xms){ 
         
    	uint i,j;
    	for(i=xms;i>0;i--){ 
         
    		for(j=110;j>0;j--);
    	}
    }
    
    void main(){ 
         
    	uint i,j;
    	uchar code tab[] = { 
         0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
    	while(1){ 
         
    		for(i=0;i<100;i++){ 
         
    			P0=tab[i/10];
    			delay(70);
    			
    			P2=tab[i%10];
    			delay(70);
    		}
    	}
    }
    

共阳极

数码管从0-9

  1. 演示
    在这里插入图片描述

  2. 器件

    数码管:7seg然后找道an
    2n3702
    
  3. 代码

    #include<reg51.h>
    
    #define uint unsigned int 
    #define uchar unsigned char 
    	
    uchar code tab[] = { 
         0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
    
    sbit s=P3^0;
    
    void delay(uint xms){ 
         
    	uint i,j;
    	for(i=xms;i>0;i--){ 
         
    		for(j=110;j>0;j--);
    	}
    }
    
    void main(){ 
         
    	uint i;
    	s=0;
    	while(1){ 
         
    		for(i=0;i<10;i++){ 
         
    			P2=tab[i];
    			delay(500);
    		}
    	}
    }
    

今天的文章led数码管proteus_c51单片机数码管分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/84625.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注