Skip to content

Xue-Chaos/practice_7

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 

Repository files navigation

任务描述:请基于ZigBee模块(黑板)模拟实现变化的流水灯功能。

系统上电后D3~D6灯全亮1秒后全灭,按下SW1后进入流水灯状态1,即按照D4->D3->D6->D5的顺序,每隔1秒依次点亮一个灯,当D5灯灭掉之后,等待1秒,然后将顺序颠倒过来,即按照D5->D6->D3->D4的顺序,每隔1秒依次点亮一个灯,当D4灯灭掉之后,等待1秒后再次颠倒,后面就是一直按照这样的流程循环进行。按下SW2后进入流水灯状态2,即亮灯顺序为先是D4,D6同时点亮,持续2秒,然后灭掉,接着D3,D5同时点亮,持续2秒,然后灭掉,过1秒后4个灯同时点亮,持续2秒,之后灭掉,保持1秒;接着就是先是D3,D5同时点亮,持续2秒,然后灭掉,接着D4,D6同时点亮,持续2秒,然后灭掉,过1秒后4个灯同时点亮,持续2秒,之后灭掉。 设备列表:

1、ZigBee模块(黑板)1块+电源线

2、USB转串口线1根

3、CC Debugger仿真器1个

任务要求:

在 “C:\JoyWork\01\work\Task\”文件夹下创建IAR工程,工程名字和工作空间的名字均为:“Task+准考证号后12位”,把“Task” 文件夹下的“test.c”添加到IAR工程中,配置好工程选项参数,确保工程编译成功。(4分)。在“test.c”中添加代码实现以下功能:

1、使用定时器1来产生10ms的定时。定时器1已设置好采用32MHz系统时钟、32分频、模模式、通道0比较模式、比较值T1CC0为10000,此时定时器1每10ms产生一次中断,本部分代码已提供,考生无需处理,但要求实验中用到的延时,均用定时器1来计数定时,也就是用到代码中定义好的变量“counter”来实现计数定时,用自己定义的延时函数来定时,不得分。

2、考生在完成两个按键的功能代码的时候,不需要考虑SW1和SW2两个按键中断之间的相互影响,只需要做到按下按键1,有对应的现象;之后先复位,再按下按键2,也有对应的现象,反之亦然,即可。

3、ZigBee模块一上电,D3,D4,D5,D6灯全亮1秒后全灭。(3分)

4、按键SW2(P0_1)配置成采用中断的方式进行控制,上拉输入模式,下降沿触发中断。(5分)

5、串口通信要求使用串口0的备用位置1: P0_2 (RX), p0_3(TX),波特率9600,奇偶校验无,1位停止位,8位数据位。(7分)

6、在主函数中,实现按键SW1功能如下:(12分)

按下按键SW1后:

(1)按照D4->D3->D6->D5的顺序,每隔1秒依次点亮一个灯,当D5灯灭掉之后,等待1秒后将顺序颠倒过来,即按照D5->D6->D3->D4的顺序,每隔1秒依次点亮一个灯,当D4灯灭掉之后,等待1秒后,再次颠倒,后面就是一直按照这样的流程循环进行;

(2)每次循环完一次之后,发送“流水灯1完成”到电脑串口显示。

7、在主函数中,实现按键SW2功能如下:(14分)

按下按键SW2后:

(1)亮灯顺序为先是D4,D6同时点亮,持续2秒,然后灭掉,接着D3,D5同时点亮,持续2秒, 然后灭掉,过1秒后4个灯同时点亮,持续2秒,之后灭掉,保持1秒;

(2)接着就是先是D3,D5同时点亮,持续2秒,然后灭掉,接着D4,D6同时点亮,持续2秒,然后灭掉,过1秒后4个灯同时点亮,持续2秒,之后灭掉;

(3)每次循环完一次之后,发送“流水灯2完成”到电脑串口显示。

8、把串口助手输出信息进行截图保存至“图集.docx”中的9.png处。(2分)

9、考试时间截止后,确保“图集.docx”和源码工程文件已保存后, 对work文件夹进行压缩,点击“上传文件”将压缩后的“work.zip”上传至服务器指定目录。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages