您当前的位置:五五电子网电子知识单片机-工控设备PIC单片机16C5X模拟串口 正文
16C5X模拟串口

16C5X模拟串口

点击数:7664 次   录入时间:03-04 11:50:53   整理:http://www.55dianzi.com   PIC单片机
;
    ifndef STOPBITS
STOPBITS   equ     0       ; if Sbit2 = 0 then 1 Stop Bit else 2 Stop Bits
    endif
    ifndef CLOCKSPEED
        error "CLOCKSPEED not defined"
    endif
    ifndef BAUDRATE
        error "BAUDRATE not defined"
    endif
;
;
    if (CLOCKSPEED != 4 && CLOCKSPEED != 8 && CLOCKSPEED != 10 && CLOCKSPEED != 20)
        error "Clockspeed not supported.  Should be one of (4, 8, 10 or 20 MHz)"
    endif
    if (BAUDRATE != 1200 && BAUDRATE != 2400 && BAUDRATE != 4800 && BAUDRATE != 9600)
        error "Baudrate not supported.  Baudrate should be one of (1200, 2400, 4800, 9600)"
    endif


    if CLOCKSPEED == 4 
        if BAUDRATE == 19200
                error "Baudrate and clock speed incompatable"
        endif
        if BAUDRATE == 9600
BAUD_1  equ     .34     ; 3+3X = CLKOUT/Baud (9600 baud, 4Mhz)
BAUD_4  equ     .42     ; 3+3X = 1.25*CLKOUT/Baud
BAUD_X  equ     .31     ; 11+3X = CLKOUT/Baud
BAUD_Y  equ     .32     ; 9 +3X = CLKOUT/Baud
        endif
        if BAUDRATE == 4800
BAUD_1  equ     .68     ; 3+3X = CLKOUT/Baud (9600 baud, 4Mhz)
BAUD_4  equ     .86     ; 3+3X = 1.25*CLKOUT/Baud
BAUD_X  equ     .66     ; 11+3X = CLKOUT/Baud
BAUD_Y  equ     .66     ; 9 +3X = CLKOUT/Baud
        endif
        if BAUDRATE == 2400
BAUD_1  equ     .138     ; 3+3X = CLKOUT/Baud (9600 baud, 4Mhz)
BAUD_4  equ     .173    ; 3+3X = 1.25*CLKOUT/Baud
BAUD_X  equ     .135    ; 11+3X = CLKOUT/Baud
BAUD_Y  equ     .136    ; 9 +3X = CLKOUT/Baud
        endif
        if BAUDRATE == 1200
                error "Baudrate and clock speed incompatable"
        endif
    endif
    if CLOCKSPEED == 8 
        if BAUDRATE == 19200
                error "Baudrate and clock speed incompatable"
        endif
        if BAUDRATE == 9600
BAUD_1  equ     .68     ; 3+3X = CLKOUT/Baud (9600 baud, 8Mhz)
BAUD_4  equ     .86     ; 3+3X = 1.25*CLKOUT/Baud
BAUD_X  equ     .66     ; 11+3X = CLKOUT/Baud
BAUD_Y  equ     .66     ; 9 +3X = CLKOUT/Baud
        endif
        if BAUDRATE == 4800
BAUD_1  equ     .137     ; 3+3X = CLKOUT/Baud (9600 baud, 8Mhz)
BAUD_4  equ     .173     ; 3+3X = 1.25*CLKOUT/Baud
BAUD_X  equ     .135     ; 11+3X = CLKOUT/Baud
BAUD_Y  equ     .136     ; 9 +3X = CLKOUT/Baud
        endif
        if BAUDRATE == 2400
                error "Baudrate and clock speed incompatable"
        endif
        if BAUDRATE == 1200
            error "Baudrate and clock speed incompatable"
        endif
    endif
    if CLOCKSPEED == 10
         if BAUDRATE == 19200
            error "Baudrate and clock speed incompatable"
           endif
        if BAUDRATE == 9600
BAUD_1  equ     .86     ; 3+3X = CLKOUT/Baud (9600 baud, 10Mhz)
BAUD_4  equ     .108     ; 3+3X = 1.25*CLKOUT/Baud
BAUD_X  equ     .83     ; 11+3X = CLKOUT/Baud
BAUD_Y  equ     .84     ; 9 +3X = CLKOUT/Baud
        endif
           if BAUDRATE == 4800
BAUD_1  equ     .173     ; 3+3X = CLKOUT/Baud (4800 baud, 10Mhz)

上一页  [1] [2] [3] [4] [5]  下一页


本文关键字:暂无联系方式PIC单片机单片机-工控设备 - PIC单片机