มาเขียนโปรแกรมควบคุม PIC ด้วยภาษาซีกันครับช่วยกันนะ
หน้า: [1]   ลงล่าง
  พิมพ์  
ผู้เขียน หัวข้อ: มาเขียนโปรแกรมควบคุม PIC ด้วยภาษาซีกันครับช่วยกันนะ  (อ่าน 16701 ครั้ง)
anatomy2
member
*

คะแนน1
ออฟไลน์ ออฟไลน์

กระทู้: 244


จงยืนด้วยเท้าของตัวเอง

electronic_medical2@hotmail.com emergency_anatomy2@hotmail.com
อีเมล์
« เมื่อ: ตุลาคม 23, 2007, 04:09:57 pm »

มาเขียนโปรแกรมควบคุม PIC ด้วยภาษาซีกันครับช่วยกันนะ
ผมอยากเขียนเป็นบ้างอ่ะครับพี่ๆคนไหนพอจะแนะนำได้บ้างอ่ะครับ
ขอบคุณล่วงหน้าครับ Huh?


บันทึกการเข้า

แม้ว่าหนทางจะลำบากแค่ไหนจะขอฝ่าฟันไปให้ถึงฝัน

JUB
Full Member
member
**

คะแนน81
ออฟไลน์ ออฟไลน์

กระทู้: 1157



« ตอบ #1 เมื่อ: ตุลาคม 23, 2007, 07:57:54 pm »

อยากเป็นเหมือนกัน เขียนได้แต่ ASM มันยากไป BASIC ขนาดมันก็ใหญ่เขียนเส็รจ program ไม่ค่อยลง Cry
บันทึกการเข้า
anatomy2
member
*

คะแนน1
ออฟไลน์ ออฟไลน์

กระทู้: 244


จงยืนด้วยเท้าของตัวเอง

electronic_medical2@hotmail.com emergency_anatomy2@hotmail.com
อีเมล์
« ตอบ #2 เมื่อ: ตุลาคม 23, 2007, 08:44:00 pm »

พี่ๆคนไหนเป็นช่วยทีน่ะครับ
ขอบคุณล่วงหน้าครับ Huh?
บันทึกการเข้า

แม้ว่าหนทางจะลำบากแค่ไหนจะขอฝ่าฟันไปให้ถึงฝัน
anatomy2
member
*

คะแนน1
ออฟไลน์ ออฟไลน์

กระทู้: 244


จงยืนด้วยเท้าของตัวเอง

electronic_medical2@hotmail.com emergency_anatomy2@hotmail.com
อีเมล์
« ตอบ #3 เมื่อ: ตุลาคม 27, 2007, 12:23:13 pm »

สอบถามทีครับพี่ๆที่รู้จะทำอย่างไร ให้ พอร์ท Output ทำงานพร้อมกันทั้ง2 พอร์ท ครับ เช่น RB0 ทำงานพร้อม RB1
ถ้าเขียนแบบนี้ ก็ทำงานจากบนลงล่างอ่ะครับทำยังไงดีช่วยแก้ทีครับ

