2.LED的使用
LED的驱动库文件提供了LED的控制方法,开放版中LED驱动电路如下:
对LED的操作,首先要进行LED的初始化。调用LED初始化函数:vLedInitFrd( )对FFD开发板上的四个LED灯进行初始化;在调用LED灯控制函数:vLedControl(LED,ON)控制相
6
应的LED灯亮灭。相应的函数如下:
3.按键开关的使用
按键驱动库提供了按键的控制方法:在Button.h中宏定义了相应功能的函数.电路图如下
对于按键操作,首先要调用初始化函数:vButtonInitFfd()初始化FFD开发板上的四个按
键,然后调用函数:u8ButtonReadFfd()读取相应的按键状态相应的函数原型如下:
4.LCD的使用
5.BOS定时器的使用
为了消除按钮抖动对控制的影响,实验加入了一个人标识变量NextReadStart, 利用BOS定
7
时函数,使500ms后再次设置NextReadStart 为真,通过这种方法可有效地消除按钮抖动的影响。
bBosCreateTimer() 函数是一个处理软件定时器的BOS API函数,调用该函数可由BOS创建一个软件定时器,该定时器需要利用内部硬件滴答定时器(tick timer)来实现。当定时时间到,立即调用由 bBosCreateTimer() 指定的定时处理程序。该函数的原型如下; 三、软件设计
1. 程序流程图 :
冷启动初始化函数N 建 网?Y改变灯状态等待建成读取按键状态点亮对应LED
首先初始化函数LED和按键的初始化,建网成功,改变LED熄灭,表示建网成功。再读取是否有按键按下,有点亮相应的LED灯
2. 程序流程图:
8
冷启动初始化函数建网N 建 网?等待Y改变灯状态表示建成依次点亮LED灯,设置一个方向键,0向左,1向右。当LED3 ,0 变方向 1当LED0,1,变方向0延迟函数点亮对应LED
程序从冷启动开始,初始化LED灯状态,建网建成后LED灯自动闪烁,当kong=0(表示方向向左)、LED=3 改变kong=1,当kong=1,且LED=0.改变kong=0;这样依次点亮LED灯再返回点亮LED灯,这样闪烁一直下去。
3 程序流程图:
冷启动初始化函数建网N 建 网?等待Y改变灯状态表示建成使用LCD显示模块按下SW0数据加 1按下SW1 数据减1处理后,LCD显示模块调用BOS定时器
9
接通电源,程序初始化LCD和LED以及按键的初始化;建网成功后,初始化LCD函数,然后检测按键是否按下,检测到按键SW0按下,使LCD显示的数据加1, 调用LCD显示出来,当检测到SW1按下时使LCD显示数据减1,调用LCD显示处理后的数据。 四、实验结果与分析
1. 分别按动按键LED0~LED3,可以控制相应灯的亮灭状态。 分析:在程序中已经设定按键SW0~SW3分别对应于LED0~LED3,所以可以按动按键控制相应灯的亮灭。 2. 网络建网成功后,LED0~LED3周期性的闪烁,周期为1秒。
分析:程序中写入了LED依次加1并点亮,再经过延时程序,所以可以出现周期为1秒的闪烁。
3.按下按键SW0,LCD显示数据加1;按下按键SW1,LCD显示数据减1。
分析:按动按键SW0和SW1时分别执行了一个自加1和自减1的函数,再经过LCD显示从而可以得出如上结果。
五、存在问题和解决方法
1. 再设计设计性试验2,实现LED灯自动闪烁时,只能实现LED灯的按规定的方向依次点亮。与我理想结果没有结果没有达到,后通过加入一个标志量,控制LED的来去方向,
当kong=0(表示方向向左)、LED=3 改变kong=1,当kong=1,且
LED=0.改变kong=0;这样依次点亮LED灯再返回点亮LED灯,这样才实现了跑马灯的效果。其次 在按键的时候,按键出现问题,后来讨论在知道是没有加入去抖动程序导致。
2. 在设计LCD程序时,遇到的有LCD的调试问题,开始对LCD的写入字、位图、LCD能写64字符,32个汉字,且汉字必须送入要求的内存中,才可以写出正确的字,或则会出现乱码。
10
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库通信新技术综合训练报告(2)在线全文阅读。
相关推荐: