Ⅰ 鐢ㄥ崟鐗囨満鎺у埗4浣峀ED鏁扮爜綆℃樉紺猴紝鍏堜粠宸﹁嚦鍙蟲參閫熷姩鎬佹壂鎻忔樉紺烘暟瀛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;
}
}
}
Ⅱ 51單片機四位一體共陽極數碼管顯示編程
不清楚你的電路構成如何,因此先按下面的假設執行段碼及位碼的輸出;
其中,延時值可根據實驗效果予以調整;
設 P0 為輸出七段碼(共陽極數據);
四位數碼管有4個陽極,設位碼分別與P2.4--P2.7對應,並且=1時表示可點亮數碼管;
sbit wma1=b2^4; //對應左起第1個數碼管的陽極
sbit wma2=b2^5; //對應左起第2個數碼管的陽極
sbit wma3=b2^6;
sbit wma4=b2^7;
void main()
{
wma1=0; wma2=0; wma3=0; wma4=0;
while(1)
{
P0=table[0]; wma1=1; delay(10); wma1=0;
P0=table[1]; wma1=2; delay(10); wma2=0; P0=table[2]; wma1=3; delay(10); wma3=0; P0=table[3]; wma1=4; delay(10); wma4=0; P0=table[4]; wma1=1; delay(10); wma1=0; P0=table[5]; wma1=2; delay(10); wma2=0; P0=table[6]; wma1=3; delay(10); wma3=0; P0=table[7]; wma1=4; delay(10); wma4=0;
}
}
Ⅲ 如何利用單片機讓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數碼管是由多個發光二極體封裝在一起組成「8」字型的器件,引線已在內部連接完成,只需引出它們的各個筆劃,公共電極。led數碼管常用段數一般為7段有的另加一個小數點,還有一種是類似於3位「+1」型。
位數有半位,1,2,3,4,5,6,8,10位等等,led數碼管根據LED的接法不同分為共陰和共陽兩類,了解LED的這些特性,對編程是很重要的,因為不同類型的數碼管,除了它們的硬體電路有差異外,編程方法也是不同的。
Ⅳ 51單片機4個數碼管顯示程序
#include<reg52.h> //52系列單片機頭文件
#define uchar unsigned char //宏定義
#define uint unsigned int
sbit la=P2^6; //申明u1鎖存器的鎖存端
sbit wela=P2^7; // u2
uchar num1,num2;
uchar code table[]={ //數組定義
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
uchar code aable[]={ //位選數組定義
0xfe,0xfd,0xfb,0xf7,0xef,0xdf};
void delays(uint); //子函數申明
void main()
{
while(1)
{
for(num1=0;num1<48;num1++) //6個數循環顯示
{
wela=1; //打開u2鎖存端
P0=aable[num1%6]; //送入位選信號
wela=0; //關閉u2鎖存端
// delays(1);
la=1; //打開u1鎖存端
P0=table[num1%16]; //送入段選信號
la=0; //關閉u1鎖存端
delays(1);
}
}
}
/*---------主函數-----------------------------------------------*/
void delays(uint xs)
{
uint i,j,k;
for(i=xs;i>0;i--)
for(j=1000;j>0;j--)
for(k=110;k>0;k--);
}
/*----------------延時程序-----------------------------------------------*/
Ⅳ 哪位高手幫幫忙幫我編個程序,用8051單片機控制4位LED共陽數碼管。。
#include<reg52.h>
sbit KEY=P3^3; //定義按鍵輸入埠
sbit LED=P1^2; //定義led輸出埠,一個四個都是一樣的定義方法
void main (void)
{
KEY=1; //按鍵輸入埠電平置高
while (1) //主循環
{
if(!KEY) //如果檢測到低電平,說明按鍵按下
LED=0;
else
LED=1; //這里使用if判斷,如果按鍵按下led點亮,否則熄滅
//如果需要四個亮就寫LED1=1;LED2=1,LED3=1;LED4=1;不過上面得先定義好這四個led的引腳 }
}
希望對你有幫助