導航:首頁 > 操作系統 > 單片機流水燈秒錶

單片機流水燈秒錶

發布時間:2022-06-24 09:30:54

A. 單片機流水燈

P0口控制,先奇數亮再偶數亮,循環三次;一個燈上下循環三次;兩個分別從兩邊往中間流動三次;再從中間往兩邊流動三次;不過這個程序實現的應該是這樣的
先奇數亮再偶數亮,循環三次;一個燈上下循環三次;兩個分別從兩邊往中間流動;再從中間往兩邊流動(延時0.1s)
#include< reg52.h>
#include< intrins.h>//頭文件
#define uint unsigned int
#define uchar unsigned char//聲明用unit代替unsigned int,下個同理
void delay();
void main()
{ uchar temp,temp1,temp2,a,b;
while(1)
{ for(b=3;b>0;b--)
{ temp=0xaa;
P0=temp;
delay();
temp=0x55;
P0=temp;
delay();//調用延時函數
}
for(a=3;a>0;a--)
{ temp=0xfe;
for(b=7;b>0;b--)
{ P0=temp;
temp=_crol_(temp,1);
delay();
P0=temp;
delay();
}
}
temp1=0xfe;
temp2=0x7f;
for(a=8;a>0;a--)
{
temp=temp1&temp2;
P0=temp;
delay();
temp1=_crol_(temp1,1);
temp2=_cror_(temp2,1);
}
}
}
void delay()
{ uint a,b;
for(a=100;a>0;a--)
for(b=100;b>0;b--);
} //延時函數
希望可以幫助到您

謝謝

B. 單片機流水燈程序

在任意位置建立一個專門用於存放單片機試驗程序的文件夾,啟動keil c51 集成開發環境。新建一個工程項目,點擊project,new project放到我們上一步新建的文件夾中選取相應的單片機晶元,選取相應的CPU。本實驗使用89c52晶元,在這里選取Atmel 公司的AT89C52新建一個文本,點擊filenew或Ctrl+n或點擊工具欄的空白文本,然後保存到我們的工程文件夾中,名字後綴改為c文件點擊圖一所示圖標,修改一下配置,改為12mhz,選擇生成hex文件,然後找到project窗口的source group右鍵選擇add files to group找到我們新建的".c"文件
寫入相應的程序,下面解釋一下這個程序#include <reg52.h>       //此文件中定義了51的一些特殊功能寄存器#define uint unsigned int;  這是個延時的程序,運用兩個鑲嵌for語句以for(i=0;i<500  ;i++)為例  i賦值為0,當判斷i是否小於500,若是那就跳出for語句,否則運行for語句內為主函數 while() 為循環語句當 ()內的數為真時循環, 為假時跳出循環, 括弧內非零為真,零為假 0xfe=二進制的1111 1110點擊rebuild圖標,提示沒有檢查出沒有錯誤方可,若有錯誤就要修改啟動proteus模擬軟體,如圖製作好,雙擊單片機,選擇好我們製作好的hex的文件。點擊開始就可以看到流水燈的效果啦把程序下載到開發板中就可以看到實際的流水燈效果。

C. 單片機流水燈

很簡單。我昨天剛給一個學生做了個這樣的程序。還沒刪除呢應該。你應該能用的到。還有就是你告訴我你要用什麼PLC。
把你要用什麼PLC告訴我。希116望我45的回78887答能幫到你。(看shuzi)希望我能幫到你,如果有幫助的話,記得採納或者點個贊吧!!!!!!!!
#include<reg52.h>
#include<intrins.h>//庫函數調用
#define uint unsigned int
#define uchar unsigned
sbit wela=P2^7;
sbit la=P2^6;
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
uchar num,temp,num2;
void delay(uint);
void main()
{
/*定時器初始化*/
temp=0xfe;
TMOD=0x01;
TH0=(65536-45872)/256;
TL0=(65536-45872)%256;
EA=1;
ET0=1;
TR0=1;
wela=1;
P0=0xc0;
wela=0;
while(1)
{
for(num=0;num<16;num++)
{
la=1;
P0=table[num];
la=0;
delay(500);
}
}
}

void delay(uint z)
{
uint i,j;
for(i=z;i>0;i--)
for(j=110;j>0;j--);
}
void dengliang() interrupt 1//定時器函數
{
TH0=(65536-45872)/256;
TL0=(65536-45872)%256;
num2++;
if(num2==20)
{
num2=0;
temp=_crol_(temp,1);
P1=temp;
}
}

#includereg51.h>
void delay()
{
unsigned char i,j,k;
for(i=1;i>0;i--)
for(j=200;j>0;j--)
for(k=248;k>0;k--);
}
void main()
{
unsigned char i;
foe(i=0;i<6;i++)
{
P2=0xfe;
delay();

P2=0xfe;
delay();

P2=0xfd;
delay();

P2=0xfb;
delay();

P2=0xf7;
delay();

P2=0xef;
delay();

P2=0xdf;
delay();

P2=0xbf;
delay();

P2=0x7f;
delay();
}
while(1);
}

