ใครเก่ง picช่วยทีครับ
หน้า: [1]   ลงล่าง
  พิมพ์  
ผู้เขียน หัวข้อ: ใครเก่ง picช่วยทีครับ  (อ่าน 6256 ครั้ง)
kanoknan
member
*

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

กระทู้: 4


« เมื่อ: มกราคม 14, 2008, 12:04:39 pm »

อยากจะได้โปรแกรมสแกนคีย์จากวงจรนี้ครับ
1.กดรหัส 4 ตัว ซ้ำกันสองครั้งแล้วให้มันเก็บข้อมูลไว้ แล้วให้ขาa1ทำงาน(สมมุติ)
2.กดรหัสตรงกับรหัสเดิมให้ขาa1หยุดทำงาน
3.ถ้ากดรหัสไม่ตรงกับรหัสเดิมสองครั้งให้ขาa2ทำงาน
ประมาณนี้อะครับ
จะทำกันขโมยครับช่วยทีนะครับขอบคุณครับ Sad


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

JUB
Full Member
member
**

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

กระทู้: 1157



« ตอบ #1 เมื่อ: มกราคม 15, 2008, 04:20:06 pm »

มันยากเอาการอยู่นะครับแต่จะลองทำให้ Tongue
บันทึกการเข้า
JUB
Full Member
member
**

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

กระทู้: 1157



« ตอบ #2 เมื่อ: มกราคม 16, 2008, 02:09:44 pm »

อันนี้ดีกว่าครับเอา code ไปใช้ได้เลยผมลองแล้ว work มากๆ (ถ้าไม่ได้ทำ โปรเจคส่งนะ)

pc" target="_blank">www.josepino.com/pic_projects/index.pl?security_keypad_2.j pc
บันทึกการเข้า
kanoknan
member
*

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

กระทู้: 4


« ตอบ #3 เมื่อ: มกราคม 17, 2008, 11:35:06 pm »

ขอบคุณครับ พอดีเคยทำแล้วตอนสามปีก่อนอะครับทำเล่นๆอะแต่ตอนนี้มันจำไม่ได้  ผมใช้ picbasic pro เขียนอะครับ ขอตัวอย่าง แค่กด 1 ครั้งแล้วให้มันเก็บค่าของporta .0-3ใส่ค่าตัวแปร สี่ตัว ตัวแปรเอาแบบที่เอามาเปรียบเทียบกันได้ว่าตรงกันหรือไม่อะครับ ไม่รู้จะใช้คำสั่ง button ได้รึป่าวกำลังงงครับ  Cheesy 
ตอนนี้จาเอามาทำโปรเจคอะครับ
บันทึกการเข้า
JUB
Full Member
member
**

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

กระทู้: 1157



« ตอบ #4 เมื่อ: มกราคม 18, 2008, 12:54:06 am »

ผมเขียนได้แต่ ASM ครับภาษาอื่นเขียนไม่ได้เลย เอามั๊ยครับผมจะลองเขียนให้ Smiley
บันทึกการเข้า
kanoknan
member
*

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

กระทู้: 4


« ตอบ #5 เมื่อ: มกราคม 18, 2008, 01:38:35 am »

แบบนี้จะได้มะครับใครดูเป็นช่วบอกทีครับ จะต้องแก้ตรงไหนบ้าง
    P0 VAR BYTE
    P1 VAR BYTE
    P2 VAR BYTE
    P3 VAR BYTE
    P4 VAR BYTE
    B0 VAR BYTE
    B1 VAR BYTE
    B2 VAR BYTE
    B3 VAR BYTE
    B4 VAR BYTE
   
STARTCH :
   
CHACKA1 :   P0 = PORTA
                        IF P0 = 0 THEN CHACKA1
                        A1 = P0
                        P0 = 0
CHACKA2 :   P0 = PORTA
                        IF P0 = 0 THEN CHACKA2
                        A2 = P0
                        P0 = 0
CHACKA3 :   P0 = PORTA
                        IF P0 = 0 THEN CHACKA3
                        A3 = P0
                        P0 = 0           
CHACKA4 :   P0 = PORTA
                        IF P0 = 0 THEN CHACKA4
                        A4 = P0
                        P0 = 0
                       
CHACKB1 :   P0 = PORTA
                        IF P0 = 0 THEN CHACKB1
                        B1 = P0
                        IF A1 >< B1 THEN CHACKA1
                        P0 = 0
CHACKB2 :   P0 = PORTA
                        IF P0 = 0 THEN CHACKB2
                        B2 = P0
                        IF A2 >< B2 THEN CHACKA1
                        P0 = 0
CHACKB3 :   P0 = PORTA
                        IF P0 = 0 THEN CHACKB3
                        B3 = P0
                        IF A3 >< B3 THEN CHACKA1
                        P0 = 0           
CHACKB4 :   P0 = PORTA
                        IF P0 = 0 THEN CHACKB4
                        B4 = P0
                        IF A4 >< B4 THEN CHACKA1
                        P0 = 0
อันนี้เช็ครหัสสองครั้งแรกว่าตรงกันถึงให้ผ่านใช้ได้ไหมครับ
ถ้าใช้ได้แล้วต้องใช้คำสั่งไหนเก็บขอมูลรหัสไว้ตอนที่ไม่มีไฟเลี้ยงอะ
ครับ Sad ยังไงก็ขอบคุณ คุณ JUBมากครับ Cheesy
บันทึกการเข้า
nont_peet
member
*

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

กระทู้: 6


