ใครเก่ง picbasic pro ช่วยตอบหน่อยครับ
หน้า: [1]   ลงล่าง
  พิมพ์  
ผู้เขียน หัวข้อ: ใครเก่ง picbasic pro ช่วยตอบหน่อยครับ  (อ่าน 4139 ครั้ง)
jam_007
member
*

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

กระทู้: 30


« เมื่อ: มิถุนายน 09, 2009, 06:02:03 pm »

ช่วยอธิบายว่ามันทำงานยังไงครับ    ถ้าไม่รบกวนจนเกินไปก็ขอทั้งหมดครับ


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

laser
member
*

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

กระทู้: 38


« ตอบ #1 เมื่อ: กรกฎาคม 16, 2009, 03:52:57 pm »

มันเปน เงื่อนไขที่ตั้งไว้ว่า ถ้า portB มากกว่า 4 และไม่เท่ากับ 11110000 จำทำงานอ่ะคัฟ

มันจาใช้งานได้หรอ ในเมื่อ lable    getkey: ไม่มีการรับค่าใด ๆ นอกจากสั่ง พักการทำงาน 50 ms -*-
บันทึกการเข้า
laser
member
*

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

กระทู้: 38


« ตอบ #2 เมื่อ: กรกฎาคม 16, 2009, 04:04:45 pm »

col var byte คือการกำหนด ให้ตัวแปร col มีค่า 0-255
row เหมือนกับด้านบน
key เหมือนกับ ด้านบน
baud var porta.0 คือกำหนดให้ porta.0 เป็นชื่อตัวแปร baud
serpin เหมือนกับด้านบนแต่เป็น port a.1

loop:
   gosub getkey  ให้ไปทำงานที่ lable getkey

send:
   if baud = 1 then fast ถ้า baud ถูกกระทำโดยการจ่ายไปเข้า ขาA.0
จะทำตามเงื่อนไข ซึ่ง = fast
serout serpin,n2400,[key]
กำหนด serpin = n2400 อยู่ใน ตัวแปร key กรณีที่ baud เป็น 0 หรือ เป็น กราวน์
goto loop กลับไปทำงานที่ลูปอีกครั้ง

fast:
 serout serpin,n9600,[key] อธิบายไปแล้ว

getkey:
   pause 50 คือการพัก โปรแกรม 50ms
getkeyu:
   portb = 0 กำหนด portb ให้เป็น เอาท์พุท หรือ เป็นกราวน์ ทุกขา
   Trisb = $f0 เป็นการกำหนด portB ให้เป็น อินพุต 4 บน และ 4 บิทล่างเป็นเอาท์พุต
   if portB >> 4 != $F then getkeyu เป็น ฟังชั่นย้อนกลับ ถ้า portB มากกว่า4
แต่ไม่เท่ากับ 16 จะย้อนกลับไปที่ lable getkeyu

พอแล้วเน้อ เมื่อ ผมบอกเท่าที่รู้ถ้าผิดก้อขออภัย
บันทึกการเข้า
jam_007
member
*

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

กระทู้: 30


« ตอบ #3 เมื่อ: กรกฎาคม 19, 2009, 09:59:00 am »

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