单片机系统开发与应用实习报告基于AT89S52单片机的数字电压表设计.doc

上传人:土8路 文档编号:10118928 上传时间:2021-04-20 格式:DOC 页数:18 大小:121KB
返回 下载 相关 举报
单片机系统开发与应用实习报告基于AT89S52单片机的数字电压表设计.doc_第1页
第1页 / 共18页
单片机系统开发与应用实习报告基于AT89S52单片机的数字电压表设计.doc_第2页
第2页 / 共18页
单片机系统开发与应用实习报告基于AT89S52单片机的数字电压表设计.doc_第3页
第3页 / 共18页
单片机系统开发与应用实习报告基于AT89S52单片机的数字电压表设计.doc_第4页
第4页 / 共18页
单片机系统开发与应用实习报告基于AT89S52单片机的数字电压表设计.doc_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《单片机系统开发与应用实习报告基于AT89S52单片机的数字电压表设计.doc》由会员分享,可在线阅读,更多相关《单片机系统开发与应用实习报告基于AT89S52单片机的数字电压表设计.doc(18页珍藏版)》请在三一文库上搜索。

1、单单片片机机系系统统开开发发与与应应用用工工程程实实习习报报告告 选选题题名名称称: 基于 AT89S52 的数字电压表的设计 系系(院院): 计算机工程学院 专专 业业: 嵌入式系统设计 班班 级级: 姓姓 名名: 学学 号号: 指指导导教教师师: 学学年年学学期期: 2009 2010 学年 第 2 学期 2010年 5 月 30 日 摘摘要要: 在测量仪器中,电压表是必须的,而且电压表的好坏直接影响到测量精度。具有一个精 度高、转换速度快、性能稳定的电压表才能符合测量的要求。 而且数字电压表是采用数字 化测量技术,把连续的模拟电压量转换成不连续、离散的数字化形式并加以显示的仪器。 为此本

2、项目介绍了一种基于 AT89S52 单片机的数字电压表的设计 ,目的是在使用尽量少的 元器件的情况下,用单片机 AT89S52 和 ADC0809 高精度 A/D 转换芯片设计一个 4 位数码管 显示的数字电压表,并 能够测量 05V 之间的直流电压值, 其测量最小分辨率为 0.02V。 本设计主要分为两部分:硬件电路及软件程序。而硬件电路又大体可分为A/D 转换电路、 LED 显示电路,各部分电路的设计及原理将会在硬件电路设计部分详细介绍;程序的设计使 用 C 语言编程,详细的设计算法将会在程序设计部分详细介绍。 关关键键词词:AT89S52;ADC0809;A/D 转换;LED 数码管显示

3、 目录 1. 关于单片机 AT89S52 与 ADC0809 芯片.1 1.1关于 AT89S52.1 1.2关于 ADC0809.2 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. . 关关于于单单片片机机 A AT T8 89 9S S5 52 2 与与 A AD DC C0 08 80 09 9 芯芯片片 1.1 关关于于 AT89S52 At89s52 是一种低功耗、高性能

4、 CMOS8 位微控制器,具有 8K 在系统可编程 Flash 存储器。片上 Flash 允许程序存储器在系统可编程,亦适于 常规编程器。 在单芯片上,拥有灵巧的 8 位 CPU 和在系统 可编程 Flash,使得 AT89S52 为众 多嵌入式控制应用系统提 供高灵活、超有效的解决方案。 AT89S52 具有以下标准 功能: 8k 字节 Flash,256 字节 RAM,32 位 I/O 口线,看门狗定时器,2 个数据指 针,三个 16 位定时器/计数器,一个 6 向量 2 级中断结构,全双工串行口,片内晶振 及时钟电路。另外,AT89S52 可降至 0Hz 静态逻辑操作,支持 2 种软件可

5、选择节电模 式。空闲模式下,CPU 停止工作,允许 RAM、定时器/计数器、串口、中断继续工作。 掉电保护方式下,RAM 内容被保存,振荡器被冻结,单片机一切工作停止,直到下一 个中断或硬件复位为止。 图 1-1 AT89S52 线路引脚图 (由于 AT89S52 的引脚较多,介绍起来比较繁琐,在此略过 ) 1.2 关关于于 ADC0809 A/D 转换器是模拟量输入通道中的一个环节,单片机通过A/D 转换器把输入模拟量变 成数字量再处理。 ADC0809 是采样分辨率为 8 位的、以逐次逼近原理进行模 数转换的器件。其内部 有一个 8 通道多路开关,它可以根据地址码锁存译码后的信号,只选通8

6、 路模拟输入信 号中的一个进行 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 转换)。 EOC: AD 转换结束信号,输出,当 AD 转换

7、结束时,此端输出一个高电平(转换 期间一直为低电平)。 OE:数据输出允许信号,输入,高电平有效。当AD 转换结束时,此端输入一个高 电平,才能打开输出三态门,输出数字量。 CLK:时钟脉冲输入端。要求时钟频率不高于640KHZ。 REF(+)、REF(-):基准电压。 Vcc:电源,单一 5V。 GND:地。 2 2 硬硬件件电电路路 2.1 程程序序原原理理图图 图 2-1 关于 AT89S52 的数字电压表原理图 原理图说明:原理图主要由 AT89S52 芯片,ADC0809 芯片,LED 数码管组成。AT89S52 芯片的 RST 与复位电路相连, XTAL1 与 XTAL2 连接着晶

8、振电路。 P0 口与 ADC0809 直接相连 接受来自 ADC0809 传输而来的数据, P2 口作为 4 位动态数码显示管的位显示控制, P1 口 则是动态数码显示管的段显示控制并连接着 74LS07 作为驱动,P3 则是提供给 ADC0809 芯 片的 CLK 信号并控制其开始。相对的 ADC0809 芯片的 IN0 接了滑动电阻器以为实验产生不 等的电压。ADD AC 接地,并确保基准电压。 2.2 焊焊接接顺顺序序: a)把“单片机系统”区域中的 P1.0P1.7 与“动态数码显示”区域中的 ABCDEFGH 端 口用 8 芯排线连接。 b)把“单片机系统”区域中的 P2.0P2.7

9、 与“动态数码显示”区域中的 S1S2S3S4S5S6S7S8 端口用 8 芯排线连接。 c)把“单片机系统”区域中的 P3.0 与“模数转换模块”区域中的 ST 端子用导线相连 接。 d 把“单片机系统”区域中的 P3.1 与“模数转换模块”区域中的 OE 端子用导线相连 接。 e)把“单片机系统”区域中的 P3.2 与“模数转换模块”区域中的 EOC 端子用导线相 连接。 f)把“单片机系统”区域中的 P3.3 与“模数转换模块”区域中的 CLK 端子用导线相 连接。 g)把“模数转换模块”区域中的 A2A1A0 端子用导线连接到 “电源模块”区域中的 GND 端子上。 h)把“模数转换模

10、块”区域中的 IN0 端子用导线连接到 “三路可调电压模块 ”区域中 的 VR1 端子上。 i)把“单片机系统”区域中的 P0.0P0.7 用 8 芯排线连接到“模数转换模块”区域 中的 D0D1D2D3D4D5D6D7 端 2.3A/D 转转换换电电路路 A/D 转换器是模拟量输入通道中的一个环节,单片机通过A/D 转换器把输入模拟量变 成数字量再处理。 具体电路图如下: 图 2-2 实现 A/D 转换电路图 ADC0809 实现 A/D 转换的原理如下: 其工作原理如下: 首先输入 3 位地址,并使 ALE=1,将地址存入地址锁存器中。此地 址经译码选通 8 路模拟输入之一到比较器。 ST

11、ART 上升沿将逐次逼近寄存器复位。下降沿 启动 AD 转换,之后 EOC 输出信号变低,指示转换正在进行。直到AD 转换完成, EOC 变为高电平,指示 AD 转换结束,结果数据已存入锁存器,这个信号可用作中断申请。 当 OE 输入高电平 时,输出三态门打开,转换结果的数字量输出到数据总线上。 2.4 LED 显显示示电电路路 设计中采用的是 4 段 LED 数码管来显示电压值。 LED 具有耗电低、亮度高、视角大、 线路简单、耐震及寿命长等优点,它由 4 个发光二极管组成,其中 3 个按8字型排列, 另一个发光二极管为圆点形状,位于右下角,常用于显示小数点。把4 个发光二极管连在 一起,公

12、共端接高电平,叫共阳极接法,相反,公共端接低电平的叫共阴极接法,我们采用 共阴极接法。当发光二极管导通时,相应的一段笔画或点就发亮,从而形成不同的发光字符。 其 8 段分别命名为 dp g f e d c b a。例如,要显示“0”,则 dp g f e d c b a 分别 为:00111111B;若要显示多个数字,只要让若干个数码管的位码循环为高电平就可以了。 图 2-3 LED 数码管显示电路图 根据设计要求,显示电路需要至少 4 位 LED 数码管来显示电压值,我们再多加一位用 来显示电压单位“V”,则有 7 位 LED 循环显示。利用单片机的 I/O 口驱动 LED 数码管的 亮灭,

13、设计中由 P0 口驱动 LED 的段码显示,即显示字符,由 P2 口选择 LED 位码,即选择 点亮哪位 LED 来显示。 3 软软件件程程序序的的设设计计 3.1 主主程程序序流流程程图图 图 3-1 主程序流程图 程序初始化: #include unsigned char code dispbitcode=0 xfe,0 xfd,0 xfb,0 xf7, 0 xef,0 xdf,0 xbf,0 x7f; unsigned char code dispcode=0 x3f,0 x06,0 x5b,0 x4f,0 x66, 0 x6d,0 x7d,0 x07,0 x7f,0 x6f,0 x00

14、; 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=0 x12; TH0=216; TL0=216; TH1=(65

15、536-4000)/256; /定时时间计算公式: TL1=(65536-4000)%256;/一共 4 个 8 位定时器 TR1=1;/启动定时器 1 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

16、)/EOC 转换结束信号,EOC=1 时转换结束 OE=1;/输出允许信号 OE=1 时输出转化得到的数据 getdata=P0;/将转化所得数据传输到 P0 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=t

17、emp/10; i+; dispbufi=temp; /从寄存中提取数据 ST=1; ST=0; /产生下跳沿 A/D 转换程序由开始设定的 ST 的变化开始(产生下跳沿 使 ADC0809 的 START 开始运转) 然后当转换结束( EOC=1)时,开始传输数据到 P0(OE=1 输出允许信号置 1)至传输结束 时 OE 置 0,将获得的电压量转换成所对应的 16 进制数据并寄存 ,再通过取模的方式把各 位数字逐个提取, 最后结束。 3.3 数数码码管管显显示示模模块块 void t0(void) interrupt 1 using 0 CLK=CLK; /时钟信号取反 void t1(v

18、oid) interrupt 3 using 0 /外部中断 0 TH1=(65536-4000)/256; TL1=(65536-4000)%256; /定时器初始化,定时 4 微秒循环 P1=dispcodedispbufdispcount; P2=dispbitcodedispcount; /经查代码表得出数据 if(dispcount=3) P1=P1 | 0 x80; /在 LED 上显示出数字 dispcount+; if(dispcount=4) dispcount=0; LED 数码管的现实首先由外部寄存器 0 中断使时钟信号取反,在有外部寄存器 1 中断 使定时器初始化,通过

19、之前 ADC0809 输出的 16 位数据经查询代码表得到相应的 BCD 码, 最后显示即可。 4 4 实实验验结结果果 经过 protel 的制作与实物的焊接 和烧制程序后 我所得的结果还是不尽如人意: 由于 部分元器件的缺失,虽然电源灯和 LED 数码管能够使用,但很不稳定 。经过万用表的测试 也不能解决,导致最后实验没有达到预期效果。 总结 单片机是一门理论和技术发展十分迅速、应用非常广泛的前沿性学科, 它的理论性 和实践性都很强。通过这次漫长的程序设计中,首先我们通过用 RROTEL 软件绘制电路图 设计 PCB 板,再经过自己动手焊制电路板并实现实验结果的过程 ,加深了对课堂抽象概念

20、 的理解,巩固了课堂上所学的理论知识 ,并很好地理解与掌握 单片机 AT89S52 和 A/D 转换芯 片 ADC0809 的基本原理、使用方法。而对于这次课程设计的题目 “数字电压表的设计 ”, 在收集资料以及编程过程中,不光让我巩固所学的知识 ,加强理论和实际结合的能力,细 致的了解了单片机的工作原理 ,还培养了我们的综合设计能力与实际工作能力。真可谓获益 匪浅啊。虽然最后离我的实验结果还有少许偏差让我有点不甘心,但这次独立制作芯片的 过程还是让我感触良多的。 而且在这次课程设计的撰写过程中,我得到了许多人的帮助。 本论文从立题到论文撰写整个过程都是在 和悉心指导下完成的。老师们在传授我知

21、识 的同时,更注重培养我解决问题的思路和 法及创新能力,为我今后学习和工作打下了坚实 的基础并开阔了我的视野,渊博的知识、严谨的治学态度、忘我的工作精神以及对新知识不 懈追求的精神,令我们佩服,使我们受益匪浅 .我将最诚挚的谢意奉献给我的导师们。 另外,我要感谢我的同班同学,他们给予我很多的关心和帮助,并在程序上给了我很多 启示,而且他们中间不少人给我学习和生活上带来了很多的快乐。没有他们我的程序不可能 做的如此顺利。 参考文献 1 杨居易 杨晓琴 王益斌 单片机课程设计指导 清华大学出版社 2009-5 2 李广弟 朱月秀 冷祖祁 单片机基础 北京航空航天大学出版社 2008-4 3 张谨

22、张伟 张立宝 PROTEL 99se 入门与提高 人民邮电出版社 2008-7 4 李光飞,楼然苗,胡佳文,谢象佐.单片机课程设计实例指导 .北京航空航天大学出版社 . 2004.9 5 蔡朝洋.单片机控制实习与专题制作 .北京:北京航空航天大学出版社, 2006.11 指指导导教教师师评评语语 学号姓名班级 选题 名称 基于 AT89S52 的数字电压表的设计 序号评价内容 权重 (%) 得分 1考勤记录、学习态度、工作作风与表现。5 2 自学情况: 上网检索机时数、文献阅读情况(笔记) 。 10 3 论文选题是否先进,是否具有前沿性或前瞻 性。 5 4 成果验收: 是否完成设计任务;能否运行、可操作 性如何等。 20 5 报告的格式规范程度、是否图文并茂、语言 规范及流畅程度;主题是否鲜明、重心是否 突出、论述是否充分、结论是否正确;是否 提出了自己的独到见解。 30 6文献引用是否合理、充分、真实。5 7 答辩情况: 自我陈述、回答问题的正确性、用语准 确性、逻辑思维、是否具有独到见解等。 25 合计 指导教师(签章): 年 月 日

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1