单片机核心实验板实验报告.docx

上传人:b****0 文档编号:7536 上传时间:2022-09-30 格式:DOCX 页数:20 大小:13.90KB
下载 相关 举报
单片机核心实验板实验报告.docx_第1页
第1页 / 共20页
单片机核心实验板实验报告.docx_第2页
第2页 / 共20页
单片机核心实验板实验报告.docx_第3页
第3页 / 共20页
单片机核心实验板实验报告.docx_第4页
第4页 / 共20页
单片机核心实验板实验报告.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

单片机核心实验板实验报告.docx

《单片机核心实验板实验报告.docx》由会员分享,可在线阅读,更多相关《单片机核心实验板实验报告.docx(20页珍藏版)》请在冰豆网上搜索。

单片机核心实验板实验报告.docx

单片机核心实验板实验报告

(此文档为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)用两片核心板之间实现串行通信,将按键信息互发到对方数码管显示。

程序:

#include

voidsend();

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)紧急按键功能,当按下该键时,所有路口变成红灯,相当于交警指挥特殊车辆通过。

再按该键,恢复正常显示。

程序:

#include

uinta=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();

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

当前位置:首页 > IT计算机 > 电脑基础知识

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

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