Microchip PIC18F4550 MAX232 USART 電路程式,程式是利用 USART 介面,連接到 MAX232 驅動 IC,MAX232 提昇電壓到 ±10V 的電源作 RS- 232C 通信之用,並將資料送出或接收,程式會讀取接收資料數據,然後在 LC1602 顯示屏顯示時間。
▲ 18F4550 + MAX232 USART 電路程式流程圖 |
void main (void) { // 1234567890123456 char LCD_name[]="BWS RS-232 v1.0"; ADCON0 = 0x00; // Disable the AD converter ADCON1 = 0x0F; // Set all ports to digital TRISA = 0b00000000; // Setup PORTB as output for LED's // Initialise LCD LcdOpen(); // See lcd.c OpenXLCD(FOUR_BIT&LINES_5X7); // Init the LCD Display BusyXLCD(); LcdSetLine1(); // Put cursor on start of line 1 putsXLCD(LCD_name); // Display Title LcdSetLine2(); TRISC = 0b10111111; //RC7(RX): input mode RC6(TX): output mode OpenUSART( USART_TX_INT_OFF & // Interrupt TX OFF USART_RX_INT_ON & // Interrupt RX ON USART_ASYNCH_MODE & // Asynchronous Mode USART_EIGHT_BIT & // Length 8 bit USART_CONT_RX & // Continue RX Mode USART_BRGH_HIGH, // Baud Rate Mode spbrg=129 // Baud Rate = Fosc/(128*(spbrg + 1)) 129 ); // = 20000000/(16*(129 + 1)) = 9615.4 bps // error rate = (9615.4-9600)/9600 = 0.0016 putrsUSART("PIC Ready ...."); RCONbits.IPEN = 0; // Interrupt Priority Control INTCONbits.GIE = 1; // All Interrupt INTCONbits.PEIE = 1; // Peripherial Interrupt Enable i=0; while(1) { } CloseUSART(); return; } // END main.c |
void rs232() // RS232 RX Interrupt { char Buffer[17]; // LCD Buffer char* str; char LCD_name[]="RS232 ISR"; char temp; char temp2[1]; PIR1bits.RCIF = 0; // PIR1 Clear Flag buf[i] = getcUSART(); // Read RX Data buf[i+1] = '\0'; LcdClear(); LcdSetLine1(); // Put cursor on start of line 1 putsXLCD(LCD_name); // Display Title LcdSetLine2(); if( buf[i] != '\r') // Not Enter Key { str=&buf[i]; putsXLCD(str); // Display Title putrsXLCD(" "); putsXLCD(buf); i++; } else // Enter Key { i=0; } } |
▲ 18F4550 加入USART 電路模塊 |
▲ 18F4550 USART 電路啟動 |
▲ 18F4550 USART 電路接收資料,啟動 Interrupt (RS233)程式 |
▲ 18F4550 USART 電路顯示接收字符及字串 |
◆ DIY - 電子:EIA RS-232 串行通信協議標準 (九十二) :
◆ DIY - 電子:MAX232 串行通信協議標準 IC (九十三) :
◆ DIY - 電子:C18 PIC18F4550 USART 函數庫程式 (九十四) :
◆ DIY - 電子:PIC18F4550 USART 電路功能介紹 (九十五) :
◆ DIY - 電子:PIC18F4550 USART 自動波特率電路介紹 (九十六) :
◆ DIY - 電子:PIC18F4550 USART 異步模式 (九十七) :
◆ DIY - 電子:PIC18F4550 + MAX232 USART 電路 (九十八) :
◆ DIY - 電子:PIC18F4550 + MAX232 USART 電路程式 (九十九) :
◆ DIY - 電子:PIC18F4550 測試程式 Hyper Terminal (一百) :
相關網頁:
◎ RS-232 ﹣串列數據通訊的介面標準 (一)
◎ RS-232 ﹣超級終端機串列介面測試 (二)
◎ RS-232 ﹣超級終端機串列介面 Loopback 測試 (三)
◎ RS-232 ﹣用 Excel 做串列介面數據傳輸及接收 (四)
◎ RS-232 ﹣用 Excel API做串列介面數據傳輸及接收 (五)
相關網頁:
◎ DIY - 智能小車:TL-WR703N 無線路由器與 16F877A 控制版串口連接電路 (二十)
◎ DIY - 智能小車:ser2net 詳細介紹 (二十一)
◎ DIY - 智能小車:智能小車 ser2net 設定 (二十二)
◎ DIY - 智能小車:16F877A 控制版串口連接程式 (二十三)
◎ DIY - 智能小車:TL-WR703N 路由器和 RS232 串行板組裝 (二十九)
◎ DIY - 智能小車:PIC 16F877A 處理器板 RS232 接收程式碼 (三十三)
相關網頁:
◎ ESCORT 3146A 5 1/2位數字雙顯示桌上型電錶數據傳輸
◎ Hameg HM507 CombiScope (模數組合示波器) – RS232
2011 年 07 月 12 日 天氣報告
氣溫:27.8 度 @ 22:00
相對濕度:百分之89%
天氣:微雨
沒有留言:
張貼留言