Pages: [1]   Go Down
Print
Author Topic: ผมอยากได้Code PIC ตัวอย่างครับ  (Read 11924 times)
0 Members and 1 Guest are viewing this topic.
l2aider
Guest
« on: February 04, 2009, 10:05:32 AM »

ผมอยากได้ Code Pic ตัวอย่างอะครับ เบอร์ PIC18F4550 ใช้ CCS C Compile พอดีผมไม่ได้เรียน PIC มานะครับ เรียนแต่ MSC51 แล้วใช้ Assambly แต่พอดีผมได้งานมาแล้วอยากใช้ PIC แต่ว่าอ่านแล้วงงครับ เลยอยากได้ Code ตัวอย่าง ของภาคส่งและภาครับนะครับ

ภาคส่ง เป็นการส่งจาก Dip Switch 8 pin ส่งออก port RA0-RA5 และ RE0-RE1
อันนี้เป็น Code ที่ผมรองเขียนเองนะครับ Error เยอะมาก
#include <18F4550.h>
#use delay(clock=20000000)
#fuses XT,PUT,BROWNOUT,MCLR,NOWDT,NOPROTECT,NOLVP
#define PIN_A0
#define PIN_A1
#define PIN_A2
#define PIN_A3
#define PIN_A4
#define PIN_A5
#define PIN_E0
#define PIN_E1
#define TxD=PIN_C6
#define RxD=PIN_C7
#use rs232(baud=9600,xmit=TxD,rcv=RxD,bit=8)
/************************************************************/
void main(void)
{      
   set_tris_a(0xFF);
   set_tris_e(0xFF);
   do{
      while(!input_a())
         switch((input_a()){
      case PIN_A0 : putc(PIN_A0);
      break;
      case PIN_A1 : putc(PIN_1);
      break;
      case PIN_A2 : putc(PIN_A2);
      break;   
      case PIN_A3 : putc(PIN_A3);
      break;
      case PIN_A4 : putc(PIN_A4);
      break;
      case PIN_A5 : putc(PIN_A5);
      break;
      case PIN_E0 : putc(PIN_E0);
      break;      
      case PIN_E1 : putc(PIN_E1);
      break;
      } //end switch
   }while(true); //end do
   
} //end main

ภาครับ ขอผมทำการแสดงออกจอ LCD 16x4
#include <18F4550.h>
#use delay(clock=20000000)
#fuses XT,PUT,BROWNOUT,MCLR,NOWDT,NOPROTECT,NOLVP
#define PIN_D0
#define PIN_D1
#define PIN_D2
#define PIN_D3
#define PIN_D4
#define PIN_D5
#define PIN_D6
#define PIN_D7
#define TxD=PIN_C6
#define RxD=PIN_C7
#use rs232(baud=9600,xmit=TxD,rcv=RxD,bit=8)
/**************************************************************/
void main(void){
   int i;
   set_tris_d(0x00); //Port D for output
   while(1){
   if(kbhit(i)){
      c=getc();        //Get data
         printf("%d",i);  //Echo
      }// end if       
   }//end while
}//end main

ช่วยหน่อยนะครับ ขอบคุณมากครับ
Logged
smitdh
Administrator
Hero Member
*****
Offline Offline

Gender: Male
Posts: 381


อาจารย์ที่ปรึกษา


« Reply #1 on: February 04, 2009, 12:45:33 PM »

จากคำถามคือต้องการอ่านค่า จาก dip-switch RA0-RA5 และ RE0-RE1
แล้วส่งค่าที่อ่านได้ ออก RS232

ส่วนภาครับ รับจาก RS232 แล้วแสดงออกจอ LCD 16x4 ใช่ไหมครับ


ที่จริงแล้ว การเริ่มศึกษาควรจะศึกษาไปทีละอย่างครับ
- เช่นอ่านค่าอินพุต จากพอร์ต B แล้วแสดงผล ออก LED ที่พอร์ต C
- แล้วจึงศึกษาการ รับส่งผ่าน RS232
- การแสดงผลออก LCD

เพราะถ้าเริ่มศึกษาใหม่ๆ แล้วเอามารวมกันหมดจะศึกษาได้ยากครับ
แล้วการถามแบบ ให้เขียน code ให้ อาจจะต้องใช้เวลาทดสอบด้วยครับ
ลองดูตัวอย่างใน WEB นี้ไปก่อนนะครับ

RS232
http://www.thaimicrotron.com/CCS-628/EXAM/RS232.htm
LCD
http://www.thaimicrotron.com/Referrence/LCD/LCD-Module3.htm
 
Logged
Pages: [1]   Go Up
Print
 
Jump to: