

免费预览已结束,剩余14页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
武汉理工大学能力扩展训练说明书课程设计任务书学生姓名: 专业班级: 电信0904 指导教师: 工作单位: 信息工程学院 题 目: 基于a/d转换模块的单片机仿真和c语言开发 初始条件:本课程设计,要求用使用proteus仿真软件进行系统设计与仿真。 要求完成的主要任务: (包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1、课程设计工作量:1周内完成对系统的设计、仿真。2、技术要求:1)设计一种多路模拟信号采集模块,从多个通道轮流采集数据一次,并将采集的结果存放在数组中。要求进行电路仿真实验,并使用c语言进行程序的开发。 2)要求学生主动思考,自主发挥,实现系统的特色功能。3、查阅至少5篇参考文献。按武汉理工大学课程设计工作规范要求撰写设计报告书。全文用a4纸打印,图纸应符合绘图规范。提交报告的主要内容:(使用proteus 7.5 sp3)1) 题目2) 仿真所完成的主要功能和特色简介摘要(特别是自己扩展的功能,根据特色功能评优)3) proteus仿真的基本流程4) 所使用芯片以及引脚功能简介(需要提供对应芯片datasheet的下载链接)5) 设计方案与工作原理,给出仿真电路图6) 实验记录与结果分析时间安排:1) 2012 年 7 月 9 日, 查阅相关资料,学习设计原理。2) 2012 年 7 月 1011 日, 方案选择和电路设计仿真。3) 2012 年 7 月 12 日, 设计说明书撰写。4) 2012 年 7 月 13 日 上交报告,同时进行答辩。指导教师签名: 年 月 日系主任(或责任教师)签名: 年 月 日目录一、软件介绍31.1、protues仿真软件31.2、c编译器keil介绍3二、总体设计3三、硬件模块设计33.1、控制系统模块33.2、ad数据采集模块33.2.1、tlc2543引脚介绍33.2.2、tlc2543工作时序33.2.3、转换过程33.3、液晶显示模块33.4、键盘模块3四、软件设计3五、实验记录与结果分析35.1、仿真流程35.2、仿真结果35.3、实物测试3六、心得体会3七、参考文献3附录一:3附录二:3附录三:3摘要:本设计要求作出一种多路模拟信号采集模块,从多个通道轮流采集数据一次,并将数据保存于记录。本系统采用at89c52作为控制系统,核心器件采用ti公司的高精度12bit ,11通道一步采样ad芯片tlc2543。分别从11路采样模拟信号,实现11路数据采集。为了做出发挥部分的特色,这里采用按键扫描方式,选择显示的通道以及数据,用键盘操控数据采集系统。显示部分采用lcd1602.实时根据按键的扫描情况更新采集的数据,并且显示。 关键词:ltc2543 lcd1602 键盘扫描一、软件介绍1.1、protues仿真软件protues 软件是来自英国labcenter electronics 公司的eda 工具软件,protues 软件有20年的历史,在全球广泛使用。它除了具有和其它eda 工具一样的原理布图、pcb 自动或人工布线及电路仿真的功能外,其革命性的功能是,它的电路仿真是交互的,可视化的,针对微处理器的应用,还可以直接在基于原理图的虚拟原型上编程,并实现软件源码级的实时调试,如有显示及输出,还能看到运行后输入输出的效果,配合系统配置的虚拟仪器如示波器、逻辑分析仪等,可以测量仿真的波形及记录仿真数据。在不需要硬件设备投入的情况下proteus 软件可以建立完整的电子学习设计开发环境,缩短研发周期,并且降低开发成本。proteus 组合了高级原理布图、混合模式spice 仿真,pcb 设计以及自动布线来实现一个完整的电子设计系统。此系统受益于多年来的持续开发,被电子世界在其对pcb 设计系统的比较文章中评为最好产品“the route to pcb cad”。proteus 产品系列也包含了我们革命性的vsm 技术,用户可以对基于微控制器的设计连同所有的周围电子器件一起仿真。用户甚至可以实时采用诸如led/lcd、键盘、rs232 终端等动态外设模型来对设计进行交互仿真。其功能模块:个易用而又功能强大的isis 原理布图工具;prospice 混合模型spice 仿真; arespcb 设计。prospice 仿真器的一个扩展proteus vsm:便于包括所有相关的器件的基于微处理器设计的协同仿真。此外,还可以结合微控制器软件使用动态的键盘,开关,按钮,led 甚至lcd 显示cpu 模型。protues 主要特征:1、支持许多通用的微控制器,如 arm,pic,avr,以及8051.2、交互的装置模型包括:led 和lcd 显示,rs232 终端,通用键盘3、 强大的调试工具,包括寄存器和存储器,断点和单步模式4、 iar c-spy 和 keil uvision4 等开发工具的源层调试1.2、c编译器keil介绍 keil c51是美国keil software公司出品的51系列兼容单片机c语言软件开发系统,与汇编相比,c语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。keil提供了包括c编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uvision)将这些部分组合在一起。keilsoftware公司推出的uvision4是一款可用于多种8051mcu的集成开发环境(ide),该ide同时也是pk51及其它开发套件的一个重要组件。除增加了源代码、功能导航器、模板编辑以及改进的搜索功能外,uvision3还提供了一个配置向导功能,加速了启动代码和配置文件的生成。此外其内置的仿真器可模拟目标mcu,包括指令集、片上外围设备及外部信号等。uvision3提供逻辑分析器,可监控基于mcui/o引脚和外设状态变化下的程序变量。uvision4提供对多种最新的8051类微处理器的支持,包括analogdevices的aduc83x和aduc84x,以及infineon的xc866等。二、总体设计本设计采用at89c52做控制系统,利用11路通道12位高精度ad tlc2543采集数据,通过按键扫描选择控制,将采样的通道以及采用的数据实时更新在lcd1602上。图1 总体框图三、硬件模块设计3.1、控制系统模块本设计控制系统采用at89c52。采用12m晶振,整体控制多通道数据采集显示和键盘扫描。图2at89c52结构介绍:p0口:p0口为一个8位漏级开路双向i/o口,每脚可吸收8ttl门电流。当p1口的管脚第一次写1时,被定义为高阻输入。p0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在fiash编程时,p0 口作为原码输入口,当fiash进行校验时,p0输出原码,此时p0外部必须被拉高。 p1口:p1口是一个内部提供上拉电阻的8位双向i/o口,p1口缓冲器能接收输出4ttl门电流。p1口管脚写入1后,被内部上拉为高,可用作输入,p1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在flash编程和校验时,p1口作为第八位地址接收。 p2口:p2口为一个内部上拉电阻的8位双向i/o口,p2口缓冲器可接收,输出4个ttl门电流,当p2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,p2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。p2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,p2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,p2口输出其特殊功能寄存器的内容。p2口在flash编程和校验时接收高八位地址信号和控制信号。 p3口:p3口管脚是8个带内部上拉电阻的双向i/o口,可接收输出4个ttl门电流。当p3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,p3口将输出电流(ill)这是由于上拉的缘故。rst:复位输入。当振荡器复位器件时,要保持rst脚两个机器周期的高电平时间。 ale/prog:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在flash编程期间,此引脚用于输入编程脉冲。在平时,ale端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ale脉冲。如想禁止ale的输出可在sfr8eh地址上置0。此时, ale只有在执行movx,movc指令是ale才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ale禁止,置位无效。 /psen:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/psen有效。但在访问外部数据存储器时,这两次有效的/psen信号将不出现。 /ea/vpp:当/ea保持低电平时,则在此期间外部程序存储器(0000h-ffffh),不管是否有内部程序存储器。注意加密方式1时,/ea将内部锁定为reset;当/ea端保持高电平时,此间内部程序存储器。在flash编程期间,此引脚也用于施加12v编程电源(vpp)。 xtal1:反向振荡放大器的输入及内部时钟工作电路的输入。 xtal2:来自反向振荡器的输出。3.2、ad数据采集模块 本设计为了实现高速高精度多路数据采集。特选用ti公司的12 位 66ksps adc 串行输出,可编程 msb/lsb 优先,可编程断电/输出数据长度,11 通道的tlc2543。tlc2543的资料pdf可从/product/cn/tlc2543处下载3.2.1、tlc2543引脚介绍tlc2543是德州仪器公司生产的12位开关电容型逐次逼近模数转换器,它具有三个控制输入端,采用简单的3线spi串行接口可方便地与微机进行连接,是12位数据采集系统的最佳选择器件之一。图3ain0ain10:模拟输入端,由内部多路器选择。对4.1mhz的i/o clock,驱动源阻抗必须小于或等于50;cs:片选端,cs由高到低变化将复位内部计数器,并控制和使能data out、data input和i/o clock。cs由低到高的变化将在一个设置时间内禁止data input和i/o clock;data input:串行数据输入端,串行数据以msb为前导并在i/o clock的前4个上升沿移入4位地址,用来选择下一个要转换的模拟输入信号或测试电压,之后i/o clock将余下的几位依次输入;data out:a/d转换结果三态输出端,在cs为高时,该引脚处于高阻状态;当cs为低时,该引脚由前一次转换结果的msb值置成相应的逻辑电平;eoc:转换结束端。在最后的i/o clock下降沿之后,eoc由高电平变为低电平并保持到转换完成及数据准备传输; vcc、gnd:电源正端、地;ref、ref:正、负基准电压端。通常ref接vcc,ref接gnd。最大输入电压范围取决于两端电压差;i/o clock:时钟输入/输出端。3.2.2、tlc2543工作时序tlc2543每次转换和数据传送使用16个时钟周期,且在每次传送周期之间插入cs的时序。时序如图4所示。图4以msb为前导, 用cs进行12个时钟传送的工作时序如图4。图5从时序图可以看出,在tlc2543的cs变低时开始转换和传送过程,i/o clock的前8个上升沿将8个输入数据位键入输入数据寄存器,同时它将前一次转换的数据的其余11位移出data out端,在i/o clock下降沿时数据变化。当cs为高时, i/o clock和data input被禁止,data out为高阻态。3.2.3、转换过程上电后,片选cs必须从高到低,才能开始一次工作周期,此时eoc为高,输入数据寄存器被置为0,输出数据寄存器的内容是随机的。开始时,cs片选为高,i/o clock、data input被禁止,data out 呈高阻状,eoc为高。使cs变低,i/oclock、datainput使能,dataout脱离高阻状态。12个时钟信号从i/oclock端依次加入,随着时钟信号的加入,控制字从datainput一位一位地在时钟信号的上升沿时被送入tlc2543(高位先送入),同时上一周期转换的a/d数据,即输出数据寄存器中的数据从dataout一位一位地移出。tlc2543收到第4个时钟信号后,通道号也已收到,此时tlc2543开始对选定通道的模拟量进行采样,并保持到第12个时钟的下降沿。在第12个时钟下降沿,eoc变低,开始对本次采样的模拟量进行a/d转换,转换时间约需10s,转换完成后eoc变高,转换的数据在输出数据寄存器中,待下一个工作周期输出。此后,可以进行新的工作周期。3.3、液晶显示模块本系统采用液晶lcd1602显示通道以及采样值。并且实时更新新的采样数据。以下是1602液晶引脚的接线图,中间没有接线的为数据控制端口。 液晶采用固定指令,先按照pdf连接好后再写入控制指令,设置好屏幕清除光标显示以及屏幕的移动在实物中把液晶可见度调节至最佳,将数据更新在lcd1602上,如图6。图63.4、键盘模块本题的扩展部分采用键盘控制通道以及显示通道采样值。在程序中应用循环扫描按键,再更新相应数据。图7四、软件设计本作品主要核心器件为tlc1543,用at89c52来控制总体,并且把采样的串行数据更新在lcd1602上面,并且显示相应通道。图8 程序流程图五、实验记录与结果分析5.1、仿真流程在keil软件中编写好c语言程序,编译生成.hex文件。图9在protues软件中画好电路元件图,并将连线接好。点击at89c52,将hex文件导入单片机中。图105.2、仿真结果图11 输入通道值 图12 液晶显示采样值5.3、实物测试在软件模拟里面采样值与设定的电压值完全一样,没有误差下表为实物测量数据,液晶将选择的通道值以及采样回来的数据显示出来,由于精度为12位,误差很小。表一 通道0采样设点电压/mv001001000500087209871023209330824666采样电压/mv001001010505087909871028209130894658表二 通道5采样设点电压/mv002003000540077209461223215336524466采样电压/mv002303050533076809391231215736584459表三 通道9采样设点电压/mv007800980499086209971013208330823997采样电压/mv007501030498086709931018208930764002六、心得体会程序不是全部的,只是主函数里面的程序,还有一个tlc2543的时序。由于我们课设成绩还没出来。时序没有附上。要完整程序的学弟们可以找我要,q359494610七、参考文献1李群芳,张士军,黄建 单片微型计算机与接口技术 电子工业出版社20082 李群芳 单片机原理接口与应用 清华大学出版社 20053张迎新.单片微型计算机原理、应用及接口技术 国防工业出版社 19994高峰 单片微机应用系统设计及使用技术 机械工业出版社 20075彭伟.单片机 c语音程序设计实例基于protues仿真 电子工业出版社20076郭惠 单片机c语言程序设计完全自学手册 电子工业出版社 20087刘瑞新等 单片机原理及应用教程 机械工业出版社 20038 黄根春 全国大学生电子设计竞赛教程 电子工业出版社 2011附录一:总体电路图附录二:实物图附录三:#include#include#define uchar unsigned char#define uint unsigned int/*下面是引脚连接关系*/sbit ad_eoc =p24; /*转换完成指示*/sbit ad_ioclk =p23; /*时 钟*/sbit ad_datin =p22; /*数据入*/sbit ad_datout=p21; /*数据出*/sbit ad_cs =p20; /*片 选*/uint ad_result; /*存各模拟通道的数据*/sbit e=p27;sbit rs=p26;sbit rw=p25;sbit s1=p30;sbit s2=p31;sbit s3=p32;sbit s4=p33;sbit s5=p34;sbit s6=p35;sbit s7=p36;sbit s8=p37;sbit s9=p15;sbit s10=p16;sbit s11=p17;uchar code zengzhen=wuhanligongdaxue;uchar code zengzhen1=cha : mv ;uint i,j;uchar sum;void delay(uint z) uint x,y; for(x=z;x0;x-) for(y=110;y0;y-); void write_com(uchar com) rs=0; rw=0; p0=com; e=0; delay(1); e=1; delay(1); e=0; void write_date(uchar date) rs=1; rw=0; p0=date; e=0; delay(1); e=1; delay(1); e=0;void init() e=0; write_com(0x38); write_com(0x0c); write_com(0x06); write_com(0x01); void display(uint k,uchar add) uchar a,b,c,d; float j=k*5.0/4.095; uint i=j/1; a=i/1000; b=i%1000/100; c=i%100/10; d=i%10; write_com(add); write_date(a+0x30); write_date(b+0x30); write_date(c+0x30); write_date(d+0x30); delay(300);/*显示程序*/*主 程序*/void scan() if(s1=0) delay(5); if(s1=0) while(!s1); sum=1; if(s2=0) delay(5); if(s2=0) while(!s2); sum=2; if(s3=0) delay(5); if(s3=0) while(!s3); sum=3; if(s4=0) delay(5); if(s4=0) while(!s4); sum=4; if(s5=0) delay(5); if(s5=0) while(!s5); sum=5; if(s6=0) delay(5); if(s6=0) while(!s6); sum=6; if(s7=0) delay(5); if(s7=0) while(!s7); sum=7; if(s8=0) delay(5); if(s8=0) while(!s8); sum=8; if(s9=0) delay(5); if(s9=0) while(!s9); sum=9; if(s10=0) delay(5); if(s10=0) while(!s10); sum=10; if(s11=0) delay(5); if(s11=0) while(!s11); sum=11; void fw() write_com(0x80+0x40+2);for(j=0;j12;j+) write_date(zengzhen1j); delay(5);void main(void) uchar h ;uint s=0; init();delay(23);write_com(0x80);for(j=0;j16;j+) write_date(zengzhenj); delay(5);write_com(0x80+0x40+2);for(j=0;j12;j+) write_date(zengzhen1j); delay(5);while(1) if(sum=11) scan(); if(sum!=11) fw(); scan(); if(sum=1) for(h=0;h15;h+) ad_result=read2543(0); while(!ad_eoc); s+=ad_result; s=s/15; write_com(0x80+0x40+5); write_date(0+0x30); display(s,0x80+0x40+7); s=0; if(sum=2) for(h=0;h15;h+) ad_result=read2543(1); while(!ad_eoc); s+=ad_result; s=s/15; write_com(0x80+0x40+5); write_date(1+0x30); display(s,0x80+0x40+7); s=0; if(sum=3) for(h=0;h15;h+) ad_result=read2543(2); while(!ad_eoc); s+=ad_result; s=s/15; write_com(0x80+0x40+5); write_date(2+0x30); display(s,0x80+0x40+7); s=0; if(sum=4) for(h=0;h15;h+) ad_result=read2543(3); while(!ad_eoc); s+=ad_result; s=s/15; write_com(0x80+0x40+5); write_date(3+0x30); display(s,0x80+0x40+7); s=0; if(sum=5) for(h=0;h15;h+) ad_result=read2543(4); while(!ad_eoc); s+=ad_result; s=s/15; write_com(0x80+0x40+5); write_date(4+0x30); display(s,0x80+0x40+7); s=0; if(sum=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 专利申请居间合同模板
- 神经内科年终工作总结
- 脑血管介入手术护理配合
- 北京市2025年度家具仓储租赁与品牌推广合作协议
- 简易保险代理居间合同
- 2024浙江省瑞安市塘下职业中等专业学校工作人员招聘考试及答案
- 2024年九月煤炭堆场周边野生动物防护设施租赁合同
- 办公用房租赁合同范本(甲乙丙三方)
- 黄金首饰采购合同
- 秩序员岗位规范
- 图解2021年中央民族工作会议大会
- 大鼓校本课程纲要
- 东方式插花技艺-盘花的插作
- 中建临建工程施工方案完整版
- 软件系统操作手册模板
- 日间手术管理信息系统建设方案
- 急诊急救的培训
- 印刷合作合同
- 2023年高考全国甲卷数学(理)试卷【含答案】
- 高三文科数学专题 对数平均不等式
- 悬臂式挡墙技术交底
评论
0/150
提交评论