基于51单片机开发板的应用(数码管)

发布者:脑洞狂想最新更新时间:2018-05-07 来源: eefocus关键字:51单片机  数码管 手机看文章 扫描二维码
随时随地手机看文章

    在对LED灯的应用有了一定的了解之后,我开始学习了一些关于数码管的应用。

   在我的开发板上,有独立共阳管和八位共阴管 。数码管从高位到低位的段码依次是h(dp),g,f,e,d,c,b,a共八位。共阴管是“1”表示亮,“0”表示灭,而共阳管则是相反的。顺便提一句,若是要检测数码管是否完好,可以用数码管“8”来检测。

    若是要在数码管上显示0~F,则可以用一套固定的十六进制数表示,可以放在数组中,为{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}。这一个数组是用来表示共阴管的亮的,而若是共阳管的时候,需要在前面加上“~”。

    独立共阳管显示0-F

//显示0-F  

#include  

unsigned char code LED[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};  

void DelayUs2x(unsigned char t)  

{  

    while(--t);  

}  

void DelayMs(unsigned char t)  

{  

    while(t--)  

    {  

        DelayUs2x(245);  

        DelayUs2x(245);  

    }  

}  

void main(void)  

{  

    unsigned char i;  

    while(1)  

    {  

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

        {  

            P1=~LED[i];          //取反  

            DelayMs(200);        //大约延迟200ms  

        }  

    }  

}  



    8位共阴管显示有静态扫描和动态扫描两种方式。


    1、8个同时显示0-F   静态扫描


#include  

#define DataPort P0       //数据端口  

sbit Seg_latch=P2^2;      //段锁存  

sbit Bit_latch=P2^3;      //位锁存   两者必须是取反,只能有一个成立  

unsigned char code Seg_code[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};  

  

void DelayUs2x(unsigned char t)  

{  

    while(--t);  

}  

void DelayMs(unsigned char t)  

{  

    while(t--)  

    {  

        DelayUs2x(245);  

        DelayUs2x(245);  

    }  

}  

void main(void)  

{  

    unsigned char i;  

    while(1)  

    {  

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

        {  

            DataPort=Seg_code[i];             //控制段锁存,显示0-F  

            Seg_latch=1;                      //开段锁存    

            Seg_latch=0;                      //关段锁存        值进来了  

  

            DataPort=0x00;                    //控制位锁存(低电平有效),8个管同时亮  

            Bit_latch=1;                          //开位锁存  

            Bit_latch=0;                          //关位锁存  

  

            DelayMs(200);  

        }  

    }  

}  


    2、显示0-F:先是显示0-7,然后显示8-F  位:第1-8位,第1-8位    动态扫描


#include  

#define DataPort P0  

sbit Seg_latch=P2^2;  

sbit Bit_latch=P2^3;  

unsigned char code Seg_code[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};  

unsigned char code Bit_code[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};  

  

void delay(unsigned char i)  

{  

    while(i--)  

       ;  

}  

  

void main(void)  

{  

    unsigned char i;  

    while(1)  

    {  

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

        {  

            DataPort=0x00;              //消除重影  

            Seg_latch=1;  

            Seg_latch=0;  

              

            DataPort=Bit_code[i];        //位码  

            Bit_latch=1;  

            Bit_latch=0;  

              

            DataPort=Seg_code[i];        //段码  

            Seg_latch=1;  

            Seg_latch=0;  

  

            delay(100000);    

        }          

  

    }  

}  


关键字:51单片机  数码管 引用地址:基于51单片机开发板的应用(数码管)

上一篇:单片机C语言实现独立按键检测与矩阵键盘操作
下一篇:51单片机之数码管显示原理

推荐阅读最新更新时间:2024-03-16 16:01

AT89C51单片机性能介绍
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。 1.主要特性: ·与MCS-51 兼容 ·4K字节可编程闪烁存储器 寿命:1000写/擦循环 数据保留时间:10年 ·全静态工作:0Hz-24
[单片机]
51单片机多字节的除法
;(四字节除四字节,被除数或者除数小于四字节,则前面填0即可) ; 后面还有一个双字节除双字节的程序,如果除数是单字节,则字高位填为00即可) ;51单片机多字节的除法 ;R4R5R6R7放被除数 R0R1R2R3放除数 ;当除数的长度为4字节时 R3R4R5R6是余数 R7是商 ;当除数的长度为3字节时 R3R4R5是余数 R6R7是商 ;当除数的长度为2字节时 R3R4是余数 R5R6R7是商 ;当除数的长度为1字节时 R3是余数 R4R5R6R7是商 ;被除数是双字时,将R4R5置为0即可,这个程序包打天下 ;用一个单元来放中间值 单元名为danyuan danyuan equ 3BH MOV R7,#0ffh MOV R6,
[单片机]
80C51单片机产生几种基本波形的方法
  简介:介绍了基于80C51单片机产生几种基本波形的方法。采用微处理器兼容的14位数模转换器MAX7534,高速,稳定,具有良好的线性。用户通过按键选择输出需要的波形,波形精度能够满足一般的使用条件。   本文利用80C51单片机外接数模转换器和I/V转换电路,由用户通过按键选择输出实验中经常使用到的几种基本波形:方波、锯齿波、正弦波。方波由80C51单片机内部自带的计数器/定时器产生,并由用户通过小键盘选择波形周期。与微处理器兼容的14位数模转换器MAX7534将数字量转换为模拟量电流信号,通过I/V转换电路得到双极性的锯齿波和正弦波信号,波形保证了他的精度和平滑、稳定。   1硬件电路设计   80C51单片机时钟电
[单片机]
80C<font color='red'>51单片机</font>产生几种基本波形的方法
基于51单片机之16个阵列式键盘驱动程序
#define KEY P1 //键盘所连接的I/O接口组定义 ********************************************************* 函数名:16个阵列式键盘驱动程序 调 用:? = Key (); 参 数:无 返回值:unsigned char 键值0~16 结 果:有键按下时返回值为键值1~16,无键按下时返回值为0 备 注:在主函数中不断调用 ***********************************************************/ unsigned char Key (void){ //4*4阵列键盘处理程序 unsigned
[单片机]
四只数码管滚动循环显示0~3
程序源代码如下: /* 4只数码管循环显示0~3 */ #include reg51.h typedef unsigned char uint8; typedef unsigned int uint16; code uint8 LED_CODE = {0xC0,0xF9,0xA4,0xB0}; void delay(uint16 x) { uint16 i,j; for(i = x; i 0; i --) for(j = 114; j 0; j --); } void main() { uint8 i; while(1) { for(i = 0; i 4; i ++) { P3 = 0x01 i
[单片机]
四只<font color='red'>数码管</font>滚动循环显示0~3
51单片机 软件模拟IIC
/*========================================================================== 名称:IIC协议 内容:函数是采用软件延时的方法产生SCL脉冲,固对高晶振频率要作一定的修改 (本例是1us机器周期,即晶振频率要小于12MHZ) ============================================================================*/ #include reg52.h #include iic.h bit ack; /*==============================
[单片机]
什么是单片机_51单片机学前预备知识
  一、单片机的概念:   二、单片机的用途:   工业自动化:数据采集,测控技术;   智能仪器仪表:数字示波器、数字信号源、数字万用表、感应电流表等;   消费类电子产品:洗衣机、电冰箱、空调机、手机等;   凡是与控制或简单计算有关的电子设备都可以用单片机来实现,再根据具体实际情况选择不同性能的单片机,如:atmel,stc,pic,avr,凌阳,80C51,arm等。   三、怎么学单片机:   实践第一;补充必要的理论知识,即缺什么补什么;做工程项目积累经验。(可在网络上搜索些题目,也可自己有什么想法大胆的去试验。)。   四、为什么选择51单片机作为单片机学习的入门:   学51单片机成本低,而且51单片机技术最成
[单片机]
基于51单片机的TFT液晶显示设计
0 引言   51单片机作为一种常见的通用单片机, 虽然其内部资源, 处理速度等都无法与新型高速单片机相提并论, 但其低廉的价格, 极低的入门难度以及适用于简单场合应用等特点, 依然是开发者的常用选择之一。   用51单片机驱动液晶模块通常都使用1602和12864等极为简单的液晶模块, 这里介绍用51单片机驱动QVGA分辨率的TFT液晶模块, 以实现彩色和更为复杂的内容显示的方法。同时, 本文还将使用DS1302芯片和DS18B20芯片来实现在液晶屏上显示实时时钟和温度。    1 硬件设计   本系统硬件电路的设计主要包括单片机最小系统电路, TFT液晶显示电路, 时钟电路, 设置电路以及温度采集电路。其系统工作原理框
[单片机]
基于<font color='red'>51单片机</font>的TFT液晶显示设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
热门活动
换一批
更多
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

更多精选电路图
换一换 更多 相关热搜器件
更多每日新闻
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved