单片机系统开发与应用实习报告-基于AT89S52单片机的数字电压表设计.doc_第1页
单片机系统开发与应用实习报告-基于AT89S52单片机的数字电压表设计.doc_第2页
单片机系统开发与应用实习报告-基于AT89S52单片机的数字电压表设计.doc_第3页
单片机系统开发与应用实习报告-基于AT89S52单片机的数字电压表设计.doc_第4页
单片机系统开发与应用实习报告-基于AT89S52单片机的数字电压表设计.doc_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

单单片片机机系系统统开开发发与与应应用用工工程程实实习习报报告告 选选题题名名称称: 基于 at89s52 的数字电压表的设计 系系(院院): 计算机工程学院 专专 业业: 嵌入式系统设计 班班 级级: 姓姓 名名: 学学 号号: 指指导导教教师师: 学学年年学学期期: 2009 2010 学年 第 2 学期 2010年 5 月 30 日 摘摘要要: 在测量仪器中,电压表是必须的,而且电压表的好坏直接影响到测量精度。具有一个精 度高、转换速度快、性能稳定的电压表才能符合测量的要求。 而且数字电压表是采用数字 化测量技术,把连续的模拟电压量转换成不连续、离散的数字化形式并加以显示的仪器。 为此本项目介绍了一种基于 at89s52 单片机的数字电压表的设计 ,目的是在使用尽量少的 元器件的情况下,用单片机 at89s52 和 adc0809 高精度 a/d 转换芯片设计一个 4 位数码管 显示的数字电压表,并 能够测量 05v 之间的直流电压值, 其测量最小分辨率为 0.02v。 本设计主要分为两部分:硬件电路及软件程序。而硬件电路又大体可分为a/d 转换电路、 led 显示电路,各部分电路的设计及原理将会在硬件电路设计部分详细介绍;程序的设计使 用 c 语言编程,详细的设计算法将会在程序设计部分详细介绍。 关关键键词词:at89s52;adc0809;a/d 转换;led 数码管显示 目录 1. 关于单片机 at89s52 与 adc0809 芯片.1 1.1关于 at89s521 1.2关于 adc08092 2 硬件电路3 2.1 程序原理图3 2.2 焊接顺序:4 2.3a/d 转换电路4 2.4 led 显示电路5 3 软件程序的设计.6 3.1 主程序流程图6 3.2a/d 转换模块:8 3.3 数码管显示模块10 4 实验结果.11 单片机系统开发与应用工程实习 计报告 1 1 1. . 关关于于单单片片机机 a at t8 89 9s s5 52 2 与与 a ad dc c0 08 80 09 9 芯芯片片 1.1 关关于于 at89s52 at89s52 是一种低功耗、高性能 cmos8 位微控制器,具有 8k 在系统可编程 flash 存储器。片上 flash 允许程序存储器在系统可编程,亦适于 常规编程器。 在单芯片上,拥有灵巧的 8 位 cpu 和在系统 可编程 flash,使得 at89s52 为众 多嵌入式控制应用系统提 供高灵活、超有效的解决方案。 at89s52 具有以下标准 功能: 8k 字节 flash,256 字节 ram,32 位 i/o 口线,看门狗定时器,2 个数据指 针,三个 16 位定时器/计数器,一个 6 向量 2 级中断结构,全双工串行口,片内晶振 及时钟电路。另外,at89s52 可降至 0hz 静态逻辑操作,支持 2 种软件可选择节电模 式。空闲模式下,cpu 停止工作,允许 ram、定时器/计数器、串口、中断继续工作。 掉电保护方式下,ram 内容被保存,振荡器被冻结,单片机一切工作停止,直到下一 个中断或硬件复位为止。 图 1-1 at89s52 线路引脚图 (由于 at89s52 的引脚较多,介绍起来比较繁琐,在此略过 ) 单片机系统开发与应用工程实习 计报告 2 1.2 关关于于 adc0809 a/d 转换器是模拟量输入通道中的一个环节,单片机通过a/d 转换器把输入模拟量变 成数字量再处理。 adc0809 是采样分辨率为 8 位的、以逐次逼近原理进行模 数转换的器件。其内部 有一个 8 通道多路开关,它可以根据地址码锁存译码后的信号,只选通8 路模拟输入信 号中的一个进行 a/d 转换。 图 1-2 adc0809 引脚图 引脚功能如下: adc0809 芯片有 28 条引脚,采用双列直插式封装,如图1323 所示。下面说明各引脚 功能。 in0in7:8 路模拟量输入端。 2-12-8:8 位数字量输出端。 adda、addb、addc:3 位地址输入线,用于选通 8 路模拟输入中的一路 ale:地址锁存允许信号,输入,高电平有效。 start: ad 转换启动脉冲输入端,输入一个正脉冲(至少100ns 宽)使其启动 (脉冲上升沿使 0809 复位,下降沿启动 a/d 转换)。 单片机系统开发与应用工程实习 计报告 3 eoc: ad 转换结束信号,输出,当 ad 转换结束时,此端输出一个高电平(转换 期间一直为低电平)。 oe:数据输出允许信号,输入,高电平有效。当ad 转换结束时,此端输入一个高 电平,才能打开输出三态门,输出数字量。 clk:时钟脉冲输入端。要求时钟频率不高于640khz。 ref(+)、ref(-):基准电压。 vcc:电源,单一 5v。 gnd:地。 2 2 硬硬件件电电路路 2.1 程程序序原原理理图图 图 2-1 关于 at89s52 的数字电压表原理图 原理图说明:原理图主要由 at89s52 芯片,adc0809 芯片,led 数码管组成。at89s52 芯片的 rst 与复位电路相连, xtal1 与 xtal2 连接着晶振电路。 p0 口与 adc0809 直接相连 接受来自 adc0809 传输而来的数据, p2 口作为 4 位动态数码显示管的位显示控制, p1 口 则是动态数码显示管的段显示控制并连接着 74ls07 作为驱动,p3 则是提供给 adc0809 芯 片的 clk 信号并控制其开始。相对的 adc0809 芯片的 in0 接了滑动电阻器以为实验产生不 等的电压。add ac 接地,并确保基准电压。 单片机系统开发与应用工程实习 计报告 4 2.2 焊焊接接顺顺序序: a)把“单片机系统”区域中的 p1.0p1.7 与“动态数码显示”区域中的 abcdefgh 端 口用 8 芯排线连接。 b)把“单片机系统”区域中的 p2.0p2.7 与“动态数码显示”区域中的 s1s2s3s4s5s6s7s8 端口用 8 芯排线连接。 c)把“单片机系统”区域中的 p3.0 与“模数转换模块”区域中的 st 端子用导线相连 接。 d 把“单片机系统”区域中的 p3.1 与“模数转换模块”区域中的 oe 端子用导线相连 接。 e)把“单片机系统”区域中的 p3.2 与“模数转换模块”区域中的 eoc 端子用导线相 连接。 f)把“单片机系统”区域中的 p3.3 与“模数转换模块”区域中的 clk 端子用导线相 连接。 g)把“模数转换模块”区域中的 a2a1a0 端子用导线连接到 “电源模块”区域中的 gnd 端子上。 h)把“模数转换模块”区域中的 in0 端子用导线连接到 “三路可调电压模块 ”区域中 的 vr1 端子上。 i)把“单片机系统”区域中的 p0.0p0.7 用 8 芯排线连接到“模数转换模块”区域 中的 d0d1d2d3d4d5d6d7 端 2.3a/d 转转换换电电路路 a/d 转换器是模拟量输入通道中的一个环节,单片机通过a/d 转换器把输入模拟量变 成数字量再处理。 具体电路图如下: 单片机系统开发与应用工程实习 计报告 5 图 2-2 实现 a/d 转换电路图 adc0809 实现 a/d 转换的原理如下: 其工作原理如下: 首先输入 3 位地址,并使 ale=1,将地址存入地址锁存器中。此地 址经译码选通 8 路模拟输入之一到比较器。 start 上升沿将逐次逼近寄存器复位。下降沿 启动 ad 转换,之后 eoc 输出信号变低,指示转换正在进行。直到ad 转换完成, eoc 变为高电平,指示 ad 转换结束,结果数据已存入锁存器,这个信号可用作中断申请。 当 oe 输入高电平 时,输出三态门打开,转换结果的数字量输出到数据总线上。 2.4 led 显显示示电电路路 设计中采用的是 4 段 led 数码管来显示电压值。 led 具有耗电低、亮度高、视角大、 线路简单、耐震及寿命长等优点,它由 4 个发光二极管组成,其中 3 个按8字型排列, 另一个发光二极管为圆点形状,位于右下角,常用于显示小数点。把4 个发光二极管连在 一起,公共端接高电平,叫共阳极接法,相反,公共端接低电平的叫共阴极接法,我们采用 共阴极接法。当发光二极管导通时,相应的一段笔画或点就发亮,从而形成不同的发光字符。 其 8 段分别命名为 dp g f e d c b a。例如,要显示“0”,则 dp g f e d c b a 分别 为:00111111b;若要显示多个数字,只要让若干个数码管的位码循环为高电平就可以了。 单片机系统开发与应用工程实习 计报告 6 图 2-3 led 数码管显示电路图 根据设计要求,显示电路需要至少 4 位 led 数码管来显示电压值,我们再多加一位用 来显示电压单位“v”,则有 7 位 led 循环显示。利用单片机的 i/o 口驱动 led 数码管的 亮灭,设计中由 p0 口驱动 led 的段码显示,即显示字符,由 p2 口选择 led 位码,即选择 点亮哪位 led 来显示。 3 软软件件程程序序的的设设计计 3.1 主主程程序序流流程程图图 单片机系统开发与应用工程实习 计报告 7 图 3-1 主程序流程图 程序初始化: #include unsigned char code dispbitcode=0xfe,0xfd,0xfb,0xf7, 0xef,0xdf,0xbf,0x7f; unsigned char code dispcode=0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f,0x00; unsigned char dispbuf8=10,10,10,10,0,0,0,0; unsigned char dispcount; unsigned char getdata; unsigned int temp; unsigned char i; sbit st=p30; sbit oe=p31; sbit eoc=p32; sbit clk=p33; void main(void) st=0; oe=0; et0=1;/允许定时器 0 et1=1;/允许定时器 1 ea=1;/中断允许总控制位,中断总允许 tmod=0x12; th0=216; tl0=216; th1=(65536-4000)/256; /定时时间计算公式: tl1=(65536-4000)%256;/一共 4 个 8 位定时器 tr1=1;/启动定时器 1 单片机系统开发与应用工程实习 计报告 8 tr0=1;/启动寄存器 0 程序的初始化工作有以下功能:生成数码管等代码表;表示部分引脚联通;设置部分变 量的初值;定义定时器 0,1;设置定时器方式选择寄存器 并确定寄存器 0 使用工作方式 1,寄存器 1 使用工作方式 2,具体设定了寄存器 1,并启用 0,1 寄存器。 3.2a/d 转转换换模模块块: 图 3-2 a/d 转换测量子程序流程图 st=1; st=0; /产生下跳沿 开始 a/d 转换 while(1) if(eoc=1)/eoc 转换结束信号,eoc=1 时转换结束 oe=1;/输出允许信号 oe=1 时输出转化得到的数据 getdata=p0;/将转化所得数据传输到 p0 单片机系统开发与应用工程实习 计报告 9 oe=0;/oe=0 时输出数据线呈高阻态 temp=getdata*235; temp=temp/128;/将模拟量转换为数码量 i=5; dispbuf0=10; dispbuf1=10; dispbuf2=10; dispbuf3=10; dispbuf4=10; dispbuf5=0; dispbuf6=0; dispbuf7=0;/寄存要输出的数据 while(temp/10) dispbufi=temp%10; temp=temp/10; i+; dispbufi=temp; /从寄存中提取数据 st=1; st=0; /产生下跳沿 a/d 转换程序由开始设定的 st 的变化开始(产生下跳沿 使 adc0809 的 start 开始运转) 然后当转换结束( eoc=1)时,开始传输数据到 p0(oe=1 输出允许信号置 1)至传输结束 时 oe 置 0,将获得的电压量转换成所对应的 16 进制数据并寄存 ,再通过取模的方式把各 位数字逐个提取, 最后结束。 单片机系统开发与应用工程实习 计报告 10 3.3 数数码码管管显显示示模模块块 void t0(void) interrupt 1 using 0 clk=clk; /时钟信号取反 void t1(void) interrupt 3 using 0 /外部中断 0 th1=(65536-4000)/256; tl1=(65536-4000)%256; /定时器初始化,定时 4 微秒循环 p1=dispcodedispbufdispcount; p2=dispbitcodedispcount; /经查代码表得出数据 if(dispcount=3) p1=p1 | 0x80; /在 led 上显示出数字 dispcount+; if(dispcount=4) dispcount=0; led 数码管的现实首先由外部寄存器 0 中断使时钟信号取反,在有外部寄存器 1 中断 使定时器初始化,通过之前 adc0809 输出的 16 位数据经查询代码表得到相应的 bcd 码, 最后显示即可。 单片机系统开发与应用工程实习 计报告 11 4 4 实实验验结结果果 经过 protel 的制作与实物的焊接 和烧制程序后 我所得的结果还是不尽如人意: 由于 部分元器件的缺失,虽然电源灯和 led 数码管能够使用,但很不稳定 。经过万用表的测试 也不能解决,导致最后实验没有达到预期效果。 单片机系统开发与应用工程实习 计报告 12 总结 单片机是一门理论和技术发展十分迅速、应用非常广泛的前沿性学科, 它的理论性 和实践性都很强。通过这次漫长的程序设计中,首先我们通过用 rrotel 软件绘制电路图 设计 pcb 板,再经过自己动手焊制电路板并实现实验结果的过程 ,加深了对课堂抽象概念 的理解,巩固了课堂上所学的理论知识 ,并很好地理解与掌握 单片机 at89s52 和 a/d 转换芯 片 adc0809 的基本原理、使用方法。而对于这次课程设计的题目 “数字电压表的设计 ”, 在收集资料以及编程过程中,不光让我巩固所学的知识 ,加强理论和实际结合的能力,细 致的了解了单片机的工作原理 ,还培养了我们的综合设计能力与实际工作能力。真可谓获益 匪浅啊。虽然最后离我的实验结果还有少许偏差让我有点不甘心,但这次独立制作芯片的 过程还是让我感触良多的。 而且在这次课程设计的撰写过程中,我得到了许多人的帮助。 本论文从立题到论文撰写整个过程都是在 和悉心指导下完成的。老师们在传授我知识 的同时,更注重培养我解决问题的思路和 法及创新能力,为我今后学习和工作打下了坚实 的基础并开阔了我的视野,渊博的知识、严谨的治学态度、忘我的工作精神以及对新知识不 懈追求的精神,令我们佩服

温馨提示

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

评论

0/150

提交评论