嵌入式电子琴系统设计简报_第1页
嵌入式电子琴系统设计简报_第2页
嵌入式电子琴系统设计简报_第3页
嵌入式电子琴系统设计简报_第4页
嵌入式电子琴系统设计简报_第5页
已阅读5页,还剩78页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

SHANGHAINORMALUNIVERSITYTIANHUACOLLEGE

《嵌入式系统原理与应用》综合设计汇报

简易电子琴系统设计

系部:电子与信息工程系

专业班级:

学生姓名:

学号:

小组组员:

指导教师:

时间:

完成日期2023年6月

目录

1绪论..........................................

1.1综合设计目日勺...........................

1.2简易电子琴简介.........................

1.2.1电子琴在中国的发展...............

1.2.2电子琴发明日勺意义..................

1.2.3电子琴的电学原理..................

1.3芯片简介...............................

1.3.1LM3s2110微控制器................

1.3.2ARMCortex-M3处理器内核.........

1.3.3通用输入/输出端口(GPI0)........

1.3.4脉宽调制器(PWM).................

2综合设计内容.................................

2.1综合设计题目............................

2.2综合设计规定............................

重要内容................................

重要技术指标、规定......................

所用设备与器材..........................

3硬件方案.....................................

3.1系统硬件时构成与原理...................

3.2ARM2110开发板原理与应用...............

3.2.1LY3S2110特性概述................

3.2.2LY3S2110的GPI()特性.............

3.3独立按键...............................

3.4矩阵键盘................................

3.5蜂鸣器..................................

3.6LED灯应用方式..........................

3.71602字符液晶屏.........................

4软件方案......................................

4.1设计原理框图...........................

4.2程序流程图.............................

4.3导线连接方案...........................

4.4调试过程...............................

5结束语........................................

5.1设计总结与感想..........................

5.2答谢词...................................

参照文献........................................

附录一ARM2HG芯片...........................

附录二4X4矩陆键盘...........................

附录三蜂鸣器模块

附录四LCD显示屏

附录五LED灯模块

附录六试验成果图

附录七程序清单

1.头文献

2.定义LED

3.定义KEY

4.LCD模块使能

5.LCD显示

6.LED灯模块

1绪论

1.1综合设计目的

通过本次综合设计,运用已学日勺课程知识,根据题目规定进行软硬件系

统的设计和调试,对《嵌入式系统原理与应用》课程中波及的芯片构造、控

制原理、硬件和编程等方面有一定的感性认识和实践操作能力,从而加深

对本课程知识点内理解,使应用知识能力、设计能力、调试能力以及汇报

撰写能力等方面有明显提高。

1.2简易电子琴简介

电子琴是现代电子科技与音乐结合的产物,它在现代音乐中饰演着重要

角色。

1.2.1电子琴在中国的发展

在中国,1958年北京邮电学院研制了一台电子管单音电子琴。由于种

种原因,至1977年后,我国才大批生产电子琴。1989年,我国年产小朋友

电子琴200万台,并出口39万台。中国的电子琴事业正在迅速发展。

电子琴发展很快,琴的各项功能日趋完善。音色和节奏有最初的几种发

展到目前日勺几百种。除寄存音色外,还可通过插槽外接音色卡。合成器的

某些功能,如音色日勺编辑修改、自编节奏、多轨录音、演奏程序记忆等也

运用到电子琴上。

电子琴发明日勺意义

电子琴口勺发明具有重大的意义:

(一)电子琴的发明极大地推进了流行音乐的发展;

现代H勺流行音乐离不开电子琴,键盘手一般是现代电声乐队日勺中坚力

量。(单排键)电子琴、电吉他、架子鼓是流行音乐日勺三项主流乐器。

(二)电子琴日勺发明使人们可以演奏出未曾拥有的音色,丰富了人们情

感日勺体现;电子琴发明出了许多其他乐器无法演奏出的音色,甚至自然不

存在的音色,这些音色协助了人们通过音乐体现自己的情感,在诸多电视

节目或者音乐作品中均有运用。

(二)电子琴H勺发明推进了音乐I为普及,它让音乐真正成为了大众H勺音

乐,成为了人类社会不可缺乏的东西。电子琴是目前用于音乐普及教育和

音乐素质培养最多的乐器,它的经济性为他在一般家庭中口勺普及带来了也

许。

电子琴作为科技与音乐日勺产物,在信息化和电子化日勺时代,为音乐日勺大

