新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 串行通信UART和PROTEUS仿真設計

        串行通信UART和PROTEUS仿真設計

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

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

        atmega64的程序:

        兩個文件,一個是將函數模塊化,別一個是主函數,調用(- -!最近習慣將程序模塊化。。。)

        //------------------uart.c---------------------

        //----這里將函數模塊化------------

        #include iom64v.h>

        void uart0_init(void)
        {
        UCSR0B = 0x00; //disable while setting baud rate
        UCSR0A = 0x00;
        UCSR0C = 0x06;
        UBRR0L = 0x33; //set baud rate lo
        UBRR0H = 0x00; //set baud rate hi
        UCSR0B = 0x18;
        }


        void uart0_Transmit( unsigned char da
        ta )
        {
        /* Wait for empty transmit buffer */
        while ( !( UCSR0A (1UDRE0)) )
        ;
        /* Copy ninth bit to TXB8 */
        UCSR0B = ~(1TXB80);
        //if ( da
        ta 0x0100 )
        //UCSR0B |= (1TXB80);
        /* Put da
        ta into buffer, sends the data */
        UDR0 = da
        ta;
        }

        unsigned char uart0_Receive( void )
        {
        /* 等待接收數據*/
        while ( !(UCSR0A (1RXC0)) )
        ;
        /* 從緩沖器中獲取并返回數據*/
        return UDR0;
        }

        //--------------main.c-----------

        //--------------------------------

        #include iom64v.h>
        #include spi.h
        #define commun_symbol 0x31

        //-----------send a commun_symbol-----
        //-----------receive a commun_symbol--
        // --no,continue receive||||||yes-->receive the da
        ta and send
        void main()
        {
        unsigned char bybuff;
        DDRB=0xff;
        PORTB=0xff;
        uart0_init();
        {

        do
        {
        bybuff=uart0_Receive();
        }
        while (bybuff!=commun_symbol);//commun_symbol);
        while(1)
        {

        uart0_Transmit(bybuff);
        bybuff=uart0_Receive();
        PORTB=(0xff|bybuff);
        }
        }
        }

        ok,任務完成了,改天實驗一下!


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 彩票| 安达市| 常德市| 明溪县| 台南县| 女性| 上虞市| 沁水县| 舒城县| 成都市| 永济市| 女性| 玉田县| 三都| 贡山| 盐池县| 三原县| 云阳县| 公安县| 莲花县| 中阳县| 唐山市| 九寨沟县| 临湘市| 克拉玛依市| 古蔺县| 如东县| 堆龙德庆县| 临沂市| 清原| 江西省| 普安县| 昌平区| 呼玛县| 益阳市| 巫山县| 威信县| 兰州市| 安西县| 德江县| 炉霍县|