历史上的今天

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

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

发布者:GoldenSunrise 来源: eefocus关键字:C51  数码管显示  静态显示 手机看文章 扫描二维码
随时随地手机看文章

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--);

}

关键字:C51  数码管显示  静态显示 引用地址:C51数码管显示相关问题总结

上一篇:51单片机内部定时器使用
下一篇:LCD1602动态显示

推荐阅读

随着新兴市场需求不断扩大,机器人产业进入高速增长时期。而谈及中国的机器人产业,深圳市绕不开的地方。在2018年的CES(美国国际消费展)展会上,据主办方美国消费技术协会(CTA)的数据显示,约有500家参展来自深圳,占所有参展商的10%。深圳作为先进制造业的产业基地之一,机器人全产业链逐步完善,市场辐射能力日益强大。 深圳机器人产业收入占珠三...
示波器的协议解码功能大家都不生疏,你是否有过波形看起来正常,协议参数、解码设置都正确,却无法正常解码的经历呢?本文以UART协议为例,分享由于波特率漂移导致通信异常的故障排查过程。什么是波特率漂移呢?可以理解为被测部件晶振有偏差,导致实际波特率和正常的波特率不一致。为什么波特率漂移会导致通信异常呢?本文从波形出发,带你自检解码结果。...
随着汽车工业的不断演变,车辆的智能化全球道路上不断发展。从内燃机驱动到混合动力和全电动驱动的转变需要越来越新、越来越复杂的组件,比如先进驾驶员辅助系统中(如自动泊车,或在行驶中跟随其他车辆的能力)的一系列应用。如何灵活地为新兴汽车系统开发解决方案是一个关键问题,因此,汽车制造商与零部件供应商的合作方式也在不断发展。 未来的汽车系...
前言本博文基于STM32F103ZET6和MDK5.2.6和库函数V3.5.0开发;本博文采用七星虫德飞莱开发板,USB-TTL电路,USART1和串口调试助手;如有不足,多指教;针对STM32CubeIDE环境的重定向请看https://blog.csdn.net/qq_45172156/article/details/108249811串口通信作为拓展单片机功能的一个外设,其本身还有一个常用的功能就是用于调试使用,通过对一个值的输出...

史海拾趣

问答坊 | AI 解惑

CE编译Directx Show播放声音,代码正常,但不能创建COM组件(问题复杂,请仔细看描述)

这几天我可被CE5头都搞大了? 先是 PlatForm Builder 编译的CE 不能播放音乐。 http://topic.eeworld.net/u/20100118/21/f22dfbcd-987f-4651-b1df-4a578fae77a2.html。编译能通过,但一播放就退出! 重装系统才解决!(这个问题解决了,但没有搞 ...…

查看全部问答∨

wince4.2 USB口为什么会出现这种现象

当我插上u盘的时候,不出现盘标。但是当我拔掉u盘的时候就出现盘标了!这是怎么回事!有谁遇到过这中问题,如何解决?…

查看全部问答∨

请问一下接近开关 常开加常闭是什么意思。

我就知道接近开关有常开,和常闭,怎么还有一个一开一闭的,这个一开一闭算起什么作用呢?…

查看全部问答∨

求教香版主EKSTM32F107VC-PKT问题

香版主您好,我手上有EKSTM32F107VC-PKT的开发板,这个板子资料只能从网上找一些,官方的好像没有,这两天在弄以太网的程序,根据http://www.stmsky.com/bbs/thread-2956-1-1.html这个帖子上的修改步骤调试程序,一改程序debug后就不能正常进 ...…

查看全部问答∨

【一起学习器件指标】你敢不敢说个大家不知道的电阻指标

几乎所有的电子设计中都会使用到电阻,我稍微提供问题,你知道的电阻有哪些参数指标呢?你敢不敢说个大家都不知道的指标?这个大家现在用的多了也许再过多少年后就看不到这位了…

查看全部问答∨

51下广告灯数码管和MSP430数码管

本来只是想的实现一个开关的,但是最近自己拖拉了所以再加上点功能吧,这个功能就是广告灯的左右移动,不过我加了一个可以开关控单灯的输入。本来准备430也是一样的不过今天拿到开发板发现没有那么多LED⊙﹏⊙,所以就直接用数码管了。 #include ...…

查看全部问答∨

求助~~急

哪位大哥知道51单片机中读秒指示电路的工作原理?求解答…

查看全部问答∨

我的C2000无法仿真了.问题已解决。

Error connecting to the target: (Error -151 @ 0x0) One of the FTDI driver functions used during the connect returned bad status or an error. The cause may one or more of: invalid emulator serial number, blank emulator EEPROM, ...…

查看全部问答∨

关于ADS1115的一点问题

本帖最后由 paulhyde 于 2014-9-15 03:53 编辑 最近一直在调ADS1115这款AD,用I/O口模拟的I2C时序,结果总是不理想。读出来的数字我表示看不出规律,输入什么都不接有的时候是满值65535,有的时候乱跳。下面是我的程序,大家看下。我感觉我写的时 ...…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

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

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved