计算机控制技术-课程设计

  • 格式:docx
  • 大小:321.17 KB
  • 文档页数:27

计算机控制技术-课程设计

1 / 27 广东工业大学

课程设计

课程名称:单片机技术及系统设计

题目 :简易电子琴制作

学院 :材料与能源学院

专业:

材料成型与控制工程

班级 : 材加(1)班

学号 :

姓名 :

指导老师 : 刘伟

实验时间 :2011年1月10日—1月21日

计算机控制技术-课程设计

2 / 27 目录

1、设计名称-------------------------------------2

2、设计任务指标---------------------------------2

3、设计主要说明---------------------------------2

4、实验仪器设备---------------------------------2

5、主要原件功能---------------------------------2

6、设计主要原理---------------------------------4

7、设计的主要流程-------------------------------5

(1)软件总体方案及设计流程-------------------5

(2)程序简易流程图---------------------------5

(3)电路设计原理图----------------------------8

(4)电路PCB板图-----------------------------9

(5)设计程序 --------------------------------9

8、设计总结-------------------------------------16

计算机控制技术-课程设计

3 / 27 一、 设计名称

电子琴的简易制作

二、(1)设计指标:

1)设计一个(4×4)的键盘,并将16个键设计成16个音;

2)可弹奏想要表达的音乐;

3)该电子琴包含1首示例音乐,接通电源可播放示例音乐。

(2)、设计要求:

1)按设计指标进行电路设计;

2)列出音阶与单片机定时器输出频率关系表格;

3)制作符合设计指标的硬件电路。

三、设计说明:

电子琴是高科技在音乐领域的一个代表,它是古典文化与现代文明的一个浓缩体。它不但可以帮助我们的音乐教师进行传统音乐文化的教育教学工作,而且由于它又具备现代音乐,特别是电子音乐、电脑音乐的基本结构、特征,因而使我们的教师在进行现代音乐、电子音乐、电脑音乐的教学时,更直接、更简便。

单片微型计算机是大规模集成电路技术发展的产物,属第四代电子计算机,它具有高性能、高速度、体积小、价格低廉、稳定可靠、应用广泛的特点。它的应用必定导致传统的控制技术从根本上发生变革。因此,单片机的开发应用已成为高科技和工程领域的一项重大课题。

电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。它在现代音乐扮演着重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。本文的主要内容是用AT89C51单片机为核心控制元件,设计一个电子琴。以单片机作为主控核心,与键盘、扬声器等模块组成核心主控制模块,在主控模块上设有16个弹奏按键、1个播放键和扬声器。

四、设计仪器、设备和材料清单

主要仪器设备:

个人计算机和相关的软件

主要元器件: 独立按键18个

单片机芯片AT80C51一片

12MHz晶振一个

2N3906三极管一个

不同阻值电阻数个

开关一个

USB电源插口一个

喇叭一个

不同数值电容数个

电路板一块

五、主要原件功能

(1)AT89C51单片机及其引脚说明 计算机控制技术-课程设计

4 / 27 AT89C51是一个低功耗,高性能CMOS 8位单片机,片内含4k Bytes

ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S51

主要特性:

· 8031 CPU与MCS-51 兼容

· 4K字节可编程FLASH存储器(寿命:1000写/擦循环)

· 全静态工作:0Hz-24KH· 三级程序存储器保密锁定

· 128*8位内部RAM

· 32条可编程I/O线

· 两个16位定时器/计数器

· 6个中断源

· 可编程串行通道

· 低功耗的闲置和掉电模式

· 片内振荡器和时钟电路

(2)、4X4行列式键盘识别及显示

组成键盘的按键有机械式、电容式、导电橡胶式、薄膜式多种,但不管什么形式,其作用都是一个使电路接通与断开的开关。目前微机系统中使用的键盘按其功能不同,通常可分为编码键盘和非编码键盘两种基本类型。

编码键盘:键盘本身带有实现接口主要功能所需的硬件电路。不仅能自动检测被按下的键,并完成去抖动、防串键等功能,而且能提供与被按键功能对应的键码(如ASCII码)送往CPU。所以,编码键盘接口简单、使用方便。但由于硬件电路较复杂,因而价格较贵。

非编码键盘:键盘只简单地提供按键开关的行列矩阵。有关按键的识别、键码的确定与输入、去抖动等功能均由软件完成。目前微机系统中,一般为了计算机控制技术-课程设计

5 / 27 降低成本大多数采用非编码键盘。

键盘接口必须具有去抖动、防串键、按键识别和键码产生4个基本功能。

(1)去抖动:每个按键在按下或松开时,都会产生短时间的抖动。抖动的持续时间与键的质量相关,一般为5—20mm。所谓抖动是指在识别被按键是必须避开抖动状态,只有处在稳定接通或稳定断开状态才能保证识别正确无误。去抖问

1.题可通过软件延时或硬件电路解决。

(2)防串键:防串键是为了解决多个键同时按下或者前一按键没有释放又有新的按键按下时产生的问题。常用的方法有双键锁定和N键轮回两种方法。双键锁定,是当有两个或两个以上的按键按下时,只把最后释放的键当作有效键并产生相应的键码。N键轮回,是当检测到有多个键被按下时,能根据发现它们的顺序依次产生相应键的键码。

(3)被按键识别:如何识别被按键是接口解决的主要问题,一般可通过软硬结合的方法完成。常用的方法有行扫描法和线反转法两种。行扫描法的基本思想是,由程序对键盘逐行扫描,通过检测到的列输出状态来确定闭合键,为此,需要设置入口、输出口一个,该方法在微机系统中被广泛使用。线反转法的基本思想是通过行列颠倒两次扫描来识别闭合键,为此需要提供两个可编程的双向输入/输出端口。

(4)键码产生:为了从键的行列坐标编码得到反映键功能的键码,一般在内存区中建立一个键盘编码表,通过查表获得被按键的键码。

2.用AT89S51的并行口P0接4×4矩阵键盘,以P0.0-P0.3作输入线,以P0.4-P0.7作输出线;在数码管上显示每个按键的“0-F”序号。

六、设计简单原理介绍

一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即可。

若要产生音频脉冲,只要算出某一音频的周期(1/频率),再将此周期除以2,即为半周期的时间。利用定时器计时半周期时间,每当计时终止后就将P1.0反相,然后重复计时再反相。就可在P1.0引脚上得到此频率的脉冲。

利用AT89C51的内部定时器使其工作计数器模式(MODE1)下,改变计数值TH0及TL0以产生不同频率的方法产生不同音阶,例如,频率为523Hz,其周期T=1/523=1912μs,因此只要令计数器计时956μs/1μs=956,每计数956次时将I/O反相,就可得到中音DO(523Hz)。

计数脉冲值与频率的关系式(如式3-1所示)是:

N=fi÷2÷fr 3-1

式中,N是计数值;fi是机器频率(晶体振荡器为12MHz时,其频率为1MHz);fr是想要产生的频率。

其计数初值T的求法如下:

T=65536-N=65536-fi÷2÷fr

例如:设K=65536,fi=1MHz,DO(523Hz)的计数值。

T=65536-N=65536-fi÷2÷fr=65536-1000000÷2÷fr=65536-500000/f 计算机控制技术-课程设计

6 / 27 DO的T=65536-500000/523=64580

单片机12MHZ晶振,高中低音符与计数T0相关的计数值如表4-2所示

表3-2 音符频率表

低音音符 频率HZ 中音音符 频率HZ 高音音符 频率HZ

1 261.63 1 523.25 1 1045.5

2 293.67 2 587.33 2 1174.66

3 329.63

3 659.46 3 1318.51

4 349.23 4 698.46 4 1396.92

5 391.99 5 738.99 5 1567.98

6 440.00 6 880.00 6 1760.00

7 493.88 7 987.76 7 1975.52

我们要为这个音符建立一个表格,单片机通过查表的方式来获得相应的数据

低音0-19之间,中音在20-39之间,高音在40-59之间

TABLE: DW 0,63628,63835,64021,64103,64260,64400,64524,0,0

DW 0,63731,63928,0,64185,64331,64463,0,0,0

DW 0,64580,64684,64777,64820,64898,64968,65030,0,0

DW 0,64633,64732,0,64860,64934,64994,0,0,0

DW 0,65058,65110,65157,65178,65217,65252,65283,0,0

DW 0,65085,65134,0,65198,65235,65268,0,0,0

DW 0

在这个程序中,弹奏音乐的程序是用定时/计数器T0来完成的,播放音乐程序则是用定时/计数器T1来完成的。

七、设计的主要流程

(1)软件总体方案及设计流程

1)键盘扫描程序:

检测是否有键按下,有键按下则记录按下键的键值,并跳转至功能转移程序;无键按下,则返回键盘扫描程序继续检测

2)功能转移程序:

对检测到得按键值进行判断,是琴键则跳转至琴键处理程序,是功能键则跳转至相应的功能程序,我们设计的功能程序有两种,即音色调节功能和自动播放乐曲功能