第3章 微控制器应用系统综合设计.ppt_第1页
第3章 微控制器应用系统综合设计.ppt_第2页
第3章 微控制器应用系统综合设计.ppt_第3页
第3章 微控制器应用系统综合设计.ppt_第4页
第3章 微控制器应用系统综合设计.ppt_第5页
已阅读5页,还剩150页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第3章 微控制器应用系统综合设计,第3章 微控制器应用系统综合设计,教学提示: 本章以通用的MCS-51微控制器为例,讲述了微控制器应用系统综合设计中将涉及的主要问题和解决办法。 本章主要内容包括三节。第3.1节讲述了微控制器应用系统综合设计中将涉及的三个问题:微控制器的发展趋势、应用及选择和综合设计的一般过程。第3.2节介绍了以微控制器为核心的应用系统硬件模块设计和相应的接口模块程序设计,重点介绍了人机接口设计和总线接口设计等。第3.3节介绍了微控制器应用系统程序设计的一些技巧和方法:编程语言的选择、程序设计规范、汇编编程、C51编程以及汇编和C51的混合编程。第3.2节、3.3节是本章的重

2、点。第3.3节中的汇编和C51的混合编程是本章的难点。,第3章 微控制器应用系统综合设计,教学要求 让学生理解和掌握微控制器应用系统综合设计的一般过程和方法。重点让学生学会针对不同的应用系统,应根据不同的具体要求,合理地、灵活地应用相关的知识来解决问题。 建议在教学中结合相应的实验,全面理解以微控制器为核心的应用系统综合设计方法。,第3章 微控制器应用系统综合设计,3.1 单片机应用系统综合设计概述 3.2 单片机应用系统硬件及接口设计 3.3 单片机应用系统程序设计,3.1 单片机应用系统综合设计概述,3.1.1 单片机的发展趋势 3.1.2 单片机的应用及选择 3.1.3 单片机应用系统综

3、合设计的一般过程,3.1.1 单片机的发展趋势,单片机的发展经历了以下几个发展阶段: 上世纪七十年代后期,单片机由4位发展到8位,采用NMOS工艺,速度低,功耗大,集成度低。这段时期代表的产品主要有:MC6800,Intel8048等。 八十年代,以8位单片机为主,主要采用CMOS工艺,并逐渐被高速低功耗的HMOS工艺代替。这段时期代表的产品主要有:MC146805,Intel8051等。 上世纪末,单片机的发展可以说是百花齐放、百家争鸣的时期,世界上各大芯片制造公司都推出了自己的单片机,从8位、16位到32位,数不胜数,应有尽有。主核有与主流80C51系列兼容的,也有不兼容的。它们各具特色,

4、为单片机的应用提供广阔的选择空间。从有关的市场调查来看,这个时期仍然是8位机唱主角。 到本世纪,几大主流单片机制造公司都在主推16位单片机和32位机。尽管有更高位机取代8位机的发展趋势,但是据有关的市场分析,目前占有绝大部分市场且极具发展前途的仍是8位机和16位机,而且还将在一定时期内保持这种状况。在中小型应用系统综合设计中,多数应用仍采用以80C51为核心的单片机。,单片机的发展趋势,目前,兼容80C51系列结构和指令系统的单片机主要有爱特梅尔(Atmel)公司的系列产品、飞利浦(Philips)公司的系列产品和中国台湾的华邦(Winbond)公司的系列产品等。 另外不兼容80C51系列结构

5、和指令系统的单片机主要有Microchip公司的PIC精简指令集(RISC)系列产品、MOTOROLA公司的系列产品以及日本几大公司的专用单片机等。,单片机的发展趋势, 低功耗 随着芯片制造技术和电源技术的发展,低功耗、宽工作电源电压的单片机将成为主流。目前,多数单片机的制造采用了CHMOS(互补高密度金属氧化物半导体)工艺,使得单片机具备了高速和低功耗的特点,更适合于在要求低功耗(如电池供电)的应用场合。这种工艺将是今后一段时期单片机发展的主要方向。如TI(德州仪器)的MSP430新型FLASH单片机在1MHz、3V供电情况下,典型工作电流为350uA。另外,有些单片机芯片的工作电压已降到2

6、V或以下了,使得这些单片机的功耗大大降低。,单片机的发展趋势, 单片化 SOC(片上系统)和SOPC(片上可编程系统)是电子应用系统发展的趋势。现在虽然单片机的品种众多,但内核大同小异。它们的最大不同之处是,各个制造商给单片机集成了不同的单元电路,如A/D转换器、D/A转换器、比较器、内部RC振荡器、看门狗、PWM输出、MP3解码器和播放器、LCD驱动电路、I2C总线接口、USB接口、CAN控制器等。单片机包含的单元电路越多,功能就越强大。 另外,现在的产品普遍单片机不但功能强、功耗低,还要体积小、重量轻。这就要求单片机都具有多种封装形式,其中SMD(表面封装)越来越受欢迎,使得由单片机构成的

7、系统正朝微型化方向发展。,单片机的发展趋势, 多品种共存 现在虽然单片机的品种繁多,各具特色,但仍以80C51为核心的单片机占主流。不同制造商的单片机具有不同的特色和专长,分别适合于不同的应用领域。在一定的时期内,这种情形将得以延续,不存在某个单片机一统天下的垄断局面。,3.1.2 单片机的应用及选择,如上节所述,单片机的品种繁多,各具特色,分别适合于不同的应用领域。那么在应用及选择上有哪些考虑呢?这就是本小节要解决的问题。 目前单片机的应用已渗透到我们生活的各个领域。从导弹的导航装置、飞机上各种仪表的控制,到工业自动化过程的实时控制及数据处理和传输,从民用轿车的安全保障系统,到录像机、摄像机

8、、全自动洗衣机的控制,以及程控玩具、电子宠物等等场合,都使用了少则一两片,多则几十上干片单片机。因此,单片机应用系统综合设计在电子系统综合设计中占有十分重要的地位。,单片机的应用及选择,在单片机应用系统中,单片机是核心。选择一款合适的单片机是十分重要的。为确保应用系统的整体性能指标,在选择单片机时,首先要考虑以下几个方面的问题: (1) 字长和指令功能; (2) 存储器容量大小; (3) 集成的外设模块功能; (4) 开发设备和工具; (5) 开发成本和周期。 此外可能还需要考虑系统功耗、体积大小、可靠性等。,单片机的应用及选择,从前面介绍的单片机的发展趋势可知,以80C51为核心的单片机有着

9、各种具有不同外设功能的成员,有着广泛的选择空间。在实际的应用系统设计中,可根据相应的系统要求,综合考虑各种因素,选用适用的单片机。 例如,考虑到电路板空间和成本,应使外围部件尽可能少。一般来说,80C51系列单片机最多有512字节的RAM和32K字节的程序存储器(EPROM或FLASH)。有时只要使用系统内置的RAM和程序存储器就可以了,应充分利用这些部件,不再需要外接RAM和程序存储器,这样就省下了I/O口,可用来和其它器件相连。当需要I/O口数量少并且程序代码较短时,使用28脚或更少管脚的80C51单片机可节省不少版面空间。,3.1.3 单片机应用系统综合设计的一般过程,3.1.3 单片机

10、应用系统综合设计的一般过程 和其他应用系统设计一样,单片机应用系统综合设计过程也有规律可循。设计者首先必须明确自己所设计的系统完成什么功能,达到什么样的性能。其次必须考虑如何以最少的资源、以最快的开发速度、以可靠的性能完成设计任务。,单片机应用系统综合设计的一般过程,单片机应用系统综合设计的一般过程大体上可以分为以下几个阶段: (1) 确定设计任务书,分析系统功能指标,拟定系统总体设计方案 (2) 硬件设计、软件设计及调试 (3) 系统联调,性能测试 (4) 编制设计文件,单片机应用系统综合设计的一般过程,(1) 确定设计任务书,分析系统功能指标,拟定系统总体设计方案 首先,必须进行认真细致的

11、调查研究,深入了解用户的需求,结合目前国内外相关的技术水平,进行项目分析,确定要完成的任务和应具备的功能和技术指标,在综合考虑各种因素后,提出系统总体设计方案。 总体设计首先要合理安排单片机软件和硬件应完成的任务和功能;其次选择确定系统采用的硬件种类和数量,绘出系统硬件的构成框图;同时还需完成软件设计任务分析,绘出系统软件构成框图。 总体设计一般还要将系统设计按功能模块分解成若干课题,拟定详细的工作计划,使各项设计工作得以协调开展。,单片机应用系统综合设计的一般过程,(2) 硬件设计、软件设计及调试 硬件设计一般应注意以下一些基本原则: a. 采用典型电路,力求标准化。可以少走弯路,缩短开发周

12、期。 b. 选择新型器件。避免因器件厂商停产和转产带来的不便。 c. 系统扩展和配置要留有余地。以备将来更新换代。 d. 尽可能以软代硬。提高可靠性和方便修改。 这里列出的是主要的一些原则,其他还有一些事项也必须引起注意,如可靠性设计、抗电磁干扰设计、自诊自测电路设计、结构工艺等。,单片机应用系统综合设计的一般过程,关于单片机的软件设计,近年来多推崇以C51语言为主,以汇编语言为辅。采用C51语言不必对单片机和硬件接口的结构有很深入的了解,编译器可以自动完成变量存储单元的分配,编程者只需专注于应用软件部分的设计,可大大加快软件的开发速度。采用C51语言可以很容易地进行单片机的程序移植工作,有利

13、于产品中单片机的重新选型。汇编语言主要用在时间要求比较严格的模块中。用C51语言进行80C51单片机程序设计是单片机开发与应用的必然趋势。另外,软件设计应尽量采用结构化设计和模块化编程的方法,有利于调试和修改。 硬件调试主要有两个工作:一是硬件电路检查;二是硬件电路运行检查,可能需要结合软件进行。软件调试主要是指在单片机开发系统下进行的仿真调试。,单片机应用系统综合设计的一般过程,(3) 系统联调,性能测试 系统联调主要完成排除单片机应用系统中的软、硬件故障。在该阶段还必须进行系统性能指标测试,以确定是否满足设计要求,并写出测试报告。,单片机应用系统综合设计的一般过程,(4) 编制设计文件 该

14、文件不仅是单片机应用系统综合设计工作的总结,还是系统使用、维护等的重要资料。,3.2 单片机应用系统硬件及接口设计,3.2.1 时钟电路设计 3.2.2 复位电路设计 3.2.2 复位电路设计 3.2.4 显示器接口设计,单片机应用系统硬件及接口设计,3.2.5 语音接口设计 3.2.6 单总线接口设计 3.2.7 I2C总线接口设计 3.2.8 SPI总线接口设计,3.2.1 时钟电路设计,时钟电路是数字电路的核心。 MCS-51单片机的时钟电路设计通常有两种形式:采用内部振荡方式和采用外部振荡方式。如图3.2.1和3.2.2所示。,时钟电路设计, 内部振荡方式:MCS-51单片机片内有一个

15、用于构成振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。把这两个引脚与作为反馈元件的晶体或陶瓷谐振器连接,就构成了内部自激振荡器并产生振荡时钟脉冲,如图3.2.1所示。 晶体或陶瓷谐振器的频率一般为1.212MHz,但需要根据单片机的具体要求而定。两个电容C1和C2的容量一般为30pF左右,需要根据晶体或陶瓷谐振器生产厂家的建议而定。,时钟电路设计, 外部振荡方式:外部振荡方式就是把外部已有的时钟信号(如有源晶体振荡器产生的时钟信号)引入单片机内,如图3.2.2所示。,3.2.2 复位电路设计,系统要能长时间可靠工作,离不开复位电路。复位电路可在单片机运行出

16、错或进入死循环时,通过复位使系统重新运行。 MCS-51单片机复位电路主要有上电复位电路和其他复位(如手动复位和专用复位电路复位)电路。上电复位电路和按键复位电路如图3.2.3所示。,复位电路设计,另外还可以采用专用复位电路,如看门狗MAX705/MAX708/MAX709等,当单片机程序在设定的一段时间内没有响应,该专用复位电路将使单片机复位。,3.2.3 键盘接口设计,作为应用系统的信息输入设备,键盘是人机互动的主要设备之一。 在设计键盘接口时,主要需要解决以下几个问题:检测是否有按键按下;判别是哪一个按键按下;按键抖动消除以及有多个按键按下的处理等。 在单片机应用系统中,根据按键和单片机

17、I/O口的连接方式,键盘接口主要有两种,即独立式键盘接口和行列式键盘接口。,键盘接口设计,1. 独立式键盘接口 独立式键盘接口电路如图3.2.4和图3.2.5所示。独立式键盘是指直接用I/O口线构成的单个按键电路。每根I/O口线上按键的工作状态不会影响其他I/O口线的工作状态。CPU通过向此I/O口发出读指令来得到当前按键的状态。键未按下时,此信号为“1”(高电平),键按下时,此信号为“0”(低电平)。 根据键盘接口电路,独立式键盘状态的监测方法主要有两种:中断方式和查询方式,分别如图3.2.4和3.2.5。,键盘接口设计,中断方式,键盘接口设计,查询方式,键盘接口设计,2. 行列式键盘接口

18、行列式键盘接口电路如图3.2.6和图3.2.7所示。按键设置在行列线交点上,行列线分别连接到按键开关的两端。 和独立式键盘状态的监测方法一样,行列式键盘状态的监测方法也分为中断方式和查询方式两种。,键盘接口设计,采用查询方式的行列式键盘接口,键盘接口设计,图3.2.6为采用查询方式的行列式键盘接口。当行线通过上拉电阻接+5V时,被钳位在高电平状态。键盘中有无按键按下是由列线(D0D3)送入全扫描字和行线(D4D7)读入行线状态来判断的。键盘中哪一个键按下可由列线逐列置低电平后,检查行输入状态来判断。,键盘接口设计,采用中断方式的行列式键盘接口,键盘接口设计,图3.2.7为采用中断方式的行列式键

19、盘接口。按键中断的处理程序一般也采用编程扫描方式。键盘扫描法是在判定有键按下后逐列(或逐行)置低电平,同时读入行(或列)的状态,如果行(或列)的状态出现非全1状态,这时0状态的行、列交点的键就是所按下的键。特点是逐列(或逐行)扫描查询。这时相应行(或列)应有上拉电阻接高电平。,键盘接口设计,键盘扫描子程序流程图如图3.2.8。 在键盘扫描子程序中主要要完成下述几个功能: (1) 判断键盘上有无键按下; (2) 去除按键的机械抖动影响; (3) 判断按键的键号。,键盘接口设计,另外,如果MCS-51单片机的串行口不作通讯用,可以使用串行口来扩展键盘。其电路原理如图3.2.9所示。,3.2.4 显

20、示器接口设计,作为应用系统的信息输出设备,显示器是人机互动的主要设备之一。 本节将介绍目前在单片机应用系统中使用较多的两种显示器(LED显示器和LCD显示器)的使用。,显示器接口设计,1. LED显示器接口 LED显示器是由多段发光二极管显示字段的显示器件。在单片机应用系统中通常使用的是七段LED。这种显示块有共阴极与共阳极两种,如图3.2.10所示。,显示器接口设计,LED显示器有两种显示方式:静态显示方式和动态显示方式。LED静态显示方式如图3.2.11所示;,显示器接口设计,LED动态显示方式如图3.2.12所示。,显示器接口设计,两种方式相比较,静态显示方式的优点是显示亮度大。 在单片

21、机应用系统中使用多位LED显示器时,为节约单片机的I/O口线,多采用如图3.2.12的动态显示电路。,显示器接口设计,2. LCD显示器 LCD (Liquid Crystal Display:液晶显示器)显示器以其功耗极低、体积小、显示内容丰富、超薄轻巧的诸多优点,在控制、袖珍式仪器仪表和低功耗应用系统中得到越来越广泛的应用。,显示器接口设计,1) LCD显示器简介 LCD显示器是一种将液晶显示器件、连接件、集成电路、PCB线路板、背光源、结构件装配在一起的组件。有的参考书称之为“液晶显示模块”。当前市场上的LCD显示器主要有数显液晶、字符液晶和图形液晶三大类。 (1) 数显液晶 (2) 点

22、阵字符型液晶 (3) 点阵图形液晶,显示器接口设计,(1) 数显液晶 数显液晶是一种由段型液晶显示器件与专用的集成电路组装成一体的功能部件,只能显示数字和一些固定的标识符号。这种显示器件大多应用在便携、袖珍设备上。由于这些设备体积小,所以尽可能不将显示部分设计成单独的部件,即使一些应用领域需要单独的显示组件,那么也应该使其除具有显示功能外,还应具有一些信息接收、处理、存储传递等功能,由于它们具有某种通用的、特定的功能而受市场的欢迎。,显示器接口设计,常见的数显液晶有以下几种。 a. 计数数显液晶 计数数显液晶是一种由不同位数的七段型液晶显示器件与译码驱动器,或再加上计数器装配成的计数显示部件。

23、它具有记录、处理、显示数字的功能。目前我国市场上能够见到的主要产品有由CD4055译码驱动器驱动的单位液晶显示器件显示模块,以及由HD44100、ICM72xx等集成电路与相应配套的液晶显示器件组装成的4位、6位、8位、10位、12位、16位计数模块。,显示器接口设计,b. 计量数显液晶 计量数显液晶是一种有多位段型液晶显示器件和具有译码、驱动、计数、A/D转换功能的集成电路组装而成的模块。由于所用的集成电路中具有A/D转换功能,所以可以将输入的模拟信号转换成数字显示出来。只要配上一定的传感器,这种模块就可以实现相应量值的计量和显示,使用起来十分方便。 计量数显液晶的型号主要有ICL71xx系

24、列,这些集成电路的功能、特性决定了计量模块的功能和特性。,显示器接口设计,c. 计时数显液晶 计时数显液晶是将液晶显示器件与计时集成电路组装在一起的、功能完整的计时器模块。一般计时数显液晶还具有定时、控制功能。,显示器接口设计,(2) 点阵字符型液晶 点阵字符型液晶模块是由点阵字符液晶显示器件和专用的行、列驱动器、控制器及必要的连接件、结构件装配而成的,可以显示数字和西文字符。是一类专用于显示字母、数字和自定义符号(简称字符)的液晶显示模块。 这种点阵字符模块本身具有字符发生器,显示容量大,功能丰富。这种模块的点阵排列是由58或511的一组组像素点阵排列组成的。显示时,每个字符占一个字符位,字

25、符位之间有一个点距的间隔起着字符间距和行距的作用。正由于行和列的间隔,这类模块只能显示字符而不能显示图形。 点阵字符型液晶在单片机应用系统设计中使用较多,后面我们将以实例作较详细的介绍。,显示器接口设计,(3) 点阵图形液晶 点阵图形液晶与点阵字符型液晶不同的是点阵像素连续排列,行和列在排布中均没有空隔,因此可以显示连续、完整的图形。当然,也可以显示字符。,显示器接口设计,2) 字符型液晶显示模块使用举例 (1) 162字符型液晶显示模块介绍 字符型液晶显示模块的性能由所采用的控制器决定,主要包括控制模块、显示驱动和接口电路三个部分。 这里以采用HD44780U控制器的162字符型液晶显示模块

26、为例。,显示器接口设计,字符型液晶显示模块的引脚主要分为3类:数据线(D0D7);控制线(RS、R/W、E);电源线(VDD、VSS、V0)。下面分别说明。 D0D7:数据总线。用于与单片机数据总线连接。 RS:Register Select(寄存器选择信号)。RS为1时,选择数据寄存器;RS为0时,选择控制寄存器或状态寄存器。,显示器接口设计,R/W:读写信号。R/W为1时,表示从LCD的控制器读取数据;R/W为0时,表示数据写入LCD的控制器。 E:芯片使能信号。 VDD、VSS:分别为电源线和地线。该LCD电源为5V。 V0:字符明暗对比度调节引脚。可以接一只可变电阻,调节输入电压,从而

27、调节明暗对比度。此脚接地时,将得到最大的明暗对比。 字符型液晶显示模块的操作主要是通过管脚E、R/W、RS的不同电平组合来完成的。如表3.2.1所示。,显示器接口设计,“功能设定”寄存器主要用于设定数据长度和显示格式。其中DL用于设定数据的长度,当DL为1时,数据为8位(D7D0),当DL为0时,数据为4位(D7D4)。N用于设定显示的行数,N为1时,显示2行,N为0时,显示1行。F用于设定字型规格,F为1时,字型规格为511,F为0时,字型规格为58。 “设定CG RAM地址”寄存器:写入设定CG RAM地址的寄存器后,紧接着的指令必须是写入或读出CG RAM数据的指令。 “设定DD RAM

28、地址”寄存器:写入设定DD RAM地址的寄存器后,紧接着的指令必须是写入或读出DD RAM数据的指令。 “读忙标志(BF)及地址计数器”寄存器中BF为1表示LCD控制器还在执行前一指令,此时不可进行其他操作,直到BF为0。地址计数器的内容为CG RAM或DD RAM的地址。,显示器接口设计,(2) 162字符型液晶显示模块与MCS-51单片机的接口及编程 MCS-51单片机与该类字符型液晶显示模块最简单的接口方式是直接访问方式。即把字符型液晶显示模块作为I/O设备直接挂在MCS-51单片机总线上:D0D7共8位数据总线与MCS-51单片机的数据总线P0连接;E信号由WR和RD信号逻辑与非后产生

29、;RS信号由地址A0提供,R/W由地址Al提供。地址需要锁存(可使用74LS573等)。 类似于可编程接口电路,该液晶显示模块是通过工作方式设定及数据交换来完成显示的。工作方式设定是在初始化程序中完成的。162字符型液晶显示模块的初始化主要需完成以下任务:工作方式设定;清除显示;设定输入模式;显示使能。,3.2.5 语音接口设计,目前,语音接口电路在单片机应用系统中也得到广泛的应用。 本节以ISD1400系列单片语音录放电路为例,介绍单片机与语音电路的接口设计。,语音接口设计,1. ISD1400系列单片语音录放电路简介 美国信息存贮器件公司(ISD)的ISD1400系列单片语音录放电路采用在

30、E2PROM中直接模拟量存贮技术(DAS),省去了数字存贮器、数据转换及备用电源等外围电路,具有低功耗、零功率存贮信息、无需编辑开发机、高保真语音录放等特点。 ISD1400系列单片语音录放电路在需要语音提示和语音播报的很多领域得到了广泛应用。目前,ISD1400系列产品已被用于微型固体录音机、通讯、电话、车船、飞机黑匣子、有声电子信函、语音信箱、高级玩具等诸多场合。ISD1400系列单片语音录放电路与单片机相结合,应用前景十分广阔。,语音接口设计,ISD1400系列单片机语音录放电路,片内具有时钟振荡器、128K字节E2PROM、微弱信号放大器、自动增益控制电路、抗干扰滤波器、差动功率放大器

31、等高品质语音录放系统所需的全部基本功能电路。 一个最小的语音录放系统仅由一个驻极体话筒、一个喇叭、两个按钮、一个电源和少量的电阻电容组成。,语音接口设计,目前,ISD1400系列单片机语音录放电路主要有下列型号:ISD1408、ISD1410、ISD1412、ISD1416、ISD1420。录放时间分别为:8秒、10秒、12秒、16秒、20秒。ISD1400系列主要采用28脚DIP和SOG塑料封装。 另一种是标准28脚COB软包装,相对于DIP、SOG包装其价格十分便宜。其型号分别为HY408、HY410、HY412、HY416、HY420。,语音接口设计,本节以ISD1420为例来介绍语音录

32、放电路的使用以及语音录放电路与单片机的接口设计。,语音接口设计,ISD1420可分段存贮20秒语音信息,按每秒钟可读3个汉字计算,20秒可分段贮存609个汉字语音。 将ISD1420的A0A7与单片机的I/O口连接,这样可单独提取各段语音信息,并在程序控制下可自动组合成若干段完整的长短语句。 例如在ISD1420中分段存入“电压”、“电流”、“欧姆”、“伏”、“安培”及“09”、“十”、“百”、“千”等语音,在单片机的程序控制下,通过与数字万用表电路或电压表、电流表等配接,便可制成语音报数万用表、 “会说话”的电压表、电流表等语音型智能仪器仪表。 此外,还可以开发出“会说话的电子称”、“出租车

33、自动语报价器”、“多路语音报警系统”等新颖电子电器产品。,语音接口设计,2. ISD1420的操作模式 ISD1420地址输入端具有双重功能,其功能由地址中的A6、A7的电平状态来决定: 如果A6、A7中有一个为低电平,A0A7输入为地址位,作为起始地址用,此时地址线仅作为输入端,在操作过程中不能输出内部地址信息。根据PLAYE、PLAYL或REC的下降沿信号,锁定输入地址。 如果A6、A7同为高电平时,它们即为模式位。,语音接口设计,使用操作模式需要注意: (1) 所有初始操作都是从0地址开始。0地址是ISD1420存储空间的起始端,后面的操作可根据模式的不同,而从不同的地址开始工作。当电路

34、中录放音转换或进入省电状态时,地址计数器复位为0。 (2) 当PLAYE、PLAYL或REC变为低电平,同时A6、A7为高电平时,执行地址线所对应的操作模式。这种操作模式一直执行到下一个低电平控制输入信号出现为止。操作模式可以与单片机一起使用,也可用硬件连线得到所需系统操作。,语音接口设计,A0:用于信息检索。操作者不用知道每个信息的实际地址,使用A0可以快速检索每条信息。A0每输入一个低脉冲,可使内部地址计数器跳到下一个信息。这种模式仅用于放音工作,通常与A4操作同时应用。 A1:用于删除EOM标志,可使录入的分段信息成为连续的信息。使用A1可删除中间信息段后的EOM标志,仅在所有信息后留一

35、个EOM标志。当这个操作模式完成时,录入的所有信息就作为一个连续的信息放出。 A3:用于循环重放信息,可使存于存储空间起始位置(0地址)的信息自动地连续重放。 A4:用于连续寻址。在正常操作中,当一个信息放完,遇到一个EOM标志时,地址计数器就会复位。A4可防止地址计数器复位,使得信息连续不断地放出。 A2、A5未用。,语音接口设计,3. ISD1420与单片机接口的连接 硬件连接如图3.2.15所示。ISD1420有256个地址(A0A7)空间,可存储20秒时间的录音,最多可分为160段,分段的最小时间段为0.125秒,详见ISD1420应用手册。为让每个时间段可以存储两个汉字语音,我们将A

36、1、A2接地,以使最小的时间段为0.12540.5秒。这样可以将20秒分为40段时间,可以用于一般的测量语音播报应用。,ISD1420与单片机接口,语音接口设计,4. 语音的录音、放音分段及段控制码 图3.2.15的接口电路只是一个基本的电路,还需补充相应的部分电路,就可以用于实际系统。如通过增加按键,控制录音,按一次键,录一段语音。再加上两位显示电路,显示录入的段数,就可以录音控制。数据采集电路采集的数据送到本单片机后,根据该数据播放相应的语音段。,语音接口设计,5. ISD1420系列语音芯片应用中应注意的问题 1) ISD1420系列器件所有地址端、控制端必须可靠接高电平或低电平,而不能

37、悬空,否则可能出现停止播放的情况。 2) AGC阻容,尽量靠近ISD,且连线尽量短。 3) ISD1420的SP+、SP-端一定不要接地,只能接喇叭或悬空。,3.2.6 单总线接口设计,3.2.6 单总线接口设计 总线接口设计是单片机应用系统综合设计的重要组成部分,从本小节开始,我们将介绍单总线、I2C总线、SPI总线器件与单片机的接口设计。,1 单总线技术简介,1 单总线技术简介 单总线(1-Wire Bus)是美国的达拉斯半导体公司(DALLAS SEMICONDUCTOR)推出的一项特有的总线技术。 单总线就是在单根信号线上,完成系统所需要进行的数据、地址和控制信号的交换。从机设备通过一

38、个漏极开路或三态端口连接到数据总线,以允许设备在不发送数据时能够释放总线。,1 单总线技术简介,其内部等效电路如图3.2.16所示。单总线器件通常要外接一个约为4.7k的上拉电阻。目的在于,当总线闲置时,保持总线状态为高电平。,单总线接口设计,单总线适用于单主机系统,能够控制一个或多个从机设备。主机可以是单片机,从机可以是单总线器件,它们之间的数据交换只通过一条信号线。 主从机之间的通信建立需要3个步骤,分别为:初始化1-wire器件、识别1-wire器件以及交换数据(读写)。由于它们是主从结构,只有主机呼叫从机时,从机才能应答,因此主机访问1-wire器件都必须严格遵循单总线协议规定的命令时

39、序。 该总线采用单根信号线,既可传输时钟,又能传输数据,而且数据传输是双向的,因而这种单总线技术具有线路简单、硬件开销少、成本低廉、便于总线扩展和维护等优点。,单总线接口设计,2 单总线数字温度传感器DS18B20 DS18B20是DALLAS公司生产的单总线数字温度传感器。 主要特点有:温度测量范围为-55+125;可编程为9位12位A/D转换精度,测温分辨率可达0.0625;被测温度用符号扩展的16位数字量方式串行输出;其工作电源既可在远端引入,也可采用寄生电源方式产生;多个DS18B20可以并联到3根或2根线上,CPU只需一根端口线就能与诸多DS18B20通信,占用微处理器的端口较少,可

40、节省大量的引线和逻辑电路。 以上特点使DS18B20非常适用于远距离多点温度检测系统。,单总线接口设计,3 DS18B20的复位及读写时序 1) S1820复位(初始化时序),如图3.2.17。,单总线接口设计,DS18B20的写时序。,单总线接口设计,DS18B20的读时序,单总线接口设计,4 DS18B20子程序示例 复位脉冲及时序 void Tmreset(void) TMDAT=0; Delay_Count(103); TMDAT=1; Delay_Count(4); ,单总线接口设计,4 DS18B20子程序示例 应答子程序 void Tmpre(void) while(TMDAT)

41、; while(TMDAT); Delay_Count(4); ,单总线接口设计,4 DS18B20子程序示例 DS18B20位读取 bit Tmrbit(void) int i=0; bit dat; TMDAT=0;i+; TMDAT=1;i+;i+; dat = TMDAT; Delay_Count(8); return dat; ,3.2.7 I2C总线接口设计,由Philips公司推出的I2C(Inter-IC)总线,是近年来在微电子通信控制领域广泛采用的一种新型总线标准。目前在视频处理、移动通信等领域采用I2C总线接口器件已经比较普遍。另外,通用的I2C总线接口器件,如带I2C总线

42、的单片机、RAM、ROM、A/D、D/A、LCD驱动器等器件,也越来越多地应用于计算机及自动控制系统中。 I2C总线是一种用于IC器件之间连接的二线制总线。即通过SDA(串行数据线)及SCL(串行时钟线)两根线在连到总线上的器件之间传送信息,并根据地址识别每个器件。 在主从通信中,可以有多个I2C总线器件同时接到I2C总线上,通过地址来识别通信对象。它是同步通信的一种特殊形式,具有接口线少、控制方式简化、器件封装形式小、通信速率较高等优点。,I2C总线接口设计,1 I2C总线的基本结构 采用I2C总线标准的单片机或IC器件,其内部不仅有I2C接口电路,而且将内部各单元电路按功能划分为若干相对独

43、立的模块,通过软件寻址实现片选,减少了器件片选线的连接。CPU不仅能通过指令将某个功能单元电路挂靠或摘离总线,还可对该单元的工作状况进行检测,从而实现对硬件系统的既简单又灵活的扩展与控制。,I2C总线接口设计,I2C总线接口电路结构如图所示。,I2C总线接口设计,2 I2C总线的接口特性 1) 传统的单片机串行接口的发送和接收一般都各用一条线,如MCS-51系列的TXD和RXD,而I2C总线则根据器件的功能通过软件编程使其工作于发送或接收方式。 当某个器件向总线上发送信息时,它就是发送器(也叫主器件),而当其从总线上接收信息时,又成为接收器(也叫从器件)。 主器件用于启动总线上传送数据并产生时

44、钟以开放接收的器件,此时任何被寻址的器件均被认为是从器件。 I2C总线的控制完全由挂接在总线上的主器件送出的地址和数据决定。在总线上,既没有中心机,也没有优先机。,I2C总线接口设计,2) 总线上主和从(即发送和接收)的关系不是一成不变的,而是取决于此时数据传送的方向。 SDA和SCL均为双向I/O线,通过上拉电阻接正电源。 当总线空闲时,两根线都是高电平。连接总线的器件的输出级必须是集电极或漏极开路,具有线“与”功能。 I2C总线的数据传送速率在标准工作方式下为100kbit/s,在快速方式下,最高传送速率可达400kbit/s。,I2C总线接口设计,3) 在I2C总线上传送信息时的时钟同步

45、信号是由挂接在SCL时钟线上的所有器件的逻辑“与”完成的。 SCL时钟线由高电平到低电平的跳变将影响到挂接在SCL时钟线上的所有器件,一旦某个器件的时钟信号下跳为低电平,将使SCL线一直保持低电平,使SCL时钟线上的所有器件开始低电平期。此时,低电平周期短的器件的时钟由低至高的跳变并不能影响SCL时钟线的状态,于是这些器件将进入高电平等待的状态。 当所有器件的时钟信号都上跳为高电平时,低电平期结束,SCL时钟线被释放,返回高电平,即所有的器件都同时开始它们的高电平期。其后,第一个结束高电平期的器件又将SCL时钟线拉成低电平。这样就在SCL时钟线上产生一个同步时钟。可见,时钟低电平时间由时钟低电

46、平期最长的器件确定,而时钟高电平时间由时钟高电平期最短的器件确定。,I2C总线接口设计,4) 在数据传送过程中,必须确认数据传送的开始和结束。在I2C总线技术规范中,开始和结束信号(也称启动和停止信号)的定义如图3.2.20所示。,I2C总线接口设计,当时钟线SCL为高电平时,数据线SDA由高电平跳变为低电平定义为“开始”信号;当SCL线为高电平时,SDA线发生低电平到高电平的跳变为“结束”信号。开始和结束信号都是由主器件产生。在开始信号以后,总线即被认为处于忙状态;在结束信号以后的一段时间内,总线被认为是空闲的。,I2C总线接口设计,I2C总线的数据传送格式是:在I2C总线开始信号后,送出的

47、第一个字节数据是用来选择从器件地址的,其中前7位为地址码,第8位为方向位(R/W)。 方向位为“0”表示发送,即主器件把信息写到所选择的从器件;方向位为“1”表示主器件将从从器件读信息。 开始信号后,系统中的各个器件将自己的地址和主器件送到总线上的地址进行比较,如果与主器件发送到总线上的地址一致,则该器件即为被主器件寻址的器件。是接收信息还是发送信息则由第8位(R/W)确定。,I2C总线接口设计,在I2C总线上每次传送的数据字节数不限,但每一个字节必须为8位,而且每个传送的字节后面必须跟一个认可位(第9位),也叫应答位(ACK)。数据的传送过程如图3.2.21所示。,I2C总线接口设计,每次都

48、是先传最高位,通常从器件在接收到每个字节后都会作出响应,即释放SCL时钟线返回高电平,准备接收下一个数据字节,主器件可继续传送。 如果从器件正在处理一个实时事件而不能接收数据时(例如正在处理一个内部中断,在这个中断处理完之前,不能接收I2C总线上的数据字节),可以使SCL时钟线保持低电平,从器件必须使SDA保持高电平,此时主器件产生1个结束信号,使传送异常结束,迫使主器件处于等待状态。 当从器件处理完毕时将释放SCL时钟线,主器件继续传送。,I2C总线接口设计,当主器件发送完一个字节的数据后,接着发出对应于SCL线上的一个时钟(ACK)认可位,在此时钟内主器件释放SDA线,一个字节传送结束,而

49、从器件的响应信号将SDA线拉成低电平,使SDA在该时钟的高电平期间为稳定的低电平。 从器件的响应信号结束后,SDA线返回高电平,进入下一个传送周期。,I2C总线接口设计,I2C总线还具有广播呼叫地址,用于寻址总线上所有器件。 若一个器件不需要广播呼叫寻址中所提供的任何数据,则可以忽略该地址不作响应。 如果该器件需要广播呼叫寻址中提供的数据,则应对地址作出响应,其表现为一个接收器。,I2C总线接口设计,5)总线上可能挂接有多个器件,有时会发生两个或多个主器件同时想占用总线的情况。 例如,多单片机系统中,可能在某一时刻有两个单片机要同时向总线发送数据,这种情况叫做总线竞争。 I2C总线具有多主控能

50、力,可以对发生在SDA线上的总线竞争进行仲裁。,I2C总线接口设计,其仲裁原则是这样的:当多个主器件同时想占用总线时,如果某个主器件发送高电平,而另一个主器件发送低电平,则发送电平与此时SDA总线电平不符的那个器件将自动关闭其输出级。 总线竞争的仲裁是在两个层次上进行的。首先是地址位的比较,如果主器件寻址同一个从器件,则进入数据位的比较,从而确保了竞争仲裁的可靠性。由于是利用I2C总线上的信息进行仲裁,因此不会造成信息的丢失。,I2C总线接口设计,3 I2C总线应用实例PCF8563的使用 PCF8563是PHILIPS公司生产的基于I2C总线接口的低功耗CMOS实时时钟/日历芯片,芯片最大总

51、线速度为400Kbit/s,每次读写数据后,其内嵌的字地址寄存器会自动产生增量。 PCF8563可广泛应用与移动电话、便携仪器、传真机、电池电源等产品中。,I2C总线接口设计,PCF8563有16个8位寄存器,其中包括可自动增量的地址寄存器、内置32.768kHz的振荡器(带有一个内部集成电容)、分频器(用于给实时时钟RTC提供源时钟)、可编程时钟输出、定时器、报警器、掉电检测器和400kHz的I2C总线接口。 所有16个寄存器设计成可寻址的8位并行寄存器,但不是所有位都有用。当一个RTC寄存器被读时,所有计数器的内容将被锁存,因此,在传送条件下,可以禁止对时钟/日历芯片的错读。,3.2.8

52、SPI总线接口设计,1. SPI总线简介 2. SPI接口举例AD7705的使用,SPI总线接口设计,1 SPI总线简介 SPI(Serial Peripheral Interface)总线是Motorola公司提出的一个同步串行外设接口,用于CPU与各种外围器件进行全双工、同步串行通讯。 SPI可以同时发出和接收串行数据。它只需四条线就可以完成MCU与各种外围器件的通讯。这些外围器件可以是简单的TTL移位寄存器、复杂的LCD显示驱动器、A/D和D/A转换子系统或其他的MCU。,SPI总线接口设计,图3.2.22给出了SPI的时序图。其中,SCK为同步时钟脉冲,SS为片选线,MOSI为主器件的

53、数据输出和从器件的数据输入线,MISO为主器件的数据输入线和从器件的数据输出线。,SPI总线接口设计,SPI是全双工的,即数据的发送和接收可同时进行。如果仅对从器件写数据,主器件可以丢弃同时读入的数据;反之,如果仅读数据,可以在命令字节后,写入任意数据。 数据传送以字节为单位,并采用高位在前的格式。,SPI总线接口设计,2 SPI接口举例AD7705的使用 1) AD7705简介 AD7705是模拟器件公司(Analog Device Inc.)生产的基于SPI接口的A/D转换器,适用于低频测量仪器。 AD7705主要特点有:能将从传感器接收到的很弱的输入信号直接转换成串行数字信号输出,而无需

54、外部仪表放大器;采用-的ADC,可实现16位无误码的良好性能;片内可编程放大器可设置输入信号增益;通过片内控制寄存器调整内部数字滤波器的关闭时间和更新速率,可设置数字滤波器的第一个凹口;在+3V电源和1MHz主时钟时,AD7705功耗仅是1mW。 AD7705是基于单片机(MCU)、数字信号处理器(DSP)系统的理想电路,能够进一步节省成本、缩小体积、减小系统的复杂性。主要应用于微处理器(MCU)、数字信号处理(DSP)系统、手持式仪器、分布式数据采集系统。,SPI总线接口设计,2) 片内寄存器操作 AD7705 包含了8 个片内寄存器,对这些寄存器的操作都是通过器件的SPI串行口来完成的。

55、通信寄存器。器件复位后,通信寄存器处于等待状态,通过对通信寄存器的写操作,决定下一次操作是写还是读,同时决定这一次读操作或写操作发生在那个寄存器上。 也就是说所有的寄存器(包括通信寄存器本身和输出数据寄存器)在进行读操作之前,必须首先写通信寄存器,然后才能读选定的寄存器。,SPI总线接口设计,数据寄存器是一个十六位只读寄存器,它包含了最新的转换结果。 测试寄存器用于测试期间器件,用户一般不用。 零标度校准寄存器和满标度校准寄存器都是24位,用户一般不用。,SPI总线接口设计,3) AD7705的初始化及读写操作子程序 使用AD7705之前,首先要对所有寄存器进行设置,才能保证器件正常工作。在实

56、际使用中,首先确定模拟输入模式(单极性还是双极性)、是否需要缓冲、时钟分频和输出更新速率等;还要根据外部输入信号的幅度来决定设置器件的增益值。 根据实际情况,确定所有参数以后,对AD7705芯片进行设置。如前所述,在设置参数之前,首先要对通信寄存器进行一次写操作,以决定下一个是什么样的寄存器和什么样的操作内容,才能进行下一步的参数写入。 详见AD7705的初始化程序Int_7705(void )。,3.3 单片机应用系统程序设计,3.3.1 单片机应用系统程序设计编程语言选择 3.3.2 单片机应用系统程序设计规范 3.3.3 汇编程序设计 3.3.4 C51程序设计 3.3.5 C51与汇编

57、的混合编程,单片机应用系统程序设计编程语言选择,3.3.1 单片机应用系统程序设计编程语言选择 单片机汇编语言和单片机C51语言在本节中只作简单的介绍,本节的重点是在单片机应用系统设计中,如何综合使用汇编语言和C51语言以及它们的使用技巧。 目前,开发单片机应用系统采用的编程语言主要有汇编语言和C51语言。当开发单片机应用系统时,用C51语言还是用汇编开发好?这是很多初学者爱问的问题。对这个问题的回答不能一刀切。我们只有了解了两种语言的优缺点后,才能做出较为明智的选择。,单片机应用系统程序设计编程语言选择,汇编语言是一种用文字助记符来表示机器指令的符号语言,是最接近机器码的一种语言。其主要优点

58、是占用资源少、程序执行效率高。而汇编语言,一条指令就对应一个机器码,每一步执行什么动作都很清楚,并且程序大小和堆栈调用情况都容易控制,调试起来也比较方便。但是不同的CPU,其汇编语言可能有所差异,所以不易移植。所以使用资源较少单片机作应用系统开发时,建议采用汇编语言。,单片机应用系统程序设计编程语言选择,C51语言是一种编译型程序设计语言,它兼顾了多种高级语言的特点,并具备汇编语言的功能。C51语言有功能丰富的库函数、运算速度快、编译效率高、有良好的可移植性,而且可以直接实现对系统硬件的控制。C51语言是一种结构化程序设计语言,它支持当前程序设计中广泛采用的由顶向下结构化程序设计技术。,单片机

59、应用系统程序设计编程语言选择,此外,C51语言程序具有完善的模块程序结构,从而为单片机应用系统软件开发中采用模块化程序设计方法提供了有力的保障。用C51语言来编写目标系统软件,会大大缩短开发周期,且明显地增加软件的可读性,便于改进和扩充,从而研制出规模更大、性能更完备的系统。所以进行一个较复杂而又开发周期短的单片机应用系统程序开发时,采用C51语言具有明显的优势。,单片机应用系统程序设计编程语言选择,在常规的单片机应用系统纯汇编程序设计过程中,设计人员在设计程序代码的过程中要考虑各代码段的起始地址和代码长度以避免代码的重叠,在中断服务函数设计中还要对代码进行准确定位,在数据段使用时还要考虑寄存器空间的分配。如果要提高寄存器的使用效率还要考虑数据的生存期等诸多问题,而使用纯C51语言编程,设计人员几乎不用考虑在汇编程序设计过程中的以上种种问题,因为这些问题都将由编译器和连接器来解决。 因此,使用C51语言进行程序设计逐渐成为单片机应用系统软件开发的一个主流。,单片机应用系统程序设计编程语言选择,但是,对于目前普遍使用的8位单片机来说,其内部ROM、RAM、堆栈等资源都有限。如果使用C51语言编写,一条C51语言指令编译后,会变成很多条机器码,很容易出现ROM空间不够、堆栈溢出等问题。而且一些单片机厂家也不一定能提供C51编译器。,单

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论