导航:首页 > 操作系统 > 四位数led单片机

四位数led单片机

发布时间:2023-03-26 04:35:37

① 用单片机控制4位LED数码管显示,先从左到右慢速动态扫描显示数字“1357”,“2468”,然后在

首先你要明确这是要在实验板上实现呢?还是只是画个仿真来实现呢?
那要仿真,首先你要画个仿真图,仿真图也不会画吗?
如果没有实验板,也没有仿真图,写了程序也没有用,那怎么执行程序呢?

② 单片机4*4键盘输入4位LED显示,

#include<reg52.h>

#defineucharunsignedchar

#defineuintunsignedint

sbitBEEP=P3^7;

ucharcodeDSY_CODE[]=

{

0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0x00

};

ucharPre_KeyNO=16,KeyNO=16;

voidDelayMS(uintms)

{

uchart;

while(ms--)

{

for(t=0;t<120;t++);

}

}

voidKeys_Scan()

{

ucharTmp;

P1=0x0f;

DelayMS(1);

Tmp=P1^0x0f;

switch(Tmp)

{

case1:KeyNO=0;break;

case2:KeyNO=1;break;

case4:KeyNO=2;break;

case8:KeyNO=3;break;

default:KeyNO=16;

}

P1=0xf0;

DelayMS(1);

Tmp=P1>>4^0x0f;

switch(Tmp)

{

case1:KeyNO+=0;break;

case2:KeyNO+=4;break;

case4:KeyNO+=8;break;

case8:KeyNO+=12;

}

}

voidBeep()

{

uchari;

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

{

DelayMS(1);

BEEP=~BEEP;

}

BEEP=1;

}

voidmain()

{

P0=0x00;

while(1)

{

P1=0xf0;

if(P1!=0xf0)

Keys_Scan();

if(Pre_KeyNO!=KeyNO)

{

P0=~DSY_CODE[KeyNO];

Beep();

Pre_KeyNO=KeyNO;

}

DelayMS(100);

}

}

③ 如何利用单片机让4位数码管显示

程序如下(用的是STC89C52芯片):

#include<reg52.h>//52系列单片机头文件

#defineucharunsignedchar

#defineuintunsignedint

uintx,y;

ucharcodetable[]={

0x3f,0x06,0x5b,0x4f,

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

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

0x39,0x5e,0x79,0x71};//共阴极数码管编码

voiddisplay(uchar,uchar,uchar,uchar);//声明子函数斗谨

voiddelay(int);//声明子函数

voidmain()

{

while(1)

{

display(1,2,3,4);//主程序始终调用数码管显示子程序

}

}

voiddisplay(uchara,ucharb,ucharc,uchard)

{

P2=0xef;

P0=table[a];//给第一个数码管送"a"

delay(1);//延时1ms

P2=0xdf;

P0=table[b];//给第二个数码管送"b"

delay(1);//延时1ms

P2=0xbf;

P0=table[c];//给第三个数码管送"c"

delay(1);//延时1ms

P2=0x7f;空亩基

P0=table[d];//给第三个数码管送"d"

delay(1);//延时1ms

}

voiddelay(uintz)//延时子函数

{

uintx,y;

for(x=z;x>0;x--)

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

}

(3)四位数led单片机扩展阅读

led数码管是由多个发光二极管封装在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极。led数码管常用段数一般为7段有的另加一个小数点,还有一种是类似于3位“+1”型。

位数有半位,1,2,3,4,5,6,8,10位等等,led数码管根据LED的接法耐昌不同分为共阴和共阳两类,了解LED的这些特性,对编程是很重要的,因为不同类型的数码管,除了它们的硬件电路有差异外,编程方法也是不同的。

④ 采用单片机与4位共阴极LED,显示1234

这是用锁存器的情况下,其谈春态中P0=0xfb P0=0xef这些语句是输出位码,它们都只有一个0,表示每次只开通某一个数码管,应根据你的硬件决定位码的数值
#include<reg52.h>

sbit la=P2^6;

sbit wela=P2^7;
#define uint unsigned int;

#define uchar unsigned char;
void delay(uint i)//延时函数

{
uint j,k;
for(j=i;j>0;j--)
for(k=125;k>0;k--);
}
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,
0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00};//共含源阴极七段码

void display(uchar qian_c,uchar _c,uchar shi_c,uchar ge_c)//4位显示程序
{
P0=table[qian_c]; //显示千位
la=1;
la=0;

P0=0xfb;
wela=1;
wela=0;
delay(2);

P0=table[_c]; //显示百位
la=1;
la=0;

P0=0xf7;
wela=1;
wela=0;
delay(2);

P0=table[shi_c]; //显示十位
la=1;
la=0;

P0=0xef;
wela=1;
wela=0;
delay(2);

P0=table[ge_c]; //显示个位
la=1;
la=0;

P0=0xdf;
wela=1;
wela=0;
delay(2);
P0=0xff; //显示完毕后关闭最后一位显示
wela=1;
wela=0;
}
void main()
{
while(1)
{
dislpay(1,2,3,4);
}
}
如果没用锁存器,而只用4个三极管作位驱动
显示程序为:
void display(uchar qian_c,uchar _c,uchar shi_c,uchar ge_c)//4位显示程序
{
P0=table[qian_c]; //森岁显示千位
P1^0=0;//假设P1.0控制第一位数码管
delay(2);
P1^0=1;
P0=table[_c]; //显示百位
。。。。。。
}

⑤ 运用51单片机实现4位8段LED数码管的动态数字显示,写出C语言程序

#include<reg52.h>
#define
uchar
unsigned
char
#define
uint
unsigned
int
uchar
count;
uint
disnum;
sbit
la=P2^6;
sbit
wela=P2^7;
uchar
code
table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
display(uchar,uchar,uchar);
delay(uchar);
void
main()
{
EA=1;
ET1=1;
TMOD=0x10;
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
TR1=1;
while(1)
{
if(count==20)
{
count=0;
//
if(disnum==1000)
//
disnum=0;
disnum++;
}
display(disnum/100,disnum%100/10,disnum%100%10);
}
}
void
tim1()
interrupt
3
using
3
{
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
count++;
}
display(uchar
,uchar
shi,uchar
ge)
{
P0=table[];
la=1;
la=0;
P0=0xfe;
wela=1;
wela=0;
delay(1);
P0=table[shi];
la=1;
la=0;
P0=0xfd;
wela=1;
wela=0;
delay(1);
P0=table[ge];
la=1;
la=0;
P0=0xfb;
wela=1;
wela=0;
delay(1);
}
delay(uchar
x)
{
uchar
a,b;
for(a=x;a>0;a--)
for(b=255;b>0;b--);
}
//你自己看一下,有不对的就改点.别忘了给分啊

⑥ 用单片机控制4位LED数码显示,先从左到右慢速动态扫描显示数字“1357”,“2468”,然后在从

#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar code dis_code_[]={0xf9,0xb0,0x92,0xf8,0xa4,0x99,0x82,0x80,0x88,0x83,0xc6,0xa1,0x86,0x8e,0x89,0x8c};
void delay(uint t)
{
uchar i;
while (t--)
{
for(i=0;i<200;i++);
}
}
void main()
{
uchar i,j=0x80;
while(1)
{
for(i=0;i<4;i++)
{j=_crol_(j,1);
P0=dis_code_[i];
P2=j;
delay(200);
}
}
while(1)
{for(i=4;i<8;i++)
{j=_crol_(j,1);
P0=dis_code_[i];
P2=j;
delay(180);
}
}
while(1)
{for(i=8;i<12;i++)
{j=_crol_(j,1);
P0=dis_code_[i];
P2=j;
delay(100);
}
}
while(1)
{for(i=12;i<16;i++)
{j=_crol_(j,1);
P0=dis_code_[i];
P2=j;
delay(100);
}
}
}

⑦ 用单片机控制4位LED数码管显示,先从左至右慢速动态扫描显示数字13572468 大佬求告知

主要程序如下:
uchar table[8]={1,3,5,7,2,4,6,8};//要显示的数字
uchar qian_tab[10]={.........};//七段码
while(1)
{
for(i=0;i<5;i++)//先显示1357,第二次显示3572 第三次显示5724
{
for(j=0;j<20;j++)//刷新20次约0.4秒,推进一位
{
wei1=0;P0= table[qian_tab[ i]; delayms(5);wei1=1;
wei2=0;P0= table[qian_tab[ i+1];delayms(5); wei2=1;
wei3=0;P0= table[qian_tab[ i+2]; delayms(5);wei3=1;
wei4=0;P0= table[qian_tab[ i+3]; delayms(5);wei4=1;
}
}
}

⑧ 单片机 4位led动态显示

这个是汇编
我只能帮差山你写个C语言的
假虚激中设你的数码管是铅拦低电位选通
是共阴的
#include<reg51.h>
#define
smg
P0
sbit
no1=P2^0;
sbit
no2=P2^1;
sbit
no3=P2^2;
sbit
no3=P2^3;
void
delay(int
x)
{
int
i,j;
for(i=0;i<x;i++)
for(J=0;J<120;J++);
}
void
smgscan()
{
no1=0;
smg=0xf9;
delay(20);
no2=0;
smg=0xa4;
delay(20);
no3=0;
smg=0xb0;
delay(20);
no4=0;
smg=0x99;
delay(20);
}
void
main()
{
while(1)
{
smgscan();
}
}

阅读全文

与四位数led单片机相关的资料

热点内容
程序员不时尚 浏览:745
不付费看网站 浏览:230
《代人受过》训诫文 浏览:258
1n.d5h49m6. 浏览:687
linuxweb目录权限 浏览:945
WWW 5a5e 浏览:544
id3v2java 浏览:222
怎么打开mysql命令行 浏览:522
linux文件星号 浏览:632
小城与小妈去北京旅游叫什么小说 浏览:230
pdf阅读器推荐 浏览:81
能免费看英语电影的软件 浏览:126
有部电影女主半夜出去卖淫 浏览:628
西门子编程试题 浏览:82
android转动360 浏览:334
服务器为什么要重装系统 浏览:438
华为尝鲜怎么还是原来的安卓系统 浏览:595
女主是警察的小说 浏览:792
魔兽宏命令是什么 浏览:250
《法国空姐》啄木鸟种子 浏览:95