中文字幕 另类精品,亚洲欧美一区二区蜜桃,日本在线精品视频免费,孩交精品乱子片免费

<sup id="3hn2b"></sup>

    1. <sub id="3hn2b"><ol id="3hn2b"></ol></sub><legend id="3hn2b"></legend>

      1. <xmp id="3hn2b"></xmp>

      2. 新聞中心

        8951串口中斷

        作者: 時間:2016-11-11 來源:網(wǎng)絡(luò) 收藏
        初始化串口中斷
        void InitCOM_Interrupt(void)
        {
        #if 1
        SCON = 0x50; //8bit
        TMOD = 0x20; //timer1 mode 2
        PCON = 0x00; //SMOD=1, double baud
        TL1 = 0xFD;
        TH1 = 0xFD; //Baud = 9600, 11.0592MHz
        //IE |= 0x90; //Serail break enable
        TR1 = 1; //timer1 start
        ES = 1;
        EA = 1; //disable interrupt
        #else
        SCON = = 0x50;
        TH2 = 0XFF;
        TL2 = 0xFD //baud = 115200, 11.0592MHz
        RCAP2H = 0xFF;
        RCAP2L = 0xFD; //
        TCLK = 1;
        RCLK = 1;
        C-T2 = 0;
        TR2 = 1;
        #endif
        }
        中斷函數(shù)
        void UART_Interrupt(void) interrupt 4
        {
        char temp;
        COMWrite("Interruptn");
        if(RI)
        {
        RI=0;
        temp=SBUF;
        COMPutc(temp);
        }
        }
        全部貼上
        /******************************************
        FCT applicaiton
        Flex-B15-TSD
        First:20110916
        Modify: 20111217
        Remark: modify the COM data format. Get the data with n.
        ******************************************/
        #include
        #include
        #include
        #include
        #include
        #define LOW 0
        #define HIGH 1
        #define ACTIVE 0x00
        #define IDLE 0x01
        sfr P1_ADC_EN = 0x97;
        sfr ADC_CONTR = 0xC5;
        sfr ADC_DATA = 0xC6;
        void InitPort()
        {
        //P0 = 0x00;
        //P3 = 0X00;
        P2 = 0xFF;//Out controller P2=0x00
        P1 = 0XFF;//input
        }
        void Delay(unsigned char cnt)
        {
        while(cnt > 0)
        {
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        cnt--;
        }
        }
        void Delay_Loop(unsigned int loop)
        {
        unsigned int i = 0;
        for(i=0; i
        Delay(0xA0);
        }
        /****************************
        ADC function: voltage = 256*Vin/Vcc
        ****************************/
        unsigned char ADConvert(unsigned char channel)
        {
        ADC_DATA = 0;
        P1_ADC_EN = (0x01 << channel);
        ADC_CONTR = channel;
        Delay(1);
        ADC_CONTR |= 0x08; //set ADC_START =1,
        while(!(ADC_CONTR &0x10)); //wait until ADC_FLAG =1
        ADC_CONTR &= 0xF7;
        return ADC_DATA; //data = 256*Vin/Vcc (Vcc is the vlitage of MCU)
        }
        void InitCOM(void)
        {
        #if 1
        SCON = 0x50; //8bit
        TMOD = 0x20; //timer1 mode 2
        PCON = 0x00; //SMOD=1, double baud
        TL1 = 0xFD;
        TH1 = 0xFD; //Baud = 9600, 11.0592MHz
        //IE |= 0x90; //Serail break enable
        TR1 = 1; //timer1 start
        ES = 0;
        EA = 0; //disable interrupt
        #else
        SCON = = 0x50;
        TH2 = 0XFF;
        TL2 = 0xFD //baud = 115200, 11.0592MHz
        RCAP2H = 0xFF;
        RCAP2L = 0xFD; //
        TCLK = 1;
        RCLK = 1;
        C-T2 = 0;
        TR2 = 1;
        #endif
        }
        void InitCOM_Interrupt(void)
        {
        #if 1
        SCON = 0x50; //8bit
        TMOD = 0x20; //timer1 mode 2
        PCON = 0x00; //SMOD=1, double baud
        TL1 = 0xFD;
        TH1 = 0xFD; //Baud = 9600, 11.0592MHz
        //IE |= 0x90; //Serail break enable
        TR1 = 1; //timer1 start
        ES = 1;
        EA = 1; //disable interrupt
        #else
        SCON = = 0x50;
        TH2 = 0XFF;
        TL2 = 0xFD //baud = 115200, 11.0592MHz
        RCAP2H = 0xFF;
        RCAP2L = 0xFD; //
        TCLK = 1;
        RCLK = 1;
        C-T2 = 0;
        TR2 = 1;
        #endif
        }
        /*****************************
        Send data
        *****************************/
        void COMPutc(char cdata)
        {
        SBUF = cdata;
        while(!TI);
        TI = 0;
        }
        void COMWrite(char* str)
        {
        while(*str)
        COMPutc(*str++);
        }
        void COMWriteNum(int num, char* str)
        {
        char d[32];
        sprintf(d, "%s:%dn", str, num);
        COMWrite(d);
        }
        /********************************
        Read Data
        ********************************/
        char COMGetc(void)
        {
        char temp;
        while(!RI);
        temp = SBUF;
        RI = 0;
        return temp;
        }
        void COMRead(char* str, unsigned char length)
        {
        unsigned char i = 0;
        for(i = 0; i < length; i++)
        {
        str[i] = COMGetc();
        }
        }
        void COMReadEnter(char* str)
        {
        char temp;
        do
        {
        //Delay(1);
        //COMWrite("ndatan");
        temp = COMGetc();
        *str=temp;
        //COMPutc(temp);
        str++;
        }while(temp!=n && temp!=r);
        *str =