关于stm32定时器中断断,不是51!!,可以语音教我,有酬劳的,都好说,真心

全部项目分类
<ins class="adsbygoogle"
style="display:inline-width:250height:250px"
data-ad-client="ca-pub-9510"
data-ad-slot=""早在2016年11月,经过3GPP RAN1 87次会议讨论,华为主推……
各行业芯片自主问题备受关注。然而,谁知被冠以“中国特……
日的谷歌I/O大会已经召开完毕,颇具戏剧性的是……
多年前,日本电产新建总公司大楼,日本电产的永守重信董……
物联网、智能硬件、汽车电子、工业4.0等的发展,给传感器……
演讲人:卢柱强时间: 10:00:00
演讲人:曾伟权时间: 10:00:00
演讲人:黄科涛时间: 10:00:00
预算:¥10000预算:¥150000
广东省广东省
基于凌阳单片机的语音信号实时采集
[导读]语音信号采集是语音信号处理的基础。
本文引用地址: 摘要:语音信号采集是语音信号处理的基础。本文利用凌阳公司16位单片机――SPCE061A所具有的数字信号处理(DSP)功能及其所提供的音频压缩函数库来实现语音信号的实时采样与压缩;通过RS232接口,将采集到的语音信号实时上传到PC机中存储。
语音信号处理 RS232 串口通信 语音采样 语音压缩
随着单片机集成化程度的不断提高,现代单片机已经具备了数字信号处理功能,使语音信号处理用单片机实现成为可能。台湾凌阳科技公司(SunPlus)推出的一款SPCE061A就是这样的产品。SPCE061A是以μ'nSP TM16位微控制器及信号处理器芯片为内核的16位单片机,采用模块式集成结构,片内集成了2KB RAM、32KB Flash、ADC、DAC、并行I/O等,特别适合语音信号处理。本文介绍如何实现用SPCE061A单片机采集语音信号,并传送到PC机中的方法。1 硬件系统结构
1.1 SPCE061A结构
SPCE061A的内部结构如图1,其特点如下:
*16位μ'nSP TM微控制器;
*工作电压:VDD为2.6~3.6V(CPU),VDDH为VDD~5.5V(I/O);
*CPU时钟为0.32~49.152MHz;
*内置存储器:SRAM为2KB,内存Flash为32KB;
*可编程音频处理;
*2个16位可编程定时器/计数器;
*7通道10位ADC(内置麦克风放大和自动增益控制功能);
*2个10位DAC;
*32路可编程通用输入输出端口;
*串行输入输出接口;
*低电压监测/低电压复位功能;
*14个中断源可来自定时器、外部时钟输入、键唤醒等;
*内置在线仿真电路ICE。
1.2 SPCE061A开发方法
SPCE061A的开发是通过在线调试器PROBE实现的,如图2所示。它利用了SPCE061A内置的在线仿真电路ICE和凌阳公司的在线串行编程技术。如果读者想要使用该芯片及开发系统,可上网www.unsp.com.cn查询,并寻求大学计划的免费支持。
1.3 语音采集的硬件电路
语音采集的硬件电路如图3所示。MIC采用驻极体电容话筒,这种话筒具有灵敏度高、无方向性、重量轻、体积小、频率响应宽、保真度好等优点。
与PC机的串行通信用SPCE061A的UART接口,用MAX232芯片进行电平转换,即可实现RS232通信。2 软件设计与实现
2.1 语音信号的采集压缩与数据传输
(1)语音信号的采集压缩
语音信号处理的基础是对语音信号进行数字化,并采样存储。SRCE061A内置专门用于语音信号采集的自动增益控制放大器(AGC)的麦克风输入通道(MIC_IN)。语音信号经麦克转换成电信号,由隔离电容隔掉直流成分,然后输入至内部前置放大器。SPCE061A内部自动增益控制电路AGC能随时跟踪、监视前置放大器输出的音频信号电平,当输入信号增器时,AGC电路自动减小放大器的增益;当输入信号减小时,AGC电路自动增大放大器的增益,以便使进入A/D的信号保持在最佳电平,又可使谐波减至最小。
ADC初始化程序如下:
R1=0x0030;
[P_TimerA_Ctrl]=R1;
//时钟频率为CLKA的fosc/2
R1=0xfa00;
[P_TimerA_Data]=R1;
//采样率为16kHz
R1=0x003d;
[P_ADC_Ctrl]=R1; //设置AGC功能
R1=0x00A8;
[P_DAC_Ctrl]=R1; //采用自动方式且通过MIC_IN通道输入,通过定时器A的溢出锁存数据,ADC为自动方式
R1=0x1000;
[P_INT_Ctrl]=R1; //开中断IRQ1_TM
INT IRQ;&&& 采样后的数字语音信号数据量非常大,且由于语音信号采样点幅度分布的非均匀性和样本间的相关性等原因,使语音信号中含有大量的冗余信息。因此,在实际应用中采用各种信源编码技术来消除语音信号的冗余度。语音编码方法主要有波形编码、参数编码和混合编码。
*波形编码的基本原理是以波形逼近为原则,在时域上把幅度样本分层量化并用代码表示;特点是语音质量高、抗噪性强编码率高,适于语音及高保真音乐。
*参数编码是基于某种语音产生模型,在编程端分析出该模型参数选择适当的方式进行编码;特点是语音质量差、抗噪抗弱和编码率低。
*混合编码综合了波形和参数编码之优点。
凌阳SPCE061A提供了压缩算法库――SACMLIB(见表1),其处理的语音信号范围是200Hz~3.4kHz的电话语音,并将A/D、编/解码、存储及D/A做成相应的模块,对于每个模块都有其应用程序接口API。表1 SACM-LIB库中模块及其算法
采样率/kHz
语音压缩编码率/Kb/s
SACM_A2000
16、20、24
播放语音及高保真音乐
SACM_S480/S720
CELP混合编码
FM音乐合成
16、20、24
16Kb/s的传输率,8Ksps的采样率
ADC信道录音和DAC放音
(2)语音数据的传输
SPCE061A的通用异步串口(UART)提供了一个8位全双工标准接口,用于完成SPCE061A与外设之间的串行通信。借助于IOB口的特殊功能和UART IRQ中断,可以同时完成UART接口的接收与发送数据的过程。根据应用需求,把UART设置为中断方式接收数据,以查询方式发送数据。
UART初始化程序InitUART()见网络补充版(http://www.dpj.com.cn)。
2.2 上位机控制和存储模块
目前,Mircosoft公司的VC++6.0是基于Windows程序设计的主流开发工具之一。VC++不仅秉承了C++简便、灵活及面向对象等优点,而且提供了功能强大的MFC类库,并能自动生成应用程序框架,提供标准化的程序结构和用户接口。特别需要指出的是,为了今后调用低层的音频处理API函数,对由下位上传的音频数据进一步进行语音识别方面的处理,我们使用VC来编写上位机的控制及存储程序。
在实验室和工业应用中,RS232串口是常用的计算机与外部串行设备(单片机)之间的数据传输通道,由于串行通信简单易用,所以应用广泛。通常在VC++中有三种方法可以实现串行通信:
*使用VC++的标准通信函数_inp和_outp来实现串口通信;
*把串口看成是一个特殊的设备文件,使用有关文件处理的API函数来实现串口通信;
*使用ActiveX的串行通信控件MSComm来实现串口通信。
对于本实例来说,主要考虑的因素是实时语音数据存取,以及位机与下位机的配合。因此,采用了串行通信MSComm控件方法来实现串口通信。另外,可以采用二进制流文件Cfile类来存储声音文件。具体步骤见网络补充版。
通过以上实例录制的语音数据,可以从PC机下载到SPCE061A中(或者作为资源文件放入工程中),使用SACM_A2000模块的函数播放验证,效果能够满足进一步语音信号处理需要。
用凌阳SPCE061A处理语音信号有如下独特之处:
*硬件电路简单,因SPCE061A是一款专门为语音信号处理设计的,麦克和喇叭可直接接入,用户不必外接放大电路等;
*软件编程容易,有相应的API函数,可直接调用。
*用ICE和图形界面编译软件,调试方便。
我不算是聪明的人,经历也不算特别成功,但一步一步走来,我认为,我能做到的,你一定也能做到,而且应该还能做得比我更好。......关键字:
从时间顺序上排,我的答案是:意大利、英国、美国。原因如下。......关键字:
我认为你第一次看到我的工作间肯定这样想 ―― “总感觉少些什么”。没有显示器和鼠标,却有个人敲打着键盘,不知注视着哪里。......关键字:
话说公司体察民情,体恤员工,为了能让电子工程师早日解决个人问题,所以公司特意批准电子工程师们一天‘相亲假’。为了此次相亲,电子工程师可是足足‘谋划’了三天。从挑选约会地址,策划聊天话题,更是装扮了一番行头,正可谓是万事俱备只欠东风。就为到时......关键字:
本文是小编在FB看到的,觉得挺有意思的,应该是很多公司或者软件工程师都会遇到的,特地转过来分享给大家。......关键字:
我 要 评 论
热门关键词云龙电子51单片机视频教程005-中断及定时器原理-视频-单片机-51单片机 - 畅学电子网
&云龙电子51单片机视频教程005-中断及定时器原理
简介:本讲内容为中断及定时器原理。51单片机实训课程。云龙51单片机视频教程,本套51单片机视频教程主要是为没有学过单片机的新手讲解,小王老师讲课时,都是现场边讲解边编写程序、及时讲解编程思路、非常仔细;用电脑一条一条写程序、现场调式程序、把相关知识点及时讲解;不仅仅是一份入门教程,更包含了我们多年实战经验。只要你认真看、认真听,保证让你学会单片机和C语言。
分享到:已有0条评论暂时还没有评论哟,快来抢沙发吧添加一条评论只有登录用户才能评论,请先或哦!推荐课程& & & &智能小车作为移动式机器人中的一个重要分支,具有环境感知、规划决策、自动行驶等功能,是智能控制技术中一个典型的例子。通过软件编程,智能小车可以在预先设定的模式中实现行进、避障等精确控制,且无需人工干预。
& & & &本课程以STC89C52RC单片机作为主控芯片,通过HC-SR04超声波测距来获取小车距离障碍物的距离,由OLED显示模块实时反馈路况和行驶信息,主控系统根据反馈信息判断并调整小车的行驶方向和速度,在避开障碍物后,小车会沿直线前进,通过语音识别模块实现对小车的语音控制。
课程介绍:
第一章 避障小车概述
第二章 单片机开发板
第三章 OLED显示模块
第四章 L298N电机驱动和超声波测距
第五章 语音模块
第六章 避障小车电路制作
第七章 程序烧录与调试
课程细节:
本课程目录结构清晰,图文详细解说,以下是部分视频页面截图。
&01648by & & & &此小型恒温水箱是基于学生党夏天食物易变质以及冬天懒床加热早饭而精心设计的加热、制冷两用水箱,该作品主要有半导体制冷片来发挥主要作用,半导体制冷片有冷热两面,一面制冷,另一面必然发热,此&冰箱&的两用作用主要由此原理构成。作为一款DIY的小型冰箱,具有一定的保温功能(可将温度控制在7度左右),方便大家夏天享受冰凉的冷饮。
& & & &不过为了使用半导体制冷片必须配备相应的器件,以防止过热而烧坏制冷片,散热器件主要有电脑散热器,导热硅脂,隔热垫;并且为了使电路散热良好需配备一个散热风扇;该&冰箱&外壳主要由亚克力板搭建而成,并且之后在外层贴加泡沫板以达到更好效果。
& & & &供电部分采用12V开关电源,通过降压模块以及7805稳压芯片实现其他器件供电,不得不说的是此&冰箱&还用到一种强大的模块&&温控模块,从而实现温度控制,降低单片机内存占用,使单片机更高效的完成其他任务。
一、小型冰箱课程概述
小型冰箱具体功能介绍
小型冰箱组成部分
本视频教学安排
二、小型冰箱主要模块介绍
温控模块使用方法
半导体制冷片使用方法
降压模块使用方法
7805稳压模块使用方法
三种开关的使用方法
三、小型冰箱硬件电路搭建
1.& 硬件电路搭建效果
2.& 盖子的制作
3.& 硬件整体结构
4.& 保温效果整体结构
四、小型冰箱程序设计
1. &STC12C5A60S2(增强型51)单片机简单介绍
2. &程序框架介绍
3. &硬件产生PWM方法
五、&小型冰箱OLED介绍
1.& OLED介绍
2.& OLED使用方法介绍
3.& 程序框架
六、小型冰箱课程总结
1.& 电路连线注意事项
2.& PID温度控制简单介绍
3.& 7805稳压电路注意事项
课程细节:
& &本套课程以小型冰箱的制作为例,详细讲解了冰箱设计制作流程、模块的基础知识、程序撰写以及实际开发应用,理论结合实践,基于实例开发讲解,本套课程视频属高清版,目录结构清晰,图文详细解说,以下是部分视频页面截图。
网站功能:
&1.&&&课时简介,方便让你快速了解本课时主讲内容&。
2.&边学边记笔记,记录知识要点,拓展新知,全面透彻来学习。
02886by & & & & CO检测报警仪是家庭生活中检测一氧化碳浓度和超标报警的设备。他的原理是通过CO传感器采集室内的CO浓度,同时通过电压比较器输出数字信号和CO传感器自身的模拟信号。通过手动设置CO的报警浓度(数字量显示),超过响应浓度会自动触发报警模块,蜂鸣器报警,指示灯闪烁。
& & & &CO检测报警仪的设计与开发涉及了传感器技术,电子技术等,对动手能力的培养起到了良好的推动作用。它大致可以分为四个部分:传感器数据采集部分,显示部分、数据输入部分和报警部分。CO报警仪的设计在一定程度上可以应用到实际的家庭环境中,实时测量CO浓度并提醒人们注意开窗通风等。视频教程通俗懂,学员们可以根据视频教程很快制作出一个CO检测报警仪。
课程详情&&&&&& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & &
& & & &本设计主要以8051系列单片机的系统设计为主线,通过对各个模块实例化的设计形式,软硬结合,由浅入深的介绍各个模块的作用和各个模块的实现方式。最后将带领大家制作出一款属于自己的CO检测报警仪。
目录介绍:
第一课 CO检测报警仪概述
1、CO检测报警仪概述
2、CO检测报警仪的组成部分
3、CO检测报警仪的制作清单
4、本视频的教学安排
第二课 畅学MQ-7 CO传感器入门
1、 气体的简单介绍
2、 CO 传感器MQ-7的认识
3、 MQ-7传感器工作原理及特性
4、 LM393芯片在模块中的作用及结构
第三课 畅学硬件开发板介绍(简单介绍)
1、51单片机最小系统 (PCF8591芯片的介绍)
2、IIC总线的介绍
1,IIC的简介及硬件原理;
2,IIC的数据传输的解析
3、AD/DA采集电路介绍
1 , A/D转换的意义和分类;
2,A/D转换模块的介绍
4、LCD1602显示屏驱动电路
1,LCD1602信号管脚简介
2,LCD1602的基本读写操作介绍;
3,51单片机操作LCD1602的流程介绍
5、按键电路
6、蜂鸣器报警电路
第四课 单片机程序设计
1、软件的流程图
2、软件的模块驱动代码调用
3、软件的逻辑设计
4、查询法整体实现
第五课 成果演示与常见问题
1、程序无法下载,找不到串口
2、蜂鸣器不工作
3、显示屏只有背光没有显示
4、成果演示
课程细节:
& & & 本套课程以计算器的制作为例,详细讲解了CO检测报警仪概述、畅学MQ-7 CO传感器入门、畅学硬件开发板介绍、单片机程序设计、成果演示与常见问题,以及控制电路的搭建、程序的编写和调试、总电路的搭建和调试理论结合实践,基于实例开发讲解。本套课程视频属高清版,目录结构清晰,图文详细解说,以下是部分视频页面截图。&
网站功能:
&1.&&&课时简介,方便让你快速了解本课时主讲内容&。
2.&边学边记笔记,记录知识要点,拓展新知,全面透彻来学习。
03582by & & & &很多人学习了STM32后,会有一个共同的特点:只会用一些比较有代表性的硬件功能,比如AD 转换,只能使用单次转换,而循环或是多次转换,就不会用。那就得去看芯片手册,但是问题来了,芯片手册是基于寄存器的,我们学的是库函数,怎么办?本教程就是教大家,一边看芯片手册,一边学习STM32,当然是基于寄存器的。
&&&&&& 江湖上关于用寄存器还是库函数有很多争论,咱们不评论,只想告诉大家一点,学习寄存器的好处,不是为了提高运行效率,而是更好的了解STM32的内部,会用硬件以后,用寄存器还是库函数,其实是一样的。
&&&&&& 另外一点,很多人说寄存器学习很困难,其实不然,很简单的,有的时候,你会发现比库函数更简单,更有条理!来吧,跟我一起学习这《九阴真经》。
课程介绍:
第一章:芯片手册简介与第一个工程的建立实现闪灯
第二章:GPIO详解与按键功能实现
第三章:串口发送功能的实现
第四章:定时器运用(查询法)
第五章:中断处理、串口接收与定时器中断
第六章:SPI实现
第七章:定时器实现PWM输出
第八章:DMA功能的实现
第九章:AD 转换的实现
课程细节:
& & 本套课程视频属高清版,目录结构清晰,图文详细解说,以下是部分视频页面截图。
网站功能:
&1.&&&课时简介,方便让你快速了解本课时主讲内容&。
2.&边学边记笔记,记录知识要点,拓展新知,全面透彻来学习。
()金币:67174个|学分:180383个
视频笔记列表暂无笔记
随时记录您的笔记
关注我们:
畅学电子网,带你进入电子开发学习世界专业电子工程技术学习交流社区,加入畅学一起充电加油吧!已有畅学电子网帐号?可从合作网站帐号登录:错误描述正确信息51单片机的定时器中断---以及什么叫中断
从定时器开始说中断什么叫中断?这个对于刚进入MCU界的人来说是一个难以了解的问题,因为我第一次学单片机的时候就不完全不了解什么叫中断。后来慢慢来知道原来中断是单片机运行到一半突然飞到某个地方运行某些东西运行后又飞回来而已。
后来学着学着就了解到中断的意义了,不过对于第一次接触单片机的人来说,还是很难解说的清楚的。
所以这里我做个比喻吧。假设你客厅的电话来电时,有铃声和闪光提示,而你在房间看书,那么有电话来的时候,你听到铃声,然后放下手上的书,并用书签记录你的页数,再出去听电话。听完后,回到房间,从书签标记的位置继续看你的书。
OK,分析上面的几个动作,电话响并被你听到,那是中断来了;你用书签标记位置,那是现场保护;听电话,就是执行中断咯;听完电话,你要从你刚才标记的地方继续看书,那就是中断执行完毕后回到原中断处继续执行程序。这个就是中断的过程了。
假设没有了中断的话,你会如何?你会用扫描法:电话不会响铃了,只有闪光,但你必须在房间看书,那你只能每看几段,就跑出去看看是否有电话到,如果没有,就跑回去看书,如果有了,那你就听电话吧。很明显,扫描法效率非常低,因为你每看一会书就得花时间看看电话的闪光以判断是否有电话的到来,这样你看书的效率就大大减低了。而且扫描法还有个最大的缺点,就是中断丢失,试想如果你扫描的间隔过大(就是看很久书才去看一下电话),那你极有可能丢了几个重要的来电。
其实上面的比喻,正能很好地表现中断的作用——其实中断就是为了处理突发事件。
对于单片机来说,突发的事情实在太多了,例如用户对单片机输入数据,按键,那都是单片机本身无法估计的事情。外来数据的突然进入,也属于突发事件。这些外部来的突发信号,一般就由单片机的外部中断来处理。外部中断其实就是一个管脚的状态改变引起的中断,在之后会说。
这里先介绍定时器和定时器中断:
在测量控制系统中,常常需要实时时钟,以实现定时控制、定时测量或定时中断等。也常需要计数器以实现对外部事件的计数。MCS-51单片机中有两个(增强型有三个)十六位的定时计数器T0,T1,简称定时器0和定时器1,两者均为可编程定时计数器。
——以上P话抄自《单片微型计算机与接口技术》94页第一段-_-#!!!!!
其实你问清楚什么叫定时器,我真的不知道用什么言语来说。刚学的时候,听过这样一句话“定时器是单片机上的宝贵资源”,当时不了解,为什么这个资源是宝贵的呢??后来才慢慢知道定时器的伟大所在。当然这个是需要一定的时间来领悟的咯,在这里你还是踏踏实实地往下看吧:)
一开始我就说了,看本教材的时候你手上需要至少一本单片机的基础书,什么书随便买本就是了,反正现在的单片机书啊,都是你抄我我抄你的了,都一个样,最重要的还是例子吧。拿起你的书看看单片机的中断寄存器和定时器寄存器吧,咱们要开始写程序咯,时间是不等人D~~~~
单片机方式0是13位的,从来就没用过,有16位不用你用13位?真浪费也~~~
然后是计算装入值,16位啊,就是16位2进制,2的16次方,就是65536了。16位定时器就是从某个所谓的装入值开始自加,加到65536就计满,如果你允许定时器中断,那就有中断来临。所以16位方式装入值的计算很简单:
65536-你要计算的脉冲数=装入值
但我们一般是要定时时间的,而不是单单计多少个脉冲,所以你要计算的脉冲数要转化为时间,跟你说,一个脉冲的时间就是一个机器周期,51的机器周期就是12/晶振值。如果你的晶振是12M那么这样一除就是1US咯。1US整数,算什么都好算,所以你现在知道为什么这么多12M,24M的晶振买了吧,都是为51准备的咯。
#i nclude "reg51.h"
void initTimer(void)
void timer0(void) interrupt 1
//add your code here.
void main(void)
initTimer();
上面的代码是12M晶振下定时10000US的程序,也就是10MS发生一次中断。initTimer()是初始化函数,设置定时值和中断的。
10000US在12M晶振下就是10000个机器周期了,=5(十六进制),所以上面就是TH0=0xd8;TL0=0xf0;
void timer0(void) interrupt
1就是定时器0中断函数,我们不需要理会汇编的中断先,只需要知道当中断来临的时候,程序就自动跳到timer0(void)这个函数运行了,运行完后就会回到原来中断处继续执行原先的程序。
interrupt是C51中的关键字,后面跟有interrupt的函数都是中断函数,那么对应哪个中断呢?请大家参考:一开始为大家介绍的
Keil Software &Cx51 编译器用户手册 中文完整版,(名字太长了,以后叫KEIL手册)的第125页。
中断号 中断地址&
看到了吧,中断号就是对应中断进入地址的,至于什么是中断进入地址?那就是发生某个中断的时候单片机自动跳进的一个地址段了.
对于定时器0来说,就是000BH,所以对应中断号1。其他中断地址看看书就知道了。由上面的表可以看出,KEILC支持32个中断,不过到现在为止,我还没看到过有51单片机有32个中断的:)
好了,进入调试实践中了,把上面的代码敲进去吧,又或者直接下载我这个编译好的工程:
进入工程后,你需要设置点东西:
Information是调试信息,你选择这个东西,才可以在C语言上进行仿真(不管是软还是硬仿真),否则你的仿真环境是汇编的!
软仿真设置:
main()就是在仿真的时候直接跳到MAIN函数上。如果没有选,那就由0地址开始运行。这里说个概念,在C51中,mian()函数并不代表0地址的,要知道,keilc在一开始的时候是需要经过比较多的初始化,例如清空RAM内容,设置堆栈等东西,这些都是不需要你做的,你的用户程序也不包括这些,做完这些初始化后,KEIL才自动跳到你的mian进行处理.
软件仿真是可以选晶振的,我们选的12M。下面的这些东西你就按图中的来选吧,具体内容以后再说。
如果编译成功的话,那么我们就开始第一次的软件仿真咯:
上面的是已经进入仿真状态的了,因为我们选择了Debug Information所以可以在C下面调试,也因为选择了Go till
main()我们可以看到一开始就有个箭头指着main()的第一句话。而程序旁深色的东东,也就是我圈着的东西,就是有效代码段,程序只会在那里跑,也就是那个黄色箭头只会在那个区域跑。现在你已经可以仿真的了,可以选单步,全速来运行了。关于KEIL的具体仿真,将在下一章为大家解说。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。}

我要回帖

更多关于 单片机定时器中断 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信