拨码开关控制流水灯实作报告

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

《拨码开关控制流水灯》实作报告

班级:姓名:

一、任务描述:

利用一只拨码开关控制流水灯的流动方向。拨码开关往上拨动时,流水灯自左往右流动,拨码开关往下拨动时,流水灯自右往左流动。流动速度不限。

往上拨动

往下拨动

二、要完成本次任务,你需要把以下问题搞清楚:

1、硬件连接:

根据任务描述,共需要根导线连接LED灯,根导线连接拨码开关。共需要根导线。

2、程序设计:

(1)实验箱上拨码开关往上拨动时输出电平,用数字来表示。往下拨动时输出电平,用数字来表示。

(2)本例程序(需要/不需要)导入头文件

提示:是否用到了I/O口,P0、P1、P2或P3

)本例程序(需要

提示:是否需要移位,有要求做流水灯效果吗?

)本例程序(需要

(5)本例程序对流水灯流动速度不作要求,(需要/不需要)延时子函数。(6)本例程序(需要/不需要)对某些引脚进行位定义(单独使用)?有的话,是哪些脚?

(7)利用(if/while/for)基本语句和逻辑运算符来判断拨码开关当前状态是往上拨动,还是往下拨动;利用(if/while/for)基本语句来反复扫描拨码开关的状态。

(8)流水灯的三要素是:P1=a;

yanshi(数值);数值大小决定的led的

a=_cror_(a,1);或=_crol_(a,1);

3、把程序补充完整(假定拨码开关接P2.0脚,LED接P1脚)

#include< > //导入头文件,方便寻址//

# include< > //导入头文件,便于使用移位指令//

#define unsigned int //宏定义,简化程序//

void yanshi(uint); //声明子函数//

sbit k= ; //位定义单独使用的引脚//

uint a=0x ; //设置流水灯初值//

void main() //主函数//

{

(1) //死循环//

{

if(k= = ) //判断拨码开关状态//

{

P1= ; //将a值送给P1口//

yanshi( ); //延时//

a=_crol_(a,1); //a向左移动一位//

}

if(k= = ) //判断拨码开关状态//

{

P1= ; //将a值送给P1口//

yanshi( ); //延时//

a=_cror_(a,1); // a向右移动一位//

}

}

}

void yanshi(uint x) //延时子函数//

{

uint i,j;

for(i=x;i>0;i--)

for(j= ;j>0;j--);

}

相关文档
最新文档