嵌入式简易电子琴系统设计报告(编辑修改稿)内容摘要:

调试,然后再进行软硬件共同调试。 所以 第一步需要检查 各 硬件 的完好性,其次检测各芯片的电源线和地线是否接触良好,接好电源 后 用万用表检测各电源端、地端的状态是否正常。 检查无误后通过烧写工作程序, 根据显示现象调试程序直至成功。 在编写程序前,首先应该将各部分硬件原理全部理解,尤其重要的是要掌握各元件的使能方式,是低电平使能还是高电平使能。 当这些基础问题都不再出错的时候,然后才能逐步编写程序。 软件调试时,必须先编写一些简易程序来熟悉和掌握微控制器和开发板的使用方式。 在此过程中编写的简易程序有:单个按键控制单个 LED 灯、矩阵键盘 控制蜂鸣器、 LED 灯闪烁、 LCD 显示字符 等。 通过这些简单功能的实现,可以掌握 ARM2110 开发板的各种功能的实现方法和使用方法,如GPIO 输入输出的定义方式、写入读出的方式、使 能和关闭使能的方式,从而掌握了编程的基础,再根据平时 C 语言的基础,继续逐步编写程序。 在完成上述的软硬件调试后,逐步进行系统软件设计。 在整体的软件设计时采用模块化的设计, 首先加入矩阵键盘控制蜂鸣器模块发音功能,然后根据音阶在 LCD 显示屏上显示所需字符,接着加入独立按键播放音乐与停止、转换等功能 , 再后来添加 LED 灯模块使得电子琴功能更具有特色,最后综合所有模块,最终完成整个 简易电子琴系统的 设计。 14 XXX:简易电子琴系统 5 结束语 设计总结与感想 本次基于 ARM2110 的 简易电子琴系统的 设计最终做到了 使用矩 阵键盘演奏 16 个音阶,使用独立按键播放音乐,并用 KEY1 键实现停止、转换功能,同时加入 LCD 显示屏、 LED 灯的特色。 本次设计是一个简易的、较为完善的 电子琴系统 ,其操作方法简单,显示效果简洁、明了而合理,成本较低,它将适合于 大众化 的使用。 我从本次嵌入式综合设计中学到了很多,对于嵌入式系统有了更深入的了解与应用。 通过模块化的设计过程我对 ARM2110 芯片的知识有了了解,并且能在原始程序的基础上做小的改动, 使其更适用于简易电子琴系统, 对于课本知识也有了实战性操作,在此过程中我的应用知识能力、设计能力、调试能力以 及报告撰写能力等方面有了显著提高。 答谢词 在几个 星期 的学习和 实践 中,起初我对 简易电子琴系统 的概念 一无所知, 在 XX 老师、 XXX 老师的讲解与指导下, 我 参考了 了大量的资料 和程序 ,并开始尝试一次一次的实验。 在 XX 同学的帮助下 ,我 慢慢开始了解 整个设计的 重点 知识,并且有了初步的实验成果。 在完成简易电子琴系统基本功能的时候我感觉自己已经达到了要求,但是在 XX 老师与 其他 同学的支持下,又开始了拓展功能的开发,使得自己的电子琴更加独具特色。 在本次设计制作的期间, XX 老师 和 XXX 老师 给予了我 很大 的帮助,如果没有他 们 的 谆谆教导和循循善诱,我可能会 一筹莫展许久,但是有了他们的引导,使我能在毫无基础的情况下,用短短几周的时间不仅实现了简易电子琴系统的基本功能,并使其拥有属于自己的亮点。 除此之外,还有 XXX 同学也给予我很大的帮助, ,他们身体力行帮我解决困难,及时 地帮我指出错误,让我少走很多弯路。 在此,我要对他们表达真挚的谢意:谢谢你们。 上海师范 大学 天华学院电子工程系 ARM 综合设计 15 参考文献 [1] 周立功 .ARM 嵌入式系统基础教程 (第 2 版 )[M].北京 :北京航空航天大学出版社 , 2020 [2] 姚文详 .ARM CortexM3 权威指南 [M].北京 :北京航空航天大学出 版社 ,2020 [3] 陈明荧 .8051 单片机课程设计实训教材 [M].北京 :清华大学出版社 ,2020 [4] 魏洪兴 .周亦敏 .嵌入式系统设计与实例开发实验教材 II[M].北京 :清华大学出版社 ,2020 [5] 江力 .单片机原理与应用技术 [M].北京 :清华大学出版社 ,2020 [6] Luminary Micro 公司 .LM3S1138 微控制器数据手册 [M].2020/2020 [7] 王福瑞等 .单片微机测控系统设计大全 [M].北京 :北京航空航天大学出版社 ,2020 [8] 赵星寒 .从 51 到 ARM:32 位嵌入式 系统入门 [M].北京 :北京航空航天大学出版社 ,2020 [9] 彭伟等 .单片机典型系统设计实例精讲 [M].北京 :清华大学出版社 ,2020 [10]百度百科 .电 子琴 [ DB] . 16 XXX:简易电子琴系统 附录 一 ARM 2110 芯片 附录二 44 矩阵键盘 上海师范 大学 天华学院电子工程系 ARM 综合设计 17 附录三 蜂鸣器模块 附录四 LCD 显示屏 18 XXX:简易电子琴系统 附录五 LED 灯模块 附录六 实验成果图 上海师范 大学 天华学院电子工程系 ARM 综合设计 19 附录七 程序清单 include include include include define lcden GPIO_PIN_0 //PB0。 define lcdrs GPIO_PIN_2 //PB2。 LED define LED1_PERIPH SYSCTL_PERIPH_GPIOA define LED1_PORT GPIO_PORTA_BASE define LED1_PIN GPIO_PIN_4 KEY define KEY_PERIPH2 SYSCTL_PERIPH_GPIOB define KEY_PORT2 GPIO_PORTB_BASE define KEY_PIN2 GPIO_PIN_6|GPIO_PIN_5|GPIO_PIN_4 模块 使能 void write_(unsigned char ) //写命令 {GPIOPinWrite(GPIO_PORTB_BASE,lcdrs,0x00)。 // lcdrs=0。 GPIOPinWrite(GPIO_PORTD_BASE,GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7,)。 SysCtlDelay(5 * (TheSysClock / 4000))。 // 延时 5ms GPIOPinWrite(GPIO_PORTB_BASE,lcden,0xFF)。 // lcden=1。 SysCtlDelay(5 * (TheSysClock / 4000))。 GPIOPinWrite(GPIO_PORTB_BASE,lcden,0x00)。 // lcden=0。 20 XXX:简易电子琴系统 } void write_data(unsigned char date) {GPIOPinWrite(GPIO_PORTB_BASE,lcdrs,0xFF)。 // lcdrs=1。 GPIOPinWrite(GPIO_PORTD_BASE,GPIO_PIN_0|GPIO_PIN_1|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,0xFF)。 // lcden=1。 SysCtlDelay(5 * (TheSysClock / 4000))。 GPIOPinWrite(GPIO_PORTB_BASE,lcden,0x00)。 // lcden=0。 } void init() {SysCtlPeriEnable(SYSCTL_PERIPH_GPIOD)。 //使能 A 端口 GPIOPinTypeOut(GPIO_PORTD_BASE, GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_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,0x00)。 // lcden=0。 write_(0x38)。 write_(0x0c)。 write_(0x06)。 write_(0x01)。 // 在开始清屏 write_(0x80+0x10)。 //数据指针地址 } 显示 write_(0x82)。 //设定上排的显示位置 write_data(32)。 // 空格 write_data(32)。 // 空格 write_data(32)。 // 空格 上海师范 大学 天华学院电子工程系 ARM 综合设计 21 write_data(32)。 // 空格 write_data(32)。 // 空格 write_data(77)。 //整型数据转换为 ASC2//M write_data(54)。 //整型数据转换为 ASC2 //6 write_data(32)。 // 空格 write_data(32)。 // 空格 write_data(32)。 // 空格 write_data(32)。 // 空格 write_data(32)。 // 空格 write_data(32)。 // 空格 SysCtlDelay(100 * (TheSysClock / 4000))。 buzzerQuiet()。 灯模块 GPIOPinWrite(LED1_PORT, LED1_PIN, 0x00)。 // 点亮 LED GPIOPinWrite(LED2_PORT, LED2_PIN, 0xFF)。 // 熄灭 LED GPIOPinWrite(LED3_PORT, LED3_PIN, 0xFF)。 GPIOPinWrite(LED4_PORT, LED4_PIN, 0xFF)。 GPIOPinWrite(LED5_PORT, LED5_PIN, 0xFF)。 GPIOPinWrite(LED6_PORT, LED6_PIN, 0xFF)。 GPIOPinWrite(LED7_PORT, LED7_PIN, 0xFF)。 GPIOPinWrite(LED8_PORT, LED8_PIN, 0xFF)。 22 XXX:简易电子琴系统 以下为主函数 可以不写入实验报告,仅供参考 include include include include define lcden GPIO_PIN_0 //PB0。 define lcdrs GPIO_PIN_2 //PB2。 // 定义 LED define LED1_PERIPH SYSCTL_PERIPH_GPIOA define LED1_PORT GPIO_PORTA_BASE define LED1_PIN GPIO_PIN_4 define LED2_PERIPH SYSCTL_PERIPH_GPIOA define LED2_PORT GPIO_PORTA_BASE define LED2_PIN GPIO_PIN_5 define LED3_PERIPH SYSCTL_PERIPH_GPIOA define LED3_PORT GPIO_PORTA_BASE define LED3_PIN GPIO_PIN_6 define LED4_PERIPH SYSCTL_PERIPH_GPIOG define LED4_PORT GPIO_PORTG_BASE define LED4_PIN GPIO_PIN_0 define LED5_PERIPH SYSCTL_PERIPH_GPIOF define LED5_PORT GPIO_PORTF_BASE define LED5_PIN GPIO_PIN_2 define LED6_PERIPH。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。