精华内容
下载资源
问答
  • 简单共阳极数码管电路图(一) 动态扫描显示:下图示出了6只阳LED的动态扫描电路图。图中,8155的B口和所有的dp(sp),g,f,e,d,c,b,a引线相连,各LED控制端G(即图中所示各个数码管内部的0,1,2,3,4,5...
  • 1,基于STM32+TM1638芯片的共阳极数码管驱动程序,可同时驱动8个数码管,函数封装很好,使用时只需要调用函数,参数为每个数码管需要显示的数字即可 2,亲测有效,有疑问可在下面评论
  • 阳极数码管-共阳极数码管显示

    千次阅读 2021-01-13 00:25:40
    阴极数码管高电平驱动,公共端是负极 共阳极数码管低电平驱动,公共端是正极阳极七段数码管,如果要显示字母L,则abcdefg七段对应的段应该接电平是答案是:A1110001最低027元/天开通百度文库会员,可在文库查看...

    共阴极数码管高电平驱动,公共端是负极 共阳极数码管低电平驱动,公共端是正极

    共阳极七段数码管,如果要显示字母L,则abcdefg七段对应的段应该接电平是

    答案是:A1110001

    最低027元/天开通百度文库会员,可在文库查看完整内容> 原发布者:最酒店 共阳数码管和共阴数码管的区别 共阳极数码管是指八段数码管的八段发光二极管的阳极(正

    共阳极数码管,只能是共阳极接v+,a,b,c,d,e,f,g,dp这8个引脚分别经过8个限流电阻接8个8050的c极,8个8050的e接gnd。8个8050的8个b极分别经过8个电阻接到8个驱动信

    原发布者:最酒店 共阳数码管和共阴数码管的区别 共阳极数码管是指八段数码管的八段发光二极管的阳极(正极)都连在一起,而阴极对应的各段可分别控制,如图a所

    所谓共阳共阴,是针对数码管的公共脚而言的。一个1位典型的数码管,一般有10个脚,8个段码(7段加1个小数点),剩下两个脚接在一起。各个段码实际上是一个发光

    const int SEG_CODE[12 + 10] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x

    换共阴极的数码管驱动电路。如果是单片机io口直接驱动的,只要把原电路中数码管的公共端接地,显示代码取反输出即可。

    做电子毕业设计 89C52控制交通灯原理图用的

    LED数码有共阳和共阴两种,把这些LED发光二极管的正极接到一块(一般是拼成 再把多个这样的8字装在一起就成了多位的数码管了。 图1:多位数码管 LED数码有共

    共阴--就是阴极为数码管的公共端,按照发光管二极管的原理,当阳极接电源正极,阴极接电源负极,发光二极管点亮。换句话说,共阴极的数码管,当a,b,c,d,e,f,g脚分别

    按发光二极管zd单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。共阳数码管在应用

    共阳就是公共端接高电平(+5v),此时a,b,c,d,e,f,g,h(h为小数点)哪个段码给低电平哪段就会点亮。比如0是要让a,b,c,d,e,f段亮。输入的显示码为(h段为高位)11000000b

    点亮电平不一样!

    要详细的排序及实物图中引脚的具体排序

    用万用表测一下就可以了。数码管分为共阴极和共阳极。一般情况下有10个引脚。上面5个下面5个,每排的中间一个一般情况下是接低电平或者高电平。先用万用表的正极

    数码管里面使用的是发光二极管、发光二极管有两个极、阳极(正极)、阴极(负极)。把所有发光二极管的阳极接在一起叫共阳。反之则共阴。

    因为数码管是共阴极,所以W1,W2,W3,W4的阴极都是相同的,应该通过控制。

    数码管是共阴极,意思是几段数码管的阴极都接在一起。这样只要给阴极一个高电平,所有的段码都不会亮,如果给低电平,则看对应阳极的电平高低,所以共阴极就是位

    两个七段数码管共阴极和共阳极 从0至F如何编程

    共阳unsigned char leddata[]={ 0xC0, //"0" 0xF9, //"1" 0xA4, //"2" 0xB0, //"3" 0x99, //"4" 0x92, //"5" 0x82, //"6" 0xF8, //"7" 0x80, //"8" 0x90, //"9" 0x

    这个很好理解: 共阳极就是数码管,比如说7段的那种,每一段(相当于每一个发光二极管)的阳极都连到了一起,假如你把阳极接上限流电阻并接上电源,然后控制数码

    比如说:要数码管显示1,那么abcdefg的值不是01100000 吗? 为什么编程用。

    共阴就是公共端为阴极,所以高电平点亮。所以abcdefg的值是01100000 ,编程要看你用在什么上,如果是51的话你可以用位操作,单独把其中的两们输出置1。用FPGA

    共阳极数码管与共阴极数码管的十进制的区别

    共阳极数码管与共阴极数码管,是在结构上的不同,就是内部发光二极管是正极公用,还是负极公,仅此区别。所以,在应用时在电路中的连接也就不同了,在写程序时需

    共阴极是位选接地,共阳极是位选接高电平,用万用表就可以测出来了,找到位选,分别接低电平和高电平看一看段选是否亮,能亮就对应共阴和共阳

    标题:共阳极数码管-共阳极数码管显示

    展开全文
  • Arduino引脚的2~8号接数码管刚开始写的时候,很土,没有定义数码管函数,直接在loop里写了一堆[mw_shl_code=applescript,true]void setup() {Serial.begin (9600) ;for (int i = 2 ; i < 9 ; i++){ pinMode (i,...

    Arduino引脚的2~8号接数码管

    刚开始写的时候,很土,没有定义数码管函数,直接在loop里写了一堆

    [mw_shl_code=applescript,true]void setup() {

    Serial.begin (9600) ;

    for (int i = 2 ; i < 9 ; i++)

    { pinMode (i,OUTPUT);

    digitalWrite ( i , 1);  //通过一个for循环把2到8脚定义成数字输出,并且电平与阳极电平一致

    }

    }

    void loop() {

    digitalWrite(2 , 0 );

    digitalWrite(3 , 0 );

    digitalWrite(4 , 0 );

    digitalWrite(5 , 1 );

    digitalWrite(6 , 0 );

    digitalWrite(7 , 0 );

    digitalWrite(8 , 0 );

    delay (101);

    digitalWrite(2 , 0 );

    digitalWrite(3 , 1 );

    digitalWrite(4 , 1 );

    digitalWrite(5 , 1 );

    digitalWrite(6 , 1 );

    digitalWrite(7 , 1 );

    digitalWrite(8 , 0 );

    delay (101);

    digitalWrite(2 , 1 );

    digitalWrite(3 , 0 );

    digitalWrite(4 , 0 );

    digitalWrite(5 , 0 );

    digitalWrite(6 , 1 );

    digitalWrite(7 , 0 );

    digitalWrite(8 , 0 );

    delay (101);

    digitalWrite(2 , 0 );

    digitalWrite(3 , 0 );

    digitalWrite(4 , 1 );

    digitalWrite(5 , 0 );

    digitalWrite(6 , 1 );

    digitalWrite(7 , 0 );

    digitalWrite(8 , 0 );

    delay (101);

    digitalWrite(2 , 0 );

    digitalWrite(3 , 1 );

    digitalWrite(4 , 1 );

    digitalWrite(5 , 0 );

    digitalWrite(6 , 0 );

    digitalWrite(7 , 1 );

    digitalWrite(8 , 0 );

    delay (101);

    digitalWrite(2 , 0 );

    digitalWrite(3 , 0 );

    digitalWrite(4 , 1 );

    digitalWrite(5 , 0 );

    digitalWrite(6 , 0 );

    digitalWrite(7 , 0 );

    digitalWrite(8 , 1 );

    delay (101);

    digitalWrite(2 , 0 );

    digitalWrite(3 , 0 );

    digitalWrite(4 , 0 );

    digitalWrite(5 , 0 );

    digitalWrite(6 , 0 );

    digitalWrite(7 , 0 );

    digitalWrite(8 , 1 );

    delay (101);

    digitalWrite(2 , 0 );

    digitalWrite(3 , 1 );

    digitalWrite(4 , 1 );

    digitalWrite(5 , 1 );

    digitalWrite(6 , 1 );

    digitalWrite(7 , 0 );

    digitalWrite(8 , 0 );

    delay (101);

    digitalWrite(2 , 0 );

    digitalWrite(3 , 0 );

    digitalWrite(4 , 0 );

    digitalWrite(5 , 0 );

    digitalWrite(6 , 0 );

    digitalWrite(7 , 0 );

    digitalWrite(8 , 0 );

    delay (101);

    digitalWrite(2 , 0 );

    digitalWrite(3 , 0 );

    digitalWrite(4 , 1 );

    digitalWrite(5 , 0 );

    digitalWrite(6 , 0 );

    digitalWrite(7 , 0 );

    digitalWrite(8 , 0 );

    delay (101);

    }[/mw_shl_code]

    这么屎的程序肯定不能忍。

    恁不觉得010101很像二进制数吗。

    0:0001000 对应十进制数字8

    1:0111110 对应十进制数字62

    2:0010001 对应十进制数字17

    3:0010100 对应十进制数字20

    4:0100110 对应十进制数字38

    5:0010001 对应十进制数字68

    6:1000000 对应十进制数字6*4

    7:0011110 对应十进制数字30

    8:0000000 对应十进制数字0

    9:0000100 对应十进制数字4

    这样呢,我们先定义一个数组,数组也可以写到 定义数码管的函数里,这里我们的数组是个全局变量:

    int Ten[10] = {8 , 62 , 17 , 20 , 38 , 68 , 64 , 30 , 0 , 4}; //定义从0到9的数码管编码

    写一个函数,翻译10进制数和数码管引脚的对应关系:

    [mw_shl_code=applescript,true]

    void NumChange(byte num){  //将数码管的数字编码输出到2至8口

    int s = 1 ;

    for ( int i = 2 ; i < 10 ; i ++)

    {

    /* int ol = num&s;

    if (ol>0)

    ol = 1;

    else

    ol = 0 ;   //这一段可有可无,与运算之后,除非当前位是0,否则输出的是正整数,正整数对应digitalWrite是1

    Serial.println(ol); */

    Serial.print ( num&s ,) ; //在串口调试器打印与运算结果

    digitalWrite (i , num&s );

    s <<= 1;   //左移位操作,准备对下一“位”进行与操作

    }

    }[/mw_shl_code]

    上边这段程序的核心思想是调取一个10进制数,把他二进制化,然后让这个二进制数的每一位跟一个二进制数1进行与操作,与出来的0或1就是对应引脚的电平。

    这时,loop就可以写的比较简洁了

    [mw_shl_code=applescript,true]viod loop()

    {

    for (i = 0 ; i < 10 ; i ++ )

    {

    NumChange(Ten);

    delay (1000);

    }

    }

    [/mw_shl_code]

    截图201902221733579370.png (9.19 KB, 下载次数: 3)

    引脚和管子的关系

    2019-2-22 17:33 上传

    展开全文
  • 2.实现驱动共阳极数码关显示3.1 3.驱动喇叭播放,dao,re,mi,fa,sao,la,xi C代码: /** * 8051 DEMO 2 * 1. 实现开关,开关2次后,LED闪烁4次 * 2. 实现驱动共阳极数码关显示 3.1 * 3. 驱动喇叭播放 ,dao,re,...

    1. 实现开关,开关2次后,LED闪烁4次 
    2. 实现驱动共阳极数码关显示 3.1
    3. 驱动喇叭播放 ,dao,re,mi,fa,sao,la,xi

    C代码:

    /**
    * 8051 DEMO 2
    * 1. 实现开关,开关2次后,LED闪烁4次 
    * 2. 实现驱动共阳极数码关显示 3.1
    * 3. 驱动喇叭播放 ,dao,re,mi,fa,sao,la,xi
    * 8051 规定中断号如下
    * INT0  中断号  0
    * INT1  中断号  2
    * T0    中断号  1
    * T1    中断号  3
    * 串口  中断号   4
    */
    
    #include "REG52.H"
    #include "intrins.h"
    
    //LED
    sbit led  = P2^0;
    //控制数码管
    sbit ls1 = P2^1;
    sbit ls2 = P2^2;
    //输出脉冲信号让蜂鸣器工作
    sbit sound = P2^3;
    
    //类型定义
    typedef unsigned char U8;
    typedef unsigned int I8;
    
    //声明全局计数变量 count
    I8 count;
    
    //使用定时器,给端口上输出一个脉冲,从而形成声音进行播放
    
    //定义频率
    #define DAO 262 //低音"1"的频率262Hz
    #define RE 286  //低音"2"的频率286Hz
    #define MI 311  //低音"3"的频率311Hz
    #define FA 349  //低音"4"的频率349Hz
    #define SAO 392 //低音"5"的频率392Hz
    #define LA 440  //低音"6"的频率440Hz
    #define XI 494  //低音"7"的频率494Hz
    
    //定义节拍
    #define B4_1 2000   // 4/1拍,2000ms
    #define B3_1 1500   // 3/1拍,1500ms
    #define B2_1 1000   // 2/1拍,1000ms  
    #define B3_2 750    // 3/2拍,750ms
    #define B1_1 500    // 1拍,500ms
    #define B3_4 313    // 3/4拍,313ms
    #define B1_2 250    // 1/2拍,250ms
    #define B1_3 125    // 1/3拍,125ms
    #define B1_4 63     // 1/4拍,63ms
    
    //音乐延迟ms
    void delay_ms(I8 ms)   //误差 -0.651041666667us
    {
        unsigned char a,b;
        I8 z;
        for(z=0;z<ms;z++){
            for(b=102;b>0;b--)
                for(a=3;a>0;a--);
        }
    }
    
    //音乐,dao,re,mi,fa,sao,la,xi
    int code music[] = {
        DAO,RE,MI,FA,SAO,LA,XI
    };
    
    
    //声明中断
    void int0_init()
    {
        IT0 = 1; //低电平触发
        EX0 = 1; //打开外部中断0
        EA = 1; //打开全局中断
    }
    
    //中断处理
    void int0_start() interrupt 0
    {
        EX0 = 0;//停止中断,进行业务逻辑处理
        count = count+1; //统计开关闭合的次数
        EX0 = 1 ;//处理完毕,打开中断
    }
    
    //数码管显示 3.1 , 由于人体的视觉暂留想象,对于刷新频率<20ms ,则看到的是一起显示的
    void display31()
    {
        ls1 = 0; //打开第1个数字通到
        P1 = 0xF9; //显示数字:1
        delay_ms(10);
        P1 = 0xFF; //消隐
        ls1 = 1; //关闭第1个数字通到
    
        ls2 = 0; //打开第2个数字通到
        P1 = 0xB0; //显示数字:3
        delay_ms(10);
        P1 = 0x7F; //显示数字:.
        delay_ms(10);
        P1 = 0xFF; //消隐
        ls2 = 1; //关闭第2个数字通到
    }
    
    //初始化定时中断
    void timer_init()
    {
        TMOD = 0X00;
        ET0 = 1; //打开定时器0 的中断
        EA = 1; //打开总中断
        TR0 = 1; //打开定时器0
    }
    
    int pv;  //频率切换
    I8 ii; //计频率切换
    void timer_start() interrupt 1
    {   
        pv = music[ii];
        TH0 = (65536 - pv*1000) / 256;//(65536-X)为定时器初值,如定时1ms
        TL0 = (65536 - pv*1000) % 256;
        sound = !sound;
    }
    //播放音乐 一遍后继续下面操作
    void play_music(){
        while(1){
            //使用2拍
            if(ii>7)
            {
                ii= 0;
                break;
            }
            delay_ms(B2_1);
            ii = ii + 1;
        }
    }
    
    void main()
    {
        I8 i;
    
        count = 0;
        led = 1;
        ls1 = 1;
        ls2 = 1;
        sound = 1;
        ii = 0;
    
        //中断
        int0_init();
    
        //定时器
        timer_init();
        //播放
        play_music();
        
        while (1)
        {   
            if(count == 2 ){ //次数超过2次后
                for(i=0;i<4;i++){
                    led = 0;
                    delay_ms(1000);
                    led = 1;
                    delay_ms(1000);
                }
                //执行完毕,则把count赋值为0
                count = 0;
            }
            display31();
        } 
    }

    感谢您的支持,写的文章如对您有所帮助,开源不易,请您打赏,谢谢啦~

     

    展开全文
  • 这是一个简单的动态显示共阳极数码管的汇编程序,74HC573完成段选,位选由单片机I/O端口完成。 Proteus电路图 只要看该部分电路连线即可,完整JD51单片机电路图见后方资料。 汇编程序 ORG 00H START: SETB P2.5;...

    本文应用AT89C51芯片,使用该芯片的单片机型号有JD51等。这是一个简单的动态显示共阳极数码管的汇编程序,74HC573完成段选,位选由单片机I/O端口完成。

    Proteus电路图

    只要看该部分电路连线即可,完整JD51单片机电路图可下载。

    在这里插入图片描述

    汇编程序

    ORG 00H
    START:
    SETB P2.5;开启74HC573使能端
    
    MAIN:
    CLR P2.0
    MOV P0,#0A4H;显示2
    LCALL DELAY
    SETB P2.0
    
    CLR P2.1
    MOV P0,#0C0H;0
    LCALL DELAY
    SETB P2.1
    
    CLR P2.2
    MOV P0,#0A4H;2
    LCALL DELAY
    SETB P2.2
    
    CLR P2.3
    MOV P0,#0C0H;0
    LCALL DELAY
    SETB P2.3
    LJMP MAIN
    
    DELAY:MOV R5,#50;此时四位数依次亮起;改成1则四位数全部显示
    D2:MOV R6,#100
    D1:
    MOV R7,#100
    DJNZ R7,$
    DJNZ R6,D1
    DJNZ R5,D2
       
    RET
    END
    

    注意事项

    由于仿真与实际硬件效果存在差异,笔者使用单片机测试时可以达到动态显示的效果。

    展开全文
  • 共阳极数码管显示

    2020-12-21 10:53:14
    // 数码管 0--9 代码 /*************************************************************/ /********************* 延时子程序 ******************************/ /*********************************************...
  • 数码管显示数字C语言程序#includevoid Delay(unsigned char a){unsigned char i;while( --a != 0){for(i = 0; i < 125; i++);}}void main(void){while(1){P0 = 0x06;//1的码段P2 = 0x01;//选通一位,或者P2_0...
  • 07:P2和P1口控制4位共阳极LED数码管动态(快速)显示字符“8.1:2 3”;AS-02 MCU StudyBoard跳线设置:JP3、JP6跳左边(LED数码管供电工作,LED不供电),; JP1和JP2空,其他JP跳线缺省跳右边;MCU的P2.0—P2.7分别接4位...
  • 其实,用什么数码管都一样,只要显示出数字就行呗,为什么非要改成阳呢,你自己还不会改程序。另外,你的仿真图与程序不符。那个仿真图可以减化的,见下图,注意数码管的接法。改好的程序如下;#include#include#...
  • 一位共阳极LED数99-216码管10个引脚,其中③、⑧两引脚为公共正极(该两引脚内部已连接在一起),其余8个引脚分别为七段笔画和1个小数点的负极,如图1-69所示。两位阴极LED数码管的引脚两位阴极LED数码管共18个...
  • STM32F103驱动四位共阳极数码管程序

    千次阅读 2021-03-22 22:28:28
    STM32F103驱动四位共阳极数码管程序 下面展示一些 内联代码片。 // A code block var foo = 'bar'; // An highlighted block var foo = 'bar';
  • 本文章是关于单片机四位数码管时钟程序
  • 实验四数码管静态显示一、实验目的1、掌握数码管显示方法2、熟悉数码管的应用设计。二、实验原理1、编程实现一位、两位、四位、八位数码管显示。2、编程实现单个数码管模拟流水灯。三、实验设备...
  • #include#define uint unsigned intvoid delay7ms(void) //误差 -0.217013888891us{unsigned char a,b;for(b=208;b>0;b--)for(a=14;a>0;a--);}void delay2ms(void) //误差 -0.217013888889us{unsigned char a,...
  • 应用于51单片机的数码管静态显示的C51小程序,适合单片机新手使用
  • 89c51驱动两位共阳极数码管倒计时显示程序,60秒到30秒能实现,但从30秒到90秒不能实现,请高手帮忙!0seq4342013.11.04浏览199次分享举报我想实现一开始60秒倒计时,到01之后变成30秒倒计时,到01之后变成90秒倒计时...
  • //采用8位数码管动态显示程序//使用AT89C51单片机,12MHz晶振,P0输出字段码,P2口输出位选码//用共阳极LED数码管,key0为调时分位选择键,key1为加1键,key2为减1键,key3为确定键#include"reg51.h"//包含头文件#...
  • 74hc244驱动数码管显示电路 大部分的逻辑IC的吸收电流要强于输出电流。因此,大家都爱使用阴极的数码管,因为可选的IC多些。可是这组数码管是阳的,因此公共端用三级管来驱动。最常用的S9012,首先得计划好电路...
  • 共阳极 24 led_GYA0 = 8 ' hc0, // ' 0 ' 25 led_GYA1 = 8 ' hf9, // ' 1 ' 26 led_GYA2 = 8 ' ha4, // ' 2 ' 27 led_GYA3 = 8 ' hb0, // ' 3 ' 28 led_GYA4 = 8 ' h99, // ' 4 ' 29 led_...
  • #include <reg51.h> #include <intrins.h> #define GPIO_DIG P2 #define uchar unsigned char #define uint unsigned int sbit K1=P3^0; sbit K2=P3^1; sbit K3=P3.
  • 描述74HC595是我们在电路中比较常见的一种CMOS器件,本文只要探讨的是基于74HC595的单片机驱动数码管设计,这个电路说复杂也复杂,说简单那也简单,我们首先来了解一下74HC595的作用。74HC59574HC595是硅结构的CMOS...
  • 用7段数码管显示任意一个4位数的verilog程序,如果你的数码管是阴极,你知道怎么改。另外,把要显示的数N改成输入,就可以加到其他模块里面去被调用了。
  • 展开全部//满意请采纳//这是一个四位数码管动态显示c语言程e68a84e8a2ad62616964757a686964616f31333337386634序,每隔一秒加一,直至加到9999为止//使用时需采用锁存器#include#include"stdio.h...
  • TM1638控制数码管显示的例子网上不是太多,所以做这一块的时候研究了一段时间,我把自己做的传上来,想给可能会用到的朋友提供一些参照。程序正常使用,测试没有问题。
  • #includevoid main(){P1=0xB0;while(1);}呃,就这些代码了。可能实际的电路还会有74H什么...假设该数码管为共阳极数码管,要显示数字“3”。数码管原理如图:按照字母顺序为 a b c d e f g dp对应的电平高低 0 0 0 0...
  • here is the code. enjoy.#include #include "gpio.h"#define LED_PORT P2#define LED_DDR P2#define LED_PINs 0xff //led connected to P3.0...
  • 绍利用51单片机的一个并行口实现多个LED数码管显示的方法,给出了利用此方法设计的多路LED显示系统的硬件电路结构原理图和软件程序流程,同时给出了采用51汇编语言编写程序
  • proteus+keil,keil代码工程文件加上proteus仿真文件 本人博客有配套博文教程,欢迎各位学者前来学习和指教 想要入门51单片机的学者可以点击头像查看博文教程
  • 八段数码管的编码

    2021-05-26 04:15:35
    汇编语言:共阳极:DB03H,9FH,25H,0DH,99H,49H,41H,1FH,01H,09H,11H,0C1H,63H,85H,61H,71HDB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H,0C6H,0A1H,86H,8EH阴极:DB0FCH,60H,0DAH,0F2H,66H,0B6H,0BEH,0...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,539
精华内容 615
关键字:

共阳极数码管显示程序