main()
{
    TRISB = 0xFC
     while(1)
      {
             PORTB = 0x01;
             Delay_ms(1000);
             PORTB = 0x02;
             Delay_ms(1000);
      }
{


ช่วยแก้ทีครับทำไงดีครับ
ขอบคุณล่วงหน้าครับ Huh?
บันทึกการเข้า

แม้ว่าหนทางจะลำบากแค่ไหนจะขอฝ่าฟันไปให้ถึงฝัน
JUB
Full Member
member
**

คะแนน81
ออฟไลน์ ออฟไลน์

กระทู้: 1157



« ตอบ #4 เมื่อ: ตุลาคม 29, 2007, 09:27:13 am »

สอบถามทีครับพี่ๆที่รู้จะทำอย่างไร ให้ พอร์ท Output ทำงานพร้อมกันทั้ง2 พอร์ท ครับ เช่น RB0 ทำงานพร้อม RB1
ถ้าเขียนแบบนี้ ก็ทำงานจากบนลงล่างอ่ะครับทำยังไงดีช่วยแก้ทีครับ

main()
{
    TRISB = 0xFC
     while(1)
      {
             PORTB = 0x01;
             Delay_ms(1000);
             PORTB = 0x02;
             Delay_ms(1000);
      }
{


ช่วยแก้ทีครับทำไงดีครับ
ขอบคุณล่วงหน้าครับ Huh?

main()
{
    TRISB = 0xFC
     while(1)
      {
             PORTB = 0x03;
      }
{

ไม่เคยเขียนเลยครับ แต่ลองดูเผื่อถูก
บันทึกการเข้า
anatomy2
member
*

คะแนน1
ออฟไลน์ ออฟไลน์

กระทู้: 244


จงยืนด้วยเท้าของตัวเอง

electronic_medical2@hotmail.com emergency_anatomy2@hotmail.com
อีเมล์
« ตอบ #5 เมื่อ: พฤศจิกายน 02, 2007, 12:16:00 pm »

ขอบคุณมากครับจะลองเขียนดูแล้วมารายงานผลนะครับ Huh?
บันทึกการเข้า

แม้ว่าหนทางจะลำบากแค่ไหนจะขอฝ่าฟันไปให้ถึงฝัน
Pi_Po
member
*

คะแนน7
ออฟไลน์ ออฟไลน์

กระทู้: 183


« ตอบ #6 เมื่อ: มกราคม 18, 2008, 01:16:15 pm »

เขียนอย่างนี้ก็ได้ครับ
main()
{ while (TRUE)
   { output_high (pin_a0);
     output_high (pin_a1);
   }
}

มีอะไรให้ช่วยก็บอก ยินดีครับ
บันทึกการเข้า
anatomy2
member
*

คะแนน1
ออฟไลน์ ออฟไลน์

กระทู้: 244


จงยืนด้วยเท้าของตัวเอง

electronic_medical2@hotmail.com emergency_anatomy2@hotmail.com
อีเมล์
« ตอบ #7 เมื่อ: มกราคม 20, 2008, 05:26:58 pm »

พี่ครับเชิญ ที่กระทู้ ปัญหา Mikro C ทีครับ
ขอบคุณล่วงหน้าครับ แฮๆ Huh? Cool
บันทึกการเข้า

แม้ว่าหนทางจะลำบากแค่ไหนจะขอฝ่าฟันไปให้ถึงฝัน
moohtom
member
*

คะแนน0
ออฟไลน์ ออฟไลน์

กระทู้: 1


อีเมล์
« ตอบ #8 เมื่อ: เมษายน 26, 2009, 11:18:10 pm »

สวัสดีครับพี่ๆๆทุกท่านผมอยากขอความช่วยเหลือหน่อยครับผมมี PIC อยู่ตัวหนึ่งแต่ไม่มีโปรแกรมน่ะครับพีๆๆท่านใดมีโปรแกรมเขียนบ้างครับผมขอหน่อยน่ะครับ
บันทึกการเข้า
pomss
member
*

คะแนน0
ออฟไลน์ ออฟไลน์

กระทู้: 20


อีเมล์
« ตอบ #9 เมื่อ: มิถุนายน 26, 2009, 06:12:04 pm »

ผิดครับ

main()
{
    TRISB = 0x00            //ต้องเป็นเอาพุท
     while(1)
      {
             PORTB = 0x03;
             Delay_ms(1000);
      }
{
บันทึกการเข้า
podzone
member
*

คะแนน0
ออฟไลน์ ออฟไลน์

กระทู้: 1


« ตอบ #10 เมื่อ: กรกฎาคม 06, 2009, 01:03:38 am »


main(void)
{
while (1)
   {
output_high (pin_a0);
     output_high (pin_a1);
   }
}
บันทึกการเข้า
JUB
Full Member
member
**

คะแนน81
ออฟไลน์ ออฟไลน์

กระทู้: 1157



« ตอบ #11 เมื่อ: กรกฎาคม 06, 2009, 03:37:55 pm »

ผิดครับ

main()
{
    TRISB = 0x00            //ต้องเป็นเอาพุท
     while(1)
      {
             PORTB = 0x03;
             Delay_ms(1000);
      }
{


0FCH = 11111100B เขาต้องการ แค่ a0 a1 ครับ
บันทึกการเข้า
decha
member
*

คะแนน3
ออฟไลน์ ออฟไลน์

กระทู้: 58


อีเมล์
« ตอบ #12 เมื่อ: กรกฎาคม 09, 2009, 01:45:04 pm »

คุณต่อเอาท์พุตแบบไหน
ต่อแบบ Sink ......     +5V------>LED------->R------->RB0
                              +5V----->LED------->R------->RB1
---------------------------------------------------------------
ต่อแบบ Source.....     RB0------>LED------>R------->0 V
                               RB1------>LED------>R------->0 V
----------------------------------------------------------------
                      8       4        2        1  ---------     8        4        2         1
                    RB7    RB6    RB5    RB4              RB3    RB2    RB1     RB0
                      1        1        1        1                  1         1       1          1           =    PORT = 0xFF หรือ   0xFFH
                      1        1        1        1                  1         1       0          0           =    PORT = 0xFC  หรือ 0xFCH
                      0        0        0        0                  0         0       1          1           =    PORT = 0x03   หรือ 0x03H

ถ้าต่อแบบ Sink ต้องการให้ LED ติด ต้องกำหนดให้ output  RB1,RB0 = 0 นอกนั้นเป็น  1 จะได้   PORT = 0xFC
ถ้าต่อแบบ Source ต้องการให้ LED ติดต้องการกำหนดให้ output  RB1,RB0 = 1 นอกนั้นเป็น  0 จะได้   PORT = 0x03
เป็นการบวกเลข 4 หลัก (4 Bits)   8 4  2  1  -------  8   4   2    1    ให้เป็นเลขฐาน 16
ก็คือ   bit เป็น 1   ให้เอาเลข ( 8 4 2 1) ที่อยู่ด้านบนมาบวกกัน  เป็นเลขฐาน 16

บันทึกการเข้า
หน้า: [1]   ขึ้นบน
  พิมพ์  
 
กระโดดไป: