當前位置:首頁 » 編程語言 » c語言單片機延時1秒走馬燈
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言單片機延時1秒走馬燈

發布時間: 2022-06-07 19:15:51

A. 請問以下有關單片機跑馬燈的c語言程序各語句的含義(詳細)

#include <reg51.h> //51頭文件
#include <intrins.h> //包含移位函數_crol_
void Delay10ms(unsigned int c); //延時函數聲明

void main(void)
{
unsigned char LED;

LED = 0x01; //一個unsigned char有8位,每一位代表了一個燈,初始點亮第一盞燈
while(1)
{
P0 = LED; //點亮一盞燈

Delay10ms(50); //延時500ms,讓其量一會兒

LED = _crol_(LED,1); //向左移位函數,比如 0x01 --> 0x02 --> 0x04 -->0x08 ---> 0x10
}
}

void Delay10ms(unsigned int c) //延時函數
{
unsigned char a, b;

for (;c>0;c--) //三重循環延時,大約延時10ms
{
for (b=38;b>0;b--)
{
for (a=130;a>0;a--);
}
}
}

B. 51單片機 ,設計一個跑馬燈程序,用軟體延時,p0輸出,怎麼設計c語言,用p1口的開關控制燈循環的速率

51單片機是單片機接觸最早的,下邊這個程序希望能幫到你。(只有主函數,就不進行硬體什麼定義以及頭文件包含什麼的了)

void delay(int times){//延時函數,times控制延時時間
int i, j;

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

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

;

}
int main(void){
unsigned char data, i;
while(1){

data = P1;//把開關值讀回來
for(i = 0; i < 8; i++){
P0 = ~(0x01 << i); //某位為高電平某位對應的燈亮
delay(data);//把讀取的開關值用來控制延時

}
}
}

C. 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();

}

}

}

(3)c語言單片機延時1秒走馬燈擴展閱讀:

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

D. 單片機延時1秒如何計算要最詳細一點的要過程用C語言

unsigned char rSecondCount; //秒計時數
unsigned char rMinuteCount; //分計時數
sbit IsOneSecondReach;
sbit Pulse_Sec=P1^0;
sbit Pulse_Min=P1^1;
main()
{
rSecondCount=0;
rMinuteCount=0;
TH1=0x3C;
TL1=0xAF; //定時器50ms產生一次中斷 (FFFF-3CAF)us
MOD = 0x10; //定時器1工作於模式1,(用工作於模式2也可以,而且更 簡便)
TR1=1; //使能定時器1
ET1=1; //開中斷
EA=1; //開全局中斷
while(1)
{
if (IsOneSecondReach)
{
IsOneSecondReach = 0;
//do something,如果一秒延時標志為1,則清除此標志,等待下次1秒,在此處
//執行需要執行的程序
}
}
}
/* 定時器50ms產生一次中斷 */
void Timer(void) interrupt 3
{
/* 重新載入T1參數 */
TH1=0x3C;
TL1=0xAF;
/* 一秒累加 */
rSecondCount++;//秒計時+1
if (rSecondCount==20) //1sec到,50ms*20
{
IsOneSecondReach = 1;
}
}
//
脈沖寬度為50ms,如果有其他要求的話,修改T1參數和「秒分」的參數湊下就行了.

E. 單片機跑馬燈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--); //延時一下
}
}
//只是示例,湊和一下

F. 關於定時計數編寫延時函數應用於跑馬燈的問題,單片機初學者求解

#include "reg51.h"
#include "intrins.h"
#define uint unsigned int
#define uchar unsigned char
void DELAYms( uint x )
{
uint t;
t=x/50;
while(1)
{
if(TF0==1)
{
t--;
TF0=0;
if(t==0)
break;
TH0=0x3c;
TL0=0xb0;
}
}
}

void main(void)
{
uchar i;
TMOD=0x01;
TH0=0x3c;
TL0=0xb0;
TF0=0;
TR0=1;
P0=0xfe;
while(1)
{
for(i=0;i<2;i++)
{
DELAYms(1000);
P0=_crol_(P0,1);
}
for(i=0;i<2;i++)
{
DELAYms(1000);
P0=_cror_(P0,1);
}
}
}

G. 求單片機一秒延時程序(12M晶振),要用C語言且用定時和中斷

我以前寫的控制跑馬燈的程序,有1s定時,也有中斷,
根據需要修改修改就可以了。
#include<reg51.h>
#define
uchar
unsigned
char
#define
uint
unsigned
int
void
delay(uchar
uu);
main()
{
EA=1;
EX0=1;//開總中斷和外部中斷0;
EX1=1;//開中斷1?
ET0=1;
PX0=1;
PX1=1;
IT0=1;
IT1=1;
while(1)
{
P2=0;
delay(20);
P2=0xff;
delay(20);
}
}
void
int1()
interrupt
0
using
2
{
uchar
aa,i,j,k;
i=0xfe;
for(aa=0;aa<4;aa++)
{
P2=i;
j=i>>7;
k=i<<1;
i=k|j;
delay(20);
}
}
void
int2()
interrupt
2
using
3
{
uchar
bb,ii,jj,kk;
ii=0x7f;
for(bb=0;bb<4;bb++)
{
P2=ii;
jj=ii<<7;
kk=ii>>1;
ii=kk|jj;
delay(20);
}
}
void
delay(uchar
uu)
//uu*5ms定時;
{
uchar
aaa;
for(aaa=0;aaa<uu;aaa++)
{
TMOD=0X01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TR0=1;
while(!TF0);
TF0=0;
}
}

H. 利用單片機c語言編程設計閃爍時間為1秒流水燈程序

#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
void DelayMS(uint x)
{
uchar i;
while(x--)
{
for(i=120;i>0;i--);
}
}
void main()
{
P0 = 0xFE;
while(1)
{
P0 = _crol_(P0,1);
DelayMS(500);
}
}