众化做出了不可磨灭的奉献,现代歌曲日勺制作,诸多都需要电子琴才能完

毕,然后才通过媒介流传开来,电视剧电影插曲、电视节目音效、甚至你

日勺铃声,都很也许包括电子琴的身影。

1.2.3电子琴的电学原理

目前的电子琴一般使用PCM或AWM采样音源。所谓采样就是录制乐

器的声音,将其数字化后存入ROM里,然后按下键时CPU回放该音。甚

至有某些高级编曲键盘可以使用外置采样。现代电子琴并非“模仿”乐器音

色。它使用的就是真实乐器音色。当然,目前力度触感在电子琴里是必备

的。并且现代电子琴还加上了老式电子琴的滤波器,振荡器,包络线控制

来制造和编辑音色。甚至也带上了老式电子琴的FM合成机构。

1.3芯片简介

1.3.1LM3s2110微控制器

本次设计任务所要使用到的微控制器是德州仪器(TI)企业提供日勺

LM3S2110微控制器,这款微控制器是基于ARMCortex-M3内核的微控制

器,它为对成本尤其敏感的嵌入式微控制器应用方案带来了高性能日勺32位

运算能力。该Stellaris系列芯片可以提供高效日勺性能、广泛的集成功能以及

按照规定定位的选择,合用于多种关注成本并明确规定具有的过程控制以

及连接能力口勺应用方案。

ARMCortex-M3处理器内核

Cortex-M3内核重要是应用于小管脚数、低成本和低功耗日勺场所,并且

具有极高的运算能力和极强日勺中断响应能力。Cortex-M3采用了新型日勺单线

调试技术,专门拿出一种引脚来做调试,节省了大笔的调试工具费用。同

步,Cortex-M3可以直接在MCU外连接Flash,减少了设计难度和应用障

碍,因此其发展趋势亦不容小觑。

通用输入/输出端口(GPIO)

GPIO模块由8个物理GPIO模块构成,每个对应一种独立口勺GPIO端

口(端口A,端口B,端口C,端口D,端口E,端口F,端口G和端口H)o

GPIO模块遵照FiRM规范,并且支持11-40个可编程的输入/输出管脚,

详细取决于正在使用日勺外设。

脉宽调制器(PWM)

脉宽调制(PWM)是一项功能强大的技术,它是一种对模拟信号电平

进行数字化编码口勺措施°在脉宽调制中使用高辨别率计数器来产生方波.

并且可以通过调整方波的I占空比来对模拟信号电平进行编码。PWM一般使

用在开关电源和电机控制中。StellarisPWM模块由1个PWM发生器模块

1个控制模块构成。PWM发生器模块包括1个定期器,2个PWM比较器,

PWM信号发生器,死区发生器和中断选择器。而控制模块决定了PWM

信号的极性,以及将哪个信号传递到管脚。

PWM发生器模块产生两个PWM信号,这两个PWM信号可以是独立

的信号,也可以是一对插入了死区延迟日勺互补信号。PWM发生模块的输出

信号在传递到器件管脚之前由输出控制模块管理。

PWM模块具有极大日勺灵活性。它可以产生简朴的PWM信号,如简易

充电泵需要日勺信号;也可以产生带死区延迟日勺成对PWM信号,如供半・H

桥驱动电路使用的信号。

2综合设计内容

2.1综合设计题目

简易电子琴

2.2综合设计规定

重要内容

运用试验资源实现简易电子琴区I功能:

(1)用蜂鸣器发出不一样声音;

(2)使用LCD显示屏来显示音阶输入的有关信息;

(3)当按下键盘组相对按键,蜂鸣器会发出相对音阶单音,共有两个8

度音阶;

(4)至少可以输入16个单音,可以一起演奏出来:

(5)演奏时可以按键中断;

(6)可以实时显示目前演奏的单音码。

重要技术指标、规定

(1)充足运用自己设计的开发板的硬件的资源进行设计;

(2)通过调整PWM的周期,变化占空比生产不一样频率的信号;

(3)实现按键发出相对音阶单音:

(4)运用1602A动态显不音阶消息。

所用设备与器材

(1)ARM2110芯片

(2)4x4矩阵键盘

(3)单片机/嵌入式实践平台的功放模块(即蜂鸣器)

(4)1602LCD液晶显示屏

(5)LED灯模块

3硬件方案

3.1系统硬件的构成与原理

本次设计的简易电子琴系统重要使用到的硬件有LM3s2110微控制器、

独立按键、4x4矩阵键盘、LED灯模块、蜂鸣器、LCD液晶显示屏、电源

等。该系统口勺原理框图如图4.1所示,运用LM3s2110微控制器驱动液晶显

示屏、蜂鸣器和LED灯模块;使用独立按键来跳出、停止或启动蜂鸣器播

放音乐;使用矩阵键盘来实现简易电子琴的演奏功能;使用LED灯来显示

音阶。

3.2ARM2110开发板原理与应用

ARM2110开发板中包括一块LM3S2110微控制器,此外重要可以使用

日勺元器件有:1个RST键,4个独立按键,通用输入/输出端口(GPIO)。

该开发板的原理电路图见附录一。

LM3s2110特性概述

LM3S2110微控制器是针对工业应用方案而设计口勺,包括远程监控、

电子贩售机、测试和测量设备、网络设备和互换机、工厂自动化、HVAC

和建筑控制、游戏设备、运动控制、医疗器械、以及火警安防。

除此之外,该LM3S2110微控制器日勺优势还在于可以以便的I运用多种

ARM的开发工具和片上系统(SQC)日勺底层IP应用方案,以及广大的顾客

群体。此外,该微控制器使用了兼容ARM的Thumb指令集H勺Thumb2指

令集来减少存储容量H勺需求,并以此到达减少成本的目的。LM3s2110微控

制器与Stellaris系列的所有组员是代码兼容H勺,这为顾客提供了灵活性,可

以适应多种精确内需求。与此同步,它还提供杰出日勺计算性能和优越的系

统中断响应能力。总的来说,其特性包括:

(1)紧凑的内核;

(2)Thumb-2指令集,在一•般与8位和16位设备有关的存储容量中,

尤其是在微控制器级应用欧J几千字节存储量中,提供ARM内核所期望的

高性能;

(3)高速日勺应用通过Harvard构造执行,以独立指令和数据总线为特

性;

(4)优越的中断处理能力,通过执行寄存器操作来实现,这些寄存器

操作在处理硬件中断时使用;

(5)存储器保护单元(MPU)为复杂的应用提供特权操作模式;

(6)从ARM7TM控制器系列中移植过来,以获得更好的性能和电源

效率;

(7)功能齐全日勺调试处理方案有:串行线JTAG调试端口(SWJ-DP);

Flash修补和断点(FPB)单元,用于实现断点操作;数据观测点和触发

(DWT)单元,用于执行观测点、触发源和系统性能分析;仪表跟踪宏单

元(ITM),用于支持printf型调试;跟踪端口接口单元(TPIU)用作跟踪

端口分析仪的桥接。

LM3s2110的6冏0特性

GPIO模块由8个物理GPIO模块构成,每个对应一种独立的GPIO端

口(端口A,端口B,端口C,端口D,端口E,端口F,端口Q和端口H)o

GPIO模块遵照FiRM规范,并且支持11-4()个可编程的输入/输出管

脚,详细取决于正在使用日勺外设。GPIO模块具有如下的特性:

(1)可编程控制GPIO中断:屏蔽中断发生;边缘触发(上升沿,下

降沿,上升、下降沿);(高或低)电平触发U

(2)输入/输出可承受5V电压。

(3)在读和写操作中通过地址线进行位屏蔽。

(4)可编程控制GPIO引脚配置。

本次设计使用H勺开发板上口勺微控制器LM3S2110上可使用的引脚有

PAO〜PA6(7个)、PBO〜PB6(7个)、PC4〜PC7(4个)、PD0-PD7(8

个)、PEO〜PE1(2个)、PFO〜PF2(3个)、PGO〜PG1(2个)、PHO〜PH1

(2个)。

3.3独立按键

ARM2110开发板中有4个独立按键,其原理电路图如图3.1所示。这

四个独立按键——KEY1-KEY4各自的一端依次连接在微控制器

LM3S2110±.WPHKPB6、PB5、PB4四个引脚上。

3.3V

图3.14个独立按键电路图

根据图3.1可以看出,当这四个引脚中的某个引脚得到低电平时,代表

其相连口勺按键被按下,如:引脚PB4得到低电平就代表KEY4被按下。

3.4矩阵键盘

在键盘中按键数量较多时,为了减少I/O口的占用,一般将按键排列成

矩阵形式,如图3.2所示。在矩阵式键盘中,每条水平线和垂直线在交叉处

不直接连通,而是通过一种按键加以连接。这样,一种端口(如P1口)就

可以构成4*4=16个按犍,比之直接将端口线用于键盘多出了一倍,并且线

数越多,区别越明显。由此可见,在需要日勺键数比较多时,采用矩阵法来

做键盘是合理的。

矩阵式构造口勺键盘显然比直接法要复杂某些,识别也要复杂某些,上图

中,行线通过电阻接正电源,并将列线所接的单片机的I/O口作为输出端,

而行线所接的I/O口则作为输入。这样,当按键没有按下时,所有的输出

端都是高电平,代表无键按下。列线输出是低电平,一旦有键按下,则输

入线就会被拉低,这样,通过读入输入线的状态就可得知与否有键按下了。

图3.24x4矩阵键盘电路图

3.5蜂鸣器

蜂鸣器口勺原理电路图如图3.3所示,控制蜂鸣器的端口为PB1引脚,

当PB1引脚输入低电平时,蜂鸣器会鸣叫。由于蜂鸣器日勺工作电流一般比

较大,以致于MCU的I/O口是无法直接驱动的,因此要运用放大电路来驱

动,如图3.3所示,其中日勺三极管QI(805D)就是用来放大电流以驱动蜂

鸣器日勺。

图3.3蜂鸣器电路图

在嵌入式应用的设计上,诸多方案都会用到蜂鸣器,大部分都是使用

蜂鸣器来做提醒或报警,例如按键按下、开始工作、工作结束或是故障等

等。一般驱动蜂鸣器H勺方式有两种:一种是PWM输出口直接驱动,另一

种是运用I/O定期翻转电平产生驱动波形对蜂鸣器进行驱动。

本设计中就是使用了PWM输出口直接驱动的方式来驱动蜂鸣器,以

此来实现电子琴日勺发音功能。

PWM输出口直接驱动是运用PWM输出口自身可以输出一定的方波

来直接驱动蜂鸣器。只要打开PWM输出,PWM输出口就能输出该频率

的方波,这个时候运用这个波形就可以驱动蜂鸣器了。

3.6LED灯应用方式

LED即发光二极管,是一种固态日勺半导体器件,它可以直接把电转化

为光。LEDH勺心脏是一种半导体日勺晶片,晶片的一端附在一种支架上,一

端是负极,另一端连接电源的正极,使整个晶片被环氧树脂封装起来。半

导体晶片由两部分构成,一部分是P型半导体,在它里面空穴占主导地位,

另一端是N型半导体,在这边重要是电子。但这两种半导体连接起来的时

候,它们之间就形成一种“P-N结”。当电流通过导线作用于这个晶片一的时候,

电子就会被推向P区,在P区里电子跟空穴复合,然后就会以光子的形式

发出能量,这就是LED发光日勺原理。而光的波长决定光的颜色,是由形成

P-N结材料决定日勺。

3.3V

PF1,R9LED1H

4.7K

JJ

pj-2R2O

4.7KI.FO2

