传感器课程设计.docx
- 文档编号:3251361
- 上传时间:2022-11-21
- 格式:DOCX
- 页数:18
- 大小:244.70KB
传感器课程设计.docx
《传感器课程设计.docx》由会员分享,可在线阅读,更多相关《传感器课程设计.docx(18页珍藏版)》请在冰豆网上搜索。
传感器课程设计
第一章设计思路及要求
1.1设计要求
⑴以MCS-51系列单片机为核心器件,组成一个简单的直流数字电压表。
⑵采用1路模拟量输入,能够测量0-5V之间的直流电压值。
⑶电压显示用4位一体的LED数码管显示,至少能够显示两位小数。
⑷尽量使用较少的元器件。
1.2设计思路
⑴根据设计要求,选择AT89C51单片机为核心控制器件。
⑵A/D转换采用ADC0808实现,与单片机的接口为P1口和P2口的高四位引脚。
电压显示采用4位一体的LED数码管。
LED数码的段码输入,由并行端口P0产生:
位码输入,用并行端口P2低四位产生。
1.3设计方案
硬件电路设计由6个部分组成;A/D转换电路,AT89C51单片机系统,LED显示系统、时钟电路、复位电路以及测量电压输入电路。
硬件电路设计框图如图所示。
图1-1数字电压表系统硬件设计框图
第二章器件选型
2.1ADC0808的外部引脚特征
ADC0808芯片有28条引脚,采用双列直插式封装,其引脚图如图2-1所示。
图2-1ADC0808引脚图
下面说明各个引脚功能:
IN0-IN7(8条):
8路模拟量输入线,用于输入和控制被转换的模拟电压。
地址输入控制(4条):
ALE:
地址锁存允许输入线,高电平有效,当ALE为高电平时,为地址输入线,用于选择IN0-IN7上那一条模拟电压送给比较器进行A/D转换。
ADDA,ADDB,ADDC:
3位地址输入线,用于选择8路模拟输入中的一路,其对应关系如表所示:
地址码
对应的输入通道
C
B
A
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
IN0
IN1
IN2
IN3
IN4
IN5
IN6
IN7
表2-2
START:
START为“启动脉冲”输入法,该线上正脉冲由CPU送来,宽度应大于100ns,上升沿清零SAR,下降沿启动ADC工作。
EOC:
EOC为转换结束输出线,该线上高电平表示A/D转换已结束,数字量已锁入三态输出锁存器。
D1-D8:
数字量输出端,D1为高位。
OE:
OE为输出允许端,高电平能使D1-D8引脚上输出转换后的数字量。
REF+、REF-:
参考电压输入量,给电阻阶梯网络供给标准电压。
Vcc、GND:
Vcc为主电源输入端,GND为接地端,一般REF+与Vcc连接在一起,REF-与GND连接在一起.
CLK:
时钟输入端。
2.2AT89C51各引脚
AT89C51提供以下标准功能:
4KB的Flash闪速存储器,128B内部RAM,32个I/O口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内震荡器及时钟电路,同时,AT89C51可降至0Hz静态逻辑操作,并支持两种软件可选的节电工作模式。
空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作,掉电方式保存RAM中的内容,但震荡器停止工作并禁止其他所有工作直到下一个硬件复位。
AT89C51采用PDIP封装形式,引脚配置如图所示。
图2-3AT89C51的引脚图
2.3AT89C51芯片的各引脚功能
P0口:
这组引脚共有8条,P0.0为最低位。
这8个引脚有两种不同的功能,分别适用于不同的情况,第一种情况是89C51不带外存储器,P0口可以为通用I/O口使用,P0.0-P0.7用于传送CPU的输入/输出数据,这时输出数据可以得到锁存,不需要外接专用锁存器,输入数据可以得到缓冲,增加了数据输入的可靠性;第二种情况是89C51带片外存储器,P0.0-P0.7在CPU访问片外存储器时先传送片外存储器的低8位地址,然后传送CPU对片外存储器的读/写数据。
P0口为开漏输出,在作为通用I/O使用时,需要在外部用电阻上拉。
P1口:
这8个引脚和P0口的8个引脚类似,P1.7为最高位,P1.0为最低位,当P1口作为通用I/O口使用时,P1.0-P1.7的功能和P0口的第一功能相同,也用于传送用户的输入和输出数据。
P2口:
这组引脚的第一功能与上述两组引脚的第一功能相同即它可以作为通用I/O口使用,它的第一功能和P0口引脚的第二功能相配合,用于输出片外存储器的高8位地址,共同选中片外存储器单元,但并不是像P0口那样传送存储器的读/写数据。
P3口:
这组引脚的第一功能和其余三个端口的第一功能相同,第二功能为控制功能,每个引脚并不完全相同,如下表所示:
表P3口各位的第二功能
P3口各位
第二功能
P3.0
RXT(串行口输入)
P3.1
TXD(串行口输出)
P3.2
/INT0(外部中断0输入)
P3.3
/INT1(外部中断1输入)
P3.4
T0(定时器/计数器0的外部输入)
P3.5
T1(定时器/计数器1的外部输入)
P3.6
/WR(片外数据存储器写允许)
P3.7
/RD(片外数据存储器读允许)
表2-4AT89C51引脚
Vcc为+5V电源线,Vss接地。
ALE:
地址锁存允许线,配合P0口的第二功能使用,在访问外部存储器时,89C51的CPU在P0.0-P0.7引脚线去传送随后而来的片外存储器读/写数据。
在不访问片外存储器时,89C51自动在ALE线上输出频率为1/6震荡器频率的脉冲序列。
该脉冲序列可以作为外部时钟源或定时脉冲使用。
/EA:
片外存储器访问选择线,可以控制89C51使用片内ROM或使用片外ROM,
若/EA=1,则允许使用片内ROM,若/EA=0,则只使用片外ROM。
/PSEN:
片外ROM的选通线,在访问片外ROM时,89C51自动在/PSEN线上产生一个负脉冲,作为片外ROM芯片的读选通信号。
RST:
复位线,可以使89C51处于复位(即初始化)工作状态。
通常89C51复位有自动上电复位和人工按键复位两种。
XTAL1和XTAL2:
片内震荡电路输入线,这两个端子用来外接石英晶体和微调电容,即用来连接89C51片内OSC(震荡器)的定时反馈回路。
第三章电路设计
3.1复位电路设计
单片机在启动运行时都需要复位,使CPU和系统中的其他部件都处于一个确定的初始状态,并从这个状态开始工作。
MCS-51单片机有一个复位引脚RST,采用施密特触发输入。
当震荡器起振后,只要该引脚上出现2个机器周期以上的高电平即可确保时器件复位。
复位完成后,如果RST端继续保持高电平,MCS-51就一直处于复位状态,只要RST恢复低电平后,单片机才能进入其他工作状态。
单片机的复位方式有上电自动复位和手动复位两种,图3-1是51系列单片机统常用的上电复位和手动复位组合电路,只要Vcc上升时间不超过1ms,它们都能很好的工作。
图3-1复位电路
3.2时钟电路设计
单片机中CPU每执行一条指令,都必须在统一的时钟脉冲的控制下严格按时间节拍进行,而这个时钟脉冲是单片机控制中的时序电路发出的。
CPU执行一条指令的各个微操作所对应时间顺序称为单片机的时序。
MCS-51单片机芯片内部有一个高增益反相放大器,用于构成震荡器,XTAL1为该放大器的输入端,XTAL2为该放大器输出端。
图3-2时钟电路
电路中的器件选择可以通过计算和实验确定,也可以参考一些典型电路的参数,电路中,电容器C1和C2对震荡频率有微调作用,通常的取值范围是30±10pF,在这个系统中选择了33pF;石英晶振选择范围最高可选24MHz,它决定了单片机电路产生的时钟信号震荡频率,在本系统中选择的是12MHz,因而时钟信号的震荡频率为12MHz。
3.3LED基本结构
LED是发光二极管显示器的缩写。
LED由于结构简单、价格便宜、与单片机接口方便等优点而得到广泛应用。
LED显示器是由若干个发光二极管组成显示字段的显示器件。
在单片机中使用最多的是七段数码显示器。
LED七段数码显示器由8个发光二极管组成显示字段,其中7个长条形的发光二极管排列成“日”字形,另一个圆点形的发光二极管在显示器的右下角作为显示小数点用,其通过不同的组合可用来显示各种数字。
LED引脚排列如下图所示:
图3-3LED引脚排列
本次设计采用的是4位一体数码管,为了是电路更加简单而采用软件译码方式。
图3-4四位一体数码管
对于这种结构的LED显示器,它的体积和结构都符合设计要求,由于4位LED阴极的各段已经在内部连接在一起,所以必须使用动态扫描方式显示。
3.4LED显示器与单片机接口设计
由于单片机的并行口不能直接驱动LED显示器,所以,在一般情况下,必须采用专用的驱动电路芯片,使之产生足够大的电流,显示器才能正常工作[7]。
如果驱动电路能力差,即负载能力不够时,显示器亮度就低,而且驱动电路长期在超负荷下运行容易损坏,因此,LED显示器的驱动电路设计是一个非常重要的问题。
为了简化数字式直流电压表的电路设计,在LED驱动电路的设计上,可以利用单片机P0口上外接的上拉电阻来实现,即将LED的A-G段显示引脚和DP小数点显示引脚并联到P0口与上拉电阻之间,这样,就可以加大P0口作为输出口德驱动能力,使得LED能按照正常的亮度显示出数字,如图所示。
图3-5LED与单片机接口间的设计
3.5总体电路设计
经过以上的设计过程,可设计出基于单片机的简易数字直流电压表硬件电路原理图如图所示。
图3-6简易数字电压表电路图
此电路的工作原理是:
+5V模拟电压信号通过变阻器VR1分压后由ADC08008的IN0通道进入(由于使用的IN0通道,所以ADDA,ADDB,ADDC均接低电平),经过模/数转换后,产生相应的数字量经过其输出通道D0-D7传送给AT89C51芯片的P1口,AT89C51负责把接收到的数字量经过数据处理,产生正确的7段数码管的显示段码传送给四位LED,同时它还通过其四位I/O口P2.0、P2.1、P2.2、P2.3产生位选信号控制数码管的亮灭。
此外,AT89C51还控制ADC0808的工作。
其中,单片机AT89C51通过定时器中断从P2.4输出方波,接到ADC0808的CLOCK,P2.6发正脉冲启动A/D转换,P2.5检测A/D转换是否完成,转换完成后,P2.7置高从P1口读取转换结果送给LED显示出来。
第四章程序设计
4.1程序设计总方案
根据模块的划分原则,将该程序划分初始化模块,A/D转换子程序和显示子程序,这三个程序模块构成了整个系统软件的主程序,如图所示。
图4-1数字式直流电压表主程序框图
4.2初始化程序
所谓初始化,是对将要用到的MCS_51系列单片机内部部件或扩展芯片进行初始工作状态设定,初始化子程序的主要工作是设置定时器的工作模式,初值预置,开中断和打开定时器等。
A/D转换子程序
A/D转换子程序用来控制对输入的模块电压信号的采集测量,并将对应的数值存入相应的内存单元,其转换流程图如图所示。
图4-2A/D转换流程图
4.3显示子程序
显示子程序采用动态扫描实现四位数码管的数值显示,在采用动态扫描显示方式时,要使得LED显示的比较均匀,又有足够的亮度,需要设置适当的扫描频率,当扫描频率在70HZ左右时,能够产生比较好的显示效果,一般可以采用间隔10ms对LED进行动态扫描一次,每一位LED的显示时间为1ms。
在本设计中,为了简化硬件设计,主要采用软件定时的方式,即用定时器0溢出中断功能实现11μs定时,通过软件延时程序来实现5ms的延时
4.4程序
LED_0EQU30H
LED_1EQU31H
LED_2EQU32H
ADCEQU35H
CLOCKBITP2.4
STBITP2.5
EOCBITP2.6
OEBITP2.7
ORG00H
SJMPSTART
ORG0BH
LJMPINT_T0
START:
MOVLED_0,#00H
MOVP2,#0FFH
MOVLED_1,#00H
MOVLED_2,#00H
MOVDPTR,#TABLE
MOVTMOD,#02H
MOVTH0,#245H
MOVTL0,#00H
MOVIE,#82H
SETBTR0
WAIT:
CLRST
SETBSTH
CLRST
JNBEOC,$
SETBOE
MOVADC,P1
CLROE
MOVA,ADC
MOVB,#51
DIVAB
MOVLED_2,A
MOVA,B
MOVB,#5
DIVAB
MOVLED_1,A
MOVLED_0,B
LCALLDISP
SJMPWAIT
INT_T0:
CPL,CLOCK
RETI
DISP:
MOVA,LED_0
MOVCA,@A+DPTR
CLRP2.3
MOVP0,A
LCALLDELAY
SETBP2.3
MOVA,LED_1
MOVCA,@A+DPTR
CLRP2.2
MOVP0,A
LCALLDELAY
SETBP2.2
MOVA,LED_2
MOVCA,@A+DPTRL
CLRP2.1
ORLA,#80H
MOVP0,A
LCALLDELAY
SETBP2.1
RET
DELAY:
MOVR6,#10
D1:
MOVR7,#250
DJNZR7,$
DJNZR6,D1
RET
TABLE:
DB3FH,06H,5BH,4FH,66H
DB6DH,7DH,07H,7FH,6FH
END
第五章仿真
5.1软件调试
软件调试的主要任务是排查错误,错误主要包括逻辑和功能错误,这些错误有些是显性的,而有些是隐形的,可以通过仿真开发系统发现逐步改正。
Proteus软件可以对基于微控制器的设计连同所有的周围电子器件一起仿真,用户甚至可以实时采用诸如LED/LCD、键盘、RS232终端等动态外设模型来对设计进行交互仿真。
Proteus支持的微处理芯片包括8051系列、AVR系列、PIC系列、HC11系列及Z80等等。
Proteus可以完成单片机系统原理图电路绘制、PCB设计,更为显著点的特点是可以与uVisions3IDE工具软件结合进行编程仿真调试[8]。
本系统的调试主要以软件为主,其中,系统电路图的绘制和仿真我采用的是Proteus软件,而程序方面,采用的是汇编语言,用Keil软件将程序写入单片机。
5.2显示结果及误差分析
1.当IN0口输入电压值为0V时,显示结果如图所示,测量误差为0V。
图5-1输入电压为0V时,LED的显示结果
2.当IN0输入电压值为1.50V时,显示结果如图所示。
测量误差为0.01V。
图5-2输入电压为1.50V时,LED的显示结果
3.当IN0口输入电压值为3.50V时,显示结果如图。
测量误差为0.01V。
图5-3输入电压为3.50V时,LED的显示结果
5.3误差分析
通过以上仿真测量结果可得到简易数字电压表与“标准”数字电压表对比测试表,如下表所示:
表5-4简易数字电压表与“标准”数字电压表对比测试表
标准电压值/V
简易电压表测量值/V
绝对误差/V
0.00
0.00
0.00
0.50
0.51
0.01
1.00
1.00
0.00
1.50
1.51
0.01
2.00
2.00
0.00
2.50
2.50
0.00
3.00
3.00
0.00
3.50
3.50
0.00
4.00
4.00
0.00
4.99
5.00
0.01
由于单片机AT89C51为8位处理器,当输入电压为5.00V时,ADC0808输出数据值为255(FFH),因此单片机最高的数值分辨率为0.0196V(5/255)。
这就决定了电压表的最高分辨率只能到0.0196V,从上表可看到,测试电压一般以0.01V的幅度变化。
从上表可以看出,简易数字电压表测得的值基本上比标准电压值偏大0-0.01V,这可以通过校正ADC0808的基准电压来解决。
因为该电压表设计时直接用5V的供电电源作为电压,所以电压可能有偏差。
当要测量大于5V的电压时,可在输入口使用分压电阻,而程序中只要将计算程序的除数进行调整就可以了。
第6章总结
经过一段时间的不懈努力,本次课程设计设计即将完成,由于是初次尝试设计电路,由于知识及经验的匮乏,难免遇到很多困难,如果没有老师的督促指导以及同学们的支持,很难顺利的完成此次课程设计。
从开始选题到论文的顺利完成,都离不开老师、同学、朋友给以的帮助,在这里请接受我的谢意!
首先,在本次毕业设计过程中,从选题、构思、资料收集到最后定稿的各个环节,使我对课程的多方面的知识有了深刻的认识,使我了解到了各门课程之间相辅相成的关系以及应该把知识系统起来的重要性。
其次,感谢一起做课程设计的同学们,感谢你们给我的帮助和鼓励,感谢你们在我遇到困难时所给的帮助,正是有了你们的帮助和鼓励,此次课程设计才得以顺利的完成。
本次设计得以顺利完成,也与何老师的帮助分不开的,何老师在的形成过程中给我提供了不少的意见,在此向他表示感谢!
最后,本次课程设计使我真正的意识到了专业知识的实用性,工业以及生活中的实际应用,为我以后的学习提供了更加明确的方向和目标。
我将会为了这么目标而努力奋斗。
参考文献
[1]胡健.单片机原理及接口技术.北京:
机械工业出版社,2004年10月
[2]王毓银.数字电路逻辑设计.高等教育出版社,2005年12月
[3]于殿泓、王新年.单片机原理与程序设计实验教程.西安电子科技大学出版社,2007年5月
[4]谢维成、杨加国.单片机原理与应用及C51程序设计实例.电子工业出版社,2006年3月
[5]李广弟.单片机基础.北京航空航天大学出版社,2007年5月
[6]姜志海,黄玉清等著.单片机原理及应用[M].北京:
电子工业出版社.2005年7月
[7]魏立峰.单片机原理及应用技术.北京大学出版社,2005年
[8]周润景.Protues在MCS-51&ARM7系统中的应用百例.第一版.北京:
电子工业出版社,2006年
[9]边春远等著.MCS-51单片机应用开发实用子程序[M].北京:
人民邮电出版社.2005年9月.
[10]苗红霞.单片机实现数字电压表的软硬件设计[J].河海大学常州分校学报,2002,(03).
[11]宋凤娟,孙军,李国忠.基于89C51单片机的数字电压表设计[J].工业控制计算机,2007,(04).
目录
第一章设计思路及要求1
1.1设计要求1
1.2设计思路1
1.3设计方案1
第二章器件选型2
2.1ADC0808的外部引脚特征2
2.2AT89C51各引脚3
2.3AT89C51芯片的各引脚功能3
第三章电路设计5
3.1复位电路设计5
3.2时钟电路设计5
3.3LED基本结构6
3.4LED显示器与单片机接口设计7
3.5总体电路设计8
第四章程序设计9
4.1程序设计总方案9
4.2初始化程序9
4.3显示子程序10
4.4程序10
第五章仿真13
5.1软件调试13
5.2显示结果及误差分析13
5.3误差分析15
第六章总结16
参考文献16
传感器技术课程设计
成绩
设计题目简易数字电压表设计
姓名李滔
学号1009101058
专业自动化
班级1003班
指导教师何景峰
设计时间2012年12月16日
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 传感器 课程设计
![提示](https://static.bdocx.com/images/bang_tan.gif)