導航:首頁 > 操作系統 > 單片機跑馬燈和流水燈C語言

單片機跑馬燈和流水燈C語言

發布時間:2022-08-03 18:29:39

㈠ 利用8031單片機,設計跑馬燈和流水燈。急急急。

;以下程序,模擬調試成功.
ORG 0000H ;程序開始地址.
SJMP MAIN ;跳轉到MAIN.
ORG 0030H ;程序入口.
MAIN:
MOV 30H, #7FH
MOV 31H, #55H
LOOP1:
MOV A, 30H
LOOP11:
RL A
MOV P1, A
LCALL DELAY
JNB P3.2, LOOP2
SJMP LOOP11

LOOP2:
MOV A, 31H
LOOP22:
CPL A
MOV P1, A
LCALL DELAY
JB P3.2, LOOP1
SJMP LOOP22

DELAY:
MOV R7, #250
DL1:MOV R6, #100
DL2:MOV R5, #10
DL3:DJNZ R5, DL3
DJNZ R6, DL2
DJNZ R7, DL1
RET

END

㈡ 單片機跑馬燈C語言程序,只要實現跑馬燈功能,要簡單點

#include<stdio.h>
#include<reg51.h>
void main()
{
int a;
unsigned char tmp=0;
while(1)
{
if(tmp==0) tmp=0x80;
else tmp = (tmp>>1);
P1 = tmp; //P1.0到P1.7控制8個燈
for(a=50000;a;a--); //延時一下
}
}
//只是示例,湊和一下

㈢ 很簡的51單片機C語言流水燈程序

1、51單片機C語言實現循環8個流水燈左移三次,後右移三次。
常式:
#include<reg51.h> //51單片機頭文件
#include <intrins.h> //包含有左右循環移位子函數的庫
#define uint unsigned int //宏定義
#define uchar unsigned char //宏定義
sbit beep=P2^3;
void delay(uint z) //延時函數,z的取值為這個函數的延時ms數,如delay(200);大約延時200ms.
{ //delay(500);大約延時500ms.
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(j=0;j<3;j++) for(i=0;i<8;i++) //左移三次
{
P1=a; //點亮小燈
beep=0; //開啟蜂鳴器
delay(50); //延時50毫秒
beep=1; //關閉蜂鳴器
delay(50); //再延時50毫秒
a=_crol_(a,1); //將a變數循環左移一位
}
a=0x7f;
for(j=0;j<3;j++) for(i=0;i<8;i++) //右移三次
{
P1=a; //點亮小燈
beep=0; //開啟蜂鳴器
delay(50); //延時50毫秒
beep=1; //關閉蜂鳴器
delay(50); //再延時50毫秒
a=_cror_(a,1); //將a變數循環右移一位
}
}
}
2、51單片機是對所有兼容Intel
8031指令系統的單片機的統稱。該系列單片機的始祖是Intel的8031單片機,後來隨著Flash
rom技術的發展,8031單片機取得了長足的進展,成為應用最廣泛的8位單片機之一,其代表型號是ATMEL公司的AT89系列,它廣泛應用於工業測控系統之中。很多公司都有51系列的兼容機型推出,今後很長的一段時間內將佔有大量市場。51單片機是基礎入門的一個單片機,還是應用最廣泛的一種。

㈣ 51單片機設計跑馬燈的程序用(c語言)編寫

|P1口接8個發光二極體共陽

#include <AT89X51.H>

unsigned char i;

unsigned char temp;

unsigned char a,b;

void delay(void)

{

unsigned char m,n,s;

for(m=20;m>0;m--)

for(n=20;n>0;n--)

for(s=248;s>0;s--);

}

void main(void)

{

while(1)

{

temp=0xfe;

P1=temp;

delay();

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

{

a=temp<<i;

b=temp>>(8-i);

P1=a|b;

delay();

}

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

{

a=temp>>i;

b=temp<<(8-i);

P1=a|b;

delay();

}

}

}

(4)單片機跑馬燈和流水燈C語言擴展閱讀:

Proteus 自從有了單片機也就有了開發系統,隨著單片機的發展開發系統也在不斷發展。 keil是一種先進的單片機集成開發系統。它代表著匯編語言單片機開發系統的最新發展,首創多項便利技術,將開發的編程/模擬/調試/寫入/加密等所有過程一氣呵成,中間不須任何編譯或匯編。

㈤ 單片機跑馬燈c語言程序:數碼管倒計時10秒流水燈開始工作的模擬圖

#include <reg51.h>
void delay(unsigned int i); char LED;

char TAB[16]={0xC0,0xF9,0xA4,0xB0,0x99,//共陽極0~4數碼管顯示數據
0x92,0x82,0xF8,0x80,0x98,//共陽極4~9數碼管顯示數據
0xA0,0x83,0xa7,0xa1,0x84,0x8e};
main()
{
unsigned char i;

while (1)
{ LED = 0xfe;

for (i = 0 ;i < 8 ; i++)
{
P0 = LED;
delay(500);
LED = LED << 1; LED = LED | 0x01; if (LED == 0x7f) break; }

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

P0 = LED;
delay(500);
LED = LED >> 1; LED = LED | 0x80;
}

}

}
while(1)
{
a[0]=*s%10; //給顯示數組賦值
a[1]=*s/10;
a[2]=10;
a[3]=*m%10;
a[4]=*m/10;
a[5]=10;

/*******延時函數*************/
void delay(unsigned int i)
{
unsigned char j;
for(i; i > 0; i--)
for(j = 255; j > 0; j--);

}

㈥ 單片機流水燈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)單片機跑馬燈和流水燈C語言擴展閱讀

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);

}

}

}

㈦ 單片機流水燈的程序怎麼打(C語言)順便解釋解釋。

你的事C語言 回答的是匯編 如下 //led顯示程序,簡單地顯示led的程序
//展示了如何控制埠的方法
//現象 : led 8個燈從左到右,然後從右到左顯示;#include <8051.h>void delay(unsigned char times);void main()
{
int k,m;
P0 = 0; //關閉數碼顯示
P2 = 0; //
P3_7 = 0; //關閉蜂鳴器

while(1) //設置一個無限制循環
{ m = 254;
P1 = m; //從第一個燈開始顯示
for(k=0;k<8;k++)
{delay(255);<br> m <<=1;<br> P1 = m; //表示,P1每次向左一位<br> }
m = 128;
for(k=0;k<8;k++) //第二次重復
{delay(255);<br> m >>= 1;<br> P1 = m; //表示,P1每次向右一位<br> }
}
}

㈧ 用c語言編寫單片機流水燈程序,(8個發光二極體從左至右循環點亮)

#include<reg51.h>

voiddelay(void)

{

unsignedinti,j;

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

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

;

}

voidmain(void)

{

while(1)

{

P3=0xfe;//第一個燈亮

delay();//延時

P3=0xfd;//第二個燈亮

delay();

P3=0xfb;//第三個燈亮

delay();

P3=0xf7;//第四個燈亮

delay();

P3=0xef;//第五個燈亮

delay();

P3=0xdf;//第六個燈亮

delay();

P3=0xbf;//第七個燈亮

delay();

P3=0x7f;//第八個燈亮

delay();

}

}

(8)單片機跑馬燈和流水燈C語言擴展閱讀

單片機C語言16種方式流水燈

voidmain()

{

while(1)

{

P1=0xfe;//點亮第一個發光管

Delay(5000);

P1=0xfd;//點亮第二個發光管

Delay(5000);

P1=0xfb;

Delay(5000);

P1=0xf7;

Delay(5000);

P1=0xef;

Delay(5000);

P1=0xdf;

Delay(5000);

P1=0xbf;

Delay(5000);

P1=0x7f;//點亮第八個發光管

}

}

㈨ 問有關用C語言單片機做的流水燈的問題

這個核心的東西是單片機控制的原理,代碼比較簡單。
我想你不明白的是管腳是如何被控制的:
單片機的通用埠可以通過控制輸出高、低電平,想輸出高電壓那就給控制此管腳的寄存器賦值1,低電壓那麼就給值0。
這里P1寄存器控制著8個管腳,每個管腳控制著一個燈。同樣P0也控制著8個燈。這里P1即表示寄存器。
硬體電路上,燈的兩個腳接的都是高電平,那麼沒有電流通過,不亮。當有一個腳電平變低,那麼有了電壓降,燈亮了。
P1=0xFE,2進制是1111 1110,表示p1.0=0,即第一個管腳是0值,低電平,而其他的管腳都是高。那麼第一個燈亮了。
通過延時,讓第一個燈亮了一會。
P2=0xFD,即1111 1101,關了第一個燈,然後讓第二燈亮了。
其他同理。

從數組的值,可以看出燈亮滅的順序:
1111 1110
1111 1101
1111 1011
1111 0111
1110 1111
1101 1111
1011 1111
0111 1111
....

此數組值是先讓燈亮一個,從頭到尾燈挨個亮,接著再從頭跑一遍。
然後反方向跑一遍,再1遍。
最後全亮,全滅,全亮,全滅
再從頭循環..........

你如果設計8個,那麼就用P0或者p1中的一個即可。
即刪除程序中的:
P0=table[i];//P0燈亮
或者
P1=table[i];//P0燈亮

流程如下:
開始
進入主循環
判斷是否到一次跑馬燈結束
是結束就將i值為0,即從頭開始又一輪的跑馬燈。
否就繼續本輪的跑馬燈
先讓給P1賦值讓P1上指定的燈亮。
然後延時讓這個燈亮一會。
接著給P0賦值讓P0上指定的燈亮。
繼續主循環

閱讀全文

與單片機跑馬燈和流水燈C語言相關的資料

熱點內容
海信聚好看如何用u盤安裝app 瀏覽:69
加密狗怎麼寫的 瀏覽:557
安卓手機如何能調最大聲音 瀏覽:665
編程開發工具大全 瀏覽:568
如何把安卓系統換成windows 瀏覽:28
android拼接url 瀏覽:22
華為nfc復制加密卡怎麼模擬 瀏覽:772
在pdf中怎麼插入文件 瀏覽:112
單片機中fw縮寫是什麼 瀏覽:375
交換律的演算法怎麼樣看能看出簡便 瀏覽:659
找醫療工作用哪個app 瀏覽:143
夢幻之鄉密碼解壓 瀏覽:596
nvidiasmi命令 瀏覽:757
創新賬戶加密維薩卡 瀏覽:874
解壓密碼很多怎麼辦 瀏覽:749
arduino庫文件引起編譯出錯 瀏覽:204
大師鏡頭第一卷pdf 瀏覽:54
都市解壓的電影 瀏覽:83
電視機加密線怎麼接 瀏覽:691
rmvb壓縮軟體 瀏覽:430