单片机课程设计 1.docx

上传人:b****6 文档编号:8193534 上传时间:2023-01-29 格式:DOCX 页数:21 大小:574.99KB
下载 相关 举报
单片机课程设计 1.docx_第1页
第1页 / 共21页
单片机课程设计 1.docx_第2页
第2页 / 共21页
单片机课程设计 1.docx_第3页
第3页 / 共21页
单片机课程设计 1.docx_第4页
第4页 / 共21页
单片机课程设计 1.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

单片机课程设计 1.docx

《单片机课程设计 1.docx》由会员分享,可在线阅读,更多相关《单片机课程设计 1.docx(21页珍藏版)》请在冰豆网上搜索。

单片机课程设计 1.docx

单片机课程设计1

~学年第学期

《单片机应用技术》

课程设计报告

 

题目:

数字电压表设计

专业:

电气工程及其自动化

班级:

姓名:

指导教师:

电气工程学院

年月日

任务书

课题名称

数字电压表设计

指导教师(职称)

陆媛宋洪儒

执行时间

2014~2015学年第2学期第14周

学生姓名

学号

承担任务

系统设计总体方案

系统硬件电路设计

系统程序设计

系统仿真

 

设计目的

1、进一步熟悉和掌握单片机的结构及工作原理。

2、掌握单片机的接口技术及相关外围芯片的外特性,控制方法。

3、通过课程设计,掌握以单片机核心的电路设计的基本方法和技术,了解有关电路参数的计算方法。

4、通过程序设计和仿真,逐步掌握模块化程序设计方法和仿真软件的使用。

5、通过完成一个包括电路设计和程序开发的完整过程,使学生了解开发单片机应用系统的全过程,为今后从事相应打下基础。

 

设计要求

以单片机为核心,设计一个数字电压表。

采用中断方式,对2路0~5V的模拟电压进行循环采集,采集的数据送LED显示,并存入内存。

超过界限时指示灯闪烁。

 

摘要

本文介绍了以单片机为核心的数字电压表的设计。

设计主要由三个模块组成:

A/D转换模块,数据处理模块以及显示模块。

A/D转换由芯片ADC0804来完成,它负责把采集到的模拟量转换为相应的数字量在传送到数据处理模块。

数据处理模块。

数据处理则由芯片AT89C51来完成,其负责把ADC0804传送来的数字量经过一定的数据处理,产生相应的显示码送到显示模块进行显示;此外,它还控制着ADC0804芯片工作。

此数字电压表采用中断方式,对两路0~5V的模拟电路进行循环采集,采集的数据送LED显示,并存入内存,超过界线时指示灯闪烁。

关键词:

单片机;数字电压表;A/D转换;AT89C51;ADC0804

 

摘要…………………………………………………………………………………2

第一章:

系统设计总体方案

1.1设计要求……………………………………………………………………4

1.2设计思路……………………………………………………………………4

1.3设计方案……………………………………………………………………4

第二章:

系统硬件电路设计

2.1A/D转换模块…………………………………………………………………4

2.1.1逐次逼近型A/D转换器原理…………………………………………4

2.1.2ADC0804的管脚和转换原理…………………………………………5

2.2复位电路和时钟电路…………………………………………………………6

2.2.1复位电路设计…………………………………………………………6

2.2.2时钟电路设计…………………………………………………………7

2.3LED显示系统设计……………………………………………………………7

2.3.1LED基本结构……………………………………………………………7

2.3.2LED显示器的选择………………………………………………………8

2.3.3LED译码方式…………………………………………………………8

2.3.4LED显示器与单片机接口设计………………………………………9

2.4总体电路设计…………………………………………………………………9

第三章:

系统程序设计

3.1系统设计总方案………………………………………………………………10

3.2系统子程序设计………………………………………………………………11

3.2.1初始化程序……………………………………………………………11

3.2.2A/D转换子程序………………………………………………………11

3.2.3显示子程序……………………………………………………………12

第四章:

系统仿真

4.1软件调试……………………………………………………………………12

4.2显示结果及误差分析………………………………………………………12

4.2.1显示结果………………………………………………………………12

4.2.2误差分析……………………………………………………………14

第五章:

结束语

参考文献…………………………………………………………………………15

附录………………………………………………………………………………16

 

第一章:

系统设计总体方案

1.1设计要求

(1)以单片机为核心,设计一个数字电压表。

(2)采用中断方式,对2路0~5V的模拟电压进行循环采集。

(3)采集的数据送LED显示,并存入内存。

(4)超过界线时指示灯闪烁。

1.2设计思路

(1)根据设计要求,选择AT89C51单片机为核心控制器件。

(2)A/D转换采用ADC0804,与单片机的接口为P1口。

(3)电压显示采用4位一体的LED数码管。

(4)LED数码的段码输入,由并行端口P2产生:

位码输入,用并行端口P3低四位产生。

1.3设计方案

硬件电路设计由6个部分组成:

A/D转换电路、AT89C51单片机系统、LED显示系统、时钟电路、复位电路以及测量电压输入电路。

硬件电路设计框图如图一所示。

图一数字电压表系统硬件设计框图

第二章:

系统硬件电路设计

2.1A/D转换模块

现实世界的物理量都是模拟量,能把模拟量转化呈数字量的器件称为模/数转换器(A/D转换器),A/D转换器是单片机数据采集系统的关键接口电路,按照各种A/D芯片的转化原理可分为逐次逼近型,双重积分型等等。

双重积分式A/D转换器具有抗干扰能力强、转换精度高,价格便宜等优点。

与双积分相比,逐次逼近式A/D转换器的转换速度快,而且精度更高,比如ADC0809、ADC0808、ADC0804等,它们通常具有8路模拟选通开关及地址译码,锁存电路等。

它们可以与单片机系统连接,将数字量送到单片机进行分析和显示。

一个n位的逐次逼近型A/D转换器只需要比较n次,转换时间只取决于数位和时钟周期,逐次逼近型A/D转换其速度快,因而在实际中广泛应用。

2.1.1逐次逼近型A/D转换器原理

逐次逼近型A/D转换器是由—个比较器、A/D转换器、存储器及控制电路组成。

它利用内部的寄存器从高位到低位—次开始逐位试探比较。

转换过程如下:

开始时,寄存器各位清零,转换时,先将最高位置1,把数据送入A用转换器转换,转换结果与输入的模拟量比较,如果转换的模拟量比输入的模拟量小,则1保留,如果转换的模拟量比输入的模拟量大,则1不保留,然后从第一位依次重复上述过程直至最低位,最后寄存器中的内容就是输入模拟量对应的二进制数字量。

其原理框图如图二所示:

图二逐次逼近式A/D转换器原理图

2.1.2ADC0804的管脚和转换原理

工作电压:

+5V,即VCC=+5V。

模拟输入电压范围:

0~5V,即0

分辨率:

8位,即分辨率为1/2=1/256,转换值介于0~255之间。

转换时间:

100us(fCK=640KHz)。

转换误差:

参考电压:

2.5V,即Verf=2.5V。

ADC0804是属于连续渐进式的A/D转换器,这类型的A/D转换器除了转换速度快、分辨率高外,还有价钱便宜的优点,普遍被应用于微电脑的接口设计上。

以输出8位的ADC0804动作来说明“连续渐进式的A/D转换器”的转换原理,动作步骤如下表示(原则上先从左侧最高位找起)。

第一次寻找结果:

10000000(若假设值

,则寻找位=假设位=1)

第二次寻找结果:

11000000(若假设值

,则寻找位=假设位=1)

第三次寻找结果:

11000000(若假设值>

,则寻找位=假设位=0)

第四次寻找结果:

11010000(若假设值

,则寻找位=假设位=1)

第五次寻找结果:

