历史上的今天
返回首页

历史上的今天

今天是:2025年06月22日(星期日)

2021年06月22日 | 51单片机开发之静态数码管

2021-06-22 来源:eefocus

开发板上这个独立的数码管刚好接在单片机的P0引脚上。

对应关系:  P0.0 ->A  P0.1->B  P0.2->C  P0.3->D………


3.7.2 数码管介绍

LED数码管是由多个发光二极管封装在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极。


LED数码管常用的段数一般为7段,有的另加一个小数点 。


LED数码管根据LED的接法不同,分为共阴和共阳两类 。


当前开发板使用的数码管是共阳极。


使用LED显示器时,要注意区分这两种不同的接法。为了显示数字或字符,必须对数字或字符进行编码。七段数码管加上一个小数点,共计8段。因此为LED显示器提供的编码正好是一个字节。

watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=

图3-7-3

 

3.7.3 对共阳极数据管进行编码

P07 P06 P05 P04 P03 P02 P01 P00

dp | g | f | e | d | c | b | a

---------------------------------

0    1   0   0   0   0   0   0   0x40 | 0 

0    1   1   1   1   0   0   1   0x79 | 1

0    0   1   0   0   1   0   0   0x24 | 2

0    0   1   1   0   0   0   0   0x30 | 3

0    0   0   1   1   0   0   1   0x19 | 4

0    0   0   1   0   0   1   0   0x12 | 5

0    0   0   0   0   0   1   0   0x02 | 6

0    1   1   1   1   0   0   0   0x78 | 7

0    0   0   0   0   0   0   0   0x00 | 8

0    0    0   1   0    0   0    0   0x10 | 9

通过得到的编码,定义成数组,小数点是默认点亮。 数字0~9

code char led_buff[]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};


3.7.4 Keil 51中const与code关键字


Keil 51中,code修饰的变量放在ROM(Flash)中,而const修饰的变量为只读(不可修改),放在RAM中。在Keil MDK中,如进行STM32的开发,code修饰符无法使用,使用的话会报错,此时是用const,用const修饰的变量是存放在ROM中的。


3.7.5 示例代码


下面代码实现,按下矩阵键盘,在数码管上显示当前矩阵键盘按下的键值。


(硬件平台说明:CPU是STC90C516RD 、晶振频率12MHZ 、工作在12T模式下、一个机器周期为1us时间)


#include //共阳极数码管编码,小数点默认点亮//数字0~9code u8 LED_Coding[]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};/*静态数码管显示*/void LED_StaticDisplay(u8 val){    LED=LED_Coding[val]; //显示数字}int main(){    u8 key;     while(1)    {        key=Array_Scan(); //检测矩阵键盘键值        if(key)        {            if(key<=9)LED_StaticDisplay(key); //数码管的显示范围只能是0~9          }}}

推荐阅读

史海拾趣

问答坊 | AI 解惑

我是新注册的。先来报个到。

我是新注册的。先来报个到。…

查看全部问答>

RS232串口(COM口)控制(10位)A/D模数转换控制板

本串口控制A/D模数转换控制板具有6路10位(精度±1LSB)高速A/D转换通道,可同时对外部输入的6路模拟量(直流0-5V)进行模数转换,转换后的结果(每通道转换后的结果为2字节数据)通过串口快速输出(默认波特率9600,可定做其它波特率),供电脑上位机 ...…

查看全部问答>

请问谁有高通(qualcomm)的技术网站https://support.cdmatech.com的账号或者是高通的Organization number

请问谁有高通(qualcomm)的技术网站https://support.cdmatech.com的账号或者是高通的Organization number. 我想在这个网站里面下载一些芯片的资料.但是没有\"组织号\"就注册不了. 那位有这个网站的账号或者组织号,可不可以共享给我用一下..我的邮 ...…

查看全部问答>

opengl es eglswapbuffers函数运行报错

[code]while (1)     {         // If there is a message waiting, handle it         if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))       &n ...…

查看全部问答>

vs 2005基于智能设备的socket编程

char *aa; j=m_recv.Receive(aa,2,0); if(aa==\"ff\") {                        KillTimer(1); } 用的vs2005 基于智能设备的程序 我写的关于socket 的接收程序,就是那些字 ...…

查看全部问答>

XF-S3011

请问有谁使用过XF-S3011语音芯片?有没有MCU为51系列芯片的相关C语言程序?让我参考一下。…

查看全部问答>

德州仪器最新高精度设计库助力简化模拟设计

德州仪器 (TI) 宣布推出一款高精度模拟设计库,其提供完整的板级及系统级精确设计,不但可帮助工程师快速评估和定制系统,同时还可为其扩展模拟知识面。该 TI 高精度设计库包含参考、验证及认证设计等类别,可为客户提供快速评估和定制系统所需的所 ...…

查看全部问答>

【深圳】资深Analog 模拟电路设计工程师,2人,急!

本帖最后由 telecom_hr 于 2014-3-25 10:54 编辑       本人是从事猎头工作的,目前全国各地有大量通信类招聘职位,包含研发经理,项目经理,软件开发工程师,测试工程师,硬件工程师,FPGA,Soc,构架师,技术支持等,询问 ...…

查看全部问答>

电压转换芯片的选择

今天老师突然又给了任务,真。。。。。。 因为处理器要控制几个光电开关,光电开关必须要接10V-30V的电源,而我板子上芯片又必须得有3.3V的供电。系统用开关电源供电,输入电压25V。 小弟想问哪位前辈能推荐一款电压转换芯片,可以得到两路输出 ...…

查看全部问答>

Wifi MCU,求最简单的wifi传输数据方案!

老板给了个任务,通过wifi传送数据给Ipad2,要求传输速度达到1.2M字节/秒,尽量少的外围器件及低成本。 随便一个ARM11或Cotex-A8以上的ARM+USB无线网卡都能实现,但是这样太浪费了(硬件成本及体积太大)。 TI官网上有CC3100(M3内核),CC3200(M4内 ...…

查看全部问答>