首页 单片机开发及应用技术--SPCE061A单片机教材书

单片机开发及应用技术--SPCE061A单片机教材书

举报
开通vip

单片机开发及应用技术--SPCE061A单片机教材书 第 8章 µ’nSP™单片机应用及开发技术 317 第8章 µ’nSP™单片机应用及开发技术 本章将介绍 µ’nSP™系列单片机的应用领域,具体讲述 SPCE061A 单片机在通讯、 语音领域里的应用,并详细给出了有关系统的电路原理图、程序流程图以及程序代码, 供读者参考。 8.1 µ’nSP™的应用领域 µ’nSP™家族产品具有电源电压范围和工作速率范围较宽、集成度高、性能价格比 高以及功耗低等特点,故其有非常广泛的应用领域。µ’nSP™家族系列产品,涵盖了非 常广泛的应用。包括:发音与语...

单片机开发及应用技术--SPCE061A单片机教材书
第 8章 µ’nSP™单片机应用及开发技术 317 第8章 µ’nSP™单片机应用及开发技术 本章将介绍 µ’nSP™系列单片机的应用领域,具体讲述 SPCE061A 单片机在通讯、 语音领域里的应用,并详细给出了有关系统的电路原理图、程序流程图以及程序代码, 供读者参考。 8.1 µ’nSP™的应用领域 µ’nSP™家族产品具有电源电压范围和工作速率范围较宽、集成度高、性能价格比 高以及功耗低等特点,故其有非常广泛的应用领域。µ’nSP™家族系列产品,涵盖了非 常广泛的应用。包括:发音与语音识别的微控制器(SPCE 系列)、通信来电辩识应用 的微控制器(SPT660x 系列)、以及通用型微控制器等等,主要体现在以下几个方面: „ 用于数字信号处理 „ 用于开发研制便携式移动终端 „ 用于开发嵌入式计算机应用系统 8.1.1 用于数字信号处理 1. 数字滤波器 (Digital Filter) 数字滤波器是一种计算处理或算法。借助于此,可以将输入的一种数字信号或序 列变换为另一种序列输出。数字滤波器已被广泛地应用于数字语音、数字图像处理以 及模式识别和频谱分析。 数字信号处理器(DSP,Digital Signal Processor)的作用是通过一系列数字来 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 示信号及其信息,并借助数字计算方法变换和处理这些信号。为了构成 DSP,必须 有一种部件能够快速地完成两个数值的乘法运算并将乘积累加于寄存器。“快速”意 味着乘和累加(MAC,Multiply & ACcumulate)较高的运算速度。若以 16 位数值进行 乘和累加,其结果应为 32 位。 显然,µ’nSP™的硬件结构与其指令系统的结合足以构成 DSP应用的硬件 MAC单元, 因而很适用于一些 DSP 方面的应用。 2. 数字信号的压缩编码与解码 通常,用于存储语音、图像等多种媒体信息的数字信号量非常巨大。这无论对于 存储还是对于传输都是很不利的。为了节省存储空间或增强传输效率,自然使人想到: 第 8章 µ’nSP™单片机应用及开发技术 318 将那些暂不运行的数字信号文件用某种算法进行压缩编码,待要运行时再释放还原, 即解码。 3. 数字语音(音乐)信号处理 数字语音(音乐)信号处理是建立在 DSP 硬件基础上。通常 DSP 按运算的复杂程度 分为定点和浮点两类,其根本区别在于数值的 格式 pdf格式笔记格式下载页码格式下载公文格式下载简报格式下载 。定点 DSP 采用整数运算,对于大 容量、低功耗的应用场合较合适;浮点 DSP 用于实数运算,最适宜于高性能且复杂场 合的运算。µ’nSP™可用于定点 DSP 运算,且其成本较低,在语音处理这样的应用场合 最能发挥出其特长。譬如像数字语音(音乐)信号处理中的频移处理算法就可用 µ’nSP™ 实现。 8.1.2 用于开发研制便携移动式终端 随着无线电通信及芯片技术的迅速发展以及电子商务的需求,使得便携移动式终 端越来越朝着强实用性、个性化且时尚化的方向发展。个人数字助理(PDA,Personal Digital Assistant)就是符合这种时尚潮流的便携移动式终端。 若以 µ’nSP™家族产品为主,据 CPU 工作速率、存储容量和负荷能力,添加必要 的外围电路并配合相应的一些外设,便可方便地 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 出实用性强、可靠性高的 PDA 产 品。图 8.1是基于 µ’nSP™的 PDA 基本硬件构成框图,该框图是 PDA 比较全方位的一个 设计 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 。针对不同的要求,可对其外围电路作适当删减修改,而设计出不同功能和 不同价位的各款 PDA 产品。 液晶显示器 无线通信模块 GPS接收模块 耳 机 话 筒 SIM卡接口模块 串行闪存模块 u'nSP功能 键 电阻式触摸屏 图8.1 基于µ’nSP™家族产品的 PDA 硬件构成 图 8.1中的 PDA 可以设计规划如下一些功能: z 内置微型实时操作系统(RTOS, Real-Time Operating System) z 语音识别输入或触摸屏输入 z 无线移动式语音通信 z 无线寻呼机、对讲机 z 双机或多机通信 第 8章 µ’nSP™单片机应用及开发技术 319 z 下载升级软件 z 移动定位导航及位置信息服务 z 家电遥控器 z 个人资料数据库(名片册、医疗档案及家庭理财等) z 皮包工具(字典、计算器、游戏机、学习机、万年历及钟表等) 8.1.3 用于开发嵌入式计算机应用系统 嵌入式计算机系统(ECS,Embedded Computer System)是指专门用于某一应用系 统或设备并隐藏于其中的起关键支配作用的计算机应用系统。ECS 与通用计算机系统 相比有以下一些特征:专用性、可封装性、外来性、实时性及可靠性。所谓外来性一 般是指 ECS 自成一个子系统,与目标系统的其它子系统保持一定的独立性。 在不同的应用领域中对 ECS 有各自特殊的要求。例如: (1) 小型应用系统,一般不需大量的数据处理,只需较强的实时控制功能,且要 求体积小、功耗低等。这类系统如计算机智能化仪表、家电产品的自动控制等。 (2) 简单的工业控制系统,要求有相当强的实时数据处理能力和控制能力。如步 进电机的驱动控制、数据采集、智能测量、汽车工业等。 (3) 比较复杂的系统中若采用分布式多机系统,在某些节点要配置智能 I/O 处理 机对现场信息进行实时测量和控制。由于现场情况复杂,环境恶劣,故要求高可靠性 和抗干扰能力等。如航空航天、尖端武器以及机器人系统等。 对于上述应用领域,第一类通常用 8 位机,如凌阳公司的 SPL 系列微处理器即可 满足要求。而对于第二类则用具有定点 DSP 运算功能的 µ’nSP™系列的 16 位微处理器 实现较为合适。至于第三类则可根据需要选用若干个 8 位机或若干个 8 位机与 µ’nSP™ 系列的 16 位机组合形成分布式多机系统。 µ’nSP™的特点决定其能很好地胜任于从简单到复杂的嵌入计算机系统。具体地可 在如下一些应用领域里进行开发: z 工业控制 … 工厂自动化系统(锅炉、化工、电力等) … 智能化仪器仪表 … 汽车控制(防撞系统、减震系统、静噪系统、燃油喷射系统、通信与音 响等) … 机器人控制 z 消费、娱乐 … 数字机顶盒 … 游戏机、智能玩具、学习机 … 家用电器 z 通信 … 数字留言机 … 数字语音信箱 … 数字免提电话 z 军事 第 8章 µ’nSP™单片机应用及开发技术 320 … 雷达与声纳信号处理 … 导航、制导 … 保密通信 … 全球定位、搜索跟踪 8.2 SPCE061A 单片机的应用举例 单片机的应用非常广泛,为了帮助读者尽快将 SPCE061A 用的得心应手,下面举几 个 SPCE061A 单片机在不同领域中的应用实例,通过这些例子,读者可以对 µ’nSP™系 列产品的应用窥见一斑。 8.2.1 单片机报时及作息时间控制 原理说明 本例所设计的是一个具有报时功能及作息时间控制钟。它利用 SPCE061A 单片机的 2Hz 时基计时,进行年历计算,并用 SPCE061A 的语音功能将它报出来;在进行时间计 算,分每加 1 时,都与规定的作息时间比较,如果相等则进行相应的控制或动作。本 例中假定某高校的作息时间如下所示: 08:00-------08:50 第一节课 09:00-------09:50 第二节课 09:52-------10:05 课间操 10:10-------11:00 第三节课 01:10-------12:00 第四节课 12:00-------13:30 午间休息 13:30-------14:20 第五节课 14:30-------15:20 第六节课 15:21-------15:50 播放歌曲 硬件电路 硬件电路由键盘、声音输出模块和指示灯三部分组成,如图 8.2所示。 系统扩展三个按键用于报时及校正时间。SPCE061A 的 DAC 为电流型输出,经负载 电阻 R11、三极管 8050 驱动扬声器 SPEAKER 放音,SPEAKER 可选用 4Ω或 8Ω扬声器。 IOA15 接一个 LED,到规定的作息时间用 LED 闪烁来表示,使用者可根据具体需要来控 制电铃、播放提示语等。凌阳芯片的工作电压为 3.3v,在图 8.2 中,我们给出了获得 工作电压两种方法。 (1)通过两个二极管连续降压使 5v 的电压降至 3.6v,接近 3.3v 供芯片使用, 这种方法比较简单,但电压值不是很精确。 (2)通过 LM7833 可获得准确的 3.3V 电压。 第 8章 µ’nSP™单片机应用及开发技术 321 VSS VSS VCP OSCI OSCO VSSA VSSP VSS VSSA OSC32O12 OSC32I13 XTEST14 VDD15 XICE16 XICECLK17 XICESDA18 VSS19 PVIN20 DAC121 DAC222 VREF223 VSS24 AGC25 OPI26 MICOUT27 MICN28 PFUSE29 M IC P 33 V C M 34 V R T PA D 35 V D D 36 V M IC 37 V SS 38 IO A 0 41 IO A 1 42 IO A 2 43 IO A 3 44 IO A 4 45 IO A 5 46 IO A 6 47 IO A 7 48 V SS 49 V SS 50 V D D H 51 V D D H 52 IO A 8 53 N C 39 N C 40 NC30 NC31 NC32 IOA9 54 IOA10 55 IOA11 56 IOA12 57 IOA13 58 IOA14 59 IOA15 60 XROMT 61 VSS 62 XSLEEP 63 IOB15 64 IOB14 65 IOB13 66 IOB12 67 IOB11 68 PVPP 69 V D D H 75 IO B 10 76 IO B 9 77 NC 70 NC 71 NC 72 NC 73 NC 74 IO B 8 78 IO B 7 79 IO B 6 80 IO B 5 81 IO B 4 1 IO B 3 2 IO B 2 3 N C 82 N C 83 N C 84 IO B 1 4 IO B 0 5 X R E SB 6 V D D 7 V C P 8 V SS 9 N C 10 N C 11 SPCE061A C25 104 C34 104 C33 104 1 J12 CON1 C26 104 R10 3.3K C32 104 C38 3300p Y1 32768 C36 20p C37 20p C28 104 C29 104 C24 104 +C11 10u 16V + C12 100u 16V VDD ICE_EN1 ICE_SCK ICE_SDA VSS 1 2 3 4 5 PROBE Time UP Down VDD D1 1K 8050 R11 R7 C22 SPEAKER VDD 1042.4K 1K IO A 8 VD D H VS S IO A 7 IO A 6 IO A 5 IO A 3 IO A 1 IO A 2 IO A 4 IO A 0 VC M VM IC M IC P VR T VS S VS S VD D H VD D _A OSCO OSCI ICE_EN ICE_SCK ICE_SDA PVIN DAC1 DAC2 VREF2 VSSA AGC OPI MICOUT MICN PFUSE VSSA XTEST VDD IOB11 IOB12 IOB13 IOB14 IOB15 SLEEP VSS IOA15 IOA14 IOA13 IOA12 IOA11 IOA10 IO B 10 IO B 9 IO B 8 IO B 7 IO B 6 IO B 5 IO B 4 IO B 3 IO B 2 IO B 1 IO B 0 R ES _B VC P VD D H VD D _P VS SP +5v VDDͼ 1 ͼ 2 1 2 3 4 9v OUTIN G N D LM7833 104 104 470uF 470uF VDD IOA9 图8.2 硬件连接图 程序说明 整个程序分为主程序、键盘扫描子程序、万年历计算子程序、校时子程序、播放 语音子程序几部分。 第 8章 µ’nSP™单片机应用及开发技术 322 a) 主程序 程序按照结构化程序设计,所有功能都可通过调用子程序完成,主程序较简单, 流程见图 8.3。SPCE061A 具有低功耗的睡眠模式,在睡眠模式下功耗电流可降到 2μA, 这对于用电池供电的系统非常重要,睡眠模式可以通过按键中断唤醒。 初始化 键唤醒 键扫描 2Hz中断唤醒 调整万年历 按键处理 进入睡眠 有键按下 无键按下 图8.3 主程序流程图 b) 键盘扫描程序 由于机械触点的弹性作用,在键被按下或弹起时会出现电压抖动,从最初按下到 接触稳定要经过数毫秒的弹跳时间,如图 8.4所示。为保证键识别的准确,必须进行 去抖动处理,去抖动有硬件和软件两种方法。硬件方法就是加去抖动电路,从根本上 避免抖动;软件方法有很多种,本例中主要是利用主程序的循环扫描,主程序循环一 次,扫描一次按键,当连续 N 次扫描到的键值都一样时,则说明是稳定的按键值。 键按下 稳定 前沿抖动 后沿抖动 图8.4 键按下的过程 第 8章 µ’nSP™单片机应用及开发技术 323 c) 万年历计算子程序 利用 2Hz 中断做时钟源进行计时,每两次中断秒加 1,并进行年历计算,年历范 围从 2001 年到 3099 年。在进行年历计算时,有平闰年计算问题。闰年的条件是:能 被 400 整除,或者能被 4 整除,但不能被 100 整除。万年历计算子程序流程图见图 8.5。 有2Hz中断? 半秒单元+1 半秒单元=2? 半秒单元=0 秒+1 分+1 秒=60? 分=60? 时+1 时=24? 根据平润年查出本 月有多少天 日<本月天数? 日+1日=1 月+1 月=13? 月=1 年+1 年=3099? 年=2001 Y 分=0 Y Y 时=0 N Y Y 返回 N N N N Y N N 秒=0 Y N Y 图8.5 万年历计算子程序 d) 校时子程序 系统扩展了三个按键,TIME 键用于报时,由于时间包括年月日和时分,按一次 TIME 键,则报年月日,再按一次则报时分。当一直按住 TIME 键 3 秒则进入时间校正状态, 语音报当前是 XXXX 年,按 UP 键年份增加,按 DOWN 键减少;按 TIME 键来切换月、日、 时、分,调整完分后,按 TIME 键确认,语音报出年月日时分。时间增加的流程如图 8.6所示,时间减少的流程与增加的相同,所以不再给出时间减少的流程图。在校正时 间的状态下,如果连续 2 分钟键没有被按下,则自动退出。 第 8章 µ’nSP™单片机应用及开发技术 324 调整状态 年+1 年>3099 年=2001 月+1 月>12 月=1 日+1 日>31 日=1 时+1 时>23 时=0 分+1 分>59 分=0 返回 Y N Y N Y N Y N Y N 当前状态? 年 月 日 时 分 图8.6 校时子程序 e) 播放语音子程序 报时用 SACM-A2000 播放,关于 SPCE061A 放音的子程序,前面章节已有详细介绍, 这里不再介绍。 8.2.2 热敏电阻温度计 常见的玻璃管温度计,是靠管内水银升降来判断温度值的高低。当光线较暗时, 就看不清水银位置,给观察带来不便。这里介绍一种采用热敏电阻测温并用语音 报告 软件系统测试报告下载sgs报告如何下载关于路面塌陷情况报告535n,sgs报告怎么下载竣工报告下载 温度值的热敏电阻温度计,它具有使用方便的优点。 电阻测温原理: 热敏电阻是一种新型半导体感温元件,具有灵敏度高、体积小、寿命长的优点。 热敏电阻可分为正温度系数和负温度系数两种类型。 负温度系数热敏电阻具有负的电阻温度特性,当温度升高时,电阻值减小;当温 度降低时,电阻值增大,其阻值——温度特性曲线如图 8.7所示。热敏电阻的阻值— —温度特性曲线是一条指数曲线,非线性较大,在实际使用中要进行线性化处理,但 比较复杂,一般只使用线性度较好的一段(如图 8.7所示 ab 段)。如果测出热敏电阻 的阻值,就可以算出对应的温度值。 第 8章 µ’nSP™单片机应用及开发技术 325 T0有效范围0 温度 阻值 a b 图8.7 热敏电阻温度特性曲线 硬件电路: 用热敏电阻测温的硬件连接见图 8.8。将热敏电阻 RT 与固定电阻 R 串联,接 3.3V 电源,当温度改变时,RT 阻值改变,其两端的电压随之改变,测量两端的电压,通过 以下公式求得温度值: T=T0-KVT 其中: T——-被测温度 T0——与热敏电阻特性有关的温度参数 K——-与热敏电阻特性有关的系数 VT——热敏电阻两端的电压 此例中选用负温度系数热敏电阻 MFD-502-34,其线性化较好的一段是在-20℃~ 80℃。 第 8章 µ’nSP™单片机应用及开发技术 326 VSS VSS VCP OSCI OSCO VSSA VSSP VSSVSSA OSC32O12 OSC32I13 XTEST14 VDD15 XICE16 XICECLK17 XICESDA18 VSS19 PVIN20 DAC121 DAC222 VREF223 VSS24 AGC25 OPI26 MICOUT27 MICN28 PFUSE29 M IC P 33 V C M 34 V R TP A D 35 V D D 36 V M IC 37 V SS 38 IO A 0 41 IO A 1 42 IO A 2 43 IO A 3 44 IO A 4 45 IO A 5 46 IO A 6 47 IO A 7 48 V SS 49 V SS 50 V D D H 51 V D D H 52 IO A 8 53 N C 39 N C 40 NC30 NC31 NC32 IOA9 54 IOA10 55 IOA11 56 IOA12 57 IOA13 58 IOA14 59 IOA15 60 XROMT 61 VSS 62 XSLEEP 63 IOB15 64 IOB14 65 IOB13 66 IOB12 67 IOB11 68 PVPP 69 V D D H 75 IO B1 0 76 IO B9 77 NC 70 NC 71 NC 72 NC 73 NC 74 IO B8 78 IO B7 79 IO B6 80 IO B5 81 IO B4 1 IO B3 2 IO B2 3 N C 82 N C 83 N C 84 IO B1 4 IO B0 5 X R ES B 6 V D D 7 V C P 8 V SS 9 N C 10 N C 11 SPCE061A C25 104 C34 104 C33 104 1 J12 CON1 C26 104 R10 3.3K C32 104 C38 3300p Y1 32768 C36 20p C37 20p C28 104 C29 104 C24 104 +C11 10u 16V + C12 100u 16V 1 2 3 4 5 PROBE VDD 8050 R11 R7 C22 SPEAKER VDD 104 2.4K 1K 5KRT VDD KEY IO A 8 VD D H VS S IO A 7 IO A 6 IO A 5 IO A 3 IO A 1 IO A 2 IO A 4 IO A 0 VC M VM IC M IC P VR T VS S VS S VD D H VD D _A IOB11 IOB12 IOB13 IOB14 IOB15 SLEEP VSS IOA15 IOA14 IOA13 IOA12 IOA11 IOA10 IO B 10 IO B 9 IO B 8 IO B 7 IO B 6 IO B 5 IO B 4 IO B 3 IO B 2 IO B 1 IO B 0 R ES _B VC P VD D H VD D _P VS SP OSCO OSCI ICE_EN ICE_SCK ICE_SDA PVIN DAC1 DAC2 VREF2 VSSA AGC OPI MICOUT MICN PFUSE VSSA XTEST VDDVDD ICE_EN1 ICE_SCK ICE_SDA VSS IOA9 1 2 3 4 9v OUTIN G N D LM7833 104 104 470uF 470uF VDD 图8.8 硬件连接图 固定电阻 R 阻值的选取: MFD-502-34 型热敏电阻线性化较好的一段是在-20℃——80℃,为了在最高温度 和最低温度时使被测信号基本接近满量程值,采取线性区域内中间某一点温度的阻值 作为固定电阻的值。它们分压后,AD 的输入电压是 AD 的输入电压范围一半。在 25℃ 时热敏电阻的阻值为 5KΩ,所以选取固定电阻 R 的值为 5KΩ。 在-20℃时热敏电阻的阻值为 37.399KΩ,热敏电阻两端电压 VRT=2.9V,接近 A/D 输入电压的上限 3.3V;在 80℃时热敏电阻的阻值为 0.796KΩ,热敏电阻两端电压 VRT=0.45V,接近 A/D 输入电压的下限 0V。 第 8章 µ’nSP™单片机应用及开发技术 327 在温度线性化较好的区域内 SPCE061A 的 A/D 值都没有达到极限值。按照图 8.8接 法时,T0=76,K=0.1022,根据以上公式和参数,测出热敏电阻两端的电压就可以求出 被测温度。 温度计算: 系统扩展了一个按键,接于 IOA15,当按键按下时,就进行 A/D 转换初始化,并 进行 4 次 A/D 转换,SPCE061A 的 A/D 转换结果在高 10 位,每次将其移入低 10 位再计 算 4 次平均值作为 AD 有效结果返回;为了提高准确度,变量 TempAD、Temper 都采用 浮点数,计算完成用语音将温度值报出来。由于在放音时播放函数会改变一些参数, 为了稳定起见,在每次 A/D 转换前都做一次初始化。 由于每个热敏电阻的特性并非一样、与热敏电阻串联的固定电阻的不准确等原因, 每支温度计在整个测量范围内至少找 5 点进行校正,并适当的修改参数以达到最佳状 态。 A/D 转换程序: .PUBLIC _ReadAD _ReadAD: .proc R2=4 //共进行 4 次转换 R3=0 TestLoop: R1=[P_ADC_MUX_Data] //进行一次 AD 转换 R1=0x8000 TempConverLoop: TEST R1,[P_ADC_MUX_Ctrl] JZ TempConverLoop //转换完成? R1=[P_ADC_MUX_Data] //读取 AD 转换值 R1=R1 LSR 4 //将 AD 值移到低 10 位 R1=R1 LSR 2 R3+=R1 //四次 A/D 值累加 R2-=1 JNZ TestLoop R3=R3 LSR 2 //结果除以 4,求 4 次 A/D 值的平均值 R1=R3 //R1-------A/D 返回值 RETF .ENDP 温度计算及语音播报部分程序: if(Key==0x8000) { InitAD(); TempAD=ReadAD(); //进行一次 AD 转换 Temper=76-0.1022*TempAD; //温度计算 if(Temper<-20 | Temper>80) Temper=0xFFFF; //温度超出范围 PlayVoice(Temper); //语音报温 } 第 8章 µ’nSP™单片机应用及开发技术 328 8.2.3 三角波、正弦波、方波波形发生器 此例介绍几种基本波形的形成原理和实现方法。为满足不同的需要,在这个例子 中所有波形的频率都为可调的。下面具体介绍一下波形的形成过程。 1. 原理分析 三角波形成原理:如图 8.9所示三角波的上升沿和下降沿都是由 N 个 DAC 输出的 小阶梯构成,由于阶梯很小,从宏观上看它可以近似成三角波波形,如图 8.9中实线 所画的波形。阶梯之间的时间间隔 t1、t2 由定时器 TimerA 的定时值决定。通过改变 t1、t2 的值来改变三角波上升沿和下降沿的时间 T1、T2,从而改变三角波的频率。 t V T1 T2 t1 t2 0 图8.9 三角波原理图 正弦波形成原理:SPCE061A 的开发环境提供了数学运算函数库 math.lib。利用库 中的 sinf(float<[x]>)函数,sinf(float<[x]>)函数的 x 从 0---2π变化时,就 是一个完整的正弦波。以时间间隔 t 求的波形对应值 32736*sinf(t)(注:32736 为 SPCE061A 的 D/A 输出最大值 0XffC0 的一半),经 SPCE061A 的 D/A 转换在管脚 DAC1 (DAC2)输出,并经电容滤波后就可以从 DAC1(DAC2)管脚得到需要的正弦波。通过 改变时间间隔 t 可以改变正弦波的频率。 正弦信号包括正负半周(波形如图 8.10所示),由于 SPCE061A 无法输出负电平, 所以将正弦信号电平正向偏移 1.65V(最大输出 3.3V 的一半), 具体内容可参见后 面的程序说明部分。 0 π 2π t 0V 1.65V 3.3V t V t 图8.10 正弦波 方波形成原理:如图 8.11所示,在 t1 期间 DAC 输出电压的峰值为 3.3V,t2 期间 DAC 输出 0V 电压。通过改变 t1、t2 的值来改变方波的频率(占空比)。 第 8章 µ’nSP™单片机应用及开发技术 329 t V t1 t20 图8.11 方波 2. 硬件电路 SPCE061A 内部具有 D/A 转换模块,所以其硬件电路很简单,只要在 DAC 的输出端 接一个负载电阻,将 DAC 输出的电流信号转换为电压信号即可。因需要输出不同的波 形,在此例中选用按键方式进行选择,具体电路如图 8.12所示。 VSS VSS VCP OSCI OSCO VSSA VSSP VSS VSSA OSC32O12 OSC32I13 XTEST14 VDD15 XICE16 XICECLK17 XICESDA18 VSS19 PVIN20 DAC121 DAC222 VREF223 VSS24 AGC25 OPI26 MICOUT27 MICN28 PFUSE29 M IC P 33 V C M 34 V R TP A D 35 V D D 36 V M IC 37 V SS 38 IO A 0 41 IO A 1 42 IO A 2 43 IO A 3 44 IO A 4 45 IO A 5 46 IO A 6 47 IO A 7 48 V SS 49 V SS 50 V D D H 51 V D D H 52 IO A 8 53 N C 39 N C 40 NC30 NC31 NC32 IOA9 54 IOA10 55 IOA11 56 IOA12 57 IOA13 58 IOA14 59 IOA15 60 XROMT 61 VSS 62 XSLEEP 63 IOB15 64 IOB14 65 IOB13 66 IOB12 67 IOB11 68 PVPP 69 V D D H 75 IO B1 0 76 IO B9 77 NC 70 NC 71 NC 72 NC 73 NC 74 IO B8 78 IO B7 79 IO B6 80 IO B5 81 IO B4 1 IO B3 2 IO B2 3 N C 82 N C 83 N C 84 IO B1 4 IO B0 5 X R ES B 6 V D D 7 V C P 8 V SS 9 N C 10 N C 11 SPCE061A C25 104 C34 104 C33 104 1 J12 CON1 C26 104 R10 3.3K C32 104 C38 3300p Y1 32768 C36 20p C37 20p C28 104 C29 104 C24 104 +C11 10u 16V + C12 100u 16V VDD ICE_EN1 ICE_SCK ICE_SDA VSS 1 2 3 4 5 PROBE 8050 R11 R7 C22 SPEAKER VDD 1042.4K 1K IOB11 IOB12 IOB13 IOB14 IOB15 SLEEP VSS IOA15 IOA14 IOA13 IOA12 IOA11 IOA10 IOA9 IO B 10 IO B 9 IO B 8 IO B 7 IO B 6 IO B 5 IO B 4 IO B 3 IO B 2 IO B 1 IO B 0 R ES _B VC P VD D H VD D _P VS SP OSCO OSCI ICE_EN ICE_SCK ICE_SDA PVIN DAC1 DAC2 VREF2 VSSA AGC OPI MICOUT MICN PFUSE VSSA XTEST VDD IO A 8 VD D H VS S IO A 7 IO A 6 IO A 5 IO A 3 IO A 1 IO A 2 IO A 4 IO A 0 VC M VM IC M IC P VR T VS S VS S VD D H VD D _A +5V VDD VDD TRI SQU DOWN SET UP STN 图8.12 硬件连接图 第 8章 µ’nSP™单片机应用及开发技术 330 按 TRI 键输出三角波,按 SIN 键输出正弦波,按 SQU 键输出方波。 在输出三角波时,UP 用于增加上升沿 T1 或下降沿 T2 时间,DOWN 键用于减少上升 沿 T1 或下降沿 T2 时间,SET 用于选择上升沿或下降沿。 在输出方波时,UP 用于增加高电平 T1 或低电平 T2 时间,DOWN 键用于减少高电平 T1 或低电平 T2 时间,SET 用于选择高电平或低电平。 在输出正弦波时,UP 用于增加正弦波的周期,DOWN 键用于减少正弦波的周期,在 输出正弦波时请接入滤波电容,输出三角波和方波时不用接入滤波电容。 3. 程序说明 1)三角波 SPCE061A 具有两通道 10 位电流输出型的 DAC(AUD1、AUD2),每通道电流输出为 3mA,在输出端接电阻 R(R 值取 600Ω),则输出的电流便转换为电压。 三角波的上升沿和下降沿都由 100 个小阶梯组成。主程序判断是上升沿还是下降 沿,如果是上升沿,则将 TimerA 的定时值改为 t1;如果是下降沿,则将 TimerA 的定 时值改为 t2,则三角波上升沿时间为 100*t1、下降沿时间为 100*t2。定时器 TimerA 的时钟源采用 12.288M,定时器初值计算: M1=65535-(12288*T_High)/1000; //t1 初值。定时器初始值=FFFF-(定时时钟×上升沿时间)/1000 M2=65535-(12288*T_Low)/1000; //t2 初值 DAC 数据的输出由中断程序完成。 2)方波: 在方波的高电平,DAC 输出最大值 0xFFC0,在低电平时 DAC 输出最小值 0,方波 高、低电平的宽度由定时器 TimerB 定时值确定。方波的占空比为 D=t1/(t1+t2)。 3)正弦波: 正弦波是靠调用库函数 sinf(x)产生,当弧度在 0-2π之间变化时,sinf(x) 的值在-1~1 的范围内,将 sinf(x)的值乘以 32736(0XffC0 的一半),即将波形放 大并将 0 点偏移到 1.65V,波形对应 AD 值计算部分程序: mx= mz * PI/2; //计算弧度值 my = sinf(mx); //计算 sinf(mx) vv= (int) 32736 * my; //值 vv ^= 0x8000; //最高位取反 outdac(vv); //DA 输出 delay10ms(DelTime); //延时 t mz=mz+0.02; //增量 if(((unsigned int)mz)== 4) mz=0; //循环 当弧度在 0-π之间变化时 sin(x)* 32736 的值为正(最高位为 0),经 D/A 转 换之后其波形如图 8.13中虚线 a 所示,当弧度在π-2π之间变化时 sin(x)* 32736 值为负(二进制补码表示,最高位为 1),经 D/A 转换之后其波形如图 8.13中虚线 b 所 示,将最高位取反后的 D/A 输出波形如图 8.13实线 A、B 所示。 第 8章 µ’nSP™单片机应用及开发技术 331 0 π 2π 0V 1.65V 3.3V a A b B v t 图8.13 正弦波 8.2.4 红外遥控 红外线遥控是目前使用最广的一种遥控手段。红外线遥控装置具有体积小、功耗 低、功能强、成本低等特点,因而继彩电、录像机之后,在录音机、音响设备、空调 机,以及玩具等其它小型电器装置上也纷纷采用红外线遥控。 1. 原理分析 1) 遥控指令编码规律 遥控器所发送的功能指令码一般采用多位二进制串行码,本例程序是海尔 29T6B-T 型彩色电视的红外遥控码,其编码规律为:头脉冲、系统码、资料码、资料反码和结 束位。头脉冲用作一帧命令的起始位;系统码用于区别不同类的电器;资料码用于完 成命令功能。海尔 29T6B-T 型彩色电视的系统码为 0x08,资料码见表 8.1,资料反码 是将资料码按位取反的码。每次进行发送都是先发送脉宽 4510us、周期 2*4510us 的 头脉冲,然后连续发送两次系统码、接着发送资料码及资料反码、最后发送结束位, 波形见图 8.14。 4510us 4510us 头脉冲 系统码 系统码 资料码 资料反码 8位 8位 8位8位 结 束 位 图8.14 遥控指令编码图 第 8章 µ’nSP™单片机应用及开发技术 332 表8.1 遥控器资料码表 遥控功能 资料码 遥控功能 资料码 1 00 AV 0F 2 01 CH- 10 3 02 CH+ 11 4 03 VOL- 12 5 04 VOL+ 13 6 05 MUTE 14 7 06 SLEEP 15 8 07 DISPLAY 16 9 08 SMPX 17 0 09 MENU 1C -/--/--- 0A SCAN 1E POWER 0B VOL M 2A SYSTEM 0C 2) 数据的脉冲编码 红外通讯数据采用脉冲编码,所谓脉冲编码,就是将每位数据信号用一个脉冲来 表示。例子程序的红外编码以脉宽 561µs、周期 4*561µs 代表“1”;以脉宽 561µs、 周期 2*561µs 代表“0”。脉冲信号都调制在占空比为 1/3,频率为 38kHz 的载波上再 发送出去,调制后的信号“1”和“0”如图 8.15所示。这样做有两点好处:第一,减 少了有效的发射时间,有利于降低平均功耗,这对于采用干电池供电的发射器十分重 要;第二,外部干扰信号多为缓变信号,有利于抗干扰。 1信号 0信号 38k 38k 561us 561uS 561us*3 561uS 图8.15 信号 0 和 1 2. 硬件电路 系统由键盘电路和红外发射电路组成,利用 SPCE061A 的 IOA 口扩展了 4*8 键盘矩 阵;发射电路中三极管 Q1(选用 8050)用于对信号放大,R4 选用 200Ω电阻,R5 选 用 10Ω电阻,C5 选用 220μF,D1 为红外发射管。见图 8.16。 各个按键功能如表 8.2所示: 第 8章 µ’nSP™单片机应用及开发技术 333 表8.2 按键功能表 按键 遥控功能 按键 遥控功能 S1 MUTE S14 8 S2 AV S15 9 S3 SLEEP S16 SYSTEM S4 POWER S17 -/--/--- S5 1 S18 0 S6 2 S19 SMPX S7 3 S20 DISPLAY S8 SCAN S21 CH+ S9 4 S22 MENU S10 5 S23 CH- S11 6 S24 VOL- S12 VOL M S25 VOL+ S13 7 OSCO OSCI ICE_EN ICE_SCK ICE_SDA PVIN DAC1 DAC2 VREF2 VSSA AGC OPI MICOUT MICN PFUSE IOB11 IOB12 IOB13 IOB14 IOB15 SLEEP VSS IOA15 IO B 10 IOA14 IO B 9 IOA13 IO B 8 IOA12 IO B 7 IOA11 IO B 6 IOA10 IO B 5 IOA9 IO B 4 IO B 3 IO B 2 IO B 1 IO B 0 R ES _B VC P IO A 8 VD D H VS S IO A 7 IO A 6 IO A 5 IO A 3 IO A 1 IO A 2 IO A 4 IO A 0 VC M VM IC M IC P VSS VD D H VSS VR T VS S VD D _P VSSA VCP OSCI OSCO VS S VD D H VD D _A XTEST VSSA VSSP VSS VS SP VDD OSC32O12 OSC32I13 XTEST14 VDD15 XICE16 XICECLK17 XICESDA18 VSS19 PVIN20 DAC121 DAC222 VREF223 VSS24 AGC25 OPI26 MICOUT27 MICN28 PFUSE29 M IC P 33 V C M 34 V R T PA D 35 V D D 36 V M IC 37 V SS 38 IO A 0 41 IO A 1 42 IO A 2 43 IO A 3 44 IO A 4 45 IO A 5 46 IO A 6 47 IO A 7 48 V SS 49 V SS 50 V D D H 51 V D D H 52 IO A 8 53 N C 39 N C 40 NC30 NC31 NC32 IOA9 54 IOA10 55 IOA11 56 IOA12 57 IOA13 58 IOA14 59 IOA15 60 XROMT 61 VSS 62 XSLEEP 63 IOB15 64 IOB14 65 IOB13 66 IOB12 67 IOB11 68 PVPP 69 V D D H 75 IO B 10 76 IO B 9 77 NC 70 NC 71 NC 72 NC 73 NC 74 IO B 8 78 IO B 7 79 IO B 6 80 IO B 5 81 IO B 4 1 IO B 3 2 IO B 2 3 N C 82 N C 83 N C 84 IO B 1 4 IO B 0 5 X R E SB 6 V D D 7 V C P 8 V SS 9 N C 10 N C 11 U1 SPCE061A C25 104 C34 104 C33 104 1 J12 CON1 R10 3.3K C32 104 C38 3300p Y1 32768 C36 20p C37 20p C28 104 C29 104 C24 104 +C11 10u 16V VDD ICE_EN1 ICE_SCK ICE_SDA VSS 1 2 3 4 5 PROBE S24 S19 S20 S1 S5 S9 S13 S28 VSSA C26 104 + C12 100u 16V S14 S15 S10 S6 S2 S11 S7 S3 S4 S8 S12 S16 S17 S18 S32 S23 . S22 S21 S27 S26 S25 S31 S30 S29 R4 12¦¸ 8050 R5 10¦¸ D1 VDD 220uF 图8.16 红外线遥控装置硬件连接 3.程序设计 第 8章 µ’nSP™单片机应用及开发技术 334 SPCE061A 的 IOA0-IOA7 设置为输入时具有按键唤醒功能,例子程序中将其设置为 带下拉电阻的输入口,IOA8-IOA11 设置为带数据缓存器的输出口。键盘程序比较简单, 此处不做详细介绍。串行码的发送主要用到 SPCE061A 的 TimerA 和 TimerB 两个定时器, IOB8 编程为第二功能时,可以由定时器 TimerA 控制输出占空比可调的脉宽调制信号 APWMO,38K 载波信号就是利用 TimerA 的 APWMO 输出产生,将 APWMO 信号频率设置为 38K,串行码为 1 时打开 APWMO 输出,为 0 时关闭 APWMO 输出(输出低电平);用 TimerB 控制脉冲宽度,发射流程见图 8.17(a),头脉冲、0信号、1信号的发射流程见图 8.17(b)。 取发射数据 发射初始化 发射头脉冲 发射系统码 发射资料码及反码 发射结束位 打开38K载波 高电平时间到? 关闭38K载波 低电平时间到? Y N N Y (a) (b) 发射结束位 图8.17 程序流程图 8.2.5 SPCE061A 做语音录放 录音时,通过 A/D 转换器将语音信号转换成数字信号,编码后存入存储器中;放 音时,将数据从存储器中取出并解码,然后经 D/A 转换变成语音信号输出。 1. 原理分析 1)录音 SPCE061A 的 A/D 转换器有 8 个通道,其中有 1 个通道是 MIC-IN 输入,它专门用 于对语音信号进行采样。语音信号经 MIC 转换成电信号,由隔直电容隔掉直流成分, 然后输入至 SPCE061A 内部前置放大器。SPCE061A 内部自动增益控制电路 AGC 能随时 跟踪、监视前置放大器输出的音频信号电平,当输入信号增大时,AGC 电路自动减小 放大器的增益;当输入信号减小时,AGC 电路自动增大放大器的增益,可使进入 A/D 的信号保持在最佳电平,又可使削波减至最小。 第 8章 µ’nSP™单片机应用及开发技术 335 A/D 转换器对输入的音频信号进行 8kHz 采样,并按照凌阳音频编码格式进行编码, 每秒将占用 16kBits 的存储器空间。系统扩展了一块容量为 1Mbits 的 SRAM 存储器 HM628128A 来存储语音数据。 2)放音 将 HM628128A 中存储的语音数据顺序取出,解码后,以 8kHz 的速率进行 D/A 转换 输出,经电容滤波后,恢复原始语音波形,通过三极管驱动扬声器放音。 2. 硬件电路 HM628128A 与 SPCE061A 的连接电路见图 8.18,由 SPCE061A 的 IO 口完成地址线、 数据线和控制线扩展功能。系统扩展了三个按键,REC 用于开始录音,PLAY 用于放音, STOP 用于停止录音或放音。 VSS VSS OSCI OSCO VSSA VSSVSSA C25 104 C34 104 C33 104 1 J12 CON1 C2
本文档为【单片机开发及应用技术--SPCE061A单片机教材书】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_538513
暂无简介~
格式:pdf
大小:981KB
软件:PDF阅读器
页数:0
分类:生产制造
上传时间:2010-10-11
浏览量:18