㈠ 利用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上指定的燈亮。
繼續主循環