收藏 分享(赏)

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

上传人:精品资料 文档编号:10616564 上传时间:2019-12-07 格式:DOC 页数:21 大小:271.50KB
下载 相关 举报
基于单片机的信号采集及控制系统设计.doc_第1页
第1页 / 共21页
基于单片机的信号采集及控制系统设计.doc_第2页
第2页 / 共21页
基于单片机的信号采集及控制系统设计.doc_第3页
第3页 / 共21页
基于单片机的信号采集及控制系统设计.doc_第4页
第4页 / 共21页
基于单片机的信号采集及控制系统设计.doc_第5页
第5页 / 共21页
点击查看更多>>
资源描述

1、电子信息工程单片机课程设计研究报告基于单片机的信号采集及控制系统设计学生姓名:王国栋学生学号: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 程序 .1311 设计任务要求 1. 要求o 采用

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

4、程序设计思想做详细说明。 o 有完整的程序清单,并加注释。 o 总结设计过程和设计体会。 2 方案比较3 单元电路设计3.1 稳压电源电路 VGNDIOUT7L05pFC6aPlrnsEq2图 1 稳压电路3.2 单片机电路3.2.1 主控芯片 RST9XAL8GND0P.()34567EOVCMIKW图 2 51 单片机芯片引脚3.2.2 晶振电路 YpFa图 3 晶振电路3.2.3 复位电路 es-Bu3图 4 复位电路3.3 LCD 显示模块 VS1C2ORW5E6B0789LAKDGNP.二图 5 LCD 显示模块3.4 AD 采集电路 ITcF+-图 6 ADC0809 连接图43.

5、5 待检测的电路 1KR3es Adj709GPackNDVCI52E6F二B8图 7 待检测的 8 路信号3.6 继电器控制输出电路 YULSHrQ.图 8 继电器输出54 元件选择4.1STC89C51STC89C51 是一种低功耗、高性能 CMOS8位微控制器,具有 8K 在系统可编程 Flash 存储器。使用高密度非易失性存储器技术制造,与工业 80C51 产品指令和引脚完全兼容。片上 Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的 8 位 CPU 和在线系统可编程 Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。

6、STC89C52具有以下标准功能: 8k 字节 Flash,256 字节 RAM, 32 位 I/O 口线,看门狗定时器,2 个数据指针,三个 16 位 定时器/计数器,一个 6向量 2级中断结构,全双工串行口,片内晶振及时钟电路。另外,STC89C52 可降至 0Hz静态逻辑操作,支持 2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM 内容被保存,振荡器被冻结,单片机一切工作直到下一个中断或硬件复位为止。8 位微控制器 8K字节在系统可编程节。 RST9XAL1GND0P.()37EOVCMIKW图 9 单片机引脚图

7、64.2 ADC08094.2.1ADC0809 的内部结构图 10 ADC0809 内部逻辑结构图中多路开关可选通 8 个模拟通道,允许 8 路模拟量分时输入,共用一个A/D 转换器进行转换,这是一种经济的多路数据采集方法。地址锁存与译码电路完成对 A、B、C 3 个地址位进行锁存和译码,其译码输出用于通道选择,其转换结果通过三态输出锁存器存放、输出,因此可以直接与系统数据总线相连,表 1为通道选择表。表 1 通道选择表74.2.1ADC0809 的内部结构ADC0809 八位逐次逼近式 AD 转换器是一种单片 CMOS 器件,包括 8 位模拟转换器、8 通道转换开关和与微处理器兼容的控制逻

8、辑。8 路转换开关能直接连通 8 个单端模拟信号中的任何一个。 IN3456STEOCLKVcRF+G12-0B9图 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 为低

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

10、.3 LCD16024.3.1 器件介绍图 12 LCD1602 引脚图1602 共 16 个管脚,但是编程用到的主要管脚不过三个,分别为:RS(数据命令选择端),R/W(读写选择端),E(使能信号);以后编程便主要围绕这三个管脚展开进行初始化,写命令,写数据。以下具体阐述这三个管脚:RS 为寄存器选择,高电平选择数据寄存器,低电平选择指令寄存器。R/W 为读写选择,高电平进行读操作,低电平进行写操作。E 端为使能端,后面和时序联系在一起。 除此外,D0D7 分别为 8 位双向数据线。4.3.2 操作时序表 2 操作时序表从 D0D7 读取数据注:关于 E=H 脉冲开始时初始化 E 为 0,然

11、后置 E 为 1,再清 0.读取状态字时,注意 D7 位,D7=1,禁止读写操作;D7=0,允许读写操作;所以对控制器每次进行读写操作前,必须进行读写检测。 (即后面的读忙子程序)94.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) 光标归原点,但

12、是 DDRAM 中断内容变10. 0x18 光标和显示一起向左移动4.4 元器件清单表 3 元器件清单105 整体电路 RST9XAL218GND0P.()3467EOVCMIKWomes-BuFapYc+U ldjkrnq二H11A1B2C3E456Y097ULS8GNDVRPHeadr 二Qs.图 13 总体电路图126.说明电路的工作原理开始系统初始化A/D 数模转换有键按下?Y依次切换通道LCD1602 显示并控制N图 14 系统流程图本系统使用 STC89C51 作为主控制器,ADC0809 作为 AD 采集 8 路信号的芯片,采集 8路模拟信号的信息,然后根据按键依次循环显示在 L

13、CD1602 上。上电后首先 1602 初始化,ADC0809 初始化,默认显示第一路采集信号,按下一个按键后显示下一路,依次循环显示。7 困难问题及解决措施再设计过程中,对 AD 转化的原理认识不清楚,ADC0809 不熟悉。不知道如何使用这个芯片,编写程序的时候时序没有认识正确,无法完成采集。电源模块电压不稳定, 难点一就是 AD0809 芯片的使用。 难点二就是将 AD0809 产生的 0256 的数字换算成 05.000 的精确度,而又不至于溢出出错。程序流程设计不合理。LCD1602 没有想到背光的调节,显示不清楚有背影。后来仔细阅读芯片手册,理清时序的先后顺序,编写程序,完成测试,

14、优化显示流程,完成设计任务要求。138 总结与体会单片机具有体积小,功耗低,功能强,通用性好,性价比高易组装成机电仪一体化的各种智能控制设备和仪器,仪表。面向在线应用,能针对各类控制任务的简繁灵活配置,因而能获得最佳的费效比。易于实现规划设计,避免不必要的二次开发过程,减少系统的研发费用,产品升级周期短。易于多机使用主从分布式的集散控制,提高控制系统的效率。抗干扰能力强,适应温度范围广,能在各种恶劣环境下可靠地工作。指令精简,实用,系统设计灵活易于推广运用。9 致谢感谢老师让我做这次课程设计,通过这次课程设计使我更加清晰的认识了自己能力的不足和对专业知识掌握的不扎实,尤其是数字电路和模拟电路,

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

16、序#include #define uchar unsigned char#define uint unsigned int void result(uchar);uchar value=0;#include“adc0809.h“#include“lcd1602.h“uchar str5 ;uchar volt7;uchar a=0+0x30;14uchar str111=“tanxiaopin“ ;sbit CLK=P07;uint n;void main() /uint i;ADC0809_init();lcd_init();int i=0;while(1)lcd_zifu(str1,0x

17、01);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=(int)a)/100+0x30;volt1=.;volt2=(int)a)%100/10+0x30;volt3=(in

18、t)a)%10+0x30;volt4= ;volt5=V;void t1(void) interrupt 3 15CLK=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;uchar vvoid delay(ms)uint i,j;for(i=ms;i0;i-)for(j=125;j0;j-);void

19、 ADC0809_init()TMOD=0x20;TH1=(255-250);TL1=(255-250);EA=1ET1=1; TR1=1; ST=0;OE=0;ALE=0;uchar AD()uchar temp=0;ST=0;16/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);while(EOC=0);OE=1;temp=P2;delay(2);OE=0;return temp;void ADC0809_init();uchar AD();#includ

20、e#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(uchar comm);void lcd_write(uchar dat);bit lcd_busy();sbit busy=P37;extern void delay(uint);void l

21、cd_1602(uchar comm)17while(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 = dat;_nop_();_nop_();en = 1;_nop_();_nop_();en = 0;void lcd_init()delay(15);lcd_1602(0x38);delay(3);lcd_1602(

22、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()18bit result;rs = 0;rw = 1;en = 1;delay(2);result = 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);

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

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报