亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? comm_test.c

?? 在單片機中
?? C
?? 第 1 頁 / 共 2 頁
字號:
}
void led_write(unsigned int opcode_add, unsigned char data){
	
	led_init();
	
		LED_CS = 0;
		unsigned char  j;
      for (j = 0; j < 16; j++)//發(fā)送控制字opcode_add;
      {
			SPISCK = 0;
		    if (opcode_add & 0x8000)//從高位發(fā)起;
            	SPISO = 1;
            else
                SPISO = 0;
            DelayNmSec(DELAY);
            SPISCK = 1;//上升沿有效;
            DelayNmSec(DELAY);
            opcode_add <<= 1;
       }
       	for (j = 0; j < 8; j++)//發(fā)送字節(jié)data;
        {
            SPISCK = 0;

            if (data & 0x80)//從高位發(fā)起;
                 SPISO = 1;
            else
                 SPISO = 0;
            DelayNmSec(DELAY);   
            SPISCK = 1;//上升沿有效;
            DelayNmSec(DELAY);
            data <<= 1;
        }
			LED_CS = 1;
        	return;

	}
	

	void led_config(void){
		
		led_write(0x400A, 0xA0);

		/*
			配置芯片MCP23S17為與每個端口關(guān)聯(lián)的寄存器非配到不同的存儲區(qū),
		  	禁止硬件順序操作,地址指針不遞增,禁止硬件地址引腳;
		*/
		
		led_write(0x4000, 0x00);
		//配置端口A 的IO方向寄存器為全部輸出;
		led_write(0x4010, 0x00); 
		//配置端口B 的IO方向寄存器為全部輸出;

	}
	
	void update_to_led(const unsigned char *data){
		
		led_write(0x400A, *data);//將*data寫入PORTA中;
		led_write(0x401A, *(data + 1));
		//將*(data + 1)寫入PORTB中;
	
	}
void InitUART2(unsigned int baudrate,unsigned char parity_check)              
{

   if(parity_check== PARITY_EVEN) 
          U2MODEbits.PDSEL=1;
   else if(parity_check== PARITY_ODD) 
          U2MODEbits.PDSEL=2;
    else
          U2MODEbits.PDSEL=0x00;

	//U2MODEbits.UARTEN = 1;
    // baud rate
	U2BRG = ((FCY/16)/baudrate) - 1;
	
	    /* clear IF flags */
    IFS1bits.U2RXIF = 0;
    IFS1bits.U2TXIF = 0;

    /* set priority */
    IPC7bits.U2RXIP = 6;
    IPC7bits.U2TXIP = 5;
    
    IEC1bits.U2RXIE = 0;  //enable
	IEC1bits.U2TXIE = 0;  //disable

    U2MODE = 0xC002;
    //U2STA = 0x8550;
  	U2STA = 0x8550;
  	
  //Parity and Data Selection bits
   //  11 = 9-bit data, no parity
   //  10 = 8-bit data, odd parity
   //  01 = 8-bit data, even parity
   //  00 = 8-bit data, no parity
  


}



void ConfigIntUART2(void)
{

}

void __attribute__((__interrupt__)) _U2TXInterrupt(void)
{
	while(U2STAbits.TRMT == 0);//當(dāng)發(fā)送移位寄存器為空時(U2STAbits.TRMT == 1)則數(shù)據(jù)已經(jīng)發(fā)送完畢;
	IFS1bits.U2TXIF = 0;
}

// interrupt vector for UART2 RX interrupt
//
//  1)使用meterrx_str緩沖區(qū)和電表進行通訊,包括內(nèi)表,
//  2)使用rx_str緩沖區(qū)和232以及紅外口進行通迅,只接收幀報文,最大MAXTXSIZE字節(jié)
//  3)都使用meterrx_ptr為緩沖區(qū)指針
//
void __attribute__((__interrupt__)) _U2RXInterrupt(void)
{
	IFS1bits.U2RXIF = 0;	// clear interrupt flag
	
	//rx_str[i++] = (unsigned char)U2RXREG;
	while(U2STAbits.URXDA == 1)//已接收到數(shù)據(jù)
    	rx_str[i++] = (unsigned char)U2RXREG;
}

