導航:首頁 > 源碼編譯 > 輝光管源碼

輝光管源碼

發布時間:2023-09-06 21:16:08

1. 單片機數碼管靜態顯示學號1830508,用keil 最好有過程,在圖上的過程上修改

// 單片機數碼管動態顯示學號1830508(注多位數碼管用靜態顯示電路會很復雜,所以一般多用動態顯示),方法有多種,下面是一個模擬常式可以參考。

#include<reg51.h>

#define uchar unsigned char

// 此表為 LED 的字模 0 1 2 3 4 5 6 7 8 9 a b c d e f

unsigned char code LED7Code[] = {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71};

void delay(uchar z)

{

uchar i,j;

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

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

}

void main()

{

while(1)

{

P0=0xff;

P2=LED7Code[0];

P0=0xfe;

delay(5);

P0=0xff;

P2=LED7Code[1];

P0=0xfd;

delay(5);

P0=0xff;

P2=LED7Code[8];

P0=0xfb;

delay(5);

P0=0xff;

P2=LED7Code[3];

P0=0xf7;

delay(5);

P0=0xff;

P2=LED7Code[0];

P0=0xef;

delay(5);

P0=0xff;

P2=LED7Code[5];

P0=0xdf;

delay(5);

P0=0xff;

P2=LED7Code[0];

P0=0xbf;

delay(5);

P0=0xff;

P2=LED7Code[8];

P0=0x7f;

delay(5);

}

}

2. 單片機匯編語言數碼管顯示數字。。。。

MAIN:
;------------------
LOOP:
ACALLSHOW1
ACALLDELAY
ACALLSHOW6
ACALLDELAY
SJMPLOOP
;------------------
SHOW1:
MOVP0,#06H
SETBP2.6
CLRP2.6
MOVP0,#0FEH
SETBP2.7
CLRP2.7
RET
;------------------
SHOW6:
MOVP0,#7DH
SETBP2.6
CLRP2.6
MOVP0,#0FDH
SETBP2.7
CLRP2.7
RET
;------------------
DELAY:
DEL1:
NOP
NOP
DJNZR7,DEL1
RET
;------------------
END

3. 單片機控制一個4位的共陰數碼管通電的狀態下顯示時間的程序

#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit PRESS1=P1^0;
sbit PRESS2=P1^1;
sbit PRESS3=P1^2;
uint a[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//0到9
uint b[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
int miao=45,fen=58,shi=15;
uint jishu;
uint miaog,miaos,feng,fens,shig,shis;
int ji;
void init()//初始化函數設置中斷寄存器的值。
{
jishu=0;
TMOD=0x01;
TR0=1;
ET0=1;
EA=1;
TH0=0x3c;
TL0=0xb0;

}
void delay(x)//延時函數。
{
uint i,j;
for(i=x;i>0;i--)
for(j=120;j>0;j--);
}
void xian()//把時分秒送到數碼管顯示。
{
uint i;
miaog=miao%10;
miaos=miao/10;
feng=fen%10;
fens=fen/10;
shig=shi%10;
shis=shi/10;
for(i=0;i<8;i++)
{
switch(i)
{
case 0:P3=b[7];P2=a[miaog];break;
case 1:P3=b[6];P2=a[miaos];break;
case 2:P3=b[5];P2=0x40;break;
case 3:P3=b[4];P2=a[feng];break;
case 4:P3=b[3];P2=a[fens];break;
case 5:P3=b[2];P2=0x40;break;
case 6:P3=b[1];P2=a[shig];break;
case 7:P3=b[0];P2=a[shis];break;
}
delay(1);
};
}
void jiance()//檢測鍵是否按下按不同鍵實現不同的處理。
{
if(PRESS1==0)
{
delay(2);
if(PRESS1==0)
{
while(!PRESS1);
ji++;
if(ji>=4)
ji=0;
}
}
if(ji==1)
{
if(PRESS2==0)
{
delay(1);
while(!PRESS2);
miao++;
if(miao>=60)
{
miao=0;
fen++;
}
}
if(PRESS3==0)
{
delay(1);
while(!PRESS3);
miao--;
if(miao<0)
{
miao=59;

}
}
}
if(ji==2)
{
if(PRESS2==0)
{
delay(1);
while(!PRESS2);
fen++;
if(fen>=60)
{
fen=0;
shi++;
}
}
if(PRESS3==0)
{
delay(1);
while(!PRESS3);
fen--;
if(fen<0)
{
fen=59;

}
}
}
if(ji==3)
{
if(PRESS2==0)
{
delay(1);
while(!PRESS2);
shi++;
if(shi>=24)
{
shi=0;

}
}
if(PRESS3==0)
{
delay(1);
while(!PRESS3);
shi--;
if(shi<0)
{
shi=23;

}
}
}
if(ji==0)
EA=1;
else
EA=0;
}

void main()
{
init();
while(1)
{
xian();
jiance();

}
}
void an() interrupt 1 //計時中斷0工作方式1函數。
{
TH0=0x3c;
TL0=0xb0;
jishu++;
if(jishu==20)
{
jishu=0;
miao++;
if(miao==60)
{
miao=0;
fen++;
if(fen==60)
{
fen=0;
shi++;
if(shi==24)
shi=0;
}
}
}
}

4. C51編程:如何讓一位數碼管循環顯示數字0~9,時間間隔為1秒

非精確的,用定時器就足夠了,

有模擬圖,

P0加上拉電阻,

74HC373做驅動,不過沒加保護電阻,

模擬通過:

這是源碼

#include<reg52.h>

unsignedcharcode1[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};

unsignedinta;

voiddelay()

{

unsignedinti,j;

for(i=100;i>1;i--)

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

}

main()

{

while(1)

{

for(a=0;a<=9;a++)

{

P0=code1[a];

delay();

}

}

}

閱讀全文

與輝光管源碼相關的資料

熱點內容
雲伺服器難玩嗎 瀏覽:274
如何ping雲端伺服器 瀏覽:148
文件夾中能不能存放設備文件 瀏覽:3
繼電器連接單片機 瀏覽:14
寧明天西到崇左源碼 瀏覽:657
10g文件夾誤刪能恢復嗎 瀏覽:132
dos命令服務啟動 瀏覽:724
aws雲伺服器付費 瀏覽:171
水滴桿文件夾圖片 瀏覽:26
java百戰程序員25講 瀏覽:383
java斑馬 瀏覽:998
名片開發源碼 瀏覽:333
如何買便宜的雲伺服器 瀏覽:774
linux的命令提示符 瀏覽:979
機器人焊接手柄編程入門教程 瀏覽:653
方舟怎麼進入之前進去的伺服器 瀏覽:810
家有萌寶解壓 瀏覽:929
linuxc一站式學習pdf 瀏覽:20
奇思妙想pdf 瀏覽:992
租用裸金屬伺服器需要什麼資質 瀏覽:636