介绍用PIC16F84单片机制作的电子密码锁。PIC16F84单片机共18个引脚,13个可用I/O接口。芯片内有1K×14的FLASHROM程序存储器,36×8的静态RAM的通用寄存器,64×8的EEPROM的数据存储器,8级深度的硬堆栈。 用PIC单片机设计的电子密码锁微芯公司生产的PIC8位COMS单片机,采用类RISC指令集和哈弗总线结构,以及先进的流水线时序,与传统51单片机相比其在速度和性能方面更具优越性和先进性。PIC单片机的另一个优点是片上硬件资源丰富,集成常见的EPROM、DAC、PWM以及看门狗电路。这使得硬件电路的设计更加简单,节约设计成本,提高整机性能。因此PIC单片机已成为产品开发,尤其是产品设计和研制阶段的首选控制器。本文介绍用PIC16F84单片机制作的电子密码锁。PIC16F84单片机共18个引脚,13个可用I/O接口。芯片内有1K×14的FLASHROM程序存储器,36×8的静态RAM的通用寄存器,64×8的EEPROM的数据存储器,8级深度的硬堆栈。硬件设计 电路原理见图1。Xx8位数据线接4x4键盘矩阵电路,面板布局见表1,A、B、C、D为备用功能键。RA0、RA7输出4组编码二进制数据,经74LS139译码后输出逐行扫描信号,送RB4-RB7列信号输入端。余下半个139译码器动扬声器。RB2接中功率三极管基极,驱动继电器动作。有效密码长度为4位,根据实际情况,可通过修改源程序增加密码位数。产品初始密码为3345,这是一随机数,无特殊意义,目的是为防止被套解。用户可按*号键修改密码,按#号键结束。输入密码并按#号确认之后,脚输出RB2脚输出高电平,继电器闭合,执行一次开锁动作。 若用户输入的密码正确,扬声器发出一声稍长的“滴”提示声,若输入的密码与上次修改的不符,则发出短促的“滴”声。连续3次输入密码错误之后,程序锁死,扬声器报警。直到CPU被复位或从新上电。软件设计 软件流程图见图3。CPU上电或复位之后将最近一次修改并保存到EEPROM的密码读出,最为参照密匙。然后等待用户输入开锁密码。若5分钟以内没有接受到用户的任何输入,CPU自动转入掉电模式,用户输入任意值可唤醒CPU。每次修改密码之后,CPU将新的密码存入内部4个连续的EEPROM单元,掉电后该数据任有效。每执行一次开锁指令,CPU将当前输入密码与该值比较,看是否真确,并给出相应的提示和控制。布 局 所有元件均使用SMD表贴封装,缩小体积,便于产品安装,60X60双面PCB板,顶层是一体化输入键盘,底层是元件层。成型后的产品体积小巧,能很方便的嵌入防盗铁门、保险箱柜。
上传时间: 2013-10-31
上传用户:uuuuuuu
用单片机制作多功能莫尔斯码电路:用单片机制作多功能莫尔斯码电路莫尔斯电码通信有着悠久的历史,尽管它已被现代通信方式所取代,但在业余无线电通信和特殊的专业场合仍具有重要的地位,这是因为等幅电码通信的抗干扰能力是其它任何一种通信方式都无法相比的。在短波波段用几瓦的功率即可进行国际间的通信,收发射设备简单易制成本低廉,所以深受业余无线电爱好者的喜爱,是业余无线电高手必备的技能。要想熟练掌握莫尔斯电码的收发技术除了持之以恒的毅力外,还需要相关的设备。设计本电路的目的就是给爱好者提供一个实用和训练的工具。 一、功能简介 本电路可以配合自动键体和手动键体,产生莫尔斯码控制信号,设有16种速度,从初学者到操作高手都能适用。监听音调也有16种,均可以通过功能键进行选择。可以按程序中设定好的呼号自动呼叫,设有听抄练习功能,听抄练习有短码和混合码两种模式,分别对10个数字和常用的38个混合码模拟随机取样,产生分组报码,供爱好者提高抄收水平之用,速度低4档的听抄练习是专为初学者所设,内容是时间间隔较长的单字符。设有PTT开关键,可以决定是否控制发射机工作,不需要反复通断控制线。无论当前处于呼叫状态还是听抄状态只要电键接点接通则自动转到人工发报程序。4分钟内不使用电路将自动关闭电源,只有按复位键才能重新开始工作。先按住听抄练习键复位则进入短码练习状态,其它功能不变。从开机到自动关机执行每个功能都有不同的莫尔斯码提示音。本电路具有较强的抗高低频干扰的能力和使用方便的大电流开关接口,以适应不同的发射设备。 二、硬件电路原理硬件电路如图1所示。设计电路的目的在于方便实用,以免在紧张的操作中失误,所以除了听抄练习键外其它键没有定义复用功能。各键的作用在图中已经标出。PTT控制在每次复位时处于关闭状态,每按动一次PTT功能键则改变一次状态,这样可以使用软件开关控制发射。 PTT处于控制状态时发光二极管随控制信号闪亮。考虑到自制设备及淘汰军用设备与高档设备控制电流的不同,PTT开关管采用了2SC2073,可以承受500mA的电流,同时还增加了无极性PTT开关电路,无论外部被控制的端口直流极性如何加到VT3的极性始终不变,供有兴趣的爱好者实验。应该注意,如果被控制的负载是感性,则电感两端必须并联续流二极管,除自制设备外成品机在这方面一般没有什么问题。手动键只有一个接点,接通后产生连续的音频和发射控制信号。在本电路中手动键的输入端是P1.5 ,程序不断检测P1.5电平,当按键按下时P1.5电平为0,程序转入手动键子程序。 自动键的接点分别接到P1.3和P1.4 ,同样当程序检测到有接点闭合时便自动产生“点”或“划”。音频信号从P输出,经VT1放大后推动扬声器发音。单片机的I/O口在输入状态下阻抗较高,容易受到高低频信号干扰,所以在每个输入端口和三极管的be端并联电阻和高频旁路电容,确保在较长的电键连线和大功率发射时电路工作稳定。图2是印刷电路版图,尺寸为110mmX85mm,扬声器用粘合剂直接粘接在电路版有铜箔的面。 三、软件设计方法 “点”时间长度是莫尔斯电码中的基本时间单位。按规定“划”的时间长度不小于三个“点”,同字符中“点”与“划”的间隔不小于一个“点”,字符之间不小于一个“划”,词与词之间不应小于五个“点”。在本程序中用条件转移指令来产生“点”时间长度。通过速度功能键功可以设置16种延时参数。用T0中断产生监听音频信号,并将中断设为优先级,保证在听觉上纯正悦耳。T1用于自动关机计时,如果不使用任何功能四分钟后将向PCON 位写1,单片机进入休眠状态,此时耗电量仅有几个微安。自动键的“点”或“划”以及手动键的连续发音都是子程序的反复调用。P1.2对地短接时自动呼叫可设定为另一内容。为了便于熟悉汇编语言的读者对发音内容进行修改,这里介绍发音字符的编码方法。莫尔斯码的信息与计算机中二进制恰好相同,我们可以用0表示“点”,用1表示“划”。提示音、自动呼叫、听抄内容等字符是预先按一定编码方式存储在程序中的常数。每个字符的莫尔斯码一般是由1至6位“点”、“划”组成,也就是发音次数最多6次。程序中每个字符占用1个字节,字符时间间隔不占用字节,但更长的延时或发音结束信息占用一个字节。我们用字节的低三位表示字节的性质,对于5次及5次以下发音的字符我们用存储器的高5位存储发音信息,发音顺序由高位至低位,用低3位存储发音次数,发音时将数据送入累加器A,先得到发音次数,然后使A左环移,对E0进行位寻址,判断是发“点”还是“划”,环移次数由发音次数决定。对于6次发音的字符不能完全按照上述编码规则,否则会出现信息重叠,如果是6次发音且最后一次是“划”我们把发音次数定义为111B,因为这时第6次位寻址得到的是1。如果第6次发音是“点”,那么这个字符的低三位定义为000B。字符间隔时间由程序自动产生,更长的时间隔或结束标志由字节低三位110B来定义,高半字节表示字符间隔的倍数,例如26H表示再加两倍时间间隔。如果字节为06H则表示读字符程序结束,返回主程序。更详细的内容不再赘述,读者可阅读源程序。四、使用注意事项手动键的操作难度相对大一些,时间节拍全由人掌握,其特点是发出的电码带有“人情味”。自动键的“点”、“划”靠电路产生,发音标准,容易操作,而且可以达到相当快的速度,长时间工作也不易疲劳。在干扰较大、信号微弱的条件下自动键码的辨别程度好于手动键码。初学者初次使用手动键练习发报要有老师指导,且不可我行我素,一旦养成不正确的手法则很难纠正。在电台上时常听到一些让对方难以抄收的电码,这可能会使对方反感而拒绝回答。使用自动键也应在一定的听抄基础上再去练习。在暂时找不老师的情况下可多练习听力,这对于今后能够发出标准正确的电码非常有益。
上传时间: 2013-10-31
上传用户:sdq_123
有两种方式可以让设备和应用程序之间联系:1. 通过为设备创建的一个符号链;2. 通过输出到一个接口WDM驱动程序建议使用输出到一个接口而不推荐使用创建符号链的方法。这个接口保证PDO的安全,也保证安全地创建一个惟一的、独立于语言的访问设备的方法。一个应用程序使用Win32APIs来调用设备。在某个Win32 APIs和设备对象的分发函数之间存在一个映射关系。获得对设备对象访问的第一步就是打开一个设备对象的句柄。 用符号链打开一个设备的句柄为了打开一个设备,应用程序需要使用CreateFile。如果该设备有一个符号链出口,应用程序可以用下面这个例子的形式打开句柄:hDevice = CreateFile("\\\\.\\OMNIPORT3", GENERIC_READ | GENERIC_WRITE,FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL ,NULL);文件路径名的前缀“\\.\”告诉系统本调用希望打开一个设备。这个设备必须有一个符号链,以便应用程序能够打开它。有关细节查看有关Kdevice和CreateLink的内容。在上述调用中第一个参数中前缀后的部分就是这个符号链的名字。注意:CreatFile中的第一个参数不是Windows 98/2000中驱动程序(.sys文件)的路径。是到设备对象的符号链。如果使用DriverWizard产生驱动程序,它通常使用类KunitizedName来构成设备的符号链。这意味着符号链名有一个附加的数字,通常是0。例如:如果链接名称的主干是L“TestDevice”那么在CreateFile中的串就该是“\\\\.\\TestDevice0”。如果应用程序需要被覆盖的I/O,第六个参数(Flags)必须或上FILE_FLAG_OVERLAPPED。 使用一个输出接口打开句柄用这种方式打开一个句柄会稍微麻烦一些。DriverWorks库提供两个助手类来使获得对该接口的访问容易一些,这两个类是CDeviceInterface, 和 CdeviceInterfaceClass。CdeviceInterfaceClass类封装了一个设备信息集,该信息集包含了特殊类中的所有设备接口信息。应用程序能有用CdeviceInterfaceClass类的一个实例来获得一个或更多的CdeviceInterface类的实例。CdeviceInterface类是一个单一设备接口的抽象。它的成员函数DevicePath()返回一个路径名的指针,该指针可以在CreateFile中使用来打开设备。下面用一个小例子来显示这些类最基本的使用方法:extern GUID TestGuid;HANDLE OpenByInterface( GUID* pClassGuid, DWORD instance, PDWORD pError){ CDeviceInterfaceClass DevClass(pClassGuid, pError); if (*pError != ERROR_SUCCESS) return INVALID_HANDLE_VALUE; CDeviceInterface DevInterface(&DevClass, instance, pError); if (*pError != ERROR_SUCCESS) return INVALID_HANDLE_VALUE; cout << "The device path is " << DevInterface.DevicePath() << endl; HANDLE hDev; hDev = CreateFile( DevInterface.DevicePath(), GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL ); if (hDev == INVALID_HANDLE_VALUE) *pError = GetLastError(); return hDev;} 在设备中执行I/O操作一旦应用程序获得一个有效的设备句柄,它就能使用Win32 APIs来产生到设备对象的IRPs。下面的表显示了这种对应关系。Win32 API DRIVER_FUNCTION_xxxIRP_MJ_xxx KDevice subclass member function CreateFile CREATE Create ReadFile READ Read WriteFile WRITE Write DeviceIoControl DEVICE_CONTROL DeviceControl CloseHandle CLOSECLEANUP CloseCleanUp 需要解释一下设备类成员的Close和CleanUp:CreateFile使内核为设备创建一个新的文件对象。这使得多个句柄可以映射同一个文件对象。当这个文件对象的最后一个用户级句柄被撤销后,I/O管理器调用CleanUp。当没有任何用户级和核心级的对文件对象的访问的时候,I/O管理器调用Close。如果被打开的设备不支持指定的功能,则调用相应的Win32将引起错误(无效功能)。以前为Windows95编写的VxD的应用程序代码中可能会在打开设备的时候使用FILE_FLAG_DELETE_ON_CLOSE属性。在Windows NT/2000中,建议不要使用这个属性,因为它将导致没有特权的用户企图打开这个设备,这是不可能成功的。I/O管理器将ReadFile和WriteFile的buff参数转换成IRP域的方法依赖于设备对象的属性。当设备设置DO_DIRECT_IO标志,I/O管理器将buff锁住在存储器中,并且创建了一个存储在IRP中的MDL域。一个设备可以通过调用Kirp::Mdl来存取MDL。当设备设置DO_BUFFERED_IO标志,设备对象分别通过KIrp::BufferedReadDest或 KIrp::BufferedWriteSource为读或写操作获得buff地址。当设备不设置DO_BUFFERED_IO标志也不设置DO_DIRECT_IO,内核设置IRP 的UserBuffer域来对应ReadFile或WriteFile中的buff参数。然而,存储区并没有被锁住而且地址只对调用进程有效。驱动程序可以使用KIrp::UserBuffer来存取IRP域。对于DeviceIoControl调用,buffer参数的转换依赖于特殊的I/O控制代码,它不在设备对象的特性中。宏CTL_CODE(在winioctl.h中定义)用来构造控制代码。这个宏的其中一个参数指明缓冲方法是METHOD_BUFFERED, METHOD_IN_DIRECT, METHOD_OUT_DIRECT, 或METHOD_NEITHER。下面的表显示了这些方法和与之对应的能获得输入缓冲与输出缓冲的KIrp中的成员函数:Method Input Buffer Parameter Output Buffer Parameter METHOD_BUFFERED KIrp::IoctlBuffer KIrp::IoctlBuffer METHOD_IN_DIRECT KIrp::IoctlBuffer KIrp::Mdl METHOD_OUT_DIRECT KIrp::IoctlBuffer KIrp::Mdl METHOD_NEITHER KIrp::IoctlType3InputBuffer KIrp::UserBuffer 如果控制代码指明METHOD_BUFFERED,系统分配一个单一的缓冲来作为输入与输出。驱动程序必须在向输出缓冲放数据之前拷贝输入数据。驱动程序通过调用KIrp::IoctlBuffer获得缓冲地址。在完成时,I/O管理器从系统缓冲拷贝数据到提供给Ring 3级调用者使用的缓冲中。驱动程序必须在结束前存储拷贝到IRP的Information成员中的数据个数。如果控制代码不指明METHOD_IN_DIRECT或METHOD_OUT_DIRECT,则DeviceIoControl的参数呈现不同的含义。参数InputBuffer被拷贝到一个系统缓冲,这个缓冲驱动程序可以通过调用KIrp::IoctlBuffer。参数OutputBuffer被映射到KMemory对象,驱动程序对这个对象的访问通过调用KIrp::Mdl来实现。对于METHOD_OUT_DIRECT,调用者必须有对缓冲的写访问权限。注意,对METHOD_NEITHER,内核只提供虚拟地址;它不会做映射来配置缓冲。虚拟地址只对调用进程有效。这里是一个用METHOD_BUFFERED的例子:首先,使用宏CTL_CODE来定义一个IOCTL代码:#define IOCTL_MYDEV_GET_FIRMWARE_REV \CTL_CODE (FILE_DEVICE_UNKNOWN,0,METHOD_BUFFERED,FILE_ANY_ACCESS)现在使用一个DeviceIoControl调用:BOOLEAN b;CHAR FirmwareRev[60];ULONG FirmwareRevSize;b = DeviceIoControl(hDevice, IOCTL_MYDEV_GET_VERSION_STRING, NULL, // no input 注意,这里放的是包含有执行操作命令的字符串指针 0, FirmwareRev, //这里是output串指针,存放从驱动程序中返回的字符串。sizeof(FirmwareRev),& FirmwareRevSize, NULL // not overlapped I/O );如果输出缓冲足够大,设备拷贝串到里面并将拷贝的资结束设置到FirmwareRevSize中。在驱动程序中,代码看起来如下所示:const char* FIRMWARE_REV = "FW 16.33 v5";NTSTATUS MyDevice::DeviceControl( KIrp I ){ ULONG fwLength=0; switch ( I.IoctlCode() ) { case IOCTL_MYDEV_GET_FIRMWARE_REV: fwLength = strlen(FIRMWARE_REV)+1; if (I.IoctlOutputBufferSize() >= fwLength) { strcpy((PCHAR)I.IoctlBuffer(),FIRMWARE_REV); I.Information() = fwLength; return I.Complete(STATUS_SUCCESS); } else { } case . . . } }
上传时间: 2013-10-17
上传用户:gai928943
《现代微机原理与接口技术》实验指导书 TPC-H实验台C语言版 1.实验台结构1)I / O 地址译码电路如上图1所示地址空间280H~2BFH共分8条译码输出线:Y0~Y7 其地址分别是280H~287H、288H~28FH、290H~297H、298H~29FH、2A0H~2A7H、2A8H~2AFH、2B0H~2B7H、2B8H~2BFH,8根译码输出线在实验台I/O地址处分别由自锁紧插孔引出供实验选用(见图2)。 2) 总线插孔采用“自锁紧”插座在标有“总线”区引出数据总线D7~D0;地址总线A9~A0,读、写信号IOR、IOW;中断请求信号IRQ ;DMA请求信号DRQ1;DMA响应信号DACK1 及AEN信号,供学生搭试各种接口实验电路使用。3) 时钟电路如图-3所示可以输出1MHZ 2MHZ两种信号供A/D转换器定时器/计数器串行接口实验使用。图34) 逻辑电平开关电路如图-4所示实验台右下方设有8个开关K7~K0,开关拨到“1”位置时开关断开,输出高电平。向下打到“0”位置时开关接通,输出低电平。电路中串接了保护电阻使接口电路不直接同+5V 、GND相连,可有效地防止因误操作误编程损坏集成电路现象。图 4 图 55) L E D 显示电路如图-5所示实验台上设有8个发光二极管及相关驱动电路(输入端L7~L0),当输入信号为“1” 时发光,为“0”时灭6) 七段数码管显示电路如图-6所示实验台上设有两个共阴极七段数码管及驱动电路,段码为同相驱动器,位码为反相驱动器。从段码与位码的驱动器输入端(段码输入端a、b、c、d、e、f、g、dp,位码输入端s1、 s2)输入不同的代码即可显示不同数字或符号。
上传时间: 2013-11-22
上传用户:sssnaxie
串行编程器源程序(Keil C语言)//FID=01:AT89C2051系列编程器//实现编程的读,写,擦等细节//AT89C2051的特殊处:给XTAL一个脉冲,地址计数加1;P1的引脚排列与AT89C51相反,需要用函数转换#include <e51pro.h> #define C2051_P3_7 P1_0#define C2051_P1 P0//注意引脚排列相反#define C2051_P3_0 P1_1#define C2051_P3_1 P1_2#define C2051_XTAL P1_4#define C2051_P3_2 P1_5#define C2051_P3_3 P1_6#define C2051_P3_4 P1_7#define C2051_P3_5 P3_5 void InitPro01()//编程前的准备工作{ SetVpp0V(); P0=0xff; P1=0xff; C2051_P3_5=1; C2051_XTAL=0; Delay_ms(20); nAddress=0x0000; SetVpp5V();} void ProOver01()//编程结束后的工作,设置合适的引脚电平{ SetVpp5V(); P0=0xff; P1=0xff; C2051_P3_5=1; C2051_XTAL=1;} BYTE GetData()//从P0口获得数据{ B_0=P0_7; B_1=P0_6; B_2=P0_5; B_3=P0_4; B_4=P0_3; B_5=P0_2; B_6=P0_1; B_7=P0_0; return B;} void SetData(BYTE DataByte)//转换并设置P0口的数据{ B=DataByte; P0_0=B_7; P0_1=B_6; P0_2=B_5; P0_3=B_4; P0_4=B_3; P0_5=B_2; P0_6=B_1; P0_7=B_0;} void ReadSign01()//读特征字{ InitPro01(); Delay_ms(1);//----------------------------------------------------------------------------- //根据器件的DataSheet,设置相应的编程控制信号 C2051_P3_3=0; C2051_P3_4=0; C2051_P3_5=0; C2051_P3_7=0; Delay_ms(20); ComBuf[2]=GetData(); C2051_XTAL=1; C2051_XTAL=0; Delay_us(20); ComBuf[3]=GetData(); ComBuf[4]=0xff;//----------------------------------------------------------------------------- ProOver01();} void Erase01()//擦除器件{ InitPro01();//----------------------------------------------------------------------------- //根据器件的DataSheet,设置相应的编程控制信号 C2051_P3_3=1; C2051_P3_4=0; C2051_P3_5=0; C2051_P3_7=0; Delay_ms(1); SetVpp12V(); Delay_ms(1); C2051_P3_2=0; Delay_ms(10); C2051_P3_2=1; Delay_ms(1);//----------------------------------------------------------------------------- ProOver01();} BOOL Write01(BYTE Data)//写器件{//----------------------------------------------------------------------------- //根据器件的DataSheet,设置相应的编程控制信号 //写一个单元 C2051_P3_3=0; C2051_P3_4=1; C2051_P3_5=1; C2051_P3_7=1; SetData(Data); SetVpp12V(); Delay_us(20); C2051_P3_2=0; Delay_us(20); C2051_P3_2=1; Delay_us(20); SetVpp5V(); Delay_us(20); C2051_P3_4=0; Delay_ms(2); nTimeOut=0; P0=0xff; nTimeOut=0; while(!GetData()==Data)//效验:循环读,直到读出与写入的数相同 { nTimeOut++; if(nTimeOut>1000)//超时了 { return 0; } } C2051_XTAL=1; C2051_XTAL=0;//一个脉冲指向下一个单元//----------------------------------------------------------------------------- return 1;} BYTE Read01()//读器件{ BYTE Data;//----------------------------------------------------------------------------- //根据器件的DataSheet,设置相应的编程控制信号 //读一个单元 C2051_P3_3=0; C2051_P3_4=0; C2051_P3_5=1; C2051_P3_7=1; Data=GetData(); C2051_XTAL=1; C2051_XTAL=0;//一个脉冲指向下一个单元//----------------------------------------------------------------------------- return Data;} void Lock01()//写锁定位{ InitPro01();//先设置成编程状态//----------------------------------------------------------------------------- //根据器件的DataSheet,设置相应的编程控制信号 if(ComBuf[2]>=1)//ComBuf[2]为锁定位 { C2051_P3_3=1; C2051_P3_4=1; C2051_P3_5=1; C2051_P3_7=1; Delay_us(20); SetVpp12V(); Delay_us(20); C2051_P3_2=0; Delay_us(20); C2051_P3_2=1; Delay_us(20); SetVpp5V(); } if(ComBuf[2]>=2) { C2051_P3_3=1; C2051_P3_4=1; C2051_P3_5=0; C2051_P3_7=0; Delay_us(20); SetVpp12V(); Delay_us(20); C2051_P3_2=0; Delay_us(20); C2051_P3_2=1; Delay_us(20); SetVpp5V(); }//----------------------------------------------------------------------------- ProOver01();} void PreparePro01()//设置pw中的函数指针,让主程序可以调用上面的函数{ pw.fpInitPro=InitPro01; pw.fpReadSign=ReadSign01; pw.fpErase=Erase01; pw.fpWrite=Write01; pw.fpRead=Read01; pw.fpLock=Lock01; pw.fpProOver=ProOver01;}
上传时间: 2013-11-12
上传用户:gut1234567
基于PIC单片机控制的数字视频混合器 介绍了一种利用P IC 单片机中断技术来控制数字视频混合处理芯片, 实现将2 路或多路数字视频信号混合成1 路或多路输出的数字视频混合器的硬件构成和软件设计。通过实际应用表明, 该数字视频混合器操作方式简单灵活、可靠性高, 有较好的市场价值。关键词 P IC 单片机; 数字视频; 视频混合器; 键控本文主要介绍了的基于P IC 单片机控制的数字视频键控混合器, 该混合器具有以下功能: 内含两级串联的键控混合器, 可以在主信号中键入2路附加数字信号, 如各种字幕标识; 可以远程遥控, 也可现场按键控制; 可以随时更新和保存系统配置, 改变系统功能和技术参数; 该系统稳定可靠, 对掉电、死机等异常现象有自复位能力。整个系统主要包括硬件和软件两部分, 硬件包括数字混合部分和单片机控制部分。
上传时间: 2013-10-26
上传用户:haohao
微处理器及微型计算机的发展概况 第一代微处理器是以Intel公司1971年推出的4004,4040为代表的四位微处理机。 第二代微处理机(1973年~1977年),典型代表有:Intel 公司的8080、8085;Motorola公司的M6800以及Zlog公司的Z80。 第三代微处理机 第三代微机是以16位机为代表,基本上是在第二代微机的基础上发展起来的。其中Intel公司的8088。8086是在8085的基础发展起来的;M68000是Motorola公司在M6800 的基础发展起来的; 第四代微处理机 以Intel公司1984年10月推出的80386CPU和1989年4月推出的80486CPU为代表, 第五代微处理机的发展更加迅猛,1993年3月被命名为PENTIUM的微处理机面世,98年PENTIUM 2又被推向市场。 INTEL CPU 发展历史Intel第一块CPU 4004,4位主理器,主频108kHz,运算速度0.06MIPs(Million Instructions Per Second, 每秒百万条指令),集成晶体管2,300个,10微米制造工艺,最大寻址内存640 bytes,生产曰期1971年11月. 8085,8位主理器,主频5M,运算速度0.37MIPs,集成晶体管6,500个,3微米制造工艺,最大寻址内存64KB,生产曰期1976年 8086,16位主理器,主频4.77/8/10MHZ,运算速度0.75MIPs,集成晶体管29,000个,3微米制造工艺,最大寻址内存1MB,生产曰期1978年6月. 80486DX,DX2,DX4,32位主理器,主频25/33/50/66/75/100MHZ,总线频率33/50/66MHZ,运算速度20~60MIPs,集成晶体管1.2M个,1微米制造工艺,168针PGA,最大寻址内存4GB,缓存8/16/32/64KB,生产曰期1989年4月 Celeron一代, 主频266/300MHZ(266/300MHz w/o L2 cache, Covington芯心 (Klamath based),300A/333/366/400/433/466/500/533MHz w/128kB L2 cache, Mendocino核心 (Deschutes-based), 总线频率66MHz,0.25微米制造工艺,生产曰期1998年4月) Pentium 4 (478针),至今分为三种核心:Willamette核心(主频1.5G起,FSB400MHZ,0.18微米制造工艺),Northwood核心(主频1.6G~3.0G,FSB533MHZ,0.13微米制造工艺, 二级缓存512K),Prescott核心(主频2.8G起,FSB800MHZ,0.09微米制造工艺,1M二级缓存,13条全新指令集SSE3),生产曰期2001年7月. 更大的缓存、更高的频率、 超级流水线、分支预测、乱序执行超线程技术 微型计算机组成结构单片机简介单片机即单片机微型计算机,是将计算机主机(CPU、 内存和I/O接口)集成在一小块硅片上的微型机。 三、计算机编程语言的发展概况 机器语言 机器语言就是0,1码语言,是计算机唯一能理解并直接执行的语言。汇编语言 用一些助记符号代替用0,1码描述的某种机器的指令系统,汇编语言就是在此基础上完善起来的。高级语言 BASIC,PASCAL,C语言等等。用高级语言编写的程序称源程序,它们必须通过编译或解释,连接等步骤才能被计算机处理。 面向对象语言 C++,Java等编程语言是面向对象的语言。 1.3 微型计算机中信息的表示及运算基础(一) 十进制ND有十个数码:0~9,逢十进一。 例 1234.5=1×103 +2×102 +3×101 +4×100 +5×10-1加权展开式以10称为基数,各位系数为0~9,10i为权。 一般表达式:ND= dn-1×10n-1+dn-2×10n-2 +…+d0×100 +d-1×10-1+… (二) 二进制NB两个数码:0、1, 逢二进一。 例 1101.101=1×23+1×22+0×21+1×20+1×2-1+1×2-3 加权展开式以2为基数,各位系数为0、1, 2i为权。 一般表达式: NB = bn-1×2n-1 + bn-2×2n-2 +…+b0×20 +b-1×2-1+… (三)十六进制NH十六个数码0~9、A~F,逢十六进一。 例:DFC.8=13×162 +15×161 +12×160 +8×16-1 展开式以十六为基数,各位系数为0~9,A~F,16i为权。 一般表达式: NH= hn-1×16n-1+ hn-2×16n-2+…+ h0×160+ h-1×16-1+… 二、不同进位计数制之间的转换 (二)二进制与十六进制数之间的转换 24=16 ,四位二进制数对应一位十六进制数。举例:(三)十进制数转换成二、十六进制数整数、小数分别转换 1.整数转换法“除基取余”:十进制整数不断除以转换进制基数,直至商为0。每除一次取一个余数,从低位排向高位。举例: 2. 小数转换法“乘基取整”:用转换进制的基数乘以小数部分,直至小数为0或达到转换精度要求的位数。每乘一次取一次整数,从最高位排到最低位。举例: 三、带符号数的表示方法 机器数:机器中数的表示形式。真值: 机器数所代表的实际数值。举例:一个8位机器数与它的真值对应关系如下: 真值: X1=+84=+1010100B X2=-84= -1010100B 机器数:[X1]机= 01010100 [X2]机= 11010100(二)原码、反码、补码最高位为符号位,0表示 “+”,1表示“-”。 数值位与真值数值位相同。 例 8位原码机器数: 真值: x1 = +1010100B x2 =- 1010100B 机器数: [x1]原 = 01010100 [x2]原 = 11010100原码表示简单直观,但0的表示不唯一,加减运算复杂。 正数的反码与原码表示相同。 负数反码符号位为 1,数值位为原码数值各位取反。 例 8位反码机器数: x= +4: [x]原= 00000100 [x]反= 00000100 x= -4: [x]原= 10000100 [x]反= 111110113、补码(Two’s Complement)正数的补码表示与原码相同。 负数补码等于2n-abs(x)8位机器数表示的真值四、 二进制编码例:求十进制数876的BCD码 876= 1000 0111 0110 BCD 876= 36CH = 1101101100B 2、字符编码 美国标准信息交换码ASCII码,用于计算 机与计算机、计算机与外设之间传递信息。 3、汉字编码 “国家标准信息交换用汉字编码”(GB2312-80标准),简称国标码。 用两个七位二进制数编码表示一个汉字 例如“巧”字的代码是39H、41H汉字内码例如“巧”字的代码是0B9H、0C1H1·4 运算基础 一、二进制数的运算加法规则:“逢2进1” 减法规则:“借1当2” 乘法规则:“逢0出0,全1出1”二、二—十进制数的加、减运算 BCD数的运算规则 循十进制数的运算规则“逢10进1”。但计算机在进行这种运算时会出现潜在的错误。为了解决BCD数的运算问题,采取调整运算结果的措施:即“加六修正”和“减六修正”例:10001000(BCD)+01101001(BCD) =000101010111(BCD) 1 0 0 0 1 0 0 0 + 0 1 1 0 1 0 0 1 1 1 1 1 0 0 0 1 + 0 1 1 0 0 1 1 0 ……调整 1 0 1 0 1 0 1 1 1 进位 例: 10001000(BCD)- 01101001(BCD)= 00011001(BCD) 1 0 0 0 1 0 0 0 - 0 1 1 0 1 0 0 1 0 0 0 1 1 1 1 1 - 0 1 1 0 ……调整 0 0 0 1 1 0 0 1 三、 带符号二进制数的运算 1.5 几个重要的数字逻辑电路编码器译码器计数器微机自动工作的条件程序指令顺序存放自动跟踪指令执行1.6 微机基本结构微机结构各部分组成连接方式1、以CPU为中心的双总线结构;2、以内存为中心的双总线结构;3、单总线结构CPU结构管脚特点 1、多功能;2、分时复用内部结构 1、控制; 2、运算; 3、寄存器; 4、地址程序计数器堆栈定义 1、定义;2、管理;3、堆栈形式
上传时间: 2013-10-17
上传用户:erkuizhang
单片机应用系统抗干扰技术:第1章 电磁干扰控制基础. 1.1 电磁干扰的基本概念1 1.1.1 噪声与干扰1 1.1.2 电磁干扰的形成因素2 1.1.3 干扰的分类2 1.2 电磁兼容性3 1.2.1 电磁兼容性定义3 1.2.2 电磁兼容性设计3 1.2.3 电磁兼容性常用术语4 1.2.4 电磁兼容性标准6 1.3 差模干扰和共模干扰8 1.3.1 差模干扰8 1.3.2 共模干扰9 1.4 电磁耦合的等效模型9 1.4.1 集中参数模型9 1.4.2 分布参数模型10 1.4.3 电磁波辐射模型11 1.5 电磁干扰的耦合途径14 1.5.1 传导耦合14 1.5.2 感应耦合(近场耦合)15 .1.5.3 电磁辐射耦合(远场耦合)15 1.6 单片机应用系统电磁干扰控制的一般方法16 第2章 数字信号耦合与传输机理 2.1 数字信号与电磁干扰18 2.1.1 数字信号的开关速度与频谱18 2.1.2 开关暂态电源尖峰电流噪声22 2.1.3 开关暂态接地反冲噪声24 2.1.4 高速数字电路的EMI特点25 2.2 导线阻抗与线间耦合27 2.2.1 导体交直流电阻的计算27 2.2.2 导体电感量的计算29 2.2.3 导体电容量的计算31 2.2.4 电感耦合分析32 2.2.5 电容耦合分析35 2.3 信号的长线传输36 2.3.1 长线传输过程的数学描述36 2.3.2 均匀传输线特性40 2.3.3 传输线特性阻抗计算42 2.3.4 传输线特性阻抗的重复性与阻抗匹配44 2.4 数字信号传输过程中的畸变45 2.4.1 信号传输的入射畸变45 2.4.2 信号传输的反射畸变46 2.5 信号传输畸变的抑制措施49 2.5.1 最大传输线长度的计算49 2.5.2 端点的阻抗匹配50 2.6 数字信号的辐射52 2.6.1 差模辐射52 2.6.2 共模辐射55 2.6.3 差模和共模辐射比较57 第3章 常用元件的可靠性能与选择 3.1 元件的选择与降额设计59 3.1.1 元件的选择准则59 3.1.2 元件的降额设计59 3.2 电阻器60 3.2.1 电阻器的等效电路60 3.2.2 电阻器的内部噪声60 3.2.3 电阻器的温度特性61 3.2.4 电阻器的分类与主要参数62 3.2.5 电阻器的正确选用66 3.3 电容器67 3.3.1 电容器的等效电路67 3.3.2 电容器的种类与型号68 3.3.3 电容器的标志方法70 3.3.4 电容器引脚的电感量71 3.3.5 电容器的正确选用71 3.3.6 电容器使用注意事项73 3.4 电感器73 3.4.1 电感器的等效电路74 3.4.2 电感器使用的注意事项74 3.5 数字集成电路的抗干扰性能75 3.5.1 噪声容限与抗干扰能力75 3.5.2 施密特集成电路的噪声容限77 3.5.3 TTL数字集成电路的抗干扰性能78 3.5.4 CMOS数字集成电路的抗干扰性能79 3.5.5 CMOS电路使用中注意事项80 3.5.6 集成门电路系列型号81 3.6 高速CMOS 54/74HC系列接口设计83 3.6.1 54/74HC 系列芯片特点83 3.6.2 74HC与TTL接口85 3.6.3 74HC与单片机接口85 3.7 元器件的装配工艺对可靠性的影响86 第4章 电磁干扰硬件控制技术 4.1 屏蔽技术88 4.1.1 电场屏蔽88 4.1.2 磁场屏蔽89 4.1.3 电磁场屏蔽91 4.1.4 屏蔽损耗的计算92 4.1.5 屏蔽体屏蔽效能的计算99 4.1.6 屏蔽箱的设计100 4.1.7 电磁泄漏的抑制措施102 4.1.8 电缆屏蔽层的屏蔽原理108 4.1.9 屏蔽与接地113 4.1.10 屏蔽设计要点113 4.2 接地技术114 4.2.1 概述114 4.2.2 安全接地115 4.2.3 工作接地117 4.2.4 接地系统的布局119 4.2.5 接地装置和接地电阻120 4.2.6 地环路问题121 4.2.7 浮地方式122 4.2.8 电缆屏蔽层接地123 4.3 滤波技术126 4.3.1 滤波器概述127 4.3.2 无源滤波器130 4.3.3 有源滤波器138 4.3.4 铁氧体抗干扰磁珠143 4.3.5 贯通滤波器146 4.3.6 电缆线滤波连接器149 4.3.7 PCB板滤波器件154 4.4 隔离技术155 4.4.1 光电隔离156 4.4.2 继电器隔离160 4.4.3 变压器隔离 161 4.4.4 布线隔离161 4.4.5 共模扼流圈162 4.5 电路平衡结构164 4.5.1 双绞线在平衡电路中的使用164 4.5.2 同轴电缆的平衡结构165 4.5.3 差分放大器165 4.6 双绞线的抗干扰原理及应用166 4.6.1 双绞线的抗干扰原理166 4.6.2 双绞线的应用168 4.7 信号线间的串扰及抑制169 4.7.1 线间串扰分析169 4.7.2 线间串扰的抑制173 4.8 信号线的选择与敷设174 4.8.1 信号线型式的选择174 4.8.2 信号线截面的选择175 4.8.3 单股导线的阻抗分析175 4.8.4 信号线的敷设176 4.9 漏电干扰的防止措施177 4.10 抑制数字信号噪声常用硬件措施177 4.10.1 数字信号负传输方式178 4.10.2 提高数字信号的电压等级178 4.10.3 数字输入信号的RC阻容滤波179 4.10.4 提高输入端的门限电压181 4.10.5 输入开关触点抖动干扰的抑制方法181 4.10.6 提高器件的驱动能力184 4.11 静电放电干扰及其抑制184 第5章 主机单元配置与抗干扰设计 5.1 单片机主机单元组成特点186 5.1.1 80C51最小应用系统186 5.1.2 低功耗单片机最小应用系统187 5.2 总线的可靠性设计191 5.2.1 总线驱动器191 5.2.2 总线的负载平衡192 5.2.3 总线上拉电阻的配置192 5.3 芯片配置与抗干扰193 5.3.1去耦电容配置194 5.3.2 数字输入端的噪声抑制194 5.3.3 数字电路不用端的处理195 5.3.4 存储器的布线196 5.4 译码电路的可靠性分析197 5.4.1 过渡干扰与译码选通197 5.4.2 译码方式与抗干扰200 5.5 时钟电路配置200 5.6 复位电路设计201 5.6.1 复位电路RC参数的选择201 5.6.2 复位电路的可靠性与抗干扰分析202 5.6.3 I/O接口芯片的延时复位205 5.7 单片机系统的中断保护问题205 5.7.1 80C51单片机的中断机构205 5.7.2 常用的几种中断保护措施205 5.8 RAM数据掉电保护207 5.8.1 片内RAM数据保护207 5.8.2 利用双片选的外RAM数据保护207 5.8.3 利用DS1210实现外RAM数据保护208 5.8.4 2 KB非易失性随机存储器DS1220AB/AD211 5.9 看门狗技术215 5.9.1 由单稳态电路实现看门狗电路216 5.9.2 利用单片机片内定时器实现软件看门狗217 5.9.3 软硬件结合的看门狗技术219 5.9.4 单片机内配置看门狗电路221 5.10 微处理器监控器223 5.10.1 微处理器监控器MAX703~709/813L223 5.10.2 微处理器监控器MAX791227 5.10.3 微处理器监控器MAX807231 5.10.4 微处理器监控器MAX690A/MAX692A234 5.10.5 微处理器监控器MAX691A/MAX693A238 5.10.6 带备份电池的微处理器监控器MAX1691242 5.11 串行E2PROM X25045245 第6章 测量单元配置与抗干扰设计 6.1 概述255 6.2 模拟信号放大器256 6.2.1 集成运算放大器256 6.2.2 测量放大器组成原理260 6.2.3 单片集成测量放大器AD521263 6.2.4 单片集成测量放大器AD522265 6.2.5 单片集成测量放大器AD526266 6.2.6 单片集成测量放大器AD620270 6.2.7 单片集成测量放大器AD623274 6.2.8 单片集成测量放大器AD624276 6.2.9 单片集成测量放大器AD625278 6.2.10 单片集成测量放大器AD626281 6.3 电压/电流变换器(V/I)283 6.3.1 V/I变换电路..283 6.3.2 集成V/I变换器XTR101284 6.3.3 集成V/I变换器XTR110289 6.3.4 集成V/I变换器AD693292 6.3.5 集成V/I变换器AD694299 6.4 电流/电压变换器(I/V)302 6.4.1 I/V变换电路302 6.4.2 RCV420型I/V变换器303 6.5 具有放大、滤波、激励功能的模块2B30/2B31305 6.6 模拟信号隔离放大器313 6.6.1 隔离放大器ISO100313 6.6.2 隔离放大器ISO120316 6.6.3 隔离放大器ISO122319 6.6.4 隔离放大器ISO130323 6.6.5 隔离放大器ISO212P326 6.6.6 由两片VFC320组成的隔离放大器329 6.6.7 由两光耦组成的实用线性隔离放大器333 6.7 数字电位器及其应用336 6.7.1 非易失性数字电位器x9221336 6.7.2 非易失性数字电位器x9241343 6.8 传感器供电电源的配置及抗干扰346 6.8.1 传感器供电电源的扰动补偿347 6.8.2 单片集成精密电压芯片349 6.8.3 A/D转换器芯片提供基准电压350 6.9 测量单元噪声抑制措施351 6.9.1 外部噪声源的干扰及其抑制351 6.9.2 输入信号串模干扰的抑制352 6.9.3 输入信号共模干扰的抑制353 6.9.4 仪器仪表的接地噪声355 第7章 D/A、A/D单元配置与抗干扰设计 7.1 D/A、A/D转换器的干扰源357 7.2 D/A转换原理及抗干扰分析358 7.2.1 T型电阻D/A转换器359 7.2.2 基准电源精度要求361 7.2.3 D/A转换器的尖峰干扰362 7.3 典型D/A转换器与单片机接口363 7.3.1 并行12位D/A转换器AD667363 7.3.2 串行12位D/A转换器MAX5154370 7.4 D/A转换器与单片机的光电接口电路377 7.5 A/D转换器原理与抗干扰性能378 7.5.1 逐次比较式ADC原理378 7.5.2 余数反馈比较式ADC原理378 7.5.3 双积分ADC原理380 7.5.4 V/F ADC原理382 7.5.5 ∑Δ式ADC原理384 7.6 典型A/D转换器与单片机接口387 7.6.18 位并行逐次比较式MAX 118387 7.6.28 通道12位A/D转换器MAX 197394 7.6.3 双积分式A/D转换器5G14433399 7.6.4 V/F转换器AD 652在A/D转换器中的应用403 7.7 采样保持电路与抗干扰措施408 7.8 多路模拟开关与抗干扰措施412 7.8.1 CD4051412 7.8.2 AD7501413 7.8.3 多路开关配置与抗干扰技术413 7.9 D/A、A/D转换器的电源、接地与布线416 7.10 精密基准电压电路与噪声抑制416 7.10.1 基准电压电路原理417 7.10.2 引脚可编程精密基准电压源AD584418 7.10.3 埋入式齐纳二极管基准AD588420 7.10.4 低漂移电压基准MAX676/MAX677/MAX678422 7.10.5 低功率低漂移电压基准MAX873/MAX875/MAX876424 7.10.6 MC1403/MC1403A、MC1503精密电压基准电路430 第8章 功率接口与抗干扰设计 8.1 功率驱动元件432 8.1.1 74系列功率集成电路432 8.1.2 75系列功率集成电路433 8.1.3 MOC系列光耦合过零触发双向晶闸管驱动器435 8.2 输出控制功率接口电路438 8.2.1 继电器输出驱动接口438 8.2.2 继电器—接触器输出驱动电路439 8.2.3 光电耦合器—晶闸管输出驱动电路439 8.2.4 脉冲变压器—晶闸管输出电路440 8.2.5 单片机与大功率单相负载的接口电路441 8.2.6 单片机与大功率三相负载间的接口电路442 8.3 感性负载电路噪声的抑制442 8.3.1 交直流感性负载瞬变噪声的抑制方法442 8.3.2 晶闸管过零触发的几种形式445 8.3.3 利用晶闸管抑制感性负载的瞬变噪声447 8.4 晶闸管变流装置的干扰和抑制措施448 8.4.1 晶闸管变流装置电气干扰分析448 8.4.2 晶闸管变流装置的抗干扰措施449 8.5 固态继电器451 8.5.1 固态继电器的原理和结构451 8.5.2 主要参数与选用452 8.5.3 交流固态继电器的使用454 第9章 人机对话单元配置与抗干扰设计 9.1 键盘接口抗干扰问题456 9.2 LED显示器的构造与特点458 9.3 LED的驱动方式459 9.3.1 采用限流电阻的驱动方式459 9.3.2 采用LM317的驱动方式460 9.3.3 串联二极管压降驱动方式462 9.4 典型键盘/显示器接口芯片与单片机接口463 9.4.1 8位LED驱动器ICM 7218B463 9.4.2 串行LED显示驱动器MAX 7219468 9.4.3 并行键盘/显示器专用芯片8279482 9.4.4 串行键盘/显示器专用芯片HD 7279A492 9.5 LED显示接口的抗干扰措施502 9.5.1 LED静态显示接口的抗干扰502 9.5.2 LED动态显示接口的抗干扰506 9.6 打印机接口与抗干扰技术508 9.6.1 并行打印机标准接口信号508 9.6.2 打印机与单片机接口电路509 9.6.3 打印机电磁干扰的防护设计510 9.6.4 提高数据传输可靠性的措施512 第10章 供电电源的配置与抗干扰设计 10.1 电源干扰问题概述513 10.1.1 电源干扰的类型513 10.1.2 电源干扰的耦合途径514 10.1.3 电源的共模和差模干扰515 10.1.4 电源抗干扰的基本方法516 10.2 EMI电源滤波器517 10.2.1 实用低通电容滤波器518 10.2.2 双绕组扼流圈的应用518 10.3 EMI滤波器模块519 10.3.1 滤波器模块基础知识519 10.3.2 电源滤波器模块521 10.3.3 防雷滤波器模块531 10.3.4 脉冲群抑制模块532 10.4 瞬变干扰吸收器件532 10.4.1 金属氧化物压敏电阻(MOV)533 10.4.2 瞬变电压抑制器(TVS)537 10.5 电源变压器的屏蔽与隔离552 10.6 交流电源的供电抗干扰方案553 10.6.1 交流电源配电方式553 10.6.2 交流电源抗干扰综合方案555 10.7 供电直流侧抑制干扰措施555 10.7.1 整流电路的高频滤波555 10.7.2 串联型直流稳压电源配置与抗干扰556 10.7.3 集成稳压器使用中的保护557 10.8 开关电源干扰的抑制措施559 10.8.1 开关噪声的分类559 10.8.2 开关电源噪声的抑制措施560 10.9 微机用不间断电源UPS561 10.10 采用晶闸管无触点开关消除瞬态干扰设计方案564 第11章 印制电路板的抗干扰设计 11.1 印制电路板用覆铜板566 11.1.1 覆铜板材料566 11.1.2 覆铜板分类568 11.1.3 覆铜板的标准与电性能571 11.1.4 覆铜板的主要特点和应用583 11.2 印制板布线设计基础585 11.2.1 印制板导线的阻抗计算585 11.2.2 PCB布线结构和特性阻抗计算587 11.2.3 信号在印制板上的传播速度589 11.3 地线和电源线的布线设计590 11.3.1 降低接地阻抗的设计590 11.3.2 减小电源线阻抗的方法591 11.4 信号线的布线原则592 11.4.1 信号传输线的尺寸控制592 11.4.2 线间串扰控制592 11.4.3 辐射干扰的抑制593 11.4.4 反射干扰的抑制594 11.4.5 微机自动布线注意问题594 11.5 配置去耦电容的方法594 11.5.1 电源去耦595 11.5.2 集成芯片去耦595 11.6 芯片的选用与器件布局596 11.6.1 芯片选用指南596 11.6.2 器件的布局597 11.6.3 时钟电路的布置598 11.7 多层印制电路板599 11.7.1 多层印制板的结构与特点599 11.7.2 多层印制板的布局方案600 11.7.3 20H原则605 11.8 印制电路板的安装和板间配线606 第12章 软件抗干扰原理与方法 12.1 概述607 12.1.1 测控系统软件的基本要求607 12.1.2 软件抗干扰一般方法607 12.2 指令冗余技术608 12.2.1 NOP的使用609 12.2.2 重要指令冗余609 12.3 软件陷阱技术609 12.3.1 软件陷阱609 12.3.2 软件陷阱的安排610 12.4 故障自动恢复处理程序613 12.4.1 上电标志设定614 12.4.2 RAM中数据冗余保护与纠错616 12.4.3 软件复位与中断激活标志617 12.4.4 程序失控后恢复运行的方法618 12.5 数字滤波619 12.5.1 程序判断滤波法620 12.5.2 中位值滤波法620 12.5.3 算术平均滤波法621 12.5.4 递推平均滤波法623 12.5.5 防脉冲干扰平均值滤波法624 12.5.6 一阶滞后滤波法626 12.6 干扰避开法627 12.7 开关量输入/输出软件抗干扰设计629 12.7.1 开关量输入软件抗干扰措施629 12.7.2 开关量输出软件抗干扰措施629 12.8 编写软件的其他注意事项630 附录 电磁兼容器件选购信息632
上传时间: 2013-10-20
上传用户:xdqm
德国技术的DSP音频99段音效,ACE99 (DSP效果器)。
上传时间: 2013-10-23
上传用户:oojj
文中提出了一种基于ADSP-BF533硬件平台的数字音频均衡器设计,其音频处理算法包括谱分析和均衡算法。经过测试表明,该系统可达到理想的音频均衡效果,用户可对各种音效进行选择和自定义音效。
上传时间: 2014-12-28
上传用户:yzhl1988