ImageVerifierCode 换一换
格式:DOCX , 页数:25 ,大小:185.18KB ,
资源ID:11019127      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/11019127.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于单片机的信号采集及控制系统设计DOC.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于单片机的信号采集及控制系统设计DOC.docx

1、基于单片机的信号采集及控制系统设计DOC电子信息工程单片机课程设计研究报告基于单片机的信号采集及控制系统设计学生姓名:王国栋学生学号:20124075103指导教师:田芳明 所在学院:信息技术学院专业班级:电子12中国大庆2015年6月信息技术学院课 程 设 计 任 务 书 信息 院 电子信息工程 专业 2012 级,学号 20124075103姓名 王国栋 一、课程设计课题:基于单片机的信号采集及控制系统设计二、课程设计工作日自 2015年6月18日至 2015 年 7月 3 日三、课程设计进行地点:信息馆320四、程设计任务要求: 1.课题来源:老师下发2.目的意义:提高学生的动手能力,锻

2、炼专业技能。增强动手解决问题的能力。3.基本要求:采用单片机实现8路模拟量传感器信号检测,模拟量传感器采集的物理参数可自行选择, 在LCD中实时循环显示采集的物理参数,精度达到1 ,根据精度自选A/D转换芯片或内置A/D的单片机,具有8路开关量继电器输出。直流稳压电源自行设计。,辅助电路及元器件自选。课程设计评审表指导教师评语:成绩: 签字: 日期: 1设计任务要求 12方案比较 13单元电路设计 14元件选择 55整体电路 106.说明电路的工作原理 127困难问题及解决措施 128总结与体会 139致谢 1310参考资料 1311 程序 131设计任务要求 1. 要求o采用单片机实现8路模

3、拟量传感器信号检测(420MA信号)。o模拟量传感器采集的物理参数可自行选择。o在LCD中实时循环显示采集的物理参数(如、温度、湿度、光照等)。 o精度达到1 。o根据精度自选A/D转换芯片或内置A/D的单片机。 o具有8路开关量继电器输出。o直流稳压电源自行设计。 o辅助电路及元器件自选。 1.规定: o设计硬件线路,用protel画图。 o按单元电路详细说明硬件线路设计思路,元件参数,选取根据。附详细的元件清单。 o软件设计。设计物理参数采集,转换和LCD显示、开关量输出控制程序。 o有完整的程序流程图,包括总流程图和模块流程图。对程序设计思想做详细说明。 o有完整的程序清单,并加注释。

4、o总结设计过程和设计体会。 2方案比较3单元电路设计3.1稳压电源电路图1稳压电路3.2单片机电路3.2.1 主控芯片图2 51单片机芯片引脚3.2.2 晶振电路图3 晶振电路3.2.3复位电路图4复位电路3.3 LCD显示模块图5 LCD显示模块3.4 AD采集电路图6 ADC0809连接图3.5待检测的电路图7 待检测的8路信号3.6 继电器控制输出电路图8 继电器输出4元件选择4.1STC89C51STC89C51 是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。使用高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flas

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

6、冻结,单片机一切工作直到下一个中断或硬件复位为止。8 位微控制器 8K字节在系统可编程节。图9 单片机引脚图4.2 ADC08094.2.1ADC0809的内部结构图10 ADC0809内部逻辑结构 图中多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用一个A/D转换器进行转换,这是一种经济的多路数据采集方法。地址锁存与译码电路完成对A、B、C 3个地址位进行锁存和译码,其译码输出用于通道选择,其转换结果通过三态输出锁存器存放、输出,因此可以直接与系统数据总线相连,表1为通道选择表。表1通道选择表4.2.1ADC0809的内部结构ADC0809八位逐次逼近式AD转换器是一种单片CMOS器

7、件,包括8位模拟转换器、8通道转换开关和与微处理器兼容的控制逻辑。8路转换开关能直接连通8个单端模拟信号中的任何一个。图11 ADC0809引脚图ADC0809芯片为28引脚为双列直插式封装对ADC0809主要信号引脚的功能说明如下:IN7IN0模拟量输入通道ALE地址锁存允许信号。对应ALE上跳沿,A、B、C地址状态送入地址锁存器中。START转换启动信号。START上升沿时,复位ADC0809;START下降沿时启动芯片,开始进行A/D转换;在A/D转换期间,START应保持 低电平。本信号有时简写为ST.A、B、C地址线。 通道端口选择线,A为低地址,C为高地址,引脚图中为ADDA,AD

8、DB和ADDC。其地址状态与通道对应关系见表1。CLK时钟信号。ADC0809的内部没有时钟电路,所需时钟信号由外界提供,因此有时钟信号引脚。通常使用频率为500KHz的时钟信号EOC转换结束信号。EOC=0,正在进行转换;EOC=1,转换结束。使用中该状态信号即可作为查询的状态标志,又可作为中断请求信号使用。D7D0数据输出线。为三态缓冲输出形式,可以和单片机的数据线直接相连。D0为最低位,D7为最高OE输出允许信号。用于控制三态输出锁存器向单片机输出转换得到的数据。OE=0,输出数据线呈高阻;OE=1,输出转换得到的数据。4.3 LCD16024.3.1器件介绍图12 LCD1602引脚图

9、1602共16个管脚,但是编程用到的主要管脚不过三个,分别为:RS(数据命令选择端),R/W(读写选择端),E(使能信号);以后编程便主要围绕这三个管脚展开进行初始化,写命令,写数据。以下具体阐述这三个管脚:RS为寄存器选择,高电平选择数据寄存器,低电平选择指令寄存器。R/W为读写选择,高电平进行读操作,低电平进行写操作。E端为使能端,后面和时序联系在一起。 除此外,D0D7分别为8位双向数据线。4.3.2 操作时序表2操作时序表从D0D7读取数据注:关于E=H脉冲开始时初始化E为0,然后置E为1,再清0.读取状态字时,注意D7位,D7=1,禁止读写操作;D7=0,允许读写操作;所以对控制器每

10、次进行读写操作前,必须进行读写检测。(即后面的读忙子程序) 4.3.3指令集1.LCD_1602 初始化指令小结:2.0x38 设置16*2显示,5*7点阵,8位数据接口3.0x01 清屏4.0x0F 开显示,显示光标,光标闪烁5.0x08 只开显示6.0x0e 开显示,显示光标,光标不闪烁7.0x0c 开显示,不显示光标8.0x06 地址加1,当写入数据的时候光标右移9.0x02 地址计数器AC=0;(此时地址为0x80) 光标归原点,但是DDRAM中断内容变10.0x18 光标和显示一起向左移动4.4 元器件清单表3元器件清单 5整体电路图13 总体电路图6.说明电路的工作原理图14 系统

11、流程图本系统使用STC89C51作为主控制器,ADC0809作为AD采集8路信号的芯片,采集8路模拟信号的信息,然后根据按键依次循环显示在LCD1602上。上电后首先1602初始化,ADC0809初始化,默认显示第一路采集信号,按下一个按键后显示下一路,依次循环显示。 7困难问题及解决措施再设计过程中,对AD转化的原理认识不清楚,ADC0809不熟悉。不知道如何使用这个芯片,编写程序的时候时序没有认识正确,无法完成采集。电源模块电压不稳定, 难点一就是AD0809芯片的使用。 难点二就是将AD0809产生的0256的数字换算成05.000的精确度,而又不至于溢出出错。程序流程设计不合理。LCD

12、1602没有想到背光的调节,显示不清楚有背影。后来仔细阅读芯片手册,理清时序的先后顺序,编写程序,完成测试,优化显示流程,完成设计任务要求。8总结与体会单片机具有体积小,功耗低,功能强,通用性好,性价比高易组装成机电仪一体化的各种智能控制设备和仪器,仪表。面向在线应用,能针对各类控制任务的简繁灵活配置,因而能获得最佳的费效比。易于实现规划设计,避免不必要的二次开发过程,减少系统的研发费用,产品升级周期短。易于多机使用主从分布式的集散控制,提高控制系统的效率。抗干扰能力强,适应温度范围广,能在各种恶劣环境下可靠地工作。指令精简,实用,系统设计灵活易于推广运用。9致谢感谢老师让我做这次课程设计,通

13、过这次课程设计使我更加清晰的认识了自己能力的不足和对专业知识掌握的不扎实,尤其是数字电路和模拟电路,还有对硬件电路的设计缺少相应的思维和解决方法。芯片掌握的不到位,不熟悉。对C语言的编程能力还不够,不能够没有障碍的阅读芯片手册,对芯片的时序的编程实现也掌握不到位。在以后的学习和工作中,我一定要以认真严谨的态度去学习,锻炼自己的技能。10参考资料1 李朝青.单片机原理及接口技术 .北京:北京航空航天大学出版社,19982 李广弟.单片机基础.北京:北京航空航天大学出版社,19923 何立民.单片机应用技术大全.北京:北京航空航天大学出版社, 19944 张毅刚. 单片机原理及接口技术.哈尔滨:哈

14、尔滨工业大学出版社,19905 谭浩强.单片机课程设计. 北京:清华大学出版社,198911 程序#include #define uchar unsigned char#define uint unsigned int void result(uchar);uchar value=0; #includeadc0809.h#includelcd1602.huchar str5 ;uchar volt7;uchar a=0+0x30;uchar str111=tanxiaopin ;sbit CLK=P07;uint n;void main() /uint i; ADC0809_init();

15、lcd_init(); int i=0; while(1) lcd_zifu(str1,0x01); value=AD(i);/ str0=value/100+0x30; str1=value%100/10+0x30; str2=value%10+0x30; result(value); lcd_data(str,0x40); lcd_data(volt,0x46); if(key_down() i+; if(i=8) i=1; jdq_ctrl(i,max); while(1); void result(uchar v) float a; a=(v/255.0)*500.0; volt0=(

16、int)a)/100+0x30; volt1=.; volt2=(int)a)%100/10+0x30; volt3=(int)a)%10+0x30; volt4= ; volt5=V; void t1(void) interrupt 3 CLK=CLK; #include#define uchar unsigned char #define uint unsigned int sbit ST=P04;sbit EOC=P05;sbit OE=P06;/sbit CLK=P07;sbit ADDA=P00;sbit ADDB=P01;sbit ADDC=P02;sbit ALE=P03;uch

17、ar vvoid delay(ms) uint i,j; for(i=ms;i0;i-) for(j=125;j0;j-);void ADC0809_init() TMOD=0x20; TH1=(255-250); TL1=(255-250); EA=1 ET1=1; TR1=1; ST=0; OE=0; ALE=0;uchar AD() uchar temp=0; ST=0; /EOC=1; / ALE=1; ADDA=0; ADDB=0; ADDC=0; delay(1); ALE=0; OE=0; ST=0; ALE=1; ST=1; ALE=0; ST=0; delay(2); whi

18、le(EOC=0); OE=1; temp=P2; delay(2); OE=0; return temp; void ADC0809_init(); uchar AD();#include#include#define uchar unsigned char#define uint unsigned intsbit rs=P15;sbit rw=P16;sbit en=P17;void lcd_1602(uchar comm);void lcd_write(uchar dat);bit lcd_busy();extern void delay(uint); void lcd_1602(uch

19、ar comm);void lcd_write(uchar dat);bit lcd_busy();sbit busy=P37;extern void delay(uint);void lcd_1602(uchar comm) while(lcd_busy(); rs = 0; rw = 0; en = 0; _nop_(); P3 = comm; _nop_(); en = 1; _nop_(); _nop_(); en = 0; void lcd_write(uchar dat) while(lcd_busy(); rs = 1; rw = 0; en = 0; _nop_(); P3 =

20、 dat; _nop_(); _nop_(); en = 1; _nop_(); _nop_(); en = 0; void lcd_init() delay(15); lcd_1602(0x38); delay(3); lcd_1602(0x38); delay(3); lcd_1602(0x38); delay(3); lcd_1602(0x08); lcd_1602(0x01); delay(3); lcd_1602(0x06); lcd_1602(0x0c);bit lcd_busy() bit result; rs = 0; rw = 1; en = 1; delay(2); res

21、ult = busy; en = 0; return result; void lcd_zifu(uchar *p,uchar wei) uchar temp; lcd_1602(0x80+wei); /*temp= *p; while(temp!=0) lcd_write(temp); p+; temp=*p; */ for(temp=*p;temp!=0;p+,temp=*p) lcd_write(temp); delay(10);void lcd_data(uchar *p,uchar wei) uchar temp; lcd_1602(0x80+wei); for(temp=*p;temp!=0;p+,temp=*p) lcd_write(temp); delay(10);void lcd_init();void lcd_zifu(uchar *p,uchar wei);void lcd_data(uchar *p,uchar w);

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

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