این پروژه توسط میکروکنترلر ATMEGA32 و کامپایلر کدویژن طراحی شده. ابتدا با انتخاب * یا # یکی از منو ها انتخاب می شود . برای وارد کردن پسوورد دکمه * فشرده شود و برای تغییر پسوورد دکمه # زده شود.

اگر * انتخاب شود سیستم منتظر دریافت کد می شود اگرعددی اشتباه وارد کردید با زدن دکمه * پاک می شود در صورتی که تمام ارقام کد را وارد کرده برای تائید کد, دکمه # زده شود اگر درست بود خروجی متصل به رله به مدت 500 میلی ثانیه فعال می شود و درب را باز می کند.

 

 

اگر کد اشتباه بود برای 2 مرتبه دیگر می توان کد وارد کرد و بعد از آن سیستم دیگر کد دریافت نمی کند. و تنها با فشردن دکمه متصل به پورت B0 به حالت پیش فرض با کد: 1234 بر می گردد.

اما در صورتی که تغییر پسوورد انتخاب شود پسوورد قبلی را وارد می کنید در صورتی که درست بود پسوورد جدید را نیز وارد کرده و با زدن دکمه # آن را تائید میکنید تا ثبت شود.از این پس با این پسوورد وارد می شوید و پسوورد قبلی مورد قبول نمی باشد.

 

  دانلود

فایل : پروژه طراحی درب بازکن رمزی توسط میکرو کنترلر AVR
حجم : 86,99KB
  نظرات

جهت ثبت نظر وارد سایت شوید

راهنمای استفاده از کد در کامنت
````
insert your code
``
amir ap
سه شنبه 2 شهریور 1400 ,01:05 ب.ظ

فوق العاده بود برنامتون واقعا خسته نباشید .

مهدی ادهم
چهارشنبه 3 شهریور 1400 ,08:21 ق.ظ

ممنونم دوست عزیز

موفق باشید

جهت ثبت پاسخ وارد سایت شوید
حمید شاکری
شنبه 28 فروردین 1400 ,09:24 ق.ظ

سلام خدا قوت

من قفل رمز رو اجرا کردم ولی در پروتئوس هیچگونه اکشنی نمیگیره یه توضیح مختصری اگر بدهید برای اجرای برنامه ممنون میشوم

من از ویزارد استفاده کردم و ورودی و خروجی هارو طبق شکل تعریف کردم LCD رو هم فعال کردم و داخل فایل ایجاد شده برنامه شما رو اضافه کردم کامپایل و BUILD ALL کردم هیچگونه ERROE ی نداد ولی دیسپلی فقط اینتر پسورد و چنج پسورد رو نشون میده اشکال کار کجاست ممنونم

تکفورال (ادمین)
شنبه 28 فروردین 1400 ,10:12 ق.ظ

قبل از اینکه تغییرات با پروژه خود را تست کنید

ابتدا فایل هگز اصلی پروژه را از مسیر

Open door With Pass_(www.techforall.ir)\Open door With Pass\Source Code\Exe

در میکرو مگا32 پروتئوس اتچ کنید و بعد امتحان کنید و بررسی کنید که فرکانس کلاک میکرو در پروتئوس

8 مگاهرتز باشد و در انتها سعی کنید تغییرات برنامه خود را بدون ویزارد و در قسمت ابتدای کد فایل main وارد کنید.

حمید شاکری
شنبه 28 فروردین 1400 ,11:07 ق.ظ

با سلام

خیلی ممنون که پاسخگو بودید

فایلی که برای برنامه قرار داده بودید برنامه فایل پروتئوس داخل پوشه simulate نبود من خودم درست کردم روشی را که فرموده بودید اجرا کردم فرکانس کار در پروتئوس در قسمت edit component چیزی که دیده میشه default هست من 8000000 هم گذاشتم ولی باز فرقی نکرد مگر اینکه من مسیر رو اشتباه فهمیده باشم خیلی ممنون از شما چنانچه بتونین این مشکلم را حل کنید ممنون میشم بیشتر دنبال برنامه ای میگردم که بتوانم با eeprom کار کنم

یعنی یک برنامه ساده ای که چها led را به صورت باینری روشن و خاموش کند و با قطع برق از جایی که بوده ادامه دهد.

بسیار سپاسگزارم

مهدی ادهم
شنبه 28 فروردین 1400 ,07:42 ب.ظ

سلام، ممنونم من چک کردم البته فایل های پوشه simulate خالی نیست نمیدونم چرا شما ندارین در هر صورت اگر هیچگونه اکشنی در شبیه ساز ندارین احتمالا از keypad نسخه پروتئوس باشه. جای آن از 12 باتن به صورت کلید ماتریسی 4x3 استفاده کنید ببینید جواب می گیرید. در مورد eeprom هم، کدویژن کمی کار را ساده کرده و در زمان معرفی متغییر از کلمه کلیدی eeprom قبل از نوع متغییر استفاده شده است که در اینصورت دیگر نیاز به نوشتن و خواندن در آدرسی از حافظه ایپیرام نیست.

حمید شاکری
دوشنبه 30 فروردین 1400 ,08:37 ق.ظ

با سلام

اشکال کار اجرا نشدن قفل رمزی در نرم افزار پروتئوس من بود که از ورژن 7 استفاده میکردم ولی بعد از نصب ورژن8.1 راه افتاد ولی با تغییر رمز و ورود رمز جدید, فرمان open صادر نمیشود و بعد از حدودا یک دقیقه کل برنامه پروتئوس بسته میشود.

چنانچه برایتان امکان داشته باشد یک برنامه کد ویژن که چهار led را به ترتیب باینری روشن کند و از حافظه eeprom استفاده کند را برایم بنویسید منظورم روش استفاده از eeprom هست برنامه ساده ای باشد که بتوانم به صورت الگو از آن جهت کار با eeprom استفاده کنم.

از اینکه مزاحم شما شدم عذر میخواهم از همکاری و پاسخ شما نیز کمال تشکر را دارم.

برنامه ای که من نوشتم به اینصورت میباشد که هنگام استپ کردن و اجرای برنامه مجدد از اول شروع میکند.

#include <mega8a.h>

#include <delay.h>

eeprom unsigned int i;

void main(void)

{

if(eeprom i==0xFFFF)eeprom i=0x0000;

DDRB=0xFF;

eeprom unsigned int i;

while (1)

{

PORTB.0=i;

delay_ms(50);

PORTB.1=i;

delay_ms(50);

PORTB.2=i;

delay_ms(50);

PORTB.3=i;

delay_ms(50);

PORTB.0=0;

delay_ms(50);

PORTB.1=0;

delay_ms(50);

PORTB.2=0;

delay_ms(50);

PORTB.3=0;

delay_ms(50);

}}

مهدی ادهم
سه شنبه 31 فروردین 1400 ,08:13 ب.ظ

سلام کاربر عزیز حمید شاکری

خوشحالم که مشکلتون حل شد با این وجود به نظر باز مشکلی در اجرای عملکرد برنامه در پروتئوس دارید.

در هر صورت کد این پروژه نمونه خوبی برای طراحی محصول مشابه با امکانات بیشتر می باشد و سعی شده کدنویسی این پروژه ساده و روان باشد و قابل فهم که عملکرد آن هم تست شده باشد.

در مورد کدی که نوشتید چند نکته است که باید رعیت شود

eeprom یکبار استفاده می شود و آن هم در زمان تعریف متغیر به عنوان مثال:

eeprom unsigned char LEDS_STATUS;

و بعد در برنامه فقط از نام متغیر استفاده شود

که یا به آن مقدار می دهید به عنوان مثال

LEDS_STATUS = 0b00001000;

همینطور

LEDS_STATUS = 0x08;

یا از مقدار آن استفاده می کنید

به عنوان مثال وضعیت خروجی یک پورت که از پین 1 تا 4 به LED متصل هستند

PORTB = LEDS_STATUS;

در نهایت امیدوارم نمونه کد زیر کمکتون کنه

techforall.ir/content/uploads/ed.zip

حمید شاکری
پنجشنبه 2 اردیبهشت 1400 ,11:28 ب.ظ

با درود فراوان

خدمت دوست گرامی جناب مهندس مهدی ادهم

با تشکر فراوان از راهنمایی شما , چندین بار مشابه برنامه ای که زحمت کشیدید نوشته بودم ولی جواب نمی گرفتم نمیدونم چرا

به هر جهت برنامه ای که زحمت کشیدید بسیار کمک حالم شد از لطف شما سپاسگزارم و امیدوارم در تمامی مراحل زندگیتان شاد و موفق و سلامت باشید.

ارادتمند شما حمید شاکری

مهدی ادهم
شنبه 4 اردیبهشت 1400 ,02:56 ب.ظ

ممنونم دوست عزیز

این که عالیه، خوشحالم که نتیجه گرفتید

موفق باشید

جهت ثبت پاسخ وارد سایت شوید
محمد موسوی
چهارشنبه 18 فروردین 1400 ,08:14 ق.ظ

روی مگا ۳۲ البته یه تغییراتی دادم روی پورت d که اون رله رو روی پورت ۷ bوصل کردم جواب داد خیلی خوب هم کار میکنه ممنون از کدی که نوشتید خیلی خوب نوشته شده بود

مهدی ادهم
چهارشنبه 18 فروردین 1400 ,11:03 ق.ظ

خب این که عالیه، ممنونم موفق باشید

جهت ثبت پاسخ وارد سایت شوید
محمد موسوی
سه شنبه 17 فروردین 1400 ,05:09 ب.ظ

برای مگا ۸ من پروژه عوض کردم هیچ کاری انجام نمیده به نظر شما مشکل از کجا

مهدی ادهم
سه شنبه 17 فروردین 1400 ,05:47 ب.ظ

به pinout مگا8 نسبت به مگا32 (PORTA استفاده شده در lcd کاراکتری و...) دقت شود که به پیکربندی جدید در سورس کد برنامه نیاز خواهد بود

محمد موسوی
چهارشنبه 18 فروردین 1400 ,08:17 ق.ظ

اینارو انجام دادم همرو تغییر دادم حالا روی مگا۳۲ درست شد

جهت ثبت پاسخ وارد سایت شوید
Meli seen
سه شنبه 4 شهریور 1399 ,09:56 ب.ظ

پروژه عالی بود.ممنوووون

تکفورال (ادمین)
چهارشنبه 5 شهریور 1399 ,04:41 ب.ظ

خواهش میکنم ،این به ما انگیزه می دهد تا با انرژی بیشتری ادامه دهیم

جهت ثبت پاسخ وارد سایت شوید