新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > PIC單片機雙機異步通信程序

        PIC單片機雙機異步通信程序

        作者: 時間:2012-10-29 來源:網絡 收藏

        pic(dhd0)

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

        1 1編程(發送部分)

        #include

        /*該實現功能,該是發送部分*/

        unsigned char tran[8]; /*定義一個數組存儲發送數據*/

        unsigned char k,data; /*定義通用寄存器*/

        cONST char table[20]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0XD8,0x80,

        0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0x7f,0xbf,0x89,0xff};

        /*不帶小數點的顯示段碼表*/

        /*SPI顯示初始化子*/

        void SPIINIT()

        {

        PIR1=0;

        SSPCON=0x30;

        SSPSTAT=0xC0;

        /*設置SPI的控制方式,允許SSP方式,并且時鐘下降沿發送,與74HC595,當其

        *SCLK從低到高跳變時,串行輸入寄存器的特點相對應*/

        TRISC=0xD7; /*SDO引腳為輸出,SCK引腳為輸出*/

        TRISA5=0; /*RA5引腳設置為輸出,以輸出顯示鎖存信號*/

        }

        /*給數組賦初值子程序 */

        void fuzhi()

        {

        for(k=0;k8;k ) {

        tran[k]=k 3;

        }

        }

        /*SCI部件初始化子程序*/

        void sciint()

        {

        SPBRG=0X19; /*將傳輸的波特率設為約9 600位/秒*/

        TXSTA=0X04; /*選擇高速方式傳輸8位數據*/

        RCSTA=0X80; /*允許同步串行口工作*/

        TRISC6=1;

        TRISC7=1; /*將RC6、RC7設置為輸入方式,對外部呈高阻狀態*/

        }

        /*SPI傳輸數據子程序*/

        void SPILED(data)

        {

        SSPBUF=data; /*啟動發送*/

        do {

        ;

        }while(SSPIF==0);

        SSPIF=0;

        }

        /*顯示子程序,顯示8位數*/

        void display()

        {

        RA5=0; /*準備鎖存*/

        for(k=0;k8;k ) {

        data=tran[k];

        data=table[data]; /*查得顯示的段碼*/

        SPILED(data); /*發送顯示段碼*/

        }

        RA5=1; /*最后給一個鎖存信號,代表顯示任務完成*/

        }

        /*主程序*/

        main()

        {

        SPIINIT();

        fuzhi(); /*給數組賦初值*/

        sciint(); /*SCI部件初始化*/

        di(); /*中斷禁止*/

        TXEN=1; /*發送允許*/

        CREN=1; /*接收數據允許*/

        for(k=0;k8;k ){

        TXREG=tran[k]; /*發出一個字符*/

        while(1){

        if(TXIF==1) break;

        } /*等待寫入完成*/

        while(1){

        if(RCIF==1) break;/*若收到響應字節,則終止等待*/

        }

        RCREG=RCREG; /*讀響應字節,清RCIF*/

        }

        display(); /*顯示發送的數據*/

        while(1){

        ;

        }

        }

        51單片機相關文章:51單片機教程


        單片機相關文章:單片機教程


        單片機相關文章:單片機視頻教程


        單片機相關文章:單片機工作原理


        數字通信相關文章:數字通信原理


        通信相關文章:通信原理



        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 平罗县| 马山县| 攀枝花市| 沂南县| 岳阳县| 敦化市| 页游| 武平县| 大理市| 新乐市| 伊川县| 静宁县| 玉屏| 卢湾区| 东台市| 闽侯县| 密山市| 铜山县| 临猗县| 天水市| 彰化县| 靖州| 石渠县| 江永县| 芦溪县| 锦州市| 林西县| 阿图什市| 腾冲县| 闸北区| 年辖:市辖区| 精河县| 长汀县| 丰原市| 普兰店市| 利川市| 礼泉县| 西贡区| 丹阳市| 沂水县| 沂南县|