امتیاز موضوع:
  • 8 رأی - میانگین امتیازات: 3.5
  • 1
  • 2
  • 3
  • 4
  • 5
کتاب خانه های نرم افزار codevision
نویسنده پیام
hadikh73 آفلاین
مدیــر کـل سایـت
*******

ارسال‌ها: 1,218
موضوع‌ها: 43
تاریخ عضویت: شهریور ۱۳۹۱

تشکرها : 13631
( 14739 تشکر در 4686 ارسال )
ارسال: #1
کتاب خانه های نرم افزار codevision
سلام
بعد از کلی سرچ و گشت توی اینترنت بلاخره تونستم تمامی کتابخانه های نرم افزار کدویژن رو جمع آوری کنمHappy
این توابع همه گی به زبان انگلیسی بودند که به فارسی ترجمه کردم و تصمیم گرفتم در اختیار همه قرار بدم
لطفا اگر کسی کتابخانه داره که در این لیست قرار ندارد لطفا یا متن انگلیسی آن را بذارد و یا فارسی آن را بدهد ممنونWink

۱۴-بهمن-۱۳۹۱, ۱۱:۴۰:۲۸
ارسال‌ها
پاسخ
تشکر شده توسط : aKaReZa75, Ambassador, sharin, رسول, omid_phoenix, ha_60, یوسف رشیدی, من عاشق ایرانوج, nanosi, PRO, mnn2009, ciyamak, devd, alimeh, sorena01, patmatp, fanfare_999, MZN84, r.ashrafip, mhpc2009, mehdi ghamari, saeed_fard, ali6265, farazb29, Ghoghnus, powerstation
hadikh73 آفلاین
مدیــر کـل سایـت
*******

ارسال‌ها: 1,218
موضوع‌ها: 43
تاریخ عضویت: شهریور ۱۳۹۱

تشکرها : 13631
( 14739 تشکر در 4686 ارسال )
ارسال: #2
RE: کتاب خانه های نرم افزار codevision
کتابخانه ی ctype

برای استفاده از این کتابخانه باید آن را با دستور زیر فراخوانی کنید
کد:
#include<ctype.h>
کد:
unsigned char isalnum(char c)
خروجی زمانی که ورودی یکی از اعداد یا حروف انگلیسی باشد یک می شود
کد:
unsigned char isalpha(char c)
خروجی زمانی که ورودی یکی از حروف انگلیسی باشد یک می شود
کد:
unsigned char isascii(char c)
خروجی زمانی که ورودی یکی کد اسکی ها بین 0-127 باشد یک می شود
کد:
unsigned char iscntrl(char c)
خروجی زمانی که ورودی کارکتر کنترلی بین 0-31 یا 127 باشد یک می شود
کد:
unsigned char isdigit(char c)
خروجی زمانی که ورودی یکی از اعداد دسیمال بین 0-9 باشد یک می شود
کد:
unsigned char islower(char c)
خروجی زمانی که ورودی یکی از حروف کوچک انگلیسی باشد یک می شود
کد:
unsigned char isprint(char c)
خروجی زمانی که ورودی یکی از قابل چاپ باشد یک می شود
کد:
unsigned char ispunct(char c)

خروجی زمانی که ورودی یکی ازعلائم باشد یک می شود
کد:
unsigned char isspace(char c)
خروجی زمانی که ورودی یکی ازکارکتر های فضای خالی یا carriage return باشد یک می شود
کد:
unsigned char isupper(char c)
خروجی زمانی که ورودی یکی از حروف کوچک انگلیسی باشد یک می شود
کد:
unsigned char isxdigit(char c)
خروجی زمانی که ورودی یکی از اعداد هگزا د دسیمال باشد 1 می شود
کد:
char toascii(char c)
ورودی را به کد اسکی مربوطه تبدیل می کند
کد:
unsigned char toint(char c)
ورودی را که کد هگزاددسیمال است به معادل رقمی آن تبدیل می کند
کد:
char tolower(char c)

اگر ورودی حرف بزرگ باشد آن را به حرف کوچک (حروف لاتین) تبدیل می کند
کد:
char toupper(char c)

اگر ورودی حرف کوچک باشد آن را به حرف بزرگ (حروف لاتین) تبدیل می کند

(آخرین ویرایش در این ارسال: ۱۴-بهمن-۱۳۹۱, ۱۷:۵۴:۱۹، توسط hadikh73.)
۱۴-بهمن-۱۳۹۱, ۱۲:۴۶:۵۵
ارسال‌ها
پاسخ
تشکر شده توسط : aKaReZa75, sharin, رسول, من عاشق ایرانوج, mnn2009, ciyamak, Ambassador, r.ashrafip, alimogmov, mhpc2009, ali6265, Ghoghnus, powerstation
hadikh73 آفلاین
مدیــر کـل سایـت
*******

ارسال‌ها: 1,218
موضوع‌ها: 43
تاریخ عضویت: شهریور ۱۳۹۱

تشکرها : 13631
( 14739 تشکر در 4686 ارسال )
ارسال: #3
RE: کتاب خانه های نرم افزار codevision
کتابخانه ی stdio

برای استفاده از این کتابخانه باید آن را با دستور زیر فراخوانی کنید
کد:
#include<stdio.h>
کد:
char getchar(void)
با استفاده از ارتباطUART یک کارکتر دریافت می کند
کد:
void putchar(char c)
با استفاده از ارتباط UART یک کارکتر را ارسال می کند
نکته: تمامی دستورات سطح بالا در ورودی و خروجی ها از دستورات putchar و getchar استفاده می کنند
کد:
void puts(char *str)
این تابع کارکتر موجود در حافظه SRAM را ارسال می کند( این دستور با استفاده از دستور putchar کار می کند )
کد:
void putsf(char flash *str)
این تابع کارکتر موجود در حافظه FLASH را ارسال می کند( این دستور با استفاده از دستور putchar کار می کند )
کد:
void printf(char flash *fmtstr [ , arg1, arg2, ...])
این تابع یک رشته ی قالب بندی شده را ارسال می کنداین دستور با استفاده از دستور putchar عمل می کند
که رشته قالب بندی شده به این صورت است
کد:
%[flags][width][.precision][l]type_char
Flag
یک پارامتر اختیاری است و می تواند یکی از مقادیر + و – و “ باشد
-: در این صورت همیشه نتایج از چپ مرتب می شوند و در صورت اضاف کردن 0 از سمت راست و اگر جای خالی اضافه کنیم از سمت چپ مرتب می شوند
+: نتایج همیشه با علامت + و یا – شروع می شوند
“ : اگر نتیجه یک عدد منفی باشد تبدیل با علامت منفی شروع می شود در صورتی که مثبت باشد با یک جای خالی تبدیل شروع می شود
Widyh :
یک پارامتر اختیاری است که حداقل پهنای یک مقدار خروجی را تنظیم می کند در صورتی که خروجی از این مقدار بیشتر شود رشته به اندازه ی مورد نیاز بزرگ می شود این پارامتر به دو صورت n و on می باشد
n : در این حالت n کاراکتر در خروجی قرار می گیرد و اگرخروجی از این تعداد کمتر باشد بقیه کاراکتر ها با فضای خالی پر می شود
on : در این حالات a حداقل طول رشته ی n خواهد بود اگر نتیجه کمتر از n کارکتر باشد با صفرهایی در سمت چپ پر می شود
Precision : این پارامتر اختیاری است و حد اکثر تعداد کارکتر ها یا حداقل تعداد رقم هایی که در خروجی قرار می گیرد مشخص می شود و برای جدا کردن قسمت width از قسمت precision از کارکتر “.” استفاده می کنیم
type_char : این پارامتر اجباری است و اگر ننویسیم عمل تبدیل انجام نمی شود در واقع این پارامترطریقه ی نمایش کاراکتر خروجی را مشخص می کند و می تواند یکی از مقادیر زیر باشد
i:خروجی به صورت یک عدد دسیمال علامت دار است
d:خروجی به صورت یک عدد دسیمال علامت دار است
u:خروجی به صورت یک عدد بدون دسیمال علامت دار است
e: خروجی یک عدد float است که به صورت[-]d.dddd e[-]dd نمایش داده می شود
E: خروجی یک عدد float است که به صورت[-]d.dddd e[-]dd نمایش داده می شود
f: خروجی یک عدد float است که به صورت[-]d.dddd e[-]dd نمایش داده می شود
x:خروجی یک عدد هگزاددسیمال است که با حروف کوچک نمایش داده می شود
X: خروجی یک عدد هگزاددسیمال است که با حروف بزرگ نمایش داده می شود
c:خروجی به صورت یک کارکتر نمایش داده می شود
s:خروجی یک اشاره گر به رشته موجود در حافظه SRAM می باشد
p: خروجی یک اشاره گر به رشته موجود در حافظه FLASH می باشد
کد:
void sprintf(char *str, char flash *fmtstr [ , arg1, arg2, ...])
این تابع دقیقا شبیه تابع printf است ولی با این تفاوت که خروجی در متغیر str قرار می گیرد
کد:
char *gets(char *str, unsigned char len)
این تابع یک رشته را از ورودی می خواند و در متغیر str می ریزد
str رشته ای است که متغیر در آن قرار می گیرد
Len اندازه را رشته را مشخص می کند
کد:
signed char scanf(char flash *fmtstr [ , arg1 address, arg2 address, ...])
این تابع یک رشته قالب بندی شده را از ورودی می خواند که عملکرد آن مانند تابع getchar است
تفاوت این تابع با تابع gets در این است که این تابع تا زمانی که کلید enter زده شود یا کارکتر “n\” دریافت شود رشته را دریافت می کند


fmtstr=یک رشته ی کنترلی که نوع داده ی دریافتی را از ورودی سریال مشخص می کند که می تواند موارد زیر باشد
d:ورودی یک عدد دسیمال علامت دار است
i:ورودی یک عدد دسیمال علامت دار است
u:ورودی یک عدد بدون دسیمال علامت دار است
x:ورودی یک عدد هگزاددسیمال است که با حروف کوچک نمایش داده می شود
c:ورودی یک کارکتر نمایش داده می شود
s:ورودی یک اشاره گر به رشته موجود در حافظه SRAM می باشد
arg1 address و arg2 address و... آدرس متغیر های ورودی هستند
کد:
signed char sscanf(char *str, char flash *fmtstr [ , arg1 address, arg2 address, ...])

این تابع همانند تابع scanf است ولی با این تفاوت که ورودی را در متغر str که در حافظه ی SRAM است قرار می دهد

(آخرین ویرایش در این ارسال: ۱۴-بهمن-۱۳۹۱, ۱۷:۵۲:۳۵، توسط hadikh73.)
۱۴-بهمن-۱۳۹۱, ۱۴:۴۲:۱۱
ارسال‌ها
پاسخ
تشکر شده توسط : aKaReZa75, sharin, رسول, mnn2009, ciyamak, Ambassador, r.ashrafip, mhpc2009, ali6265, powerstation
hadikh73 آفلاین
مدیــر کـل سایـت
*******

ارسال‌ها: 1,218
موضوع‌ها: 43
تاریخ عضویت: شهریور ۱۳۹۱

تشکرها : 13631
( 14739 تشکر در 4686 ارسال )
ارسال: #4
RE: کتاب خانه های نرم افزار codevision
کتابخانه ی stdlib.h

برای استفاده از این کتابخانه باید آن را با دستور زیر فراخوانی کنید
کد:
#include<stdlib.h>
کد:
int atoi(char *str)
یک رشته را به عدد صحیح تبدیل می کند.
کد:
long int atol(char *str)
یک رشته را به عدد صحیح بلند تبدیل می کند
کد:
void itoa(int n, char *str)
این تابع یک متغیر رشته ای و یک عدد صحیح می گیردو عدد صحیح را به کارکتر اسکی تبدیل می کند ودر متغیر رشته ای ذخیره می کند .
کد:
void ltoa(long int n, char *str)
این تابع یک متغیر رشته ای و یک عدد صحیح بلند می گیردو عدد صحیح بلند را به کارکتر اسکی تبدیل می کند ودر متغیر رشته ای ذخیره می کند .
کد:
void ftoa(float n, unsigned char decimals, char *str)
یک متغیر اعشاری و یک متغیر رشته ای را دریافت می کند و عدد اعشاری را به کارکتر اسکی تبدیل می کند و در متغیر رشته ای ذخیره می کند .
متغیرdecimals تعداد رقم اعشاری را مشخص می کند
کد:
void ftoe(float n, unsigned char decimals, char *str)
یک متغیر اعشاری و یک متغیر رشته ای دریافت می کند و آن را به نماد علمی معادل کارکتر اسکی تبدیل می کند و در متغیر رشته ای می ریزد
متغیرdecimals تعداد رقم اعشاری را مشخص می کند
کد:
float atof(char *str)
یک متغیر رشته ای را به به عدد اعشاری مربوطه تبدیل می کند
کد:
int rand (void)
یک عدد تصادقی بین 0 و 32768 انتخاب می کند
کد:
void srand(int seed)
این تابع همانند تابع rand یک عدد تصادفی بین 0-32768 انتخاب می کند با این تفاوت که عدد شروع را باید خودمان انتخاب کنید
کد:
void *malloc(unsigned int size)
این تابع به اندازه ی متغیر size از میکرو حافظه می گیرد و آدرس آن را در خروجی می دهد و اگر خروجی عبارت تهی (0\) باشد یعنی هیچ حافظه ای دریافت نشده است
کد:
void *calloc(unsigned int num, unsigned int size)
این تابع به اندازه ی num*size از میکرو حافظه می گیرد و آدرس آن را در خروجی می دهد و اگر خروجی عبارت تهی (0\) باشد یعنی هیچ حافظه ای دریافت نشده است
کد:
void *realloc(void *ptr, unsigned int size)
به کمک این تابع می توان اندازه ی حافظه ی دریافت شده را تغییر داد
این تابع میزان حافظه ی موجود در ptr را به اندازه ی متغیر size تغییر داد
کد:
void free(void *ptr)
با این دستور حافظه ی موجود در ptr به حافظه ی اصلی بر گردانده می شود

(آخرین ویرایش در این ارسال: ۱۴-بهمن-۱۳۹۱, ۱۷:۵۰:۴۶، توسط hadikh73.)
۱۴-بهمن-۱۳۹۱, ۱۶:۴۳:۴۲
ارسال‌ها
پاسخ
تشکر شده توسط : aKaReZa75, sharin, رسول, mnn2009, ciyamak, Ambassador, r.ashrafip, mhpc2009, ali6265, powerstation
hadikh73 آفلاین
مدیــر کـل سایـت
*******

ارسال‌ها: 1,218
موضوع‌ها: 43
تاریخ عضویت: شهریور ۱۳۹۱

تشکرها : 13631
( 14739 تشکر در 4686 ارسال )
ارسال: #5
RE: کتاب خانه های نرم افزار codevision
کتابخانه ی ریاضی math

برای استفاده از این کتابخانه باید آن را با دستور زیر فراخوانی کنید
کد:
#include<math.h>
کد:
unsigned char cabs(signed char x)
قدر مطلق مقدار بایت x را محاسبه می کند
کد:
unsigned int abs(int x)
قدر مطلق عدد صحیح x را محاسبه می کند
کد:
unsigned long labs(long int x)
قدر مطلق یک عدد صحیح بزرگ (32 بیتی) را محاسبه می کند
کد:
float fabs(float x)
قدر مطلق یک عدد اعشاری را محاسبه می کند
کد:
signed char cmax(signed char a, signed char b)
ماکزیمم 2 بایت a و b را محاسبه می کند
کد:
int max(int a, int b)
ماکزیمم 2 عدد صحیحa و b را محاسبه می کند
کد:
long int lmax(long int a, long int b)
ماکزیمم 2 عدد صحیح بلند a و b را محاسبه می کند
کد:
float fmax(float a, float b)
ماکزیمم 2 عدد اعشاریa و b را محاسبه می کند
کد:
signed char cmin(signed char a, signed char b)
مینیمم 2 بایت a و b را محاسبه می کند
کد:
int min(int a, int b)
مینیمم 2 عدد صحیح a و b را محاسبه می کند
کد:
long int lmin(long int a, long int b)
مینیمم 2 عدد صحیح بلند a و b را محاسبه می کند
کد:
float fmin(float a, float b)
مینیمم 2 عدد اعشاری a و b را محاسبه می کند
کد:
signed char csign(signed char x)
اگر بایت x عدد مثبت باشد خروجی 1 اگر منفی باشد خروجی1- و اگر صفر باشد خروجی 0 می شود
کد:
signed char sign(int x)
اگر عدد صحیح x عدد مثبت باشد خروجی 1 اگر منفی باشد خروجی1- و اگر صفر باشد خروجی 0 می شود
کد:
signed char lsign(long int x)
اگر عدد صحیح بلند x عدد مثبت باشد خروجی 1 اگر منفی باشد خروجی1- و اگر صفر باشد خروجی 0 می شود
کد:
signed char fsign(float x)
اگر عدد اعشاری x عدد مثبت باشد خروجی 1 اگر منفی باشد خروجی1- و اگر صفر باشد خروجی 0 می شود
کد:
unsigned char isqrt(unsigned int x)
جذر عدد صحیح بدون علامتx را محاسبه می کند
کد:
unsigned int lsqrt(unsigned long x)
جذر عدد صحیح بلندx را محاسبه می کند
کد:
float sqrt(float x)
جذر عدد اعشاریx را محاسبه می کند
کد:
float floor(float x)
بزرگترین عدد صحیح کوچکتر یا مساوی عدد ورودی را در خروجی قرار می دهد
مثال اگر ورودی 10.78 باشد خروجی 10.0می شود
مثال اگر ورودی1.52- باشد خروجی 1.0- می شود
کد:
float ceil(float x)
کوچکتری عدد صحیح بزرگتر یا مساوی عدد ورودی را در خروجی قرار می دهد
مثال اگر ورودی 10.78 باشد خروجی 11.0 می شود
مثال اگر ورودی 1.52- باشد خروجی 2.0- می شود
کد:
float fmod(float x, float y)
باقیمانده تقسیم دو عدد اعشاری x بر y را به صورت اعشاری محاسبه می کند
کد:
float modf(float x, float *ipart)
عدد اعشاری x را به تجزیه می کند و قسمت اعشار را در خروجی می دهد و قسمت صحیح را در متغیر ipart می دهد
کد:
float ldexp(float x, int expn)
جواب این معادله را حساب می کندx* 2^exp
کد:
float frexp(float x, int *expn)
جواب این معادله را حساب می کندx/ 2^exp
کد:
float exp(float x)
عدد نپر(e)را به توان x می رساند
کد:
float log(float x)
لگاریتم یک عدد را محاسبه می کند
کد:
float log10(float x)
لگاریتم یک عدد را در پایه 10 محاسبه می کند
کد:
float pow(float x, float y)
جواب این معادله را حساب می کندx^y
کد:
float sin(float x)
سینوس یک زاویه بر حسب رادیان را محاسبه می کند
کد:
float cos(float x)
کسینوس یک زاویه بر حسب رادیان را محاسبه می کند
کد:
float tan(float x)
تانژانت یک زاویه بر حسب رادیان را محاسبه می کند
کد:
float sinh(float x)
سینوس هایپربولیک یک زاویه بر حسب رادیان را محاسبه می کند
کد:
float cosh(float x)
کسینوس هایپربولیک یک زاویه بر حسب رادیان را محاسبه می کند
کد:
float tanh(float x)
تانژانت هایپربولیک یک زاویه بر حسب رادیان را محاسبه می کند
کد:
float asin(float x)
مقدار arc sin عدد x را محاسبه می کند
کد:
float acos(float x)
مقدار arc cos عدد x را محاسبه می کند
کد:
float atan(float x)
مقدار arc tan عدد x را محاسبه می کند
کد:
float atan2(float y, float x)
مقدار arctan عدد y/x را محاسبه می کند

۱۴-بهمن-۱۳۹۱, ۱۷:۴۷:۲۶
ارسال‌ها
پاسخ
تشکر شده توسط : aKaReZa75, sharin, رسول, mnn2009, ciyamak, Ambassador, r.ashrafip, mhpc2009, ali6265, powerstation
hadikh73 آفلاین
مدیــر کـل سایـت
*******

ارسال‌ها: 1,218
موضوع‌ها: 43
تاریخ عضویت: شهریور ۱۳۹۱

تشکرها : 13631
( 14739 تشکر در 4686 ارسال )
ارسال: #6
RE: کتاب خانه های نرم افزار codevision
کتابخانه ی توابع رشته ای string

برای استفاده از این کتابخانه باید آن را با دستور زیر فراخوانی کنید
کد:
#include<string.h>
کد:
char *strcat(char *str1, char *str2)
رشته str2 را به انتهای رشته ی str1 متصل می کند
کد:
char *strcatf(char *str1, char flash *str2)
رشته str2 که در حافظه ی flash قرار دارد را به انتهای رشته ی str1 متصل می کند
کد:
char *strncat(char *str1, char *str2, unsigned char n)
تعداد n کارکتر از رشته ی str2 را به رشته ی str1 متصل می کند و نتیجه را در رشته ی str1 می ریزد
کد:
char *strncatf(char *str1, char flash *str2, unsigned char n)
تعداد n کارکتر از رشته ی str2 که در حافظه ی FLASH قرار دارد را به رشته ی str1 متصل می کند و نتیجه را در رشته ی str1 می ریزد
کد:
char *strchr(char *str, char c)
کارکتر c را در رشته ی str جستجو می کند و اولین نتیجه را در خروجی قرار می دهد و در صورتی که نتیجه ای نداشته باشد کارکتر تهی را قرار می دهد
کد:
char *strrchr(char *str, char c)
کارکتر c را در رشته ی str جستجو می کند و آخرین نتیجه را در خروجی قرار می دهد و در صورتی که نتیجه ای نداشته باشد کارکتر تهی را قرار می دهد
کد:
signed char strpos(char *str, char c)
کارکتر c را در رشته ی str جستجو می کند واندیس اولین نتیجه را در خروجی می دهد در صورتی که نباشد مقدار 1- را می دهد
کد:
signed char strrpos(char *str, char c)
کارکتر c را در رشته ی str جستجو می کند واندیس آخرین نتیجه را در خروجی می دهد در صورتی که نباشد مقدار 1- را می دهد
کد:
signed char strcmp(char *str1, char *str2)
این تابع دو رشته ی str1 و str2 را با هم مقایسه می کند و در صورتی که str1<str2 علامت کوچکتر از صفر و در صورتی که str1=str2 مقدار 0 و در صورتی که str1>str2 باشد علامت بزگتر از صفر را در خروجی می دهد
کد:
signed char strcmpf(char *str1, char flash *str2)
این تابع دو رشته ی str1 که در حافظه یSRAM و str2 را که در حافظه ی قرار دارد FLASHقرار دارد را با هم مقایسه می کند و در صورتی که str1<str2 علامت کوچکتر از صفر و در صورتی که str1=str2 مقدار 0 و در صورتی که str1>str2 باشد علامت بزرگتر از صفر را در خروجی می دهد
کد:
signed char strncmp(char *str1, char *str2, unsigned char n)
این تابع n کارکتر از رشته ی str1 را با رشته ی str2 مقایسه می کند و در صورتی که str1<str2 علامت کوچکتر از صفر و در صورتی که str1=str2 مقدار 0 و در صورتی که str1>str2 باشد علامت بزرگتر از صفر را در خروجی می دهد
کد:
signed char strncmpf(char *str1, char flash *str2, unsigned char n)
این تابع n کارکتر از رشته ی str1 که در حافظه ی SRAM قرار دارد را با رشته ی str2 که در حافظه ی FLASH قرار دارد مقایسه می کند و در صورتی که str1<str2 علامت کوچکتر از صفر و در صورتی که str1=str2 مقدار 0 و در صورتی که str1>str2 باشد علامت بزرگتر از صفر را در خروجی می دهد
کد:
char *strcpy(char *dest, char *src)
رشته ی src را در رشته ی dest کپی می کند
کد:
char *strcpyf(char *dest, char flash *src)
رشته ی src که در حافظه ی FLASH قرار دارد را در رشته ی dest که در حافظه ی SRAM قرار دارد کپی می کند
کد:
char *strncpy(char *dest, char *src, unsigned char n)
n کارکتر از رشته ی src را در رشته ی dest کپی می کند
کد:
char *strncpyf(char *dest, char flash *src, unsigned char n)
n کارکتر از رشته ی src که در حافظه ی FLASH قرار دارد را در رشته ی dest که در حافظه ی SRAM قرار دارد کپی می کند و نتیجه را در dest قرار می دهد
کد:
unsigned char strspn(char *str, char *set)
این تابع رشته ی set را در رشته ی str جستجو می کند و طول اولین بخشی را که یافت در خروجی می دهد
کد:
unsigned char strspnf(char *str, char flash *set)
این تابع رشته ی set که در حافظه ی FLASH قرار دارد را در رشته ی str جستجو می کند و طول اولین بخشی را که یافت در خروجی می دهد
کد:
unsigned char strcspn(char *str, char *set)
این تابع رشته ی set را در رشته ی str جستجو می کند و اولین محلی که از این رشته را که حتی یکی از کارکتر های رشته مورد جسنجو در آن محل باشد رابه عنوان نتیجه عمل در خروجی می دهد و اگر تعداد زیادی نتیجه داشته باشد به صورت یک فهرست نتایج را می دهد و اگر نتیجه نداشته باشد طول رشته ی str را در خروجی می دهد
کد:
unsigned char strcspnf(char *str, char flash *set)
این تابع رشته ی set که در حافظه ی FLASH قرار دارد را در رشته ی str جستجو می کند و اولین محلی که از این رشته را که حتی یکی از کارکتر های رشته مورد جسنجو در آن محل باشد رابه عنوان نتیجه عمل در خروجی می دهد و اگر تعداد زیادی نتیجه داشته باشد به صورت یک فهرست نتایج را می دهد و اگر نتیجه نداشته باشد طول رشته ی str را در خروجی می دهد
کد:
char *strpbrk(char *str, char *set)
این تابع شبیه تابع ()strcspn است و عملکرد آن به این صورت است که رشته ی set را در رشته ی str جستجو می کند و به این صورتی که اگر هر کدام از کارکتر های موجود در رشته ی set در رشته ی str باشد آدرس اولین محل از رشته ی str در یک اشاره گر قرار می گیرد ودر صورتی که نتیجه ای نداشته باشد کارکتر تهی را در خروجی می دهد
کد:
char *strpbrkf(char *str, char flash *set)
این تابع شبیه تابع ()strcspnf است و عملکرد آن به این صورت است که رشته ی set که در حافظه ی FLASH است را در رشته ی str که در حافظه ی SRAM قرار دارد جستجو می کند و به این صورتی که اگر هر کدام از کارکتر های موجود در رشته ی set در رشته ی str باشد آدرس اولین محل از رشته ی str در یک اشاره گر قرار می گیرد ودر صورتی که نتیجه ای نداشته باشد کارکتر تهی را در خروجی می دهد
کد:
char *strrpbrk(char *str, char *set)
این تابع شبیه تابع ()strcspn است و عملکرد آن به این صورت است که رشته ی set را در رشته ی str جستجو می کند و به این صورتی که اگر هر کدام از کارکتر های موجود در رشته ی set در رشته ی str باشد آدرس اخرین محل از رشته ی str در یک اشاره گر قرار می گیرد ودر صورتی که نتیجه ای نداشته باشد کارکتر تهی را در خروجی می دهد
کد:
char *strrpbrkf(char *str, char flash *set)
این تابع شبیه تابع ()strcspnf است و عملکرد آن به این صورت است که رشته ی set که در حافظه ی FLASH است را در رشته ی str که در حافظه ی SRAM قرار دارد جستجو می کند و به این صورتی که اگر هر کدام از کارکتر های موجود در رشته ی set در رشته ی str باشد آدرس اولین محل از رشته ی str در یک اشاره گر قرار می گیرد ودر صورتی که نتیجه ای نداشته باشد کارکتر تهی را در خروجی می دهد
کد:
char *strstr(char *str1, char *str2)
رشته ی str1 را در رشته ی str2 جستجو می کند اگر نتایج زیادی پیدا کند اولین نتیجه را در خروجی می دهد
اگر نتیجه ای پیدا نکند کارکتر تهی را در خروجی می دهد
کد:
char *strstrf(char *str1, char flash *str2)
رشته ی str1 را که در حافظه ی SRAM قرار دارد را در رشته ی str2 که در حافظه ی FLASH قرار دارد جستجو می کند اگر نتایج زیادی پیدا کند اولین نتیجه را در خروجی می دهد اگر نتیجه ای پیدا نکند کارکتر تهی را در خروجی می دهد
کد:
unsigned char strlen(char *str)
برای مدل حافظه ی TINY استفاده می کند
طول رشته str را محاسبه می کند عددی بین 0-255
کد:
unsigned int strlen(char *str)
برای مدل حافظه ی SMALL استفاده می شود
طول رشته strرا محاسبه می کند عددی بین 0-65535
کد:
unsigned int strlenf(char flash *str)
طول رشته str را که در حافظه ی FLASH قرار دارد محاسبه می کند
کد:
void *memcpy(void *dest,void *src, unsigned char n)
برای مدل حافظه ی TINY استفاده می شود
n بایت از رشته ی src را در رشته ی dest کپی می کند
کد:
void *memcpy(void *dest,void *src, unsigned int n)
برای مدل حافظه ی SMALL استفاده می شود
n بایت از رشته ی src را در رشته ی dest کپی می کند
کد:
void *memcpyf(void *dest,void flash *src, unsigned char n)
برای مدل حافظه ی TINY استفاده می شود
n بایت از رشته ی src را که در حافظه ی FLASH است را در رشته ی dest کپی می کند
کد:
void *memcpyf(void *dest,void flash *src, unsigned int n)
برای مدل حافظه ی SMALL استفاده می شود
n بایت از رشته ی src را که در حافظه ی FLASH است را در رشته ی dest کپی می کند
کد:
void *memccpy(void *dest,void *src, char c, unsigned char n)
برای مدل حافظه ی TINY استفاده می شود
n بایت از رشته ی src تا کارکترc را به انتهای رشته ی dest متصل می کند
رشته ی dest نباید مشابه رشته ی src باشد
کد:
void *memccpy(void *dest,void *src, char c, unsigned int n)
برای مدل حافظه ی SMALL استفاده می شود
n بایت از رشته ی src تا کارکترc را به انتهای رشته ی dest متصل می کند
رشته ی dest نباید مشابه رشته ی src باشد
کد:
void *memmove(void *dest,void *src, unsigned char n)
برای مدل حافظه ی TINY استفاده می شود
n بایت از رشته ی src تا کارکترc را به انتهای رشته ی dest متصل می کند
تفاوت این تابع با تابع memcpy در این است که رشته ی dest می تواند مشابه رشته ی src باشد
کد:
void *memmove(void *dest,void *src, unsigned int n)
برای مدل حافظه ی SMALL استفاده می شود
n بایت از رشته ی src تا کارکترc را به انتهای رشته ی dest متصل می کند
تفاوت این تابع با تابع memcpy در این است که رشته ی dest می تواند مشابه رشته ی src باشد
کد:
void *memchr(void *buf, unsigned char c, unsigned char n)
برای مدل حافظه ی TINY استفاده می شود
کارکتر c را در n بایت از buf جستجو می کند
اگر c پیدا نشد کارکتر تهی را در خروجی می دهد
کد:
void *memchr(void *buf, unsigned char c, unsigned int n)
برای مدل حافظه ی SMALL استفاده می شود
کارکتر c را در n بایت از buf جستجو می کند
اگر c پیدا نشد کارکتر تهی را در خروجی می دهد
کد:
signed char memcmp(void *buf1,void *buf2, unsigned char n)
برای مدل حافظه ی TINY استفاده می شود
n بایت از buf1 را با buf2 مقایسه می کند
در صورتی که buf1<buf2, buf1=buf2, buf1>buf2. نتایج بزرگتر از صفر, 0, کوچکتر از صفر
کد:
signed char memcmp(void *buf1,void *buf2, unsigned int n)
برای مدل حافظه ی SMALL استفاده می شود
n بایت از buf1 را با buf2 مقایسه می کند
در صورتی که buf1<buf2, buf1=buf2, buf1>buf2. نتایج بزرگتر از صفر, 0, کوچکتر از صفر
کد:
signed char memcmpf(void *buf1,void flash *buf2, unsigned char n)
برای مدل حافظه ی TINY استفاده می شود
n بایت از buf1 را با buf2 که در حافظه ی FLASH است مقایسه می کند
در صورتی که buf1<buf2, buf1=buf2, buf1>buf2. نتایج بزرگتر از صفر, 0, کوچکتر از صفر
کد:
signed char memcmpf(void *buf1,void flash *buf2, unsigned int n)
برای مدل حافظه ی SMALL استفاده می شود
n بایت از buf1 را با buf2 که در حافظه ی FLASH است مقایسه می کند
در صورتی که buf1<buf2, buf1=buf2, buf1>buf2. نتایج بزرگتر از صفر, 0, کوچکتر از صفر
کد:
void *memset(void *buf, unsigned char c, unsigned char n)
برای مدل حافظه ی TINY استفاده می شود
n بایت از buf را با کارکتر c می نویسد
کد:
void *memset(void *buf, unsigned char c, unsigned int n)
برای مدل حافظه ی SMALL استفاده می شود
n بایت از buf را با کارکتر c می نویسد

(آخرین ویرایش در این ارسال: ۱۳-خرداد-۱۳۹۳, ۲۰:۰۵:۵۳، توسط behzady.)
۱۴-بهمن-۱۳۹۱, ۱۹:۱۵:۳۶
ارسال‌ها
پاسخ
تشکر شده توسط : aKaReZa75, sharin, رسول, من عاشق ایرانوج, Navid71, nanosi, PRO, mnn2009, ciyamak, Ambassador, r.ashrafip, ali6265, powerstation
aKaReZa75 آفلاین
حسین باقری
*****

ارسال‌ها: 1,483
موضوع‌ها: 21
تاریخ عضویت: مرداد ۱۳۹۱

تشکرها : 4898
( 4574 تشکر در 1473 ارسال )
ارسال: #7
RE: کتاب خانه های نرم افزار codevision
آقا این موضوع رو مهمش کردم چون خداوکیلی خیلی زحمت داری روش میکشی.

سلام، من حسین باقری هستم، طراح الکترونیک و برنامه نویس میکروکنترلر.
توی کانال یوتیوب من قراراه طراحی انواع بردهای الکترونیکی مثل بردهای تک لایه، دو لایه یا به طور کلی بردهای چند لایه، بردهای مبتنی بر میکروکنترلر، بردهای صنعتی، بردهای الکترونیک قدرت و بردهای فرکانس بالارو یاد بگیریم.
همینطور کدنویسی انواع میکروکنترلرهای 8 بینی مثل میکروکنترلرهای خانواده AVR-STM8، میکروکنترلرهای میبتی بر معماری ARM مثل STM32 و پردازنده های مخصوص اینترنت اشیاء مثل ESP32-ESP8266 و DSPها یاد میگیریم.
در کنار مباحث گفت شده، اصول اندازه الکترونیکی، نحوه صحیح مونتاژ و عیب‌یابی بردهای الکترونیکی، شبیه سازی مدارات مختلف رو هم یاد میگیریم.
اگر علاقه مند به یادگیری موضوعات عنوان شده هستید، به کانال یوتیوب من با آدرس زیر سر بزنید.
https://www.youtube.com/@aKaReZa75
۱۴-بهمن-۱۳۹۱, ۱۹:۵۱:۱۰
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : hadikh73, رسول, nanosi, mnn2009, ciyamak, Ambassador
hadikh73 آفلاین
مدیــر کـل سایـت
*******

ارسال‌ها: 1,218
موضوع‌ها: 43
تاریخ عضویت: شهریور ۱۳۹۱

تشکرها : 13631
( 14739 تشکر در 4686 ارسال )
ارسال: #8
RE: کتاب خانه های نرم افزار codevision
توابع مربوط به کد ها BCD

برای استفاده از این کتابخانه باید آن را با دستور زیر فراخوانی کنید
کد:
#include<bcd.h>
کد:
unsigned char bcd2bin(unsigned char n)
عدد n را از BCD به معادل باینری آن تبدیل می کند
کد:
unsigned char bin2bcd(unsigned char n)
عدد n را از باینری به معادل BCD آن تبدیل می کند

کتابخانه ی مربوط به کد های gray

برای استفاده از این کتابخانه باید آن را با دستور زیر فراخوانی کنید
کد:
#include<gray.h>
کد:
unsigned char gray2binc(unsigned char n)
unsigned char gray2bin(unsigned int n)
unsigned char gray2binl(unsigned long n)
عدد گری را به معادل باینری آن تبدیل می کند.
کد:
unsigned char bin2grayc(unsigned char n)
unsigned char bin2gray(unsigned int n)
unsigned char bin2grayl(unsigned long n)
عدد باینری را به معادل گری آن تبدیل می کند

کتابخانه ی مربوط به حافظه

برای استفاده از این کتابخانه باید آن را با دستور زیر فراخوانی کنید
کد:
#include<mem.h>
کد:
void pokeb(unsigned int addr, unsigned char data)
این تابع data را که از نوع byte است در حافظه ی SRAM و در مکان addr می نویسد
کد:
void pokew(unsigned int addr, unsigned int data)
این تابع data را که از نوع word است در حافظه ی SRAM ودر مکان addr می نویسد
کم ارزشترین در مکان addr و پر ارزشترین در مکان addr+1 نوشته می شود
کد:
unsigned char peekb(unsigned int addr)
این تابع یک byte را که در حافظه ی addr نوشته شده است می خواند و در خروجی قرار می دهد
کد:
unsigned int peekw (unsigned int addr)
این تابع یک word را که در حافظه ی SRAM قرار دارد می خواند و در خروجی قرار می دهد
کم ارزشترین از مکان addr و پر ارزشترین از مکان addr+1 خوانده می شود

۱۴-بهمن-۱۳۹۱, ۲۰:۵۱:۵۷
ارسال‌ها
پاسخ
تشکر شده توسط : aKaReZa75, رسول, nanosi, mnn2009, ciyamak, jalal86, Ambassador, r.ashrafip, ali6265, powerstation
hadikh73 آفلاین
مدیــر کـل سایـت
*******

ارسال‌ها: 1,218
موضوع‌ها: 43
تاریخ عضویت: شهریور ۱۳۹۱

تشکرها : 13631
( 14739 تشکر در 4686 ارسال )
ارسال: #9
RE: کتاب خانه های نرم افزار codevision
توابع مربوط به کتابخانه ی ارتباط i2c

برای استفاده از این کتابخانه باید آن را با دستور زیر فراخوانی کنید
کد:
#include<i2c.h>
کد:
void i2c_init(void)
این تابع برای شروع ارتباط استفاده می شود
این تابع باید آغاز کننده ی ارتباط باشد
کد:
unsigned char i2c_start(void)
این تابع یک حالت شروع تولید می کند
در صورتی که ارتباط به درستی برقرار باشد مقدار یک در غیر اینصورت مقدار صفر را در خروجی می دهد
کد:
void i2c_stop(void)
این تابع دستور پایان ارتباط را صادر می کند
کد:
unsigned char i2c_read(unsigned char ack)
این تابع یک بایت را از ارتباط دریافت می کند
در صورتی که مقدار یک را در ask قرار دهیم یک پالس را بعد از خواندن بایت می فرستد و در صورتی که صفر بذاریم این پالس ارسال نمی شود
در واقع این پالس تاییده است که به آی سی فرستاده می شود و آی سی مطمئن می شود که داده به درستی ارسال شده است
کد:
unsigned char i2c_write(unsigned char data)
این تابع بایت data را می فرستد و اگر تاییدیه (پالس)را دریافت کند مقدار یک در غیر این صورت مقدار صفر را در خروجی می دهد

کتابخانه ی مربوط به راه اندازی سنسور lm75

برای استفاده از این کتابخانه باید آن را با دستور زیر فراخوانی کنید
کد:
#include<lm75.h>
کد:
void lm75_init(unsigned char chip ,signed char thyst ,signed char tos, unsigned char pol)
این تابع سنسور lm75 را بررسی می کند
قبل از استفاده از این دستور باید ارتباط i2c را با تابع i2c_init باید بررسی شود
اگر تعداد زیادی سنسور را استفاده کردین باید به تعداد استفاده شده این تابع را بنویسید
نهایتا می توانید 8 سنسور را با این ارتباط به آی سی متصل کنید که باید عدد آن را در پارامتر chip بنویسید
پارامتر chip عددی بین 0-7 می تواند باشد
سنسور lm75 را می توان در حالت مقایسه پیکره بندی کرد که شبیه یک ترموستات عمل می کند که هر موقع دما از مقدار tos (برحسب درجه ی سانتی گراد) بیشتر شود و از مقدار thyst کم تر شود خروجی O.S فعال می شود
در صوتی که pol یک باشد وقتی دما از حداکثر تعیین شده بالاتر رود خروجی O.S فعال می شود و زمانی که صفر باشد در اثر پایین امدن دما و کم شدن از مقدار thyst خروجی O.S فعال می شود
کد:
int lm75_temperature_10(unsigned char chip)
این دستور دما را بر حسب درجه ی سانتی گراد در متغیر chip قرار می دهد

کتابخانه راه انداز سنسور ds1621

برای استفاده از این کتابخانه باید آن را با دستور زیر فراخوانی کنید
کد:
#include<ds1621.h>
کد:
void ds1621_init(unsigned char chip,signed char tlow,signed char thigh, unsigned char pol)
این تابع سنسور ds1621 را بررسی می کند
قبل از استفاده از این دستور باید ارتباط i2c را با تابع i2c_init باید بررسی شود
اگر تعداد زیادی سنسور را استفاده کردین باید به تعداد استفاده شده این تابع را بنویسید
نهایتا می توانید 8 سنسور را با این ارتباط به آی سی متصل کنید که باید عدد آن را در پارامتر chip بنویسید
پارامتر chip عددی بین 0-7 می تواند باشد
سنسور ds1621 را می توان در حالت مقایسه پیکره بندی کرد که شبیه یک ترموستات عمل می کند که هر موقع دما از مقدار tos (برحسب درجه ی سانتی گراد) بیشتر شود و از مقدار thyst کم تر شود خروجی O.S فعال می شود
در صوتی که pol یک باشد وقتی دما از حداکثر تعیین شده بالاتر رود خروجی O.S فعال می شود و زمانی که صفر باشد در اثر پایین امدن دما و کم شدن از مقدار thyst خروجی O.S فعال می شود
کد:
unsigned char ds1621_get_status(unsigned char chip)
این تابع محتویات رجیستر آدرس chip سنسور را می خواند
کد:
void ds1621_set_status(unsigned char chip, unsigned char data)
این تابع مقدار data رادر رجیستر آدرس chip قرار می دهد
کد:
void ds1621_start(unsigned char chip)
این تابع سنسور را از آدرس chip خارج می کند و آی سی را برای اندازه گیری دما آماده می کند
کد:
void ds1621_stop(unsigned char chip)
این تابع سنسور را به آدرس chip وارد می کند و آی سی را ازحالت اندازه گیری دما خارج می کند
کد:
int ds1621_temperature_10(unsigned char chip)
این دستور دما را بر حسب درجه ی سانتی گراد در متغیر chip قرار می دهد
دو برنامه که در پیوست قرار دادم یکی مربوط به راهاندازی LM75 و دیگری DS1621 است


فایل‌(های) پیوست شده
.rar   ds1621.rar (اندازه: 57.77 KB / تعداد دفعات دریافت: 173)
.rar   lm75.rar (اندازه: 43.83 KB / تعداد دفعات دریافت: 143)

(آخرین ویرایش در این ارسال: ۱۵-بهمن-۱۳۹۱, ۱۸:۴۹:۱۷، توسط hadikh73.)
۱۴-بهمن-۱۳۹۱, ۲۲:۵۳:۵۳
ارسال‌ها
پاسخ
تشکر شده توسط : aKaReZa75, رسول, من عاشق ایرانوج, nanosi, mnn2009, ciyamak, Ambassador, md3848, r.ashrafip, ali6265, powerstation
hadikh73 آفلاین
مدیــر کـل سایـت
*******

ارسال‌ها: 1,218
موضوع‌ها: 43
تاریخ عضویت: شهریور ۱۳۹۱

تشکرها : 13631
( 14739 تشکر در 4686 ارسال )
ارسال: #10
RE: کتاب خانه های نرم افزار codevision
کتابخانه ی مربوط به آی سی PCF8563

برای استفاده از این کتابخانه باید آن را با دستور زیر فراخوانی کنید
کد:
#include<pcf8563.h>
کد:
void rtc_init(unsigned char ctrl2, unsigned char clkout, unsigned char timer_ctrl)
این تابع آی سی را بررسی می کند
قبل از استفاده از این دستور حتما ارتباط I2C را با تابع i2c_init بررسی کنید
پارامتر ctrl2 برای کنترل رجیستر contron/tatus 2 استفاده می شود که می تواند مقادیر زیر را داشته باشد
RTC_TIE_ON بیت TIE را که در رجیستر Control/Status 2 قرار دارد یک می کند
RTC_AIE_ON بیت AIE را که در رجیستر Control/Status 2 قرار دارد یک می کند
RTC_ TP _ON بیت TI/TP را که در رجیستر Control/Status 2 قرار دارد یک می کند
برای یک کردن چند بیت باید آن ها را با علانت | از هم جدا کنید

پارامتر clkout برای کنترل رجیستر CLKOUT Frequency استفاده می شود که می تواند مقادیر زیر را داشته باشد
RTC_CLKOUT_OFF این رجیستر پالس خروجی را که در پایه سنسور قرار دارد را غیر فعال می کند
RTC_CLKOUT_1 پالس خرورخی را در مقدار 1HZ تنظیم کند
RTC_CLKOUT_32 پالس خرورخی را در مقدار 32HZ تنظیم کند
RTC_CLKOUT_1024 پالس خرورخی را در مقدار 1024HZ تنظیم کند
RTC_CLKOUT_32768 پالس خرورخی را در مقدار 32768HZ تنظیم کند

پارامتر timer_ctrl برای کنترل رجیستر Timer Control استفاده می شود که می تواند مقادیر زیر را داشته باشد
RTC_TIMER_OFF تایمر برعکس آی سی را خاموش می کند
RTC_TIMER_CLK_1_60 فرکانس تایمر برعکس را روی 1/60Hz قرار می دهد
RTC_TIMER_CLK_1 فرکانس تایمر برعکس را روی 1Hz قرار می دهد
RTC_TIMER_CLK_64 فرکانس تایمر برعکس را روی 64Hz قرار می دهد
RTC_TIMER_CLK_4096 فرکانس تایمر برعکس را روی 4096Hz قرار می دهد
کد:
unsigned char rtc_read(unsigned char address)
این تابع دستور موجو در مکان address را می خواند
کد:
void rtc_write(unsigned char address, unsigned char data)
این تابع بایت موجود در data را در مکان address می نویسد
کد:
unsigned char rtc_get_time(unsigned char *hour, unsigned char *min, unsigned char *sec)
این تابع ساعت و دقیق و ثانیه را از آی سی دریافت می کند
این تابع ساعت را در متغیر hour دقیقه را در متغیر min و ثانیه را در متغیر sec قرار می دهد
اگر عمل دریافت به درستی انجام شود در خروجی یک را می دهد و اگر عمل تبدیل به درستی انجام نشود در خروجی صفر را می دهد.
کد:
void rtc_set_time(unsigned char hour, unsigned char min, unsigned char sec)
به کمک این تابع می توان زمان مورد نظر خود را در آی سی ذخیره کرد
در این تابع باید ساعت را در متغیر hour دقیقه را در متغیر min و ثانیه را در متغیر sec قرار دهیم
کد:
void rtc_get_date(unsigned char *date, unsigned char *month, unsigned *year)
این تابع تاریخ را از آی سی دریافت می کند
این تابع روز را در متغیر date ماه را در متغیر month و سال را در متغیر year قرار می دهد
کد:
void rtc_set_date(unsigned char date, unsigned char month, unsigned year)
از این تابع برای قرار دادن تاریخ در آی سی استفاده می شود
کد:
void rtc_alarm_off(void)
این تابع آلارم داخلی ساغت را خاموش می کند
کد:
void rtc_alarm_on(void)
این تابع آلارم داخلی آی سی را روشن می کند
کد:
void rtc_get_alarm(unsigned char *date, unsigned char *hour, unsigned char *min)
از این تابع برای خواندن زمان آلارم استفاده می شود
کد:
void rtc_set_alarm(unsigned char date, unsigned char hour, unsigned char min)
از این تابع برای قرار دادن زمان آلارم در آی سی استفاده می شود
بعد از استفاده از این تابع آلارم آی سی خود به خود خاموش می شود که باید با دستور rtc_alarm_on آن را روشن کنید
کد:
void rtc_set_timer(unsigned char val)
این تابع زمان تایمر برعکس را در آن قرار می دهد
برنامه ی نمونه
کد php:
#include <mega8.h>
#asm
 
.equ __i2c_port=0x18 ;PORTB
 
.equ __sda_bit=0
 
.equ __scl_bit=1
#endasm
#include <i2c.h>
#include <pcf8563.h>
#asm
 
.equ __lcd_port=0x12 ;PORTD
#endasm
#include <lcd.h>
#include <stdio.h>
void main(void)
{
unsigned char ok,h,m,s;
char nama[40];
i2c_init();
rtc_init(0,RTC_CLKOUT_OFF,RTC_TIMER_OFF);
lcd_init(16);
while (
1)
 {
 
ok=rtc_get_time(&h,&m,&s);
 
sprintf(nama,"%u:%u:%u",h,m,s);
 
lcd_gotoxy(0,0);
 
lcd_puts(nama);
 };


۱۵-بهمن-۱۳۹۱, ۱۸:۵۹:۴۸
ارسال‌ها
پاسخ
تشکر شده توسط : aKaReZa75, رسول, nanosi, mnn2009, ciyamak, Ambassador, r.ashrafip, ali6265, powerstation
hadikh73 آفلاین
مدیــر کـل سایـت
*******

ارسال‌ها: 1,218
موضوع‌ها: 43
تاریخ عضویت: شهریور ۱۳۹۱

تشکرها : 13631
( 14739 تشکر در 4686 ارسال )
ارسال: #11
RE: کتاب خانه های نرم افزار codevision
کتابخانه ی مربوط به آی سی PCF8563

برای استفاده از این کتابخانه باید آن را با دستور زیر فراخوانی کنید
کد:
#include<pcf8583.h>
کد:
void rtc_init(unsigned char chip, unsigned char dated_alarm)
این تابع آی سی را بررسی می کند
قبل از استفاده از این دستور حتما ارتباط I2C را با تابع i2c_init بررسی کنید
اگر تعداد زیادی آی سی را به میکروکنترلر متصل کنید باید در پارامتر chip عدد آن را مشخص کنید که نهایتا می توان 2 آی سی را متصل کنید
Chip می تواند عدد های 0 و 1 را داشته باشد
اگر فقط می خواهید از ساعت آی سی استفاده کنید باید dated_alarm=0 قرار دهید و برای استفاده از ساعت و تاریخ باید dated_alarm=1 قرار دهید
بعد از استفاده از این تابع آلارم آی سی غیر فعال می شود
کد:
unsigned char rtc_read(unsigned char chip, unsigned char address)
این تابع بایت chip را که در مکان address و در حافظه ی SRAM قرار دارد را می خواند
کد:
void rtc_write(unsigned char chip, unsigned char address, unsigned char data)
این تابع بایت data را در مکان address می نویسد
پارامتر chip شماره ی آی سی را مشخص می کند که می تواند 0 و 1 باشد
نکته در تمامی توابع بعدی chip شماره ی آی سی مورد نظر می باشد
کد:
unsigned char rtc_get_status(unsigned char chip)
این تابع وضعیت استفاده از آی سی رو مشخص می کند در صورتی که خروجی یک باشد یعنی آلارم آی سی فعال است در صورتی که صفر باشد یعنی از ساعت ساده در پروژه استفاده شده است
کد:
void rtc_get_time(unsigned char chip, unsigned char *hour, unsigned char *min,
unsigned char *sec, unsigned char *hsec)
این تابع ساعت را از آی سی می خواند
hour ساعت است
min دقیقه است
sec ثانیه است
hsec صدم ثانیه است
کد:
void rtc_set_time(unsigned char chip, unsigned char hour, unsigned char min, unsigned char
sec, unsigned char hsec)
این تابع ساعت را در آی سی قرار می دهد
hour ساعت است
min دقیقه است
sec ثانیه است
hsec صدم ثانیه است
کد:
void rtc_get_date(unsigned char chip, unsigned char *date, unsigned char *month, unsigned
*year)
این تابع تاریخ را از آی سی می خواند
date روز را در خود جای می دهد
month ماه قرار می گیرد
year سال است
کد:
void rtc_set_date(unsigned char chip, unsigned char date, unsigned char month,
unsigned year)
این تابع تاریخ را در آی سی قرار می دهد
date روز را در خود جای می دهد
month ماه قرار می گیرد
year سال است
کد:
void rtc_alarm_off(unsigned char chip)
با این تابع آلارم آی سی را خاموش می کنیم
کد:
void rtc_alarm_on(unsigned char chip)
با ابن تابع آلارم آی سی را روشن می کنیم
کد:
void rtc_get_alarm_time(unsigned char chip, unsigned char *hour, unsigned char *min,
unsigned char *sec, unsigned char *hsec)
این تابع زمان آلارم را دریافت می کند
کد:
void rtc_set_alarm_time(unsigned char chip, unsigned char hour, unsigned char min, unsigned
char sec, unsigned char hsec)
این تابع زمان آلارم را تنظیم می کند
کد:
void rtc_get_alarm_date(unsigned char chip, unsigned char *date, unsigned char *month)
این تابع روزی از سال را که آی سی آلارم می زند را از آی سی دریافت می کند
کد:
void rtc_set_alarm_date(unsigned char chip, unsigned char date, unsigned char month)
این تابع روزی از سال را که آی سی آلارم می زند را درآی سی تنظیم می کند
یک مثال ساده
کد php:
#include <mega8.h>
#asm
 
.equ __i2c_port=0x18 ;PORTB
 
.equ __sda_bit=0
 
.equ __scl_bit=1
#endasm
#include <i2c.h>
#include <pcf8583.h>
#asm
 
.equ __lcd_port=0x12 ;PORTD
#endasm
#include <lcd.h>
#include <stdio.h>
void main(void)
{
unsigned char h,m,s,hs;
char nama[20];
i2c_init();
rtc_init(0,0);
lcd_init(16);
while (
1)
 {
 
rtc_get_time(0,&h,&m,&s,&hs);
 
sprintf(nama,"%u:%u:%u ",h,m,s);
 
lcd_gotoxy(0,0);
 
lcd_puts(nama);
 };


۱۵-بهمن-۱۳۹۱, ۲۱:۰۹:۰۴
ارسال‌ها
پاسخ
تشکر شده توسط : aKaReZa75, nanosi, mnn2009, ciyamak, Ambassador, salmon, md3848, r.ashrafip, mhpc2009, ali6265, powerstation


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  خطا در کامپایل کردن برنامه در codevision akand1111 9 19,907 ۲۳-اسفند-۱۳۹۸, ۱۰:۲۱:۰۱
آخرین ارسال: aKaReZa75
Exclamation ارتباط سريال بين دو ميكرو و نمايش روي lcd با codevision ali313 13 28,959 ۰۱-شهریور-۱۳۹۷, ۱۱:۰۸:۴۳
آخرین ارسال: farhadtavakkol
  دانلود مجموعه کتاب های آردوینو رسول 1 4,616 ۰۲-اردیبهشت-۱۳۹۵, ۰۰:۰۵:۰۹
آخرین ارسال: alimogmov
Wink یک کتاب خیلی باحال و مفید درباره میکروکنترلرها lktra 0 2,320 ۰۵-دى-۱۳۹۴, ۰۱:۴۷:۳۴
آخرین ارسال: lktra
myBB [آموزشی] دانلود کتاب مرجع کامل میکرو کنترولر های avr milad15m 3 8,233 ۲۷-شهریور-۱۳۹۴, ۱۲:۳۶:۴۳
آخرین ارسال: mahdifaraji
  کتاب MicroAVR برای گوشی جاوا برگرفته از AVR کاهه alimogmov 0 1,821 ۰۹-اسفند-۱۳۹۳, ۰۸:۰۷:۳۹
آخرین ارسال: alimogmov
  [آموزشی] Exclamation دانلود ویرایش دوم کتاب اصول کار با میکرو کنترلر های avr و کامپایلر بسکام a.mehran 0 3,259 ۱۷-آبان-۱۳۹۳, ۱۸:۵۵:۳۰
آخرین ارسال: a.mehran
  فایل کتابخانه توابع کار با ال سی دی گرافیکی در codevision m_azari16 16 28,252 ۲۲-آبان-۱۳۹۱, ۲۳:۵۵:۵۰
آخرین ارسال: BEHnam++
  اتصال lcd به پایه های دلخواه میکرو در codevision hamedaj 15 34,659 ۲۷-مرداد-۱۳۹۱, ۰۹:۵۷:۵۴
آخرین ارسال: aKaReZa75
  ضرب دو عدد 16 بیتی در codevision ashaebani2002 0 3,147 ۰۳-مرداد-۱۳۹۱, ۱۹:۵۲:۳۲
آخرین ارسال: ashaebani2002

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS