本人新手初學單片機 寫了段簡單的代碼 具體功能是 流水燈隨著蜂鳴器的鳴叫逐漸全部亮起并且數碼管也依次顯示1——8,直到8個流水燈全部亮起 然后重新開始; 我把源碼發出來大家看看還可以有更簡單的寫法嗎;請大家多多指教 還得問一下怎么把代碼發的和編譯器里面一樣的格式
/***************************************************************************************************
實現流水燈隨著蜂鳴器的鳴叫次數逐漸亮起并且數碼管也依次顯示1--8,直到8個流水燈全部亮起然后重新開始
***************************************************************************************************/
#include //調用51系列單片機頭文件
sbit laba=P2^3; //聲明蜂鳴器端口
sbit dula=P2^6; //聲明數碼管段選鎖存器鎖存端
sbit wela=P2^7; //聲明位選鎖存器鎖存端
#define uint unsigned int //宏定義
#define uchar unsigned char
uchar code table[]={ //顯示數字編碼(共陰)
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
void yanshi(uint); //聲明延時子函數
void main() //主函數
{
uchar n; //聲明變量n
P1=0xff; //給P1口賦初值
while(1) //大循環
{
laba=0; //打開蜂鳴器
n++; //n自加
P1=P1<<1; //將P1口左移一位
dula=1;
P0=table[n];
dula=0;
wela=1;
P0=0xfe;
wela=0;
yanshi(100); //延時大約100毫秒
laba=1; //關閉蜂鳴器
if(n==0x8) //如果n加到8就進執行語句
{
P1=0xff; //初始化P1口
n=0; //初始化變量n
}
yanshi(1000); //延時大約1秒
}
}
void yanshi(uint ysm) //延時函數
{
uint i,j;
for(i=ysm;i>0;i--)
for(j=120;j>0;j--);
}
[此貼子已經被作者于2013-3-26 21:53:15編輯過]
|