❶ 用單片機匯編語言製作廣告燈。利用取表的方法。
ORG0000H
MOVDPTR,#TAB
LP1:
MOVR2,#4
LP:MOVA,R2
MOVCA,@A+DPTR
MOVP0,A
DJNZR7,$
DJNZR6,$-2
DJNZR2,LP
SJMPLP1
TAB:
DB0,18H,24H,42H,81H
END
❷ 單片機廣告燈程序(89C51)
接電路注意,二極體正極接電源VCC,是低電平驅動
ORG 00H
SJMP STAR
STAR: ORG 30H
LOOP: MOV P1,#00H
LCALL DELAY
MOV P1,#AAH
LCALL DELAY
MOV P1,#55H
LCALL DELAY
MOV P1,#0F0H
LCALL DELAY
MOV P1,#0FH
LCALL DELAY
LJMP LOOP
DELAY:MOV R7,#250 ;延時0.5秒需要更長的話多加幾個LCALL DELAY
D1: MOV R6,#250
D2:NOP
NOP
NOP
NOP
NOP
NOP
DJNZ R6,D2
DJNZ R7,D1
RET
END
❸ 單片機廣告燈的設計C語言程序<分數不多 但求大神告知 好人一生平安>
#include<reg51.h>
#define uchar unsigned char
uchar ledt[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
uchar ledi[]={0xfc,0xf9,0xf3,0xe7,0xcf,0x9f,0x3f,0x7e);
uchar nt=0,ni=0;
void timer0() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
switch(nt)
{
case 0:
case 1:
case 2:
case 3:
case 4:
case 5:
case 6:
case 7:
P1=ledt[nt];break;
case 8:
case 9:
case 10:
case 11:
case 12:
case 13:
case 14:
p1=ledt[14-nt];break;
case 15:
P1=0x00;break;
case 16:
P1=0xff;break;
default:
nt=0;break;
}
nt++;
}
void ext0() interrupt 0
{
switch(ni)
{
case 0:
case 1:
case 2:
case 3:
case 4:
case 5:
case 6:
case 7:
P1=ledt[ni];break;
case 8:
case 9:
case 10:
case 11:
case 12:
case 13:
case 14:
P1=ledt[14-ni];break;
case 15:
P1=0xff;break;
case 16:
P1=0x00;break;
default:
ni=0;break;
}
}
void delay(uchar a)
{
uchar i,j;
for(i=0;i<a;i++)
for(j=0;j<120;j++);
}
main()
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
ET0=1;
EX0=1;
IT0=0;
EA=1;
TR0=1;
while(1)
{
while(P3_2)
{
TR0=0;
delay(50);
ni++;
}
TR0=1;
}
❹ 請大蝦幫我分析單片機的程序(花樣廣告燈)!最後那一段DB的程序是什麼意思呢那些16進制的數據有什麼用
DB是匯編里的偽指令之一,後面跟的是單位元組的數據。
DB後面放的就是流水燈的數據,控制燈亮滅的。程序從第一個數取起,取出後送P1口,延時,再取下一個。比如取到第3 個,0AAH就是1010 1010 ,這個數送到P1口,那麼燈就是亮一個滅一個間隔的。再取第4 個,55H就是0101 0101 ,那原來亮的就滅了,滅的亮了。。。。
❺ MCS-51系列單片機製作廣告燈程序和電路設計
明白你的需求我來完成你的任務
你把重點內容告訴我
我到時候怎樣發給你
的
❻ 單片機廣告燈設計,所使用的應用軟體叫什麼除了51的編譯軟體Keil C!
偉副跟KEIL一樣,不過沒有keil強大,你說的那個應該是PROTEUS.專門的單片機模擬,應該來講沒有軟體可以跟它抗衡
❼ 在單片機的開發板上,製作一個廣告燈,要求低四位led燈從低到高(從右
這對咱們信息這個廣告一定要注意,LED燈的功率19 85
❽ 51單片機實現廣告燈控制系統
:廣告燈控制系統
❾ 單片機控制廣告燈課題設計程序
#include<reg51.h>
unsigned char time=0;
void delay(unsigned long w)
{
while(w--);
}
void zuoxunhuan()
{
unsigned char C;
for(C=0x80;C!=0;C>>=1) //左移
{
P1=C;
delay(30000);
}
}
void youxunhuan()
{
unsigned char C;
for(C=0x01;C!=0;C<<=1) //右移
{
P1=C;
delay(30000);
}
}
void zengti() //遞增
{
unsigned int C;
for(C=0xFE;C!=0;C<<=1)
{
P1=~C;
delay(30000);
}
}
void jiaoti() //交替
{
P1=0x55;
delay(30000);
P1=0xaa;
delay(30000);
}
void init_init()
{
EX0=1;
EA=1;
}
void into_into() interrupt 0 //P3.2外接一個按鍵底電瓶有效切換程序
{
if((time+=1)==5) time=0;
delay(400000);
}
void main()
{
init_init();
while(1)
{
if(time==1) zuoxunhuan();
if(time==2) youxunhuan();
if(time==3) zengti();
if(time==4) jiaoti();
if(time==0)
{
zuoxunhuan();
youxunhuan();
zengti();
jiaoti();
}
}
}
❿ 廣告燈左移右移的單片機程序
八個發光二極體L1-L8分別接在單片機的P1.0-P1.7介面上,輸出「0」時,發光二極體亮,開始時P1.0→P1.1→P1.2→P1.3→┅→P1.7→P1.6→┅→P1.0亮,重復循環,晶振12M:
這是匯編:
ORG
0
START:
MOV
R2,#8
MOV
A,#0FEH
SETB
C
LOOP:
MOV
P1,A
LCALL
DELAY
RLC
A
DJNZ
R2,LOOP
MOV
R2,#8
LOOP1:
MOV
P1,A
LCALL
DELAY
RRC
A
DJNZ
R2,LOOP1
LJMP
START
DELAY:
MOV
R5,#20
;
D1:
MOV
R6,#20
D2:
MOV
R7,#248
DJNZ
R7,$
DJNZ
R6,D2
DJNZ
R5,D1
RET
END
當然,還可以用C語言來編寫:
#include
<reg52.h>
#include
<intrins.h>//包含位移函數
#define
uint
unsigned
int
#define
uchar
unsigned
char
uchar
temp,i;
//數據類型unsigned
char為8位
void
delay(uint);
void
main()
{
temp=0xfe;
P1=temp;
while(1)
{
for(i=0;i<8;i++)
{
temp=_cror_(temp,1);
//右移一位
delay(800);
//設置延時的時間
P1=temp;
}
for(i=0;i<8;i++)
{
temp=_crol_(temp,1);
//左移一位
delay(800);
//設置延時的時間
P1=temp;
}
}
}
void
delay(uint
z)
//延時程序
{
uint
y;
for(;z>0;z--)
for(y=248;y>0;y--)
;
}