历史上的今天
返回首页

历史上的今天

今天是:2024年11月25日(星期一)

正在发生

2021年11月25日 | C51数码管显示相关问题总结

2021-11-25 来源:eefocus

1.单个数码管的静态显示


/*--------------------------

功能:一个数码管的静态显示

Author: Zhang Kaizhou

Date: 2019-5-16 21:18:17

--------------------------*/

#include


sbit duan_address = P2^6; // 定义段地址为位寻址类型的变量

sbit wei_address = P2^7; // 定义位地址为位寻址类型的变量


void main()

{

wei_address = 1; // 打开位锁存器

P0 = 0xfe; // 输出数码管所在的位置

wei_address = 0; // 关闭位锁存器

duan_address = 1; // 打开段锁存器

P0 = 0x7d; // 输出共阴极数码管的段码(6)

duan_address = 0; // 关闭段锁存器

while(1);

}


2.数码管的动态循环显示


/*-----------------------------------

功能:在数码管上循环显示0~F 16个字符

Author: Zhang Kaizhou

Date: 2019-5-16 21:41:50

-----------------------------------*/

#include

#define uchar unsigned  char

#define uint unsigned int


sbit wei_address = P2^7; // 定义可位寻址类型的变量wei_address

sbit duan_address = P2^6; // 定义可位寻址的变量daun_address

uchar num; // 定义无符号字符变量num

uchar code table[] = {0x3f, 0x06, 0x5b, 0x4f,

  0x66, 0x6d, 0x7d, 0x07,

  0x7f, 0x6f, 0x77, 0x7c,

  0x39, 0x5e, 0x79, 0x71}; // 定义一个无符号字符型数组table[]用于存放共阴极数码管(0~F字符)段码,存放在单片机内部的ROM或Flash中


void delay(uint xms);

void main()

{

wei_address = 1; // 开位锁存器

P0 = 0x00; // 选择要显示的数码管

wei_address = 0; // 关锁存器

while(1)

{

for(num = 0; num < 16; num++) // 在数码管上循环显示0~F字符

{

duan_address = 1; // 开数码管的段锁存器

P0 = table[num]; // 输出段码

duan_address = 0; // 关段锁存器

delay(1000); // 延时1000ms = 1s

}

}

}


void delay(uint xms)

{

uint i, j;

for(i = xms; i > 0; i--)

for(j = 110; j > 0; j--);

}


3.多个数码管的动态扫描显示


/*-----------------------------------

功能:在4个数码管上动态显示字符信息

Author: Zhang Kaizhou

Date: 2019-5-16 21:41:50

-----------------------------------*/

#include

#define uchar unsigned  char

#define uint unsigned int


sbit wei_address = P2^7; // 定义可位寻址类型的变量wei_address

sbit duan_address = P2^6; // 定义可位寻址的变量daun_address

uchar num; // 定义无符号字符变量num

uchar code table[] = {0x3f, 0x06, 0x5b, 0x4f,

  0x66, 0x6d, 0x7d, 0x07,

  0x7f, 0x6f, 0x77, 0x7c,

  0x39, 0x5e, 0x79, 0x71}; // 定义一个无符号字符型数组table[],存放在单片机内部的ROM或Flash中


void delay(uint xms);

void main()

{

while(1)

{

// 显示0

duan_address = 1;

P0 = table[0];

duan_address = 0;

wei_address = 1;

P0 = 0xfe;

wei_address = 0;

delay(5);

// 显示1

duan_address = 1;

P0 = table[1];

duan_address = 0;

P0 = 0xff; // 消影

wei_address = 1;

P0 = 0xfd;

wei_address = 0;

delay(5);

// 显示2

duan_address = 1;

P0 = table[2];

duan_address = 0;

P0 = 0xff; // 消影

wei_address = 1;

P0 = 0xfb;

wei_address = 0;

delay(5);

// 显示3

duan_address = 1;

P0 = table[3];

duan_address = 0;

P0 = 0xff; // 消影

wei_address = 1;

P0 = 0xf7;

wei_address = 0;

delay(5);

}

}


void delay(uint xms)

{

uint i, j;

for(i = xms; i > 0; i--)

for(j = 110; j > 0; j--);

}

推荐阅读

史海拾趣

科山芯创(COSINE)公司的发展小趣事

科山芯创(COSINE)公司成立于2017年,由一群对射频及模拟集成电路芯片充满热情的工程师创立。他们看到了中国电子行业中对于高性能、高品质芯片的巨大需求,于是决定成立一家公司,专注于这一领域的研发与设计。他们的初心是通过自主创新和核心技术,为国内外客户提供有竞争力的解决方案。

Deutron Electronics Corp公司的发展小趣事

随着环保意识的日益提高,Deutron Electronics Corp也积极响应环保号召,致力于实现绿色生产和可持续发展。公司采用环保材料和生产工艺,减少了对环境的污染。同时,公司还加大了对节能减排的投入,提高了资源利用效率。这些努力使得Deutron Electronics Corp在行业内树立了良好的环保形象,也为公司的长期发展奠定了坚实基础。

Cedrat Technologies公司的发展小趣事

