




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上哈 尔 滨 理 工 大 学 荣 成 学 院单片机课程设计题目:基于TLC549的A/D转换 班级: 姓名: 学号: 1 题目简介标题采用4号字,宋体 正文内容中采用单倍行距 随着电子技术的发展,人们越来越频繁的用到电压表,普通的指针电压表已不能满足人们的需要。数字电压表作为一种高精度的测量仪器,采用数字化测量技术,将连续模拟量转换成不连续,离散的数字形式。传统指针式电压表功能单一,精度低,不能满足人们追求越来越方便,精准的要求。而采用单片机的数字电压表,其精度高,抗干扰能力强,已被广泛的应用在日常生活和电子,工业等领域。数字电压表因为是将连续的模拟量转换成数字形式表现
2、出来,避免了读数的视觉误差和视觉疲劳。数字电压表的核心部件是A/D转换器,转换器的精度很大程度上影响了测量的精度。本次单片机课程设计采用 A/D 转换器 TLC549 对电压测量电路测出的输入模拟信号电压值进行转换 , 利用 AT89C52RC 再对转换的结果进行运算和处理 , 最后将数字电压信号显示在LED数码管上2 实现方案STC89C52RCSTC89C52RC是公司生产的一种低功耗、高性能CMOS8位微控制器,具有8K字节系统可编程Flash存储器。STC89C52使用经典的MCS-51内核,但是做了很多的改进使得芯片具有传统的51单片机不具备的功能。在单芯片上,拥有灵巧的8 位CPU
3、 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。特点:8K字节程序存储空间; 512字节数据存储空间;内带4K字节EEPROM存储空间; 可直接使用串口下载;AD转换器-TlC549 TLC549 是美国德州仪器公司生产的 8 位串行 A/D 转换器芯片,可与通用微处理器、控制器通过 CLK 、 CS 、 DATA OUT 三条口线进行串行接口。具有 4MHz 片内系统时钟和软、硬件控制电路,转换时间最长 17 s , TLC549 为 40 000 次 /s 。总失调误差最大为± 0.5LSB ,典型功耗值为 6mW 。采用差分
4、参考电压高阻输入,抗干扰,可按比例量程校准转换范围, V REF- 接地, V REF+ V REF- 1V ,可用于较小信号的采样。TLC549 的内部框图和管脚名如图所示。工作原理 TLC549 均有片内系统时钟,该时钟与 I/O CLOCK 是独立工作的,无须特殊的速度或相位匹配。其工作时序如图 2 所示。当 CS 为高时,数据输出 (DATA OUT) 端处于高阻状态,此时 I/O CLOCK 不起作用。这种 CS 控制作用允许在同时使用多片 TLC549 时,共用 I/O CLOCK ,以减少多路 ( 片 )A/D 并用时的 I/O 控制端口。一组通常的控制时序为:(1) 将 CS
5、置低。内部电路在测得 CS 下降沿后,再等待两个内部时钟上升沿和一个下降沿后,然后确认这一变化,最后自动将前一次转换结果的最高位 (D7) 位输出到 DATA OUT 端上。(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/O CLOCK 周期的下降沿将移出第 6
6、、 7 、 8(D2 、 D1 、 D0) 个转换位。保持功能将持续 4 个内部时钟周期,然后开始进行 32 个内部时钟周期的 A/D 转换。第 8 个 I/O CLOCK 后, CS 必须为高,或 I/O CLOCK 保持低电平,这种状态需要维持 36 个内部系统时钟周期以等待保持和转换工作的完成。如果 CS 为低时 I/O CLOCK 上出现一个有效干扰脉冲,则微处理器 / 控制器将与器件的 I/O 时序失去同步;若 CS 为高时出现一次有效低电平,则将使引脚重新初始化,从而脱离原转换过程。在 36 个内部系统时钟周期结束之前,实施步骤 (1) (4) ,可重新启动一次新的 A/D 转换,
7、与此同时,正在进行的转换终止,此时的输出是前一次的转换结果而不是正在进行的转换结果。若要在特定的时刻采样模拟信号,应使第 8 个 I/O CLOCK 时钟的下降沿与该时刻对应,因为芯片虽在第 4 个 I/O CLOCK 时钟下降沿开始采样,却在第 8 个 I/O CLOCK 的下降沿开始保存。数码管的一种是半导体发光器件,数码管可分为七段数码管和八段数码管,区别在于八段数码管比七段数码管多一个用于显示小数点的发光二极管单元DP(decimal point),其基本单元是。七段数码管分为共阳极及共阴极,共阳极的七段数码管的(或阳极)为八个的共有正极,其他接点为独立发光二极管的(或阴极),使用者只
8、需把正极接电,不同的负极接地就能控制七段数码管显示不同的数字。本次课程设计采用的是共阳极数码管。 数码管显示电路单片机电源电路时钟电路复位电路A/D转换电路硬件组成图3 电路原理图4 软件流程图(程序流程图)5 软件设计源程序#include<reg52.h>#include<intrins.h>#define led P0#define uchar unsigned char#define uint unsigned intvoid debouncer(void); / 用于键盘的防抖动函数uint Volt; / 电压换算并扩大 1000 倍uint num; ui
9、nt AD_Temp; uchar Temp,TempA;uchar code table =0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0 xf8,0x80,0x90;/* 0 1 2 3 4 5 6 7 8 9 */uchar code table1=0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10;/* 0. 1. 2. 3 . 4. 5. 6. 7. 8. 9. */* TLC549 和数码管为选声明 */sbit AD_CLK = P12; / 时钟sbit AD_DAT = P10; / 数据输出sbit
10、AD_CS = P11; / 片选sbit w1 = P20;/位选sbit w2 = P21;sbit w3 = P22;sbit w4 = P23;sbit a=P30;sbit b=P31;sbit c=P32;sbit LED5V=P25;sbit LED1V=P26;sbit LED100mV=P27;sbit SW5V=P35;sbit SW1V=P36;sbit SW100mV=P37;char VV=0; void delay(uint z) / 延时函数,1ms uint x, y; for(x = z; x > 0; x-) for(y = 110; y > 0
11、; y-);void debouncer(void) /防抖动函数 int m, n; for (m = 0; m <40; m+); for (n = 0; n < 125; n+);TLC1549_ADC() / TLC1549 芯片 AD 转换模块 uint i , m=0; AD_CS = 1; AD_CLK = 1; AD_DAT = 1; AD_CS = 0; _nop_(); for(i=0; i<10; i+) AD_CLK =0; _nop_(); m=m<<1; if(AD_DAT) m+=0x01; AD_CLK=1; _nop_(); AD
12、_CLK =0; AD_CS =0; for(i = 17; i != 0; i-) _nop_(); / 转换周期最大 17usreturn (m);void display1() / 显示函数uchar i,j,k,l;uint mm; mm=Volt;l = mm % 10; mm=mm/10; k = mm % 10; mm=mm/10; j = mm % 10; mm=mm/10; i = mm % 10; mm=mm/10; w1=0;led=table1i;delay(1);w1=1;w2=0;led=tablej;delay(1);w2=1;w3=0;led=tablek;de
13、lay(1);w3=1;w4=0;led=tablel; delay(1);w4=1;void run_system( ) if (SW5V=0) debouncer(); if (SW5V=0) VV=1; if (SW1V=0) debouncer(); if (SW1V=0) VV=2; if (SW100mV=0) debouncer(); if (SW100mV=0) VV=3; if (VV=1) c=0; b=0; a=1; AD_Temp = TLC1549_ADC(); / Volt = AD_Temp*1.0; / 将数字量转化成电压值 .0-5v Volt = AD_Te
14、mp*4.888; / 将数字量转化成电压值 .0-5v display1(); LED5V=0; LED1V=1; LED100mV=1; if (VV=2) c=0; b=1; a=0; AD_Temp = TLC1549_ADC(); / 将数字量转化成电压值 .0-1v Volt = AD_Temp*0.978 ; / 将数字量转化成电压值 .0-1vdisplay1();LED1V=0;LED5V=1; LED100mV=1; if (VV=3) c=0;/led灯亮第一个 b=1;/另两个灭 a=1; AD_Temp = TLC1549_ADC(); / Volt = AD_Tem
15、p*1.0; / 将数字量转化成电压值 .0-0.1v Volt = AD_Temp*0.098; / 将数字量转化成电压值 .0-0.1v display1(); LED100mV=0; LED5V=1; LED1V=1; void main() int n=0; while(1) if(n+>100) n=0; run_system(); 6 总结 虽然上学期已经学习了单片机的知识,但是通过这次单片机课程设计,我发现我们所掌握的知识还是不够,单片机课程设计重点就在于对某个实际需求的设计,通过程序和硬件的配合来解决问题。 对于程序我们不仅需要将其设计出来,更需要细致的修改,完善。这并不
16、是一个简单的过程。例如,在数码管段码数组中,我们刚开始将板子上的数码管视为共阴极,但显示出来的都是乱码。虽然这只是一个小问题,但让我们认识到,做任何事情都不能理所当然的认为。我们最后的成品能够显示出电压的数值,但数码管动态显示有时候看起来数字不是很清晰不亮的地方有阴影。在学习过程中并没有注意关于数码管消隐的部分,到实际实验中才发现这个问题,通过查询资料,最终才了解到若进行片选切换时没有对上一片显示的内容进行清空,则会导致当前数码管中出现上一片内容的余影,从而使显示模糊,影响了整个显示效果。通过小组配合,最终使数码管上的数值显示清楚。在调试的过程中,电压值的示数与设定的量程有一些误差,通过不断调试Volt = AD_Temp*4.888; Volt = AD_Temp*4.888; Volt = AD_Temp*0.098;最终达到期望值。通过本次课程设计,不仅提升我们的动手能力,还加强对专业理论知识的理解和实际运
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 朔州陶瓷职业技术学院《金融与保险》2023-2024学年第二学期期末试卷
- 兰州博文科技学院《音乐基础Ⅱ》2023-2024学年第一学期期末试卷
- 2025年自动化与控制工程考试试卷及答案
- 南通大学《中外基础教育改革动态》2023-2024学年第二学期期末试卷
- 2025年外国语言文学专业考试试题及答案
- 2025年网络工程师职业考试试题及答案
- 山东省德州市宁津县第二实验小学2025年三年级数学第二学期期末考试模拟试题含解析
- 江苏省南京市江北新区2025年六年级数学小升初摸底考试含解析
- 天津市滨海新区2024-2025学年初三1月月考化学试题含解析
- 山东省菏泽市成武县重点名校2025届初三年级模拟考试(三)英语试题含答案
- 银行网络安全
- 数学活动5用不等式解决实际问题和猜猜哪个数最大(课件)人教版七年级数学下册
- 广东省深圳市2024年中考化学二模试卷(含答案)
- 2025年江苏省粮食集团有限责任公司招聘笔试参考题库含答案解析
- 《基于PLC药品自动包装机设计》11000字【论文】
- 2025年广东南方工报传媒有限公司招聘笔试参考题库含答案解析
- 2024高考语文一轮复习语句排序语句补写补偿练含解析
- 保险行业客户画像分析方案
- 等离子体参数测试方法 编制说明
- 2025年中国铁路上海局集团限公司招聘495名毕业生四(高等职业院校)高频重点提升(共500题)附带答案详解
- 2022-2023年浙江省杭州市上城区六年级下册期末语文试卷及答案(统编版)
评论
0/150
提交评论