อีเมล์
« ตอบ #6 เมื่อ: กุมภาพันธ์ 10, 2008, 11:17:11 pm »

เก็บค่าลงรอม (ต้องเป็นเบอร์ที่มีรอมนะครับเช่น 16f877)ใช้คำสั่ง  รีดกับไรด์ครับ
เช่น
       ไรด์  21,v   หมายความว่า เก็บค่าตัวแปร  v ลงในรอมในตำแหน่งที่ 21
      รีด       21,x  หมายความว่า อ่านค่าที่ตำแหน่ง 21 เก็บในตัวแปร x   
บันทึกการเข้า
pitak
member
*

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

กระทู้: 4


เด็กROBOTค้าบ


« ตอบ #7 เมื่อ: กุมภาพันธ์ 05, 2009, 01:25:58 am »

INCLUDE "MODEDEFS.BAS"
 KEY_WORD VAR BYTE
 KEY_MOED VAR BYTE
 KEY      VAR WORD
 PASS    VAR BYTE
 LOCK   CON 4


 '***************************** PASS SELECT CONTRO****************************
 
 '*****************************************************************************
 A VAR BYTE     'กำหนดไว้เพื่อเก็บตัวแปล
 B VAR BYTE    'กำหนดไว้เพื่อเก็บตัวแปล   
 G VAR BYTE     'กำหนดไว้เพื่อเก็บตัวแปล   
 P var byte      'กำหนดไว้เพื่อเก็บตัวแปล   
 
 
 
 
 
 
 PASS_ENTER VAR BYTE
 PASS_ENTER = 4321   'ใส่รหัสให้ตรง  ถึงผ่าน"เปลี่ยนได้ตามใจชอบ."
 PASS_CONTRO VAR BYTE'............DATA OUTPUT............. ................... ..
 
KEY_PASS  VAR BYTE '.............INPUT KEY WORD............... .................
pass_all  var byte
TRISB=%11111111
PORTB=%11111111 
START: P=1     
 
 MAIN_PASS1:

  PORTA=0
 
 IF PORTB =%00000001 Then       
 KEY=1  :GOTO SAVE_KEY1
  ELSE
IF PORTB =%00000010  Then
 KEY=2  :GOTO SAVE_KEY1
 ELSE
IF PORTB =%00000011  Then
 KEY=3  :GOTO SAVE_KEY1
 ELSE
 IF PORTB =%00000100 Then
 KEY=4  :GOTO SAVE_KEY1
 ELSE
IF PORTB =%00000101  then
 KEY=5  :GOTO SAVE_KEY1
 ELSE
 IF PORTB =%00000110 Then
 KEY=6  :GOTO SAVE_KEY1
 ELSE
 IF PORTB =%00000111 Then
 KEY=7  :GOTO SAVE_KEY1
 ELSE
IF PORTB =%00001000  Then
 KEY=8  :GOTO SAVE_KEY1
 ELSE
 IF PORTB =%00001001 Then
 KEY=9  :GOTO SAVE_KEY1
 ELSE
IF PORTB =%00001010  THEN
 KEY=0  :GOTO SAVE_KEY1
 ELSE
IF PORTB=%00001011   Then 
 KEY="*":gosub Beep_Beep:GOTO ENTER
 ELSE
IF PORTB=%00001100   THEN
 KEY="#":PAUSE 100
 ELSE
 
 ENDIF
 ENDIF
 ENDIF
 ENDIF
 ENDIF
 ENDIF
 ENDIF
 ENDIF
 ENDIF
 ENDIF
 ENDIF
 ENDIF
 
     
 
 GOTO MAIN_PASS1
 pause 100
'//////////////////////CODE KEY PASSWORD///////////////////////////////////
 SAVE_KEY1:gosub Beep_Beep:goto sav_key     
   
    sav_key: A[P]=KEY
 
     KEY_ALL=(A[1]*1000)+(A[2]*100)+(A[3]*10)+(A[4]*1)   '>>>>>>>>>>>>>>>>>>>
      IF P=LOCK THEN ENTER                               '>>>>>>>>>>>>>>>>>>>
         P=P+1                                           '>>>>>>>>>>>>>>>>>>>
 PAUSE 400
     GOTO MAIN_PASS1

 ENTER:  IF KEY_ALL = pass_enter then  OUT_LOOP
         IF KEY_ALL!= PASS_ENTER THEN  ERROR

 
OUT_LOOP:TOGGLE porta.1  ให้    led ติดครัง และดับอีกครัง เมื่อใส่รหัสถูกอีกครั้งครับ


ERROR   :HIGH PORTA.2     เมื่อใส่พลาสเวิสไม่ถูก porta.2ทามงาน หน่วงเวลา 2  "วินาที แล้วส่งไป รอรับการใส่คีย์อีกครั้ง
   PAUSE 200
    GOTO MAIN_PASS1

     


END




''''''ไม่รู้ว่าทำาเสร็จยังน่ะครับไงก็ลองเอาไปใช้ดูแล้วกันครับ
บันทึกการเข้า
kanoknan
member
*

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

กระทู้: 4


« ตอบ #8 เมื่อ: กุมภาพันธ์ 10, 2009, 10:06:27 pm »

เรียบร้อยแล้วครับ หากระทู้ไม่เจอพอดีลง windows ใหม่ พึ่งมาเจอ ขอบคุณมากๆครับ
บันทึกการเข้า
หน้า: [1]   ขึ้นบน
  พิมพ์  
 
กระโดดไป: