1.來個單片機最簡潔的C語言流水燈程序
#include<reg52.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void main()
{
uchar a,i,j;
while(1)
{
a=0xfe;
for(i=8;i>0;i--)
{
P1=a;
delay(400);
a<<=1;
}
for(j=6;j>0;j--)
{
P1=~P1;
delay(400);
}
for(j=2;j>0;j--)
{
a=0xfe;
for(i=8;i>0;i--)
{
P1=a;
delay(400);
a=_crol_(a,1);
}
}
}
}
2.單片機流水燈簡單的程序
while(1)
{
P1=i;
i=_crol_(i,1);
if(i==j)
{
P1=j;
j=_cror_(j,1); //這里只會執行一次,然后就直到i左移后等于j了,然后又執行一次
} //所以得不到你要的結果。
delay(1000);
}
——————————————————正確的分割線——————————
char flag=0;
while(1)
{
if(flag)
{
P1=i;
i=_crol_(i,1);
if(i == 0x7f) flag = 1;
}
else
{
P1=i;
i=_cror_(i,1);
if(i == 0xfe) flag = 0;
}
delay(1000);
}
3.跪求
那就是點陣洛,程序是這樣的:/流水燈的方式測試點陣
#include <reg52.h>
////////////////////////////////////////////////////////
void delay(unsigned int cnt)
{
while(--cnt);
}
///////////////////////////////////////////////////////
main()
{
P2=0x00;
P0=0x55;
P2=0xfe;//給初始化值
while(1)
{
delay(30000);//delay at crystal frequency in 12MHz
P2<<=1;//左移一位
P2|=0x01;//最后一位補1
if(P2==0x7f)//檢測是否移到最左端?
{
delay(30000);//delay
P2=0xfe;
P0=~P0;
}
}
}
4.用單片機制作心形花樣流水燈,要程序
include<reg51.h>
#include <intrins.h>
void delayms(unsigned char ms)
// 延時子程序
{
unsigned char i;
while(ms--)
{
for(i = 0; i < 120; i++);
}
}
main()
{
unsigned char LED;
LED = 0xfe;
P1 = LED;
while(1)
{
delayms(250);
LED = _crol_(LED,1); //循環右移1位,點亮下一個LED
P1 = LED;
}
}
5.來個單片機最簡潔的C語言流水燈程序
MANI: MOV R1,#08H MOV R2,#03H MOV A,#0FEHNO_LOOP :MOV P1,A; RRC A SETB C ACALL DELAY CJNE R1,NO_LOOPLIGH_LOOP:MOV P1,#0FFH ACALL DELAY MOV P1,#00H CJNE R2,LIGH_LOOP MOV R1,#10H MOV A,#0FEHTOW_LOOP:MOV P1,A RR A ACALL DELAY CJNE R1,TOW_LOOP LJMP MAIN剛剛寫的忘記寫延時函數;補上:DELAY:MOV R3,#FFH L1: MOV R4,#FFH CJNE R4,$ CJNE R3,L1(PS:TX真~!@##$,竟然不能很好的支持谷歌瀏覽器)。
6.跪求一個最簡單的單片機流水燈程序
ORG 0000H ;從RAM內存地址為0000H處執行程序
AJMP MAIN ;跳過中斷地址區
ORG 0100H ;程序存儲的起始地址
MAIN:
MOV A,#11111110B ;給累加器A賦值
MAIN1: MOV P0,A ;P0=A,只有一個燈亮
ACALL DELAY ;調用延時程序
RL A ;累加器的各位左移
AJMP MAIN1 ;返回到MAIN1,循環
DELAY: MOV R7,#10H ;延時程序
DELAY0: MOV R6,#7FH
DELAY1: MOV R5,#7FH
DELAY2: DJNZ R5,DELAY2
DJNZ R6,DELAY1
DJNZ R7,DELAY0
RET ;延時返回
END ;程序結束
調用延時程序是因為,單片機運算速度很快,如果沒有延時,一個循環的時間很短,小燈亮的時間很短,人眼根本看不到流水燈的現象。大家可以去試試,如果不調用延時,因為視覺延遲,人眼看到的所有小燈都是亮的。不過亮度較低。
應該還算清楚吧。
7.求幫忙編一個心形流水燈的匯編語言程序
像這種需要用到全部4個P口的流水燈,用移位的方法比較好實現。
示范一下:ORG 0000HLJMP MAINORG 0030HMAIN: MOV P0,#0FEH MOV P1,#0FFH MOV P2,#0FFH MOV P3,#0FFH SETB CLOOP: MOV A,P0 RLC A MOV P0,A MOV A,P1 RLC A MOV P1,A MOV A,P2 RLC A MOV P2,A MOV A,P3 RLC A MOV P3,A LCALL DELAY SJMP LOODELAY: MOV R2,#100DLY: MOV R3,#250 DJNZ R3,$ DJNZ R2,DLY RET END。
轉載請注明出處華閱文章網 » 單片機心形流水燈程序簡短的