導航:首頁 > 操作系統 > 四位數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單片機相關的資料

熱點內容
我昨天看了航天電影英文翻譯 瀏覽:174
熙和宇電影高級家庭 瀏覽:235
主角10歲收了母親的小說 瀏覽:544
女獄電影日本 瀏覽:154
二龍湖浩哥最早的作品 瀏覽:699
異界收母入後宮 瀏覽:155
ida反編譯出來的代碼是匯編指令嗎 瀏覽:820
小孩子是天才的電影 瀏覽:450
輿情監控演算法 瀏覽:147
好看123電影 瀏覽:751
成龍主演的五行拳電影名字 瀏覽:954
好看的中文字幕經典 瀏覽:913
android仿qq輸入 瀏覽:117
看輕小說的網站 瀏覽:86
命令與征服3戰役存檔 瀏覽:147
台灣風月影片 瀏覽:326
彭偶么電視劇電影大全 瀏覽:291
重生井岡山林楓 瀏覽:519
日本大片網址大全 瀏覽:741
在線免費觀看完整版電影大全韓國 瀏覽:889