CPLD单片机定时器音乐播放器

合集下载

毕业设计(论文)-基于单片机控制的音乐播放器[管理资料]

毕业设计(论文)-基于单片机控制的音乐播放器[管理资料]

单片机音乐播放器设计报告学生:XXX 指导教师:XXX内容摘要:单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。

根据要求设计一款音乐播放器,能实现音乐播放的简单功能,同时为了美化,添加了韵律闪烁彩灯,设计时采用Keil软件编程,用protues软件仿真,核心器件采用灵活性高且价格低廉的AT89C51芯片。

设计完成后系统可播放自编歌曲,同时发光二极管随着歌曲韵律闪烁。

关键词:单片机 AT89C51 音乐播放英文标题Abstract: SCM has small, strong function, low cost, application, advantages and intelligent control and automatic control of the core is the microcontroller. According to the requirements of a music player, design of music broadcast can realize simple function, and to beautify, added rhythm flashing lights, design is used when Keil C software programming, with protues software simulation, the core device adopts high flexibility and the price is cheap AT89C51 chip. The design is completed system can play Wrote songs, and leds with songs rhythm flicker.Keywords:SCM Temperature AT89C51 Music broadcast前言:微机原理和接口技术是一门实践性强的学科,不但要求有较高的理论水平,而且还要求有实际的动手能力,其中很多的原量、规则、现象等仅仅靠学习教科书是无法完全掌握的,必须通过实践才能比较直观和深刻的理解。

音乐播放器-单片机课程设计

音乐播放器-单片机课程设计

设计内容与设计要求设计内容:本课题要求以单片机为核心设计一个音乐播放器,完成多曲选择播放控制、停止控制、省电模式控制等功能。

音乐播放器利用单片机的定时器产生乐谱的各种频率方波,信号经过放大后由喇叭发出声音,选取某段音乐使单片机连续播放。

设计3个按键:播放/停止、下一曲、上一曲;4位LED 显示器,用来显示所选曲目,该显示器在播放期间为了节省电源,设计为关闭状态,当一歌曲演奏结束,或选曲时显示器才显示曲目信息。

要求焊接好开发板,在开发板上进行调试。

设计要求:1)确定系统设计方案;2)进行系统的硬件设计;3)完成必要元器件选择;4)开发板焊接及测试5)系统软件设计及调试;6)系统联调及操作说明7)写说明书主要设计条件1、MCS-51单片机实验操作台1台;2、PC机及单片机调试软件,仿真软件proteus;3、开发板1块;4、制作工具1套;5、系统设计所需的元器件。

说明书格式目录第1章、概述第2章、系统总体方案设计第3章硬件设计第4章软件设计及调试第5章系统联调及操作说明第6章总结参考文献附录A系统硬件原理图附录B程序清单进度安排设计时间分为二周第一周星期一、上午:布置课题任务,课题介绍及讲课。

下午:借阅有关资料,总体方案讨论。

星期二、分班级焊接开发板星期三、确定总体方案,学习与设计相关内容。

星期四、各部分方案设计,各部分设计。

星期五、设计及上机调试。

星期六、设计并调试第二周星期一:设计及上机调试。

星期二:调试,中期检查。

星期三:调试、写说明书。

星期四--星期五上午:写说明书、完成电子版并打印成稿。

星期五下午:答辩。

