標(biāo)題: 【求助】基于本論壇開發(fā)板的自動變速的流水燈程序 [打印本頁]
作者: a119 時間: 2012-5-18 02:30
標(biāo)題: 【求助】基于本論壇開發(fā)板的自動變速的流水燈程序
在51hei-5板子上跑 自動變速的流水燈,可是他一直在第一個燈處,不能循環(huán),請大家?guī)兔纯?
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long
#include <reg52.h>
sbit leds=P1^4;
bit ldelay=0; //
uchar speed=10;
void main(void) // 主程序
{ uchar code ledp[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
uchar ledi;
leds=0;
RCAP2H =0x10; //賦 T2 的預(yù)置值 0x1000
RCAP2L =0x00;
TR2=1; //啟動定時器
ET2=1; //打開定時器 2 中斷
EA=1; //打開總中斷
while(1) //主程序循環(huán)
{
if(ldelay) //發(fā)現(xiàn)有時間溢出標(biāo)記
{
ldelay=0; //清除標(biāo)記
//讀出一個值送到
P0=ledp[ledi];
if(ledi==8)
{
ledi=0; //到了最后一個燈就換到第一個
speed--;
if(speed==0)speed=10;//每循環(huán)顯示一次,就調(diào)快一次溢出速度
}
}
}
}
//定時器 2 中斷
timer2() interrupt 5
{
static uchar t;
TF2=0;
t++;
if(t==speed) //比較一個變化的數(shù)值,以實(shí)現(xiàn)變化的時間溢出
{
t=0;
ldelay=1;//每次長
}
}
作者: admin 時間: 2012-6-11 01:53
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long
#include <reg52.h> //包括一個52標(biāo)準(zhǔn)內(nèi)核的頭文件
#include <51hei.h>
bit ldelay=0; //長定時溢出標(biāo)記,預(yù)置是0
uchar speed=4; //設(shè)置一個變量保存跑馬燈的移動速度
//自動變速的跑馬燈試驗(yàn)
void main(void) // 主程序
{ char LEDIndex =0;
RCAP2H =0x10; //賦T2的預(yù)置值0x1000,溢出30次就是1秒鐘
RCAP2L =0x00;
TR2=1; //啟動定時器
ET2=1; //打開定時器2中斷
EA=1; //打開總中斷
guanled();
guandz();
P1=0;
while(1) //主程序循環(huán)
{
while(ldelay) //如果ldelay是1,也就是每隔0.5秒時間,就執(zhí)行點(diǎn)燈
{
if(1)
P0 = ~(0x01<<LEDIndex);
else
P0 = ~(0x80>>LEDIndex);
if(LEDIndex==7) //如果是第8個燈亮
{speed--;
if(speed==0)speed=10;//每循環(huán)顯示一次,就調(diào)快一次溢出速度
}
LEDIndex = (LEDIndex+1)%8; //計算下一個燈亮的標(biāo)記
ldelay=0; //清零
}
}
}
//定時器2中斷
timer2() interrupt 5
{
static uchar t;
TF2=0;
t++;
if(t==speed) //比較一個變化的數(shù)值,以實(shí)現(xiàn)變化的時間溢出
{
t=0;
ldelay=1;//每次長時間的溢出,就置一個標(biāo)記,以便主程序處理
}
}
作者: admin 時間: 2012-6-11 01:54
上面的程序已經(jīng)可以實(shí)現(xiàn)效果了 在51hei-5型單片機(jī)開發(fā)板上測試通過
歡迎光臨 (http://www.torrancerestoration.com/bbs/) |
Powered by Discuz! X3.1 |