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

bit-error-rate

  • 单片机外围线路设计

    当拿到一张CASE单时,首先得确定的是能用什么母体才能实现此功能,然后才能展开对外围硬件电路的设计,因此首先得了解每个母体的基本功能及特点,下面大至的介绍一下本公司常用的IC:单芯片解决方案• SN8P1900 系列–  高精度 16-Bit  模数转换器–  可编程运算放大器 (PGIA)•  信号放大低漂移: 2V•  放大倍数可编程: 1/16/64/128  倍–  升压- 稳压调节器 (Charge-Pump Regulator)•  电源输入: 2.4V ~ 5V•  稳压输出: e.g. 3.8V at SN8P1909–  内置液晶驱动电路 (LCD Driver)–  单芯片解决方案 •  耳温枪  SN8P1909 LQFP 80 Pins• 5000 解析度量测器 SN8P1908 LQFP 64 Pins•  体重计  SN8P1907 SSOP 48 Pins单芯片解决方案• SN8P1820 系列–  精确的12-Bit  模数转换器–  可编程运算放大器 (PGIA)• Gain Stage One: Low Offset 5V, Gain: 16/32/64/128• Gain Stage One: Low Offset 2mV, Gain: 1.3 ~ 2.5–  升压- 稳压调节器•  电源输入: 2.4V ~ 5V•  稳压输出: e.g. 3.8V at SN8P1829–  内置可编程运算放大电路–  内置液晶驱动电路 –  单芯片解决方案 •  电子医疗器 SN8P1829 LQFP 80 Pins 高速/低功耗/高可靠性微控制器• 最新SN8P2000 系列– SN8P2500/2600/2700 系列– 高度抗交流杂讯能力• 标准瞬间电压脉冲群测试 (EFT): IEC 1000-4-4• 杂讯直接灌入芯片电源输入端• 只需添加1颗 2.2F/50V 旁路电容• 测试指标稳超 4000V (欧规)– 高可靠性复位电路保证系统正常运行• 支持外部复位和内部上电复位• 内置1.8V 低电压侦测可靠复位电路• 内置看门狗计时器保证程序跳飞可靠复位– 高抗静电/栓锁效应能力– 芯片工作温度有所提高: -200C ~ 700C     工规芯片温度: -400C ~ 850C 高速/低功耗/高可靠性微控制器• 最新 SN8P2000 系列– SN8P2500/2600/2700 系列– 1T  精简指令级结构• 1T:  一个外部振荡周期执行一条指令•  工作速度可达16 MIPS / 16 MHz Crystal–  工作消耗电流 < 2mA at 1-MIPS/5V–  睡眠模式下消耗电流 < 1A / 5V额外功能• 高速脉宽调制输出 (PWM)– 8-Bit PWM up to 23 KHz at 12 MHz System Clock– 6-Bit PWM up to 93 KHz  at 12 MHz System Clock– 4-Bit PWM up to 375 KHz  at 12 MHz System Clock• 内置高速16 MHz RC振荡器 (SN8P2501A)• 电压变化唤醒功能• 可编程控制沿触发/中断功能– 上升沿 / 下降沿 / 双沿触发• 串行编程接口

    标签: 单片机 线路设计

    上传时间: 2013-10-21

    上传用户:jiahao131

  • 全遥控6声道AV机的汇编程序

    全遥控6声道AV机的汇编程序:;;;;;;;;;;;;;;;;;;;6CH AMPLIFIER;;;;;;;;;;;;;;;;;----脚位定义-----;;;;;;;;;;;;;;;;;;;6CH AMPLIFIER;;;;;;;;;;;;;;;;;----脚位定义----- PT6311_CLK      EQU   P3.4PT6311_STB      EQU   P3.5PT6311_DATA     EQU   P3.3 UP              EQU   P3.1DOEN            EQU   P3.0 PT2313_DATA     EQU   P0.7PT2313_CLK      EQU   P2.7 AC3             EQU   P2.6        ;(控制4053的信号) M62429_DA       EQU   P2.3        ;(SURL/R)M62429_CK       EQU   P2.4 M62429_CK1      EQU   P2.5        ;(C/BW) M62429_CK3      EQU   P0.0        ;(ECHO,MVOL)M62429_DA3      EQU   P1.7M_DELAY1        EQU   P0.1M_DELAY2        EQU   P0.2 AD_OUT          BIT   P0.5AD_IN           BIT   P0.6 ;----片内RAM定义--------GIF_SIGN        EQU   40H         ; 动画进程标记(=1,走过场字幕  )GIF_TIME1       EQU   41H         ; 动画跑字的时间间隔速度GIF_LONG        EQU   42H         ; 动画字幕的长度 DISP_BUFFER     EQU   43H         ; 显示缓冲区地址指针DISP_INDEX      EQU   44H         ; PT6311片内地址指针

    标签: 遥控 声道 汇编程序

    上传时间: 2013-10-19

    上传用户:fac1003

  • 基于AT89C2051的红外遥控学习器源程序

    基于AT89C2051的红外遥控学习器源程序6 源程序          ORG 0000H          AJMP MAIN          ORG 0003H          AJMP KEYPRESS          ORG 000BH           AJMP TIMEOUT          ORG 001BH          AJMP TIMEOUT           SENDDUAN   BIT P3.0          JIEDUAN    BIT P3.1          INTRPO     BIT P3.2          JIEXUAN    BIT P3.3          SENDLIGHT  BIT P3.4          JIELIGHT   BIT P3.5          CS         BIT P3.7          DATADUAN   BIT P1.6          CLK        BIT P1.7           JIANWEI    EQU R5          JIANMA     EQU R6          SHANGJIAN  EQU 07H;R7          OPENKEY    EQU 81H          CLOSEKEY   EQU 00H          CHUT0      EQU 11H          CHUT1      EQU 11H          BUFBEGIN   EQU 18H          OPENT1     EQU 88H          CLOSET1    EQU 00H          OPENT0     EQU 82H          CLOSET0    EQU 00H          DATABEG1   EQU 0AAH          DATABEG2   EQU 33H           ORG 0030HMAIN:     MOV  IE,#80H          MOV  IP,#00H          MOV  P3,#0FFH          CLR  CS          SETB P1.0          SETB P1.1          SETB P1.2          CLR  P1.3          CLR  P1.4          CLR  P1.5          CLR  P1.6          CLR  P1.7                    MOV  R3,#80H          MOV  R0,00HCYCLE1:   MOV  @R0,#00H          INC  R0          DJNZ R3,CYCLE1                    MOV  PSW,#00H          MOV  SP,#07H           MOV  TMOD,#11H          MOV  TCON,#00H START:    MOV  SP,#07H          SETB SENDDUAN          CLR  F0          SETB EXOWAITKEY:  MOV  C,F0          JNC  WAITKEY          CJNC JIANMA,#1BH,SEND          LCALL LEARNP          LJMP STARTSEND:     LCALL SENDP          LJMP START SENDP:    SETB SENDDUAN          CLR  F0          MOV  TMOD,#CHUT1

    标签: C2051 2051 89C AT

    上传时间: 2013-10-15

    上传用户:lyy1234

  • DS1820 C51 子程序 (一线数据传输)

    //芯片资料请到www.elecfans.com查找 //DS1820 C51 子程序//这里以11.0592M晶体为例,不同的晶体速度可能需要调整延时的时间//sbit DQ =P2^1;//根据实际情况定义端口 typedef unsigned char byte;typedef unsigned int  word; //延时void delay(word useconds){  for(;useconds>0;useconds--);} //复位byte ow_reset(void){  byte presence;  DQ = 0; //pull DQ line low  delay(29); // leave it low for 480us  DQ = 1; // allow line to return high  delay(3); // wait for presence  presence = DQ; // get presence signal  delay(25); // wait for end of timeslot  return(presence); // presence signal returned}     // 0=presence, 1 = no part //从 1-wire 总线上读取一个字节byte read_byte(void){  byte i;  byte value = 0;  for (i=8;i>0;i--)  {    value>>=1;    DQ = 0; // pull DQ low to start timeslot    DQ = 1; // then return high    delay(1);  //for (i=0; i<3; i++);     if(DQ)value|=0x80;    delay(6); // wait for rest of timeslot  }  return(value);} //向 1-WIRE 总线上写一个字节void write_byte(char val){  byte i;  for (i=8; i>0; i--) // writes byte, one bit at a time  {    DQ = 0; // pull DQ low to start timeslot    DQ = val&0x01;    delay(5); // hold value for remainder of timeslot    DQ = 1;    val=val/2;  }  delay(5);} //读取温度char Read_Temperature(void){  union{    byte c[2];    int x;  }temp;   ow_reset();  write_byte(0xCC); // Skip ROM  write_byte(0xBE); // Read Scratch Pad  temp.c[1]=read_byte();  temp.c[0]=read_byte();  ow_reset();  write_byte(0xCC); //Skip ROM  write_byte(0x44); // Start Conversion  return temp.x/2;}

    标签: 1820 C51 DS 程序

    上传时间: 2013-11-03

    上传用户:hongmo

  • 模拟串口通讯程序(51汇编代码编写)

    T2作为波特率控制UART_RXD 是硬中断0或1口,如果能进入中断,说明该线有一个起始位产生,进入中断后调用下面的接收程序。退出硬中断之前还需要将硬中断标志重新复位。UART_TXD 是任何其它IO即可。UART_SEND:    PUSH IE    PUSH DPH    PUSH DPL    PUSH PSW    PUSH 00H    PUSH ACC    CLR EA    SETB UART_TXD        ;START BIT        MOV R0,A    CLR TR2    ;TR2置1,计数器2启动,时间计数启动。    MOV A,RCAP2L;计数器2重新装载值    MOV TL2,A    ;置计数器2初值  ;T2需要重新装载    MOV A,DPH    MOV A,RCAP2H    MOV TH2,A    MOV A,R0        SETB TR2    ;TR2置1,计数器    JNB TF2,$    CLR TF2    JNB TF2,$    CLR TF2

    标签: 模拟串口 通讯程序 汇编代码 编写

    上传时间: 2014-01-12

    上传用户:二十八号

  • 24c01a的读写程序

    #include <at24c01a.h>/*************************************************向24C01A写入一个字节输入:E2ROM地址,字节数据******************************************************/void write24c01a(uchar uadd_1,uchar udata_1){sendbyte=0xa0;start();send(sendbyte);if (!ack())continue;send(uadd_1);if (!ack())continue;send(udata_1)if (!ack())continue;stop();}/**********************************发送开始*****************************************/void start(void){a_scl=1;a_sda=1;a_sda=0;a_scl=0;a_scl=1;}/********************************************发送停止*******************************************/void stop(void){a_scl=0;a_sda=0;a_scl=1;a_sda=1;} /*********************************************发送反馈************************************************/bit ack(void){int a_acka_scl=0;a_scl=0;a_scl=0;a_scl=1;a_ack=a_sda;a_scl=0;return(a_ack)}/**************************************发送无反馈********************************************/bit noack(void){int a_ack;a_scl=1;a_scl=1;a_scl=0;}/*******************************************发送****************************************************/void send(uchar  undata){uchar i;sendbyte=undatafor(i=8;i>0;i--){a_sda=sendbyte7;a_scl=0;a_scl=1;sendbyte=sendbyte<<1}}/********************************************接受****************************************************/ void   receive(void){int i;uchar data;for(i=8;i>0;i--){ a_scl=1;receivebyte7=a_sda;a_scl=0;receivebyte=receivebyte>>1}receivedata=receivebyte;}/********************************************向 24c01a读一个字节;输入:EEROM地址;输出:EEROM数据;********************************************/void read24c01a(uchar  counter){receivebyte=0xa1;start();send(receivebyte);if (!ack())continue;send(counter);if (!ack())continue;receive()noack();stop();}

    标签: 24c01a 读写程序

    上传时间: 2013-12-23

    上传用户:wxhwjf

  • 温度传感器ds1820的汇编程序

    晶振:12M TEMPER_L EQU 36H TEMPER_H EQU 35H TEMPER_NUM EQU 60H FLAG1 BIT 00H DQ BIT P3.3AAA:MOV SP,#70H LCALL GET_TEMPER LCALL TEMPER_COV LJMP AAA NOP ;------------------读出转换后的温度值 GET_TEMPER: SETB DQ ; 定时入口 BCD:LCALL INIT_1820 JB FLAG1,S22 LJMP BCD ; 若DS18B20不存在则返回S22:LCALL DELAY1 MOV A,#0CCH ; 跳过ROM匹配------0CC LCALL WRITE_1820 MOV A,#44H ; 发出温度转换命令 LCALL WRITE_1820 NOP LCALL DELAY LCALL DELAY CBA:LCALL INIT_1820 JB FLAG1,ABC LJMP CBA ABC:LCALL DELAY1 MOV A,#0CCH ; 跳过ROM匹配 LCALL WRITE_1820 MOV A,#0BEH ; 发出读温度命令 LCALL WRITE_1820 LCALL READ_18200 ;READ_1820 RET ;------------------读DS18B20的程序,从DS18B20中读出一个字节的数据 READ_1820: MOV R2,#8 RE1: CLR C

    标签: 1820 ds 温度传感器 汇编程序

    上传时间: 2013-10-09

    上传用户:heart_2007

  • LC7461遥控解码子程序源代码

    //遥控解码子程序,LC7461,用户码为11C//external interrupt0void isr_4(){  unsigned char r_count;//定义解码的个数 unsigned long use_data=0;//定义16位的用户码,只用到13位 unsigned long use_code=0;//定义16位的用户反码,只用到13位 unsigned long data=0;//定义16位数据码,包括8位数据码和反码 unsigned char data_h=0;//数据反码 unsigned char data_l=0;//数据码 _clrwdt();// _delay(7000);//7461解码,延时7000// _delay(7000);//7461解码,延时7000//_delay(7000);//7461解码,延时7000 if(remote==1)  goto error; while(remote==0);//wait to high //_delay(9744);count_delay=0; while(count_delay<143); if(remote==1)  goto error;     /////用户码解码use_data//////////add//////////////////////////     for(r_count=13;r_count>0;r_count--)  {  while(remote==0);//wait to high  count_delay=0;     while(count_delay<24);//_delay(1680);  _c=remote;  if(_c==1)   {   _lrrc(&use_data);   count_delay=0;         while(count_delay<32);//_delay(2200);//wait to low   }  else   _lrrc(&use_data);  }  _nop(); //if(remote==1)  //_delay(1680);//wait to low while(remote==1);//wait to low     _nop();     ////////用户码解码finish/////////add/////////add////////     /////用户码反码解码use_code//////////add//////////////////////////     for(r_count=13;r_count>0;r_count--)  {  while(remote==0);//wait to high  count_delay=0;         while(count_delay<24);//_delay(1680);  _c=remote;  if(_c==1)   {   _lrrc(&use_code);   count_delay=0;         while(count_delay<32);//_delay(2200);//wait to low   }  else   _lrrc(&use_code);  } _nop(); //if(remote==1) // _delay(1680);//wait to low while(remote==1);//wait to low     _nop();     ////////用户码反码解码finish/////////add/////////add////////     ////数据码解码开始////data_l为用户码,data_h为数据码反码//////////// for(r_count=16;r_count>0;r_count--)  {  while(remote==0);//wait to high  count_delay=0;         while(count_delay<24);//_delay(1680);  _c=remote;  if(_c==1)   {   _lrrc(&data);   count_delay=0;         while(count_delay<32);//_delay(2200);//wait to low   }  else   _lrrc(&data);  } ////数据码解码结束//////////////////////////////////////////////// data_l=data; data_h=data>>8; ///用户码////// use_data>>=3; use_code>>=3; use_code=~use_code; //////// ////如果用户码等与0x11c并且数据码和数据反码都校验一致,解码成功 //if((~data_h==data_l)&&use_data==0x11c)//使用用户码 //跳过用户码 if(~data_h==data_l)//如果数据码和数据反码(取反后)相等,解码正确  {  _nop();  r_data=data_l;//r_data为解出的最终数据码  } //否则解码不成功 _nop(); _nop();error:  //r_data=nocode; _nop();    _nop(); _nop();}

    标签: 7461 LC 遥控 解码

    上传时间: 2014-03-27

    上传用户:shenlan

  • 16 16点阵显示汉字原理及显示程序

    16 16点阵显示汉字原理及显示程序 #include "config.h" #define                DOTLED_LINE_PORT        PORTB #define                DOTLED_LINE_DDR                DDRB #define                DOTLED_LINE_PIN                PINB #define                DOTLED_LINE_SCKT        PB1 #define                DOTLED_LINE_SCKH        PB5 #define                DOTLED_LINE_SDA                PB3 #define                DOTLED_ROW_PORT                PORTC #define                DOTLED_ROW_DDR                DDRC #define                DOTLED_ROW_PIN                PINC #define                DOTLED_ROW_A0                PC0 #define                DOTLED_ROW_A1                PC1 #define                DOTLED_ROW_A2                PC2 #define                DOTLED_ROW_A3                PC3 #define                DOTLED_ROW_E                PC4 uint8 font[] = { /*--  调入了一幅图像:这是您新建的图像  --*/ /*--  宽度x高度=16x16  --*/ 0x00,0x00,0x00,0x00,0x08,0x38,0x18,0x44,0x08,0x44,0x08,0x04,0x08,0x08,0x08,0x10, 0x08,0x20,0x08,0x40,0x08,0x40,0x08,0x40,0x3E,0x7C,0x00,0x00,0x00,0x00,0x00,0x00 }; static void TransmitByte(uint8 byte); static void SelectRow(uint8 row); static void FlipLatchLine(void); static void TransmitByte(uint8 byte) {         uint8 i;                  for(i = 0 ; i < 8 ; i ++)         {                 if(byte & (1 << i))                 {                         DOTLED_LINE_PORT |= _BV(DOTLED_LINE_SDA);                 }                 else                 {                         DOTLED_LINE_PORT &= ~_BV(DOTLED_LINE_SDA);                 }                 //__delay_cycles(100);                 DOTLED_LINE_PORT |= _BV(DOTLED_LINE_SCKH);                 //__delay_cycles(100);                 DOTLED_LINE_PORT &= ~_BV(DOTLED_LINE_SCKH);                 //__delay_cycles(100);         } } static void SelectRow(uint8 row) {           //row -= 1;         row |= DOTLED_ROW_PIN & 0xe0;         DOTLED_ROW_PORT = row; } static void FlipLatchLine(void) {         DOTLED_LINE_PORT |= _BV(DOTLED_LINE_SCKT);         DOTLED_LINE_PORT &= ~_BV(DOTLED_LINE_SCKT); } void InitDotLedPort(void) {         DOTLED_LINE_PORT &= ~(_BV(DOTLED_LINE_SCKT) | _BV(DOTLED_LINE_SCKH));         DOTLED_LINE_PORT |= _BV(DOTLED_LINE_SDA);         DOTLED_LINE_DDR |= _BV(DOTLED_LINE_SCKT) | _BV(DOTLED_LINE_SCKH) | _BV(DOTLED_LINE_SDA);                  DOTLED_ROW_PORT |= 0x1f;         DOTLED_ROW_PORT &= 0xf0;         DOTLED_ROW_DDR |= 0x1f; } void EnableRow(boolean IsEnable) {         if(IsEnable)         {                 DOTLED_ROW_PORT &= ~_BV(DOTLED_ROW_E);         }         else         {                 DOTLED_ROW_PORT |= _BV(DOTLED_ROW_E);         } } void PrintDotLed(uint8 * buffer) {         uint8 i , tmp;                  for(i = 0 ; i < 16 ; i ++)         {                 tmp = *buffer ++;                 TransmitByte(~tmp);                 tmp = *buffer ++;                 TransmitByte(~tmp);                 SelectRow(i);                 FlipLatchLine();         } } void main(void) {         InitDotLedPort();                  EnableRow(TRUE);                  while(1)         {                 PrintDotLed(font);                 __delay_cycles(5000);         }          } //---------------------------------------------------- config.h文件 #ifndef        _CONFIG_H #define        _CONFIG_H //#define                GCCAVR #define                CPU_CYCLES        7372800L #ifndef                GCCAVR #define                _BV(bit)        (1 << (bit)) #endif #define                MSB                0x80 #define                LSB                0x01 #define                FALSE                0 #define                TRUE                1 typedef                unsigned char        uint8; typedef                unsigned int        uint16; typedef                unsigned long        uint32; typedef                unsigned char        boolean; #include <ioavr.h> #include <inavr.h> #include "dotled.h" #endif //-----

    标签: 16 点阵显示 汉字 显示程序

    上传时间: 2013-11-18

    上传用户:mnacyf

  • USB摄像头微处理器硬件设计

    USB2.0 摄像头微处理器支持高速USB2.0 接口,内嵌强劲的图像后处理单元,JPEG 高速编译码器,支持高达200 万像素的CMOS 传感器接口和CCD 传感器接口,处理器设计的产品可以实现独特的运动监测功能与脸部追踪功能,这不仅大大加强了显示效果,提高了画面的品质,更拓展了PC 摄像头的应用领域,如增强的实时视频聊天功能和门禁监测系统。关键词:USB2.0,微控制器,硬件设计1.引言USB2.0 摄像头微处理器支持高速USB2.0 接口,内嵌强劲的图像后处理单元,JPEG 高速编译码器,支持高达200 万像素的CMOS 传感器接口和CCD 传感器接口,处理器设计的产品可以实现独特的运动监测功能与脸部追踪功能,这不仅大大加强了显示效果,提高了画面的品质,更拓展了PC 摄像头的应用领域,如增强的实时视频聊天功能和门禁监测系统。主要功能:USB2.0 高速传输并兼容USB1.1;高速图像后处理单元;JPEG 高速编译码器;VGA 下30 帧/秒高速传输;CMOS/CCD 接口;内置8 比特微控制器。不仪具备以上的先进特性,还拥有以下多种可扩展性:多个GPIO 接口为增加连拍、LED 指示灯、快捷键等功能提供了无限可能;USB2.0 兼容USB1.1,为摄像头的广泛的使用增加了保障;支持多种操作系统,如64-bit Window,Windows XP,Linux,Mac,VxWorks,WinCE等等。以下就是对USB2.0 摄像头微处理器的硬件设计方法及外围电路分布的介绍。2.系统硬件设计2.1 振荡器USB2.0 摄像头微处理器的钟频是12MHz,外部时钟频率稳定性必须小于±50ppm。图1 是振荡器电路的设计参考图。

    标签: USB 摄像头 微处理器 硬件设计

    上传时间: 2014-01-16

    上传用户:dumplin9