参考文献参考文献1、王迎旭编.《单片机原理与应用》[M].机械工业出版社.2、楼然苗编.《51系列单片机设计实例》[M].北京航空航天大学出版社.3、黄勤编.《计算机硬件技术基础实验教程》[M].重庆大学出版社4、刘乐善编.《微型计算机接口技术及应用》[M].华中科技大学出版社.5、陈光东编.《单片微型计算机原理及接口技术》[M].华中科技大学出版社.第1章概述... ... ... ... ... ... ... ... .. .. . 61.1单片机简介... ... ... ... .. ... ... ... (6)1.2 任务简介. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7第2章系统总体方案设计 (8)2.1 音乐的产生... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .82.2 系统方案. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 10第3章硬件设计 (11)3.1 89C51单片机 (12)3.2 I/O并行口直接驱动LED显示 (14)3.3 蜂鸣电路. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .153.4控键电路.. . . . . . . . . . . . . . . . . . .163.5时钟电路 . . . . . . . . . . . . . . . . .. .173.6电源电路 . . . . . . . . . . . . . . . . . . 17 第4章软件设计 (18)4.1.软件设计 (18)4.2 设计方案. . . . . . . . . . . . .. . . . . . . . . . . . . .. . . . . . .. . . . .19第5章系统调试与仿真 (20)5.1软件仿真阶段 (20)5.2系统的仿真调试阶段 (20)5.3调试问题处理 (21)第6章心得体会 (22)参考文献 (23)附录A:音乐播放器电路设计图 (24)附录B:程序清单 (25)第1章概述1.1单片机简介单片机又称单片微控制器,它不是完成某一逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。

单片机音乐播放器开题报告

单片机音乐播放器开题报告

单片机音乐播放器开题报告单片机音乐播放器开题报告一、引言音乐是人们生活中不可或缺的一部分,而音乐播放器则是人们享受音乐的重要工具。

随着科技的不断发展,音乐播放器也从最初的磁带式、CD式,逐渐演变为数字化的MP3、MP4等形式。

然而,市面上的音乐播放器功能繁多,价格也各不相同,对于一些对音质要求不高,只想简单听歌的用户来说,这些播放器过于复杂且昂贵。

因此,我们决定设计一款简单实用、价格适中的单片机音乐播放器。

二、项目背景目前市场上的音乐播放器大多采用了复杂的操作系统,功能繁多,造成了用户在使用时的困扰。

而单片机音乐播放器则是一种基于单片机的音乐播放设备,它以简单易用、功能实用为特点,适合那些对音质要求不高,只想简单听歌的用户。

通过对市场调研和用户需求分析,我们认为单片机音乐播放器有着广阔的市场前景。

三、项目目标我们的目标是设计一款简单实用、价格适中的单片机音乐播放器,以满足用户对音乐播放的基本需求。

具体目标如下:1. 支持常见音频格式,如MP3、WAV等。

2. 提供简单的操作界面,方便用户使用。

3. 支持音量调节、歌曲切换等基本功能。

4. 具备耳机输出和扬声器输出两种音频输出方式。

5. 采用低功耗设计,延长电池使用寿命。

6. 价格适中,以满足大众用户的购买需求。

四、项目方案1. 硬件设计我们将采用一块单片机作为核心控制器,通过外部存储器存储音频文件,并通过DAC芯片将数字信号转换为模拟信号输出。

同时,我们将设计一个简单的按键控制电路,用于用户操作。

此外,为了满足不同用户的音频输出需求,我们还将设计耳机输出和扬声器输出两种音频输出方式。

2. 软件设计在软件设计方面,我们将编写一套简单的程序,用于控制单片机音乐播放器的各项功能。

该程序将包括音频文件的读取、解码、播放等功能,同时还将设计一个简单的用户界面,方便用户进行操作。

为了提高音质和减少功耗,我们还将对程序进行优化,确保音乐播放器的性能和稳定性。

五、项目进度计划1. 前期准备阶段(1周)- 进行市场调研,了解用户需求。

单片机音乐原理

单片机音乐原理

单片机音乐原理
单片机音乐原理是指通过单片机控制音源发出不同的音符,以实现音乐的播放。

它主要包括音乐存储、音符输出和控制过程三个部分。

首先,音乐存储是指将音乐数据存储到单片机中。

一般来说,音乐数据是以midi 格式存储的,midi格式是一种数字音乐文件格式,其中包含了音符、音高、音长等音乐元素。

