单片机例子.docx

上传人:b****1 文档编号:2417913 上传时间:2022-10-29 格式:DOCX 页数:29 大小:404.31KB
下载 相关 举报
单片机例子.docx_第1页
第1页 / 共29页
单片机例子.docx_第2页
第2页 / 共29页
单片机例子.docx_第3页
第3页 / 共29页
单片机例子.docx_第4页
第4页 / 共29页
单片机例子.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

单片机例子.docx

《单片机例子.docx》由会员分享,可在线阅读,更多相关《单片机例子.docx(29页珍藏版)》请在冰豆网上搜索。

单片机例子.docx

单片机例子

1.闪烁的LED灯

#include

#defineucharunsignedchar

#defineuintunsignedint

sbitLED=P1^0;

voidDelayMS(uintx)

{

uchari;

while(x--)

{

for(i=120;i>0;i--);

}

}

voidmain()

{

while

(1)

{

LED=~LED;

DelayMS(150);

}

}

2.从左到右的流水灯

#include

#include

#defineucharunsignedchar

#defineuintunsignedint

voidDelayMS(uintx)

{

uchari;

while(x--)

{

for(i=120;i>0;i--);

}

}

voidmain()

{

P0=0xFE;

while

(1)

{

P0=_crol_(P0,1);

DelayMS(150);

}

}

3.左右来回的流水灯

#include

#include

#defineucharunsignedchar

#defineuintunsignedint

voidDelayMS(uintx)

{

uchart;

while(x--)

{

for(t=120;t>0;t--);

}

}

voidmain()

{

uchari;

P2=0x01;

while

(1)

{

for(i=7;i>0;i--)

{

P2=_crol_(P2,1);

DelayMS(150);

}

for(i=7;i>0;i--)

{

P2=_cror_(P2,2);

DelayMS(150);

}

}

}

4.花样流水灯程序

#include

#defineucharunsignedchar

#defineuintunsignedint

ucharcodePattern_P0[]=

{

0xfc,0xf9,0xf3,0xe7,0xcf,0x9f

};

ucharcodePattern_P2[]=

{

0xf5,0xf6,0xfe,0x54,0x56,0x76,0xd7,0x49,0xa9,0xe4,0xc6

};

voidDelayMS(uintx)

{

uchart;

while(x--)

{

for(t=120;t>0;t--);

}

}

voidmain()

{

uchari;

while

(1)

{

for(i=136;i>0;i--)

{

P0=Pattern_P0[i];

P2=Pattern_P2[i];

DelayMS(150);

}

}

}

5.LED交通模拟灯

#include

#defineucharunsignedchar

#defineuintunsignedint

sbitRED_A=P0^0;

sbitYELLOW_A=P0^1;

sbitGREEN_A=P0^2;

sbitRED_B=P0^3;

sbitYELLOW_B=P0^4;

sbitGREEN_B=P0^5;

ucharFlash_Count=0;

Operation_Type=1;

voidDelayMS(uintx)

{

uchart;

while(x--)

{

for(t=120;t>0;t--);

}

}

voidTraffic_lignt()

{

switch(Operation_Type)

{

case1:

RED_A=1;YELLOW_A=1;GREEN_A=0;

RED_B=0;YELLOW_B=1;GREEN_B=1;

DelayMS(2000);

Operation_Type=2;

break;

case2:

DelayMS(200);

YELLOW_A=~YELLOW_A;

if(++Flash_Count!

=10)

return;

Flash_Count=0;

Operation_Type=3;

break;

case3:

RED_A=0;YELLOW_A=1;GREEN_A=1;

RED_B=1;YELLOW_B=1;GREEN_B=0;

DelayMS(2000);

Operation_Type=4;

break;

case4:

DelayMS(200);

YELLOW_B=~YELLOW_B;

if(++Flash_Count!

=10)

return;

Flash_Count=0;

Operation_Type=1;

break;

}

}

voidmain()

{

while

(1)

{

Traffic_lignt();

}

}

6.单只数码管显示0到9

#include

#include

#defineucharunsignedchar

#defineuintunsignedint

ucharcodeDSY_CODE[]=

{

0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0x82,0xf8,0x80,0x90,0xff

};

voidDelayMS(uintx)

{

uchart;

while(x--)

for(t=120;t>0;t--);

}

voidmain()

{

uchari=0;

P0=0x00;

while

(1)

{

P0=~DSY_CODE[i];

i=(i+1)%10;/*显示0-9*/

DelayMS(200);

}

}

7.8只数码管滚动显示单个数字

#include

#include

#defineucharunsignedchar

#defineuintunsignedint

ucharcodeDSY_CODE[]=

{

0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90

};

voidDelayMS(uintx)

{

uchari;

while(x--)

{

for(i=200;i>0;i--);

}

}

voidmain()

{

uchari,k=0x80;

while

(1)

{

for(i=8;i>0;i--)

{

P2=0xff;

k=_crol_(k,1);

P0=DSY_CODE[8-i];

P2=k;

DelayMS(3);

}

}

}

8.8个数码管显示多个不同数字

#include

#include

#defineucharunsignedchar

#defineuintunsignedint

ucharcodeDSY_CODE[]=

{

0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90

};

voidDelayMS(uintx)

{

uchart;

while(x--)

{

for(t=120;t>0;t--);

}

}

voidmain()

{

uchark,m=0x80;

P0=0xff;

P2=0x00;

while

(1)

{

for(k=0;k<8;k++)

{

m=_crol_(m,1);

P2=m;

P0=DSY_CODE[k+1];

DelayMS

(2);

}

}

}

9.8只数码管闪烁显示

#include

#defineucharunsignedchar

#defineuintunsignedint

ucharcodeDSY_CODE[]=

{

0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90

};

ucharcodeDSY_IDX[]=

{

0x01;0x02;0x04;0x08;0x10;0x20;0x40;0x80

}

voidDelayMS(uintx)

{

uchart;

while(x--)

{

for(t=120;t>0;t--);

}

}

voidmain()

{

uchark,m;

P0=0xff;

P2=0x00;

while

(1)

{

for(k=0;k<30;k++)

{

for(m=0;m<8;m++)

{

P2=codeDSY_IDX[k];

P0=DSY_CODE[m];

DelayMS

(2);

}

}

P2=0x00;

DelayMS(1000);

}

}

10.K1-K4控制LED移位

#include

#include

#defineucharunsignedchar

#defineuintunsignedint

voidDelayMS(uintx)

{

uchari;

while(x--)

{

for(i=200;i>0;i--);

}

}

voidMove_LED()

{

if((P1&=0x10)==0)P0=_cror_(P0,1);

elseif((P1&=0x20)==0)P0=_crol_(P0,1);

elseif((P1&=0x40)==0)P2=_cror_(P2,1);

elseif((P1&=0x80)==0)P2=_crol_(P2,1);

}

voidmain()

{

ucharRecent_Key=0xff;

P0=0xfe;

P1=0xfe;

P2=0xfe;

while

(1)

{

if(Recent_Key!

=P1)

{

Recent_Key=P1;

Move_LED();

DelayMS(10);

}

}

}

11.K1-K4键状态显示

#include

#defineucharunsignedchar

#defineuintunsignedint

sbitLED1=P0^0;

sbitLED2=P0^1

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1