单片机键盘扫描之状态机实现:在编写单片机程序的过程中,键盘作为一种人机接口的实现方式,是很常用的。而一般的实现方法大概有:1、外接键盘扫描芯片(例如8279,7279 等等),然后由该芯片来完成去抖、键值读取、中断请求等功能。然后单片机响应中断并读取键值,有的时候也可以采用轮训的方式。2、如果按键数比较少,那么可以直接将按键接到单片机的IO 口,然后各按键取逻辑或再送到单片机的中断管脚(对于51 体系),单片机响应中断后再去读取IO 口的数据。如果单片机的中断向量比较多(例如AVR 系列的单片机,每个IO都可以作为中断),那么也可以直接把各个按键接到各个具有中断功能的IO 上面。在中断处理程序中往往需要执行这样一个操作序列:延时一定时间来去抖,如果按键有效那么等待按键释放。
上传时间: 2014-12-28
上传用户:zhang97080564
单片机音乐中音调和节拍的确定方法:调号-音乐上指用以确定乐曲主音高度的符号。很明显一个八度就有12个半音。A、B、C、D、E、F、G。经过声学家的研究,全世界都用这些字母来表示固定的音高。比如,A这个音,标准的音高为每秒钟振动440周。 升C调:1=#C,也就是降D调:1=BD;277(频率)升D调:1=#D,也就是降E调:1=BE;311升F调:1=#F,也就是降G调:1=BG;369升G调:1=#G,也就是降A调:1=BA;415升A调:1=#A,也就是降B调:1=BB。466,C 262 #C277 D 294 #D(bE)311 E 330 F 349 #F369 G 392 #G415A 440. #A466 B 494 所谓1=A,就是说,这首歌曲的“导”要唱得同A一样高,人们也把这首歌曲叫做A调歌曲,或叫“唱A调”。1=C,就是说,这首歌曲的“导”要唱得同C一样高,或者说“这歌曲唱C调”。同样是“导”,不同的调唱起来的高低是不一样的。各调的对应的标准频率为: 单片机演奏音乐时音调和节拍的确定方法 经常看到一些刚学单片机的朋友对单片机演奏音乐比较有兴趣,本人也曾是这样。在此,本人将就这方面的知识做一些简介,但愿能对单片机演奏音乐比较有兴趣而又不知其解的朋友能有所启迪。 一般说来,单片机演奏音乐基本都是单音频率,它不包含相应幅度的谐波频率,也就是说不能象电子琴那样能奏出多种音色的声音。因此单片机奏乐只需弄清楚两个概念即可,也就是“音调”和“节拍”。音调表示一个音符唱多高的频率,节拍表示一个音符唱多长的时间。 在音乐中所谓“音调”,其实就是我们常说的“音高”。在音乐中常把中央C上方的A音定为标准音高,其频率f=440Hz。当两个声音信号的频率相差一倍时,也即f2=2f1时,则称f2比f1高一个倍频程, 在音乐中1(do)与 ,2(来)与 ……正好相差一个倍频程,在音乐学中称它相差一个八度音。在一个八度音内,有12个半音。以1—i八音区为例, 12个半音是:1—#1、#1—2、2—#2、#2—3、3—4、4—#4,#4—5、5一#5、#5—6、6—#6、#6—7、7—i。这12个音阶的分度基本上是以对数关系来划分的。如果我们只要知道了这十二个音符的音高,也就是其基本音调的频率,我们就可根据倍频程的关系得到其他音符基本音调的频率。 知道了一个音符的频率后,怎样让单片机发出相应频率的声音呢?一般说来,常采用的方法就是通过单片机的定时器定时中断,将单片机上对应蜂鸣器的I/O口来回取反,或者说来回清零,置位,从而让蜂鸣器发出声音,为了让单片机发出不同频率的声音,我们只需将定时器予置不同的定时值就可实现。那么怎样确定一个频率所对应的定时器的定时值呢?以标准音高A为例: A的频率f = 440 Hz,其对应的周期为:T = 1/ f = 1/440 =2272μs 由上图可知,单片机上对应蜂鸣器的I/O口来回取反的时间应为:t = T/2 = 2272/2 = 1136μs这个时间t也就是单片机上定时器应有的中断触发时间。一般情况下,单片机奏乐时,其定时器为工作方式1,它以振荡器的十二分频信号为计数脉冲。设振荡器频率为f0,则定时器的予置初值由下式来确定: t = 12 *(TALL – THL)/ f0 式中TALL = 216 = 65536,THL为定时器待确定的计数初值。因此定时器的高低计数器的初值为: TH = THL / 256 = ( TALL – t* f0/12) / 256 TL = THL % 256 = ( TALL – t* f0/12) %256 将t=1136μs代入上面两式(注意:计算时应将时间和频率的单位换算一致),即可求出标准音高A在单片机晶振频率f0=12Mhz,定时器在工作方式1下的定时器高低计数器的予置初值为 : TH440Hz = (65536 – 1136 * 12/12) /256 = FBH TL440Hz = (65536 – 1136 * 12/12)%256 = 90H根据上面的求解方法,我们就可求出其他音调相应的计数器的予置初值。 音符的节拍我们可以举例来说明。在一张乐谱中,我们经常会看到这样的表达式,如1=C 、1=G …… 等等,这里1=C,1=G表示乐谱的曲调,和我们前面所谈的音调有很大的关联, 、 就是用来表示节拍的。以 为例加以说明,它表示乐谱中以四分音符为节拍,每一小结有三拍。比如: 其中1 、2 为一拍,3、4、5为一拍,6为一拍共三拍。1 、2的时长为四分音符的一半,即为八分音符长,3、4的时长为八分音符的一半,即为十六分音符长,5的时长为四分音符的一半,即为八分音符长,6的时长为四分音符长。那么一拍到底该唱多长呢?一般说来,如果乐曲没有特殊说明,一拍的时长大约为400—500ms 。我们以一拍的时长为400ms为例,则当以四分音符为节拍时,四分音符的时长就为400ms,八分音符的时长就为200ms,十六分音符的时长就为100ms。可见,在单片机上控制一个音符唱多长可采用循环延时的方法来实现。首先,我们确定一个基本时长的延时程序,比如说以十六分音符的时长为基本延时时间,那么,对于一个音符,如果它为十六分音符,则只需调用一次延时程序,如果它为八分音符,则只需调用二次延时程序,如果它为四分音符,则只需调用四次延时程序,依次类推。通过上面关于一个音符音调和节拍的确定方法,我们就可以在单片机上实现演奏音乐了。具体的实现方法为:将乐谱中的每个音符的音调及节拍变换成相应的音调参数和节拍参数,将他们做成数据表格,存放在存储器中,通过程序取出一个音符的相关参数,播放该音符,该音符唱完后,接着取出下一个音符的相关参数……,如此直到播放完毕最后一个音符,根据需要也可循环不停地播放整个乐曲。另外,对于乐曲中的休止符,一般将其音调参数设为FFH,FFH,其节拍参数与其他音符的节拍参数确定方法一致,乐曲结束用节拍参数为00H来表示。下面给出部分音符(三个八度音)的频率以及以单片机晶振频率f0=12Mhz,定时器在工作方式1下的定时器高低计数器的予置初值 : C调音符 频率Hz 262 277 293 311 329 349 370 392 415 440 466 494TH/TL F88B F8F2 F95B F9B7 FA14 FA66 FAB9 FB03 FB4A FB8F FBCF FC0BC调音符 1 1# 2 2# 3 4 4# 5 5# 6 6# 7频率Hz 523 553 586 621 658 697 739 783 830 879 931 987TH/TL FC43 FC78 FCAB FCDB FD08 FD33 FD5B FD81 FDA5 FDC7 FDE7 FE05C调音符 频率Hz 1045 1106 1171 1241 1316 1393 1476 1563 1658 1755 1860 1971TH/TL FB21 FE3C FE55 FE6D FE84 FE99 FEAD FEC0 FE02 FEE3 FEF3 FF02
上传时间: 2013-10-20
上传用户:哈哈haha
单片机温度控制系统的设计及实现 介绍在单片机温度控制系统的软硬件设计中的一些主要技术关键环节,该系统主要以8051单片机为核心,由温度检测电路,模/数转换电路,过零检测电路,报警与指示电路,光电隔离与功率放大电路等构成。关键词:单片机;PID算法;温度采样;抗干扰 单片机温度控制系统的组成及工作原理:在工业生产中,对温度控制系统的要求,主要是保证炉温按规定的温度工艺曲线变化,超调小或者无超调,稳定性好,不振荡,对系统的快速性要求不高。以下浅析了单片机电阻炉控温系统设计过程及实现方法。
上传时间: 2014-12-28
上传用户:642778338
《数字信号处理实践方法(第二版)》根据实际工程应用和具体实例,详细介绍了数字信号处理(DSP)领域内的基本概念和相关技术。全书共分为14章,首先讲解了DSP的基本概念及其应用,并从实际的例子出发,阐述了DSP的一些基本内容,如信号的抽样、量化及其在实时DSP上的内涵。然后,作者介绍了离散变换(DFT和FFT),离散时间信号与系统分析的工具(z变换),以及DSP的基本运算(相关和卷积),并分析了数字滤波器设计的实际问题。《数字信号处理实践方法(第二版)》还介绍了多抽样率数字信号处理、自适应数字滤波器、谱估计及其分析等现代数字信号处理理论,最后讨论了通用和专用数字信号处理器、定点DSP系统有限字长效应分析及DSP的应用和设计实例。另外,书中还提供了有关范例和实验的MATLAB实现方法。 《数字信号处理实践方法(第二版)》可作为通信与电子信息类专业高年级本科生和研究生的教材或教学参考书,而且对于相关学科的工程技术人员也具有很好的参考价值。
上传时间: 2013-12-30
上传用户:assef
为了实现对非相干雷达的接收相参处理,基于数字稳定校正(DSU)的原理,采用ALTERA公司的StratixⅡ系列芯片和VHDL编程语言,设计了一种基于FPGA的DSU硬件实现方法。实验结果表明基于FPGA的DSU方法可以提高程序的执行效率和系统的实时性,可实现非相参雷达的相参化功能。
上传时间: 2013-10-14
上传用户:603100257
针对传统集成电路(ASIC)功能固定、升级困难等缺点,利用FPGA实现了扩频通信芯片STEL-2000A的核心功能。使用ISE提供的DDS IP核实现NCO模块,在下变频模块调用了硬核乘法器并引入CIC滤波器进行低通滤波,给出了DQPSK解调的原理和实现方法,推导出一种简便的引入?仔/4固定相移的实现方法。采用模块化的设计方法使用VHDL语言编写出源程序,在Virtex-II Pro 开发板上成功实现了整个系统。测试结果表明该系统正确实现了STEL-2000A的核心功能。 Abstract: To overcome drawbacks of ASIC such as fixed functionality and upgrade difficulty, FPGA was used to realize the core functions of STEL-2000A. This paper used the DDS IP core provided by ISE to realize the NCO module, called hard core multiplier and implemented CIC filter in the down converter, described the principle and implementation detail of the demodulation of DQPSK, and derived a simple method to introduce a fixed phase shift of ?仔/4. The VHDL source code was designed by modularity method , and the complete system was successfully implemented on Virtex-II Pro development board. Test results indicate that this system successfully realize the core function of the STEL-2000A.
上传时间: 2013-11-06
上传用户:liu123
本文对数字基带信号脉冲成型滤波的应用、原理及实现进行了研究。首先介绍了数字成型滤波的应用意义并分析了模拟和数字两种硬件实现方法,接着介绍了成形滤波器设计所需要MATLAB软件,以及利用ISE system generator在FPGA上进行滤波器实现的优势。文中给出了成形滤波函数的数学模型,讨论了几种常用成形滤波函数的传输特性以及对传输系统信号误码率的影响。然后介绍了本次设计中使用到的数字成形滤波器设计的几种FIR滤波器结构。把各种设计方案进行仿真,比较仿真结果,最后根据实际应用的情况并结合设计仿真中出现的问题进行分析,得出各种设计结构的优缺点以及适合应用的场合。
上传时间: 2013-10-18
上传用户:aesuser
GMSK信号具有很好的频谱和功率特性,特别适用于功率受限和信道存在非线性、衰落以及多普勒频移的移动突发通信系统。根据GMSK调制的特点,提出 亍一种以FPGA和CMX589A为硬件裁体的GMSK调制器的设计方案,并给出了方案的具体实现,包括系统结构、利用CMX589A实现的高斯滤波器、 FPGA实现的调制指数为O.5的FM调制器以及控制器。对系统功能和性能测试结果表明,指标符合设计要求,工作稳定可靠。 关键词:GMSK;DDS;FM调制器;FPGAl 引 言 由于GMSK调制方式具有很好的功率频谱特性,较优的误码性能,能够满足移动通信环境下对邻道干扰的严格要求,因此成为GSM、ETS HiperLANl以及GPRS等系统的标准调制方式。目前GMSK调制技术主要有两种实现方法,一种是利用GMSK ASIC专用芯片来完成,典型的产品如FX589或CMX909配合MC2833或FX019来实现GMSK调制。这种实现方法的特点是实现简单、基带信 号速率可控,但调制载波频率固定,没有可扩展性。另外一种方法是利用软件无线电思想采用正交调制的方法在FPGA和DSP平台上实现。其中又包括两种实现 手段,一种是采用直接分解将单个脉冲的高斯滤波器响应积分分成暂态部分和稳态部分,通过累加相位信息来实现;另一种采用频率轨迹合成,通过采样把高斯滤波 器矩形脉冲响应基本轨迹存入ROM作为查找表,然后通过FM调制实现。这种利用软件无线电思想实现GMSK调制的方法具有调制参数可变的优点,但由于软件 设计中涉及到高斯低通滤波、相位积分和三角函数运算,所以调制器参数更改困难、实现复杂。综上所述,本文提出一种基于CMX589A和FPGA的GMSK 调制器设计方案。与传统实现方法比较具有实现简单、调制参数方便可控和软件剪裁容易等特点,适合于CDPD、无中心站等多种通信系统,具有重要现实意义。
上传时间: 2013-10-24
上传用户:thesk123
介绍了基于Xilinx Spartan- 3E FPGA XC3S250E 来完成分辨率为738×575 的PAL 制数字视频信号到800×600 的VGA 格式转换的实现方法。关键词: 图像放大; PAL; VGA; FPGA 目前, 绝大多数监控系统中采用的高解析度摄像机均由47 万像素的CCD 图像传感器采集图像, 经DSP 处理后输出的PAL 制数字视频信号不能直接在VGA 显示器上显示, 而在许多场合需要在VGA 显示器上实时监视, 这就需要将隔行PAL 制数字视频转换为逐行视频并提高帧频, 再将每帧图像放大到800×600 或1 024×768。常用的图像放大的方法有很多种, 如最临近赋值法、双线性插值法、样条插值法等[ 1] 。由于要对图像进行实时显示, 本文采用一种近似的双线性插值方法对图像进行放大。随着微电子技术及其制造工艺的发展, 可编程逻辑器件的逻辑门密度有了很大提高, 现场可编程逻辑门阵列( FPGA) 有着逻辑资源丰富和可重复以及系统配置的灵活性, 同时随着微处理器、专用逻辑器件以及DSP 算法以IP Core 的形式嵌入到FPGA 中[ 2] , FPGA 的功能越来越强, 因此FPGA 在现代电子系统设计中发挥着越来越重要的作用。本课题的设计就是采用VHDL 描述, 基于FPGA 来实现的。
上传时间: 2013-12-03
上传用户:aa54
采用Xlinx公司的Virtex5系列FPGA设计了一个用于多种高速串行协议的数据交换模块,并解决了该模块实现中的关键问题.该交换模块实现4X模式RapidIO协议与4X模式PCI Express协议之间的数据交换,以及自定义光纤协议与4X模式PCI Express协议之间的数据交换,实现了单字读写以及DMA操作,并提供高速稳定的传输带宽.
上传时间: 2013-10-12
上传用户:rnsfing