实验二 独立按键试验实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验二独立按键试验实验报告

【1】实验目的:掌握如何完成用用按键控制流水灯的流动方向、流速、闪烁方式等程序的编译和烧写。

【2】实验原理:

实验原理图如下:

【3】实验步骤:

1.打开Keil编译器,创建项目:Project---New uVision Project,创建一个文件夹来放工程相关的文件,给工程项目命名为my work,点击保存。

2.选择芯片类型,这里选择ATMEL------AT89C52这个芯片。

3.把C文件添加到我们的工程文件里。

4.在test.c这个文档里编辑代码。

5.编译通过之后,我们需要输出hex文件,也就是单片机可执行的

二进制文件。

6.利用STC-ISP将编写好的程序烧写进单片机中。

7.如下图连接试验相关模块连线:

→JP165跳线帽断开

→JP10连接J12

→JP5连接JP8

→J21接左边

【4】程序设计内容:

(1)开关状态的检测过程

单片机对开关状态的检测相对于单片机来说,是从单片机的P1.0端口输入信号,而输入的信号只有高电平和低电平两种,当拨开开关K1按下去,即输入低电平,相当开关闭合,当松开开关K1,即输入

高电平,相当开关打开。

(2)输出控制

如图3所示,当P1.0端口输出低电平,即P1.0=0时,根据发光二极管的单向导电性可知,这时发光二极管L1熄灭;当P1.0端口输出高电平,即P1.0=1时,发光二极管L1亮。所以通过对P1.0端口的设置就可以控制灯的亮灭。

(3)延时程序的设置

作为单片机的指令的执行的时间是很短,数量大微秒级,因此,我们要求的闪烁时间间隔要长一些,否则人眼根本无法识别到灯的闪烁效果。于是我们在执行某一指令时,插入延时程序,来达到我们的增加亮灯时长的效果。

【5】实验代码:

#include

#include

unsigned int key;

sbit key1=P1^0;

sbit key2=P1^1;

void delay(unsigned int i)

{

unsigned int j;

for(;i>0;i- -)

{

for(j=0;j<50;j++)

{

;

}

}

}

void main()

{

unsigned char i;

P0=0x00;

if(key1==0)

{

while(key2==1)

{

P0=0x01;

delay(400);

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

{

P0<<=1;

delay(400);

if(key2==0)break;

}

}

}

if(key2==0)

{

while(key1==1)

{P0=0x80;

delay(400);

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

{

P0>>=1;

delay(400);

if(key1==0)break;

}

}

}

}

【6】实验现象:

当按下K1键,松开K2键时,流水灯向左移;当按下K2键,松开K1键时,流水灯向右移。

相关文档
最新文档