欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    基于51单片机的简易逻辑分析仪设计大学论文.docx

    • 资源ID:581925       资源大小:524.52KB        全文页数:32页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于51单片机的简易逻辑分析仪设计大学论文.docx

    1、基于51单片机的简易逻辑分析仪设计 大学论文 本科生毕业设计报告学 院 物理与电子工程学院 专 业 电子信息工程 设计题目: 基于51单片机的 简易逻辑分析仪设计 学生姓名 指导教师 (姓名及职称)班 级 学 号 完成日期: 年 月基于51单片机的简易逻辑分析仪设计 物理与电子工程学院 电子信息工程 摘要本设计完成了一种能进行数字电路中多路数据测试的简易逻辑分析仪。它以51单片机控制核心,数模转换器为逻辑信号门限电平控制电路,用按键和 12864LCD作为人机交互界面,采用C51进行模块化编程,实现了四路信号的测试,具有成本低,使用方便等特点。 关键词数字电路 单片机 数模转换器 逻辑分析仪1

    2、 设计任务与要求本设计的主要任务及参数指标是:数据位数4位,存储深度80字;数据速率最高1kHz;输入阻抗大于50k;逻辑信号门限电平在1.0V4.0V 范围内按8级任意设定。2 设计方案本系统采用51单片机为控制核心,系统由单片机系统、逻辑电平控制、按键、LCD显示、系统电源等模块构成。被测数据输入到逻辑电平控制模块,然后进行单片机进行测试,按键用于控制逻辑信号门限电平的大小,系统电源为各模块供电,各模块的供电电压为5V。图1 系统框图3 设计原理分析3.1 单片机系统电路设计图2 单片机系统电路单片机系统为逻辑分析仪的核心,负责控制逻辑分析仪的逻辑电平、检测按键并驱动LCD进行显示。单片机

    3、系统电路如图2所示,由晶体振荡器Y1、电容C3和C4构成振荡器电路,为单片机提供时钟信号。电容C1、电阻R2和R1、按键KEY1构成单片机复位电路,高电平复位,当按键KEY1按下的时间超过2个机器周期以上时,单片机就执行复位操作。EA接高电平,单片机首先访问内部程序存储器。J1为1K的排阻,作为P0口的外部上拉电阻。在硬件制作时为了方便单片机的测试和功能的扩展,把所有的I/O口均通过排针引出。3.2 人机界面电路设计图3 按键控制电路按键控制电路如图3所示,用于控制逻辑分析仪的工作状态,如采样率改变、逻辑电平的调整等等,单片机通过检测按键对应的I/O口是否为低电平来判断按键是否按键,为了防止干

    4、扰,应在单片机的按键检测程序中加入延时函数。图4 LCD显示接口电路LCD显示接口电路如图4所示,此模块用来显示需要显示的数据,电位器R3用于调节液晶的对比度。LCD采用采用字符式FM12864M-12L型LCD,为节约I/O口,以串行方式与单片机连接。图5 蜂鸣器驱动电路蜂鸣器驱动电路如图5所示,选用三极管Q1为PNP型三极管,三极管基极电阻R11为1k,因为单片机的灌电流能力强于拉电流能力,因此采用PNP型三极管,蜂鸣器采用5V有源蜂鸣器。三极管连接到单片机的P17口,当P17输出为低电平时,蜂鸣器响。3.3 逻辑电平控制电路设计逻辑分析仪主要作用在于时序判定,通常只显示两个电压(逻辑1和

    5、0),因此设定了参考电压后,逻辑分析仪将被测信号通过比较器进行判定,高于参考电压者为高电平,低于参考电压者为低电平,在高电平与低电平之间形成数字波形。逻辑电平控制电路用于控制输入信号的门限电平,输入信号经过逻辑电平控制电路以后再连接到单片机的I/O口,主要有电压比较器和数模转换器构成,电路如图6所示。逻辑分析仪被测信号路数为4路,采用4个电压比较器和一片数模转换器实现逻辑电平控制,电压比较器采用LM393,因为采用OC输出,所以输出端均连接上了5.1k的上拉电阻。4路输入信号的门限电平由数模转换器控制,为了使4路输入信号的门限电平一致,四片电压比较器的反向输入端接在一起,并连接到数模转换器的输

    6、出端。数模转换器U2换用TLC5615来实现,TCL5615为十位串行数模转换器,控制方便,并节约单片机的I/O口,数模转换器的参考电压由U2的6脚输入,稳定的参考电压为2.5V,由TL431产生。图6 逻辑电平控制电路3.4 供电电源电路设计图7 供电电源电路系统采用5V供电,供电电源电路由LM7805完成,电路如图7所示。J11为供电电源电路的输入端,D3为了防止反接,C6、C7为输入滤波电容,C8、C9为输出滤波电容,D5为电源指示灯,R8为电源指示灯的限流电阻。4 系统软件设计图8 设计流程图设计流程图如图8所示,电路焊接完成先进行硬件的调试,然后进行程序的编译和软硬联合调试。硬件调试

    7、先不放置芯片,通过万用表验证PCB与原理图的一致性,如果发现有不一致的地方,查找原因,直到解决问题为止。然后进行加电测试,分别测试主要关键点的电压是否和原理一致,单独验证每个模块电路的正确性。硬件验证通过后进行程序的编辑与调试,直到最终设计作品工作为止。4.1 设计过程所用仪器1、DF1731SC2A直流稳压电源2、UT805A万用表3、PC机4.2 软件设计工具和平台采用Keil uVision4集成开发环境作为软件开发平台,用C语言对单片机编程实现系统各功能,并进行整体软件系统调试。采用RS232串口为单片机进行程序下载,由于电脑没有RS232串口,因此使用CH341T完成USB转RS23

    8、2,RS232连接到单片机串口完成程序的下载。4.3 软件设计思想系统采用分模块编程的思想,然后通过标志位来实现各个模块之间的协调运行。此逻辑分析仪的模块程序主要有数据采集模块、逻辑电平控制模块、按键检测模块、采样率控制模块、LCD显示驱动程序等。4.4 软件设计流程图图9 程序流程图5 设计的结果图10 逻辑分析仪PCB布线图原理图的绘制和PCB的设计使用Protel 99se来完成,PCB板的制作采用快速热转印技术来完成。在原理图的绘制及PCB的设计过程中特别注意规范性,特别是PCB布线的一些规则,注意PCB走线、线距、线宽、空间布局等,合理选取接口,如图10所示为逻辑分析仪PCB布线图。

    9、图11 多路数据逻辑分析图图12 逻辑电平设定测试图由于此逻辑分析仪为四通道,测试过程中,分别为每个通道加入被测逻辑电平,分别验证,然后四个通道同时验证,并测试逻辑电平设定等。测试结果表明,符合设计要求。6 总结采用51单片机为控制核心,数模转换器加电压比较器构成逻辑电平控制电路,LCD组成显示界面等,可以有效的构成简易逻辑分析仪的硬件系统,使用EDA开发工具可以缩短建议逻辑分析仪设计的时间,使用模块化编程的思想有利于程序的调试和可读。通过对简易逻辑分析仪的设计,可以加深对系统设计思想的认知,初步具备电子设计的能力。 参考文献1 庞利会,邓先荣,王军锋等.逻辑分析仪的设计与实现J.电力自动化设

    10、备,2012,32(9):149-152.2 朱震华,储婉琴.简易逻辑分析仪的设计与实现J.实验室研究与探索,2001,20(2):123-124.3 江波,叶丽.基于51单片机的简易逻辑分析仪J.广西大学学报(自然科学版),2008,33(z1):128-130.4 朱震华,储婉琴.简易逻辑分析仪设计J.电子工程师,2000,26(5):31-32,36.5 贾奕,黄劲松,沈鹏程等.简易逻辑分析仪设计J.电子测试,2008,(10):70-75.6 朱更军,彭永供,项安等.串行10位D/A转换器TLC5615原理及与DSP的接口J.电子质量,2003,(10):59-60.7 左现刚,余周,

    11、侯志松等.基于SPI总线的TLC5615在AVR 单片机中的应用J.河南科技学院学报(自然科学版),2011,39(4):94-97.8 李建波,高立新.串行数模转换器TLC5615的原理及其Proteus仿真设计J.福建电脑,2008,(10):21,3.9 孙凌燕,黄允千.Proteus与Keil软件的整合在单片机实验开发中的应用J.实验室研究与探索,2008,27(4):59-61,68.10 马刚,李向仓.用Proteus与Keil整合构建单片机虚拟仿真平台J.现代电子技术,2006,29(24):129-131.11 伍冯洁,谢陈跃,谢斌等.Proteus与Keil在单片机开放性实验

    12、中的应用J.电子测量技术,2008,31(6):100-103,107.12 黄克亚.浅谈自制51单片机编程器方法和策略J.黑龙江科技信息,2009,(25):11.13 邱宁.利用USB总线的虚拟逻辑分析仪J.自动化仪表,2003,24(9):21-24.14 胡昆霖,李冶,左向利等.基于LabVIEW和FPGA的多通道虚拟逻辑分析仪的设计J.电子技术应用,2012,38(11):91-93.15 李丽焕.电压比较器电压传输特性的绘制J.中国科技纵横,2013,(2):212.16 周宦银,吕子勇,马果花等.电压比较器实验研究J.实验技术与管理,2012,29(3):42-44.17 陈旦花

    13、.单片机最小系统的设计与应用J.无线互联科技,2012,(10):103-104.18 景小健,尹清华,陈清林等.MG-12864液晶显示器在智能仪表中的应用J.化工自动化及仪表,2003,30(6):62-64.19 李志广,李晓泉,淮俊霞等.中文图形12864点阵液晶显示模块与51单片机的并行接口电路及C51程序设计J.现代显示,2008,(7):41-44.20 潘大伟,黄璞.基于12864 LCD的波形显示系统的研制J.仪器仪表用户,2008,15(3):28-29.The design of simple logic analyzer based on 51 single chip

    14、Wang Shu Shool of physics and electronic engineering 1230S007AbstractIn this paper,a simple logic analyzer which can multiplex data in digital circuit test is designed. It takes 51 single-chip microcomputer to control the core.The digital to analog converter is used as a logic signal threshold level

    15、 control circuit.The analyzer uses keyboard and 12864LCD as the man-machine interface, and modular programming with C51.It can test quadruplex signal with low cost,and uses conveniently.KeywordsDigital circuit SCM Microcontroller DAC Logic Analyzer附一: 源程序#include #include lcd.h #include tlc5615.h#in

    16、clude tlc1549.h#define count 50000 #define TH_M1 (65536-count)/256 /T0 (Mode 1)计数高8位#define TL_M1=(65536-count)%256 /T0 (Mode 1)计数低8位 code uchar Display18=门限电平;code uchar Display210=输出电压为;sbit KEY1 = P03;sbit KEY2 = P04;sbit KEY3 = P05;sbit KEY4 = P06;sbit P13=P13;sbit P14=P14;sbit P15=P15;sbit P16=

    17、P16;unsigned int uiVoltage_ADC,uiVoltage_DAC; /uiVoltage:LCD显示用,无小数点float fVoltage_DAC; /定义实际需要输出的电压xdata unsigned char iCount=0; / 采样个数设置,这里设置为16次xdata unsigned char result_Port1416=0;xdata char port1_Flag=0;xdata char key12Flag=0; xdata char TR0Flag=0;xdata unsigned char key1=0; /控制显示屏上的列标记xdata u

    18、nsigned char port_14=1,2,3,4;char flay_a = 1;unsigned int Sample_Voltage(void);void Delay_1ms(int); /毫秒级延时函数void Control_DAC(void); /声明调整输出电压函数void displayPort1_in_LCD(unsigned char p, unsigned char i,unsigned char j);void displayPort1_in_LCD_by_Flush(unsigned char *p,unsigned char key);void put_and

    19、_Display_Voltage(); /当DA的电压设定发生改变时调用该函数 void control_TR0_By_KEY3(); /通过按键KEY3控制采样的结束void display_Sample_Result(); /显示16次采样的结果函数void Sys_key();/*函 数 名:主函数功能说明:调用函数: 入口参数:出口参数:说 明:*/void main() LCD_init(); /初始化LCD LCD_Clear(); /LCD清屏 / T0_init(); port1_Flag=0; key12Flag=0;/禁止按键key1和key2工作 TR0Flag=0;/

    20、禁止Time0工作 TR0=1; /开启Time0工作 fVoltage_DAC = 2.5;/ put_and_Display_Voltage();/ Delay_1ms(20); DAC_TLC5615_Voltage(fVoltage_DAC); while(1) if(flay_a=0) port_10=(char)P13; port_11=(char)P15; port_12=(char)P14; port_13=(char)P16; displayPort1_in_LCD_by_Flush(&port_1,key1%8); key1+; key1=key1%128;/ Delay_

    21、1ms(500);/ flay_a=1;/ Sys_key(); if(KEY1=0) /增加DAC电压, Delay_1ms(10); if(KEY1=0) while(!KEY1); fVoltage_DAC=fVoltage_DAC+0.5; if(fVoltage_DAC4.0) fVoltage_DAC = 1.0; / IE=0x00; flay_a=1;/ TR0Flag=1; /按一次就开始采样,再按一次就结束采样; if(KEY3=0) /减DAC电压, Delay_1ms(10); if(KEY3=0) while(!KEY3); fVoltage_DAC=fVoltage

    22、_DAC-0.5; if(fVoltage_DAC1.0) fVoltage_DAC = 4.0; flay_a=1; / IE=0x00;/ key12Flag=1; if(flay_a=1) put_and_Display_Voltage(); flay_a=0; /*函 数 名:Display_Voltage功能说明:显示电压,整数调用函数:LCD_Pos Send_Data Write_LCD 入口参数:Voltage(带显示电压*1000倍以后的值) x,y(从LCD的坐标x,y处开始显示)出口参数:无说 明:显示范围为0-9999 列:当Voltage=1234时,显示1.234V

    23、*/void Display_Voltage(unsigned int Voltage,char x,char y) code uchar Display_Dot1=.; code uchar Display_Unit1=V; LCD_Pos(x,y); Write_LCD(Voltage/1000+0x30,1); Send_Data(Display_Dot,1); /显示小数点 Write_LCD(Voltage%1000/100+0x30,1); Write_LCD(Voltage%100/10+0x30,1); Write_LCD(Voltage%10+0x30,1); Send_Da

    24、ta(Display_Unit,1); /显示单位/*函 数 名:Sample_Voltage功能说明:带有滤波功能的电压测量调用函数:ADC_TLC1549 入口参数:无出口参数:Votlage(测量滤波后的电压)说 明:*/unsigned int Sample_Voltage(void) double Filt_Tab3=0; char Flag_Filt_Tab = 0; unsigned int Tab_Vol30 =0,k=0,Votlage = 0; double Sum = 0; char i=0,j=0; /平均值 滤波/ for(i=0;i30;i+) Tab_Voli=

    25、ADC_TLC1549(); for(j=0;j30;j+) for(i=0;iTab_Voli+1) k=Tab_Voli; Tab_Voli=Tab_Voli+1; Tab_Voli+1=k; for(i=0;i10;i+) Sum +=Tab_Voli+10; /取中间二十组数据 Sum = Sum/10; /平均滤波后的值 Votlage =(unsigned)(Sum/1024.0*3770); /扩大1000 /需要一阶滞后滤波时把Sum修改成Filt_Tab2并取消屏蔽return Votlage;/*函 数 名:Delay_1ms功能说明:毫秒级延时函数调用函数: 入口参数:x

    26、:延时x毫秒出口参数:说 明:*/void Delay_1ms(int x) int i,j; for(i=0;ix;i+) for(j=0;j120;j+); /把p1.3,p1.4,p1.5,p1.6在液晶中进行显示,每行显示一组数据void displayPort1_in_LCD(unsigned char p, unsigned char i,unsigned char j) LCD_Pos(i,j); /设置显示位置为第i行的第j个字符 Write_LCD(p+0x30,1); /一次显示四个电平值,显示在一列。 P13,P15,P14,P16/ 参数p0=P13,p1=P14,p2

    27、=P15,p3=P16;/参数key是要显示的列标,最大是15,最小是0;void displayPort1_in_LCD_by_Flush(unsigned char *p,unsigned char key) / LCD_Clear(); displayPort1_in_LCD(p0,0,key); displayPort1_in_LCD(p1,1,key); displayPort1_in_LCD(p2,2,key); displayPort1_in_LCD(p3,3,key);/输出并显示电压函数 void put_and_Display_Voltage() /把DA变换的初始电压显示在LCD上,也可以换成提示输入按键 LCD_Clear(); /LCD清屏 LCD


    注意事项

    本文(基于51单片机的简易逻辑分析仪设计大学论文.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开