单片机串行AD转换.docx
《单片机串行AD转换.docx》由会员分享,可在线阅读,更多相关《单片机串行AD转换.docx(20页珍藏版)》请在冰点文库上搜索。
单片机串行AD转换
单片机课程设计报告
课题:
单片机控制串行A/D转换器TCL549
学院:
专业班级:
姓名:
学号:
指导老师:
时间:
2015.1.18
目录
一 、设计要求..................................................3
2、系统功能原理及硬件介绍.......................................3
2.1系统功能原理..................................................3
2.2复位电路、复位后状态和复位信号..............................4
2.3晶振电路的原理..............................................5
2.4、 AT89C51单片机介绍.......................................6
2.5、TLC549介绍..................................................8
3、设计流程图.................................................11
.四、程序编写...................................................12
五、调试过程,存在问题及讨论..................................12
六、课程设计的体会.............................................14
七、参考文献....................................................15
一、设计要求
本次课程设计的主要目的,就是通过应用8位串行模数转换器TLC549采集电压信号,并进行AD转换,转换成数字信号传送给51单片机,在单片机内部通过编写程序进行数据处理,最后通过单片机的I/O口控制,将转换数据由相应的led灯的亮与灭表示出来。
关键字:
TLC549 AD转换 89c51单片机
2、 系统功能原理及硬件介绍
2.1、系统功能原理
该数字电压计利用模拟电压信号,经由模数转换器TCL549转换成单片机能够处理的数字信号,然后送到单片机AT89C51中进行处理变换,编写程序将模拟量转换成二进制数字量,用P1口输出的八个发光二极管的亮与灭显示转换结果的二进制码。
系统以AT89C51单片机为控制核心, TCL549模数转换电路、八个LED灯以及外围电源等组成。
系统组成框图如图1所示。
图1、系统原理电路图
2.2、复位电路、复位后状态和复位信号
复位是单片机的初始化操作,其主要功能是把PC初始化为0000H,是单片机从0000H单元开始执行程序。
除了进入系统的正常初始化外,当由于程序运行错误或操作错误使系统处于死锁状态时,为摆脱困境,也需按复位键以重新启动。
1)复位电路
复位操作有按键电平上电自动复位、复位和外部脉冲复位三种方式,本设计采用按键电平复位,其中
接低电平,允许使用外部存储器,如图6所示。
图6复位电路
2)复位后状态
除PC之外,复位操作还对其他一些特殊功能寄存器有影响,它们的复位状态见表2。
表2特殊功能寄存器的复位状态
寄存器
复位时内容
寄存器
复位时内容
PC
0000H
IE
0××0000B
ACC
00H
TL0
00H
B
00H
TH0
00H
PSW
00H
TL1
00H
SP
07H
TH1
00H
DPTR
0000H
SCON
00H
P0~P3
FFH
SBUF
不定
TMOD
00H
PCON
0×××0000B
TCON
00H
IP
×××00000B
复位操作还对单片机的个别引脚信号有影响。
例如在复位期间,ALE和
信号变为无效状态,即ALE=1,
=1。
2.3晶振电路的原理
∙
晶振是晶体振荡器的简称,在电气上它可以等效成一个电容和一个电阻并联再串联一个电容的二端网络,电工学上这个网络有两个谐振点,以频率的高低分其中较低的频率是串联谐振,较高的频率是并联谐振。
由于晶体自身的特性致使这两个频率的距离相当的接近,在这个极窄的频率范围内,晶振等效为一个电感,所以只要晶振的两端并联上合适的电容它就会组成并联谐振电路。
这个并联谐振电路加到一个负反馈电路中就可以构成正弦波振荡电路,由于晶振等效为电感的频率范围很窄,所以即使其他元件的参数变化很大,这个振荡器的频率也不会有很大的变化。
∙
晶振电路图
2.4、 AT89C51单片机介绍
AT89C51是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,可提供以下标准功能:
4K 字节闪存,128字节内部RAM,32个I/O口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。
同时,AT89C51可降至0HZ的静态逻辑操作,并支持两种软件可选的节电工作模式。
空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。
掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。
8
图2 AT89C51引脚图
引脚功能说明:
Vcc:
电源电压 GND:
地
P0口:
P0口是一组8位漏极开路型双向I/O口,即地址/数据总线复位口。
作为输出口用时,每位能吸收电流的方式驱动8个逻辑门电路,对端口写“1”可 作为高阻抗输入端用。
在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,此时P0激活内部的上拉电阻。
P1口:
P1是一个带有内部上拉电阻的8位双向I/O口。
P1的输出缓冲级可驱动(输入或输出)4个TTL逻辑门电路。
对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可做输入口。
因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。
P2口:
P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(输入或输出电流)4个TTL逻辑门电路。
对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作为输入口。
因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。
在访问外部程序存储器获16位地址的外部数据存储器(例如执行 MOVX @DPTR指令)时,P2口送出高8位地址数据。
在访问8位地址的外部数据存储器(如执行 MOVX @RI指令)时,P2口线上的内容(也即特殊功能寄存器(SFR)区中R2寄存器的内容),在整个访问期间不改变。
P3口:
P3口是一组带有内部上拉电阻的8位双向I/O口。
P3口输出缓冲级可驱动(输入或输出)4个TTL逻辑门电路。
对P3口写入“1”时,他们被内部上拉电阻拉高并可作为输入口。
此时,被外部拉低的P3口将用上拉电阻输出电流。
RST:
复位输入。
当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。
ALE/PROG:
当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。
即使不访问外部存储器,ALE仍以时钟振荡频率的1/6输出固定的正脉冲信号,因此它可对输出时钟信号或用于定时。
要注意的是:
当访问外部数据存储器时将跳过一个ALE脉冲。
闪存编程期时,该引脚还用于输入编程脉冲。
PSEN:
程序存储允许输出是外部程序存储器的读选通信号,当AT89C51由外部程序存储器取指令(或数据)时,每个机器周期两个PSEN有效,即输出两个脉冲。
在此期间,当访问外部数据存储器,这两次有效的PSEN信号不出现。
EA/VPP:
外部访问允许。
要使CPU仅访问外部程序存储器(地址为0000H---FFFFH),EA端必须保持低电平(接地)。
需注意的是; 如果加密位LB1被编程,复位时内部会锁存EA端状态。
如 EA端为高电平(接VCC端),CPU则执行内部程序存储器中的指令。
XTAL1:
振荡器反相放大器及内部时钟发生器的输入端。
XTAL2 :
振荡器反相放大器的输出端。
2.5、TLC549介绍
TLC549是采用IinCMOSTM技术并以开关电容逐次逼近原理工作的8位串行A/D7芯片,可与通用微处理器、控制器通过I/O CLOCK、CS、DATA OUT三条口线进行串行接口。
TLC549具有4MHz的片内系统时钟和软、硬件控制电路,转换时间最长为17μs,允许的最高转换速率为40000次/s。
总失调误差最大为±0.5LSB,典型功耗值为6 mW。
TLC549采用差分参考电压高阻输入,抗干扰,可按比例量程校准转换范围,由于其VREF-接地时,(VREF+)-(VREF-)≥1 V,故可用于较小信号的采样,此外,该芯片还单电源3~6v的供电范围。
总之,TLC549具有控制口线少,时序简单,转换速度快,功耗低,价格便宜等特TLC549的极限参数如下:
◇电源电压:
6.5 V:
◇输入电压范围:
0.3V~VCC:
+o.3V:
◇输出电压范围:
0.3V~VCC:
+0.3 V;
◇峰值输入电流(任一输人端):
±10 mA;
◇峰值输人电流(所有输入端):
±30mA
◇工作温度:
TLC549C:
0℃~70~C
◇TLC549I:
-40℃~85℃
◇TLC549M.-55"C~125℃
TLC549的引脚图和内部框图如图所示。
TLC549的引脚图
TLC549芯片的工作原理:
TLC549带有片内系统时钟,该时钟与I/OCLOCK是独立工作的,无需特殊的速度或相位匹配。
当CS为高时,数据输DATA OUT端处于高阻状态,此时I/O CLOCK不起作用。
这种CS控制作用允许在同时使用多片TLc549时,共用I/OcLOCK,以减少多路(片)A/D使用时的I/O控制端口。
一组通常的控制时序操作如下:
(1)将Cs置低,内部电路在测得CS下降沿后,在等待两个内部时钟上升沿和一个下降沿后,再确认这一变化,最后自动将前一次转换结果的最高位(D7)位输出到DATAOUT端;
(2)在前四个I/O CLOCK周期的下降沿依次移出第2、3、4和第5个位(D6,D5,D4,D3),片上采样保持电路在第4个I/O CLOCK下降沿开始采样模拟辅人:
(3)接下来的3个I/O CLOCK周期的下降沿可移出第6、7、8(D2,D1,D0)各转换位;
(4)最后,片上采样保持电路在第8个I/OCLOCK周期的下降沿将移出第6、7、8(D2,D1,D0) 各转换位。
然后使保持功能持续4个内部时钟周期,接着开始进行32个内部时钟周期的A/D转换。
在第8个I/O cLCOK后,CS必须为高或I/O LOCK保持低电平,这种状态需要维持36个内部系统时钟周期以等待保持和转换工作的完成。
如果CS为低时,I/O CLOCK上出现一个有效干扰脉冲,则微处理器,控制器将与器件的I/O时序失去同步;而在cs为高时若出现一次有效低电平,则将使引脚重新初始化,从而脱离原转换过程。
在36个内部系统时钟周期结束之前,实施步骤
(1)~(4),可重新启动一次新的A/D转换,与此同时,正在进行的转换将终止。
但应注意,此时的输出是前一次的转换结果而不是正在进行的转换结果。
若要在特定的时刻采样模拟信号,则应使第8个I/O CLOCK时钟的下降沿与该时刻对应。
因为芯片虽在第4个I/O CLOCK时钟的下降沿开始采样,却在第8个I/O CLOCK的下降沿才开始保存。
TLC549的工作时序图如图所示。
TLC549的工作时序 图
应用接口:
TLC549可方便地与具有串行外围接口(SPI)的单片机或微处理器配合使用,也可与51系列通用单片机连接使用。
与51系列单片机的接口如图5所示。
TLC549电路连接图
三、设计流程图
TLC549转换流程图如下:
初始化:
CS为低;IOCLOCK为低;移位计数器
选TLC549,CS置高
1.4us后,置IOCLOCK为高
读DATAOUT,置IOCLOCK为高
是否是八位?
CS置低
结束
四、程序编写:
SDOBITP1.0
SCLKBITP1.2
CSBITP1.1
ORG0000H
LJMPSTART
ORG0030H
START:
MOVSP,#60H;设计堆栈地址
LOOP:
LCALLAD;调用AD子程序
CPLA;取反,使高电平变低电平,对应管脚led亮
MOVP0,A:
送往P0口显示
LCALLDELAY:
调用延时子程序,保证转换时间大于17us
SJMPLOOP
AD:
CLRA
CLRSCLK
MOVR7,#08H;采样位数为8位
CLRCS
LOOP1:
SETBSCLK
MOVC,SDO;采样
RLCA
CLRSCLK
DJNZR7,LOOP1;判断8位是否采样完毕,没有继续循环
SETBCS
SETBSCLK
RET
DELAY:
MOVR0,#08H
LOOP2:
DJNZR0,LOOP2
RET
END
五、调试过程,存在问题及讨论
系统的抗干扰是系统可靠性的重要方面。
一个系统的正确与否,不仅取决于系统的设计思想和方法,同时还取决于系统的抗干扰措施,不然势必会出现原理正确而系统稳定性差,甚至不能实施,使得耗费了大量钱财和时间研制出来的控制系统成为一种摆设,电脑变成了“烦恼”。
正因如此,抗干扰技术的研究越来越引起大家的高度重视。
(一)、系统受到干扰的主要原因和现象
由于单片机控制系统应用系统的工作环境往往是比较恶劣和复杂的,其应用的可靠性、安全性就成为一个非常突出的问题。
单片机控制系统应用必须长期稳定、可靠地运行,否则将导致控制误差加大,严重时会使系统失灵,甚至造成巨大的损失。
影响单片机控制系统应用的可靠、安全运行的主要因素是来自系统内部和外部的各种电气干扰,以及系统结果设计、元器件选择、安装、制造工艺和外部环境条件等。
这些因素对控制系统造成的干扰后果主要表现在下述几个方面。
(1)数据采集误差加大。
干扰侵入单片机控制系统测量单元模拟信号的输入通道,叠加在有用信号之上,会使数据采集误差加大,特别是当传感器输出弱信号时干扰更加严重。
(2)控制状态失灵。
微机输出的控制信号常依赖某些条件的状态输入信号和这些信号的逻辑处理结果。
若这些输入的状态信号受到干扰,引入虚假状态信号,将导致输出控制误差加大,甚至控制失常。
(3)数据受干扰发生变化。
单片机控制系统中,由于RAM存储器是可以读/写的,故在干扰的侵害下,RAM中的数据有可能被窜改。
在单片微机系统中,程序及表格、常数存于程序存储器中,避免了这些数据受到干扰破坏,但对于内RAM、外扩RAM中的数据都有可能受到外界干扰而变化。
根据干扰窜入的途径、受干扰数据的性质不同,系统受损坏的情况也不同.有的造成数据误差.有的使控制失灵,有的改变程序状态,有的改变某些部件(如定时器/计数器,串行口等)的工作状态等。
(4)程序运行失常。
单片机控制系统中程序计数器的正常工作,是系统维持程序正常运行的关键所在。
如果外界干扰导致计数器的值改变,破坏了程序的正常运行。
由于受到干扰后计数器的值是随机的,因而导致程序混乱。
通常的情况是程序将执行一系列毫无意义的指令,最后进入"死循环",这将使输出严重混乱或系统失灵。
(二)、系统可靠性设计的分析和方法
单片机控制系统应用的可靠性技术涉及到生产过程的方方面面,不仅与设计、制造、检验、安装、维护有关,还与生产管理、质量监控体系、使用人员的专业水平与素质有关。
这里主要是从技术角度分析提高系统可靠性的最常用方法。
导致系统运行不稳定的内部因素主要有以下三点:
(1)元器件本身的性能与可靠性。
元器件是组成系统的基本单元,其特性好坏与稳定性直接影响整系统性能与可靠性。
因此,在可靠性设计当中,首要的工作是精选元器件,使其在长期稳定性、精度等级方面满足要求。
随着微电子技术的发展,电子元器件的可靠性不断提高,现在小功率晶体管及中小规模IC芯片的实际故障大约为10×10-9/h。
这为提高系统性能与可靠性提供了很好的基础。
(2)系统结构设计。
包括硬件电路结构和运行软件设计。
电路设计中要求元器件或线路布局合理以消除元器件之间的电磁耦合相互干扰,优化的电路设计也可以消除或削弱外部干扰对整个系统的影响,如去耦电路、平衡电路等。
同时也可以采用冗余结构,也称容错技术或故障掩盖技术,它是通过增加完成同一功能的并联或备用单元〔包括硬件单元或软件单元〕数目来提高系统可靠性的一种设计方法。
当某些元器件发生故障时也不影响整个系统的运行。
对于消减外部电磁干扰,可采用电磁兼容设计,目的是提高单片机系统在电磁环境中的适应性,即能保持完成规定功能的能力。
常用的抗电磁干扰的硬件措施有滤波技术、去耦电路、屏蔽技术、接地技术等。
软件是微机系统区别于其它通用电子设备的独到之处,通过合理编制软件可以进一步提高系统运行的可靠性。
常用的软件措施主要有:
一是信息冗余技术,对单片机控制系统应用而言,保持信号信息和重要数据是提高可靠性的主要方面。
为防止系统故障等原因而丢失信息,常将重要数据或文件多重化,复制一份或多份"拷贝",并存于不同空间,一旦某一区间或某一备份被破坏,则自动从其它部分重新复制,使信息得以恢复。
二是时间冗余技术,为提高单片机控制系统应用的可靠性,可采用重复执行某一操作或某一程序,并将执行结果与前一次结果进行比较对照来确认系统工作是否正常。
只有当两次结果相同时,才被认可,并进行下一步操作。
若两次结果不相同,可再次重复执行一次,当第三次结果与前两次之中的一次相同时,则认为另一结果是偶然故障引起的,应剔除。
若三次结果均不相同,则初步判定为硬件永久性故障,需进一步检查。
这种办法是用时间为代价来换取可靠性,称为时间冗余技术,也称为重复检测技术。
三是故障自动检测与诊断技术,对于复杂系统,为了保证能及时检测出有故障装置或单元模块,以便及时把有用单元替换上去,就需要对系统进行在线测试与诊断。
这样做的目的有两个:
一是为了判定动作或功能的正常性;二是为了及时指出故障部位,缩短维修时间。
四是软件可靠性技术:
单片机控制系统运行软件是系统要实行的各项功能的具体反映。
软件的可靠性主要标志是软件是否真实而准确地描述了要实现的各种功能。
因此对生产工艺过程的了解程度直接关系到软件的编写质量。
提高软件可靠性的前提条件是设计人员对生产工艺过程的深入了解,并且使软件易读、易测和易修改。
五是失效保险技术:
有些重要系统,一但发生故障时希望整个系统应处于安全或保险状态。
此外,还有常见的数字滤波、程序运行监视及故障自动恢复技术等。
(3)安装与调试。
元器件与整个系统的安装与调试,是保证系统运行与可靠性的重要措施。
尽管元器件选择严格,系统整体设计合理,但安装工艺粗糙,调试不严格,仍然达不到预期的效果。
导致系统运行不稳定的外因是指单片机控制系统所处工作环境中的外部设备或空间条件导致系统运行的不可靠因素,主要包括以下几点:
一是外部电气条件,如电源电压的稳定性、强电场与磁场等的影响;二是外部空间条件,如温度、湿度,空气清洁度等;三是外部机械条件,如振动、冲击等。
为保证系统可靠工作,必须创造一个良好的外部环境。
例如:
采取屏蔽措施、远离产生强电场干扰的设备;加强通风以降低环境温度;安装紧固以防振动等。
元器件的选择是根本,合理安装调试是基础,系统设计是手段,外部环境是保证,这是可靠性设计遵循的基本准则,并贯穿于系统设计、安装、调试、运行的全过程。
为实现这些准则,必须采取相应的硬件或软件方面的措施,这是可靠性设计的根本任务。
中小规模的单片机控制系统在开发过程中,结合实际应用中的工作环境,采用以上的系统抗干扰优化设计的措施与方法,基本能有效地提高单片机系统的工作稳定性,充分地体现单片机控制系统在不增加控制成本的情况提高机电设备的自动化性能与智能性的优越所在。
六、课程设计的体会
不知不觉历经一周的单片机原理与应用课程设计结束了,通过这次课程设计我对单片机有了更深的了解,同时加强了我的实际动手能力,利用所学知识,根据实际生产当中给出的产品参数,初步掌握仪器、仪表的设计方法及其制造过程;锻炼了自己初步掌握工程设计的要点和撰写技术文件的基本方法。
并对该类器件的参数、性能和应用进行更深入的了解,初步了解该行业的现状、未来和发展,这次设计让我受益匪浅。
在设计过程中,我得到了很多同学的帮助。
我想没有他们我可能都要放弃了,因为我本人对单片机也并不是很熟悉,学的东西好像它是它,我是我似的,理论联系不了实际。
以前的汇编语言没学好,一开始的程序这块儿就要令我抓狂了。
课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域,在生活中可以说得是无处不在。
因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的。
回顾起此次单片机课程设计,至今我仍感慨颇多,的确,从理论到实践,在整整一星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说对单片机汇编语言掌握得不好……通过这次课程设计之后,一定把以前所学过的知识重新温故。
这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在大家的努力下,终于游逆而解。
在设计过程中,我通过查阅大量有关资料,与同学交流经验和自学,并向老师请教等方式,使自己学到了不少知识,也经历了不少艰辛,但实验过程中,也对团队精神的进行了考察,让我们在合作起来更加默契,在成功后一起体会喜悦的心情。
果然是团结就是力量,只有互相之间默契融洽的配合才能换来最终完美的结果。
此次设计也让我明白了思路即出路,有什么不懂不明白的地方要及时请教或上网查询,只要认真钻研,动脑思考,动手实践,就没有弄不懂的知识,收获颇丰。
在整个设计中我懂得了许多东西,也培养了我独立工作的能力,树立了对自己工作能力的信心,相信会对今后的学习工作生活有非常重要的影响。
而且大大提高了动手的能力,使我充分体会到了在创造过程中探索的艰难和成功时的喜悦。
虽然这个设计做的也不太好,但是在设计过程中所学到的东西是这次课程设计的最大收获和财富,使我终身受益。