PBO[R21

4.7KLED3

//

R

PBI^—t

4.7K

//

PB2产‘

4.7KLED5

PB3.R:0_1I.ED6K

4.7K

PIS()R31

4?7TCLED7

//

pE4rR32_^LED8K

r4.7KJ

//

图3.4LED灯电路图

本设计试验中,有8个LED小灯,其原理电路图如图3.4所示。这8

个小灯——LED1〜LED8各自H勺负极连接了一种4.7K『、J电阻后依次连接在

微控制器LM3s2110上的JPA4、PA5、PA6、PG()、PF2、PGI、PE()、PE1

这8个引脚上,当这8个引脚中日勺某个引脚得到低电平时,其相连的ILED

小灯就会亮起。

3.71602字符液晶屏

1602液晶也叫1602字符型液晶它是一种专门用来显示字母、数字、符

号等日勺点阵型液晶模块它有若干个5X7或者5X11等点阵字符位构成,每

个点阵字符位都可以显示一种字符。

1602LCD特性及应用微功耗、体积小、显示内容丰富、超薄轻巧,

常用在袖珍式仪表和低功耗应用系统中。

由于1602设别口勺是ASCH码,试验可以用ASCII码直接赋值。

如TmASCII码值为“49”,可以直接赋值“49”到显示数字“「的效果。

ASCII值控制字符

32(space)

491

15PA350|2

DC14PA2

1x0

13PA551|3-

WK

12PA4

IpxnU524

p11PA6

Ixo153|5

10PDO

JLAJ|6

9PD154

M1

8PD255|7

PD3

UJ71G

6PD4

D472H

5PD5

D576L

4PD6

D6

3PD777M

D7

2GND38&

GND

13.3V

VCC3.387W

81Q

(a)(b)

图3.5(a)LCD液晶屏排针接口(b)试验中用到时对应ASCH码值

4软件方案

4.1设计原理框图

根据本次设计的规定和设计方案,需要实现简易电子琴系统必须在

ARM2110芯片日勺基础上加上电源电路、时钟电路、复位电路、矩阵键盘等

外设,通过LM3s211()微控制器写入程序控制蜂鸣器、LCD显示屏、LED

灯模块根据音阶发音或显示。设计原理框图如图4.1所示

ARM

Cortex—

M3

LM3S

2110

图4.1简易电子琴系统原理框图

4.2程序流程图

根据本次设计的规定和设计方案,最终实现了简易电子琴系统如下功

(1)独立按键KEY1控制音乐播放口勺停止和播放音乐与矩阵按键演奏

之间转换的功能。

(2)独立按键KEY2启动音乐1(一分钱)

(3)独立按键KEY3启动音乐2(剪发师)

(4)独立按键KEY4启动音乐3(梁祝)

(5)矩阵键盘实现电子琴演奏功能,16个按键依次通过蜂鸣器发出:

Ml、M2、M3、M4、M5、M6、M7、L5、Hl、H2、H3、H4、H5、

H6、L6、L7等音阶,并将音阶对应显示在LCD显示屏上。

(6)使用程序定义使得LED灯模块根据不一样音阶亮不一样灯的个

数,实现LED灯跳跃显示功能。

(7)通过ARM2110芯片复位键初始化程序,重新开始简易电子琴系

统。

程序流程图如图4.2所示。

根据音阶显

示好的个数

LED灯

图4.2程序流程图

4.3导线连接方案

试验过程中需要连接如下导线:

(1)矩阵键盘由上至下、由左向右依次连接:VCC、PAO、PAI、PA2、

PA3、悬空、PC4、PC5、PC6、PC7o

(2)LCD显示屏由上至下依次连接:PD0〜PD7,使能端连接PB0,

写入端连接PB2。

(3)LED灯模块依次连接:PA4、PA5、PA6、PGO、PF2、PG1、PE0、

PE1,电源连接3V。

(4)蜂鸣器模块信号输入管脚连接PB1,GND管脚连接ARM2110试

验板的地端。

4.4调试过程

在调试过程中,首先要做好硬件调试,然后再进行软硬件共同调试。

因此第一步需要检查各硬件口勺完好性,另一方面检测各芯片日勺电源线和地

线与否接触良好,接好电源后用万用表检测各电源端、地端日勺状态与否正

常。检查无误后通过烧写工作程序,根据显示现象调试程序直至成功。

在编写程序前,首先应当将各部分硬件原理所有理解,尤其重要的是

要掌握各元件的使能方式,是低电平使能还是高电平使能。当这些基础问

题都不再出错的时候,然后才能逐渐编写程序。

软件调试时,必须先编写某些简易程序来熟悉和掌握微控制器和开发

板欧I使用方式。在此过程中编写的简易程序有:单个按键控制单个LED灯、

矩阵键盘控制蜂鸣器、LED灯闪烁、LCD显示字符等。通过这些简朴功能

日勺实现,可以掌握ARM211()开发板的多种功能的实现措施和使用措施,如

GPIO输入输出口勺定义方式、写入读出的方式、使能和关闭使能的方式,从

而掌握了编程的基础,再根据平时C语言的基础,继续逐渐编写程序。

在完毕上述的软硬件调试后,逐渐进行系统软件设计。在整体的软件

设计时采用模块化口勺设计,首先加入矩阵键盘控制蜂鸣器模块发音功能,

然后根据音阶在LCD显示屏上显示所需字符,接着加入独立按键播放音乐

与停止、转换等功能,再后来添加LED灯模块使得电子琴功能更具有特色,

最终综合所有模块,最终完毕整个简易电子琴系统的设计。

5结束语

5.1设计总结与感想

本次基于ARM2I10H勺简易电子琴系统的设计最终做到了使用矩阵键

盘演奏16个音阶,使用独立按键播放音乐,并用KEY1键实现停止、转换

功能,同步加入LCD显示屏、LED灯的特色。本次设计是一种简易的、较

为完善的电子琴系统,其操作措施简朴,显示效果简洁、明了而合理,成

本较低,它将适合于大众化的使用。

我从本次嵌入式综合设计中学到了诸多,对于嵌入式系统有了更深入

日勺理解与应用。通过模块化的设计过程我对ARM21I0芯片的知识有了理

解,并且能在原始程序日勺基础上做小时改动,使其更合用于简易电子琴系

统,对于书本知识也有了实战性操作,在此过程中我的J应用知识能力、设

计能力、调试能力以及汇报撰写能力等方面有了明显提高。

5.2答谢词

在几种星期内学习和实践中,起初我充•简易电子琴系统日勺概念一无所

知,在XX老师、XXX老师日勺讲解与指导下,我参照了了大量日勺资料和

程序,并开始尝试一次一次日勺试验。在XX同学的协助下,我慢慢开始理

解整个设计日勺重点知识,并且有了初步的试验成果。

在完毕简易电子琴系统基本功能的时候我感觉自己已经到达了规定,

不过在XX老师与其他同学口勺支持下,又开始了拓展功能的开发,使得自

己的电子琴愈加独具特色。

在本次设计制作的期间,XX老师和XXX老师予以了我很大日勺协助,

假如没有他们的谆谆教导和循循善诱,我也许会一筹莫展许久,不过有了

他们的引导,使我能在毫无基础的状况下,用短短几周的时间不仅实现了

简易电子琴系统的基本功能,并使其拥有属于自己的亮点。除此之外,尚

有XXX同学也予以我很大日勺协助,,他们身体力行帮我处理困难,及时地

帮我指出错误,让我少走诸多弯路。在此,我要对他们体现诚挚於J谢意:

谢谢你们!

参照文献

[1]周立功.ARM嵌入式系统基础教程(第2版)[M].北京:北京航空航天大学出版社,

2023

[2]姚文详.ARMCortex-M3权威指南[M].北京:北京航空航天大学出版社,2023

[3]陈明荧.8051单片机课程设计实训教材[M].北京:清华大学出版社,2023

[4]魏洪兴.周亦敏.嵌入式系统设计与实例开发试验教材川M].北京:清华大学出版