Cedrat Technologies深知技术创新的重要性,因此一直致力于打造一支跨学科的研发团队。这支团队由材料科学、机械工程、电子工程等多个领域的专家组成,他们共同致力于智能材料机电产品的研发和应用。通过多年的努力,团队在微型纳米定位、阻尼、振动产生等领域取得了显著成果,为公司的快速发展提供了强大的技术支撑。

ECLIPSE公司的发展小趣事

Eclipse的成功离不开其强大的社区支持。Eclipse社区拥有众多的开发者、测试者和用户,他们共同为Eclipse的发展贡献力量。通过举办开发者大会、在线论坛和邮件列表等方式,Eclipse社区为开发者们提供了一个交流学习的平台。在这个平台上,开发者们可以分享经验、解决问题,共同推动Eclipse的发展。

Analog Microwave Design公司的发展小趣事

Analog Microwave Design公司成立于XXXX年,当时正值微波技术快速发展的时期。公司创始人凭借对微波技术的深厚理解,看到了微波技术在通信、雷达和卫星等领域的巨大潜力。然而,初创时期的资金短缺和技术难题让公司的发展步履维艰。为了克服这些困难,创始人带领团队夜以继日地研发,并通过与高校和研究机构的合作,获得了技术支持和资金支持。经过一番努力,公司终于成功开发出了首款高性能微波器件,为公司的后续发展奠定了坚实的基础。

Delock公司的发展小趣事

Delock公司自创立之初,就致力于电子连接技术的研发。公司创始人李先生敏锐地洞察到市场对高性能、稳定可靠的电子连接设备的需求,于是带领团队投入大量资源进行技术研发。经过数年的努力,Delock公司成功开发出一种具有革命性意义的电子连接器,不仅传输速度快,而且耐用性高,迅速在市场上获得了认可。这一创新不仅为Delock公司带来了可观的利润,也为公司在电子行业树立了技术领先的形象。

问答坊 | AI 解惑

multisim

本帖最后由 paulhyde 于 2014-9-15 09:28 编辑 大家有没有用multisim做仿真的啊。我觉得那个还好啦,虽然没有protel那么上手,但至少那是一种方法。。很好学的  …

查看全部问答>

NEC单片机资料集锦

之前看到有朋友用NEC的单片机,找不到资料,这里放上 因为有几百兆,所以选择放链接,请斑竹谅解: 1.NEC单片机选型手册   http://www.getsoon.com.cn/bbs/viewthread.php?tid=2&;extra=page%3D1 2.NEC单片机开发环境   h ...…

查看全部问答>

响应三维加速度传感器活动,传资料

加速度传感器可以用来测量加速度、运动、冲击、振动、倾角和压力,产品的应用领域包括汽车工业、其他移动机器以及范围广泛的终端设备、医疗设备、运动健身和娱乐领域。 2楼:浅谈 3D-MEMS 加速度传感器 3楼:在消费电子设备中如何选择和集成MEMS ...…

查看全部问答>

光谱仪器测量电路简介

这里介绍下光谱类仪器的测量电路 光谱类仪器包括多种化验常用的测量仪器,如等离子体发射光谱仪,分光光度计等。其中的原理大都一致,这里略作介绍。 原理:通过检测被测量物质的特征光谱,从而进行定量测量。为了使被测物体发光,有几种方法:荧 ...…

查看全部问答>

本人evc初学者不知道变量的定义应该写在什么地方呢?或者是别的错误?程序错误如下!感谢大家帮忙

F:\\EVC\\LCD\\LCD_TEST.cpp(50) : error C2065: \'mouseclick\' : undeclared identifier F:\\EVC\\LCD\\LCD_TEST.cpp(85) : error C2065: \'lcdbrush\' : undeclared identifier F:\\EVC\\LCD\\LCD_TEST.cpp(85) : error C2440: \'=\' : cannot ...…

查看全部问答>

板子吞吐量太低

板子的吞吐量太低,硬件好像没什么问题网卡的硬件缓存是1k, 不知道是不是系统的处理性能不行,怎么测试一下???…

查看全部问答>

上海嵌入式社区QQ群欢迎您的加入

上海嵌入式社区,大多为上海本地及其周边的嵌入式爱好者,为同行提供一个交流的平台,上海嵌入式社区QQ群欢迎您的加入! QQ群:39527548…

查看全部问答>

12864汉字液晶显示--按键电子时钟程序(具有闪烁,移位,加一,减一功能)

#include <reg52.h>#include <intrins.h>#define uchar unsigned charvoid lcd_ini();void ascii_change(void);void delay();void wri_add(uchar com);void wri_dat(uchar com1);void shan(void);void disp();void tkey(void);sbit cs=P1^7 ...…

查看全部问答>

pic 单片机烧录后出现的问题 求教

我用的是PIC16F72单片机, 烧录文件为 .HEX 文件  ,程序是一直能够正常运行的, 但是此次正常烧写后,实验发现有些功能正常,有些功能不对了 ,不知道是何原因,请哪位高人指点一下…

查看全部问答>

谁有EDA-VI的实验指导书吗或者是电子开发网的ID

我急切需要一本EDA-VI的实验指导书看,请问大家有不 或者是电子开发网的ID  那边有的下 不过要一个下载点…

查看全部问答>