void __attribute__((__interrupt__)) _U1RXInterrupt(void)
{
	float i1 = 0;
	float i2 = 0;
	float i3 = 0;
	float i4 = 0;
	float i5 = 0;
	float i6 = 0;
	float i7 = 0;
	float i8 = 0;
	float i9 = 0;
	float i0 = 0;
	
	float i11 = 0;
	float i21 = 0;
	float i31 = 0;
	float i41 = 0;
	float i51 = 0;
	float i61 = 0;
	float i71 = 0;
	float i81 = 0;
	float i91 = 0;
	float i01 = 0;
	float i111 = 0;
	
	i1 = i11;
	i2 = i21;
	i3 = i31;
	i4 = i41;
	i5 = i51;
	i6 = i61;
	i7 = i71;
	i8 = i81;
	i9 = i91;
	i0 = i01;
	i11 = i111;
	IFS0bits.U1RXIF = 0;	// clear interrupt flag
	DMA1_start(16);
	DelayNmSec(5000);
	//rx_str[i++] = (unsigned char)U2RXREG;
	//while(U2STAbits.URXDA == 1)//已接收到數(shù)據(jù)
    //	rx_str[i++] = (unsigned char)U2RXREG;
}
void sendcharmeter(unsigned char data)
{
     ClrWdt();

     if(U2MODEbits.PDSEL == 3)
        U2TXREG = data;
     else
        U2TXREG = data & 0xFF;
}

void enablePRG_232(void)
{
    enableRxPRG232_LAT=0; //外部編程接口接收1(0--enable  1--disable)
    enableTxPRG232_LAT=1; //外部編程接口發(fā)送(1--enable  0--disable)
    DelayNmSec(1);  
}

void enableinfraRed(void)
{
	 //enableTxInfra_dir = OUTPUT;//紅外發(fā)送控制引腳為輸出引腳;
     enableTxInfra_LAT = 1;//0關(guān)閉紅外發(fā)送,1為打開紅外發(fā)送;
     //enableRxInfra_dir = OUTPUT;//紅外接收控制引腳為輸出引腳;
     enableRxInfra_LAT = 0;//1為關(guān)閉紅外接收,0為打開紅外接收;

}


//使能RS485通訊 發(fā)送
void enable485Send(void)
{
   ch0enablesend = 1;  //高電平可以發(fā)送
	Nop();
	Nop();
   ch0enablerec_LAT = 1;   //低電平不可以接收
}

void enable485Recv(void)
{
	
	ch0enablesend = 0;  //低電平不可以發(fā)送
	Nop();
	Nop();
  	ch0enablerec = 0;   //低電平可以接收
}

void enablebuttomcomm(void)
{
	 enableTxMeter_LAT = 0;//1為關(guān)閉向內(nèi)置電表發(fā)送數(shù)據(jù),0為打開向內(nèi)置電表發(fā)送數(shù)據(jù);
	Nop();
	Nop();
	 enableRxMeter_LAT = 0;//1為關(guān)閉接收內(nèi)置電表數(shù)據(jù),0為打開接收內(nèi)置電表數(shù)據(jù);
}

void DMA0_init(void){

	/****************************
	
		DMA0中斷初始化
	
	****************************/
	
	IFS0bits.DMA0IF = 0;//清零DMA0的中斷標(biāo)志;
	IPC1bits.DMA0IP = 7;//設(shè)置DMA0的中斷優(yōu)先級為7;
	IEC0bits.DMA0IE = 1;//打開DMA0中斷服務(wù);
	
	/****************************
	
		DMA0基本參數(shù)設(shè)置
	
	****************************/

	
	DMA0REQ = 0x001F;//強制DMA0傳輸(使能以后才可以置1,但無法清零),使用U2TX為DMA0的中斷源;
	//DMA0REQbits.FORCE = 1;
	DMA0STA = (unsigned int)0x0000;//設(shè)置DMA0的主數(shù)據(jù)緩沖區(qū)的地址為0x4000,大小為1KB;
	DMA0STB = (unsigned int)0x0400;//設(shè)置DMA0的輔數(shù)據(jù)緩沖區(qū)的地址為0x4400,大小為1KB;
	DMA0PAD = (unsigned int)&U2TXREG;//設(shè)置與DMA通訊的外設(shè)緩存區(qū)的地址是寄存器U2TXREG的地址;
	//DMA0CNT = 0x000f;//設(shè)置需要傳輸?shù)臄?shù)據(jù)的個數(shù)為2K個數(shù)據(jù)(字節(jié)或則是字);
	
	/***************************************************************
	
		設(shè)置DMA0模塊為關(guān)閉狀態(tài),數(shù)據(jù)傳輸格式為字節(jié)格式,寫入外設(shè),
		數(shù)據(jù)塊傳輸完成中斷模式,正常寫模式,
		尋址模式為帶后遞增模式,工作模式為連續(xù)數(shù)據(jù)塊非乒乓模式;
	
	***************************************************************/
	
	DMA0CON = 0x6000;

}

void DMA0_start(unsigned int len){

	DMA0CNT = len - 1;
	DMA0CONbits.CHEN = 1;
	//U2TXREG = *DMA_RAM;
	DMA0REQbits.FORCE = 1;
}

void _ISR _DMA0Interrupt(void){
	
	IFS0bits.DMA0IF = 0;//清零DMA0的中斷標(biāo)志;
	DMA0CONbits.CHEN = 0;//關(guān)閉DMA0通道;
	
}

void DMA1_init(void){


	/****************************
	
		DMA1中斷初始化
	
	****************************/
	
	IFS0bits.DMA1IF = 0;//清零DMA1的中斷標(biāo)志;
	IPC3bits.DMA1IP = 7;//設(shè)置DMA1的中斷優(yōu)先級為7;
	IEC0bits.DMA1IE = 1;//打開DMA1中斷服務(wù);
	
	/****************************
	
		DMA1基本參數(shù)設(shè)置
	
	****************************/

	
	DMA1REQ = 0x000c;//使用U1TX為DMA0的中斷源;
	DMA1STA = (unsigned int)0x0000;//設(shè)置DMA1的主數(shù)據(jù)緩沖區(qū)的地址為0x4000,大小為1KB;
	DMA1STB = (unsigned int)0x0400;//設(shè)置DMA1的輔數(shù)據(jù)緩沖區(qū)的地址為0x4400,大小為1KB;
	DMA1PAD = (unsigned int)&U1TXREG;//設(shè)置與DMA通訊的外設(shè)緩存區(qū)的地址是寄存器U1TXREG的地址;
	/***************************************************************
	
		設(shè)置DMA1模塊為關(guān)閉狀態(tài),數(shù)據(jù)傳輸格式為字節(jié)格式,寫入外設(shè),
		數(shù)據(jù)塊傳輸完成中斷模式,正常寫模式,
		尋址模式為帶后遞增模式,工作模式為連續(xù)數(shù)據(jù)塊非乒乓模式;
	
	***************************************************************/
	
	DMA1CON = 0x6000;

}

void DMA1_start(unsigned int length){

	DMA1CNT = length - 1;//設(shè)置傳輸數(shù)據(jù)塊長度;
	DMA1CONbits.CHEN = 1;//打開DMA1通道;
	DMA1REQbits.FORCE = 1;//觸發(fā)DMA1傳輸;
}

void _ISR _DMA1Interrupt(void){
	
	IFS0bits.DMA1IF = 0;//清零DMA1的中斷標(biāo)志;
	//DelayNmSec(2);
	DMA1CONbits.CHEN = 0;//關(guān)閉DMA1通道;
	
}

int main(void){
unsigned int i = 0;
		ClrWdt();	
	cpu_init();		
	LcmInit();
		ClrWdt();
	LcmClearTXT();
		ClrWdt();
	PutStr(0, 0, "************");
	WriteCommand(0x0c);
		ClrWdt();
	led_init();
	led_config();
	led_control_word.port[0] = 0x06;
	led_control_word.port[1] = 0x00;
	update_to_led(led_control_word.port);
	//ConfigIntUART2();
	UART1_Init(9600, PARITY_NONE);
	enablePRG_232();
	for(i = 0;i < 1024; i++)
		DMA_RAM[i] = i;
		
	for(i = 1024;i < 2048; i++)
		DMA_RAM[i] = 0xbb;
	//DMA0_init();
	DMA1_init();
	//enableinfraRed();
	//enable485Recv();

	//enable485Send();
	//enablebuttomcomm();
	//sendcharmeter(0x68);
	
		//DelayNmSec(5000);
	
//	sendcharmeter(0x68);
	//DMA0_start(16);
	//DelayNmSec(3000);
	//DMA1_start(16);
	
	while(1);
	DelayNmSec(3000);
	
	unsigned char cs = (unsigned char)((unsigned char)0x68 + (unsigned char)0x99 + (unsigned char)0x99 + (unsigned char)0x99 + (unsigned char)0x99 + (unsigned char)0x99 + (unsigned char)0x68 + (unsigned char)0x01 + (unsigned char)0x02 + (unsigned char)0xff + (unsigned char)0xff);
	    /* enable/disable interrupt */
	while(1)
	{
	    sendcharmeter(0x68);
        for(i=0;i<6;i++) sendcharmeter(0x99);
        sendcharmeter(0x68);
        sendcharmeter(0x01);
        sendcharmeter(0x02);
        sendcharmeter(0xFF);
        sendcharmeter(0xFF);
        sendcharmeter(cs);
        sendcharmeter(0x16);
		DelayNmSec(2000);
	
	}
	
	
	//U2STAbits.UTXEN = 0;
	/*led_control_word.port[0] = 0xff;
	led_control_word.port[1] = 0xff;
	update_to_led(led_control_word.port);
	*/

	while(1);
	return 0;	

}


void UART1_Init(unsigned int baudrate, unsigned char parity_check)
{
	U1MODEbits.UARTEN = 0;	//禁止UART1

	//中斷允許控制寄存器0 :0--禁止中斷請求;  1--允許中斷請求
	IEC0bits.U1RXIE = 0;	
    IEC0bits.U1TXIE = 0;

	//中斷標(biāo)志狀態(tài)寄存器0 :0--未產(chǎn)生中斷請求;1--產(chǎn)生中斷請求
    IFS0bits.U1RXIF = 0;	
    IFS0bits.U1TXIF = 0;
	
	//中斷優(yōu)先級控制寄存器2 :0~7 -- UART1接收優(yōu)先級位數(shù)
    IPC2bits.U1RXIP = 6;

	//中斷優(yōu)先級控制寄存器3 :0~7 -- UART1發(fā)送優(yōu)先級位數(shù)
    IPC3bits.U1TXIP = 5;

    /* enable/disable interrupt */
    IEC0bits.U1RXIE = 1;  //enable
    IEC0bits.U1TXIE = 0;  //disable

    //波特率的設(shè)置
	U1BRG = ((FCY/16)/baudrate) - 1;

	//UART1模式寄存器
    U1MODE = 0xC000;   	//使能UART1

	//UART1狀態(tài)控制寄存器
    U1STA = 0x8550;

   	if(parity_check== PARITY_EVEN) 
		U1MODEbits.PDSEL=1;
   	else if(parity_check== PARITY_ODD) 
     	U1MODEbits.PDSEL=2;
   	else
      	U1MODEbits.PDSEL=0x00;

}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品自拍毛片| 欧美性色综合网| 蜜桃精品视频在线| 亚洲女人的天堂| 国产精品欧美一级免费| 日韩欧美www| 欧美三电影在线| 欧美日韩国产成人在线91| 色妹子一区二区| 99国产精品一区| av激情亚洲男人天堂| 成人高清av在线| 美女视频网站久久| 久久99精品国产麻豆婷婷洗澡| 日韩二区三区在线观看| 轻轻草成人在线| 三级亚洲高清视频| 天堂久久一区二区三区| 青青草原综合久久大伊人精品优势| 伊人性伊人情综合网| 亚洲色图色小说| 一区二区三区四区视频精品免费| **欧美大码日韩| 欧美激情综合五月色丁香| 欧美国产禁国产网站cc| 久久伊人蜜桃av一区二区| 国产欧美日韩亚州综合| 国产婷婷色一区二区三区四区| 国产精品乱人伦中文| 中文字幕一区二区三区在线观看| 亚洲欧美自拍偷拍色图| 亚洲综合免费观看高清完整版在线 | 久久不见久久见免费视频7| 亚洲1区2区3区4区| 久久97超碰国产精品超碰| 精品一区二区综合| 亚洲一区免费在线观看| 三级在线观看一区二区 | 大白屁股一区二区视频| 成人美女在线视频| 色婷婷av一区二区| 欧美精品久久一区| 精品少妇一区二区三区| 国产精品久久久久久久久快鸭 | 亚洲精品国产一区二区三区四区在线| 亚洲男同性恋视频| 日本伊人午夜精品| 成人午夜激情在线| 欧美性生活影院| 欧美精品一区二区久久婷婷| 国产精品每日更新| 一区二区三区精密机械公司| 亚洲小说春色综合另类电影| 国产一区二区三区四区五区入口 | 国产白丝网站精品污在线入口| 不卡一区二区三区四区| 欧美日韩一区二区三区视频| 日韩欧美国产一区二区三区 | 欧美色欧美亚洲另类二区| 欧美变态tickling挠脚心| 国产精品欧美经典| 日韩在线a电影| 91美女片黄在线观看91美女| 欧美区在线观看| 日韩一二三区视频| 亚洲欧洲国产专区| 亚洲精选在线视频| 国产在线视视频有精品| 色综合久久中文综合久久97| 久久精品亚洲一区二区三区浴池| 亚洲品质自拍视频网站| 天天操天天综合网| 成年人国产精品| 日韩精品一区二区三区视频播放| 亚洲精选免费视频| 国产福利电影一区二区三区| 欧洲国内综合视频| 久久精品欧美日韩| 五月激情六月综合| 粉嫩蜜臀av国产精品网站| 91亚洲男人天堂| 欧美成人vr18sexvr| 无吗不卡中文字幕| 91在线你懂得| 国产欧美一区二区精品忘忧草| 一区二区成人在线视频| 粉嫩高潮美女一区二区三区| 2021中文字幕一区亚洲| 亚洲bt欧美bt精品777| 懂色av中文一区二区三区| 91精品国产91久久久久久最新毛片| 国产精品色哟哟网站| 国产成人亚洲综合a∨婷婷图片| 欧美一区二区三区免费大片| 国产精品蜜臀在线观看| 国产a视频精品免费观看| 欧美不卡一二三| 久久国产成人午夜av影院| 欧美男同性恋视频网站| 亚洲精品videosex极品| 色中色一区二区| 国产目拍亚洲精品99久久精品| 精品亚洲aⅴ乱码一区二区三区| 欧美日韩一级片在线观看| 亚洲欧美成aⅴ人在线观看| 成人av小说网| 国产色一区二区| 免费人成在线不卡| xnxx国产精品| 免费人成精品欧美精品| 日韩亚洲欧美一区| 午夜久久电影网| 91婷婷韩国欧美一区二区| 亚洲精品国产a| 色综合久久天天综合网| 伊人色综合久久天天| 色欧美乱欧美15图片| 国产性天天综合网| 国产v日产∨综合v精品视频| wwwwxxxxx欧美| 成人激情午夜影院| 日本一区二区高清| 国产麻豆成人精品| 国产精品国产三级国产三级人妇| 成人爽a毛片一区二区免费| 国产精品家庭影院| av成人动漫在线观看| 中文av一区二区| 91免费版在线| 一区二区三区四区高清精品免费观看 | 一区二区三区国产精华| 欧美日韩中文字幕一区| 蜜桃av一区二区三区| 日韩丝袜美女视频| 日韩中文字幕1| 国产网红主播福利一区二区| 波波电影院一区二区三区| 亚洲一区二区在线免费看| 欧美亚洲自拍偷拍| 一区二区三区 在线观看视频| 欧美一区二区三区公司| 国内精品久久久久影院色| 综合在线观看色| 日本国产一区二区| 亚洲国产精品久久不卡毛片 | 成人av资源站| 亚洲人成网站精品片在线观看| 337p亚洲精品色噜噜| 久久99精品国产| 亚洲国产精品v| 欧美日韩电影在线播放| 国产一区二区网址| 自拍偷自拍亚洲精品播放| 欧美日韩不卡一区二区| 成人黄色网址在线观看| 亚洲免费三区一区二区| 91精品麻豆日日躁夜夜躁| 精品一区二区精品| 亚洲日本电影在线| 日韩三级伦理片妻子的秘密按摩| 成人午夜电影久久影院| 亚洲一区在线看| 久久综合五月天婷婷伊人| 91欧美激情一区二区三区成人| 日韩高清在线不卡| 国产精品久久久久久久久免费丝袜 | 国产成人在线视频网站| 亚洲一区二区三区免费视频| 6080国产精品一区二区| 成人中文字幕合集| 麻豆精品新av中文字幕| 亚洲欧美一区二区在线观看| 亚洲精品在线网站| 欧美色爱综合网| 91在线高清观看| 精品一区二区三区视频在线观看| 国产精品久久久久7777按摩| 精品久久久久久久久久久久久久久久久| 粉嫩久久99精品久久久久久夜| 青青草伊人久久| 亚洲欧美日韩久久| 91精品国产综合久久久久| 成人网在线播放| 毛片av中文字幕一区二区| 一区二区视频免费在线观看| 久久综合九色综合97婷婷女人 | 亚洲激情中文1区| 国产欧美一区二区三区在线老狼| 欧美日韩一卡二卡| 色综合久久天天| 丰满亚洲少妇av| 精品一区二区三区免费观看 | 亚洲电影一级黄| 欧美电影免费观看高清完整版在线观看| 色偷偷久久一区二区三区| 国产精品香蕉一区二区三区| 激情综合色丁香一区二区| 午夜精品久久久久久久久| 亚洲一区在线看| 亚洲精品中文在线观看|