问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

51单片机的共阴数码管怎么显示数字(c语言)

发布网友 发布时间:2022-04-26 00:54

我来回答

4个回答

热心网友 时间:2022-06-18 23:30

要让51单片机共阴数码管显示数字,只需要将单片机的P2端口输出数字对应的段码即可。

以显示数字“0”为例,c语言程序如下:

#include<reg52.h>

#define uchar unsigned char

#define uint unsigned int

//数码管的段码编码

Uchar table[10] ={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

 void main(){//主函数

P0 = table[0];//显示0,大家可以修改里面的数据。

while(1);//程序不再执行其他步骤;

}

扩展资料:

数字0-9的对应段码:

数字0      0x3f

数字1      0x06

数字2      0x5b

数字3      0x4f

数字4      0x66

数字5      0x6d

数字6      0x7d

数字7      0x07

数字8      0x7f

数字9      0x6f

热心网友 时间:2022-06-18 23:31

共阴极数码管也就是说,当控制信号为1时该段LED点亮,8段数码管的数字0~9定义为:

3FH,06H,5BH,4FH,66H ;01234

6DH,7DH,07H,7FH,6fh ;56789

以下为简易8路抢答器的例程:

#include<reg51.h>

#define uchar unsigned char

uchar table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f};

sbit rstkey=P2^2;

sbit speaker=P2^0;

void delay()//延时约400毫秒

{

uchar i,j;

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

for(j=0;j<250;j++);

}

main()

{

uchar i,key;

P2=0xff;

while(1)

{

i=0;

P1=table[i];

while(1)

{

key=P3;

if(key!=0)break;

}

switch(key)

{

case 0x01:i=1;break;

case 0x02:i=2;break;

case 0x04:i=3;break;

case 0x08:i=4;break;

case 0x10:i=5;break;

case 0x20:i=6;break;

case 0x40:i=7;break;

case 0x80:i=8;break;

default:break;

}

P1=table[i];//显示按下抢答器的号

P0=key;//显示按下键号的LED

while(1)

{

if(rstkey==0)break;//主持人按下复位键则重新开始

speaker=~speaker;//否则蜂鸣器报警

delay();

}

}

}


热心网友 时间:2022-06-18 23:31

不涉及动态显示,未用锁存器




#include <reg51.h>

#define _x10  (0xfe)

#define _x1   (0xfd)

unsigned char code Tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

void main()

{

    void show(unsigned char an,unsigned char wei);

    while(1)

    {

        show(0,_x1);

    }

}

void show(unsigned char an,unsigned char wei)

{

    P2=wei;

    if(an<10)

    {

        P0=Tab[an];

    }

    else

    {

        ;

    }

}

热心网友 时间:2022-06-18 23:32

你的L1/L2/L3都是什么啊?还有LatchDuan??我有做过类似的设计,需要可以互相交流一下!追问是少了
sbit L0=P0^0;
sbit L1=P0^1;
sbit L2=P0^2;
sbit L3=P0^3;
sbit L4=P0^4;
sbit L5=P0^5;
sbit L6=P0^6;
sbit L7=P0^7;
sbit LatchWei=P2^1;
sbit LatchDuan=P2^0;

追答有必要这么麻烦么、、、、、、、、、、、、、、、、、、、

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
中考,安徽省定远一中达标分数线,求真实 我女朋友要过生日了,她让我送她酸奶,另外让我每天为她叠一个飞机,等... dye one's hair blue和 color on'e hair blue有什么区别? 1=1,2+3+4=9,3+4+5+6+7=25,4+5+6+7+8+9+10=49…照此规律,第n个等式为... 观察下列等式, 1=1 2+3+4=9 3+4+5+6+7=25 4+5+6+7+8+9+10=49 按照此... 1=1 2+3+4=9 3+4+5+6+7=25 4+5+6+7+8+9+10=49 照此规律, 观察下列等式1=12+3+4=93+4+5+6+7=254+5+6+7+8+9+10=49照此规律,第五... ...3+4=93+4+5+6+7=254+5+6+7+8+9+10=49……照此规律,第 个等式为... ...关于EXCEL中输入3-4就会自动生成年月日,怎么不让它自动生成啊_百度... 我的excel自动生成日期 我输入数字就自动成为日期 如何取消呢_百度知 ... 我家得了一只德国牧羊犬,可是不知道叫什么好?请大家帮一下忙? 驾龄6年的小轿车是否是免检呀 六年的家用轿车去年审都查什么 谁能给我家的德国牧羊犬(母)起个好听的名字? 6年的轿车了,多少公里或者多长时间保养一次? 德国牧羊犬(母)应该起个什么名字好呢?大家帮帮我! 狗名字大全 霸气的德国牧羊犬 我家的是德牧女小狗,求大家给小狗取个名字? 没尾巴的小狗都叫什么名字,还有照片这个狗狗是什么品种是纯种的吗? 没尾巴狗是啥品种 没有尾巴的狗叫什么名子? 没有尾巴的狗是什么品种 没有尾巴的小狗叫什么? 宠物狗里哪个没有尾巴的狗是什么品种 没尾巴的狗是什么品种 有哪种狗狗没有尾巴? 断尾狗有哪些品种 没有尾巴的狗种有哪些?最好配图片和名字 没有尾巴狗是什么狗 没有尾巴的狗有哪些品种 牧羊犬改什么名字够威风 51单片机的共阴数码管怎么显示数字(c语言)知道 我有一条很棒的德牧,公的啦。所以我想给狗狗取一个霸气的名字,给点意见!!! 过了六年的小车每年要上线年检吗? 51单片机怎么用按键控制一个数码管,按一下显示一个数字,顺序显示 给德牧起名公母都要英文中文都要 51单片机数码管显示程序 小汽车6年免检是每年都不进行年检吗? 六年小轿车卖几折 怎样单独控制51单片机中数码管显示数字? 如何用51单片机在LCD12864上显示数字 家庭轿车6年以后还要2年一审吗 51单片机显示数字问题 51单片机数码管依次显示数字的程序,不知道哪里错了 我的轿车已经六年了,年审要手续费吗? 如何用51单片机用一位数码管显示对应数字? 家用轿车使用超过6年应注意什么 C51单片机12864怎样按顺序显示数字 要买己开了6年的电轿,还有价值吗? 请问51单片机数码管怎么从左到右显示出我想要的数?比如1572942(没有规律)这部分该怎么写?