⑴ 如何用51单片机用一位数码管显示对应数字
首先你要把0到9的数字对应的七段码放在一个数组中,然后用一个变量计按键的次数或序号,把该序号的七段码输出到对应的端口即可。
⑵ 怎样单独控制51单片机中数码管显示数字
设置一个延时,一个while(1)循环,循环内让每一个电子管依次打开位选,各自的断选,并且每个电子管显示延时1毫秒。
单片机,全称单片微型计算机(英语:Single-Chip Microcomputer),又称微控制器(Microcontroller),是把中央处理器、存储器、定时/计数器(Timer/Counter)、各种输入输出接口等都集成在一块集成电路芯片上的微型计算机。与应用在个人电脑中的通用型微处理器相比,它更强调自供应(不用外接硬件)和节约成本。它的最大优点是体积小,可放在仪表内部,但存储量小,输入输出接口简单,功能较低。由于其发展非常迅速,旧的单片机的定义已不能满足,所以在很多应用场合被称为范围更广的微控制器;由于单芯片微电脑常用于当控制器故又名single chip microcontroller,但是目前在中国大陆仍多沿用“单片机”的称呼。
⑶ 用c语言单片机led灯显示数字“28”,如何编程
摘要 给LED编个数组,控制IO口,或者直接控制IO口,不过要看显示的28要多大,会占用比较多的IO口,道理和矩阵键盘差不多。
⑷ 关于单片机用液晶屏显示数字的问题
用液晶显示数字比起用数码管来说更方便,采用7段数码管来显示,需要定时扫描,打个类似的比方:就犹如动态RAM和静态RAM一样,用液晶显示,只要初始化后,送位置和显示内容就可以了。总体价格更便宜,比如1602液晶,不到20元钱,但可以显示两行共32个字符,而32个数码管,总的价格要到50元左右,相差还是很大的。
⑸ 51单片机的共阴数码管怎么显示数字(c语言)知道
共阴极数码管也就是说,当控制信号为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();
}
}
}
⑹ 51单片机的共阴数码管怎么显示数字(c语言)
要让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);//程序不再执行其他步骤;
}
(6)单片机显示数字扩展阅读:
数字0-9的对应段码:
数字0 0x3f
数字1 0x06
数字2 0x5b
数字3 0x4f
数字4 0x66
数字5 0x6d
数字6 0x7d
数字7 0x07
数字8 0x7f
数字9 0x6f
⑺ 单片机数字显示
实际上,是一个秒表。
在 P0 口,外接一个共阳数码管,执行下列程序,即可。
ORG 0000H
MAIN:
MOV DPTR, #TAB
MOV TMOD, #01H
SETB TR0
LOP0:
MOV R3, #10
LOP1:
MOV A, R3
MOVC A, @A + DPTR
MOV P0, A
MOV R4, #20
LOP2:
MOV TH0, #3CH
MOV TL0, #0B0H
JNB TF0, $
CLR TF0
DJNZ R4, LOP2
DJNZ R3, LOP1
SJMP LOP0
TAB:;共阳极
DB 00H, 90H, 80H,0F8H, 82H, 92H
DB 99H, 0B0H,0A4H,0F9H,0C0H
END
⑻ 单片机试验数码管上如何显示数字
解决方法:
试验数码管上显示数字( 单片机直接实现位选 共阴极) 。
解决方式:
连接方法:P0与J12 用8PIN排线连接 P1与JP16 用排线连接 。
代码:
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
{
for(y=0;y<113;y++)
{
}
}
}
unsigned int code dbit[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdF,0xbF,0x7F};
unsigned int code num[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40};
void main()
{
while(1)
{
P1=dbit[4];
P0=num[9];
}
}
位定义
#include<reg52.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;
uchar code num[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
{
for(y=0;y<113;y++)
{
}
}
}
void main()
{
while(1)
{
LSA=0;
LSB=0;
LSC=0;
P0=num[6];
delay(2);
LSA=1;
LSB=0;
LSC=0;
P0=num[6];
delay(2);
}
}
//让八个数码管全部亮并且从0~9循环
#include<reg52.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
uchar num;
uchar wnum=0x00;
uchar code dbit[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//段选,选择要显示的数字
//uchar code wnum[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdF,0xbF,0x7F};//八位数码管
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
{
for(y=0;y<113;y++)
{
}
}
}
void main()
{
P1=wnum;
while(1)
{
for(num=0;num<10;num++)
{
P0=dbit[num];
delay(500);
}
}
}
⑼ 单片机数码管如何显示数字
从电路图来看,是需要数码管共阳极的,哪一位的三极管导通,则该位的数码管就有被点亮的机会。
那么七段码数据,低电平的位对应该笔画的LED亮。
大致代码:
P2=0xff;
P0=s_code[1]; //0xF9
P2=0xfe;// P2.0=0
delay_ms();
P2=0xff;
P0=s_code[2]; //0xA4
P2=0xfd;// P2.1=0
delay_ms();
P2=0xff;
P0=s_code[3]; //0xB0
P2=0xfb;// P2.2=0
delay_ms();
P2=0xff;
P0=s_code[4]; //0x99
P2=0xf7;// P2.3=0
delay_ms();
⑽ 单片机两位数码管显示数字
#include<reg51.h>
#define uchar unsigned char;
uchar distab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00}; //0到f
uchar number,dat=29;
void t0isr() interrupt 1
case 0:P2=0x02;P0=distab[dat/10];
break;
case 1:P2=0x01;P0=distab[dat%10];
TMOD=0x01;
TH0=(65536-5000)/256;
TL0=(65536-5000)%256;
TR0=1;
ET0=1;
EA=1;
while(1);
}
分类
数码管也称LED数码管,不同行业人士对数码管的称呼不一样,其实都是同样的产品。按发光二极管单元连接方式可分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管,共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮,当某一字段的阴极为高电平时,相应字段就不亮。
以上内容参考:网络-数码管