社,2023

[5]江力.单片机原理与应用技术[M].北京:清华大学出版社,2023

网LuminaryMicro企业.LM3sli38微控制器数据手册[M].2023/2023

[7]王福瑞等.单片微机测及系统设计大全[M].北京:北京航空航天大学出版社,2023

[8]赵星寒.从51到ARM:32位嵌入式系统入门[M].北京:北京航空航天大学出版

社,2023

⑼彭伟等.单片机经典系统设计实例精讲[M].北京:清华大学出版社,2023

[10]百度百科.电子琴[DB].

附录一ARM2110芯片

0O

T

S-

O

OO

O0

O0

O0

Q0

O0

O0

O0

S2

i

l・U・l7RMRI5R9C4JI^IQQlQl

KEY!KEY2KEY3KEY-

电.',F/K*

三国向阿他3tmMT,,

国产辞........:il-oli

。屈§1周加同m同iJfilljlRl希同曲向同同同同国

.,以■艮®",⑵。旧中&|如/J日国党以玲y

1X01LC02LC03LC04(XML£MLC07L£M

附录二4x4矩阵键盘

附录三蜂鸣器模块

附录四LCD显示屏

附录五LED灯模块

附录六试验成果图

附录七程序清单

1.头文献

#include"systcmlnit.h"

#inckide"buzzer.h"

#include"music.h"

#includeMsystemlnit.h"

#defineIcdenGPIO_PIN_0//PBO;

#defineIcdrsGPIO_PIN_2//PB2;

2.定义LED

#defineLED1PERIPHSYSCTLPERIPHGPIOA

#clefineLED1PORTGPIOPORTABASE

#defineLED1PINGPIOPIN4

3.定义KEY

#defineKEYPERIPH2SYSCTLPERIPHGPIOB

#defineKEYPORT2GPIOPORTBBASE

#defineKEYPIN2GPIO_PIN_6|GPIO_PIN_5|GPIO_PIN_4

4.LCD模块使能

voidwrite_com(unsignedcharcom)〃写命令

{GPIOPinWrite(GPIO_PORTB_BASE,lcdrs,OxOO);//lcdrs=0;

GPIOPinWrite(GPIO_PORTD_BASE,GPIO_PIN_0|GPIO_PIN_l|GPIO_PIN_

2|GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7,com);

SysCllDelay(5*(TheSysClock/4000));//廷时5ms

GPIOPinWrite(GPIO_PORTB_BASEJcden,OxFF);//lcden=l;

SysCtlDelay(5*(TheSysClock/4000));

GP!OPinWritc(GP10_PORTB_BASEJcdcn,OxOO);//lcdcn=0;

)

voidwrite_data(unsignedchardate)

{GPIOPinWrite(GPIO_PORTB_BASE,lcdrs,OxFF);//lcdrs=1;

GPIOPinWrite(GPIO_PORTD_BASE,GPIO_PIN_0|GPIO_PIN_l|GPIO_PIN_

2|GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7,date);

SysCtlDelay(5*(TheSysClock/4000));

GPIOPinWrite(GPIO_PORTB_BASE,lcden,OxFF);//lcden=1;

SysCtlDelay(5*(TheSysClock/4000));

GPIOPinWrite(GPIO_PORTB_BASE,lcden,OxOO);//lcden=0;

)

voidinit()

{SysCtlPeriEnable(SYSCTL_PERIPH_GPIOD);〃使能A端口

GPIOPinTypeOut(GPIO_PORTD_BASE,

GPIOPIN0|GPIOPIN1|GPIOPIN2|GPIOPIN3|GPIOPIN4|GPIOPI

N_5|GPIO_PIN_6|GPIO_PIN_7);

SysCtlPeriEnable(SYSCTL_PERIPH_GPIOB);

GPIOPinTypeOut(GPIO_PORTB_BASE,GPIO_PIN_0|GPIO_PIN_2);

GPIOPinWrite(GPIO_PORTB_BASE,lcden,OxOO);//lcden=0;

write_com(0x38);

writc_com(0x0c);

write_com(0x06);

write_com(0x01);//在开始清屏

write_com(0x80+0xl0);〃数据指针地址

)

5.LCD显示

write_com(()x82);//设定上排时显示位置

write_data(32);//空格

write_data(32);//空格

write_data(32);//空格

write_data(32);//空格

write_data(32);〃空格

writc_data(77);〃整型数据转换为ASC2//M

write_data(54);〃整型数据转换为ASC2//6

write_data(32);〃空格

write_data(32);〃空格

write_data(32);〃空格

write_data(32);//空格

write_data(32);〃空格

writc_data(32);〃空格

SysCtlDclay(100*(TheSysClock/4000));

buzzerQuiet();

6.LED灯模块

GPlOPinWrite(LED1_PORT,LED1_PIN,0x00);//点亮LED

GPlOPinWrite(LED2_PORT,LED2_PIN,OxFF);//熄灭LED

GPIOPinWritc(LED3_PORT,LED3_PIN,OxFF);

GPIOPinWrite(LED4_PORT,LED4_PIN,OxFF);

GPIOPinWrite(LED5_PORT,LED5_PIN,OxFF);

GPIOPinWrite(LED6_PORT,LED6_PIN,OxFF);

GPIOPinWrite(LED7_PORT,LED7_PIN,OxFF);

GPIOPinWrite(LED8_PORT,LED8_PIN,OxFF);

如下为主函数main.c可以不写入试验汇报,仅供参照

#include"systemlnit.h"

#includc"buzzcr.h,,

#include"music.h"

#include"systemlnit.h"

#defineIcdenGPIO_PIN_0//PBO;

#defineIcdrsGPIO_PIN_2//PB2;

//定义LED

#dcfineLEDl.PERIPHSYSCTL_PERIPH_GPIOA

#dcfineLED1.PORTGPIO_PORTA_BASE

#dcfineLED1_PINGP1O_PIN_4

#defineLED2_PERIPHSYSCTL_PERIPH_GPIOA

#defineLED2_PORTGPIO_PORTA_BASE

#defineLED2.PINGPIO_PIN_5

#defineLED3_PERIPHSYSCTL_PERIPH_GPIOA

#dcfincLED3PORTGPIOPORTABASE

#dcfineLED3_PINGPIO_PIN_6

#defineLED4_PERIPHSYSCTL_PERIPH_GPIOG

#defineLED4_P0RTGPIO_PORTG_BASE

#defineLED4_PINGPIO_PIN_D

#defineLED5_PERIPHSYSCTL_PERIPH_GPIOF

#defineLED5_P0RTGPIO_PORTF_BASE

#defineLED5_PINGPI0_PIN_2

#defineLED6_PERIPHSYSCTL_PER1PH_GPIOG

#dcfineLED6_P0RTGPIO_PORTG_BASE

#dcfineLED6_PINGPIO_PIN」

#defineLED7_PERIPHSYSCTL_PERIPH_GPIOE

#defineLED7_P0RTGPIO_PORTE_BASE

#defineLED7_PINGPIO_PIN_D

#defineLED8_PERIPHSYSCTL_PERIPH_GPIOE

#defineLED8_P0RTGPIO_PORTE_BASE

#defineLED8_PINGPIO_PIN_1

//定义KEY

#defineKEYPERIPH2SYSCTLPERIPHGPIOB

#dcfineKEY_P0RT2GP1O_PORTB_BASE

#defineKEY_PIN2GPiO_PIN_6|GPI()_PIN_5|GPIO_PIN_4

〃连接方式矩阵键盘的行线接PC4~7列线接PAO〜3

unsignedchardata;//PDO-PD7;

unsignedcharnum;

intguan;

intjian;

in(nuinm;//lcd显示模块技术

//led模块

voidwrite_com(unsignedcharcom)〃写命令

{

GPIOPinWrite(GPIO_PORTB_BASEJcdrs,OxOO);//lcdrs=O;

GPIOPinWrite(GPIO_PORTD_BASE,GPiO_PIN_0|GPIO_PIN_l|GPIO_PIN_2|

GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7,com)^/PD=com;

SysCtlDelay(5*(TheSysClock/4(X)0));//延时5ms

GPIOPinWrite(GPIO_PORTB_BASE,lcden,OxFF);//lcden=I;

SysCtlDelay(5*(TheSysClock/4000));

GPIOPinWrite(GPIO_PORTB_BASE,lcden,OxOO);//lcdcn=O;

voidwrite_data(unsignedchardate)

(

GPIOPinWrite(GPIO_PORTB_BASE,lcdrs,OxFF);//lcdrs=1;

GPIOPinWrite(GPIO_PORTD_BASE.GPIO_PIN_0|GPIO_PIN_l|GPIO_PIN_2|

GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7.date);//PD=date;

SysCtlDclay(55t(TheSysClock/4000));

GPIOPinWritc(GPlO_P()RTB_BASE,lcdcn,0xFF);//lcdcn=l;

SysCdDelay(5*(TheSysClock/4000));

GPIOPinWrite(GPIO_PORTB_BASE,lcden,OxOO);//lcden=0;

)

voidinit()

(

SysCUPer正nable(SYSCTL_PERIPH_GPIOD);〃使能A端口

GPIOPinTypeOut(GPIO_PORTD_BASE,

GPIO_PIN_0|GPIO_P1N_1|GPIO_PIN_2|

GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7);

SysCtlPeriEnable(SYSCTL_PERIPH_GPIOB);

GPIOPinTypeOu((GPIO_PORTB_BASE,GPIO_PIN_0|GPIO_PIN_2);

GPIOPinWrite(GPIO_PORTB_BASEJcden,OxOO);//lcden=O;

write_com(0x38);

write_coni(OxOc);

write_com(0x06);

write_com(0x01);//在开始清屏

write_com(0x80+0x10);〃数据指针地址

)

〃lcd模块结束,矩阵键盘模块开始

unsignedcharKeyScan(void)

{if(GPIOPinRead(KEY_PORT2,KEY.PIN2)==0x30)//假如按下KEY2

{num=17;

returnnum;

elseif(GPIOPinRcacKKEYPORT2.KEYPIN2)==0x50)//假如按下

KEY3

num=!8;

returnnum;

elseif(GPIOPinRead(KEY_PORT2,KEY_PIN2)==0x60)//假如按下

KEY4

nuin=16;

returnnum;

GPIOPinTypeOut(GPlO_PORTC_BASE,GPlO_PIN_4|GP1O_PIN_5|

GPIO_PIN_6|GPIO_PIN_7);

GPIOPinTypcOut(GPIO_PORTA_BASE,GPIO_PIN_()|GP1O_PIN_1|

GPIO_PIN_2|GPIO_PIN_3);

GPIOPinWrite(GPIO_PORTC_BASE,GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6|

GPIO_PIN_7,OXTO);

GPIOPinWrite(GPIO_P

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论