AT89C51单片机开发板程序电子教案.docx

上传人:b****5 文档编号:28762167 上传时间:2023-07-19 格式:DOCX 页数:39 大小:17.55KB
下载 相关 举报
AT89C51单片机开发板程序电子教案.docx_第1页
第1页 / 共39页
AT89C51单片机开发板程序电子教案.docx_第2页
第2页 / 共39页
AT89C51单片机开发板程序电子教案.docx_第3页
第3页 / 共39页
AT89C51单片机开发板程序电子教案.docx_第4页
第4页 / 共39页
AT89C51单片机开发板程序电子教案.docx_第5页
第5页 / 共39页
点击查看更多>>
下载资源
资源描述

AT89C51单片机开发板程序电子教案.docx

《AT89C51单片机开发板程序电子教案.docx》由会员分享,可在线阅读,更多相关《AT89C51单片机开发板程序电子教案.docx(39页珍藏版)》请在冰豆网上搜索。

AT89C51单片机开发板程序电子教案.docx

AT89C51单片机开发板程序电子教案

 

AT89C51单片机开发板程序

AT89C51单片机开发板程序

1个LED数码管静态显示<0-9)

include

#defineucharunsignedchar

#defineuintunsignedint

uchari。

ucharcodea[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}。

voiddelay(uintz>。

voidmain(>

{

while(1>

{

for(i=0。

i<10。

i++>

{

P2=0xfe。

P0=a[i]。

delay(1000>。

}

}

}

voiddelay(uintz>

{

uintx,y。

for(x=z。

x>0。

x-->

for(y=122。

y>0。

y-->。

}

LED数码管显示<0-99)

#include

unsignedcharcount,num。

unsignedcharcodetable[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}。

voidmain(>

{

P2=0xfe。

IE=0x82。

TMOD=0x01。

TCON=0x30。

while(1>。

}

voidTOINT(>interrupt1

{

TH0=0xd8。

TL0=0xf0。

if(P2&1>P1=table[num/10]。

elseP1=table[num%10]。

P2^=3。

if(++count<100>return。

count=0。

if(++num>99>num=0。

}

定时控制一只闪亮的灯

#include

#defineucharunsignedchar

#defineuintunsignedint

uintn。

sbitled=P0^0。

voidmain(>

{

TMOD&=0xf1。

TMOD|=0x01。

TH0=(65536-10000>/256。

TL0=(65536-10000>%256。

EA=1。

ET0=1。

TR0=1。

while(1>

{

}

}

voidtimer0(>interrupt1

{

TH0=(65536-10000>/256。

TL0=(65536-10000>%256。

n++。

if(n==100>

{

n=0。

led=~led。

}

}

用独立键盘显示LED数码管<1-4)

#include

#defineucharunsignedchar

#defineuintunsignedint

ucharcodea[]={0xc0,0xf9,0xa4,0xb0,0x99,0xff}。

voiddelay(uintz>。

voidmain(>

{

ucharb,c。

c=5。

while(1>

{

P0|=0x0f。

b=P0。

b&=0x0f。

if(b!

=0x0f>

{

delay(20>。

P0|=0x0f。

b=P0。

b&=0x0f。

if(b!

=0x0f>

{

switch(b>

{

case0x0e:

c=1。

break。

case0x0d:

c=2。

break。

case0x0b:

c=3。

break。

case0x07:

c=4。

break。

default:

c=0。

}

}

}

P1&=0xfe。

P2=a[c]。

}

}

voiddelay(uintz>

{

uintx,y。

for(x=z。

x<0。

x-->

for(y=122。

y<0。

y-->。

}

用矩阵键盘显示LED数码管<0-9,A-F)

#include

#defineuintunsignedint

#defineucharunsignedchar

ucharcodea[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,

0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff}。

voiddelay(uintz>。

sbithang1=P0^3。

sbithang2=P0^2。

sbithang3=P0^1。

sbithang4=P0^0。

voidmain(>

{

ucharb,c。

c=16。

while(1>

{

hang1=0。

hang2=1。

hang3=1。

hang4=1。

P0|=0xf0。

b=P0。

b&=0xf0。

if(b!

=0xf0>

{

delay(10>。

P0|=0xf0。

b=P0。

b&=0xf0。

if(b!

=0xf0>

{

switch(b>

{

case0xe0:

c=0。

break。

case0xd0:

c=1。

break。

case0xb0:

c=2。

break。

case0x70:

c=3。

break。

default:

c=16。

}

}

}

P3&=0xf0。

P2=a[c]。

hang1=1。

hang2=0。

hang3=1。

hang4=1。

P0|=0xf0。

b=P0。

b&=0xf0。

if(b!

=0xf0>

{

delay(10>。

P0|=0xf0。

b=P0。

b&=0xf0。

if(b!

=0xf0>

{

switch(b>

{

case0xe0:

c=4。

break。

case0xd0:

c=5。

break。

case0xb0:

c=6。

break。

case0x70:

c=7。

break。

default:

c=16。

}

}

}

P3&=0xf0。

P2=a[c]。

hang1=1。

hang2=1。

hang3=0。

hang4=1。

P0|=0xf0。

b=P0。

b&=0xf0。

if(b!

=0xf0>

{

delay(10>。

P0|=0xf0。

b=P0。

b&=0xf0。

if(b!

=0xf0>

{

switch(b>

{

case0xe0:

c=8。

break。

case0xd0:

c=9。

break。

case0xb0:

c=10。

break。

case0x70:

c=11。

break。

default:

c=16。

}

}

}

P3&=0xf0。

P2=a[c]。

hang1=1。

hang2=1。

hang3=1。

hang4=0。

P0|=0xf0。

b=P0。

b&=0xf0。

if(b!

=0xf0>

{

delay(10>。

P0|=0xf0。

b=P0。

b&=0xf0。

if(b!

=0xf0>

{

switch(b>

{

case0xe0:

c=12。

break。

case0xd0:

c=13。

break。

case0xb0:

c=14。

break。

case0x70:

c=15。

break。

default:

c=16。

}

}

}

P3&=0xf0。

P2=a[c]。

}

}

voiddelay(uintz>

{

uintx,y。

for(x=z。

x>0。

x-->

for(y=122。

y>0。

y-->。

}

一只闪亮的灯

#include

#defineucharunsignedchar

#defineuintunsignedint

sbitled=P2^0。

voiddelay(uintz>。

voidmain(>

{

led=0。

delay(1000>。

led=1。

delay(1000>。

}

voiddelay(uintz>

{

uintx。

uinty。

for(x=z。

x>0。

x-->

for(y=122。

y>0。

y-->。

}

中断控制流水灯(从右向左>

#include

#include

#defineucharunsignedchar

#defineuintunsignedint

ucharled,temp。

voiddelay(uintz>。

voidmain(>

{

EA=1。

EX1=1。

temp=0x7f。

while(1>

{

P2=temp。

temp=_cror_(temp,1>。

delay(1000>。

}

}

voiddelay(uintz>

{

uintx,y。

for(x=z。

x>0。

x-->

for(y=122。

y>0。

y-->。

}

voidextern1(>interrupt2

{

P2=0x00。

delay(2000>。

P2=0xff。

delay(2000>。

}

中断控制流水灯(从左向右>

#include

#include

#defineucharunsignedchar

#defineuintunsignedint

ucharled,temp。

voiddelay(uintz>。

voidmain(>

{

EA=1。

EX1=1。

temp=0xfe。

while(1>

{

P2=temp。

temp=_crol_(temp,1>。

delay(1000>。

}

}

voiddelay(uintz>

{

uintx,y。

for(x=z。

x>0。

x-->

for(y=122。

y>0。

y-->。

}

voidextern1(>interrupt2

{

P2=0x00。

delay(2000>。

P2=0xff。

delay(2000>。

}

1位密码锁

#include

#defineucharunsignedchar

#defineuintunsignedint

#definemima3

#defineduanmaP1

sbitweima=P3^0。

sbitredled=P0^5。

sbitgreenled=P0^6。

ucharkey=0xff。

voidscankey(>。

voiddelay(uintz>。

voidmain(>

{

weima=0。

while(1>

{

duanma=0xbf。

redled=1。

greenled=1。

scankey(>。

if(key==mima>

{

duanma=0x8c。

greenled=0。

delay(3000>。

key=0xff。

}

if(key!

=0xff>

{

duanma=0x86。

redled=0。

delay(3000>。

key=0xff。

}

else

{

duanma=0xbf。

redled=1。

greenled=1。

}

}

}

voidscankey(>

{

ucharkeyinput。

P0|=0x0f。

keyinput=P0。

keyinput&=0x0f。

if(keyinput!

=0x0f>

{

delay(10>。

P0|=0x0f。

keyinput=P0。

keyinput&=0x0f。

if(keyinput!

=0x0f>

{

switch(keyinput>

{

case0x0e:

key=0。

break。

case0x0d:

key=1。

break。

case0x0b:

key=2。

break。

case0x07:

key=3。

break。

default:

key=0xff。

}

}

}

}

voiddelay(uintz>

{

uintx,y。

for(x=z。

x>0。

x-->

for(y=122。

y>0。

y-->。

}

电子钟

#include

#defineucharunsignedchar

#defineuintunsignedint

ucharcodeduan[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}。

ucharcodewei[]={0xfe,0xfd,0xfb,0xf7}。

uchartt,i,sec,min。

ucharxianshi[4]。

voiddelay(uintz>。

voidinit(>。

voidmain(>

{

init(>。

while(1>

{

if(tt>=20>

{

tt=0。

sec++。

if(sec==60>

{

sec=0。

min++。

if(min==60>

{

min=0。

}

}

}

xianshi[0]=duan[sec%10]。

xianshi[1]=duan[sec/10]。

xianshi[2]=duan[min%10]。

xianshi[3]=duan[min/10]。

for(i=0。

i<4。

i++>

{

P2=xianshi[i]。

P0=wei[i]。

delay(5>。

}

}

}

voidinit(>

{

TMOD&=0XF1。

TMOD|=0X01。

TH0=(65536-50000>/256。

TL0=(65536-50000>%256。

EA=1。

ET0=1。

TR0=1。

}

voidtimer0(>interrupt1

{

TH0=(65536-50000>/256。

TL0=(65536-50000>%256。

tt++。

}

voiddelay(uintz>

{

uintx,y。

for(x=z。

x>0。

x-->

for(y=122。

y>0。

y-->。

}

交通灯

#include

#defineuintunsignedint

#defineucharunsignedchar

ucharcodeduan[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf}。

ucharcodeweitable[]={0xFE,0xFD,}。

ucharcodechushi[]={0x7e,15,0x7d,5,0xdb,15,0xbb,5}。

ucharxianshi[2]。

uinttime,tt。

voiddisplay(>。

voiddelay(uintz>。

voidinit(>。

voidmain(>

{

init(>。

while(1>

{

ucharj。

for(。

time==0&&j<8。

j=j+2>

{

time=chushi[j+1]。

P1=chushi[j]。

}

if(j==8>j=0。

if(tt>=10>

{

tt=0。

time--。

}

xianshi[0]=duan[time/10]。

xianshi[1]=duan[time%10]。

display(>。

}

}

voidinit(>

{

TMOD&=0xf1。

TMOD|=0x01。

TH0=(65536-50000>/256。

TL0=(35536-50000>%256。

EA=1。

ET0=1。

TR0=1。

}

voiddisplay(>

{

uchari。

for(i=0。

i<2。

i++>

{

P2=weitable[i]。

P0=xianshi[i]。

delay(5>。

}

}

voiddelay(uintz>

{

uintx。

uchary。

for(x=z。

x>0。

x-->

for(y=122。

y>0。

y-->。

}

voidtimer0(>interrupt1

{

TH0=(65536-50000>/256。

TL0=(35536-50000>%256。

tt++。

}

4个LED数码管动态显示<0-9)

#include

#defineucharunsignedchar

#defineuintunsignedint

voiddelay(uintz>。

voidmain(>

{

P2=0xfe。

P0=0xc0。

delay(1000>。

P2=0xfd。

P0=0xf9。

delay(1000>。

P2=0xfb。

P0=0xa4。

delay(1000>。

P2=0xf7。

P0=0xb0。

delay(1000>。

P2=0xfe。

P0=0x99。

delay(1000>。

P2=0xfd。

P0=0x92。

delay(1000>。

P2=0xfb。

P0=0x82。

delay(1000>。

P2=0xf7。

P0=0xf8。

delay(1000>。

P2=0xfe。

P0=0x80。

delay(1000>。

P2=0xfd。

P0=0x90。

delay(1000>。

}

voiddelay(uintz>

{

uintx,y。

for(x=z。

x>0。

x-->

for(y=122。

y>0。

y-->。

}

4个LED数码管依次显示<0-9)

#include

#defineucharunsignedchar

#defineuintunsignedint

voiddelay(uintz>。

voidmain(>

{

P2=0xf7。

P0=0xc0。

delay(1000>。

P2=0xf7。

P0=0xf9。

delay(1000>。

P2=0xf7。

P0=0xa4。

delay(1000>。

P2=0xf7。

P0=0xb0。

delay(1000>。

P2=0xf7。

P0=0x99。

delay(1000>。

P2=0xf7。

P0=0x92。

delay(1000>。

P2=0xf7。

P0=0x82。

delay(1000>。

P2=0xf7。

P0=0xf8。

delay(1000>。

P2=0xf7。

P0=0x80。

delay(1000>。

P2=0xf7。

P0=0x90。

delay(1000>。

P2=0xfb。

P0=0xf9。

delay(1000>。

P2=0xfb。

P0=0xa4。

delay(1000>。

P2=0xfb。

P0=0xb0。

delay(1000>。

P2=0xfb。

P0=0x99。

delay(1000>。

P2=0xfb。

P0=0x92。

delay(1000>。

P2=0xfb。

P0=0x82。

delay(1000>。

P2=0xfb。

P0=0xf8。

delay(1000>。

P2=0xfb。

P0=0x80。

delay(1000>。

P2=0xfb。

P0=0x90。

delay(1000>。

P2=0xfd。

P0=0xf9。

delay(1000>。

P2=0xfd。

P0=0xa4。

delay(1000>。

P2=0xfd。

P0=0xb0。

delay(1000>。

P2=0xfd。

P0=0x99。

delay(1000>。

P2=0xfd。

P0=0x92。

delay(1000>。

P2=0xfd。

P0=0x82。

delay(1000>。

P2=0xfd。

P0=0xf8。

delay(1000>。

P2=0xfd。

P0=0x80。

delay(1000>。

P2=0xfd。

P0=0x90。

delay(1000>。

P2=0xfe。

P0=0xf9。

delay(1000>。

P2=0xfe。

P0=0xa4。

delay(1000>。

P2=0xfe。

P0=0xb0。

delay(1000>。

P2=0xfe。

P0=0x99。

delay(1000>。

P2=0xfe。

P0=0x92。

delay(1000>。

P2=0xfe。

P0=0x82。

delay(1000>。

P2=0xfe。

P0=0xf8。

delay(1000>。

P2=0xfe。

P0=0x80。

delay(1000>。

P2=0xfe。

P0=0x90。

delay(1000>。

}

voiddelay(uintz>

{

uintx,y。

for(x=z。

x>0。

x-->

for(y=122。

y>0。

y-->。

}

LED单向流水灯<从右向左)

#include

#defineucharunsignedchar

#defineuintunsignedint

voiddelay(uintz>。

voidmain(>

{

P2=0x7f。

delay(1000>。

P2=0xbf。

delay(1000>。

P2=0xdf。

delay(1000>。

P2=0xef。

delay(1000>。

P2=0xf7。

delay(1000>。

P2=0xfb。

delay(1000>。

P2=0xfd。

delay(1000>。

P2=0xfe。

delay(1000>。

}

voiddelay(uintz>

{

uintx,y。

for(x=z。

x>0。

x-->

for(y=122。

y>0。

y-->。

}

LED单向流水灯<从左向右)

#include

#defineucharunsignedchar

#defineuintunsignedint

voiddelay(uintz>。

voidmain(>

{

P2=0xfe。

delay(1000>。

P2=0xfd。

delay(1000>。

P2=0xfb。

delay(1000>。

P2=0xf7。

delay(1000>。

P2=0xef。

delay(1000>。

P2=0xdf。

delay(1000>。

P2=0xbf。

delay(1000>。

P2=0x7f。

delay(1000>。

}

voiddelay(uintz>

{

uintx,y。

for(x=z。

x>0。

x-->

for(y=122。

y>0。

y-->

}

LED双向流水灯<从里向外)

#include

#

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

当前位置:首页 > PPT模板 > 简洁抽象

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

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