من برای c++ براتون می زارم شما از این برداشت کنید برای c#
من فردا برایتون سوال می پرسم از دوستانم که c# کار می کنند
این مال c++ هستش :
یکی از ویژگی های زبان ++C این است که به راحتی می تواند با دستگاه های جانبی ارتباط برقرار کند ، به طوری که اطلاعاتی را از پورتی بخواند و اطلاعاتی را در پورتی بنویسد. در این مقاله توابعی را مطالعه خواهیم کرد که این امکانات را فراهم می کنند. یکی از ضروریات کار کردن با این توابع این است که آدرس پورت های دستگاه خود را بدانید.
توابع خواندن از پورت
تعدادی از توابع وجود دارند که بایت یا کلماتی را از پورت سخت افزاری می خوانند. در این بخش به بررسی این توابع می پردازیم.
تابع inp() :
این تابع یک بایت را از پورت سخت افزاری می خواند. این تابع به صورت یک ماکرو پیاده سازی شده است و در فایل conio.h قرار دارد :
int inp(unsigned portid)
پارامتر این تابع یک مقدار صحیح بدون علامت است که آدرس پورت را مشخص می کند (مثال اول را مشاهده کنید.)
تابع inportb() :
این تابع بایتی را از پورت سخت افزاری می خواند. این تابع به صورت ماکرو پیاده سازی شده است و در فایل conio.h قرار دارد.
unsigned char inportb(unsigned portid);
پارامتر این تابع یک مقدار صحیح بدون علامت است که آدرس پورت را مشخص می کند (مثال اول را مشاهده کنید.)
تابع inpw() :
این تابع یک کلمه را از پورت سخت افزاری می خواند. این تابع در فایل conio.h قرار دارد. و به صورت زیر به کار می رود :
unsigned inpw(unsigned portid);
پارامتر این تابع شماره ی پورتی است که اطلاعات باید از آن جا خوانده شود. (مثال اول را ببینید.)
تابع inport() :
این تابع یک کلمه را از پورت سخت افزاری می خواند. این تابع در فایل conio.h قرار دارد. و به صورت زیر به کار می رود :
unsigned inport(unsigned portid);
پارامتر این تابع شماره ی پورتی است که اطلاعات باید از آن جا خوانده شود. (مثال اول را ببینید.)
مثال 1 : برنامه ای که یک بایت و سپس یک کلمه را از پورت سریال شماره 0 می خواند. (خروجی برنامه در پایین آمده است.)
#include
#include
Int main()
{
int port = 0;
int result;
clrscr();
result = inp(port);
printf(“The Value 0x%X read from port %d ”, result, port);
result = inportb(port);
printf(“The Value 0x%X read from port %d ”, result, port);
result = inpw(port);
printf(“The Value 0x%X read from port %d ”, result, port);
result = inport(port);
printf(“The Value 0x%X read from port %d ”, result, port);
getch();
return 0;
}
خروجی برنامه :
The Value 0x8 read from port 0
The Value 0x8 read from port 0
The Value 0x808 read from port 0
The Value 0x808 read from port 0
توابع نوشتن در پورت :
برای نوشتن اطلاعات در پورت سخت افزاری از چهار تابع استفاده می شود. این توابع را در این بخش بررسی خواهیم کرد.
تابع outp() :
این تابع یک بایت را در پورت سخت افزاری می نویسد. در فایل conio.h قرار دارد و به صورت زیر به کار می رود :
int outp(unsigned portid, int value);
portid شماره ی پورتی است که مقدار value باید در آن نوشته شود (بایت کم ارزش value نوشته می شود). این تابع مقدار value را نیز بر می گرداند.
تابع outpw() :
این تابع یک کلمه را در پورت سخت افزاری می نویسد. در فایل conio.h قرار دارد و به صورت زیر به کار می رود :
unsigned outpw(unsigned portid, unsigned value);
value مقداری است که باید در portid نوشته شود. value نیز به عنوان نتیجه ی تابع برگردانده می شود.
تابع outportb() :
این تابع یک بایت را در پورت سخت افزاری می نویسد. در فایل conio.h قرار دارد و به صورت زیر به کار می رود :
void outportb(unsigned portid, unsigned value);
این تابع مقدار value را در پورت portid می نویسد.
تابع outport() :
این تابع یک کلمه را در پورت سخت افزاری می نویسد. در فایل conio.h قرار دارد و به صورت زیر به کار می رود :
void outportb(unsigned portid, unsigned value);
این تابع مقدار value را در پورت portid می نویسد.
مثال 2 : برنامه ای که بایت و کلمه ای را در پورت سخت افزاری می نویسد.
#include
#include
Int main()
{
int port = 0;
int value = ‘C’;
int value1 = 30231;
clrscr();
outp(port, value);
printf(“Value %d sent to port number %d ”, value, port);
outportb(port, value);
printf(“Value %d sent to port number %d ”, value, port);
outport(port, value1);
printf(“Value %d sent to port number %d ”, value, port);
outpw(port, value1);
printf(“Value %d sent to port number %d ”, value, port);
getch();
return 0;
}
خروجی برنامه :
Value 67 sent to port number 0
Value 67 sent to port number 0
Value 30231 sent to port number 0
Value 30231 sent to port number 0
علاقه مندی ها (Bookmarks)