D. 如何用單片機實現流水燈,從一依次亮到八,再從八依次亮回一,一直循環

用GPIO寄存器比如PA、PB、PC這類的整段寄存器。配合循環、移位和延時(軟硬都可以)操作,就能很優雅地實現。

單片機(Single-Chip Microcomputer)是一種集成電路晶元,是採用超大規模集成電路技術把具有數據處理能力的中央處理器CPU、隨機存儲器RAM、只讀存儲器ROM、多種I/O口和中斷系統、定時器/計數器等功能(可能還包括顯示驅動電路、脈寬調制電路、模擬多路轉換器、A/D轉換器等電路)集成到一塊矽片上構成的一個小而完善的微型計算機系統,在工業控制領域廣泛應用。從上世紀80年代,由當時的4位、8位單片機,發展到現在的300M的高速單片機。

單片機又稱單片微控制器,它不是完成某一個邏輯功能的晶元,而是把一個計算機系統集成到一個晶元上。相當於一個微型的計算機,和計算機相比,單片機只缺少了I/O設備。概括的講:一塊晶元就成了一台計算機。它的體積小、質量輕、價格便宜、為學習、應用和開發提供了便利條件。同時,學習使用單片機是了解計算機原理與結構的最佳選擇。

E. 51單片機設計一個秒錶,用兩個數碼管(任意相鄰的兩個)顯示。

ORG 0000H
JMP BEGIN
ORG 000BH
LJMP T0INT
ORG 001BH
LJMP T1INT
LEDD EQU 30H
LEDC EQU 36H
SECC EQU 37H
TCNT EQU 3AH
ORG 0030H
;---------------------------------------
TABLE: ; 共陰極數碼管顯示代碼表
DB 0FCH ;"0" 00H
DB 60H ;"1" 01H
DB 0DAH ;"2" 02H
DB 0F2H ;"3" 03H
DB 66H ;"4" 04H
DB 0B6H ;"5" 05H
DB 0BEH ;"6" 06H
DB 0E0H ;"7" 07H
DB 0FEH ;"8" 08H
DB 0F6H ;"9" 09H
DB 0EEH ;"A" 0AH
DB 3EH ;"B" 0BH
DB 9CH ;"C" 0CH
DB 7AH ;"D" 0DH
DB 9EH ;"E" 0EH
DB 8EH ;"F" 0FH
DB 00H ;" " 10H
; DB 3FH,06H,5BH,4FH,66H ;12345
; DB 6DH,7DH,07H,7FH, ;6789
;---------------------------------------
DELAY:
MOV R6,#25
DLY01:
MOV R7,#100
DJNZ R7,$
DJNZ R6,DLY01
RET
;---------------------------------------
BEGIN:
MOV SP,#5FH
MOV TMOD,#11H
MOV TH0,#3CH
MOV TL0,#0B0H
MOV TH1,#0F4H
MOV TL1,#48H
MOV LEDC,#0
MOV R0,#LEDD
CLR A
INIT:
MOV @R0,A
INC R0
DJNZ LEDC,INIT
SETB ET1
SETB TR1
MOV P2,#0
MOV TCNT,#0
MOV SECC,#0
SETB ET0
SETB EA
MOV SECC,#60
LCALL DISSEC
SETB TR0
SETB TR1
LOOP:
SJMP $
;---------------------------------------
T1INT:
PUSH ACC
CLR TR1
MOV TH1,#0F4H
MOV TL1,#48H
SETB TR1
MOV DPTR,#TABLE
MOV R0,#LEDD
MOV A,LEDC
T1INT0:
JNZ T1INT1
MOV P2,#01H
MOV A,@R0
MOVC A,@A+DPTR
CPL A
MOV P0,A
SJMP T1INTD
T1INT1:
MOV P2,#02H
INC R0
MOV A,@R0
MOVC A,@A+DPTR
CPL A
MOV P0,A
T1INTD:
INC LEDC
MOV A,LEDC
CJNE A,#2,T1INT6
T1INT6:
JC T1INTE
MOV LEDC,#0
T1INTE:
POP ACC
RETI
;---------------------------------------
HBCD:
MOV B,#10
DIV AB
SWAP A
ORL A,B
RET
;---------------------------------------
T0INT:
PUSH ACC
CLR TR0
MOV TH0,#3CH
MOV TL0,#0B0H
SETB TR0
INC TCNT
MOV A,TCNT
CJNE A,#20,T0INT1
T0INT1:
JC T0INTE
MOV TCNT,#0
INC SECC
MOV A,SECC
CJNE A,#60,T0INT2
JC T0INT2
MOV A,#60
MOV SECC,A
T0INT2:
LCALL DISSEC
T0INTE:
POP ACC
RETI
;---------------------------------------
DISSEC:
MOV A,SECC
LCALL HBCD
PUSH ACC
ANL A,#0FH
MOV 30H,A
POP ACC
SWAP A
ANL A,#0FH
MOV 31H,A
RET
;---------------------------------------
END

