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

輝光管源碼

發布時間: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();

}

}

}

閱讀全文

與輝光管源碼相關的資料

熱點內容
海康威視python通道名 瀏覽:239
如何用app覆蓋全部曲庫 瀏覽:602
變異布林源碼 瀏覽:684
表格加密設置列印區域 瀏覽:437
卡耐基pdf下載 瀏覽:922
現在最流行的單片機 瀏覽:88
機頂盒刷機源碼 瀏覽:985
編碼pdf下載 瀏覽:944
隔壁同學app怎麼 瀏覽:299
c語言宏命令 瀏覽:542
php卡死源碼 瀏覽:574
time庫中的clock函數python 瀏覽:989
cad視覺移動命令怎麼打開 瀏覽:821
安卓java調用python 瀏覽:395
java標准時間 瀏覽:137
華為伺服器湖北渠道商雲主機 瀏覽:30
韓式面部護理解壓視頻 瀏覽:301
pdf換成jpg圖片 瀏覽:897
dh加密演算法 瀏覽:107
安卓手機如何隱藏微信信息提示 瀏覽:632