单片机核心实验板实验报告.docx
《单片机核心实验板实验报告.docx》由会员分享,可在线阅读,更多相关《单片机核心实验板实验报告.docx(20页珍藏版)》请在冰豆网上搜索。
![单片机核心实验板实验报告.docx](https://file1.bdocx.com/fileroot1/2022-9/30/506d8bc9-c67b-4e3b-83a8-249d65be7a7f/506d8bc9-c67b-4e3b-83a8-249d65be7a7f1.gif)
单片机核心实验板实验报告
(此文档为word格式,下载后您可任意编辑修改!
)
学院:
电气学院
专业:
电气本12-03班
学号:
姓名
岳鹏飞
王春龙
实验一流水灯实验
一、实验目的
1)简单IO引脚的输出
2)掌握软件延时编程方法
3)简单按键输入捕获判断
二、实验实现的功能
1)开机是点亮12发光二极管,闪烁三下
2)按照顺时针循环依次点亮发光二极管
3)通过按键将发光二极管的显示改为顺逆时针方式
程序:
#include{
ucharb,y,n;
flick();
while
(1)
{
n=b;
y=(n%2);
if(y==1)
{
ucharx;
for(x=0;x<12;x++)
{
P2=tab3[x];
P3=tab4[x];
Delay900ms();
ko1=0;
ko2=0;
ki1=1;
ki2=1;
ki3=1;
if(!
ki1||!
ki2||!
ki3)
{
Delay10ms();
if(!
ki1||!
ki2||!
ki3)
b+=1;
while(!
ki1||!
ki2||!
ki3);
}
}
}
if(y==0)
{
ucharx;
for(x=0;x<12;x++)
{
P2=tab1[x];
P3=tab2[x];
Delay900ms();
ko1=0;
ko2=0;
ki1=1;
ki2=1;
ki3=1;
if(!
ki1||!
ki2||!
ki3)
{
Delay10ms();if(!
ki1||!
ki2||!
ki3)
b+=1;
while(!
ki1||!
ki2||!
ki3);
}
}
}
}
}
实验二定时器或实时时钟实验
一、实验目的
1)数码管动态显示技术
2)定时器的应用
3)按键功能定义
二、实验实现的功能
1)通过按键可以设定定时时间,启动定时器,定时时间到,让12个发光二极管闪烁,完成定时器功能。
2)实时时钟,可以设定当前时间,完成钟表功能(四位数码管分别显示分钟和秒)。
上述二个功能至少完成一种功能。
程序:
#include{
ucharm,k;
uintn=1;
P1M1=0x00;
P1M0=0xff;
TMOD=0x10;
TH1=0xfc;
TL1=0x67;
ET1=1;
EA=1;
while
(1)
{
if(!
TR1)
{
k=0;
for(k=0;k<50;k++)
{
ko1=0;
ko2=0;
ki1=1;
ki2=1;
ki3=1;
if(!
ki1)
{
Delay5ms();
if(!
ki1)
{
TR1=1;
break;
}
while(!
ki1);
}
if(!
ki2)
{
Delay5ms();
if(!
ki2)
n+=1;
while(!
ki2);
}
if(!
ki3)
{
Delay5ms();
if(!
ki3)
n+=100;
while(!
ki3);
}
tab3[0]=n%10;
tab3[1]=n10%10;
tab3[2]=n100%10;
tab3[3]=n1000%10;
for(m=0;m<4;m++)
{
P0=tab2[m];P1=tab1[tab3[m]];
Delay5ms();
}
if(m==4)
m=0;
}
}
if(b==n)
{
TR1=0;
b=0;
n=1;
flick();
}
}
}
实验三双机通信实验
一、实验目的
1)UART串行通信接口技术应用
二、实验实现的功能
1)用两片核心板之间实现串行通信,将按键信息互发到对方数码管显示。
程序:
#includevoidsend();
voiddelay(ucharx)
{
for(a=x;a>0;a--)
for(b=110;b>0;b--);
}
voidmain()
{
SCON=0x50;
TMOD=0x20;
PCON=0x00;
TH1=0xf4;
TL1=0xf4;
TR1=1;
W1=0;
while
(1)
{
n=num;
send();
}
}
voidsend()发送
{
H1=0;
H2=1;
L1=1;
L2=1;
L3=1;
if(!
L1)
{
delay(5);
if(!
L1)
num=1;
while(!
L1);
}
if(!
L2)
{
delay(5);
if(!
L2)
num=2;
while(!
L2);
}
if(!
L3)
{
delay(5);
if(!
L3)
num=3;
while(!
L3);
}
H1=1;
H2=0;
L1=1;
L2=1;
L3=1;
if(!
L1)
{
delay(5);
if(!
L1)
num=4;
while(!
L1);
}
if(!
L2)
{
delay(5);
if(!
L2)
num=5;
while(!
L2);
}
if(!
L3)
{
delay(5);
if(!
L3)
num=6;
while(!
L3);
}
if(num!
=n)
{
SBUF=num;
while(!
TI);
TI=0;
}
if(RI)
{
c=SBUF;
RI=0;
}
P1=tab1e[c];
}
实验四交通灯试验
一、实验目的
1)按键、数码管、发光二极管综合应用编程技术
2)数据存储于EEPROM的技术(也可以不使用)
3)定时中断技术
4)按键中断技术
二、实验实现的功能
1)对每个路口(主干道、次干道)的绿灯时间,及黄灯时间的设定。
2)设定参数掉电后不丢失(如果不使用EEPROM,此功能可以不实现)。
3)紧急按键功能,当按下该键时,所有路口变成红灯,相当于交警指挥特殊车辆通过。
再按该键,恢复正常显示。
程序:
#includeuinta=0;
uintb=0;
uchark,c,d,f,g;
sfrP1M1=0x91;
sfrP1M0=0x92;
sbitko1=P3^6;
sbitko2=P3^7;
sbitki1=P0^5;
sbitki2=P0^6;
sbitki3=P0^7;
sbitdh=P2^2;
sbitdl=P2^1;
sbitdy=P2^0;
sbitxh=P3^2;
sbitxl=P2^7;
sbitxy=P2^6;
sbitnh=P2^5;
sbitnl=P2^4;
sbitny=P2^3;
sbitbh=P3^5;
sbitbl=P3^4;
sbitby=P3^3;
tab1[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
tab2[]={0xf7,0xfb,0xfd,0xfe};
tab3[4]={0};
voidshow()
{
charj;
switch(j)
{
case0:
P0=tab2[j];j++;P1=tab1[tab3[0]];break;
case1:
P0=tab2[j];j++;P1=tab1[tab3[1]];break;
case2:
P0=tab2[j];j++;P1=tab1[tab3[2]];break;
case3:
P0=tab2[j];j=0;P1=tab1[tab3[3]];break;
default:
break;
}
}
voidDelay5ms()@11.0592MHz
{
unsignedchari,j;
i=54;
j=199;
do
{
while(--j);
}while(--i);
}
voidinterrupt_timer1()interrupt3
{
TH1=0xfc;
TL1=0x67;
a++;
if(a==1000)
{
b++;
a=0;
}
if(b=0)
{
tab3[0]=(m-b)%10;
tab3[1]=(m-b)10%10;
tab3[2]=(m-b)100%10;
tab3[3]=(m-b)1000%10;
}
if(b=m)
{
tab3[0]=(d-b)%10;
tab3[1]=(d-b)10%10;
tab3[2]=(d-b)100%10;
tab3[3]=(d-b)1000%10;
}
if(b=d)
{
tab3[0]=(f-b)%10;
tab3[1]=(f-b)10%10;
tab3[2]=(f-b)100%10;
tab3[3]=(f-b)1000%10;
}
if(b=f)
{
tab3[0]=(g-b)%10;
tab3[1]=(g-b)10%10;
tab3[2]=(g-b)100%10;
tab3[3]=(g-b)1000%10;
}
show();
}
voiddet()
{
ko1=1;
ko2=0;
ki1=1;
ki2=1;
ki3=1;
if(!
ki1||!
ki2||!
ki3)
{
Delay5ms();