本阶段任务与步骤
================
1,设置好共享文件夹
2,编译这些代码:
make
3,将编译好的示例程序piano丢到开发板,观察运行效果
注意:要将所有的bmp文件也要上传到开发板(已经上传过了就不用重复上传了)
4,修改piano.c,使得钢琴12个琴键均能按下去。
单片机源程序如下:
/***********************************************
//
// Copyright(C), 2013-2016, GEC Tech. Co., Ltd.
//
// 作者: 林世霖
// 微信公众号:秘籍酷
// 日期: 2016-6
//
// 描述: 在LCD上显示音乐钢琴的界面
//
// GitHub: github.com/vincent040
// Bug Report: 2437231462@qq.com
//
***********************************************/
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include "bmp.h"
#include "ts.h"
int main(int argc, char const *argv[])
{
// 1,打开LCD设备
int lcd = open("/dev/fb0", O_RDWR);
// 2,获取LCD设备的参数
struct fb_var_screeninfo vinfo;
ioctl(lcd, FBIOGET_VSCREENINFO, &vinfo);
// 3,为该LCD设备映射显存
unsigned char *FB;
FB = mmap(NULL, vinfo.xres * vinfo.yres * vinfo.bits_per_pixel/8,
PROT_READ|PROT_WRITE, MAP_SHARED, lcd, 0);
// 4,显示整个钢琴的界面
// 4.1 显示背景(background.bmp)
bmp2lcd("background.bmp", FB, &vinfo, 0, 0);
// 4.2 显示标题栏(bar.bmp)
bmp2lcd("bar.bmp", FB, &vinfo, 0, 0);
// 4.3 显示12个琴键(bar.bmp)
int i;
for(i=0; i<12; i++)
{
bmp2lcd("key_off.bmp", FB, &vinfo, 10+65*i, 47);
}
// 4.4 显示LOGO(logo.bmp)
bmp2lcd("logo.bmp", FB, &vinfo, 214, 355);
// 5,打开触摸屏设备,开始音乐钢琴
int ts = open("/dev/event0", O_RDWR);
struct coordinate coor;
while(1)
{
// 5.1 等待手指触碰,并顺便获取触碰点坐标(coor.x和coor.y)
wait4touch(ts, &coor);
// 5.2 根据coor的坐标信息来更新琴键的状态
bmp2lcd("key_on.bmp", FB, &vinfo,(coor.x-10)/65*65+10, 47);
// 5.3 根据coor的坐标信息播放相应的琴键声音(暂时不做)
// 5.4 等待手指的松开
wait4leave(ts);
// 5.5 将相应的琴键恢复弹起的状态
bmp2lcd("key_off.bmp", FB, &vinfo,(coor.x-10)/65*65+10, 47);
}
return 0;
}
// int ts = open("/dev/event0", O_RDWR);
// struct coordinate coor;
// while(1)
// {
// // 5.1 等待手指触碰,并顺便获取触碰点坐标(coor.x和coor.y)
……………………
…………限于本文篇幅 余下代码请从51黑下载附件…………
所有资料51hei提供下载:
06实现琴键按下效果.rar
上一篇:STM32F030 使用内部时钟和外部时钟
下一篇:LPC2000系列Proteus仿真+代码 菜鸟的ARM学习笔记
推荐阅读
史海拾趣
Futaba Electric Co Ltd公司的发展故事
故事一:从真空管到VFD的转型
Futaba Electric Co Ltd,原名双叶电子,成立于1948年,最初以生产收音机收讯真空管起家。然而,随着电子技术的飞速发展,公司在1970年做出了重大战略调整,决定结束真空管业务,转而专注于萤光表示管(VFD)的生产。这一转型标志着公司进入了新的发展阶段。VFD以其高清晰度、广阔视角和卓越亮度迅速赢得了市场认可,特别是在高级消费性电子设备领域。Futaba的VFD产品不仅品质稳定可靠,还因其抗震性能好、温差适应性强以及高可靠性,在汽车仪表盘和抬头显示器等领域占据重要地位。自1983年起,Futaba的VFD产品被福特汽车公司采用,并迅速在美国三大汽车厂实现100%市场占有率,这一成就进一步巩固了其在VFD市场的领导地位。
故事二:无线电控制技术的突破
1962年,面对工业控制领域对供应商品质和交货期的严格要求,Futaba推出了无线电控制设备和冲压金属模用部件,这些创新产品不仅提升了工业品质,还显著缩短了模具开发周期,引领了当时的行业标准。这一举措不仅为Futaba在模具制造领域奠定了坚实基础,还为其后续的技术发展开辟了新方向。随着技术的不断进步,Futaba在无线电传输模组(R/C)领域也取得了显著成就,特别是在高频无线展频通讯技术的研发上,其产品具有高可靠性和抗干扰性,甚至被应用于卫星通讯领域,进一步巩固了其在无线遥控技术的领先地位。
故事三:工业与娱乐的双重发展
Futaba不仅在工业控制领域取得了卓越成就,还将其技术延伸至休闲娱乐领域。公司开发的遥控飞机、车、船等产品,凭借其出色的性能和稳定的品质,迅速成为户外休闲运动的热门选择。特别是2.4G接收机的推出,进一步丰富了Futaba的产品线,满足了不同消费者的多样化需求。这一举措不仅拓宽了公司的业务范围,还提升了其品牌知名度和市场占有率。
故事四:全球化布局与市场拓展
随着公司业务的不断发展和市场需求的日益增长,Futaba开始积极实施全球化战略。为了更好地服务于中国市场,公司成立了双叶电子科技开发(北京)有限公司,专营Futaba的全线产品,包括VFD真空荧光显示管和RC无线遥控设备等。这一举措不仅加强了Futaba在中国市场的竞争力,还为其进一步拓展全球市场奠定了坚实基础。通过在全球范围内的市场布局和业务拓展,Futaba已成为一家闻名世界的跨国公司。
故事五:技术创新与可持续发展
Futaba始终将技术创新作为企业发展的核心驱动力。公司不断投入研发资源,致力于新技术的开发和应用。通过不断的技术创新和产品升级,Futaba不仅保持了其在VFD和无线遥控技术领域的领先地位,还积极探索新的业务领域和市场机会。同时,公司还注重可持续发展和社会责任,致力于实现经济效益、社会效益和环境效益的和谐统一。这一理念不仅为Futaba赢得了良好的社会声誉和品牌形象,还为其长期发展奠定了坚实基础。
公司成立与初期发展:Analog Integrations Corporation(AIC)是一家总部位于台湾的半导体公司,专注于设计、制造和销售高性能模拟集成电路(IC)产品。公司成立于1996年,由一群拥有丰富经验的工程师共同创立。最初,AIC致力于为广泛的应用领域提供稳定可靠的模拟芯片解决方案,如消费电子、通信、工业控制等。
技术创新与产品发展:AIC在技术创新和产品研发方面投入了大量资源,不断推出具有竞争力的新产品。公司的产品涵盖了各种模拟IC产品系列,包括功率管理IC、放大器、比较器、数据转换器等。这些产品具有高性能、低功耗、小尺寸等特点,得到了广大客户的青睐。
全球市场拓展:随着公司技术和产品的不断成熟,AIC开始着眼于国际市场的拓展。公司积极参与国际电子展览和行业会议,与全球客户建立合作关系,拓展海外市场份额。通过建立销售代理商、设立海外办事处等方式,AIC在北美、欧洲、亚太等地区建立了稳固的销售网络。
质量管理与认证:AIC始终将产品质量视为企业发展的关键。公司严格遵循国际质量管理体系标准,建立了完善的质量管理体系。AIC的生产工艺和产品测试流程经过精心设计和严格监控,确保产品质量的稳定性和可靠性。此外,公司的产品经过了多项国际认证,包括ISO 9001质量管理体系认证、ISO 14001环境管理体系认证等。
社会责任与可持续发展:作为一家负责任的企业,AIC积极履行社会责任,关注环境保护和可持续发展。公司致力于降低能源消耗和减少废物排放,推动绿色生产和循环利用。此外,AIC积极参与社会公益活动,支持教育、健康、环保等多个领域的项目,为社会发展做出积极贡献。
背景:随着公司规模的扩大和产品线的丰富,Fortiming开始寻求更广阔的市场空间。
发展:公司积极参加国内外电子展会,展示其最新技术和产品,吸引了众多客户的关注。同时,Fortiming还与国际知名电子企业建立了合作关系,共同开发新产品,开拓新市场。这些合作不仅提升了Fortiming的品牌影响力,还为公司带来了更多的商业机会。
随着技术的不断积累和市场的逐步拓展,成都芯进电子逐渐在磁传感器芯片领域崭露头角。他们不仅实现了霍尔效应和磁阻效应磁传感器芯片的量产,还成功研发了电流传感器芯片、电机驱动芯片和电源管理芯片等系列产品。这些产品的推出,不仅丰富了公司的产品线,也进一步提升了公司的市场竞争力。
背景:人才是企业发展的第一资源。Hisetec Electronic Co Ltd公司始终将人才战略作为企业发展的核心战略之一。
发展:公司建立了完善的人才培养、引进和激励机制,积极吸引国内外优秀人才加盟。同时,公司还加强与高校和科研机构的合作,共同培养高素质的电子专业人才。此外,公司还注重员工的职业发展和企业文化建设,营造了良好的工作环境和氛围。这些举措为Hisetec公司的可持续发展提供了有力的人才保障。
请注意,以上故事均为虚构,旨在展示电子行业企业可能的发展路径和策略。实际上,Hisetec Electronic Co Ltd公司的具体发展历程和故事可能有所不同。
随着电子行业的快速发展,Carlisle Interconnect Technologies不断进行技术升级和产品创新。公司不断引进先进的生产设备和技术,提升产品的质量和性能。同时,公司还积极拓展产品线,从最初的绝缘电线电缆扩展到连接器、传感器等多个领域。这种多样化的产品策略使得公司能够更好地满足客户的多样化需求,也在市场上取得了更大的成功。
刚刚老板找我谈话.说希望我提出一个方案,实现5KW音频放大其他具体要求没说.只说是用于军舰喊话.我跑了趟西四音响市场.都说没有5KW的,最大只有2X2KW.一般常见只有几百W. 买不到看来只有自己DIY了,我自己提出使用电子管FU81四只来实现推挽输出,功率 ...… 查看全部问答∨ |
|
STANDARDSDK STANDARDSDK_42有什么区别(新手) 1、用过EVC4.0平台,它上面有STANDARDSDK和STANDARDSDK_42,是不是编真机版时就选前者,跑模拟器就选择后者?它们有什么区别? 2、顺便问问,在用EVC时,比如我选择了STANDARDSDK这个SDK,为什么编译选项Win 32[WCE ARM4V]既可以有release,又可以 ...… 查看全部问答∨ |
大虾们,verilog hdl的编译器 有没有只有上10M的 小软件啊,我只需要一个编译器,顶多加上一个语法检测器。因为我用的是上网本,小电脑处理能力很有限,ISE根本装不上去,加上下个ISE估计就要花好几天时间,推荐下 我该下那个编译器 谢谢啊… 查看全部问答∨ |
M0的开发板咋挑呀,英蓓特蓝精灵、周立功TinyM0、poweravr的NanoM0 另外还有从坛友签名里翻到的智林Z111xP和龙达电子的 请问主要的区别在哪?硬件的、调试环境的,谢谢啦 在下是brand new的新手,学校里专业是自动化,现在用PLC [ 本帖最后由 krtek 于 2010-9-29 21:06 编辑 ]… 查看全部问答∨ |
|
各位前辈,我现在想学system verilog 手头只有一本SV做验证的书,是克里斯。斯皮尔的,现在想从头学起,看看systemverilog的语法,以及初级的设计,希望各位前辈推荐一下~~~麻烦各位啦~~~… 查看全部问答∨ |
芯片资料说设置时间只要10us,现在有50us,spi接口是用FPGA口模拟出来的,频率是20MHZ,做的是dds正弦波生成,后来把串口频率改成30MHZ,还是50us,求高手指点… 查看全部问答∨ |