รหัสล็อคดิจิตอลโดยใช้ไมโครคอนโทรลเลอร์ 8051
ที่ฝัง
ความปลอดภัยเป็นเรื่องสำคัญในชีวิตประจำวันของเราและการล็อคดิจิตอลได้กลายเป็นส่วนสำคัญของระบบรักษาความปลอดภัยเหล่านี้ มีเทคโนโลยีหลายประเภทที่พร้อมให้ความปลอดภัยแก่สถานที่ของเราเช่นระบบรักษาความปลอดภัยแบบอิง PIR , ระบบรักษาความปลอดภัยด้วยRFID , สัญญาณเตือนความปลอดภัยเลเซอร์ , ระบบไบโอเมทริกซ์เป็นต้นแม้กระทั่งตอนนี้ยังมีระบบล็อคแบบดิจิตอล ความจำเป็นมากขึ้นเพื่อให้ปุ่มที่แตกต่างกันเพียงหนึ่งมาร์ทโฟนสามารถทำงานได้ทุกล็อคแนวคิดนี้จะขึ้นอยู่กับอินเทอร์เน็ตของสิ่ง
ในโครงการนี้เราได้อธิบายการล็อครหัสอิเล็กทรอนิกส์อย่างง่าย ๆโดยใช้ 8051 Microcontorllerซึ่งสามารถปลดล็อคได้ด้วยรหัสที่กำหนดไว้ล่วงหน้าเท่านั้นหากเราใส่รหัสผิดระบบจะเตือนด้วยเสียงไซเรน เราได้สร้างDigital lock โดยใช้ Arduinoแล้ว
คำอธิบายการทำงาน:
ระบบนี้ส่วนใหญ่ประกอบด้วยไมโครคอนโทรลเลอร์AT89S52โมดูลปุ่มกดออดและจอแอลซีดี At89s52 ไมโครคอนโทรลเลอร์ควบคุมกระบวนการทั้งหมดเช่นการใช้โมดูลรหัสผ่านแบบแป้นพิมพ์การเปรียบเทียบรหัสผ่านรหัสผ่านที่กำหนดไว้ล่วงหน้ารหัสผ่านการขับรถและส่งสถานะไปยังจอแสดงผล LCD ปุ่มกดใช้สำหรับใส่รหัสผ่านลงในไมโครคอนโทรลเลอร์ Buzzer ใช้สำหรับระบุรหัสผ่านที่ไม่ถูกต้องและใช้สำหรับแสดงสถานะหรือข้อความบน LCD Buzzer มีไดรเวอร์ inbuilt โดยใช้ทรานซิสเตอร์ NPN
ส่วนประกอบ:
- 8051 ไมโครคอนโทรลเลอร์ (AT89S52)
- โมดูลปุ่มกด 4X4
- ออด
- จอแอลซีดี 16x2
- ตัวต้านทาน (1k, 10k)
- ตัวต้านทานแบบดึงขึ้น (10K)
- ตัวเก็บประจุ (10uF)
- ไฟ LED สีแดง
- บอร์ดขนมปัง
- IC 7805
- 11.0592 MHz Crystal
- พาวเวอร์ซัพพลาย
- สายเชื่อมต่อ
การป้อนข้อมูลจากเมทริกซ์ปุ่มกด 4X4 โดยใช้เทคนิคการมัลติเพล็กซ์:
ในวงจรนี้เราได้ใช้เทคนิคมัลติเพล็กซิ่งในการเชื่อมต่อปุ่มกดกับไมโครคอนโทรลเลอร์ 8051 เพื่อป้อนรหัสผ่านในระบบ ที่นี่เราใช้ปุ่มกดขนาด 4x4 ซึ่งมี 16 ปุ่ม ถ้าเราต้องการใช้ 16 ปุ่มเราจำเป็นต้องใช้ 16 พินสำหรับการเชื่อมต่อกับ 89s52 แต่ในเทคนิคมัลติเพล็กซิ่งเราจำเป็นต้องใช้เพียง 8 พินในการเชื่อมต่อ 16 ปุ่ม เพื่อให้เป็นวิธีที่ชาญฉลาดในการเชื่อมต่อโมดูลปุ่มกด
เทคนิคการมัลติเพล็กซ์เป็นวิธีที่มีประสิทธิภาพในการลดจำนวนพินที่ใช้กับไมโครคอนโทรลเลอร์สำหรับการป้อนข้อมูลหรือรหัสผ่าน โดยทั่วไปเทคนิคนี้ถูกนำมาใช้ในสองวิธี - หนึ่งคือการสแกนแถวและอีกหนึ่งคือการสแกนคอลัมน์
ที่นี่เราจะอธิบายการสแกนแถว:
ก่อนอื่นเราต้องกำหนด 8 pin สำหรับโมดูลปุ่มกด หมุด 4 ตัวแรกเป็นคอลัมน์และหมุด 4 อันสุดท้ายเป็นแถว
สำหรับการสแกนแถวเราจำเป็นต้องให้ข้อมูลหรือสัญญาณไปยังพินคอลัมน์และอ่านข้อมูลหรือสัญญาณจากพินแถว ตอนนี้สมมติว่าเราให้ข้อมูลด้านล่างกับพินคอลัมน์:
C1 = 0;
C2 = 1;
C3 = 1;
C4 = 1;
C2 = 1;
C3 = 1;
C4 = 1;
และเราอ่านข้อมูลนี้ที่หมุดแถว (โดยค่าเริ่มต้นแถวหมุดคือ HIGH เนื่องจากตัวต้านทานแบบดึงขึ้น)
หากผู้ใช้กดหมายเลขคีย์ '1' ดังนั้น R1 จะเปลี่ยนเป็น HIGH เป็น LOW หมายถึง R1 = 0; และผู้ควบคุมเข้าใจว่าผู้ใช้กดปุ่ม '1' และจะพิมพ์ '1' บน LCD และเก็บ '1' ในอาร์เรย์ ดังนั้นการเปลี่ยนแปลง HIGH to LOW ที่ R1 จึงเป็นสิ่งสำคัญที่ผู้ควบคุมเข้าใจว่ามีการกดคีย์บางตัวที่ตรงกับคอลัมน์ 1
ตอนนี้หากผู้ใช้กดหมายเลขคีย์ '2' ดังนั้น R1 จะยังคงอยู่ที่ HIGH เนื่องจาก C1 และ R1 ทั้งคู่อยู่ที่ HIGH ดังนั้นจะไม่มีการเปลี่ยนแปลงหมายความว่าไมโครคอนโทรลเลอร์เข้าใจว่าไม่มีสิ่งใดถูกกดลงในคอลัมน์ที่หนึ่ง และครูใหญ่คนนี้ก็เช่นกันสำหรับพินอื่นทั้งหมด ดังนั้นในตัวควบคุมขั้นตอนนี้จะรอคีย์ในคอลัมน์เดียวเท่านั้น: '1', '4', '7' และ '*'
ตอนนี้ถ้าเราต้องการติดตามคีย์ในคอลัมน์อื่น ๆ (เช่นในคอลัมน์ 2) จากนั้นเราต้องเปลี่ยนข้อมูลเป็นพินคอลัมน์:
C1 = 1;
C2 = 0;
C3 = 1;
C4 = 1;
C2 = 0;
C3 = 1;
C4 = 1;
ตัวควบคุมเวลานี้รอคีย์ในคอลัมน์ที่สองเท่านั้น: '2', '5', '8'and' 0 'เนื่องจากการเปลี่ยนแปลง (สูงถึงต่ำ) จะเกิดขึ้นเฉพาะเมื่อมีการกดปุ่มสองคอลัมน์ หากเรากดปุ่มใด ๆ ใน col 1, 3 หรือ 4 จะไม่มีการเปลี่ยนแปลงเกิดขึ้นเนื่องจากคอลัมน์เหล่านี้อยู่ที่ HIGH และแถวอยู่ที่ HIGH
ดังนั้นคีย์เดียวกันในคอลัมน์ C3 และ C4 จึงสามารถติดตามได้ด้วยการทำให้เป็น 0 ในแต่ละครั้ง ตรวจสอบที่นี่คำอธิบายรายละเอียด: ปุ่มกดเชื่อมต่อกับ 8051 โปรดอ่านส่วนของรหัสด้านล่างเพื่อทำความเข้าใจกับตรรกะอย่างถูกต้อง
คำอธิบายวงจร:
แผนภาพวงจรสำหรับล็อคดิจิตอลที่ใช้ 8051ได้แสดงไว้ด้านล่างและสามารถเข้าใจได้ง่าย หมุดคอลัมน์ของโมดูลปุ่มกดเชื่อมต่อโดยตรงกับพิน P0.0, P0.1, P0.2, P0.3 และพินแถวเชื่อมต่อกับ P0.4, P0.5, P0.6, P0.6, P0.7 ของพอร์ตของไมโครคอนโทรลเลอร์ 89s52 0 . 16x2 LCD เชื่อมต่อกับไมโครคอนโทรลเลอร์ 89s52 ในโหมด 4 บิต หมุดควบคุม RS, RW และ En เชื่อมต่อโดยตรงกับขา P1.0, GND และ P1.2 และ data pin D4-D7 เชื่อมต่อกับพิน P1.4, P1.5, P1.6 และ P1.7 จาก 89s52 และหนึ่งเสียงสัญญาณเชื่อมต่อที่พิน P2.6 ผ่านตัวต้านทาน
คำอธิบายโปรแกรม:
เราได้ใช้รหัสผ่านที่กำหนดไว้ล่วงหน้าในโปรแกรมรหัสผ่านนี้สามารถกำหนดโดยผู้ใช้ในรหัสด้านล่าง เมื่อผู้ใช้ป้อนรหัสผ่านเข้าสู่ระบบ,จากนั้นระบบจะเปรียบเทียบรหัสผ่านของผู้ใช้กับรหัสผ่านที่เก็บไว้หรือรหัสที่กำหนดไว้ล่วงหน้าใน Code of Program หากการแข่งขันเกิดขึ้น LCD จะแสดง“ Access Grated” และหากรหัสผ่านไม่ตรงกัน LCD จะแสดง“ Access Denied” และเสียงสัญญาณเตือนจะดังขึ้นอย่างต่อเนื่องเป็นระยะเวลาหนึ่ง ที่นี่เราใช้ห้องสมุด string.h โดยใช้ไลบรารีนี้เราสามารถเปรียบเทียบหรือจับคู่สองสตริงโดยใช้ฟังก์ชัน“ strncmp”
ในโปรแกรมก่อนอื่นเรามีไฟล์ส่วนหัวและกำหนดตัวแปรและอินพุตและเอาต์พุตพินสำหรับปุ่มกดและ LCD
#include <reg51.h> #include <สตริง> #define lcdport P1 sbit col1 = P0 ^ 0; sbit col2 = P0 ^ 1; sbit col3 = P0 ^ 2; sbit col4 = P0 ^ 3; sbit row1 = P0 ^ 4; sbit row2 = P0 ^ 5; sbit row3 = P0 ^ 6; sbit row4 = P0 ^ 7; sbit rs = P1 ^ 0; sbit en = P1 ^ 2; sbit buzzer = P2 ^ 6;
มีการสร้างฟังก์ชั่นการสร้างความล่าช้า 1 วินาทีพร้อมกับฟังก์ชั่น LCD บางอย่างเช่นการเริ่มต้น LCD, การพิมพ์สตริง, สำหรับคำสั่ง ฯลฯ คุณสามารถค้นหาได้ใน Code ตรวจสอบบทความนี้สำหรับการเชื่อมต่อ LCD กับ 8051และฟังก์ชั่น
หลังจากนี้ในโปรแกรมหลักเราได้เตรียมข้อมูลเบื้องต้นของ LCD แล้วเราอ่านอินพุตจาก Keypad โดยใช้ฟังก์ชั่นแผงปุ่มกด () และเก็บคีย์อินพุตลงในอาเรย์แล้วเปรียบเทียบกับข้อมูลอาเรย์ที่กำหนดไว้ล่วงหน้าโดยใช้
โมฆะหลัก () { กริ่ง = 1; lcd_init (); lcdstring ("รหัสอิเล็กทรอนิกส์"); lcdcmd (0xc0); lcdstring ("ล็อคระบบ"); ล่าช้า (400); lcdcmd (1); lcdstring ("Circuit Digest"); ล่าช้า (400); ในขณะที่ (1) { i = 0; ปุ่มกด (); ถ้า (strncmp (ผ่าน "4201" 4) == 0)
หากรหัสผ่านที่ป้อนถูกจับคู่แล้ว accept () ฟังก์ชั่นจะถูกเรียกว่า:
เป็นโมฆะยอมรับ () { lcdcmd (1); lcdstring ( "ยินดีต้อนรับ"); lcdcmd (192); lcdstring ("ยอมรับรหัสผ่าน"); ล่าช้า (200); }
และหากรหัสผ่านไม่ถูกต้องจะมีการเรียกใช้ฟังก์ชัน () ผิด:
โมฆะผิด () { กริ่ง = 0; lcdcmd (1); lcdstring ("รหัสผ่านไม่ถูกต้อง"); lcdcmd (192); lcdstring ("PLZ ลองอีกครั้ง"); ล่าช้า (200); กริ่ง = 1; }
ตรวจสอบฟังก์ชั่นปุ่มกดด้านล่างในรหัสที่อ่านโมดูลปุ่มกดแบบฟอร์มป้อนข้อมูล
รหัส
#include <reg51.h>
#include <
string.h > #define lcdport P1
#include <
string.h > #define lcdport P1
sbit col1 = P0 ^ 0;
sbit col2 = P0 ^ 1;
sbit col3 = P0 ^ 2;
sbit col4 = P0 ^ 3;
sbit row1 = P0 ^ 4;
sbit row2 = P0 ^ 5;
sbit row3 = P0 ^ 6;
sbit row4 = P0 ^ 7;
sbit col2 = P0 ^ 1;
sbit col3 = P0 ^ 2;
sbit col4 = P0 ^ 3;
sbit row1 = P0 ^ 4;
sbit row2 = P0 ^ 5;
sbit row3 = P0 ^ 6;
sbit row4 = P0 ^ 7;
sbit rs = P1 ^ 0;
sbit en = P1 ^ 2;
sbit buzzer = P2 ^ 6;
sbit en = P1 ^ 2;
sbit buzzer = P2 ^ 6;
ถ่านผ่าน [4], i = 0;
void delay (int itime)
{
int i, j;
สำหรับ (i = 0; i <itime; i ++)
สำหรับ (j = 0; j <1275; j ++);
}
{
int i, j;
สำหรับ (i = 0; i <itime; i ++)
สำหรับ (j = 0; j <1275; j ++);
}
เป็นโมฆะ daten ()
{
rs = 1;
en = 1;
ล่าช้า (5)
en = 0;
}
{
rs = 1;
en = 1;
ล่าช้า (5)
en = 0;
}
โมฆะ lcddata (ch ถ่านที่ไม่ได้ลงชื่อ)
{
lcdport = ch & 0xf0;
Daten ();
lcdport = (ch << 4) & 0xf0;
Daten ();
}
{
lcdport = ch & 0xf0;
Daten ();
lcdport = (ch << 4) & 0xf0;
Daten ();
}
เป็นโมฆะ cmden (เป็นโมฆะ)
{
rs = 0;
en = 1;
ล่าช้า (5)
en = 0;
}
{
rs = 0;
en = 1;
ล่าช้า (5)
en = 0;
}
โมฆะ lcdcmd (ch ถ่านที่ไม่ได้ลงชื่อ)
{
lcdport = ch & 0xf0;
cmden ();
lcdport = (ch << 4) & 0xf0;
cmden ();
}
{
lcdport = ch & 0xf0;
cmden ();
lcdport = (ch << 4) & 0xf0;
cmden ();
}
void lcdstring (char * str)
{
ในขณะที่ (* str)
{
lcddata (* str);
STR ++;
}
}
{
ในขณะที่ (* str)
{
lcddata (* str);
STR ++;
}
}
โมฆะ lcd_init (เป็นโมฆะ)
{
lcdcmd (0x02);
lcdcmd (0x28);
lcdcmd (0x0e);
lcdcmd (0x01);
}
{
lcdcmd (0x02);
lcdcmd (0x28);
lcdcmd (0x0e);
lcdcmd (0x01);
}
ปุ่มกดเป็นโมฆะ ()
{
เคอร์เซอร์ int = 192, ตั้งค่า = 0;
lcdcmd (1);
lcdstring ("ป้อนรหัสผ่าน Ur");
lcdcmd (0xc0);
i = 0;
ในขณะที่ (i <4)
{
flag = เคอร์เซอร์;
col1 = 0;
col2 = col3 = col4 = 1;
if (! row1)
{
lcddata ('1');
ผ่าน [ผม ++] = '1';
เคอร์เซอร์ ++;
ในขณะที่ (! ROW1);
}
else if (! row2)
{
lcddata ('4');
ผ่าน [ผม ++] = '4';
เคอร์เซอร์ ++;
ในขณะที่ (! ROW2);
}
อื่น ๆ ถ้า (! row3)
{
lcddata ( '7');
ผ่าน [ผม ++] = '7';
เคอร์เซอร์ ++;
ในขณะที่ (! row3);
}
ถ้า if (! row4)
{
lcddata ('*');
ผ่าน [ผม ++] = '*';
เคอร์เซอร์ ++;
ในขณะที่ (! row4);
}
col2 = 0;
col1 = col3 = col4 = 1;
if (! row1)
{
lcddata ('2');
ผ่าน [ผม ++] = '2'
เคอร์เซอร์ ++;
ในขณะที่ (! ROW1);
}
else if (! row2)
{
lcddata ('5');
ผ่าน [ผม ++] = '5';
เคอร์เซอร์ ++;
ในขณะที่ (! ROW2);
อื่นถ้า (! row3)
{
lcddata ('8');
ผ่าน [ผม ++] = '8';
เคอร์เซอร์ ++;
ในขณะที่ (! row3);
}
else if (! row4)
{
lcddata ('0');
ผ่าน [ผม ++] = '0';
เคอร์เซอร์ ++;
ในขณะที่ (! row4);
}
col3 = 0;
col1 = col2 = col4 = 1;
if (! row1)
{
lcddata ('3');
ผ่าน [ผม ++] = '3';
เคอร์เซอร์ ++;
ในขณะที่ (! ROW1);
}
else if (! row2)
{
lcddata ('6');
ผ่าน [ผม ++] = '6';
ในขณะที่ (! ROW2);
}
else if (! row3)
{
lcddata ('9');
ผ่าน [ผม ++] = '9';
เคอร์เซอร์ ++;
ในขณะที่ (! row3);
}
ถ้า if (! row4)
{
lcddata ('#');
ผ่าน [ผม ++] = '#';
เคอร์เซอร์ ++;
ในขณะที่ (! row4);
}
col4 = 0;
col1 = col3 = col2 = 1;
if (! row1)
{
lcddata ('A');
ผ่าน [ผม ++] = 'A';
เคอร์เซอร์ ++;
ในขณะที่ (! ROW1);
}
else if (! row2)
{
lcddata ('B');
ผ่าน [ผม ++] = 'B';
เคอร์เซอร์ ++;
ในขณะที่ (! ROW2);
}
else if (! row3)
{
lcddata ('C');
ผ่าน [ผม ++] = 'C';
เคอร์เซอร์ ++;
ในขณะที่ (! row3);
}
else if (! row4)
{
lcddata ('D');
ผ่าน [ผม ++] = 'D';
เคอร์เซอร์ ++;
ในขณะที่ (! row4);
}
if (i> 0)
{
if (flag! = cursor)
ดีเลย์ (100);
lcdcmd (เคอร์เซอร์-1);
lcddata ( '*');
}
}
}
{
เคอร์เซอร์ int = 192, ตั้งค่า = 0;
lcdcmd (1);
lcdstring ("ป้อนรหัสผ่าน Ur");
lcdcmd (0xc0);
i = 0;
ในขณะที่ (i <4)
{
flag = เคอร์เซอร์;
col1 = 0;
col2 = col3 = col4 = 1;
if (! row1)
{
lcddata ('1');
ผ่าน [ผม ++] = '1';
เคอร์เซอร์ ++;
ในขณะที่ (! ROW1);
}
else if (! row2)
{
lcddata ('4');
ผ่าน [ผม ++] = '4';
เคอร์เซอร์ ++;
ในขณะที่ (! ROW2);
}
อื่น ๆ ถ้า (! row3)
{
lcddata ( '7');
ผ่าน [ผม ++] = '7';
เคอร์เซอร์ ++;
ในขณะที่ (! row3);
}
ถ้า if (! row4)
{
lcddata ('*');
ผ่าน [ผม ++] = '*';
เคอร์เซอร์ ++;
ในขณะที่ (! row4);
}
col2 = 0;
col1 = col3 = col4 = 1;
if (! row1)
{
lcddata ('2');
ผ่าน [ผม ++] = '2'
เคอร์เซอร์ ++;
ในขณะที่ (! ROW1);
}
else if (! row2)
{
lcddata ('5');
ผ่าน [ผม ++] = '5';
เคอร์เซอร์ ++;
ในขณะที่ (! ROW2);
อื่นถ้า (! row3)
{
lcddata ('8');
ผ่าน [ผม ++] = '8';
เคอร์เซอร์ ++;
ในขณะที่ (! row3);
}
else if (! row4)
{
lcddata ('0');
ผ่าน [ผม ++] = '0';
เคอร์เซอร์ ++;
ในขณะที่ (! row4);
}
col3 = 0;
col1 = col2 = col4 = 1;
if (! row1)
{
lcddata ('3');
ผ่าน [ผม ++] = '3';
เคอร์เซอร์ ++;
ในขณะที่ (! ROW1);
}
else if (! row2)
{
lcddata ('6');
ผ่าน [ผม ++] = '6';
ในขณะที่ (! ROW2);
}
else if (! row3)
{
lcddata ('9');
ผ่าน [ผม ++] = '9';
เคอร์เซอร์ ++;
ในขณะที่ (! row3);
}
ถ้า if (! row4)
{
lcddata ('#');
ผ่าน [ผม ++] = '#';
เคอร์เซอร์ ++;
ในขณะที่ (! row4);
}
col4 = 0;
col1 = col3 = col2 = 1;
if (! row1)
{
lcddata ('A');
ผ่าน [ผม ++] = 'A';
เคอร์เซอร์ ++;
ในขณะที่ (! ROW1);
}
else if (! row2)
{
lcddata ('B');
ผ่าน [ผม ++] = 'B';
เคอร์เซอร์ ++;
ในขณะที่ (! ROW2);
}
else if (! row3)
{
lcddata ('C');
ผ่าน [ผม ++] = 'C';
เคอร์เซอร์ ++;
ในขณะที่ (! row3);
}
else if (! row4)
{
lcddata ('D');
ผ่าน [ผม ++] = 'D';
เคอร์เซอร์ ++;
ในขณะที่ (! row4);
}
if (i> 0)
{
if (flag! = cursor)
ดีเลย์ (100);
lcdcmd (เคอร์เซอร์-1);
lcddata ( '*');
}
}
}
เป็นโมฆะ accept ()
{
lcdcmd (1);
lcdstring ( "ยินดีต้อนรับ");
lcdcmd (192);
lcdstring ("ยอมรับรหัสผ่าน");
ล่าช้า (200);
}
{
lcdcmd (1);
lcdstring ( "ยินดีต้อนรับ");
lcdcmd (192);
lcdstring ("ยอมรับรหัสผ่าน");
ล่าช้า (200);
}
เป็นโมฆะไม่ถูกต้อง ()
{
buzzer = 0;
lcdcmd (1);
lcdstring ("รหัสผ่านไม่ถูกต้อง");
lcdcmd (192);
lcdstring ("PLZ ลองอีกครั้ง");
ล่าช้า (200);
กริ่ง = 1;
}
{
buzzer = 0;
lcdcmd (1);
lcdstring ("รหัสผ่านไม่ถูกต้อง");
lcdcmd (192);
lcdstring ("PLZ ลองอีกครั้ง");
ล่าช้า (200);
กริ่ง = 1;
}
ถือเป็นโมฆะ main ()
{
buzzer = 1;
lcd_init ();
lcdstring ("รหัสอิเล็กทรอนิกส์");
lcdcmd (0xc0);
lcdstring ("ล็อคระบบ");
ล่าช้า (400);
lcdcmd (1);
lcdstring ("Circuit Digest");
ล่าช้า (400);
ในขณะที่ (1)
{
i = 0;
ปุ่มกด ();
if (strncmp (pass, "4201", 4) == 0)
{
accept ();
lcdcmd (1);
lcdstring ("Access Granted");
ล่าช้า (300);
}
else
{
lcdcmd (1);
lcdstring ("ปฏิเสธการเข้าถึง");
ไม่ถูกต้อง();
ล่าช้า (300);
}
}
}
{
buzzer = 1;
lcd_init ();
lcdstring ("รหัสอิเล็กทรอนิกส์");
lcdcmd (0xc0);
lcdstring ("ล็อคระบบ");
ล่าช้า (400);
lcdcmd (1);
lcdstring ("Circuit Digest");
ล่าช้า (400);
ในขณะที่ (1)
{
i = 0;
ปุ่มกด ();
if (strncmp (pass, "4201", 4) == 0)
{
accept ();
lcdcmd (1);
lcdstring ("Access Granted");
ล่าช้า (300);
}
else
{
lcdcmd (1);
lcdstring ("ปฏิเสธการเข้าถึง");
ไม่ถูกต้อง();
ล่าช้า (300);
}
}
}
ไม่มีความคิดเห็น:
แสดงความคิดเห็น