基于gec6818ARM开发板的嵌入式项目设计(C完整代码) | 您所在的位置:网站首页 › 基于粤嵌gec6818项目门禁 › 基于gec6818ARM开发板的嵌入式项目设计(C完整代码) |
1、描述项目
该项目设计的主要用途是小孩子学习时使用的台灯。 打开lcd屏后,界面分为三大块,从左至右,依次是led灯的亮度控制,显示时间和倒计时功能, 计算器功能 首先是led的控制: 在Linux中一切皆是文件,使用文件IO的方式,打开led的文件,通过给文件写入数据来控制灯的亮灭 用两个字节来控制灯的状态,第一个字节来控制灯的亮灭,第二个字节用来控制具体是那个灯,当第二个字节等于8时是指定第一个灯 等于9时是指定第二个灯,等于10时是指定第三个灯,等于12时是同时指定三个灯 然后是显示时间和倒计时功能: 通过设定好的时间,再用取字模的方式用坐标去显示数字出现在需要的位置。 时间下方的倒计时的功能则是,通过使用触摸屏,完成倒计时的时间的加,减和开始倒计时,默认的初始和最低的倒计时的时间是10s 这个时间是定义一个全局变量,通过不断的显示这个变量来显示在屏幕上面的,用手指点击右下方的”+"号,每次点击可以在时间上加10s, 左下角的“-”号可以在时间上减10s。当倒计时的时间倒计为0时,会调用蜂鸣器和sleep延时函数,发出5声“滴”的声音来提醒使用者时间到了。 计算器功能: 这个功能的显示是一张bmp格式的照片,来引导用户点击数字和运算符,这个计算器可以进行简单的加减乘除的四则运算,运算结束后,会将 式子和运算结果显示在上方的显示区域。 这个计算器功是运用数据结构,栈的概念来实现的,将用户按下的数字和运算符用一个数组保存成一个字符串,然后数字入数字栈,符号入符号栈 符号在入栈时,如果是后一个符号的优先级大于前面符号的优先级,会将优先级高的先和数据栈的两个数据出栈计算,计算完之后的数据再入栈,当 遇到左括号时,按正常的优先级顺序入栈,然后继续将括号里面的符号继续按照优先级的顺序入栈,在后面遇到右括号时,就会进行弹栈计算操作, 将左括号后到右括 号前的符号全部弹栈计算,计算完之后的数据再入栈,按这样的规则到最后,符号栈为空,数据栈就只会剩下一个计算完之后的 结果数据。 还有一个功能:超声波测距,接在板子的con2上使用 还有一个功能时超声波测距,超声波传感器使用UART模式来不断返回距离,设定一个阈值,来监控用户的头部离桌面的距离,一旦低于这个阈值, 蜂鸣器则会报警来提醒用户。 2.显示bmp照片bmp的照片头部有54个字节用来保存照片的信息,通过位运算可以查看图片的长和宽,获取图片的位深,24位的照片是由rgb三个字节来显示一个像素 点的,32位则是有argb四个字节来显示一个像素点,所以必须要通过一个判断来区分图片的位深。 以24位深的bmp照片为例,解析像素点时,读取图片的像素点信息,是要从54个字节后读取的,图片的像素点信息都在保存在54个字节之后,计算机保存 数据是通过小端保存的方式保存的,所以在对lcd屏进行映射时要转换成大段模式,可以通过位运算,r |
CopyRight 2018-2019 实验室设备网 版权所有 |