新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > PIC18FXX8單片機通用同步異步收發器的接口電路和C源代碼

        PIC18FXX8單片機通用同步異步收發器的接口電路和C源代碼

        作者: 時間:2012-06-01 來源:網絡 收藏

        本文引用地址:http://www.104case.com/article/171367.htm

        voidinterrupt low_priorityLOW_ISR()/* 低優先級中斷子程序 */
        {
        if(RCIF==1)/* RS232接收中斷 */
        {
        RCIF=0;/* 清中斷標志 */
        receive232[receive_count]=RCREG;/* 接收數據并存儲 */
        send232[receive_count]=RCREG; /* 接收數據存放到發送緩沖數組 */
        receive_count++;/* 接收計數器加1 */
        if(receive_count>7)/* 如果已經接收到8個數據 */
        {
        receive_count=0;/* 接收計數器清0 */
        SciReceiveFlag=1;/* 置接收到8個數據標志 */
        }
        }
        elseif((0!=Send_Mode)(TXIF==1))/* 中斷發送數據方式且為發送中斷 */
        {
        if(send_count>7)/* 已經發送完8個數 */
        {
        TXEN=0;/* 發送不使能 */
        return;
        }
        else
        {
        send_count++;/* 發送計數器加1 */
        TXREG=*pointer++;/* 發送當前應發送數據,發送指針加1 */
        }
        }
        }

        main() /* 主程序 */
        {
        INTCON=0x00;/* 關總中斷 */
        ADCON1=0X07;/* 設置數字輸入輸出口,不用作模擬口 */
        PIE1=0;/* PIE1 的中斷不使能 */
        PIE2=0;/* PIE2 的中斷不使能 */
        PIE3=0;/* PIE3 的中斷不使能 */
        Send_Mode=1;/* Send_Mode不為0,中斷方式發送數據;
        Send_Mode =0,非中斷方式發送數據 */
        sciinitial();/* 串行通訊初始化子程序 */
        IPEN=1;/* 使能中斷高低優先級 */
        INTCON=INTCON|0xc0;/* 開總中斷、開外圍中斷 */
        while(1)
        {
        if(1==SciReceiveFlag)/* 是否接收到8個通信數據 */
        {
        SciReceiveFlag=0;/* 清接收到8個通信數據標志 */
        if(0!=Send_Mode) /* Send_Mode不為0,中斷方式發送 */
        {
        send_count=0;/* 發送數據計數清0 */
        pointer=send232[0];/* 發送指針指向發送數據數組首地址 */
        TXREG=*pointer++;/* 發送第一個數據后,將發送指針加1 */
        TXEN=1;/* 使能發送 */
        }
        else /* Send_Mode =0,非中斷方式發送數據 */
        {
        pointer=send232[0];/* 發送指針指向發送數據數組首地址 */
        for(i=0;i8;i++)
        {
        TXREG=*pointer++;/* 發送數據后,將發送指針加1 */
        while(1)/* 等待發送完成 */
        {
        if(TXIF==1)break;/* 等待發送完成 */
        }
        }
        }
        }
        }
        }

        DIY機械鍵盤相關社區:機械鍵盤DIY



        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 延寿县| 定边县| 义马市| 万山特区| 汶川县| 滕州市| 开化县| 依安县| 安阳市| 绥阳县| 苏州市| 青岛市| 中江县| 大埔区| 泰宁县| 平武县| 德江县| 潮州市| 九寨沟县| 西林县| 辽源市| 万荣县| 乳源| 岑巩县| 余江县| 藁城市| 清镇市| 景德镇市| 高碑店市| 环江| 泰和县| 甘泉县| 奈曼旗| 洛浦县| 上饶市| 沙洋县| 鄯善县| 通州市| 南昌市| 湟源县| 南投市|