11010000(若假设值>

,则寻找位=假设位=0)

第六次寻找结果:

11010100(若假设值

,则寻找位=假设位=1)

第七次寻找结果:

11010110(若假设值

,则寻找位=假设位=1)

第八次寻找结果:

11010110(若假设值>

,则寻找位=假设位=0)

这样使用二分法的寻找方式,8位的A/D转换器只要8次寻找,12位的转换器只要12次寻找,就能完成转换的动作,其中的输入值代表图1的模拟输入电

压VinADC0804与CPLD的连接图:

各个管脚的作用:

D0-D7:

数字量输出端,输出结果为八位二进制结果;

CLK:

为芯片工作提供工作脉冲,时钟电路如图所示,时钟频率计算方式是fCK=1/(1.1

);

CS:

片选信号;

WR:

写信号输入端;

RD:

读信号输入端;

INTR:

转换完毕中断提示端;

其他管脚链接如图,是供电和提供参考电压的管脚输入端

2.2复位电路和时钟电路

2.2.1复位电路设计

单片机在启动运行时都需要复位,使CPU和系统中的其他部件都处于一个确定的初始状态,并从这个状态开始工作。

MCS-51单片机有一个复位引脚RST,采用施密特触发输入。

当震荡器起振后,只要该引脚上出现2个机器周期以上的高电平即可确保时器件复位

复位完成后,如果RST端继续保持高电平,MCS-51就直处于复位状态,只要RST恢复低电平后,单片机才能进入其他工作状态。

单片机的复位方式有上电自动复位和手动复位两种,图6是51系列单片机统常用的上电复位和手动复位组合电路,只要Vcc上升时间不超过1ms,它们都能很好的工作

图6复位电路

2.2.2时钟电路设计

单片机中CPU每执行一条指令,都必须在统一的时钟脉冲的控制下严格按时间节拍进行,而这个时钟脉冲是单片机控制中的时序电路发出的。

CPU执行一条指令的各个微操作所对应时间顺序称为单片机的时序。

MCS-51单片机芯片内部有一个高增益反向放大器,用于构成振荡器,XTAL1为该放大器的输入端,XTAL2为该放大器的输出端,但形成时钟电路还需附加其他电路

本设计系统采用内部时钟方式,利用单片机内部的高增益反相放大器,外部电路图,只需要1个晶振和2个电容即可,如图7所示。

图7时钟电路

电路中的器件选择可以通过计算和实验确定也可以参考一些典型电路的参数,电路中,电容器C1和C2对震荡频率有微调作用,通常的取值范围是30±10pF,在这个系统中选择了33pF;石英晶振选择范围最高可选24MHz,它决定了单片机电路产生的时钟信号震荡频率,在本系统中选择的是12MHz,因而时到信号的震荡频率为12MHz。

2.3LED显示系统设计

2.3.1LED基本结构

LED是发光二极管显示器的缩。

LED由于结构简单、价格便宜、与单片机接口方使等优点而得到广泛应用。

LED显示器是由若干个发光二极管组成显示字段的显示器件

在单片机中使用最多的是七段数码显示器。

LED七段数码显示器由8个发光二极管组成显示字段,其中7个长条形的发光二极管排列成“日”字形,另一个圆点形的发光·极管在显示器的右下角作为显示小数点用,其通过不同的组合可用来显示各种数字。

LED引脚排列如下图8所示:

图8LED引脚排列

 

2.3.2LED显示器的选择

应用系统中,设计要求不同,使用的LED显示器的位数也不同,因此就生产了位数,尺寸,型号不同的LED显示器供选择,在本设计中,选择4位一体的数码型LED显示器,简称“4-LED”。

本系统中前一位显示电压的整数位,即个位后两位显可电压的小数位。

4-LED显示器引脚如图9所示,是一个共阴极接法的4位LED数码显示管,其中a,b,c,d,e,f,g为4位LED各段的公共输出端,1,2,3,4分别是每位的位数选端,dp是小数点引出端,4位一体LED数码显示管的内部结构是由4个单独的LED组成,每个LED的段输出引脚在内部都并联后,引出到器件的外部。

图94位LED引脚

对于这种结构的LED显示器,它的体积和结构都符合设计要求,由于4位LED阴极的各段已经在内部连接在一起,所以必须使用动态扫描方式(将所有数码管的段选线并联在一起,用一个I/O接口控制)显示.

2.3.3LED译码方式

译码方式是指由显示字符转换得到对应的字段码的方式,对于LED数码管显示器,通常的译码方式有硬件译码和软件译码方式两种。

硬件译码是指利用专门的硬件电路来实现显示字符码的转换。

软件译码就是编写软件译码程序,通过译码程序来得到要显示的字符的字段码,译码程序通常为查表程序

本设计系统中为了简化硬件线路设计,LED译码采用软件编程来实现。

由于本设计采用的是共阳极LED,其对应的字符和字段码如下表2.3所示。

表2.3共阳极字码表

2.3.4LED显示器与单片机接口设计

由于单片机的并行口不能直接驱动LED显示器,所以,在一般情况下,必须采用专用的驱动电路芯片,使之产生足够大的电流,显示器才能正常工作

如果驱动电路能力差即负载能力不够时,显示器亮度就低,而且驱动电路长期在超负荷下运行容易损坏,因此,LED显示器的驱动电路设计是一个非常重要的问题。

为了简化数字电压表的电路设计,在LED驱动电路的设计上,可以利用单片机P0上外接的上拉电阻来实现,即将LED的A-G段显示引脚和DP小数点显示引脚并联到P0上拉电阻之间,这样,可以加大P0作为输出口的驱动能力,使得LED能按照正常的亮度显示出数字,如图10所示。

2.4总体电路设计

经过以上的设计过程,可设计出以单片机为核心的数字电压表硬件电路原理图如图11所示。

图11数字电压表电路图

此电路的工作原理是:

+5V模拟电压信号通过变阻器VR1分压后由ADC0804的VIN+,VIN通道进入,经过模/数转换后,产生相应的数字量经过其输出通道DB0-DB,传送给AT89C51芯片的Pl口,AT89C51负责把接收到的数字量经过数据处理,产生正确的7段数码管的显示段码传送给四位LED,同时它还通过其四位I/O口P2.0、P2.1、P2.2、P23产生位选信号控制数码管的亮灭。

以单片机为核心的数字电压表的硬件电路已经设计完成,就可以选取相应的芯片和元器件,利用Proteus软件绘制出硬件的原理,并仔细地检查修改,直至形成完善的硬件原理图,但要真正实现电路对电压的测量和显示的功能,还需要有相应的软件配合,才能达到设计要求。

第三章:

系统程序设计

3.1程序设计总方案

根据模块的划分原则,将该程序划分初始化模块、A/D转换子程序和显示子程序,这三个程序模块构成了整个系统软件的主程序,如图12所示。

图12数字电压表主程序图

3.2系统子程序设计

3.2.1初始化程序

所谓初始化,是对将要用到的MCS-51系列单片机内部部件或扩展芯片进行初始工作状态设定,初始化子程序的主要工作是设置定时器的工作模式,初值预置,开中断和打开定时器等

3.2.2A/D转换子程序

A/D转换子程序用来控制对输入的模块电压信号的采集测量,并将对应的数值存入相应的内存单元,其转换流程图如图13所示。

图13A/D转换流程图

3.2.3显示子程序

显示子程序采用动态扫描实现四位数码管的数值显示,在采用动态扫描显示方式时,要使得LED显示的比较均匀,又足够的亮度,需要设置适当的扫描频率,当扫描频率在70Hz左右时,能够产生比较好的显示效果,一般以采用间隔10ms对LED进行动态扫描一次,每一位LED的显示时间为1ms

在本设计中,为了简化硬件设计,主要采用软件定时的方式,即用定时器0溢出中断功能实现11us定时,通过软件延时程序来实现5ms的延时。

第四章:

系统仿真

4.1软件调试

软件调试的主要任务是排查错误,错误主要包括逻辑和功能错误,这些错误有些是显性的,而有些是隐性的,可以通过仿真开发系统发现逐步改正。

Proteus软件可以对基于微控制器的设计连同所有的周围电子器件一起仿真,用户甚至可以实时采用诸如LED/LCD、键盘、RS232终端等动态外设模型来对设计进行交互仿真。

Proteus支持的微处理芯片包括8051系列、AVR系列、PIC系列、HC11系列及Z80等等。

Proteus可以完成单片机系统原理图电路绘制、PCB设计,更为显著的特点是可以与uVisions3IDE工具软件结合进行编程仿真调试

本系统的调试主要以软件为主,其中,系统电路图的绘制和仿真我采用的是Proteus软件,而程序方面,采用的是汇编语言,用Keil软件将程序写入单片机。

4.2显示结果及误差分析

4.2.1显示结果

1.当VIN+口输入电压值为1.99V时,显示结果如图14,测量误差为0V。

图14输入电压为1.99V时,LED的显示结果

2.当输入电压值为3.48V时,显示结果如图15所示。

测量误差为0V。

图15输入电压为3.48V时,LED的显示结果

4.2.2误差分析

通过以上仿真测量结果可得到数字电压表与“标准”数字电压表对比测试表,如下表4所示:

表4数字电压表与“标准”数字电压表对比测试表

由于单片机AT89C51为8位处理器,当输入电压为5.00时,ADC0804输出数据值为255(FFH),因此单片机最高的数值分辨率为0.0196V(5/255)。

这就决定了电压表的最高分辨率只能到0.0196V,从上表可看到,测试电压一般以0.01V的幅度变化。

从上表可以看出,数字电压表测得的值基本上比标准电压值偏大0.01V,这可以通过校正ADC0804的基准电压来解决。

因为该电压表设计时直接用5V的供电电调作为电压,所以电压可能有偏差。

当要测量大于5V的电压时,可在输入口使用分压电阻,而程序中只要将计算程序的除数进行调整就可以了。

 

第五章:

结束语:

经过一段时间的努力,课程设计——以单片机为核心的数字电压表基本完成。

但设计中的不足之处仍然存在,这次设计是我们小组第一次设计电路,并用Proteus实现了仿真。

在这过程中,我对电路设计,单片机的使用等都有了新的认识,通过这次设计学会了Proteus和Keil软件的使用方法,掌握了从系统的需要、方案的设计、功能模块的划分、原理图的设计和电路图仿真的设计,积累

了不少经验。

本设计主要实现了以单片机为核心的数字电压表采用中断方式,对两路0~5V的模拟电路进行循环采集,采集的数据送LED显示,并存入内存,超过界线时指示灯闪烁,详细说明了从原理图的设计、电路图的仿真再到软件的测试。

通过本次设计,我对单片机这门课有了进一步的了解,无论是在硬件连接方面还是在软件编程方面,本次设计采用了AT89C51单片机芯片,与以往的单片机相比增加了许多新的功能,使其功能更为完善,应用领域也更为广泛,设计中还用到了模数转换芯片ADC0804,以前在学单片机课程时只是对其理论知识有了初步的理解,通过这次设计,对它的工作原理有了更深的理解。

在调试过程中遇到很多问题,硬件上的理论知识学得不够扎实,对电路的仿真方面也不够熟练。

总之这次电路的设计和仿真,基本上达到了设计的功能要求,在以后的实践中,我将继续努力学习电路设计方面的理论知识,并理论联系实际,争取在电路设计方面能有所提升。

经过一段时间的不懈努力,本次课程设计即将接近尾声,由于是初次尝试设计电路,由于知识及经验的匮乏,难免遇到很多困难,如果没有导师的督促指导以及同学们的支持,很难顺利的完成此次课程设计。

从开始选题到课题设计的顺利完成,都离不开老师、同学、朋友给以的帮助,在这里请接受我的谢意!

首先,在本次课程设计过程中,从选题构思,资料收集到最后定稿的各个环节给予细心指引与教导,使我对课程的多方面的知识有了深刻的认识,使我们得以最终完成课程设计,在此表示衷心感谢。

其次,感谢一起做课程设计的同学们,感谢你们的帮助和鼓励,感谢你们在我遇到困难时所给的帮助,正是有了你们的帮助和鼓励,此次设计才得以顺利的完成。

本次设计得以顺利完成,也与指导老师的帮助分不开,在课程设计的过程中给我提供了不少的意见,提出一些可行的建议,在此向老师表示感谢!

 

参考文献:

[1]胡健.单片机原理及接口技术.北京:

机械工业出版社,2004年10月.

[2]王毓银.数字电路逻辑设计.高等教育出版社,2005年12月.  

[3]于殿泓、王新年.单片机原理与程序设计实验教程.西安电子科技大学出版社,2007年5月.

[4]谢维成、杨加国.单片机原理与应用及C51程序设计实例.电子工业出版社,2006年3月.

[5]李广弟.单片机基础.北京航空航天大学出版社,2007年5月.

[6]姜志海,黄玉清等著.单片机原理及应用[M].北京电子工业出版社,2005年7月.

[7]魏立峰.单片机原理及应用技术.北京大学出版社,2005年.

[8]局润景.Proteus在MCS-51&ARM7系统中的应用百例.第一版.北京:

电子工业出版社,2006年.

[9]边春远等著.MCS-51单片机应用开发实用子程序[M].北京:

人民邮电出版社,2005年9月.

[10]商红霞.单片机实现数字电压表的软硬件设计[J].河海大学常州分校学报,2002年3月.

[11]宋凤娟,孙军,李国忠.基于89C51单片机的数字电压表设计[J]工业控制计算机,2007年4月.

 

附录

LED_0EQU30H

LED_1EQU31H

LED_2EQU32H;存放段码

TEMPEQU43H

ADCEQU35H

CLOCKBITP2.4;定义ADC0804钟位

STBITP2.5

EOCBITP2.6

OEBITP2.7

ORG0000H

SJMPSTART

ORG0050H

LJMPINT_T0

START:

MOVLED_0,#00H

MOVLED_1,#00H

MOVLED_2,#00H

MOVDPTR,#TABLE;段码表首地址

MOVTMOD,#02H

MOVTH0,#245

MOVTL0,#00H

MOVIE,#82H

SETBTR0

WAIT:

CLRST

SETBST

CLRST

CLRP3.7

CLRP3.6;启动AD转换

JNBEOC,$;等待转换结束

SETB0E

MOVADC,P1;读取AD转换结果

CLR0E

MOVA,ADC

MOVTEMP,A

SUBBA,#128;减少一半量程

JCJUD1;小于一半量程则跳转

SETBP3.6;大于一半量程则蜂鸣器响

JUD1:

MOVA,TEMP;判断是否小于四分之一量程

SUBBA,#64

JCJUD2

SETBP3.7;大于四分之一量程则使二极管闪烁

JUD2:

MOVA,TEMP

MOVB,#51;AD转换结果转换成BCD码

DIVAB

MOVLED_2,A

MOVA,B

MOVB,#10

MOVTEMP,A

SUBBA,#25

JCJUD3

MULAB

SUBBA,#5

MOVB,#51

DIVAB

ADDA,#05H

SJMPV1

JUD3:

MOVA,TEMP

MULAB

MOVB,#51

DIVAB

V1:

MOVLED_1,A

MOVA,B

MOVTEMP,A

SUBBA,#25

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

当前位置:首页 > 工程科技 > 环境科学食品科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1