虫虫首页| 资源下载| 资源专辑| 精品软件
登录| 注册

逻辑函数

  • 单片机汇编语言编程规范

    软件设计更多地是一种工程,而不是一种个人艺术。如果不统一编程规范,最终写出的程序,其可读性将较差,这不仅给代码的理解带来障碍,增加维护阶段的工作量,同时不规范的代码隐含错误的可能性也比较大。分析表明,编码阶段产生的错误当中,语法错误大概占20%左右,而由于未严格检查软件逻辑导致的错误、函数(模块)之间接口错误及由于代码可理解度低导致优化维护阶段对代码的错误修改引起的错误则占了一半以上。可见,提高软件质量必须降低编码阶段的错误率。如何有效降低编码阶段的错误呢?这需要制定详细的软件编程规范,并培训每一位程序员,最终的结果可以把编码阶段的错误降至10%左右,同时也降低了程序的测试费用,效果相当显著。

    标签: 单片机 汇编语言 编程规范

    上传时间: 2013-10-16

    上传用户:妄想演绎师

  • 基于单片机和CPLD的任意波形发生器的设计

    在超声技术日益发展的今天,一个高质量的超声信号源成为各种超声产品的主动力。传统模拟超声信号源的智能化控制尚不完善,只能直接产生适当频率的电信号,用以驱动特定的超声波换能器。这对于信号源的合理利用是一个较大的弊端。本文介绍了一种采用单片机与复杂可编程逻辑器件(CPLD)相结合的方法设计的新型任意波形发生器(AWG)。其中波形合成采用了直接数字合成(DDS)技术。本系统能输出频率和幅度可调的多种标准函数波以及任意波形。信号频率范围覆盖超低频和高频,同时极大地提高了频率的分辨率和准确度,因此可以用它代替常用的模拟超声信号源。本系统采用单片机(AT89S52)对整机的输入、输出过程和波形数据采集进行控制。高速的CPLD(EPM7128S)将波形数据从存储器(AT28C256)中读出并送给波形生成DAC(AD7524)进行转换,形成所要的波形。并通过改变幅度控制DAC(DAC0832)的输入值来调节输出波形的峰值。用户通过面板上的矩阵键盘和1602液晶模块进行人机交互。串行E2PROM(AT24C02)实现了波形数据掉电保存功能。任意波形数据既可由输入的模拟信号经A/D转换后获得,也可采用具备RS-232接口的手写板直接输入。

    标签: CPLD 单片机 任意波形发生器

    上传时间: 2013-11-25

    上传用户:wvbxj

  • 基于LabVIEW的血铅分析仪开发

    介绍应用虚拟仪器技术开发的血铅检测分析系统,该系统不仅造价低,且性能大大优于传统血铅分析仪。随着计算机技术的飞速发展,测试技术的精确度和灵活性都大为提高,并向着数字化和智能化发展。近年来,强大的面向对象的程序开发工具的出现,使编写大规模程序更加简洁和容易,也为虚拟仪器的出现提供了前提。虚拟仪器是当前测控领域的热点,已广泛应用于航天、通信、生物工程、电子、机械等领域。采用虚拟仪器技术构建的测试仪器开发效率高,可维护性强;测试精度、稳定性和可靠性都能够得到充分保证;具有很高的性价比,节省投资,便于设备更新和功能的转换与扩充。虚拟仪器用图形化编程软件LabVIEW进行开发。LabVIEW是一个通用的编程系统,它不但具有一般的数学运算、逻辑运算和输入输出功能,还带有专门的用于数据采集和仪器控制的库函数和开发工具,以及专业的数学分析程序包,可以满足复杂的工程计算和分析需要。在LabVIEW虚拟平台上进行仪器开发不但可行而且简单方便。本文将介绍在LabVIEW虚拟平台上开发的一套血铅分析仪。铅是人体惟一不需要的微量元素,它几乎对人体所有的器官都能构成损害。即使人体内有0.01μg的铅存在,也会对健康造成损害。而且,人们即便脱离了铅污染环境或经治疗使血铅水平明显下降,受损的器官和组织也不能修复。医生特别指出,并不是一定有什么临床症状才表明已有铅中毒发生。所以,铅对人体的危害十分严重并且不容易被察觉,检查人体铅的含量在临床上有着相当重要的意义。因此,血铅分析仪的开发有着深远的现实意义和工程意义。

    标签: LabVIEW 分析仪

    上传时间: 2013-10-26

    上传用户:6546544

  • 基于单片机的超低频任意函数信号发生器

    摘要:超低频信号发生器是科研、教学、制造业中一种最常用的通用仪器,输出波形一般固定为正弦波、三角波、锯齿波和方波,不能实现有时在实验和工程应用中需要的特殊信号或自定义信号。而要实现这一要求,不是做成硬件式的专用信号发生器,就是用计算机系统来完成,前者仍然不灵活,后者费用太高。然而应用单片机技术,通过软件与硬件的有机结合由硬件电路搭成一个环境平台,再由软件程序把要求的“任意函数信号”数据表嵌入在单片机程序存储器内,通过软件程序更改输出波形数据表,即可方便实现输出任意函数信号,而无需变动硬件电路。本原理样机使用单片机AT89C51,对其进行一次固化,可以安排四种任意波形,频率范围为0.001~800Hz,幅值范围为0~±10V。本文中对原理样机的软硬件系统的性能和误差进行了定量分析,并设计了一套使用Intel公司的新一代16位单片机80296SA对该样机进行了性能提升的新型样机方案,然后对新型样机方案进行了原理分析和性能分析,并给出了误差的定量计算,表明此方案不但可使样机的原理频率范围提高至1500Hz,输出幅值不变,输出分辨率提高至212,使波形质量大为改善。希望这种性价比较高的函数信号发生器对科研、教学、制造业有所帮助。关键词:单片机应用 MCS51 MCS296 超低频信号发生器

    标签: 单片机 函数信号发生器 超低频

    上传时间: 2013-11-20

    上传用户:7891

  • 在单片机上用模糊逻辑检测室性早搏

    摘要:在基于单片机8051的心电监护模块中,用模糊逻辑检测室性早搏,使心电监护模块功能得到扩展。关键词:心电监护  模糊逻辑  数字单片机

    标签: 单片机 模糊逻辑 检测

    上传时间: 2013-10-09

    上传用户:sclyutian

  • 手把手教你学单片机的C语言程序设计--中断服务函数

    手把手教你学单片机的C语言程序设计--中断服务函数

    标签: 手把手 单片机 C语言 中断服务

    上传时间: 2013-10-17

    上传用户:gundan

  • LSI逻辑公司的低成本语音处理器

    LSI逻辑公司的低成本语音处理器 目前,对适合家庭和小办公室应用的Voice over IP (VoIP)的解决方案的需求在不断增长。市场需求的是非常低成本的两到四路语音话路。LSI逻辑公司的解决方案能够以非常低的成本却非常有效地处理高达四路的语音话路,并且可在电话适配器、宽带调制解调器以及路由器、网关中得到广泛应用。这些产品的基本组成部分包括语音处理子系统、主处理器、网络接口和用户线路接口(SLIC)设备。

    标签: LSI 逻辑 语音处理器

    上传时间: 2013-10-14

    上传用户:acwme

  • Nios 的用户定义接口逻辑实例

    Nios 的用户定义接口逻辑实例 有许多人问我使用 Nios 的用户定义接口逻辑怎么用,想了几天决定设计一个实例来说明。该例为一个使用 user to interface logic 设计的 PWM 实例,其中包括三个文件:    plus32.v 是一个为 32bit nios 设计的 pwm 实例。    plus16.v 是一个为 16bit nios 设计的 pwm 实例。    test.s   是一个使用中断调用 pwm 的汇编语言测试程序。以上模块和程序均调试通过,并可稳定工作。这里让大家参考是使大家通过该例来真正理解 user to interface logic 设计方法,和nios 中通过汇编调用中断的方法,所以超值喔。另外热烈欢迎大家的指导。 注:在设计 Nios 时,将你调用的 user to interface logic 插件重命名为 plus_0,这样我的 test.s 可不作任何改动,你就可用示波器通过 nios 的 plus 管脚观察到一个要求的输出。

    标签: Nios 用户 定义 接口

    上传时间: 2013-11-15

    上传用户:cc1915

  • MSP430系列单片机C语言程序设计与开发

    MSP430系列单片机C语言程序设计与开发MSP430系列是一个具有明显技术特色的单片机品种。关于它的硬件特性及汇编语言程序设计已在《MSP430系列超低功耗16位单片机的原理与应用》及《MSP430系列 FLASH型超低功耗16位单片机》等书中作了全面介绍。《MSP430系列单片机C语言程序设计与开发》介绍IAR公司为MSP430系列单片机配备的C程序设计语言C430。书中叙述了C语言的基本概念、C430的扩展特性及C库函数;对C430的集成开发环境的使用及出错信息作了详尽的说明;并以MSP430F149为例,对各种应用问题及外围模块操作提供了典型的C程序例程,供读者在今后的C430程序设计中参考。   《MSP430系列单片机C语言程序设计与开发》可以作为高等院校计算机、自动化及电子技术类专业的教学参考书,也可作为工程技术人员设计开发时的技术资料。MSP430系列超低功耗16位单片机的原理与应用目录MSP430系列单片机C语言程序设计与开发 目录  第1章 C语言基本知识1.1 标识符与关键字11.1.1 标识符11.1.2 关键字11.2 数据基本类型21.2.1 整型数据21.2.2 实型数据31.2.3 字符型数据41.2.4 各种数据转换关系61.3 C语言的运算符71.3.1 算术运算符71.3.2 关系运算符和逻辑运算符71.3.3 赋值运算符81.3.4 逗号运算符81.3.5 ? 与 :运算符81.3.6 强制转换运算符91.3.7 各种运算符优先级列表91.4 程序设计的三种基本结构101.4.1 语句的概念101.4.2 顺序结构111.4.3 选择结构121.4.4 循环结构141.5 函数181.5.1 函数定义181.5.2 局部变量与全局变量191.5.3 形式参数与实际参数201.5.4 函数调用方式201.5.5 函数嵌套调用211.5.6 变量的存储类别221.5.7 内部函数和外部函数231.6 数组231.6.1 一维数组241.6.2 多维数组241.6.3 字符数组261.7 指针271.7.1 指针与地址的概念271.7.2 指针变量的定义281.7.3 指针变量的引用281.7.4 数组的指针281.7.5 函数的指针301.7.6 指针数组311.8 结构和联合321.8.1 结构定义321.8.2 结构类型变量的定义331.8.3 结构类型变量的初始化341.8.4 结构类型变量的引用341.8.5 联合341.9 枚举361.9.1 枚举的定义361.9.2 枚举元素的值371.9. 3 枚举变量的使用371.10 类型定义381.10.1 类型定义的形式381.10.2 类型定义的使用381.11 位运算391.11.1 位运算符391.11.2 位域401.12 预处理功能411.12.1 简单宏定义和带参数宏定义411.12.2 文件包含431.12.3 条件编译命令44第2章 C430--MSP430系列的C语言2.1 MSP430系列的C语言452.1.1 C430概述452.1.2 C430程序设计工作流程462.1.3 开始462.1.4 C430程序生成472.2 C430的数据表达482.2.1 数据类型482.2.2 编码效率502.3 C430的配置512.3.1 引言512.3. 2 存储器分配522.3.3 堆栈体积522.3.4 输入输出522.3.5 寄存器的访问542.3.6 堆体积542.3.7 初始化54第3章 C430的开发调试环境3.1 引言563.1.1 Workbench特性563.1.2 Workbench的内嵌编辑器特性563.1.3 C编译器特性573.1. 4 汇编器特性573.1.5 连接器特性583.1.6 库管理器特性583.1.7 C?SPY调试器特性593.2 Workbench概述593.2.1 项目管理模式593.2.2 选项设置603.2.3 建立项目603.2.4 测试代码613.2.5 样本应用程序613.3 Workbench的操作623.3.1 开始633.3.2 编译项目683.3.3 连接项目693.3.4 调试项目713.3.5 使用Make命令733.4 Workbench的功能汇总753.4.1 Workbench的窗口753.4.2 Workbench的菜单功能813.5 Workbench的内嵌编辑器993.5.1 内嵌编辑器操作993.5.2 编辑键说明993.6 C?SPY概述1013.6.1 C?SPY的C语言级和汇编语言级调试1013.6.2 程序的执行1023.7 C?SPY的操作1033.7.1 程序生成1033.7.2 编译与连接1033.7.3 C?SPY运行1033.7.4 C语言级调试1043.7.5 汇编级调试1113.8 C?SPY的功能汇总1133.8.1 C?SPY的窗口1133.8.2 C?SPY的菜单命令功能1203.9 C?SPY的表达式与宏1323.9.1 汇编语言表达式1323.9.2 C语言表达式1333.9.3 C?SPY宏1353.9.4 C?SPY的设置宏1373.9.5 C?SPY的系统宏137 第4章 C430程序设计实例4.1 程序设计与调试环境1434.1.1 程序设计调试集成环境1434.1.2 设备连接1444.1.3 ProF149实验系统1444.2 数值计算1454.2.1 C语言表达式1454.2.2 利用MPY实现运算1464.3 循环结构1474.4 选择结构1484.5 SFR访问1494.6 RAM访问1504.7 FLASH访问1514.8 WDT操作1534.8. 1 WDT使程序自动复位1534.8.2 程序对WATCHDOG计数溢出的控制1544.8.3 WDT的定时器功能1554.9 Timer操作1554.9.1 用Timer产生时钟信号1554.9.2 用Timer检测脉冲宽度1564.10 UART操作1574.10.1 点对点通信1574.10.2 点对多点通信1604.11 SPI操作1634.12 比较器操作1654.13 ADC12操作1674.13.1 单通道单次转换1674.13.2 序列通道多次转换1684.14 时钟模块操作1704.15 中断服务程序1714.16 省电工作模式1754.17 调用汇编语言子程序1764.17.1 程序举例1764.17.2 生成C程序调用的汇编子程序177第5章 C430的扩展特性5.1 C430的语言扩展概述1785.1.1 扩展关键字1785.1.2 #pragma编译命令1785.1.3 预定义符号1795.1.4 本征函数1795.1.5 其他扩展特性1795.2 C430的关键字扩展1795.2.1 interrupt1805.2.2 monitor1805.2.3 no_init1815.2.4 sfrb1815.2.5 sfrw1825.3 C430的 #pragma编译命令1825.3.1 bitfields=default1825.3.2 bitfields=reversed1825.3.3 codeseg1835.3.4 function=default1835.3.5 function=interrupt1845.3.6 function=monitor1845.3.7 language=default1845.3.8 language=extended1845.3.9 memory=constseg1855.3.10 memory=dataseg1855.3.11 memory=default1855.3.12 memory=no_init1865.3.13 warnings=default1865.3.14 warnings=off1865.3.15 warnings=on1865.4 C430的预定义符号1865.4.1 DATE1875.4.2 FILE1875.4.3 IAR_SYSTEMS_ICC1875.4.4 LINE1875.4.5 STDC1875.4.6 TID1875.4.7 TIME1885.4.8 VER1885.5 C430的本征函数1885.5.1 _args$1885.5.2 _argt$1895.5.3 _BIC_SR1895.5.4 _BIS_SR1905.5.5 _DINT1905.5.6 _EINT1905.5.7 _NOP1905.5.8 _OPC1905.6 C430的汇编语言接口1915.6.1 创建汇编子程序框架1915.6.2 调用规则1915.6.3 C程序调用汇编子程序1935.7 C430的段定义1935.7.1 存储器分布与段定义1945.7.2 CCSTR段1945.7.3 CDATA0段1945.7.4 CODE段1955.7.5 CONST1955.7.6 CSTACK1955.7.7 CSTR1955.7.8 ECSTR1955.7.9 IDATA01965.7.10 INTVEC1965.7.11 NO_INIT1965.7.12 UDATA0196第6章 C430的库函数6.1 引言1976.1.1 库模块文件1976.1.2 头文件1976.1.3 库定义汇总1976.2C 库函数参考2046.2.1 C库函数的说明格式2046.2.2 C库函数说明204第7章 C430编译器的诊断消息7.1 编译诊断消息的类型2307.2 编译出错消息2317.3 编译警告消息243附录 AMSP430系列FLASH型芯片资料248附录 BProF149实验系统251附录 CMSP430x14x.H文件253附录 DIAR MSP430 C语言产品介绍275

    标签: MSP 430 C语言 单片机

    上传时间: 2014-05-05

    上传用户:253189838

  • 如何使用高级触发测量程序跑飞

    如何使用高级触发测量程序跑飞:LA系列逻辑分析仪内部集成了32位的定时器、32位的计数器和高速比较模块,高效的使用以上模块资源可以使您的测量事半功倍。逻辑分析仪在实际应用中主要作用有:1.观察波形,看看测量波形中是否存在毛刺、干扰、频率是否正确等;2.时序测量,对被测信号进行时序校对,看看操作时序是否符合要求。3.辅助分析,利用逻辑分析仪完善的协议分析功能来进行辅助分析;4.查错功能,利用逻辑分析仪强大的触发功能来进行错误捕获。当单片机的PC值(程序计数器)对没有程序的地方进行取指时,称为程序跑飞。程序跑飞的原因有多种,主要有以下原因:1) 客观原因:单片机受到外界强干扰造成PC值寄存器改变;2)程序Bug:用户程序调用函数指针,对非程序空间进行对用。以80C51单片机为例子,当程序跑到非用户程序区时,单片机使用PSEN对外部程序进行取指,使用逻辑分析仪可以设置触发条件,当使用PSEN对外部程序进行取指时进行记录,把出错情况前后的状态记录下来进行分析,查找出错原因。如80C51的取指范围正确为0x0000~0x3fff,则当对0x3fff以上地址进行取指时为程序跑飞。分析80C51对外部程序取指的时序,如图1所示。

    标签: 如何使用 触发 测量程序

    上传时间: 2013-10-11

    上传用户:panpanpan