基于51单片机的简易逻辑分析仪设计

合集下载

基于51单片机智能控制仪表简单设计

基于51单片机智能控制仪表简单设计

智能控制仪表简单设计龙岩学院电子信息工程学号:200402208 姓名:邓晶晶指导老师:吴春富【摘要】:随着传感器技术、微电子技术、单片机技术的不断发展,为智能控制仪表测控功能的完善、测控精度的提高和抗干扰能力的增强等提供了条件。

本设计介绍了一种用变送器现场采集的温、湿度等信号再经A/D 转换送单片机进行处理,最后通过数码显示器,键盘等硬件设计实现了工作过程的自动化。

一般的单片机系统在工业现场等恶劣的环境下容易死机,所以在本文中外加监视电路对系统起保护作用。

关键词】:AT89C52 单片机;HD7279A; 看门狗;第1章引言仪器仪表是人类认识世界的工具,人们借助于各种仪器仪表对各种物理量进行度量,反映其大小与变化规律.随着人类认识能力的提高与科学技术不断进步,仪器仪表技术得到了飞速发展.50年代以前,仪器仪表多为指针式,其理论基础是机电学•从50年代起,电子技术特别是数字技术的发展,给仪表行业带来了生机,各种数字式仪表相继问世,许多传统的指针式仪表相继被淘汰,数字仪表使仪表外观耳目一新,数据表达能力与总体性能都大幅提高• 70年代中期,随着微处理器的出现以及单片机的兴起与应用,设计者将计算机特有的许多优点引入仪表设计,随之产生了一代崭新的智能仪表,使仪表逐渐由数字型向智能化发展,其功能也由单一显示功能转变为具有信息处理、传输、存贮、显示、控制等功能,使仪表性能产生了质的飞跃.,品种繁多•目前,我国仪器仪表有13大类,1 300多个产品.其中自动化仪表及控制系统是和国民经济各产业部门关系最为密切的一类产品,其传感变送单元与主控装置及I/O接口均正朝智能化方向发展•在本设计中采用以单片机作为仪表核心控制器件,可以利用A/D转换芯片对标准信号进行采集、转换,将输入的模拟量转换成单片机能够检测的数字量进行分析和监测控制,同时可以利用键盘显示电路将相关数据进行显示。

与此同时通过所查阅的资料我还了解到随着测量技术的发展和微处理器的广泛应用,单片机系统的电路越来越复杂,而系统的可靠性问题也越来越突出,一般的单片机系统在工业现场等恶劣的环境下容易死机,因此系统在这些场合要保证能够稳定的工作就必须外加监视电路,在设计中采用了美国集把关定时器、电压监控和串行EEPRO三项功能于一体的专用集成芯片X5045。

简易数字逻辑分析仪的程序设计.

简易数字逻辑分析仪的程序设计.
。 逻辑状态相同。满足触发条件时,能对被测信号进行采集、存储
能利用模拟示波器清晰稳定地显示所采集并输出的的8路信号波形。 8位输入电路的输入阻抗大于50 K,其逻辑信号门限电压可在0.25V-
4V范围内按16级变化,以适应各种输入信号的逻辑电平。 每通道的 存储深度为20bit。
系统结构框图
简易数字逻辑分析仪的程序设计
(单片机汇编程序设计)
本次设计要求
制作数字信号发生器:能产生8路可预置循环移位序列,输出信号 为逻辑TTL电平,序列时钟脉冲频率为100Hz,并能够重复输出。
制作简易逻辑分析仪: 具有采集8路逻辑信号的功能,并可设置触 发字。信号采样的触发条件为各路被测信号电平与触发字所设定
信号发生器
设计方案
利用单片机内的定时器,产生计数溢出中断,从而实现信 号频率要达到100Hz的要求。
当改变拨段开关的预设值后,按下数字开关,单片机会重 新读入8位数据,并对改变后的数据进行读取和输出。
在中断程序中对信号实ห้องสมุดไป่ตู้循环右移和输出,每次中断到来 的时候,单片机便对输出端口输送一组信号。
程序流程图
数字逻辑分析仪
解决方案
利用两个通用寄存器R0、R1作为指针,实现信号的循环 存储和输出,深度位20位。
同样采用定时器的中断程序设计,其中内容主要为对信号 的采集、比较和输出。
利用一个多路选择器和D/A转换器实现8路信号的并行显示 功能,并在主程序中实现对他们的使用。
利用单片机剩余的端口对锁存器、多路选择器和D/A转换 器进行选通控制,避免输出总线上的数据冲突
程序流程图
编程工具与仿真环境
编程工具:伟福6000(WAVE6000 )

基于51的简易逻辑分析仪

基于51的简易逻辑分析仪

第33卷增刊2008年6月广西大学学报(自然科学版)JournalofGuangxiUniversity(NatSciEd)V01.33,Sup.June,2008文章编号:1001—7445(2008)增.0128—03基于51单片机的简易逻辑分析仪江波,叶丽(广西大学电气工程学院,广西南宁530004)摘要:介绍采用STC89LE54单片机控制8路逻辑信号电平采集的简易逻辑分析仪设计.采用EPM7128SLC84—15控制系统实现一个数字信号发生器可预置8路信号工作,单片机和EPM7128SLC84--15间采用中断方式交换数据.采集电路以5kbit每秒的速率同时对8路逻辑信号进行采样.逻辑信号门限电压通过键盘任意设定信号采集的触发等级、触发条件、触发位置由键盘设定.采集存储的8路信号可以同时清晰稳定地在示波器再现.关键词:STC89LE54EPM7128SLC84;逻辑分析;数字信号发生器中图分类号:TN702文献标识码:ASimplelogicanalyserbasedon51singlechipJIANGBo,YELi(CollegeofElectricalEngineering,GuangxiUniversity,Nanning530004,China)Abstract:Thepaperintroducesthedesignofthesimplelogicanalyserwhichacquisitionof8routessignalleveliscontroledthroughSTC89LE54singlechip.ThecontrolsystemthroughEPM7128SLC84-15torealizesadigitalwaveformgeneratorsscheduled8routessignal,itisthroughthesuspendedmeanstoexchangedatabetweensinglechipandEPM7128SLC84-15.5kbit/sreal—timesamplerateoftheacquisitioncircuitiSfacedtothe8routeslogicsignalinthemeantime.Thresholdvoltageoflogicsignalissetarbitrarilybykeybord;triggerrank,triggerconditionandtriggerlocationaresetbykeybord.8routessignalsampledandregisteredcanbereshowedclearlyontheoscilloscopesinthemeantime.Keywords:STC89LE54;EPM7128SLC84;logicanalyse;digitalwaveformgenerators逻辑分析仪(LogicAnalyzer)是以逻辑信号为分析对象的测量仪器.是一种数据域仪器,其作用相当于时域测量中的示波器.正如在模拟电路错误分析中需要示波器一样,在数字电路故障分析中也需要一种仪器,它适应了数字化技术的要求,是数字逻辑电路的设计、分析及故障诊断工作中不可缺少的工具,在数字电路的研制测试、电子计算机维修、微处理器以及各种集成化数字仪表和装置中均有广泛的用途.逻辑分析仪作为硬件设计中必不可少的检测工具,还可将其引人实验教学中,建立直观感性的印象,提升学生的硬件设计能力,可以全面提高教学质量.在数字电路的调试中,往往要测试多路信号波形,分析其逻辑关系,采用普通示波器时,最多只能测试2路信号波形,若采用市面上的逻辑分析仪,由于其核心部件设计昂贵,投资较高.本文着重讨论基于单片机技术的逻辑分析仪的实现方法.・收稿日期:2008—01—21;修订日期:2008—03一17作者简介:江波(1981一),男,广西兴安人,广西大学电气工程学院2005级硕士研究生增刊江波等:基于51单片机的简易逻辑分析仪1291系统总体结构本系统采用单片机和可编程器件作为数据处理及控制核心,整个系统由一个信号发生器和一个简易逻辑分析仪构成.将设计任务分解为数字信号发生、信号采集存储、信号融合处理、显示、掉电保护等功能模块.图1即为该系统的总体框图.考虑到硬件电路的紧凑性,故将上述模块合理分配连接成以下3个模块:数字信号发生器、单片机控制器、键盘/显示j图1系统总体框图Fig.1Totalsystemframe-structuredgraph2系统主要硬件电路设计2.1单片机控制器单片机控制器是整个硬件电路的核心,采用STC89LE54单片机为主控制核心的双CPU工作模式.STC89LE54单片机内部含有可重复编程的FLASHROM,可通过串口进行在线编程,在设计调试过程中可十分容易进行程序的在线修改.利用AT24C64存储器(EEPROM)实现掉电存储功能.从CPU系统即以AT89S52为主的显示键盘模块的控制.数字信号处理主要是D/A转换器件的选择,我们选用性能优良的DAC0832作为D/A变换芯片.该方案的特点是硬件简单,软件实现方便,大大提高了系统的设计性能.由单片AT89S52控制8个共阳数码管、8个按键构成动态显示模块.由于具有RS一232接口,易于与计算机相连,可以直接利用计算机来作为显示器显示波形.本设计的采样对象是逻辑信号,一般的逻辑电平为5V,所以在设计中,我们约定被采样信号的电平在0"5V之间.而STC89LE54内部的A/D转换模块所能判别的电平信号为0~3.3V,我们可以利用其内部的参考电平进行A/D的测试,参考电平选为VCC(3.3V).所以,必须要对输入信号进行压缩处理,压缩比为5s3.3.通过预处理的8路信号都是0--一3.3V电平信号,刚好适合STC89LE54内部A/D转换模块采样.由于要对8路信号进行采集,对每路信号的采样速率是总速率的1/8,STC89LE54内部A/D转换最快可实现200kHz的采样速率.理论可实现最高采样速率为200kHz/8=25kHz的采样速率.但是由于软件延时等因素.可实现最大采样速率为5kHz.为了提高采样速率,对每BIT信号,采样一次.为了实现对8路逻辑电路的同步采样,我们采用序列通道单次采样的方式,采样由输入时钟信号进行同步.Clock采样fI.fIff图2同步采样图Fig.2Phys.samplinggraph每个上升沿到来触发采样,依次对8路信号采样各采样一次.2.2数字信号发生器模块的电路设计与实现采用CPLD实现,使用可编程逻辑器件EPM7128sLC84完成数字信号发生器的功能.ALTERA的EPM7128S系列CPLD是基于第二代MAX结构体系地高性能EEPROM结构的CPLD.使用Maxplus软件可方便的编制一个十分频器件,得到100Hz频率.加上循环移位器,很容易就能实现循环移位序列.这种方案精准、稳定,便于控制,且可编程逻辑器件应用日益广泛,是高新电子技术发展的必备元器件.采用可编程器件提高了设计效率,并使系统更稳定,调试更方便.其电路框图如图3所示:图中的时钟产生电路由有源晶振提供,控制和预置电路和指示电路由拨码开关和发光二极管电路实现,信号序列产生电路由CPLD器件EPM7128SLC84来实现。

基于51单片机智能控制仪表简单设计

基于51单片机智能控制仪表简单设计

智能控制仪表简单设计龙岩学院电子信息工程学号:200402208 姓名:邓晶晶指导老师:吴春富【摘要】:随着传感器技术、微电子技术、单片机技术的不断发展,为智能控制仪表测控功能的完善、测控精度的提高和抗干扰能力的增强等提供了条件。

本设计介绍了一种用变送器现场采集的温、湿度等信号再经A/D 转换送单片机进行处理,最后通过数码显示器,键盘等硬件设计实现了工作过程的自动化。

一般的单片机系统在工业现场等恶劣的环境下容易死机,所以在本文中外加监视电路对系统起保护作用。

关键词】:AT89C52 单片机;HD7279A; 看门狗;第1章引言仪器仪表是人类认识世界的工具,人们借助于各种仪器仪表对各种物理量进行度量,反映其大小与变化规律.随着人类认识能力的提高与科学技术不断进步,仪器仪表技术得到了飞速发展.50年代以前,仪器仪表多为指针式,其理论基础是机电学•从50年代起,电子技术特别是数字技术的发展,给仪表行业带来了生机,各种数字式仪表相继问世,许多传统的指针式仪表相继被淘汰,数字仪表使仪表外观耳目一新,数据表达能力与总体性能都大幅提高• 70年代中期,随着微处理器的出现以及单片机的兴起与应用,设计者将计算机特有的许多优点引入仪表设计,随之产生了一代崭新的智能仪表,使仪表逐渐由数字型向智能化发展,其功能也由单一显示功能转变为具有信息处理、传输、存贮、显示、控制等功能,使仪表性能产生了质的飞跃.,品种繁多•目前,我国仪器仪表有13大类,1 300多个产品.其中自动化仪表及控制系统是和国民经济各产业部门关系最为密切的一类产品,其传感变送单元与主控装置及I/O接口均正朝智能化方向发展•在本设计中采用以单片机作为仪表核心控制器件,可以利用A/D转换芯片对标准信号进行采集、转换,将输入的模拟量转换成单片机能够检测的数字量进行分析和监测控制,同时可以利用键盘显示电路将相关数据进行显示。

与此同时通过所查阅的资料我还了解到随着测量技术的发展和微处理器的广泛应用,单片机系统的电路越来越复杂,而系统的可靠性问题也越来越突出,一般的单片机系统在工业现场等恶劣的环境下容易死机,因此系统在这些场合要保证能够稳定的工作就必须外加监视电路,在设计中采用了美国集把关定时器、电压监控和串行EEPRO三项功能于一体的专用集成芯片X5045。

简易逻辑分析仪设计报告

简易逻辑分析仪设计报告

简易逻辑分析仪设计报告1.引言1.1 概述概述:简易逻辑分析仪是一种用于检测数字电路中逻辑信号的仪器,能够实时监测和分析数字电路中的信号波形和逻辑状态。

本设计报告将介绍一种基于FPGA的简易逻辑分析仪的设计方案,包括其设计原理、硬件设计和软件设计。

通过该设计,可以实现对数字电路中逻辑信号的实时观测和分析,为数字电路的调试和优化提供有力支持。

本报告将详细介绍该简易逻辑分析仪的设计过程和实现原理,以及展望未来在数字电路测试领域的应用前景。

1.2文章结构文章结构部分的内容应该是对整篇文章的结构进行简要概括,包括各个章节的主要内容和重点讨论的部分。

可以按照下面的内容编写:文章结构部分:本文主要包括三个部分,即引言、正文和结论。

在引言部分,将对简易逻辑分析仪的概述、文章结构和研究目的进行介绍。

正文部分包括设计原理、硬件设计和软件设计三个方面的内容,其中设计原理将解析简易逻辑分析仪的工作原理,硬件设计将详细介绍分析仪的硬件组成和设计要点,软件设计则会讨论分析仪的相关软件开发情况。

在结论部分,将对整个设计报告的结果进行总结、设计的优点进行分析,并对未来的发展进行展望。

整篇文章的结构清晰,内容充实,将全面展示简易逻辑分析仪的设计过程和成果。

1.3 目的本报告的目的是设计一种简易逻辑分析仪,用于对数字逻辑电路进行分析和测试。

通过该逻辑分析仪,可以实现对逻辑电路中信号的捕获、显示和分析,从而帮助工程师和技术人员更好地理解和调试数字电路。

同时,设计该逻辑分析仪旨在提高测试效率、降低成本,并且具有一定的实用性和推广性。

基于以上目的,本报告将从设计原理、硬件设计和软件设计三个方面展开介绍和分析。

2.正文2.1 设计原理设计原理部分的内容应该包括对逻辑分析仪的工作原理进行详细介绍。

这包括逻辑分析仪的基本功能和原理,例如数据采集、信号分析和显示等。

此外,还应该介绍如何通过逻辑分析仪实现对数字信号的采集、存储和分析,以及逻辑分析仪的工作流程和主要原理。

简易逻辑分析仪设计

简易逻辑分析仪设计

简易逻辑分析仪设计(总26页) -CAL-FENGHAI.-(YICAI)-Company One1-CAL-本页仅作为文档封面,使用请直接删除辽宁工业大学电子综合设计与制作课程设计(论文)题目:简易逻辑分析仪院(系):电子与信息工程学院专业班级:电子081学号: 080404009学生姓名:东宇指导教师:(签字)起止时间:2011.12.26—2012.01.06课程设计(论文)任务及评语院(系):电子与信息工程学院教研室:电子信息工程注:成绩:平时20% 论文质量60% 答辩20% 以百分制计算摘要本系统的设计电路由8位数字信号发生器电路、数据采集电路、功能控制系统、显示电路四部分构成。

8位数字信号发生器电路:由单片机、液晶、按键等元器件组成,可以产生8路循环移位逻辑信号序列,并能设定、调节并显示预置值。

数据采集电路:由单片机控制,含有RAM及8位输入电路等,能够采集并存储输入的8位逻辑序列。

功能控制系统:它也是由单片机控制,完成设定、显示、调整系统各功能项的任务。

显示电路:主要由可编程逻辑器件CPLD和电平移位及扫描电路组成,用于将RAM中的8路逻辑序列取出,将其高速送入示波器稳定显示。

关键词:可编程器件CPLD;电平位移;扫描电路;目录第1章绪论 (1)1.1逻辑分析仪在数字科技中的地位 (1)1.2本文研究内容 (2)第2章方案论证 (2)第3章系统原理框图 (4)第4章系统电路 (5)4.18位数字信号发生器 (5)4.2功能控制系统 (5)4.3数据采集电路 (6)4.4显示系统 (6)第5章系统软件设计 (7)第6章调试过程及功能实现 (10)第7章结果分析 (12)第8章总结 (13)参考文献 (14)附录1 (15)第1章绪论1.1逻辑分析仪在数字科技中的地位数字科技对检测仪器的需求 20 世纪 70 年代以来,大规模集成电路、可编程逻辑器件、高速数据信号处理器和计算机技术等高新技术得到迅猛发展,为解决数字设备、计算机及 VLSI 等电路在研制、生产、检修和维护中的测试问题,出现了一类新的测试设备。

基于C51单片机的智能仪器综合设计实验

基于C51单片机的智能仪器综合设计实验

基于单片机的智能仪器综合设计实验一、实验目的在实验一~实验三的基础上,完成综合设计实验,学会信号采集、数据处理、键盘控制、LCD或LED显示等功能的智能仪器设计。

二、复习与参考实验一~实验三三、设计指标利用K分度号热电偶进行温度检测,测温范围为500-1200ºC,室温为20ºC,用LCD或LED显示室温和测量温度。

具有4路温度信号循环检测功能,通道切换时间可调;具有任意指定通道显示功能。

四、实验要求1.选择传感器,设计硬件电路,包括检测电路、信号调理电路、AD转换电路、单片机最小系统、LED显示(单号)、LCD显示(双号)、独立式按键,画出电路原理图。

2.画出软件流程图。

3.用Keil C51编写程序。

3.实验结果在LCD或LED上显示出来。

4.实验前完成第1、2项备查。

五、实验仪器设备和材料清单PC机;单片机实验板、连接导线、ST7920图形液晶模块Keil c51软件六、实验成绩评定方法实验成绩包括预习、实验完成质量、实验报告质量3部分组成,各部分所占比例分别为30%、40%、30%。

八、实验报告要求实验报告格式:●实验名称●实验目的●实验内容●硬件设计●软件设计●调试过程●参考文献●附1:电路原理图●附2:程序清单附录:实验程序源代码如下:(陈寅)#include "reg51.h"#define THC0 0xee //5ms时间常数设置#define TLC0 0x00sbit ADWR=P3^6; /***WR*****/sbit ADRD=P3^7; /***RD*****/sbit ADCS=P2^7; /***CS*****/sbit EOC=P3^3; /***EOC****/sbit ADA=P1^3; //通道选择引脚sbit ADB=P1^4;sbit ADC=P1^5;sbit CS =P1^0; /****************/sbit SID=P1^1; /**液晶引脚定义**/sbit SCLK=P1^2; /****************/sbit MODE=P2^0; /*************************/sbit UP=P2^1; /*四个按键接口,0表示按下*/sbit DOWN=P2^2; /*************************/sbit LED1=P2^3; /**4个LED灯引脚定义**/sbit LED2=P2^4; /********************/sbit LED3=P2^5; /********************/sbit LED4=P2^6; /********************//***************500~1200°C范围的K分度表,间隔10*******************/ unsigned int code K_TABLE[71]={20644,21066,21493,21919,22346,22772,23198,23624,24050,24476,24902,25327,25751,26176,26599,27022,27445,27867,28288,28709,29128,29547,29965,30383,30799,31214,31629,32042,32455,32866,33277,33686,34095,34502,34909,35314,35718,36121,36524,36925,37325,37725,38122,38519,38915,39310,39703,40096,40488,40897,41296,41657,42045,42432,42817,43202,43585,43968,44349,44729,45108,45486,45863,46238,46612,46985,47356,47726,48095,48462,48828}; unsigned char GetAdData[10]={0}; //存放获得AD值的数组变量unsigned char ViewTemperature[4]={"0000"}; //显示温度缓冲数组变量unsigned MODESelect=1;int ChangeTime=2; //通道切换时间,单位Sint TongDao=1;void delay(unsigned int j){unsigned char i;do{for(i=0;i<100;i++);}while(j--);}void send_command(unsigned char command_data) //发送命令{unsigned char i;unsigned char i_data;i_data=0xf8; //操作命令,可以查看资料delay(10);CS=1;SCLK=0;for(i=0;i<8;i++){SID=(bit)(i_data&0x80);SCLK=0;SCLK=1;i_data=i_data<<1;}i_data=command_data;i_data&=0xf0;for(i=0;i<8;i++){SID=(bit)(i_data&0x80);SCLK=0;SCLK=1;i_data=i_data<<1;}i_data=command_data;i_data=i_data&0x0f;i_data<<=4;for(i=0;i<8;i++){SID=(bit)(i_data&0x80);SCLK=0;SCLK=1;i_data=i_data<<1;}CS=0;}void send_data(unsigned char command_data) //发送数据{unsigned char i;unsigned char i_data;i_data=0xfa; //操作命令,可以查看资料delay(10);CS=1;for(i=0;i<8;i++){SID=(bit)(i_data&0x80);SCLK=0;SCLK=1;i_data=i_data<<1;}i_data=command_data;i_data&=0xf0;for(i=0;i<8;i++){SID=(bit)(i_data&0x80);SCLK=0;SCLK=1;i_data=i_data<<1;}i_data=command_data;i_data=i_data&0x0f; //取低四位i_data<<=4; //左移四位,从而变成高四位for(i=0;i<8;i++){SID=(bit)(i_data&0x80);SCLK=0;SCLK=1;i_data=i_data<<1;}CS=0;}void InitLCD() //液晶初始化{send_command(0x30); //功能设置:一次送8位数据,基本指令集send_command(0x06); //点设定:显示字符/光标从左到右移位,DDRAM地址加1send_command(0x0c); //显示设定:开显示,显示光标,当前显示位反白闪动send_command(0x04); //显示设定:开显示,显示光标,当前显示位反白闪动send_command(0x01); //清DDRAMsend_command(0x02); //DDRAM地址归位send_command(0x80); //把显示地址设为0X80,即为第一行的首位}/* x,y为起始座标x(0<=x<=3),y(0<=y<=7),x为行座标,y为列座标;how为要显示汉字的个数;style为显示字符的类型,0表汉字,1表字母;str是要显示汉字的地址*/void Display(unsigned char x,unsigned char y,unsigned char how,bit style,unsigned char *stri) //液晶显示{unsigned char hi=0;if(x==0) send_command(0x80+y);else if(x==1) send_command(0x90+y);else if(x==2) send_command(0x88+y);else if(x==3) send_command(0x98+y);if(style==0){for(hi=0;hi<how;hi++){send_data(*(stri+hi*2));send_data(*(stri+hi*2+1));}}elsefor(hi=0;hi<how;hi++) send_data(*(stri+hi));}float LvBo(void)//复合滤波{unsigned char max,min,i;unsigned int sum=0;float U1;max=GetAdData[0];min=GetAdData[0];for(i=0;i<10;i++){sum=sum+GetAdData[i];if(max<GetAdData[i]) max=GetAdData[i];if(min>GetAdData[i]) min=GetAdData[i];}sum=sum-max-min;U1=(float)sum/8;U1=10.0*((U1*5.0)/255); //换成mvreturn U1;}void search (void)//查表子函数{unsigned int da=0,max,min,mid,j;unsigned int var;da=LvBo()*1000; //u1扩大1000倍da=da+798; //20度max=71;min=0;var=0;while(1){mid=(max+min)/2; //中心元素位置if(K_TABLE[mid]==da) {var=mid*10;break;} //中心元素等于查表元素,计算相应温度else if(K_TABLE[mid]>da) max=mid-1;else min=mid+1;if(max-min==1) /*线性插值计算温度值*/{j=(K_TABLE[max]-K_TABLE[min])/10; /*表中相邻两值对应温度相差10°C*/j=(da-K_TABLE[min])/j;var=10*min+j;break;}if(max==min){if(da>=K_TABLE[min]){j=(K_TABLE[min+1]-K_TABLE[min])/10;j=(da-K_TABLE[min])/j;}else if(da<K_TABLE[min]){j=(K_TABLE[min]-K_TABLE[min-1])/10;j=(da-K_TABLE[min-1])/j;min=min-1;}var=10*min+j;break;}}var=var+500;ViewTemperature[0]=var/1000+0x30;ViewTemperature[1]=var/100%10+0x30;ViewTemperature[2]=var/10%10+0x30;ViewTemperature[3]=var%10+0x30;}void LcdDisplay(void){unsigned char ViewMODESelect,ViewTongDao[5]={"0 "},ViewChangeTime[5]={"00(S)"};ViewMODESelect=MODESelect+0x30;ViewTongDao[0]=TongDao+0x30;if(MODESelect==1||MODESelect==2){if(MODESelect==1) Display(0,3,5,0,":自动切换");else if(MODESelect==2) Display(0,3,5,0,":手动切换");Display(0,0,2,0,"模式"); //液晶显示Display(0,2,1,1,&V iewMODESelect);Display(1,0,5,0,"温度通道:");Display(1,5,5,1,V iewTongDao);Display(2,0,4,0,"温度值:");Display(2,4,4,1,V iewTemperature);Display(2,6,2,1,"℃");}else if(MODESelect==3){ViewChangeTime[0]=ChangeTime/10+0x30;ViewChangeTime[1]=ChangeTime%10+0x30;Display(0,0,2,0,"模式");Display(0,2,1,1,&V iewMODESelect);Display(0,3,5,0,":设置时间");Display(1,0,5,0,"切换时间:");Display(1,5,5,1,V iewChangeTime);Display(2,0,14,1," "); //本行清屏}}void TDSelect(void) //AD通道设置{if(TongDao>=5) TongDao=1;if(TongDao<=0) TongDao=4;if(TongDao==1) {ADC=0;ADB=0;ADA=0;}else if(TongDao==2) {ADC=0;ADB=0;ADA=1;}else if(TongDao==3) {ADC=0;ADB=1;ADA=0;}else if(TongDao==4) {ADC=0;ADB=1;ADA=1;}}main(){unsigned char AdCount=0; //用来存放AD采集次数InitLCD();TMOD=0x11; //定时器0初始化TH0=THC0;TL0=TLC0;TR0=1;ET0=1;EA=1;P2|=0x07; //按键初始为高while(1){ADWR=1; /************/ADCS=0; /************/ADWR=0; /**AD初始化**/ADWR=1; /************/while(!EOC); //等待转换结束ADRD=0;GetAdData[AdCount]=P0; //读取转换结果AdCount++;if(AdCount>=10) //连续采集10次值{AdCount=0;search(); //查表LED1=!LED1;LcdDisplay(); //显示}}}void Timer0() interrupt 1{static unsigned char count=0,UPFlag=1,DOWNFlag=1; //按键标志位static unsigned int TimeCount=0;TH0=THC0;TL0=TLC0;if(MODE==0||UP==0||DOWN==0){count++;if(count>=30) //消抖处理{count=0;if(MODE==0) //按键按下{MODESelect++;if(MODESelect>=4) MODESelect=1;}else if(UP==0){UPFlag=0;if(MODESelect==2){TongDao++;TDSelect();}}else if(DOWN==0){DOWNFlag=0;if(MODESelect==2){TongDao--;TDSelect();}}}}else count=0;if(MODESelect==1){TimeCount++;if(TimeCount>=(ChangeTime*1000/5)){TimeCount=0;TongDao++;TDSelect();}}else if(MODESelect==3){if(UPFlag==0) {UPFlag=1;ChangeTime++;}else if(DOWNFlag==0){DOWNFlag=1;ChangeTime--;if(ChangeTime<=0) ChangeTime=1;}}}。

--基于51单片机的简易函数信号发生器的设计与分析

--基于51单片机的简易函数信号发生器的设计与分析

基于51单片机的简易函数信号发生器的设计与分析郭 辉(阜阳师范学院信息工程学院,安徽阜阳,236037)摘要:函数信号发生器设计与分析是单片机实践中的一重要实验。

本文采用Proteus 对函数信号发生器的原理图进行设计,并通过Keil 软件编程验证该设计的可行性,通过调节按键,该简易函数信号发生器可以正确输出正弦波、锯齿波、梯形波、矩形波,并可以通过按键对相应波形的频率进行调节,最终通过Proteus 制作出该电路的PCB 原理图。

本设计对单片机项目设计与实现具有一定的指导意义。

关键词:信号发生器;AT89C51;Proteus ;Keil ;PCB 中图分类号:TP368.1 文献标识码:BDesign and analysis of a simple function signal generator based on 51 single chip microcomputerGuo Hui(College of Information Engineering,Fuyang Teachers' College,Fuyang Anhui,236037)Abstract :This paper uses the principle of figure Proteus function signal generator is designed,and the feasibility of the design is verified by Keil software programming,by adjusting the key,the simple function signal generator can output sine wave,Ju Chibo,trapezoidal wave,rectangular wave,and can be adjusted through the key corresponding to the frequency of the waveform, eventually produced by Proteus PCB principle diagram of the circuit.Keywords :signal generator;AT89C51;Proteus;Keil;PCB 0 引言Proteus 软件为英国Labcenter electronics 公司开发的EDA 工具软件。

简易逻辑分析仪

简易逻辑分析仪

简易逻辑分析仪本设计采用单片机(89C51)和可编程逻辑器件作为系统的控制核心。

设计采用了模块化的设计思想,包括数字信号发生器、采样保持电路、逻辑信号门限电压比较、信号采集与存储、示波器X-Y通道控制、触发点与时间标志线控制、D/A转换、液晶显示、控制面板等功能模块。

数字信号发生器由单片机读取8个外部开关状态,经循环移位输出。

单片机检测8通道输入,在满足触发条件时,进行一次采样和存储,输入经采样保持器LF398,既可以满足对8路信号的A/D转换为同一时刻的数据,又可以提高输入阻抗。

CPLD一方面控制存储器里的数据输出,经DAC0800转换为模拟电压后作为示波器的Y通道输入;另一方面由CPLD产生8位的循环递增数字信号,经DAC0800转换为模拟电压后,其电压波形为锯齿波,将它作为示波器的X通道输入。

存储器采用双口RAM(IDT7132),这样可较简单的实现单片机与CPLD之间的通信。

整个系统较好的实现了题目的要求,达到了较高的性能指标。

一、设计思路与论证1、数字信号发生器模块方案一:采用74LS199产生8路数字信号。

74LS199是具有串行/并行输入及并行/串行输出的8位移位寄存器。

但此方案控制复杂,且需频率为100Hz的时钟,不易采用。

方案二:采用单片机编程实现序列信号发生器。

通过8路拨段开关来设定要产生的序列信号,单片机读取这8路信号,经过处理,产生循环移位序列,且单片机定时精确。

此方案简单可行。

故我们采用了方案二。

2、 8位输入、触发电路方案一:采用8片模数转换器同时对8路信号进行采集,然后将采集到的数据用单片机与转换成数字量的逻辑门限电压进行比较以决定其逻辑。

但需要的AD芯片较多,不宜采用。

方案二:将8路输入信号先用采样保持器LF398进行保持,以保证A/D转换的8路数据为同一时刻的数据,然后使用8通道A/D转换器ADC0809顺序采集保持在LF398中的数据,并用单片机判断其逻辑。

逻辑门限电压由键盘输入给单片机,实现题目要求的16级门限变化。

智能仪器及应用实验报告基于51单片机的简易电子表设计与仿真

智能仪器及应用实验报告基于51单片机的简易电子表设计与仿真

智能仪器及应用实验报告项目名称:基于51单片机的简易电子表设计与仿真专业名称:测控技术与仪器班级:测控0901学生姓名:刘景坤18 鲁娣声23 张长轩34指导教师:段海龙李宏伟一、任务要求使用Keil uVision编程软件以及ISIS 7 Professional仿真软件制作一个简易电子表,要求具备电子表基本功能(时间显示、时间调整等)。

二、总体设计方案利用AT89C51作为控制以及1602LCD作为显示,通过6个按键实现出入时间设置状态、出入闹铃设置状态、小时位调整、分钟位调整、开关闹铃等功能。

系统的流程图如下:图1-1 系统仿真流程图三、系统硬件1、AT89C51引脚功能说明:AT89C51芯片如图1-2所示图1-2 AT89C51VCC:供电电压。

GND:接地。

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口输出其特殊功能寄存器的内容。

基于51单片机的便携式低频按摩仪的设计与制作

基于51单片机的便携式低频按摩仪的设计与制作

基于51单片机的便携式低频按摩仪的设计与制作
基于51单片机的便携式低频按摩仪的设计与制作,我可以提供一些建议和指导。

首先,你需要确定低频按摩仪的功能和特点。

然后,确定你需要使用的传感器和执行器,比如心电传感器、温度传感器、振动马达等。

这些元件将与51单片机连接,通过编程控制其工作。

接下来,你需要设计按摩仪的电路板。

这里可以考虑使用开发板或者自己设计的电路板,包括51单片机的连接及外围电路的设计。

在编程方面,你可以使用汇编语言或者C语言来编写代码。

根据你的需求,程序可以包括功能选择、按摩模式调节、呈现数据等等功能。

制作时需要按照电路图逐一焊接电路,或者选择购买现成的模块进行组装。

当你完成硬件设计和编程后,可以进行调试和测试。

确保按摩仪的各项功能正常运行,并且符合你的预期。

最后,记得在制作过程中遵守安全规范,确保电路板和组装的部件都得到良好的保护,以防止人员受伤或设备损坏。

需要注意的是,请在制作过程中确保遵守相关的知识产权法律法规,不要侵犯他人的专利、商标和著作权。

如果有需要,你可能需要申请相关的专利或商标。

希望以上的建议能对你的项目有所帮助!。

基于51单片机的简易逻辑分析仪设计说明书

基于51单片机的简易逻辑分析仪设计说明书

word文档整理分享本科生毕业设计报告学院物理与电子工程学院专业电子信息工程设计题目:基于51单片机的简易逻辑分析仪设计学生姓名指导教师(姓名及职称)班级学号完成日期:年月基于51单片机的简易逻辑分析仪设计物理与电子工程学院电子信息工程[摘要]本设计完成了一种能进行数字电路中多路数据测试的简易逻辑分析仪。

它以51单片机控制核心,数模转换器为逻辑信号门限电平控制电路,用按键和 12864LCD作为人机交互界面,采用C51进行模块化编程,实现了四路信号的测试,具有成本低,使用方便等特点。

[关键词]数字电路单片机数模转换器逻辑分析仪1 设计任务与要求本设计的主要任务及参数指标是:数据位数4位,存储深度80字;数据速率最高1kHz;输入阻抗大于50kΩ;逻辑信号门限电平在1.0V~4.0V 范围内按8级任意设定。

2 设计方案本系统采用51单片机为控制核心,系统由单片机系统、逻辑电平控制、按键、LCD显示、系统电源等模块构成。

被测数据输入到逻辑电平控制模块,然后进行单片机进行测试,按键用于控制逻辑信号门限电平的大小,系统电源为各模块供电,各模块的供电电压为5V。

图1 系统框图3 设计原理分析3.1 单片机系统电路设计图2 单片机系统电路单片机系统为逻辑分析仪的核心,负责控制逻辑分析仪的逻辑电平、检测按键并驱动LCD 进行显示。

单片机系统电路如图2所示,由晶体振荡器Y1、电容C3和C4构成振荡器电路,为单片机提供时钟信号。

电容C1、电阻R2和R1、按键KEY1构成单片机复位电路,高电平复位,当按键KEY1按下的时间超过2个机器周期以上时,单片机就执行复位操作。

EA 接高电平,单片机首先访问内部程序存储器。

J1为1KΩ的排阻,作为P0口的外部上拉电阻。

在硬件制作时为了方便单片机的测试和功能的扩展,把所有的I/O 口均通过排针引出。

EA/VP 31X119X218RESET 9RD 17WR 16INT012INT113T014T115P101P112P123P134P145P156P167P178P0039P0138P0237P0336P0435P0534P0633P0732P2021P2122P2223P2324P2425P2526P2627P2728PSEN29ALE/P 30TXD 11RXD 10U18051P10P11P12P13P14P15P16P17P00P01P02P03P04P05P06P07P20P21P22P23P24P25P26P27123456789J11K+5Y112M+5RXD TXDRD WRT0T1INT0INT1C322p FC422p FR28.2KC110u F+512J6CON2KEY1SW2R1100..3.2 人机界面电路设计KEY2KEY3KEY4KEY5P03P04P05P06..图3 按键控制电路按键控制电路如图3所示,用于控制逻辑分析仪的工作状态,如采样率改变、逻辑电平的调整等等,单片机通过检测按键对应的I/O 口是否为低电平来判断按键是否按键,为了防止干扰,应在单片机的按键检测程序中加入延时函数。

简易逻辑分析仪设计方案与制作

简易逻辑分析仪设计方案与制作

个人资料整理仅限学习使用简易逻辑分析仪的设计与制作目录简易逻辑分析仪的设计与制作【摘要】:逻辑分析仪是一种新型的数字测试仪器。

它应用于微机等数字系统的软件、硬件调试,故障检查,性能分析等过程中。

本设计采用AT89C51单片机控制8路逻辑信号电平采集的简易逻辑分析仪设计。

采用AT89C2051控制系统实现一个数字信号发生器可预置8路信号工作, 采集电路以5Kbit每秒的速率同时对8路逻辑信号进行采样。

逻辑信号门限电压通过键盘任意设定,信号采集的触发等级、触发条件、触发位置由键盘设定。

【关键词】:逻辑分析仪;AT89C51;AT89C2051;数字信号发生器[Abstract]:Logic analyzer is a new-style digital testing instrument. It is used in the test of software and hardware of digital system, such as micro-computer, fault-checked, analyzing-performance.This paper introduces the design of the simple logic analyzer which acquisition of 8 routes signal level is controlled through AT89C51 single chip. The control system through AT89C2051 to realizea digital waveform generator scheduled 8 routes signal.5Kbit/s real-time sample rate of the acquisition circuit is faced to the 8 routes logic signal in the meantime. Threshold voltage of logic signal is set arbitrarily by keyboard, triggerrank, trigger condition and trigger location are set by keyboard.[Key words]: logic analyzer;AT89C51。

基于51单片机的电子器件测试仪的设计

基于51单片机的电子器件测试仪的设计

1绪论随着现代科学技术的迅猛发展,电子技术在航空航天、工业、农业、交通运输等国民经济诸多领域中得到了广泛的应用,而电子测量又是电子技术信息检测的重要手段,在现代高科技应用技术中起着非常重要的作用。

伴随着工业生产的发展,对测量提出了更高的要求。

快速、实时、精确、自动的测量已经发展成为现代测量技术的主流。

20世纪是基于大规模集成电路发展的重要时期,它同时也促进了电子测量仪器技术的革命。

由于大规模集成电路的大量应用,使得现代电子测量仪器体积更小、功能更全面、可靠性更高、功耗更低。

1.1 课题背景及意义近年来,计算技术和微电子技术的迅猛发展为电子测量和测量仪器增添了巨大活力。

电子计算机尤其是微型电子计算机与电子测量仪器相结合,构成了一代崭新的仪器和测试系统,即人们通常所说的“智能仪器”和“自动测试系统”,它不仅改变了若干传统测量的概念,更对整个电子技术和其他科学技术产生了巨大的推动作用。

1.1.1电子测量技术的应用在电子系统设计中,电子器件及它们的有机连接构成了具有各种功能的电子电路。

如何顺利地完成从电路图到一个成型并运转正常的电子系统,需要很大的技术。

无论是电路图设计中有任何纰漏或焊接时有任何差错,都有可能导致电子系统最终无法正常工作。

有时费尽心机设计了一个完美无瑕的系统电路,并且费尽力气正确地焊接了所有元器件,一运行时系统还是会出现不工作或者与设计不同的运行效果。

如果排除设计和焊接的失误,出现不正常的原因恐怕就是某个或多个电子元器件本身存在质量问题,致使系统中某些模块状态异常。

到时除了后悔当时没有仔细检查器件质量就盲目焊接,恐怕也没什么可抱怨的。

各种各样的器件如电阻、电容、集成电路等都是由工厂生产的,虽然工厂努力把器件的出厂合格率做到100%,但是其中具有一些瑕疵还是不可避免的,这有可能是出厂检测的疏漏,也有可能是在运输、储存器件时因内、外部环境改变而使器件的质量发生变化。

总之,我们从任何地方采购的器件谁也不能保证它们是100%合格的。

基于单片机的简易逻辑分析仪设计

基于单片机的简易逻辑分析仪设计

基于单片机的简易逻辑分析仪设计前言信息时代是数字化的时代,数字技术的高速发展,出现了以高性能计算机为核心的数字通信、数字测量的数字系统。

在研究这些数字系统产品的应用性能的同时也必须研究在设计、生产和维修他们的过程中,如何验证数字电路设计的合理性、如何协调硬件及其驱动应用软件的工作、如何测量其技术指标以及如何评价其性能。

逻辑分析仪的出现,为解决这些问题提供了可能。

随着数字系统复杂程序的增加,尤其是微处理器的高速发展,用示波器测试己显得有些无能为力。

1973年在美国应运而生的逻辑分析仪(Logic Analyzer),能满足数字域测试的各种要求。

它属于总线分析仪一类的数据域测试仪器主要用于查找总线(或多线)相关故障.同时对于数据有很强的选择能力和跟踪能力,因此,逻辑分析汉在数字系统的测试中获得了广泛的应用。

逻辑分析仪(Logic Analyzer)是以逻辑信号为分析对象的测量仪器。

是一种数据域仪器,其作用相当于时域测量中的示波器。

正如在模拟电路错误分析中需要示波器一样,在数字电路故障分析中也需要一种仪器,它适应了数字化技术的要求,是数字、逻辑电路、仪器、设备的设计、分析及故障诊断工作中不可按少的工具。

在测试数字电路、研制和维修电子计算机、微处理器以及各种集成化数字仪表和装置中具有广泛的用途;还是数字系统设计、侦错、软件开发和仿真的必备仪器;作为硬件设计中必不可少的检测工具,还可将其引入实验教学中,建立直观感性的印象,提升学生的硬件设计能力,可以全面提高教学质量;随着科技的发展,LA在多通道、大存储量、高采样速率、多触发功能方面得到更快的发展,在航天、军事、通信等数字系统领域得到越来越广泛的应用。

我们从上面可以看出逻辑分析仪在各个领域的广泛应用。

那么我们在学习、应用的同时设计并制作一个简易的逻辑分析仪就显的意义重大了,这样这个过程既可以让我们更加深入理解其原理,又可以提高动手设计并制作整个系统电路的能力,还可以将其作为简易仪器应用于以后的实验中。

简易逻辑分析仪设计

简易逻辑分析仪设计

简易逻辑分析仪设计
朱震华;储婉琴
【期刊名称】《信息与电脑:理论版》
【年(卷),期】2000()5
【摘要】介绍了采用 MCS— 51单片机设计的简易逻辑分析仪的功能、系统组成和软硬件电路的设计方法。

【总页数】3页(P31-32)
【作者】朱震华;储婉琴
【作者单位】南京邮电学院电子工程系
【正文语种】中文
【中图分类】TN790.7;TM93
【相关文献】
1.基于Proteus简易逻辑分析仪设计与实现
2.基于FPGA的简易逻辑分析仪设计
3.一种基于FPGA的简易逻辑分析仪的设计和实现
4.基于STM32的简易逻辑分析仪的设计
5.基于嵌入式系统的简易逻辑分析仪设计
因版权原因,仅展示原文概要,查看原文内容请购买。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

本科生毕业设计报告学院物理与电子工程学院专业电子信息工程设计题目:基于51单片机的简易逻辑分析仪设计学生姓名指导教师(姓名及职称)班级学号完成日期:年月基于51单片机的简易逻辑分析仪设计物理与电子工程学院电子信息工程[摘要]本设计完成了一种能进行数字电路中多路数据测试的简易逻辑分析仪。

它以51单片机控制核心,数模转换器为逻辑信号门限电平控制电路,用按键和 12864LCD作为人机交互界面,采用C51进行模块化编程,实现了四路信号的测试,具有成本低,使用方便等特点。

[关键词]数字电路单片机数模转换器逻辑分析仪1 设计任务与要求本设计的主要任务及参数指标是:数据位数4位,存储深度80字;数据速率最高1kHz;输入阻抗大于50kΩ;逻辑信号门限电平在1.0V~4.0V 范围内按8级任意设定。

2 设计方案本系统采用51单片机为控制核心,系统由单片机系统、逻辑电平控制、按键、LCD显示、系统电源等模块构成。

被测数据输入到逻辑电平控制模块,然后进行单片机进行测试,按键用于控制逻辑信号门限电平的大小,系统电源为各模块供电,各模块的供电电压为5V。

图1 系统框图3 设计原理分析3.1 单片机系统电路设计图2 单片机系统电路单片机系统为逻辑分析仪的核心,负责控制逻辑分析仪的逻辑电平、检测按键并驱动LCD 进行显示。

单片机系统电路如图2所示,由晶体振荡器Y1、电容C3和C4构成振荡器电路,为单片机提供时钟信号。

电容C1、电阻R2和R1、按键KEY1构成单片机复位电路,高电平复位,当按键KEY1按下的时间超过2个机器周期以上时,单片机就执行复位操作。

EA 接高电平,单片机首先访问内部程序存储器。

J1为1KΩ的排阻,作为P0口的外部上拉电阻。

在硬件制作时为了方便单片机的测试和功能的扩展,把所有的I/O 口均通过排针引出。

EA/VP 31X119X218RESET 9RD 17WR 16INT012INT113T014T115P101P112P123P134P145P156P167P178P0039P0138P0237P0336P0435P0534P0633P0732P2021P2122P2223P2324P2425P2526P2627P2728PSEN29ALE/P 30TXD 11RXD 10U1P10P11P12P13P14P15P16P17P00P01P02P03P04P05P06P07P20P21P22P23P24P25P26P27123456789J11KY112M+5RXD TXDRD WRT0T1INT0INT1C322p FC422p FR28.2KC110u F+512J6CON2KEY1SW2R1100..3.2 人机界面电路设计..图3 按键控制电路按键控制电路如图3所示,用于控制逻辑分析仪的工作状态,如采样率改变、逻辑电平的调整等等,单片机通过检测按键对应的I/O 口是否为低电平来判断按键是否按键,为了防止干扰,应在单片机的按键检测程序中加入延时函数。

..图4 LCD 显示接口电路LCD 显示接口电路如图4所示,此模块用来显示需要显示的数据,电位器R3用于调节液晶的对比度。

LCD 采用采用字符式FM12864M-12L 型LCD ,为节约I/O 口,以串行方式与单片机连接。

..图5 蜂鸣器驱动电路蜂鸣器驱动电路如图5所示,选用三极管Q1为PNP型三极管,三极管基极电阻R11为1kΩ,因为单片机的灌电流能力强于拉电流能力,因此采用PNP型三极管,蜂鸣器采用5V有源蜂鸣器。

三极管连接到单片机的P17口,当P17输出为低电平时,蜂鸣器响。

3.3 逻辑电平控制电路设计逻辑分析仪主要作用在于时序判定,通常只显示两个电压(逻辑1和0),因此设定了参考电压后,逻辑分析仪将被测信号通过比较器进行判定,高于参考电压者为高电平,低于参考电压者为低电平,在高电平与低电平之间形成数字波形。

逻辑电平控制电路用于控制输入信号的门限电平,输入信号经过逻辑电平控制电路以后再连接到单片机的I/O口,主要有电压比较器和数模转换器构成,电路如图6所示。

逻辑分析仪被测信号路数为4路,采用4个电压比较器和一片数模转换器实现逻辑电平控制,电压比较器采用LM393,因为采用OC输出,所以输出端均连接上了5.1kΩ的上拉电阻。

4路输入信号的门限电平由数模转换器控制,为了使4路输入信号的门限电平一致,四片电压比较器的反向输入端接在一起,并连接到数模转换器的输出端。

数模转换器U2换用TLC5615来实现,TCL5615为十位串行数模转换器,控制方便,并节约单片机的I/O口,数模转换器的参考电压由U2的6脚输入,稳定的参考电压为2.5V,由TL431产生。

..图6 逻辑电平控制电路3.4 供电电源电路设计J15.图7 供电电源电路系统采用5V 供电,供电电源电路由LM7805完成,电路如图7所示。

J11为供电电源电路的输入端,D3为了防止反接,C6、C7为输入滤波电容,C8、C9为输出滤波电容,D5为电源指示灯,R8为电源指示灯的限流电阻。

4 系统软件设计图8 设计流程图设计流程图如图8所示,电路焊接完成先进行硬件的调试,然后进行程序的编译和软硬联合调试。

硬件调试先不放置芯片,通过万用表验证PCB与原理图的一致性,如果发现有不一致的地方,查找原因,直到解决问题为止。

然后进行加电测试,分别测试主要关键点的电压是否和原理一致,单独验证每个模块电路的正确性。

硬件验证通过后进行程序的编辑与调试,直到最终设计作品工作为止。

4.1 设计过程所用仪器1、DF1731SC2A直流稳压电源2、UT805A万用表3、PC机4.2 软件设计工具和平台采用Keil uVision4集成开发环境作为软件开发平台,用C语言对单片机编程实现系统各功能,并进行整体软件系统调试。

采用RS232串口为单片机进行程序下载,由于电脑没有RS232串口,因此使用CH341T完成USB转RS232,RS232连接到单片机串口完成程序的下载。

4.3 软件设计思想系统采用分模块编程的思想,然后通过标志位来实现各个模块之间的协调运行。

此逻辑分析仪的模块程序主要有数据采集模块、逻辑电平控制模块、按键检测模块、采样率控制模块、LCD显示驱动程序等。

4.4 软件设计流程图图9 程序流程图5 设计的结果图10 逻辑分析仪PCB布线图原理图的绘制和PCB的设计使用Protel 99se来完成,PCB板的制作采用快速热转印技术来完成。

在原理图的绘制及PCB的设计过程中特别注意规范性,特别是PCB布线的一些规则,注意PCB走线、线距、线宽、空间布局等,合理选取接口,如图10所示为逻辑分析仪PCB布线图。

图11 多路数据逻辑分析图图12 逻辑电平设定测试图由于此逻辑分析仪为四通道,测试过程中,分别为每个通道加入被测逻辑电平,分别验证,然后四个通道同时验证,并测试逻辑电平设定等。

测试结果表明,符合设计要求。

6 总结采用51单片机为控制核心,数模转换器加电压比较器构成逻辑电平控制电路,LCD组成显示界面等,可以有效的构成简易逻辑分析仪的硬件系统,使用EDA开发工具可以缩短建议逻辑分析仪设计的时间,使用模块化编程的思想有利于程序的调试和可读。

通过对简易逻辑分析仪的设计,可以加深对系统设计思想的认知,初步具备电子设计的能力。

[参考文献][1] 庞利会,邓先荣,王军锋等.逻辑分析仪的设计与实现[J].电力自动化设备,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] 左现刚,余周,侯志松等.基于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在单片机开放性实验中的应用[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] 陈旦花.单片机最小系统的设计与应用[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 chipWang ShuShool of physics and electronic engineering 1230S007[Abstract]In 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 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.[Keywords]Digital circuit SCM Microcontroller DAC Logic Analyzer附一:源程序#include <reg52.h>#include "lcd.h"#include "tlc5615.h"#include "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 Display1[8]={"门限电平"};code uchar Display2[10]={"输出电压为"};sbit KEY1 = P0^3;sbit KEY2 = P0^4;sbit KEY3 = P0^5;sbit KEY4 = P0^6;sbit P13=P1^3;sbit P14=P1^4;sbit P15=P1^5;sbit P16=P1^6;unsigned int uiVoltage_ADC,uiVoltage_DAC; //uiV oltage:LCD显示用,无小数点float fV oltage_DAC; //定义实际需要输出的电压xdata unsigned char iCount=0; // 采样个数设置,这里设置为16次xdata unsigned char result_Port1[4][16]={0};xdata char port1_Flag=0;xdata char key12Flag=0;xdata char TR0Flag=0;xdata unsigned char key1=0; //控制显示屏上的列标记xdata unsigned char port_1[4]={1,2,3,4};char flay_a = 1;unsigned int Sample_V oltage(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_Display_V oltage(); //当DA的电压设定发生改变时调用该函数void control_TR0_By_KEY3(); //通过按键KEY3控制采样的结束void display_Sample_Result(); //显示16次采样的结果函数void Sys_key();/******************************************************************************** 函数名:主函数功能说明:调用函数:入口参数:出口参数:说明:********************************************************************************/void main(){LCD_init(); //初始化LCDLCD_Clear(); //LCD清屏// T0_init();port1_Flag=0;key12Flag=0;//禁止按键key1和key2工作TR0Flag=0;// 禁止Time0工作TR0=1; //开启Time0工作fV oltage_DAC = 2.5;// put_and_Display_V oltage();// Delay_1ms(20);DAC_TLC5615_V oltage(fV oltage_DAC);while(1){if(flay_a==0){port_1[0]=(char)P13;port_1[1]=(char)P15;port_1[2]=(char)P14;port_1[3]=(char)P16;displayPort1_in_LCD_by_Flush(&port_1,key1%8);key1++;key1=key1%128;// Delay_1ms(500);// flay_a=1;// Sys_key();if(KEY1==0) //增加DAC电压,{Delay_1ms(10);if(KEY1==0){while(!KEY1);fVoltage_DAC=fV oltage_DAC+0.5;if(fVoltage_DAC>4.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=fV oltage_DAC-0.5;if(fVoltage_DAC<1.0){fVoltage_DAC = 4.0;}flay_a=1;// IE=0x00;// key12Flag=1;}}}if(flay_a==1){put_and_Display_V oltage();flay_a=0;}}}/******************************************************************************** 函数名:Display_V oltage功能说明:显示电压,整数调用函数:LCD_Pos Send_Data Write_LCD入口参数:V oltage(带显示电压*1000倍以后的值)x,y(从LCD的坐标x,y处开始显示)出口参数:无说明:显示范围为0-9999 列:当V oltage=1234时,显示1.234V********************************************************************************/void Display_Voltage(unsigned int V oltage,char x,char y){code uchar Display_Dot[1]={"."};code uchar Display_Unit[1]={"V"};LCD_Pos(x,y);Write_LCD(V oltage/1000+0x30,1);Send_Data(Display_Dot,1); //显示小数点Write_LCD(V oltage%1000/100+0x30,1);Write_LCD(V oltage%100/10+0x30,1);Write_LCD(V oltage%10+0x30,1);Send_Data(Display_Unit,1); //显示单位}/******************************************************************************** 函数名:Sample_V oltage功能说明:带有滤波功能的电压测量调用函数:ADC_TLC1549入口参数:无出口参数:V otlage(测量滤波后的电压)说明:********************************************************************************/unsigned int Sample_V oltage(void){double Filt_Tab[3]={0};char Flag_Filt_Tab = 0;unsigned int Tab_V ol[30] ={0},k=0,V otlage = 0;double Sum = 0;char i=0,j=0;///////////////////////平均值滤波////////////for(i=0;i<30;i++){Tab_V ol[i]= ADC_TLC1549();}for(j=0;j<30;j++)for(i=0;i<30-j;i++)if(Tab_V ol[i]>Tab_V ol[i+1]){k=Tab_V ol[i];Tab_V ol[i]=Tab_V ol[i+1];Tab_V ol[i+1]=k;}for(i=0;i<10;i++){Sum +=Tab_V ol[i+10]; //取中间二十组数据}Sum = Sum/10; //平均滤波后的值Votlage =(unsigned)(Sum/1024.0*3770); //扩大1000 //需要一阶滞后滤波时把Sum 修改成Filt_Tab[2]并取消屏蔽return V otlage;}/******************************************************************************** 函数名:Delay_1ms功能说明:毫秒级延时函数调用函数:入口参数:x:延时x毫秒出口参数:说明:********************************************************************************/void Delay_1ms(int x){int i,j;for(i=0;i<x;i++)for(j=0;j<120;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);}//一次显示四个电平值,显示在一列。

相关文档
最新文档