點亮LED
低電平(1)LED變亮麦乞,高電平(0)LED不變亮蕴茴,引腳默認低電平
#include "reg52.h" //此文件中定義了單片機的一些特殊功能寄存器
sbit led1=P0^0;
sbit led2=P0^1;
sbit led3=P0^2;
sbit led4=P0^3;
sbit led5=P0^4;
sbit led6=P0^5;
sbit led7=P0^6;
sbit led8=P0^7;
void main()
{
while(1)
{
led1=1; //P0.0端口設置為低電平
led2=0;
led3=1;
led4=0;
led5=1;
led6=1;
led7=0;
led8=1;
}
}
實驗現(xiàn)象:D11、D13姐直、D15倦淀、D16、D18燈變亮声畏,D12撞叽、D14、D17燈不變亮
LED燈閃爍
自定義延遲函數(shù)插龄,變化LED的電平高低愿棋。
typedef用法詳見http://www.cnblogs.com/csyisong/archive/2009/01/09/1372363.html
#include "reg52.h" //此文件中定義了單片機的一些特殊功能寄存器
typedef unsigned int u16; //對數(shù)據(jù)類型進行聲明定義
typedef unsigned char u8;
sbit led1=P0^0;
sbit led2=P0^1;
sbit led3=P0^2;
sbit led4=P0^3;
sbit led5=P0^4;
sbit led6=P0^5;
sbit led7=P0^6;
sbit led8=P0^7;
void delay(u16 i) //延遲函數(shù)
{
while(i--);
}
void main()
{
while(1)
{
led1=1; //P0.0端口設置為低電平
led2=0;
led3=1;
led4=0;
led5=1;
led6=1;
led7=0;
led8=1;
delay(50000);
led1=0;
led2=1;
led3=0;
led4=1;
led5=0;
led6=0;
led7=1;
led8=0;
delay(50000);
}
}
實驗現(xiàn)象:LED燈閃爍
LED流水燈
#define與typedef的用法與區(qū)別http://www.cnblogs.com/kerwinshaw/archive/2009/02/02/1382428.html
_crol _(a,b);循環(huán)左移函數(shù),a是左移的值均牢,b是左移的位數(shù)糠雨。包含在instrins.h庫函數(shù)里面。
_cror _(a,b);循環(huán)右移函數(shù)膨处,a是右移的值见秤,b是右移的位數(shù)。包含在instrins.h庫函數(shù)里面真椿。
#include "reg52.h" //此文件中定義了單片機的一些特殊功能寄存器
#include <intrins.h> //左右移函數(shù)
typedef unsigned int u16; //對數(shù)據(jù)類型進行聲明定義
typedef unsigned char u8;
#define led P0
void delay(u16 i) //延遲函數(shù)
{
while(i--);
}
void main()
{
u8 i;
led=0x01;
delay(50000); //大約延時450ms
while(1)
{
for(i=0;i<8;i++) //將1右移到第i位鹃答,然后將結果賦值到P0口
{
P0=(0x01<<i);
delay(15000);
}
for(i=6;i>0;i--) //將1左移到第i位,然后將結果賦值到P0口
{
P0=(0x01<<i);
delay(15000);
}
led=0x01;
delay(15000);
for(i=0;i<7;i++) //將led左移一位
{
led=_crol_(led,1);
delay(15000);
}
for(i=0;i<6;i++) //將led右移一位
{
led=_cror_(led,1);
delay(15000);
}
}
}
實驗現(xiàn)象:一排LED燈來回閃爍