F. 單片機流水燈C語言程序(8個燈,依次點亮每個燈,延時500MS)

單片機流水燈C語言程序的源代碼如下:

#include //51系列單片機定義文件

#define uchar unsigned char //定義無符號字元

#define uint unsigned int //定義無符號整數

void delay(uint); //聲明延時函數

void main(void)

{

uint i;

uchar temp;

while(1)

{

temp=0x01;

for(i=0;i<8;i++) //8個流水燈逐個閃動

{

P1=~temp;

delay(100); //調用延時函數

temp<<=1;

}

temp=0x80;

for(i=0;i<8;i++) //8個流水燈反向逐個閃動

{

P1=~temp;

delay(100); //調用延時函數

temp>>=1;

}

temp=0xFE;

for(i=0;i<8;i++) //8個流水燈依次全部點亮

{

P1=temp;

delay(100); //調用延時函數

temp<<=1;

}

temp=0x7F;

for(i=0;i<8;i++) //8個流水燈依次反向全部點亮

{

P1=temp;

delay(100); //調用延時函數

temp>>=1;

}

void delay(uint t) //定義延時函數

{

register uint bt;

for(;t;t--)

for(bt=0;bt<255;bt++);

}

(6)單片機流水燈秒錶擴展閱讀

51單片機流水燈的源代碼如下

#include<reg51.h>

#include<intrins.h>

voiddelay(inta)

{

inti;

while(a--)for(i=0;i<110;i++);

}

main()

{

inti;

while(1)

{

P0=0xfe;

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

{

P0=_crol_(P0,1);

delay(500);

}

}

}

G. 在單片機上做出9種形式的流水燈。9種流水燈之間時間隔2秒,每種流水燈亮滅的時間間隔為200ms

#define uchar unsigned char
#define uint unsigned intuchar dat=0xFE;void delay(uint x)
{
uchar y;
while(x--)
{
for(y=100;y>0;y--);
}
}
void onebyone()
{
uchar i;
for(i=0;i<8;i++)
{

P0=dat;
delay(1000);
dat<<=1;
dat|=1;
}
dat=0xFE;
}
void main()
{
while(1)
{
onebyone();
}
}

H. 51單片機流水燈程序

程序如下:

#include <reg52.h>

sbit led1 = P2^0;

sbit led2 = P2^1;

sbit led3 = P2^2;

sbit led4 = P2^3;

sbit led5 = P2^4;

sbit led6 = P2^5;

sbit led7 = P2^6;

sbit led8 = P2^7;


void main()

{

int i,j;

//點亮第一個燈

led1 = 1;

led2 = 0;

led3 = 0;

led4 = 0;

led5 = 0;

led6 = 0;

led7 = 0;

led8 = 0;

//延時1秒

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

{

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

{

;//什麼也不做

}

}

//點亮第二個燈

led1 = 0;

led2 = 1;

led3 = 0;

led4 = 0;

led5 = 0;

led6 = 0;

led7 = 0;

led8 = 0;

//點亮剩餘的燈

//省略……

while(1);

}

(8)單片機流水燈秒錶擴展閱讀:

流水燈幾點說明:

void:因為該延時函數不需要返回值,所以寫為void

delay1s:該函數的函數名,命名需要符合C語言的標識符命名規則。

(): 不需要傳入參數,所以括弧中為空

至此我們可以把流水燈程序寫為以下形式:

I. 51單片機實現流水燈

用個移位處理就行了 set(void) { 流水燈.c * 描述 : 該程序實現LED的流水燈顯示。 該程序用於學習 LED流水本例中是調用的 intrins.h 中的

J. 什麼是單片機流水燈

就是單片機驅動多個LED燈,亮的時候順序亮,滅的時候也是順序滅,看起來就像流水一樣。

閱讀全文

與單片機流水燈秒錶相關的資料

熱點內容
php接收websocket 瀏覽:561
碧藍航線如何查賬號伺服器 瀏覽:832
msx命令 瀏覽:747
怎麼購買app內購 瀏覽:487
vivo手機怎麼把安卓系統提示關閉 瀏覽:961
汽油分配控制單片機 瀏覽:576
python字典最大值最小值求和 瀏覽:280
php7pdo擴展 瀏覽:938
粉筆app如何看行測 瀏覽:814
如何舉報不正當app 瀏覽:252
智能家居演算法組 瀏覽:55
解壓動畫壽司 瀏覽:519
python3怎麼連接mysql 瀏覽:424
程序員曬出一段代碼 瀏覽:274
python爬蟲崔慶才 瀏覽:766
u8伺服器如何開啟 瀏覽:883
java設置jtable 瀏覽:750
改造非牛頓流體解壓 瀏覽:152
如何加密筆記本里的文件 瀏覽:903
同步伺服器時間命令 瀏覽:1002