欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: ATmega16單片機藍牙串口控制程序 [打印本頁]

作者: HI-XM    時間: 2019-1-30 11:27
標題: ATmega16單片機藍牙串口控制程序
/*
          HC-06藍牙模塊      ATmega16單片機
        
        VCC----------------VCC
        GND----------------GND
        TXD----------------RXD(PD0端口,設置輸入)
        RXD----------------TXD(PD1端口,設置輸出)
        
*/

/*ICCAVR7.2編程軟件*/
/*使用內部8M晶振*/
/*手機搜索下載<藍牙串口SPP>*/

/*頭文件*/
#include <iom16v.h>
#include <macros.h>
/*宏定義*/
#define uchar unsigned char
#define uint unsigned int
/*全局變量*/
uchar rdata;
uchar flag=0;
/*端口初始化*/
void IO_init(void)
{         
         DDRA = 0XFF;
         DDRB = 0XF0;
         DDRC = 0XFF;
         //DDRD = 0XFF;
        PORTA = 0X00;
        PORTB = 0X00;
        PORTC = 0XFF;
        //PORTD = 0XFF;
}
/*延時函數*/
void delayms(uint i)
{
    while(i--)
    {                          
            uint j;               
        for(j=1;j<=1332;j++);      
    }
}
/*串口初始化,波特率設置*/
void uart_init()
{
         /*控制寄存器清零*/
        UCSRB=0x00;
        UCSRA=0x00;
        /*異步模式,禁止奇偶校驗,停止位為1位,數據位為8位*/
        UCSRC=(1<<URSEL)|(0<<UPM0)|(3<<UCSZ0);
        /*9600bps @8.0000MHZ 不倍數*/
        UBRRH=(unsigned char)(0x33>>8);
        UBRRL=(unsigned char)0x33;
        /*接收、發送使能,接收中斷使能*/
        UCSRB=(1<<TXEN)|(1<<RXEN)|(1<<RXCIE);
        /*開全局中斷*/
        SREG=BIT(7);
        /*配置TX為輸出*/
        DDRD|=0x02;
}
/*數據發送*/
void uart_senddata(uchar data)
{
         /*第五位UDRE為高,數據寄存器空*/
        while(!(UCSRA&(BIT(UDRE))));
        /*發數據至UDR*/
        UDR=data;
        /*第六位TXC高, 發送結束*/
        while(!(UCSRA&(BIT(TXC))));
        /*置位TXC*/
        UCSRA|=BIT(TXC);
}
/*數據接收中斷服務*/
#pragma interrupt_handler uart_recdata:12
void uart_recdata(void)
{
         UCSRB&=~BIT(RXCIE);
        rdata=UDR;
        flag=1;
        UCSRB|=BIT(RXCIE);
}
/*主函數*/
void main(void)
{
        /*端口初始化*/
        IO_init();
        /*串口初始化*/
        uart_init();
        /*大循環*/
        while(1)
        {
                /*接收到藍牙數據后發送*/
                if(flag)
                {
                         uart_senddata(rdata);
                        flag=0;
                }
                /*LED燈控制*/
                switch(rdata)
                {
                          case 0xFF:
                                            PORTC=0xFE;
                                           delayms(2000);
                                           PORTC=0XFF;
                                           break;
                        case 0xFE:
                                            PORTC=0xFD;
                                           delayms(2000);
                                           PORTC=0XFF;
                                           break;
                        case 0xFD:
                                            PORTC=0Xfb;
                                           delayms(2000);
                                           PORTC=0XFF;
                                           break;
                        case 0xFB:
                                            PORTC=0xF7;
                                           delayms(2000);
                                           PORTC=0XFF;
                                           break;
                }
        }
}



作者: huangcanjie    時間: 2020-3-6 17:18
可以給原圖嗎




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1