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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? comm_test.c

?? 在單片機中
?? C
?? 第 1 頁 / 共 2 頁
字號:
#include <p33FJ256GP506.h>
#include <stdio.h>
#define FCY  30000000		        // xtal = 4.0000Mhz; PLL=50/4  FOSC=50MHZ  FCY=FOSC/2
#define MILLISEC FCY/10000			// 1 mSec delay constant
#define UILLISEC FCY/100000			// 100uSec delay constant

#define DELAY 15

#define OUTPUT 0
#define INPUT 1

//UART 校驗方式定義
#define PARITY_NONE		0
#define PARITY_EVEN		1
#define PARITY_ODD		2

/*****************************************

	內置電表通訊

******************************************/
//發(fā)送使能(PIN63-RG12)
#define enableTxMeter 		PORTGbits.RG12
#define enableTxMeter_LAT 	LATGbits.LATG12
#define enableTxMeter_dir 	TRISGbits.TRISG12

//接收使能(PIN23-RB10)
#define enableRxMeter		PORTBbits.RB10
#define enableRxMeter_LAT	LATBbits.LATB10
#define enableRxMeter_dir	TRISBbits.TRISB10

/*****************************************

	RS232通訊

******************************************/
//Enable prog232 send(PIN35-RF6)(DE = 1)
#define enableTxPRG232		PORTFbits.RF6
#define enableTxPRG232_LAT	LATFbits.LATF6
#define enableTxPRG232_dir	TRISFbits.TRISF6

//Enable prog232 rec(PIN36-RG3)(RE = 0)
#define enableRxPRG232		PORTGbits.RG3
#define enableRxPRG232_LAT	LATGbits.LATG3
#define enableRxPRG232_dir	TRISGbits.TRISG3


/*****************************************

	RS485通訊

******************************************/

//CH0發(fā)送使能(DE=1)(PIN27-RB12)
#define ch0enablesend		PORTBbits.RB12
#define ch0enablesend_LAT	LATBbits.LATRB12
#define ch0enablesend_dir	TRISBbits.TRISB12

//CH0接收使能(RE=0)(PIN28-RB13)
#define ch0enablerec		PORTBbits.RB13
#define ch0enablerec_LAT	LATBbits.LATB13
#define ch0enablerec_dir	TRISBbits.TRISB13

/*****************************************

	紅外通訊

******************************************/

//Enable infra send(PIN46-RD0)(DE = 1)
#define enableTxInfra		PORTDbits.RD0
#define enableTxInfra_LAT	LATDbits.LATD0
#define enableTxInfra_dir	TRISDbits.TRISD0

//Enable infra rec(PIN24-RB11)(RE=0)
#define enableRxInfra		PORTBbits.RB11
#define	enableRxInfra_LAT	LATBbits.LATB11
#define enableRxInfra_dir	TRISBbits.TRISB11

/*****************************************

	LCD顯示屏模塊

******************************************/

// LCD CS              PIN61  RG0
#define CS	     	PORTGbits.RG0
#define CS_LAT     	LATGbits.LATG0
#define CS_DIR  	TRISGbits.TRISG0
// LCD  WR              PIN52  RD4 
#define SID	     	PORTDbits.RD4
#define SID_LAT     LATDbits.LATD4
#define SID_DIR     TRISDbits.TRISD4
// LCD  E               PIN53  RD5
#define SCK	      	PORTDbits.RD5
#define SCK_LAT     LATDbits.LATD5
#define SCK_DIR     TRISDbits.TRISD5


//LED擴展芯片片選信號管腳
#define LED_CS 		PORTGbits.RG6
#define LED_CS_LAT	LATGbits.LATG6
#define LED_CS_DIR	TRISGbits.TRISG6

//LED擴展芯片時鐘信號管腳
#define SPISCK		PORTFbits.RF0
#define SPISCK_LAT	LATFbits.LATF0
#define SPISCK_dir	TRISFbits.TRISF0


//寫LED擴展芯片管腳
#define SPISO		PORTFbits.RF1
#define SPISO_LAT	LATFbits.LATF1
#define SPISO_dir	TRISFbits.TRISF1

#define SPISI       PORTGbits.RG1
#define SPISI_LAT   LATGbits.LATG1
#define SPISI_dir	TRISGbits.TRISG1


//FLASH 256K片選信號管腳
#define SPICS_FLASH1		PORTDbits.RD7
#define SPICS_FLASH1_LAT	LATDbits.LATD7
#define SPICS_FLASH1_dir	TRISDbits.TRISD7

//FLASH 2M片選信號管腳

#define SPICS_FLASH2		PORTDbits.RD6
#define SPICS_FLASH2_LAT	LATDbits.LATD6
#define SPICS_FLASH2_dir	TRISDbits.TRISD6


		typedef struct{
			unsigned RSE_485 : 2;
			//485控制使能,0x02為高阻狀態(tài),0x01為發(fā)送使能,0x00為接收使能;
			unsigned LCD_K : 1;//LED背光控制
			unsigned LED_13 : 1; //從左到右第11個燈
			unsigned LED_12 : 1; //從左到右第10個燈
			unsigned LED_11 : 1; //從左到右第9個燈
			unsigned LED_10 : 1; //從左到右第8個燈
			unsigned LED_9 : 1; //從左到右第7個燈
			
			unsigned LED_8 : 1;//從左到右第1個燈
			unsigned LED_7: 1; //從左到右第2個燈
			unsigned LED_6: 1; //從左到右第3個燈
			unsigned LED_5: 1; //從左到右第4個燈
			unsigned LED_4: 1; //從左到右第5個燈
			unsigned LED_3: 1; //從左到右第6個燈
			unsigned LED_2: 1;//GPRS
			unsigned LED_1 : 1;//GPRS

		} LEDBITS;//LED位域字結構類型

		typedef union {
			unsigned char port[2];
			//定義兩個端口,其中port[0]為PORTA,port[1]為PORTB;
			LEDBITS led_bits;//定義LED位域字結構;
		} LED_CONTROL_WORD;//LED控制字結構類型;

		LED_CONTROL_WORD led_control_word;
		//定義LED控制字結構;


unsigned char AC_TABLE[] = {
0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,      //第一行漢字位置
0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,      //第二行漢字位置
0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,      //第三行漢字位置
0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f,      //第四行漢字位置
};




unsigned char rx_str[255];
unsigned char i = 0;

void cpu_init(void);
void PutStr(unsigned char row,unsigned char col,unsigned char *puts);
void LcmClearTXT( void );
void LcmInit( void );
void WriteData( unsigned char Dbyte );
void WriteCommand( unsigned char Cbyte );
void SendChar(unsigned char SynChar, unsigned char Mchar, unsigned char Lchar);
void DelayN100uSec(unsigned int N);
void DelayNmSec(unsigned int N);


void led_init(void);
void led_write(unsigned int opcode_add, unsigned char data);
void led_config(void);
void update_to_led(const unsigned char *data);


void UART1_Init(unsigned int baudrate, unsigned char parity_check);
void InitUART2(unsigned int baudrate,unsigned char parity_check);
void CloseUART2(void);
void ConfigIntUART2(void);
void sendcharmeter(unsigned char data);
void enablePRG_232(void);
void enableinfraRed(void);
void enable485Recv(void);
void enable485Send(void);
void enablebuttomcomm(void);
void DMA0_init(void);
void DMA0_start(unsigned int len);
void DMA1_start(unsigned int length);
_FOSCSEL(FNOSC_PRIPLL);// Primary oscillator (XT, HS, EC) w/ PLL
_FOSC(POSCMD_XT & OSCIOFNC_ON & FCKSM_CSDCMD);
_FPOR(FPWRT_PWR128); //Power-on Reset Timer 128ms
_FWDT(FWDTEN_ON & WINDIS_OFF & WDTPRE_PR128 & WDTPOST_PS32768);//Watchdog timer enabled Prescaler=1:128 Watchdog Timer Postscaler=1:32768

unsigned char DMA_RAM[2048] __attribute__ ((address(0x4000)));




void DelayNmSec(unsigned int N)
 {
    unsigned int j;
    while(N--)
    {
        ClrWdt();
     	for(j=0;j < MILLISEC;j++);
    } 
    ClrWdt();

}

void DelayN100uSec(unsigned int N)
{
    unsigned int j;
    while(N--)
    {
        ClrWdt();
     	for(j=0;j < UILLISEC;j++);
    }
}

void SendChar(unsigned char SynChar, unsigned char Mchar, unsigned char Lchar)
{
	ClrWdt();
     unsigned char i;
     SCK = 0;
     SID = 0;
     for(i = 0; i < 8; i++)
     {
           

           SID = (SynChar & 0x80) ? 1 : 0;            //移出的位給SID
           SCK = 0;
		   SCK=1;
           SynChar <<= 1;      //左移一位
     }
     
     for(i = 0; i < 8; i++)
     {
           

           SID = (Mchar & 0x80) ? 1 : 0;            //移出的位給SID
           SCK = 0;
		   SCK=1;
		   Mchar <<= 1;      //左移一位
     }     

     for(i = 0; i < 8; i++)
     {
           

           	SID = (Lchar & 0x80) ? 1 : 0;            //移出的位給SID
           	SCK = 0;
			SCK=1;
        	Lchar <<= 1;      //左移一位
     }
     SCK = 0;
     SID = 0;
     DelayN100uSec(1); 
}

void WriteCommand( unsigned char Cbyte )
{
     CS = 1 ;
     SendChar(0xf8,0xf0 & Cbyte, 0xf0 & (Cbyte << 4));
     CS = 0 ;
}

void WriteData( unsigned char Dbyte )
{
     CS = 1;
     SendChar(0xfa,0xf0 & Dbyte, 0xf0 & (Dbyte << 4));
     CS = 0;
}



void LcmInit( void )
{
	 CS_DIR = OUTPUT;
	 CS = 1;
	 DelayN100uSec(1);
	 CS = 0;
	 DelayN100uSec(1);
	 CS = 1;
	 DelayN100uSec(2);
	 CS_DIR = INPUT;
	 SCK_DIR = OUTPUT;
	 SCK = 0;

	 SID_DIR = OUTPUT;
	 SID = 0;

     WriteCommand(0x03) ;      //AC歸0,不改變DDRAM內容
     WriteCommand(0x0C) ;      //顯示ON,游標OFF,游標位反白OFF
     WriteCommand(0x01) ;      //清屏,AC歸0
}

//文本區(qū)清RAM函數
void LcmClearTXT( void )
{
	ClrWdt();
     unsigned char i ;
     WriteCommand(0x30) ;      //8BitMCU,基本指令集合
     WriteCommand(0x90) ;      //AC歸起始位
     for(i = 0; i < 32; i++)
        WriteData(0x20);
	 WriteCommand(0x88);      //AC歸起始位
     for(i = 0; i < 16; i++)
        WriteData(0x20);
     
}



void PutStr(unsigned char row,unsigned char col,unsigned char *puts)
{
	 ClrWdt();
     WriteCommand(0x20);      //8BitMCU,基本指令集合
     WriteCommand(AC_TABLE[8*row+col]) ;      //起始位置
     while(*puts != '\0')      //判斷字符串是否顯示完畢
     {
           if(col==8)            //判斷換行
           {            //若不判斷,則自動從第一行到第三行
                 col=0 ;
                 row++ ;
           }
           if(row==4) row=0 ;      //一屏顯示完,回到屏左上角
           WriteCommand(AC_TABLE[8*row+col]) ;
           WriteData(*puts) ;      //一個漢字要寫兩次
           puts++ ;
           WriteData(*puts) ;
           puts++ ;
           col++ ;
     }
 //    WriteCommand(0x0c) ;      //顯示ON,游標OFF,游標位反白OFF
}

void cpu_init(void){
	
	/****************************************
		時鐘頻率設置
	*****************************************/
     CLKDIV=0;// N1 = 2;
     CLKDIVbits.PLLPRE=0;//N2 = 2;
     PLLFBDbits.PLLDIV=59;//M = 60, set value is  (M - 1);

     /***************************************
     	禁止中斷嵌套
     ****************************************/
     INTCON1bits.NSTDIS = 0;//禁止中斷嵌套;

     /***************************************
     	關閉所有模塊功能
     ****************************************/
     PMD1 = 0xffff;
     PMD2 = 0xffff;
     PMD3 = 0xffff;
	 PMD1 = 0xff9f;
     /***************************************
     	端口擴展芯片片選引腳
     ****************************************/
     LED_CS_DIR = OUTPUT;//端口擴展芯片片選引腳為輸出端口;
     LED_CS = 1;//關閉端口擴展芯片;

	 /***************************************
     	FLASH存儲芯片片選引腳
     ****************************************/
     SPICS_FLASH1_dir = OUTPUT;//flash1(256K)片選管腳方向;
     SPICS_FLASH2_dir = OUTPUT;//flash2(2M)片選管腳方向;
     
     /***************************************
     	FLASH存儲芯片和端口擴展芯片復用引腳
     ****************************************/
     SPISCK_dir = OUTPUT;//時鐘信號管腳方向;
     SPISI_dir = INPUT;//數據讀取管腳方向;
     SPISO_dir = OUTPUT;//數據寫入管腳方向;
     
     /***************************************
     	RS232收發(fā)使能引腳
     ****************************************/
     enableTxPRG232_dir	= OUTPUT;//RS232發(fā)送使能引腳方向
     enableTxPRG232_LAT = 0;//關閉RS232發(fā)送功能
	 enableRxPRG232_dir	= OUTPUT;//RS232接收使能引腳方向
	 enableRxPRG232_LAT = 1;//關閉RS232接收功能
	 
     /***************************************
     	RS485收發(fā)使能引腳
     ****************************************/
     ch0enablesend_dir = OUTPUT;//RS485發(fā)送使能引腳方向
     ch0enablesend = 0;//關閉RS485-1發(fā)送功能
	 ch0enablerec_dir = OUTPUT;//RS485接收使能引腳方向
	 ch0enablerec_LAT = 1;//關閉RS485-1接收功能

	 /***************************************
     	紅外通訊收發(fā)使能引腳
     ****************************************/
     enableTxInfra_dir = OUTPUT;//紅外發(fā)送控制引腳為輸出引腳;
     enableTxInfra_LAT = 0;//0關閉紅外發(fā)送,1為打開紅外發(fā)送;
     enableRxInfra_dir = OUTPUT;//紅外接收控制引腳為輸出引腳;
     enableRxInfra_LAT = 1;//1為關閉紅外接收,0為打開紅外接收;

	 /***************************************
     	內置電表通訊收發(fā)使能引腳
     ****************************************/	 
	 enableTxMeter_dir = OUTPUT;
	 enableTxMeter_LAT = 1;//1為關閉向內置電表發(fā)送數據,0為打開向內置電表發(fā)送數據;
	 enableRxMeter_dir = OUTPUT;
	 enableRxMeter_LAT = 1;//1為關閉接收內置電表數據,0為打開接收內置電表數據;                                   
}






void led_init(void){
	/*********************************
		關閉2個FLASH儲存器和端口擴展芯片的片選信號;
    **********************************/
    SPICS_FLASH1 = 1;
	LED_CS = 1;
	SPICS_FLASH2 = 1;		
	

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品久久久久久久久久久久久久久 | 精品一区二区三区欧美| 欧美亚洲国产怡红院影院| 午夜婷婷国产麻豆精品| 欧美性感一区二区三区| 丝袜亚洲另类丝袜在线| 日韩精品一区二区三区视频在线观看 | 337p粉嫩大胆色噜噜噜噜亚洲 | 欧美日韩一区成人| 人妖欧美一区二区| 久久综合九色综合97_久久久| 国产iv一区二区三区| 亚洲欧洲美洲综合色网| 在线观看成人免费视频| 秋霞午夜鲁丝一区二区老狼| 精品裸体舞一区二区三区| 国产精品一区二区男女羞羞无遮挡 | 欧美日韩国产bt| 久久精品国产秦先生| 国产精品区一区二区三区| 日本福利一区二区| 美女视频黄久久| 国产欧美视频一区二区三区| 色婷婷综合久久久久中文一区二区| 亚洲一级在线观看| 久久久久成人黄色影片| 欧美熟乱第一页| 狠狠色丁香久久婷婷综合_中| 国产精品国产自产拍在线| 欧美喷水一区二区| 国产大片一区二区| 亚洲精品一区二区三区精华液| 成人夜色视频网站在线观看| 日韩精品欧美精品| 国产精品免费av| 日韩欧美国产午夜精品| 一本久道中文字幕精品亚洲嫩| 日韩激情视频在线观看| 亚洲欧美自拍偷拍色图| 欧美大白屁股肥臀xxxxxx| 色噜噜狠狠成人网p站| 国内外成人在线| 午夜精品久久久久久久久久| 国产精品看片你懂得| 日韩片之四级片| 欧美在线一二三| 粉嫩欧美一区二区三区高清影视| 爽爽淫人综合网网站| 亚洲欧美在线另类| 国产欧美日韩综合| 日韩美女一区二区三区四区| 在线中文字幕一区二区| 成人亚洲一区二区一| 国产一区二区伦理片| 日韩精品免费专区| 亚洲成人综合视频| 亚洲在线视频网站| 精品国产一区二区精华| 成人午夜看片网址| 精品影院一区二区久久久| 午夜影院久久久| 亚洲美女视频在线观看| 国产精品另类一区| 国产日韩欧美高清在线| 日韩欧美在线不卡| 日韩三级视频在线看| 717成人午夜免费福利电影| 欧美日韩精品一区二区天天拍小说 | 国产大陆亚洲精品国产| 国产激情一区二区三区四区 | 91国产精品成人| 99国产精品视频免费观看| 高清久久久久久| 国产激情偷乱视频一区二区三区| 国内外精品视频| 99国产精品国产精品毛片| 风间由美中文字幕在线看视频国产欧美 | 欧美色精品在线视频| 欧美中文字幕久久 | 欧美一二三四区在线| 在线成人免费视频| 欧美一区二区在线观看| 欧美日韩成人在线一区| 欧美一区二区视频免费观看| 日韩欧美一级精品久久| 欧美变态口味重另类| 久久久激情视频| 国产精品青草久久| 亚洲伊人色欲综合网| 无吗不卡中文字幕| 精品一区二区三区日韩| 成人午夜激情片| 色偷偷88欧美精品久久久| 欧美人成免费网站| 欧美一级二级在线观看| 国产欧美日韩在线看| 亚洲乱码国产乱码精品精可以看| 亚洲午夜久久久久久久久电影网 | 亚洲免费资源在线播放| 亚洲成人777| 国产一区视频网站| 懂色av中文一区二区三区| 色欧美日韩亚洲| 日韩一区二区免费在线电影| 久久综合色播五月| 亚洲欧洲韩国日本视频| 日本女优在线视频一区二区| 国产真实乱偷精品视频免| 99久久精品国产麻豆演员表| 欧美丝袜自拍制服另类| 精品国产人成亚洲区| 18欧美亚洲精品| 免费成人美女在线观看| 成人开心网精品视频| 欧美日韩免费视频| 久久久www成人免费无遮挡大片| 亚洲欧洲精品一区二区三区| 日韩**一区毛片| 在线中文字幕不卡| 日韩一区二区免费在线观看| 国产精品伦一区二区三级视频| 亚洲狠狠爱一区二区三区| 国产精品一区一区| 欧美亚洲动漫制服丝袜| 精品99一区二区三区| 亚洲成a人片在线观看中文| 国产乱理伦片在线观看夜一区| 在线视频你懂得一区二区三区| 精品久久久网站| 亚洲国产中文字幕| 国产一区二区成人久久免费影院| 在线亚洲免费视频| 国产精品素人视频| 九九九久久久精品| 欧美日韩高清在线播放| 亚洲人精品午夜| 国产一区二区三区免费观看| 欧美日韩高清一区二区不卡| 亚洲视频一二三区| 国产一区 二区 三区一级| 欧美丰满高潮xxxx喷水动漫| 中文字幕中文字幕中文字幕亚洲无线 | 激情综合色综合久久综合| 欧美日韩视频不卡| 亚洲三级理论片| 成人激情开心网| 久久综合国产精品| 免费视频最近日韩| 7777精品伊人久久久大香线蕉 | 亚洲精品日韩专区silk| 国产精品一二二区| 精品国产凹凸成av人导航| 日韩综合小视频| 欧洲国产伦久久久久久久| 中文字幕亚洲不卡| 不卡一区二区中文字幕| 国产亚洲欧美日韩日本| 国产综合一区二区| 日韩欧美国产一区二区在线播放| 日日欢夜夜爽一区| 欧美日韩国产成人在线免费| 午夜精品免费在线观看| 欧美色大人视频| 丝袜美腿亚洲一区二区图片| 欧美午夜免费电影| 性久久久久久久久| 欧美高清视频不卡网| 日韩一区精品字幕| 欧美大片一区二区| 国产一区二区三区免费观看| 久久久噜噜噜久久中文字幕色伊伊| 狠狠色伊人亚洲综合成人| 国产亚洲欧美激情| 成人污污视频在线观看| 国产精品美女视频| 97精品久久久久中文字幕 | 国产色综合久久| 成人一区二区三区视频在线观看| 欧美激情中文字幕| 欧洲国内综合视频| 天天av天天翘天天综合网色鬼国产| 在线电影一区二区三区| 久久99精品久久久久久国产越南| 精品欧美乱码久久久久久1区2区 | 国产精品美女久久久久久久| 成人avav在线| 亚洲女爱视频在线| 欧美日韩国产经典色站一区二区三区| 一个色妞综合视频在线观看| 欧美日韩精品高清| 美国三级日本三级久久99| 久久久久青草大香线综合精品| 成人免费高清在线| 亚洲国产精品天堂| 日韩你懂的电影在线观看| 国产传媒久久文化传媒| 亚洲精品你懂的| 日韩欧美中文字幕一区| 粉嫩av一区二区三区在线播放| 亚洲欧洲国产日韩|