娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2025年01月27日(星期一)

正在發生

2018年01月27日 | 義隆單片機PT2262無線解碼程序

發布者:SereneVoyage 來源: eefocus關鍵字:義隆單片機  PT2262  無線解碼 手機看文章 掃描二維碼
隨時隨地手機看文章

Start(void); 
void Stop(void); 
u8   CurrentRead(void); 
u8   RandomRead(u8 addr); 
void ByteWrite(u8 addr,u8 data); 
void SendByte(u8 data);

void I2c_Ack(void); 
void I2c_NoAck(void); 
u8   I2c_CheckAck(void); 
u8   ReadByte(void); 
void CommandWrite(u8 addr); 
void PageWrite(u8 *data,u8 cnt,u8 BeginAddr); 
void SequentialRead(u8 *data,u8 cnt,u8 BeginAddr); 

#define SDA R60 
#define SCL R61 

u8 array[2]; 




//////////////////////////////////////////////////////////// 
// read Routine 

u8 ReadByte(void) 

    u8 i; 
    u8 data; 
     
    P6CR |= 0x01;                         //change to input 
    for (i=0;i<8;i++) 
    { 
        data <<= 1;                   
        if (SDA)    data++; 
        nop(); 
        SCL = 1; 
        nop(); 
        nop(); 
        SCL = 0;                     
    } 
    P6CR &= 0Xfe;             // change to output  
    return data; 


u8 CurrentRead(void) 

    u8 data; 
    u8 ack; 
     
    Start(); 
    SendByte(0xA1);           // read command 
    ack = I2c_CheckAck(); 
    data = ReadByte(); 
    I2c_NoAck(); 
    Stop(); 
     
    return data; 


u8 RandomRead(u8 addr) 

    u8 data; 
     
    CommandWrite(addr);     
    data = CurrentRead(); 
    return data;     


void SequentialRead(u8 *data,u8 cnt,u8 BeginAddr) 

    u8 i; 
    u8 ack; 
     
    CommandWrite(BeginAddr);     
    Start(); 
    SendByte(0xA1);           // read command 
    ack = I2c_CheckAck(); 
     
    for (i=0;i    { 
        *data = ReadByte(); 
        I2c_Ack(); 
    } 
    I2c_NoAck(); 
    Stop();             
     


//////////////////////////////////////////////////////////// 
// send Byte data via i2c 

void CommandWrite(u8 addr) 

    u8 ack; 
     
    Start(); 
    SendByte(0xA0); 
    ack = I2c_CheckAck(); 
    nop(); 
    SendByte(addr); 
    ack = I2c_CheckAck(); 
    nop();     



void ByteWrite(u8 addr,u8 data) 

    u8 ack; 
     
    CommandWrite(addr); 
    SendByte(data);     
    ack = I2c_CheckAck(); 
    nop(); 
    Stop();     


void PageWrite(u8 *data,u8 cnt,u8 BeginAddr) 

    u8 i; 
    u8 ack; 
     
    CommandWrite(BeginAddr); 
    for (i=0;i    { 
        SendByte((u8)*data);     
        ack = I2c_CheckAck();         
    }     
    Stop(); 


//////////////////////////////////////////////////////////// 
// send 8 bit data 

void SendByte(u8 data) 

    u8 i; 
     
    for(i=0;i<8;i++)       
    {            
        if(data&0x80) 
        { 
            SDA = 1;      // sda = 1 
        }else{ 
            SDA = 0;      // sda = 0 
        } 
        nop(); 
        nop(); 
        SCL = 1; 
        nop(); 
        nop(); 
        SCL = 0; 
        data <<= 1; 
    } 


//////////////////////////////////////////////////////////// 
// acknowLEDge of i2c 

void I2c_Ack(void) 

    SDA = 0; 
    nop(); 
    SCL = 1; 
    nop(); 
    nop(); 
    SCL = 0; 


void I2c_NoAck(void) 

    SDA = 1; 
    nop(); 
    SCL = 1; 
    nop(); 
    nop(); 
    SCL = 0; 


u8 I2c_CheckAck(void) 

    u8 rst; 
     
    rst = 0; 
    SDA = 1; 
    P6CR |= 0x01 ;       // SDA set to input 
    nop(); 
    SCL = 1; 
    if (!SDA) rst = 1;   // have ack  
    nop(); 
    SCL = 0; 
    P6CR &= 0xfe ;       // SDA set to output 
    return rst; 

//////////////////////////////////////////////////////////// 
// start and stop of i2c bus 

void Start(void) 

    SDA = 1; 
    SCL = 1; 
    nop(); 
    nop(); 
    SDA = 0; 
    nop(); 
    nop(); 
    SCL = 0; 
    nop(); 
    nop(); 


void Stop(void) 

    SDA = 0; 
    nop(); 
    nop(); 
    SCL = 1; 
    nop(); 
    nop(); 
    SDA = 1; 
    nop(); 
    nop(); 
}#include "EM78x156xx.h" 
#include "HEAD156.H" 


/////////////////////////////////////////////////// 
// function declare 

void SysInit(void); 
u8   KeySCAN(void); 
void Beep(s8 time); 
void ScanBuz(void); 
void StopBeep(void); 
void ScanIR(void); 
u8   CheckIR(void); 

/////////////////////////////////////////////////// 
// Global Variable 
u8 volatile IntrCnt; 
u8 MainStatus; 

enum{             // main status 
    PROTECT, 
    RELEASE, 
    RUNNING, 
    ALARM
}; 

u8 MsCnt; 

#define KEY_DOOR    0X01 
#define KEY_ACC     0X02 
#define KEY_BREAK   0X04 

u8 SaveKey; 
u8 Cont; 
u8 Trg; 

void main() 

    SysInit(); 
    sei(); 

    while(1) 
    { 
        wdtc(); 

        if (IntrCnt == 160)        // 20ms           
        { 
            IntrCnt = 0;             
            MsCnt++; 
             
            ScanBuz(); 
             
            ScanIR(); 
             
            if (KeyScan()) 
            { 
                if (Trg & KEY_DOOR) 
                { 
                    Beep(1); 
                      nop(); 
                } 
                if (Trg & KEY_ACC) 
                { 
                    Beep(1); 
                      nop(); 
                } 
                if (Trg & KEY_BREAK) 
                { 
                      nop(); 
                }         
            } 
             
            switch(MsCnt) 
            {     
                case 50:           // 1s             
                    MsCnt =0; 

                    break; 
                default: 
                    break; 
            }            
        } 
    } 



/************************************************** 
              BUZZER PROCESS ROUTINE 
p61 
**************************************************/ 
#define BUZPIN  R65 
bit bBuzEn=0; 
bit bBuzSW; 
s8  cntBuzTimes; 
u8  cntBuz; 

void ScanBuz(void) 

    if (bBuzEn){ 
         
        if (cntBuzTimes == -1){ 
            BUZPIN = 1 ;                                 // END OF SOUND 
            return; 
        } 
         
        if (bBuzSW){ 
            BUZPIN = 1 ;             
            if (cntBuz-- == 0){ 
                cntBuz = 25 ;              // RELOAD DATA 
                bBuzSW = 0 ;                // CHANGE STATUS                 
            } 
        }else{ 
              BUZPIN = 0 ; 
             if (cntBuz-- == 0){ 
                cntBuz = 25 ;      
                bBuzSW = 1 ; 
                cntBuzTimes--;                       // 1 TIMES 
            } 
        } 
         
        if (cntBuzTimes == 0){ 
            bBuzEn = 0;                                  // END OF SOUND 
        } 
    } 


void Beep(s8 time)        // time = n*tICk 
{  
    bBuzEn      = 1; 
    bBuzSW      = 1; 
    cntBuz      = 25;     
    cntBuzTimes = time; 


void StopBeep(void) 

    bBuzEn = 0; 
    BUZPIN = 0; 


/************************************************** 
               KEY SCAN ROUTINE 
P60 door    0 : close 1 : open 
P61 ACC     0 : open  1 : close 
P62 Break   0 : open  1 : close 

**************************************************/ 

u8 KeyScan(void) 

    u8 temp=0;  
     
     temp  = PORT6; 
     temp &= 0x07 ; 
     temp ^= 0x06 ; 
          
     if (temp != SaveKey){ 
         SaveKey = temp; 
         return 0; 
     }else{ 
        Trg  = SaveKey & (SaveKey ^ Cont);        // trigger entry 
        Cont = SaveKey;                        // continuous entry                                                       
        return 1;   
    }              



/************************************************** 
             IR PROCESS ROUTINE  
**************************************************/ 
#define ir_port 0x05 
#define ir_pin  2 

#define    ir_pass       0 
#define    ir_lead       1 
#define    ir_receive    2 
#define    ir_syn        3 
#define    ir_delay      4 


#define    ir_dat_code   6 
#define    ir_dat_bit    24 

u8 ir_flag=0; 
u8 ir_reg_bit;                
u8 ir_reg_code;  
u8 ir_addr_hig; 
u8 ir_addr_low; 
u8 ir_user; 

#define CODE_LOCK   0x41 
#define CODE_UNLOCK 0x42 
#define CODE_SOUND  0x44 
#define CODE_BACK   0x49 
#define CODE_FIND   0x48 

void ScanIR(void) 

    if (CheckIR() == 0)   // if check error ,return 
    { 
        return; 
    }     
     
    ir_flag = 0; 
     
    switch(ir_user) 
    { 
        case CODE_LOCK: 
            Beep(2); 
            break; 
        case CODE_UNLOCK: 
            Beep(2); 
            break; 
        case CODE_SOUND: 
            Beep(2); 
            break; 
        case CODE_BACK: 
            Beep(2); 
            break; 
        case CODE_FIND: 
            Beep(2); 
            break; 
        default: 
            break;         
    } 


u8 CheckIR(void) 

    u8 temp; 
     
    temp = ir_flag ^ 0xff; 
    temp&= 0x01; 
      
    if (temp)             // if ir_pass == 0 
    { 
        ir_flag &= 0xfe;  // clear pass flag 
        return 0; 
    } 
         
    if ((ir_addr_hig==0xf6) && (ir_addr_low == 0x7c)) 
    { 
        return 1;         // success 
    }else{     
        ir_flag = 0;  // clear pass flag 
        return 0;         // fail 
    } 






//================================== 
void _iNTCall interrupt_l(void) @ 0x08:low_int 0 

    _asm{ 
         MOV     0x1f,a 
        swap   0x1f 
        swapa  0x03 
         MOV     0x1e,a   
    }       

void _intcall interrupt(void) @ int 0 

    /////////////////////////////////////// 
    // intrrupt counter increase 
    IntrCnt++;     
     
    /////////////////////////////////////// 
    // RF receive 

    _asm{     
     
        int_ir: 
               jbc             %ir_flag,ir_pass 
               jmp             int_ir_end 
                
               jbc             %ir_flag,ir_receive 
               jmp             code_receive 
                
               jbc             %ir_flag,ir_lead 
               jmp             code_lead 
                
               jbc             ir_port,ir_pin           // if detect low level 
               jmp             int_ir_end 
               bs              %ir_flag,ir_lead 
               clr             %ir_reg_code 
        /***********************************************/        
        code_lead:        
               jbc             ir_port,ir_pin                       
               jmp             detect_hig     

        detect_low:                       
               jz              %ir_reg_code 
               jmp             int_ir_end       
        detect_error:        
               clr             %ir_reg_code            // time overflow error 
               bc              %ir_flag,ir_lead 
               jmp             int_ir_end 
                
        detect_hig:        
                                                       // calculate the low pulse width 
                MOV              a,@85 
               sub             a,%ir_reg_code          // reg > 85 
               jbs             0x03,0 
               jmp             detect_error 
                
                MOV              a,@87                   // reg < 87 
               sub             a,%ir_reg_code 
               jbc             0x03,0 
               jmp             detect_error 
                
               bs              %ir_flag,ir_receive     // lead have received ,begin to read code 
                
               bs              %ir_flag,ir_delay 
                MOV              a,@ir_dat_code 
                MOV              %ir_reg_code,a 
                MOV              a,@ir_dat_bit 
                MOV              %ir_reg_bit,a 
                
        //       jmp             int_ir_end 
        /***********************************************/         
        code_receive:                                                                                                                 
               jbs             %ir_flag,ir_syn               
               jmp             code_r1     
               jbc             ir_port,ir_pin                 
               jmp             int_ir_end                      
               bc              %ir_flag,ir_syn 
              
        code_r1:                           
               jbc             %ir_flag,ir_delay                 
               jmp             code_r2                

               jbs             ir_port,ir_pin           // high level begin       
               jmp             int_ir_end          
               bs              %ir_flag,ir_delay                    
        code_r2:               
               djz             %ir_reg_code                    
               jmp             int_ir_end 
              
               bc              %ir_flag,ir_delay               
               jbc             ir_port,ir_pin                
               jmp             code_one 
        code_zero:                
               bc              0x03,0 
               jmp             ram_shift  
        code_one:   
               bs              %ir_flag,ir_syn                            
               bs              0x03,0 
        ram_shift:                
               rlc             %ir_user 
               rlc             %ir_addr_low 
               rlc             %ir_addr_hig   
        code_end:  
                MOV              a,@ir_dat_code 
                MOV              %ir_reg_code,a                
               djz             %ir_reg_bit 
               jmp             int_ir_end            
               bs              %ir_flag,ir_pass                ; 接收成功標志                                            
        int_ir_end: 
               nop   
                        
    } // end of asm code                    
     
    /////////////////////////////////////// 
    // clear interrupt flag 
    TCIF = 0 ; 
    _asm{ 
        swapa  0x1e 
         MOV     0x03,a 
        swapa  0x1f    
    } 


void SysInit(void) 

    cli();      
      
    /*---------------------------------------------------------------------------  
    CONT_SETUP 
         argument : TCC_1_1 ~ TCC_1_256              prescal        
                    TCC_SRC_INT   / TCC_SRC_EXT      source selection 
                    TCC_EDGE_RISE / TCC_EDGE_FALL    trige edge selection 
                    TCC_PRESCAL   / WDT_PRESCAL      TCC OR WDT USE PRESCAL    
    ---------------------------------------------------------------------------*/  
    _asm 
    { 
         MOV     a,@(WDT_PRESCAL|WDT_1_32 | TCC_SRC_INT)    //16.34ms intrupt time 
        contw 
    } 
     
    /* 
    IOW MACRO ARG1,ARG2 
                    IOR    REG1,REG2              IOR REG2 -> REG1 
                    IOW    REG1,REG2              IOW REG2 -> REG1                
    */ 
  
    P5CR = 0X04 ;                   // port5 I/O 
    P6CR = 0X07 ;                   // port6 I/O 
    PDCR = 0XFF ;                   // PULL DOWN  0:ENABLE,  1:DISABLE 
    ODCR = 0X00 ;                   // OPEN DRAIN 0:DISABLE, 1:ENABLE 
    PHCR = 0XF8 ;                   // PULL HIGH  0:ENABLE,  1:DISABLE 
     
    PORT5 = 0x0c; 
    PORT6 = 0x08; 
                
    /*---------------------------------------------------------------------------  
    WDT_SETUP     
        argument : WDT_ENABLE    / WDT_DISABLE          enable conrtol 
                   ROC_ENABLE    / ROC_DISABLE          R OPTION    
                   EIS_IO        / EIS_INT              P60 ACT AS IO OR INT PIN   
    ---------------------------------------------------------------------------*/   
  
    WDTCR = WDT_ENABLE|ROC_DISABLE|EIS_IO;    
     
    /*---------------------------------------------------------------------------  
    IMR1_SETUP 
         argument :  IMR_TCC    /IMR_EXT                              
    ---------------------------------------------------------------------------*/  

    IMR = IMR_TCC ; 
                        


HEAD156.H

#ifndef _EMCDEF_H 
#define _EMCDEF_H 

typedef unsigned int     u8; 
typedef signed int       s8;  
typedef unsigned short   u16; 
typedef signed short     s16; 
typedef unsigned long    u32; 
typedef signed long      s32; 

#define sei()  _asm{eni} 
#define cli()  _asm{disi} 
#define wdtc() _asm{wdtc} 
#define nop()  _asm{nop} 

#define TRUE    1 
#define FALSE   0 
#define ENABLE  1 
#define DISABLE 0 
#define ON      1 
#define OFF     0 


/***************************************************** 
*                   CONT REGISTER                    * 
*****************************************************/ 
#define TCC_1_1                                       0x08          /*   TCC PRESCALE 1:1 (DEFAULT)       */       
#define TCC_1_2                                       0x00          /*   TCC PRESCALE 1:2                 */ 
#define TCC_1_4                                       0x01          /*   TCC PRESCALE 1:4                 */ 
#define TCC_1_8                                       0x02          /*   TCC PRESCALE 1:8                 */ 
#define TCC_1_16                                      0x03          /*   TCC PRESCALE 1:16                */ 
#define TCC_1_32                                      0x04          /*   TCC PRESCALE 1:32                */ 
#define TCC_1_64                                      0x05          /*   TCC PRESCALE 1:64                */ 
#define TCC_1_128                                     0x06          /*   TCC PRESCALE 1:128               */ 
#define TCC_1_256                                     0x07          /*   TCC PRESCALE 1:256               */ 
                                                                    /*   1/FOSC*PRESCAL*256               */   
#define WDT_1_1                                       0x00 
#define WDT_1_2                                       0x01 
#define WDT_1_4                                       0x02 
#define WDT_1_8                                       0x03 
#define WDT_1_16                                      0x04 
#define WDT_1_32                                      0x05 
#define WDT_1_64                                      0x06 
#define WDT_1_128                                     0x07                                                                                                
/****************************************************/ 
#define TCC_SRC_INT                                   0x00          /*   INTERNAL INSTRUCTION CLOCK       */           
#define TCC_SRC_ERX                                   0x20          /*   EXTERNAL CLOCK(TCC/P54 PIN)(DEF) */                    
#define TCC_EDGE_RISE                                 0x00 
#define TCC_EDGE_FALL                                 0x10 
#define TCC_PRESCAL                                   0x00 
#define WDT_PRESCAL                                   0x08 




/***************************************************** 
*                   WDT  ENABLE                      * 
*****************************************************/ 
#define WDT_ENABLE                                    0x80 
#define WDT_DISABLE                                   0x00 
#define ROC_ENABLE                                    0x01 
#define ROC_DISABLE                                   0x00 
#define EIS_IO                                        0x00 
#define EIS_INT                                       0x40 



/***************************************************** 
*            INTERRUPT MASK REGISTER                 * 
*****************************************************/ 
#define IMR_TCC                                       (u8)0X01 
#define IMR_ICI                                       (u8)0x02 
#define IMR_EXT                                       (u8)0x04 
#define IMR1_ALL_DISABLE                              (u8)0x00 
#define IMR1_ALL_ENABLE                               (u8)0xFF                  
/****************************************************/ 


#endif 

 

EM78x156xx.H

/**************************************************** 
 *    Header file for the Elan                         * 
 *    EM78P156E Chip                                    * 
 *    EM78P156N chip                                    * 
 *  Title: EM78X156 include file                    * 
 *    Description: The Definition of EM78x156            * 
 *                 Registers and Bits                 * 
 *    Company: ELAN MICROELECTRONICS (SZ) LTD.        * 
 *    Author:    HongXi.Tang                                * 
 *    Date: 10/05/2005                                * 
 *    Version: v1.0                                    * 
 ****************************************************/ 
  
static unsigned int TCC     @0x01:rpage 0; 
static unsigned int PC      @0x02:rpage 0; 
static unsigned int STATUS  @0x03:rpage 0; 
static unsigned int RSR     @0x04:rpage 0; 
static unsigned int PORT5   @0x05:rpage 0; 
static unsigned int PORT6   @0x06:rpage 0; 
static unsigned int ISR        @0x0F:rpage 0; 
  
/*======================================================; 
;  Special Purpose Registers Define                     ; 
; ======================================================; 

; A: Accumulator 
; It can’t be addressed. 

; CONT: Control Register 

     ;{                        
                              ; bit 7 not used 
         mINT     ==  0x40    ; Interrupt enable flag 
                              ; "0" : Masked by DISI or hardware interrupt 
                              ; "1" : Enabled by ENI/RETI instructions 
         mTS      ==  0x20    ; TCC signal source 
                              ; "0" : Internal instruction cycle clock 
                              ; "1" : Transition on TCC pin 
         mTE      ==  0x10    ; TCC signal edge 
                              ; "0" : Increment if the transition from low to high takes place on TCC pin 
                              ; "1" : Increment if the transition from high to low takes place on TCC pin 
         mPAB     ==  0x08    ; Prescaler assignment bit 
                              ; "0" : Prescaler assign to TCC 
                              ; "1" : Prescaler assign to WDT 
         mPSR2    ==  0x04    ; TCC/WDT prescaler Select bit[2] 
         mPSR1    ==  0x02    ; TCC/WDT prescaler Select bit[1] 
         mPSR0    ==  0x01    ; TCC/WDT prescaler Select bit[0] 
                              ; |------|------|------|----------|----------| 
                              ; | PSR2 | PSR1 | PSR0 | TCC Rate | WDT Rate | 
                              ; |------|------|------|----------|----------| 
                              ; |  0   |  0   |  0   |   1:2    |   1:1    | 
                              ; |  0   |  0   |  1   |   1:4    |   1:2    | 
                              ; |  0   |  1   |  0   |   1:8    |   1:4    | 
                              ; |  0   |  1   |  1   |   1:16   |   1:8    | 
                              ; |  1   |  0   |  0   |   1:32   |   1:16   | 
                              ; |  1   |  0   |  1   |   1:64   |   1:32   | 
                              ; |  1   |  1   |  0   |   1:128  |   1:64   | 
                              ; |  1   |  1   |  1   |   1:256  |   1:128  | 
                              ; |------|------|------|----------|----------| 
        ;} 

*/ 
  
static io unsigned int P5CR     @0x05:iopage 0; 
static io unsigned int P6CR     @0x06:iopage 0; 
static io unsigned int PCR      @0x0A:iopage 0;    //Prescaler Counter Register 
static io unsigned int PDCR     @0x0B:iopage 0;    //Push-down Control Register 
static io unsigned int ODCR     @0x0C:iopage 0;    //Open-drain Control Register 
static io unsigned int PHCR     @0x0D:iopage 0;    //Push-high Control Register 
static io unsigned int WDTCR     @0x0E:iopage 0;    //WDT Control Register 
static io unsigned int IMR        @0x0F:iopage 0;    //Interrupt Mask Register 
  
/*    STATUS bits    */ 
static bit GP2 @0x03@7:rpage 0;     
static bit GP1 @0x03@6:rpage 0; 
static bit GP0 @0x03@5:rpage 0;    //general purpose read/write bits 
static bit T   @0x03@4:rpage 0;    //time-out bit 
static bit P   @0x03@3:rpage 0;    //power down bit 
static bit Z   @0x03@2:rpage 0;    ///Zero flag 
static bit DC  @0x03@1:rpage 0;    //Auxiliary carry bit 
static bit C   @0x03@0:rpage 0;    //carry flag 
  
/*    PORT5 bits    */ 
static bit R53 @0x05@3:rpage 0; 
static bit R52 @0x05@2:rpage 0; 
static bit R51 @0x05@1:rpage 0; 
static bit R50 @0x05@0:rpage 0; 
  
/*    PORT6 bits    */ 
static bit R67 @0x06@7:rpage 0; 
static bit R66 @0x06@6:rpage 0; 
static bit R65 @0x06@5:rpage 0; 
static bit R64 @0x06@4:rpage 0; 
static bit R63 @0x06@3:rpage 0; 
static bit R62 @0x06@2:rpage 0; 
static bit R61 @0x06@1:rpage 0; 
static bit R60 @0x06@0:rpage 0; 
   
/*    interrupt static register(RF)    */ 
static bit EXIF @0x0F@2:rpage 0;    //External interrupt flag 
static bit ICIF @0x0F@1:rpage 0;    //input status changed interrupt flag 
static bit TCIF @0x0F@0:rpage 0;    //TCC overflowing interrupt flag  

 

無線接收碼形

__________|--------|__|-----------------------
lead        


lead = 11ms

|-----------|___    1 code , hig:1.1ms low 300us

|---|___________    0 code , hig: 300us  low 1.1ms

24 bit

address code

0xF67C

user code:

lock  : 0x41
unlock: 0x42
sound : 0x44
back  : 0x49
find  : 0x48

無線接收部分完成并且測試完畢。


關鍵字:義隆單片機  PT2262  無線解碼 引用地址:義隆單片機PT2262無線解碼程序

上一篇:EMC單片機EM78P260的宏定義
下一篇:em78p153大功率輪廓燈跳機同步4回路程序

推薦閱讀

本例為單字節二進制數(0X20)轉換為非壓縮BCD 碼,存在0X25,0X24,0X23 中,0X25 為百位,0X23 為個位。main: MOV a,@0xa4 ;賦值MOV 0x20,aMOV 0x21,aMOV 0x22,aMOV a,@0x0 ;0x23,0x24,0x25 單元清0MOV 0x23,aMOV 0x24,aMOV 0x25,aMOV a,@0x64 ;對100 的個數計數MOV 0x26,aMOV a,@0x25 ;百位存在0x25 中MOV 0x04,acall a0 ;調計數子...
2019 年,5G 將陸續在各國正式商轉。 華為原本全球市占率 27.9%,穩坐無線通信基站龍頭,但隨著美國、澳洲、紐西蘭、日本等國對華為資安有疑慮而停用,讓原本市占 26.6% 排行第二的瑞典愛立信(Ericsson)極可能竄位。被稱為「2G 王者」的愛立信,2000 年后發展就停滯,歷經 4 任CEO仍無起色,2017 年更被華為超越,拱手讓出全球最大電信設備公...
三大核心零部件:難度最高,成本大頭工業機器人是一個典型的機電一體化產品,由三大部分、六個子系統組成,三大部分分別是機械部分、傳感部分、控制部分,六個子系統分別是:驅動系統、機械結構系統、控制系統、人—機交互系統、感受系統、機器人—環境交互系統。工業機器人最核心的三個零部件分別是伺服電機、減速機、控制器(包括運動控制),是工業機器...
CES不僅僅是關于最新的消費電子產品,也有一些面向工程師的產品。 據我所知,CES的展覽廳就像一個馬戲團。我從來沒有參加過現場活動,但今年的CES是虛擬的,可以讓我們大飽眼福。 雖然CES展示了電視、機器人、手機和其他消費設備,但也不乏工程師產品。大部分的工程師虛擬展覽都圍繞著 Wi-Fi 6、6E展開。其中包括無線電話、射頻前端、天線、IP和模塊。 為...

史海拾趣

問答坊 | AI 解惑

自制無源可調恒流電子負載

自制無源可調恒流電子負載(原創) 作者:Azhu E-mail:circuit51@tom.com 在電源行業,電子負載是所有廠家都必需的研發或生產設備,市場上的電子負載大多都較貴,而且都是需要電源供電才能工作。本文提供一種電路方案,使讀者可以自 ...…

查看全部問答∨

內核配置說明

-------------------------------------------------------------------------------------- 飛凌公司打造的一款最豪華適用的S3C2440開發平臺-TE2440-II 迄今為止最豪華適用的S3C2440開發平臺!   該產品采用“核心板(6層設計)+底版(4層 ...…

查看全部問答∨

win ce 是否可以直接連接后臺數據庫

我想開發一個系統,將后臺數據庫中的一條記錄通過WIFI讀取到設備上,在設備上對數據進行修改,然后保存進數據庫。開發語言是C#,因為之前一直是開發winform的,所以考慮能不能像winform一樣操作數據庫?如果不行的話,有什么方法可以實現數據庫的操 ...…

查看全部問答∨

告警錯誤,怎么解決?

用Keil C編譯時,出現如下錯誤: WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS SEGMENT: ?PR?_?TCPCONNECT?TCP 請問怎么解決?…

查看全部問答∨

(已解決)LM3S8962的GPIO Commit具體是啥意思啊?

哪位前輩知道LM3S8962的GPIO Commit具體是啥意思啊?請賜教:$ [ 本帖最后由 lilong8470 于 2010-8-30 23:15 編輯 ]…

查看全部問答∨

su和sudo的區別與使用(轉載自CHINAUNIX.NET,作者若寒)

                                       s ...…

查看全部問答∨

求教stm8l152c6AD問題,

求教stm8l152c6  AD問題,兩個680k電阻串聯接到電源,中間點連到AD口檢測電壓,中點電壓應該是電源電壓的一半,但是測出來和電源電壓基本相同,是什么問題?      相同電路在430f235上測量就沒有問題,求教? ...…

查看全部問答∨

Wifi網絡安全討論

現在無線網絡非常普及,小區內,商場里,寫字間周圍,到處都遍布WIFI的無線網絡,由于無線網絡的特殊性,也帶來了嚴重的安全問題,蹭網一族也隨之產生。蹭網其實并不是只有黑客才能掌握的技能,只要你掌握了以下這些軟件(在黑白網絡都有下載并有相 ...…

查看全部問答∨

M4/M3 StellarisWare圖形庫入門系列(一)——基礎知識

  1.前言TI Stellaris系列M3/M4之所以強大,StellarisWare軟件庫提供的快速軟件開發解決方案功不可沒。作為TI StellarisWare庫的一部分,StellarisWare圖形庫提供了一套比較完整的MCU圖形顯示方案,即可以進行圖形、文字的繪制,也可以輕松 ...…

查看全部問答∨

利用電容進行三極管延時開關的遇到的問題

輸入電壓是VCC=6.5v,8050的基極輸入為cup輸出,請問這個電路是在充電多長時間才會形成通路,還是說構不成通路,小弟認為是夠不成通路,因為輸入電壓時6.5v當充滿電的時候c極電壓不就就近6.5v,6.5V&gt;5.V根本就是反偏。請問我分析得正確嗎?( ...…

查看全部問答∨
小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 高邑县| 马边| 黎城县| 鹿泉市| 彰化县| 外汇| 兴宁市| 陆丰市| 碌曲县| 金寨县| 澳门| 清河县| 靖西县| 三河市| 通许县| 黑水县| 翁牛特旗| 利津县| 资中县| 酉阳| 舒兰市| 周口市| 小金县| 隆昌县| 修武县| 芜湖市| 昌黎县| 民县| 辽阳市| 哈密市| 天门市| 五台县| 刚察县| 玛纳斯县| 青阳县| 怀远县| 永丰县| 广汉市| 金昌市| 凌云县| 文安县|