51单片机入门实验及示例程序Word格式.docx

上传人:b****6 文档编号:21319001 上传时间:2023-01-29 格式:DOCX 页数:17 大小:93.67KB
下载 相关 举报
51单片机入门实验及示例程序Word格式.docx_第1页
第1页 / 共17页
51单片机入门实验及示例程序Word格式.docx_第2页
第2页 / 共17页
51单片机入门实验及示例程序Word格式.docx_第3页
第3页 / 共17页
51单片机入门实验及示例程序Word格式.docx_第4页
第4页 / 共17页
51单片机入门实验及示例程序Word格式.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

51单片机入门实验及示例程序Word格式.docx

《51单片机入门实验及示例程序Word格式.docx》由会员分享,可在线阅读,更多相关《51单片机入门实验及示例程序Word格式.docx(17页珍藏版)》请在冰豆网上搜索。

51单片机入门实验及示例程序Word格式.docx

0;

i--)

for(j=110;

j>

j--);

}

voidmain()

EA=1;

//中断总允许位

IT1=0;

//设置外部中断1的触发方式为电平触发

EX1=1;

//开外部中断

P35=0;

P1=0xaa;

//初始化P1,方法二中必须写这句

while

(1);

voidt1_115()interrupt2

/*delay_115(20);

//按键消抖

while(!

P33);

//当松开按钮时程序才往下执行,否则一直停留在此处

delay_115(20);

//按键消抖*/

//方法一:

/*if(P1==0x55)

P1=0xaa;

else

P1=0x55;

*/

//方法二:

(若使用方法二则给P1初始化为0xaa或0x55)

//P1=~P1;

//取反

if(P33==0)

{

delay_115(15);

if(P33==0)

{

if(flag)

{

P1=~P1;

flag=0;

}

}

else

//key=0;

flag=1;

}

//key=0;

flag=1;

2、

ucharcount_115=0;

uchartemp_115=0xfe;

TMOD=0x01;

//设置T0的工作方式为方式1

ET0=1;

//开定时器T0

TR0=1;

//定时器T0启动

TH0=0x3C;

//设置初值

TL0=0xB0;

P0=0x10;

//打开4位数码管

while

(1)

if(count_115==20)//该变量每50ms加1,当count_115等于20时,即时间间隔为1s

count_115=0;

//将计数变量重置为0,以便开始下1s的定时

P1=temp_115;

temp_115=temp_115<

<

1;

//左移一位

temp_115=temp_115+0x01;

//最低位补1

if(temp_115==0xbf)//由于只需要点亮最外圈的六个管子,故此处重置temp_115为0xfe

temp_115=0xfe;

voidt0_115()interrupt1

TH0=0x3C;

//装入初值此处为50ms执行一次中断

count_115++;

//每执行一次中断,该变量加1

TR0=~TR0;

//暂停或启动定时器T0

3、此题过于简单,略。

4、

#defineucharunsignedchar

ucharthedata;

bitflag;

TMOD=0x20;

TH1=0xfd;

TL1=0xfd;

TR1=1;

//SM0=0;

//SM1=1;

//REN=1;

SCON=0x50;

ES=1;

while

(1)

if(flag==1)

ES=0;

flag=0;

SBUF=thedata;

while(!

TI);

TI=0;

ES=1;

voidserial()interrupt4

thedata=SBUF;

RI=0;

flag=1;

5、

if(thedata>

=48&

&

thedata<

=57)

thedata-=48;

=97&

thedata<

=122)//根据ascii值判断是否接收到了'

a'

-'

z'

thedata-=32;

//将小写字母转换成大写ascii值差32

6、

ucharcount=0;

uchartemp;

uchar*thedata;

uchari;

TMOD=0x21;

//TR0=1;

if(temp=='

1'

TR0=1;

thedata="

Start"

;

2'

TR0=0;

Stop"

//for(i=0;

i<

5;

i++)

while(*thedata)

//SBUF=thedata[i];

SBUF=*thedata;

while(!

TI=0;

thedata++;

if(count==20)

count=0;

P1=~P1;

voidt0()interrupt1

count++;

temp=SBUF;

7、

string.h>

uchari;

uchardata_count=0;

ucharreceive[8]="

\0\0"

ucharsend_Ok1[]="

Ok1\n"

ucharsend_Ok2[]="

Ok2\n"

ucharStart[]="

ucharStop[]="

ucharflag;

TR0=1;

data_count=0;

for(i=0;

4;

SBUF=send_Ok1[i];

if(flag==2)

TR0=0;

SBUF=send_Ok2[i];

if(RI)

{

RI=0;

receive[data_count]=SBUF;

if(strcmp(receive,Start)==0)

8;

receive[i]='

\0'

if(strcmp(receive,Stop)==0)

flag=2;

}

data_count++;

8、

ucharcount=0,NUM=10;

voiddelay(intx)

intm,n;

for(m=x;

m>

m--)

for(n=110;

n>

n--);

uchari=1;

P1=0x00;

delay(20);

if(P33==0)

P1=0xff;

if(i==1)

{

count=0;

NUM=10;

SBUF='

i++;

}

elseif(i==2)

NUM=20;

SBUF='

TI=0;

else//if(i==3)

NUM=40;

ES=0;

SBUF='

3'

while(!

TI=0;

ES=1;

i=1;

}

if(count==NUM)

if(NUM==10)

P1=~P1+0xf0;

elseif(NUM==20)

P1=~P1+0x0f;

else//if(NUM==40)

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

当前位置:首页 > IT计算机 > 计算机软件及应用

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

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