机械毕业设计快速成型机设计含全套CAD图纸文档格式.docx
《机械毕业设计快速成型机设计含全套CAD图纸文档格式.docx》由会员分享,可在线阅读,更多相关《机械毕业设计快速成型机设计含全套CAD图纸文档格式.docx(22页珍藏版)》请在冰豆网上搜索。
4.2A/D转换程序的设计16
4.3数据处理程序的设计17
4.4显示子程序的设计17
5.检测与仿真17
5.1.利用单片机选通8路模拟信号实现数值显示仿真17
5.2.利用外接开关选通8路模拟信号实现数值显示仿真19
心得体会21
致谢21
参考文献22
附录一:
8路模拟单片机控制程序清单22
附录二:
8路模拟外接开关控制程序清单24
1.引言
随着微电子技术与计算机技术的发展,人类社会已进入信息时代。
人们为了更好地认识世界,尽可能多地获取自然界的各种信息,单纯依赖人类的感官已远远不能满足人们的愿望。
由微处理器和各种性能优良的器件构成的电子测量模拟量系统的应用日益广泛为人类获取各种信息提供了必要的手段。
1.1国内﹑外本课题发展概况与目前的水平
随着时间的推移,计算机革命的完成,信息高速公路的飞速发展,我们的工业已经和自动化控制密不可分了.
据统计,我国的单片机年容量已达1-3亿片,且每年以大约16%的速度增长,但相对于世界市场我国的占有率还不到1%。
这说明单片机应用在我国才刚刚起步,有着广阔的前景。
培养单片机应用人才,特别是在工程技术人员中普及单片机知识有着重要的现实意义。
单片机是二十世纪七十年代中期发展起来的一种大规模集成电路器件.它在一块芯片内集成了计算机的各个功能部件,构成一种单片式的微型计算机.二十世纪八十年代以来,国际上单片机的发展迅速,单片机应用不断深入,新技术层出不穷.单片机的应用技术是一项新型的工程技术,其内涵随着单片机的发展而发展。
1.2研究背景
随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中模拟量输入数字数字输出就是一个典型的例子,但人们对它的要求越来越高,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从数单片机技术入手,一切向着数字化控制,智能化控制方向发展。
本设计与传统的测量方式相比,具有读数方便,测量范围广,测量准确,其输出采用数字显示,主要用于要求测量比较准确的场所,或科研实验室使用,该设计控制器可使用多种类型的单片机芯片,AD芯片,显示器件等组合灵活设计完成要求功能,也可在基础模块上进行多项所需扩展功能。
市场上已有很多相关类型的产品
1.3目的
(1)进一步熟悉和掌握单片机的结构及工作原理。
(2)掌握单片机的接口技术及AD0809芯片的特性,控制方法。
(3)通过课程设计,掌握以单片机核心的电路设计的基本方法和技术。
(4)通过实际程序设计和调试,逐步掌握模块化程序设计方法和调试技术。
1.4意义
通过完成一个包括电路设计和程序开发的完整过程,使学生了解开发一单片机应用系统的全过程,强化巩固所学,为今后从事相应打下基础。
2.总体设计方案
2.1系统设计的结构原理
本系统一般包括模拟信号的输入输出通道和数字信号的输入输出通道。
系统的数据输入又称为数据的收集;
系统的数据输出又称为数据的分配。
本系统的任务,具体地说,就是采集传感器输出的模拟信号并转换成数值显示,以便实现对某些物理量的监视。
由系统的任务可以知道,系统具有以下几方面的功能:
数据采集、数据处理数据输出。
2.2系统设计的基本原则
对于不同的采集对象,系统设计的具体要求是不相同的。
但是,本系统设计是由硬件和软件两部分组成的,因此,系统设计的一些基本原则是大体相同的。
2.2.1硬件设计的基本原则
(1)经济合理
系统硬件设计中,一定要注意在满足件能指标的前提下,尽可能地降低价格,以便得到高的性能价格比,这是硬件设计中优先考虑的一个主要因素,也是一个产品争取市场的主要因素之一。
(2)安全可靠
选购设备要考虑环境的温度、湿度、压力、振动、粉尘等要求,以保认在规定的下作环境下,系统性能稳定、工作可靠。
要有超量程和过载保护,保证输入、输出通道正常工作。
要注意对交流市电以及电火花等的隔离。
要保证连接件的接触可靠。
(3)足够的抗干扰能力
有完善的抗干扰措施,是保证系统精度、工作正常和不产生错误的必要条件。
2.2.2软件设计的基本原则
(1)结构合理
程序应该采用结构模块化设计。
这不仅有利于程序的进一步扩充,而且也有利于程序的修改和维护。
在程序编序时,要尽量使得程序的层次分明,易于阅读和理解,同时还可以简化程序,减少程序对于内存的使用量。
当程序中有经常需要加以修改或变化的参数时,应该设计成独立的参数传递群序,避免程序的频繁修改。
(2)操作性能好
操作件能好是指使用方便。
这点对数据采集系统来说是很重要的。
在开发程序时,应该考虑如何降低对操作人员专业知识的要求。
(3)系统应设计一定的检测程序,例如状态检测利诊断程序,以便系统发生故障时容易确定故障部位,对于重要的参数要定时存储,以防止因掉电而丢失数据。
(4)提高程序的执行速度。
(5)给出必要的程序说明。
3.硬件电路设计
3.1系统概述
基于单片机的8路输入模拟信号数值显示电路,以ADC0809和AT89C51为核心,该系统有三个部分:
数据采集由集成电路AD0809完成。
0809具有8路模拟输入端口,地址线(23--25脚)可决定对那一路模拟输入做A/D转换。
第22脚为地址锁存控制,当输入为高电平时,对地址信号进行锁存,9脚为A/D转换数据输出允许控制,当OE脚为高电平时,A/D转换数据从端口输出;
10脚为0809的时钟输入端。
单片机的P1,P3端口做四位LED数码管显示控制,P0端口做A/D转换数据读入用,P2口用做0809的A/D转换控制。
其中,控制选通那一路作为模拟输入,有两种方案:
一是利用单片机编程软件控制实现;
二是利用开关硬件控制实现。
数据处理由单片机芯片AT89C51实现,作为核心器件。
显示选用八段数码管。
3.2系统工作原理
3.2.1单片机处理核心模块
AT89C51是一种高性能低功耗的采用CMOS工艺制造的8位微控制器,拥有8KB的可编程的闪存(Flashprogrammableanderasablereadonlymemory)。
它提供下列标准特征:
8K字节的闪速存储器,56字节的RAM,32条I/O线,3个16位定时器/计数器,一个六中断源两个优先级的中断结构,一个双工的串行口,片上震荡器和时钟电路。
其管脚图如图1所示:
引脚说明:
·
VCC:
电源电压
GND:
地
P0口:
P0口是一组8位漏极开路型双向I/O口,作为输出口用时,每个引脚能驱动8个TTL逻辑门电路。
当对0端口写入1时,可以作为高阻抗输入端使用。
当P0口访问外部程序存储器或数据存储器时,它还可设定成地址数据总线复用的形式。
在这种模式下,P0口具有内部上拉电阻。
在Flash编程时,P0口接收指令字节,同时输出指令字节在程序校验时。
程序校验时需要外接上拉电阻。
P1口:
P1口是一带有内部上拉电阻的8位双向I/O口。
P1口的输出缓冲能接受或输出4个TTL逻辑门电路。
当对P1口写1时,它们被内部的上拉电阻拉升为高电平,此时可以作为输入端使用。
当作为输入端使用时,P1口因为内部存在上拉电阻,所以当外部被拉低时会输出一个低电流(IIL)。
P2口:
P2是一带有内部上拉电阻的8位双向的I/O端口。
P2口的输出缓冲能驱动4个TTL逻辑门电路。
当向P2口写1时,通过内部上拉电阻把端口拉到高电平,此时可以用作输入口。
作为输入口,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出电流(IIL)。
P2口在访问外部程序存储器或16位地址的外部数据存储器(例如MOVX@DPTR)时,P2口送出高8位地址数据。
在这种情况下,P2口使用强大的内部上拉电阻功能当输出1时。
当利用8位地址线访问外部数据存储器时(例MOVX@R1),P2口输出特殊功能寄存器的内容。
当Flash编程或校验时,P2口同时接收高8位地址和一些控制信号。
P3口:
P3是一带有内部上拉电阻的8位双向的I/O端口。
P3口的输出缓冲能驱动4个TTL逻辑门电路。
当向P3口写1时,通过内部上拉电阻把端口拉到高电平,此时可以用作输入口。
P3口同时具有AT89C51的多种特殊功能,具体如下表所示:
端口引脚
第二功能
P3.0
RXD(串行输入口)
P3.1
TXD(串行输出口)
P3.2
(外部中断0)
P3.3
(外部中断1)
P3.4
T0(定时器0)
P3.5
T1(定时器1)
P3.6
(外部数据存储器写选通)
P3.7
(外部数据存储器都选通)
表1.P3口的第二功能
RST:
复位输入。
当振荡器工作时,RST引脚出现两个机器周期的高电平将使单片机复位。
ALE/
:
当访问外部存储器时,地址锁存允许是一输出脉冲,用以锁存地址的低8位字节。
当在Flash编程时还可以作为编程脉冲输出(
)。
一般情况下,ALE是以晶振频率的1/6输出,可以用作外部时钟或定时目的。
但也要注意,每当访问外部数据存储器时将跳过一个ALE脉冲。
:
程序存储允许时外部程序存储器的读选通信号。
当AT89C52执行外部程序存储器的指令时,每个机器周期
两次有效,除了当访问外部数据存储器时,
将跳过两个信号。
/VPP:
外部访问允许。
为了使单片机能够有效的传送外部数据存储器从0000H到FFFH单元的指令,
必须同GND相连接。
需要主要的是,如果加密位1被编程,复位时EA端会自动内部锁存。
当执行内部编程指令时,
应该接到VCC端。
XTAL1:
振荡器反相放大器以及内部时钟电路的输入端。
XTAL2:
振荡器反相放大器的输出端。
3.2.2ADC模数转换模块
(1)ADC0809主要特性
ADC0809是采用CMOS工艺制造的双列直插式单片8位A/D转换器。
分辨率8位,精度7位,带8个模拟量输入通道,有通道地址译码锁存器,输出带三态数据锁存器。
启动信号为脉冲启动方式,最大可调节误差为±
1LSB,ADC0809内部设有时钟电路,故CLK时钟需由外部输入,fclk允许范围为500kHz~1MHz,典型值为640kHz。
每通道的转换需66~73个时钟脉冲,大约100~110μs。
工作温度范围为-40℃~+85℃。
功耗为15mW,输入电压范围为0~5V,单一+5V电源供电。
它可以接与Z80、8085、8080、8031等CPU相连,也可以独立使用。
(2)ADC0809内部结构和外部引脚
ADC0809A/D转换器,其内部结构如图3-4所示。
包括一个高阻抗斩波比较器;
一个带有256个电阻分压器的树状开关网络;
一个逻辑控制环节和8位逐次比较寄存器(SAR);
一个8位三态输出缓冲器。
引脚功能介绍如下:
图2.ADC0809内部结构和外部引脚图
A、IN0~IN8:
8路输入通道的模拟量输入端,输入;
B、2-1~2-8:
8位数字量输出端;
2-1为最低位(LSB),2-8为最高位(MSB),输出,三态;
C、ALE:
地址锁存控制信号,输入,上升沿有效。
将地址选择信号A、B、C锁入地址寄存器;
D、START:
启动A/D转换控制信号,输入,上升沿有效。
当输入一个正脉冲,便立即启动A/D转换,同时使EOC变为低电平;
E、EOC:
A/D转换结束信号,输出,高电平有效。
EOC由低电平变为高电平,表明本次A/D转换已经结束;
F、OE:
输出允许控制信号,输入,高电平有效。
OE由低电平变为高电平,打开三态输出锁存器,将转换的结果输出到数据总线上;
G、VREF(-)、VREF(+):
片内D/A转换器的参考电压输入端。
VREF(-)不能为负值,VREF(+)不能高于VCC,
且1/2[VREF(-)+VREF(+)]与1/2VCC之差不得大于0.1V;
H、CLOCK:
时钟输入端。
500kHz~1MHz,典型值为640kHz。
I、A、B、C:
8路模拟开关的3位地址选通输入端,其对应关系如表3-2所示。
表2.8路模拟开关地址选通输入端
ADC0809时序图如图3所示。
其中,
tWS:
最小起动脉宽,典型值为100ns,最大值为200ns;
tWE:
最小ALE脉宽,典型值为100ns,最大值为200ns;
tD:
模拟开关延时,典型值为1μs,最大值为2.5μs;
tC:
转换时间,当fclk=640kHz时,典型值为100μs,最大值为116μs;
tEOC:
转换结束延时,最大位8个时钟周期加2μs。
本系统采用中断连接方式,当传感器获取的信号经过放大器放大和滤波后再AD转换器进行处理。
通过对其模拟通道控制线ADDA、ADDB、ADDC的设值可以对通道进行选择。
将ADDA、ADDB、ADDC分别接P3.4-P3.6,只要把三位位地址写入0809中的地址锁存器,就实现了通道的选择。
将ADC0809的ALE和START信号连在一起,然后将AT89C51中的P3.2作为片选信号,接ALE信号,P3.0连ADC0809的OE信号,同时将ADC的EOC转换结束信号连接AT89C51的P3.1.该模块的原理图如图3-6。
也可利用外接开关控制ADDA、ADDB、ADDC,该模块的原理图如图4,5。
图3.ADC0809时序图
图4.利用单片机选通控制原理图
图5.利用外接开关选通控制原理图
3.2.3数码管显示
本系统的显示部分采用八段数码管共阳极显示,需接上拉电阻。
4.软件设计
汇编语言是一种用文字助记符来表示机器指令的符号语言,是最接近机器码的一种语言。
其主要优点是占用资源少、程序执行效率高。
但是不同的CPU,其汇编语言可能有所差异,所以不易移植。
KEILuVISION2是众多单片机应用开发软件中优秀的软件之一,它支持众多不同公司的MCS51架构的芯片,它集编辑,编译,仿真等于一体,同时还支持,PLM,汇编和C语言的程序设计,它的界面和常用的微软VC++的界面相似,界面友好,易学易用,在调试程序,软件仿真方面也有很强大的功能。
因此本系统采用KEILuVISION2进行软件的编写和调试。
4.1主程序的设计
图6.主程序流程图
4.2A/D转换程序的设计
在8路模拟单片机控制程序中由P3.0,P3.1和P3.2控制A/D转换的启动和数据的输出,用CLRP3.2,SETBP3.2和CLRP3.2指令启动A/D转换,用JNBP3.1,$等待转换结束,用CLRP3.0关闭输出,转换结果暂存在35H中。
在8路模拟外接开关控制程序中由P2.5,P2.6和P2.7控制A/D转换的启动和数据的输出,用CLRP2.5,SETBP2.5和CLRP2.5指令启动A/D转换,用JNBP2.6,$等待转换结束,用CLRP2.7关闭输出,转换结果暂存在35H中。
4.3数据处理程序的设计
将AD转换结果转换成BCD码并依次将百位、十位和个位分别存在30H,31H和32H中,而在8路模拟单片机控制程序中,33H则存放被选通的通道号。
4.4显示子程序的设计
用查表的方式实现每一位数值及通道号的显示,并且将每次显示的时间控制在5毫秒以方便观察。
5.检测与仿真
5.1.利用单片机选通8路模拟信号实现数值显示仿真
首先在程序中将ADC0809的显示通道设置为第5通道,即使用SETBP3.4,CLRP3.5,SETBP3.6这三条指令。
由于PROTEUS仿真软件中没有ADC0809芯片的仿真模型因此我们用ADC0808代替。
仿真结果如下:
图7.模拟信号输入端的滑动变阻器为最小时的数值显示结果
图8.模拟信号输入端的滑动变阻器为50%时的数值显示结果
图9.模拟信号输入端的滑动变阻器为最大时的数值显示结果
由仿真结果可得,该系统的最小分辨率为0.02V,最大显示数值为255(输入为5V时),模拟输入最大值为5V,可作为数字电压表使用。
5.2.利用外接开关选通8路模拟信号实现数值显示仿真
首先将开关接地,此时选通0号通道,由于0号通道输入端接滑动变阻器,显示数值为033;
再将开关接到+5V,此时选通1号通道,由于1号通道输入端接地,故显示数值为000。
用PROTEUS软件仿真结果如下:
图10.利用外接开关选通0号通道
图11.利用外接开关选通1号通道
由仿真结果可得,在该系统中由于显示通道是由外接开关控制,故无法用单片机控制LED数码管显示通道的数值,优点是可不用修改程序而控制通道的选择。
心得体会
经过两个星期的努力,课程设计终于大告成功了。
整个设计通过了软件和硬件上的调试、仿真。
我想这对于自己以后的学习和工作都会有很大的帮助。
在这次设计中遇到了很多实际性的问题,在实际设计中才发现,书本上理论性的东西与在实际运用中的还是有一定的出入的,所以有些问题不但要深入地理解,而且要不断地更正以前的错误思维。
一切问题必须要靠自己一点一滴的解决,而在解决的过程当中你会发现自己在飞速的提升。
对于单片机设计,其硬件电路是比较简单的,主要是解决程序设计中的问题,而程序设计是一个很灵活的东西,它反映了你解决问题的逻辑思维和创新能力,它才是一个设计的灵魂所在。
因此在整个设计过程中大部分时间是用在程序上面的。
很多子程序是可以借鉴书本上的,但怎样衔接各个子程序才是关键的问题所在,这需要对单片机的结构很熟悉。
因此可以说单片机的设计是软件和硬件的结合,二者是密不可分的。
通过这次课程设计我也发现了自身存在的不足之处,虽然感觉理论上已经掌握,但在运用到实践的过程中仍有意想不到的困惑,经过一番努力才得以解决。
我也充分认识到团队合作的重要性,只有分工协作才能保证整个项目的有条不絮。
通过这次设计,我懂得了学习的重要性,了解到理论知识与实践相结合的重要意义,学会了坚持、耐心和努力,这将为自己今后的学习和工作做出了最好的榜样。
致谢
这次课程设计终于顺利完成了,在设计中遇到了很多问题,最后在老师的辛勤指导下,组员和其他同学的帮助,终于迎刃而解。
这次,对于与我搭档的同学和指导老师表示忠心的感谢!
参考文献
[1].张友德主编.单片微型机原理,应用与实验.复旦大学出版社,2006.10
[2].周润景,张丽娜,刘映群编.PROTEUS入门实用教程.北京:
机械工业出版社,2007.9
[3].张疑坤陈善久裘雪红.《单片微型计算机原理及应用》[M].西安:
西安电子科技大学出版,2003
[5].谢筑森编著.单片机开发与典型应用设计[M].合肥:
中国科学技术大学出版社,1997.
[6].张积东主编.单片机51/98开发与应用[M].北京:
电子工业出版社,1994.
[7].全国大学生电子设计竞赛组委会.《全国大学生电子设计大赛获奖作品精选(2001)》[M].北京:
北京理工大学出版社.2003.
8路模拟单片机控制程序清单
LED_0EQU30H;
存放三个数码管的段码
LED_1EQU31H
LED_2EQU32H
LED_3EQU33H
ADCEQU35H;
存放转换后的数据
STBITP3.2
OEBITP3.0
EOCBITP3.1
ORG00H
START:
MOVLED_0,#00H
MOVLED_1,#00H
MOVLED_2,#00H
MOVLED_3,#00H
MOVDPTR,#TABLE;
送段码表首地址
SETBP3.4
CLRP3.5
SETBP3.6;
选择ADC0808的通道5,可自由选择
WAIT:
CLRST
SETBST
CLRST;
启动转换
JNBEOC,$;
等待转换结束
SETBOE;
允许输出
MOVADC,P1;
暂存转换结果
CLROE;
关闭输出
MOVA,ADC;
将AD转换结果转换成BCD码
MOVB,#100
DIVAB
MOVLED_2,A
MOVA,B
MOVB,#10
MOVLED_1,A
MOVLED_0,B
MOVA,P3
SWAPA
ANLA,#07H
MOVLED_3,A
LCALLDISP;
显示AD转换结果
DISP:
MOVA,LED_3
MOVCA,@A+DPTR
CLRP2.0
MOVP0,A
LCALLDELAY
SETBP2.0
MOVA,LED_0;
数码显示子程序
MOVCA,@A+DPTR
CLRP2.3
MOVP0,A
SETBP2.3
MOVA,LED_1
CLRP2.2
SETBP2.2
MOVA,LED_2
CLRP2.1
SETBP2.1
RET
DELAY:
MOVR6,#10;
延时5毫秒
D1:
MOVR7,#250
D2:
DJNZR7,D2
DJNZR6,D1
TA