单片机通常会使用SPI接口或者SD卡接口等方式读取音乐数据,并将其存储到内部的寄存器或者外部存储器中。

其次,音符输出是指将存储的音乐数据经过处理后输出到音源中。

单片机通常会通过定时器/计数器模块来实现音符的输出。

定时器/计数器模块可以产生固定频率的时钟信号,并且可以通过设置计数值的大小来调节时钟信号的频率。

在音符输出过程中,单片机会根据存储的音乐数据设置相应的计数值,从而输出不同的频率。

最后,控制过程是指单片机控制音乐播放的过程。

单片机可以通过外部按键、编码器、蓝牙模块等方式接收用户的控制信号,根据用户的操作来控制音乐的播放。

例如,当用户按下某个按键时,单片机可以根据预设的逻辑判断是否需要切换音乐,调节音量等。

总的来说,单片机音乐原理主要包括音乐存储、音符输出和控制过程三个部分。

通过存储音乐数据,将其输出到音源中,然后通过控制过程来控制音乐的播放,
最终实现了单片机音乐的功能。

这种原理在很多电子琴、音频播放器等设备中都得到了广泛的应用。

单片机音乐播放器课程设计

单片机音乐播放器课程设计

单片机音乐播放器课程设计一、课程目标知识目标:1. 理解单片机的基础知识,掌握其内部结构与工作原理;2. 学会使用C语言编写单片机程序,实现音乐播放器的功能;3. 了解音乐播放器的基本组成部分,如音符产生、音调控制等;4. 掌握音乐理论知识,能将简单的乐谱转换为单片机程序。

技能目标:1. 能够运用所学知识,设计并实现一个具有基础音乐播放功能的单片机系统;2. 熟练使用编程软件进行单片机程序编写、调试与优化;3. 学会使用相关工具和仪器,进行电路搭建、测试与故障排查。

情感态度价值观目标:1. 培养学生对单片机及电子制作的兴趣,激发创新精神;2. 培养学生的团队协作能力,学会与他人共同解决问题;3. 增强学生的自信心,敢于面对挑战,勇于克服困难;4. 培养学生的责任心,关注环境保护,养成良好的操作习惯。

课程性质:本课程为实践性较强的课程,以项目为导向,结合单片机原理与应用,培养学生的动手能力和创新能力。

学生特点:本课程针对高中年级学生,学生具备一定的物理、数学基础,对电子制作有一定兴趣,但编程能力参差不齐。

教学要求:教师需结合学生特点,采用循序渐进的教学方法,注重理论与实践相结合,关注个体差异,提高学生的实践操作能力。

在教学过程中,注重引导学生思考,激发学生的学习兴趣,培养其创新精神。

通过课程学习,使学生能够独立完成一个简单的单片机音乐播放器设计。

二、教学内容1. 单片机基础知识:介绍单片机的内部结构、工作原理、性能特点,引导学生了解并掌握单片机的基本概念。

教材章节:第一章 单片机概述2. C语言编程基础:讲解C语言的基本语法、数据类型、运算符、控制结构等,为学生编写单片机程序奠定基础。

教材章节:第二章 C语言基础3. 单片机程序设计与调试:学习如何使用编程软件进行程序编写、调试与优化,掌握单片机程序的开发流程。

教材章节:第三章 单片机程序设计与调试4. 音频信号处理:介绍音频信号的基本知识,如音符、音调、节拍等,学习如何将乐谱转换为单片机程序。

单片机音乐播放器(两只老虎)

单片机音乐播放器(两只老虎)

;sing a song//T0定时中断控制音符,T1定时中断控制节拍,基准定时50msTH1_DA TA EQU 03CHTL1_DA TA EQU 0B0HYINFU EQU 30HJIEPAI EQU 31HBUZZER BIT P1.0ORG 0000HAJMP STARTORG 000BHAJMP INT_T0 ;控制音符(音调)ORG 001BHAJMP INT_T1 ;控制节拍(音符持续时间)ORG 0100HSTART:MOV SP, #60HMOV TMOD, #11H //定时器T0/T1都是方式1MOV R2, #0 ;取歌曲音符和节拍的偏移量MOV A, R2MOV DPTR, #TABLE_SONGMOVC A, @A+DPTR ;取歌曲音符MOV YINFU, AMOV DPTR, #TABLE_TH0MOVC A, @A+DPTR ;取音符对应定时器T0的初始值MOV TH0, AMOV A, YINFUMOV DPTR, #TABLE_TL0MOVC A, @A+DPTRMOV TL0, AMOV A, R2MOV DPTR, #TABLE_LENGTHMOVC A, @A+DPTR ;取该音符对应的节拍MOV JIEPAI, AMOV TH1, #TH1_DA TA ;节拍基准定时50ms(12MHz晶振)MOV TL1, #TL1_DA TASETB PT1 ;设置节拍中断为高优先级中断SETB ET0SETB ET1SETB EASETB TR0SETB TR1SJMP $;--------------------------------------------------------;控制音符的定时中断,依据R2的值决定取歌曲中哪个音符;读到音符为0代表歌曲结束,则关中断,停止定时器。

否则继续;根据读到的音符查表选择对应的定时器初始值;---------------------------------------------------------INT_T0:PUSH ACCPUSH PSWCPL BUZZER //改变蜂鸣器状态MOV A, R2MOV DPTR, #TABLE_SONGMOVC A, @A+DPTRMOV YINFU, AJNZ SING //判断是否到歌曲结束CLR TR0CLR TR1CLR EASJMP EXITSING:MOV A, YINFUMOV DPTR, #TABLE_TH0MOVC A, @A+DPTRMOV TH0, AMOV A, YINFUMOV DPTR, #TABLE_TL0MOVC A, @A+DPTRMOV TL0, AEXIT:POP PSWPOP ACCRETI;-------------------------------------------------------------------------;控制节拍的定时中断,每个音符节拍时间到,调整R2指向下一音符INT_T1:PUSH ACCMOV TH1, #TH1_DA TA ;节拍基准定时50ms(12MHz晶振)MOV TL1, #TL1_DA TADJNZ JIEPAI, EXIT_T1INC R2MOV A, R2MOV DPTR, #TABLE_LENGTHMOVC A, @A+DPTRMOV JIEPAI, AEXIT_T1:POP ACCRETITABLE_TH0:DB 0FCH, 0FCH, 0FCH, 0FDH, 0FDH, 0FDH ,0FDHDB 0FEH, 0FEH, 0FEH, 0FEH, 0FEH, 0FEHDB 0FEH, 0FFHTABLE_TL0:DB 00H, 44H, 0ACH, 09H, 34H, 82H, 0C8HDB 06H, 22H, 56H, 85H, 9AH, 0C1HDB 0E3H, 03HTABLE_SONG:DB 1,2,3,1,1,2,3,1,3,4,5,5,3,4,5,5DB 5,6,5,4,3,2,5,6,5,4,3,2,1,5,1,1DB 1,5,1,1,0TABLE_LENGTH:DB 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10DB 5,5,5,5,10,10,5,5,5,5,10,10,10,10,10,10DB 10,10,10,10,10,10END。

基于51单片机的音乐播放器设计

基于51单片机的音乐播放器设计

题目:音乐播放器课程设计(论文)任务书课程设计(论文)题目:音乐播发器基本内容:利用单片机的定时器产生各种频率的方波,信号经过放大后送到喇叭从而产生各种音调。

自行定义键盘,每按一键,可选择一首歌曲进行演奏,至少能够存储并播放十首歌曲,在LCD上显示演奏歌曲的名称并滚动显示歌词,单片机可连续播放这首歌曲,演奏可通过按键停止。

课程设计(论文)专题部分:题目:音乐播放器基本内容:通过单片机设计可以播放十首歌曲的音乐播放器,同步显示歌曲名称和歌词。

学生接受毕业设计(论文)题目日期第19 周指导教师签字:2009年7月摘要随着电子技术的发展和计算机越来越普遍的使用,单片机作为这两项技术的有机结合也得到了广泛的应用,在某些领域具有不可替代的作用。

音乐播放功能随处都会用到,如,在开发儿童智力的玩具中,等等。

目前,基于单片机实现音乐播放,其体积小、价格低、编程灵活等特点在这一领域独领风骚。

单片机的英文名称为single chip microcomputer,最早出现在20世纪70年代,国际上现在已逐渐被微控制器(Microcontroller Unit 或MCU)一词所取代。

它体积小,集成度高,运算速度快,运行可靠,功耗低,价格廉,因此在数据采集、智能化仪表、通讯设备等方面得到了广泛应用。

而8051单片机在小到中型应用场合很常见,已成为单片机领域的实际标准。

随着硬件的发展,8051单片机系列的软件工具也有了C级编译器和实时多任务操作系统RTOS,为单片机编程使用C语言提供了便利的条件;并针对单片机常用的接口芯片编制通用的驱动函数,可针对常用的功能模块,算法等编制相应的函数;C语言模块化程序结构特点,可以使程序模块大家共享,不断丰富,这样就使得单片机的的程序设计更简单可靠,实时性强,效率高。

作为测控技术与仪器的学生,掌握8051单片机硬件基础及其相关软件操作,将其应用于现代电子产品中是必要而且重要的,这次课程设计我们的题目是用单片机实验箱系统制作音乐播放器。

基于单片机的音乐播放器的设计 实验原理图

基于单片机的音乐播放器的设计 实验原理图

图2-1 C51F350单片机播放器系统结构图图2-2SPCE061A 16位单片机音乐播放器硬件结构框图2-3 C52音乐播放器组成框图图3-1 AT89C52引脚排列图图3-2 晶振电路图3-3 微分型复位电路432P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78RST 9 3.0/RXD 10 3.1/TXD 11P3.2/INT012P3.3/INT113P3.4/T014P3.5/T115P3.6/WR 16P3.7/RD 17XTAL118XTAL219Vss 20P2.021P2.122P2.223P2.324P2.425P2.526P2.627P2.728PSEN 29ALE 30EA 31P0.732P0.633P0.534P0.435P0.336P0.237P0.138P0.039VC C 40AT89C52Y112M HZC630PF C730PFX 1X 2VC CR1VC CVC C图3-4 单片机最小系统图a) 八段共阴LED显示管原理图图b) 八段共阳LED显示管原理图图3-5 八段LED显示管原理图[7]图3-7 音乐播放器LED显示电路设计图3-8 LM2575集成稳压器的两种引脚图[11]图3-9 LM2575内部框图图3-10 电源电路的设计电路图[13]图3-11 内部结构图表3-2 音频功率放大器R1 R23.3V 1.0K 1.7K5V 1.0K 3.1K 12V 1.0K 8.84K 15V 1.0K 11.3K 输出电压可调Open 0图3-12 全数字功放与普通功放过载失真度比较图3-13 LM386引脚图图3-14 LM386方块图表3-3 LM386电子特性表图3-15 音频功率放大器[18]图4-1 主程序流程图[20]图4-2 显示子程序的流程图[21]图4-3 INT0中断模块流程[24]图4-4 T1中断模块程序流程图附录A:电气原理图321DC B AC310u FC130pC230pC5100nF+C2100uFY1D1IN5819123456781234567812345678A1LM386R1330uhR1R110KS1S2+C2330VS3OUTFbVinGNDONU2LM2575GNDP1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78RST93.0/RXD103.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.5/T115P3.6/WR16PSEN29XTAL118XTAL219Vss20P2.021P2.122P2.223P2.324P2.425P2.526P2.627P2.728P3.717ALE30EA31P0.732P0.633P0.534P0.435P0.336P0.237P0.138P0.039VCC40U1AT89C52VCC123。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于CPLD与51单片机的定时器与音乐播放器马大康 06007122万树 06007113覃朋 060071102009.12一、系统简介本系统利用CPLD 和51单片机联合实现了倒计时器和音乐播放器的功能。

作 为《电子系统设计》的课程设计,本系统充分利用了两块开发板上的资源,并实 现了可编程器件与单片机之间的串口异步通信,器件连接方便,并有良好的人机 交互界面。

二、系统结构框图与思路图2 CPLD 内部功能模块划分及连接经过对两块开发板板上资源的对比,我们发现,CPLD 板上的资源较为丰富, 尤其是其8个独立按键和1602液晶屏,十分适合人机交互,因此我们选择用CPLD 开发板作为主控板。

单片机板上拥有4个七段数码管,显示变化的数字十分方便, 可以构成1〜60分钟可变初值的倒计时器。

由于之前的实验中已经实现了在CPLD 中嵌入简易的UART,因此可以利用 CPLD 上的8个拨码开关设定倒计时器的初值,并通过异步串行通信传输给单片 机。

单片机上的拨码可以实现对倒计时器进行暂停、清零。

图1 系统结构框图除此之外,由于CPLD板上已有蜂鸣器,可以播放预先存入的歌曲,并通过板上的其他按键控制音斥的暂停与继续播放。

介于上述分析,设计的系统结构框图如图1所示,CPLD中功能模块的划分如图2所示。

操作流程:CPLD板上:Keyl->进入倒计时器模式,设定倒计时器初值(通过8个拨码),液晶屏上显示u D-counter Set time needed M。

Key2-〉发送倒计时器初值到单片机,单片机开始倒计时,液晶屏上显示“ D-counter D-countering nKey3->进入音乐盒模式,播放音乐《喀秋莎》。

Key4->暂停音圧播放单片机板上:在倒讣时过程中,将拨码开关1向上拨,倒计时暂停,向下拨后继续倒计时。

在倒计时过程中,按下CPLD板上的Keyl后(此时为设定初值模式),将拨码开关2向上拨,倒计时器清零,此时可对其重新置初值。

三、功能模块的实现1、异步串行发送模块想要在CPLD中嵌入异步吊行通信模块,就必须对异步吊行通信协议有深入的理解,由于系统中只用到了发送模块,这里仅对发送模块的设计做介绍。

在空闲时,发送1。

当发送使能WR为高电平且发送缓冲寄存器为高电平时, 向发送缓冲寄存器中写入待发送的数据。

当发送移位寄存器为空时,将发送缓冲寄存器中的值置入发送移位寄存器,并将TxDone变为低电平,表示发送一个字节的周期开始,此时不能向发送寄存器中置数。

发送周期开始首先发送一个低电平作为起始位,接着从数据的低位开始发送数据,发送结束后发送高电平作为结束位,并将TxDone变为高电平,表示发送一个字节结束。

整个模块的状态图如图3所示。

图3图4标准的UART设计是将系统时钟分频成16XBaudrate的频率,然后每个16 个这样的时钟周期发送一位数据。

我们这里的设计与标准设讣有些不同,我们直接把系统时钟分频成波特率时钟,然后每个周期发送一位数据,这样的效果与原先相同,但在编程上轻松了许多。

2、按键检测模块图5通过在每个时钟的上升沿检测引脚的值,经过延时再判断达到消抖的作用, 再将其转化为键值输岀。

3、液晶显示模块图6LCD_Top模块内部山时钟分频模块与LCD驱动模块构成,其中时钟分频模块负责将50M的系统时钟分频成500Hz的LCD驱动时钟。

LCD驱动模块主要负责产生控制信号并发送显示数据。

L C D驱动模块的状态流程图如下图所示。

4、蜂鸣器模块图8蜂鸣器演奏音乐模块较为简单,我们参考实验指导书中的代码,将《梁祝》的谱换成了《喀秋莎》。

5、定时器模块定时器模块在单片机中,其程序流程图如下:图10在这块单片机板上做倒讣时器有两个缺陷:第一,我们采用的是软件定时的方式,精确度不如硬件电路高;笫二,此开发板的按键和拨码没有直接接到单片机的I/O 口上,而是通过锁存器挂在总线上,这就决定了使用按键只有采取查询的方法,而不能釆用中断的方法。

因此在倒计时的过程中,每延时1秒前需要查询按键的值来实现暂停或停止的功能,指令也是需要执行时间的,这样会使延时时间超过1S,而且数码管略微有些闪烁。

不过,经过缩短延时Is程序的时间,我们将每秒钟的误差控制在了1/30秒。

四、系统调试过程本系统由三人共同合力完成,具体分工如下:马大康负责完成了串口通信模块、液晶显示模块和按键控制模块,并撰写了最终的设计文档。

万树负责完成了单片机上倒计时模块以及乐谱的输入,覃朋负责完成了蜂鸣器模块。

系统的调试是按照先单独模块测试,再组合拼接整体调试的步骤进行的,整个过程有条不紊,系统的总体设计也根据单独模块测试的情况与原先计划做岀了相应调整。

比如原先是汁划利用USB接口实现PC与CPLD板的通信,在PC上自行开发小软件以控制CPLD板上的资源。

但由于USB模块(FT245)没有在计划的时间内调试成功,我们就放弃了此方案,改用CPLD板上的按键来控制整个系统,这样并不影响系统的整体功能。

1、串口通信模块的调试山于考虑到在CPLD中实现UART并非易事,并且要实现我们系统的口标最好的方法就是利用串口通信,因此我们率先尝试了此模块。

该模块的调试时间表如下:12.9〜12. 13 深入学习了串口通信协议,编写了verilog代码,并在QuartusII 软件中仿真成功。

这里的仿真是指通过自行设计的发送模块TxUnit 向自行设计的接收模块RxUnit发送数据,接收到的数据无误。

12.21实现了CPLD板与PC机之间的通信,通过拨码设置发送数据,PC端的串口调试工具接收到数据无误。

12. 26实现了CPLD板与单片机板的通信。

在软件编写过程中,我们参考了很多资料,观摩了别人写的一些代码。

本想利用别人的代码加以改进,但未能成功。

我想原因有二:第一,从网上下载的代码可靠性值得怀疑,其本身有无经过验证还不清楚。

第二,自身阅读verilog 代码能力还需加强,不知是不是因为软件中不能写中文注释的原因,很多代码没有注释,阅读起来相当吃力。

由于接触verilog时间不长,面对长篇的代码常常抓不住重点,从头到尾都读完了,却弄不清每个状态都实现了什么功能。

在修改代码未果的情况下,我决定,与其花时间阅读那么冗长的代码,不如先花时间把吊口通信的协议(尤其是接收模块的操作)吃透,然后尝试自己编写代码,这样代码中的每一步自己都知道是什么意思,出了错解决起来也方便。

通过此次的串口模块程序的编写,我初步掌握了利用状态机编写时序的方法,摒弃了烦琐的条件判断语句(网上部分代码就是如此编写的,十分不规范),十分具有锻炼意义。

从软件调通到实现CPLD和PC机的通信没有花太长时间,于是便开始准备CPLD 和单片机间的通信。

山于两块开发板上的RS232 口均为母口,因此我在网上购买了一根公对公的串口线。

当我迫不及待地将两块板子连接起来时,什么反 应也没有。

我这时有些不知所措,因为CPLD 可以发送数据给PC, PC 也能发送数 据给单片机,波特率都是9600,为什么将两者直接连接就不行了呢?出问题的 值可能有一个地方,那就是我够买的那根公头对公头的串口线。

难道线是断的, 这商家也太不厚道了吧,应该不会。

这时在我脑海中突然浮现出串口通信最基本的那张示意图:认为TxD 与RxD 在传输线中完成 输线里没有完成 起万用表测量了公对公帘口线的两个2脚,发现这两个脚是导通的,也就是说吊口线中没有实现 信号的交义!再对着两块板子的原理图看了一下,TxD 都接的是各自的串口座2 脚,RxD 都接的是各自的串口座3脚,这样的话相当于把两个发送的TxD 管脚连 接在了一起,要实现通信是根本不可能的。

后来在网上一查,原来串口线有直连 线与交义线两种之分,(估讣直连线是单纯做延长用的),而公对公的线没有交 义线,需要定制。

不怕出问题,怕的是出了问题找不到问题的原因,既然找到了原因,就有方 法解决。

于是我来到了创新实验室,先用两根导线将RxD 与TxD 连接起来,并将 两块开发板共地。

打开电源后,按下按键,单片机成功接收到了 CFLD 发送的数据。

这证明了之前的不成功完全是因为硬件电路的问题。

为了使最后的作品方便展示,两根导线显然不够稳定。

于是我将那根公对公 的串口线从中间剪断,其中有10根线,我找到每根线对应是儿针,再将两边的 2针与3针交义连接起来。

山于CPLD 开发板上是将地与1针相连,而单片机开 发板上是将地与5针相连,这两根线需要缠在一起,因此这根线的两头并不等价, 一头固定接单片机,另一头固定接CPLDo这根自制的串口交义线完成后,经过检验无误,我们的串口通信模块算是成 功完成了。

2. 液晶模块、键盘模块的调试液晶模块的调试也并不轻松,起初和大家一样,我们花了很长时间阅读把实 验指导书中给的代码,并把其烧到了板子里进行测试,液晶屏并没有被点亮,于 是我们放弃了修改那冗长的代码,在另一份代码上进行修改。

12. 14〜12. 15学习了 1602液晶屏的控制方法,并修改了一份已有的 verilog代码,将其烧入板子后成功的在液晶屏上显示了u madakangisfromee n o12.27确定了整个程序的框架,编写了键盘模块(可以采集按键、消抖并输出键值),改进了之前编写的液晶模块,使其能够根据键值显示不同的文字。

在这一阶段其实也走了一段小小的弯路。

在我的液品模块中,需要显示的字 符是作为模块的参数的,因此最初我的想法是通过实例化时的参数传递将不同键 值对应的文字传递给液晶模块,因为verilog 中也有现成的参数传递语句,如defparamc但这种想法经实践检验既不可行也不科学:首先,如果你有5种字符串要显 示,你就必须实例化5个液晶显示模块,而这5个module 实例无法公用同样的 输岀,也就是说如果想要这样实现的话还必须在5个module 实例后加一个数据 选择器,这样确实非常的繁琐。

其次,即使实现了,也非常地耗费LEo 因此我 放弃了这样的方案。

后来我还是对module 本身做了修改,将要显示的文本存为不同的parameter, 然后在给显示数据寄存器赋值时,加一个case 语句判断,根据不同的键值选择 不同我之前一直 的交义应该是 的,但会不会传 呢?于是我拿的parameter,成功实现了通过按键改变屛幕显示的功能。

3.倒计时器的调试本来倒计时器的调试倒是一帆风顺,只是在添加暂停与停止功能时,无意中改动了一个变量的类型,将原先的int型改为了unsigned char,导致参数调用时不匹配,讣数减到0时会数码管就开始出现乱码了。

不过后来还是发现了这个问题。

4.蜂鸣器的调试采用6MHz作为基频,山于所选歌曲的最短的音符为四分音符,如果将全音符的持续时间设为Is的话,还需要一个4Hz的分频即可。

相关文档
最新文档