#include<reg51.h> //51系列單片機定義檔案
#define uchar unsigned char //定義無符號字符
#define uint unsigned int //定義無符號整數
void delay(uint);//宣告延時函式
void main(void)
{
uint i;
uchar temp;
TCON=0x05;
IE=0x85;
PX1=1;
PX0=0;
while(1)
{
temp=0x01;
for(i=0;i<8;i++) //8個流水燈逐個閃動
{
P0=temp;
delay(100);//呼叫延時函式
temp<<=1;
}
temp=0x80;
for(i=0;i<8;i++) //8個流水燈反向逐個閃動
{
P0=temp;
delay(150);//呼叫延時函式
temp>>=1;
}
temp=0xFE;
for(i=0;i<8;i++) //8個流水燈依次全部點亮
{
P0=temp;
delay(150); //呼叫延時函式
temp<<=1;
}
temp=0x7F;
for(i=0;i<8;i++) //8個流水燈依次反向全部點亮
{
P0=temp;
delay(150); //呼叫延時函式
temp>>=1;
}
temp=0x03;
for(i=0;i<4;i++) //兩個流水燈順序點亮
{
P0=temp;
delay(150);
temp<<=2;
}
temp=0x30;
for(i=0;i<3;i++) //兩個流水燈反向點亮
{
P0=temp;
delay(150);
temp>>=2;
}
temp=0x07;
for(i=0;i<3;i++) //3個
{
P0=temp;
delay(150);
temp<<=3;
}
temp=0xe0;
for(i=0;i<3;i++) //3流水燈反向點亮
{
P0=temp;
delay(150);
temp>>=3;
}
temp=0x0f;
for(i=0;i<3;i++) //4ge
{
P0=temp;
delay(150);
temp<<=4;
}
temp=0xf0;
for(i=0;i<3;i++) //4流水燈反向點亮
{
P0=temp;
delay(150);
temp>>=4;
}
}
}
void int0() interrupt 0
{
uint i;
uchar temp;
while(1)
{
temp=0x01;
for(i=0;i<8;i++) //8個流水燈逐個閃動
{
P0=temp;
delay(800);//呼叫延時函式
temp<<=1;
}
temp=0x80;
for(i=0;i<8;i++) //8個流水燈反向逐個閃動
{
P0=temp;
delay(800);//呼叫延時函式
temp>>=1;
}
temp=0xFE;
for(i=0;i<8;i++) //8個流水燈依次全部點亮
{
P0=temp;
delay(800); //呼叫延時函式
temp<<=1;
}
temp=0x7F;
for(i=0;i<8;i++) //8個流水燈依次反向全部點亮
{
P0=temp;
delay(800); //呼叫延時函式
temp>>=1;
}
temp=0x03;
for(i=0;i<4;i++) //兩個流水燈順序點亮
{
P0=temp;
delay(800);
temp<<=2;
}
temp=0x30;
for(i=0;i<3;i++) //兩個流水燈反向點亮
{
P0=temp;
delay(800);
temp>>=2;
}
temp=0x07;
for(i=0;i<3;i++) //3個流水燈順序點亮
{
P0=temp;
delay(800);
temp<<=3;
}
temp=0xe0;
for(i=0;i<3;i++) //3個流水燈反向點亮
{
P0=temp;
delay(800);
temp>>=3;
}
}
temp=0x0f;
for(i=0;i<3;i++) //4個流水燈順序點亮
{
P0=temp;
delay(800);
temp<<=4;
}
temp=0xf0;
for(i=0;i<3;i++) //4流水燈反向點亮
{
P0=temp;
delay(800);
temp>>=4;
}
}
void delay(uint t) //定義延時函式
{
register uint bt;
for(;t;t--)
for(bt=0;bt<255;bt++);
}
uj5u.com熱心網友回復:
代碼功能歸根結底不是別人幫自己看或講解或注釋出來的;而是被自己靜下心來花足夠長的時間和精力親自動手單步或設斷點或對執行到某步獲得的中間結果顯示或寫到日志檔案中一步一步分析出來的。提醒:再牛×的老師也無法代替學生自己領悟和上廁所!
單步除錯和設斷點除錯是程式員必須掌握的技能之一。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/52048.html
標籤:基礎類
