مقدمه: پس از آشنایی با کامپیوتر شریف با نمونه هایی از یک کامپیوتر عملی مانند Z80 , 8080 آشنا خواهید شد میکروپرسسور 8080 اینتل (intel) در دسامبر 1971 به بازار آمد هر چند این تراشه جدید نیست ولی با پرسسورهایی که بعد از آن به بازار آمدند مانند Z80 , 8085 از لحاظ نرم افزاری سازگار است. از اینرو آشنایی با عملکرد 8080، فراگیری عملکرد دو پروسسور دیگر را ساده می کند .
40 , 8080-CPU پایه دارد لزوم داشتن سه منبع تغذیه(12V,+5V,-5V) سیگنال ساعت دو فازه ناهمپوشان و آی سی های کمکی 8224 , 8228 بعلت محدودیت در تکنولوژی ساخت IC درآن زمان باعث شده تا بعدها CPU مهمتری با یک منبع تغذیه 5V و با قابلیت بیشتری وارد با زار شود واکنون از 8080 کمتر برای ساخت مدارات استفاده می شود.در این فصل پس ازآشنایی با ساختار ظاهری و ساختمان داخلی 8080 با دستورالعملها و برنامه نویسی آن آشنا خواهید شد سپس برای درک سخت افزاری عملکرد کامپیوتر با زمانبندی (timing) آشنا می شوید.
2-1) مدولهای 8080 – CPU:
میکروپروسسور 8080 با دو آی سی جانبی در شکل (1-2) نشان داده شده است. ابتدا به صورت مختصر با عملکرد هر یک از پایه های 8080 آشنا می شوید.
A0-A15 (output): باس آدرس: باس آدرس، آدرس حافظه را فراهم می کند. که می توان 216 مکان حافظه معادل 64kکلمه 8 بیتی را به عنوان آدرس روی آن قرار داد. همچنین با قرار دادن شماره دریچه I/O می توان تا 256 دریچه را به عنوان وسیله دریچه خروجی یا دریچه ورودی مورد استفاده قرار داد.
شکل (2-1): 8080-CPU با آی سی های جانبی
:(input/output) D0-D7 باس داده: برای انتقال داده از CPU به حافظه و انتقال داده به I/O بصورت دوجهته مورد استفاده قرار می گیرد. همچنین در اولین سیکل ساعت (T-cycle) هر سیکل ماشین (machin-cycle) یک کلمه حالت را که سیکل ماشین در حال اجرای آن است , توصیف می کند.
: (output) SYNC سیگنال همزمانی: SYNC یک سیگنال است که CPU برای نشان دادن ابتدای سیکل ماشین جهت استفاده در 8224 تولید میکند.
(output) DBIN باس داده درحالت ورودی: این سیگنال نشان می دهد که باس داده در حالت ورودی است وبرای راه دادن داده از حافظه یا I/O از این سیگنال استفاده میشود.
: (input) READY این سیگنال به 8080 پیام می دهد که داده معتبری برروی باس داده قرار گرفته است بعضا حافظه از CPU کندتر است و مدت زمانی طول می کشد تا داده اصلی روی باس داده قرار گیرد. تا وقتی سیگنال READY پایین باشد CPU در حالت انتظار است.
: (output) WAIT این سیگنال اعلام می کند که CPU در حالت انتظار است.
: (output) WR این سیگنال برای نوشتن درحافظه یا کنترل I/O استفاده می شود. تا وقتی که WR پایین است داده روی باس داده پایدار می ماند.
: (input) HOLD این سیگنال از CPU می خواهد که وارد حالت HOLD شود در این حالت یک وسیله جانبی می تواند از باس آدرس و باس داده به عنوان باسهای کمکی خودش استفاده کند. وقتی که این سیگنال وارد CPU شود CPU پس از اجرای سیکل ماشین جاری در حالت HOLD قرار می گیرد.
: Hold Acknowledge (output) HLDA سیگنال فوق در پاسخ به سیگنال ورودی HOLD از CPU خارج می شود و نشان می دهد که پایه های CPU وارد حالت امپدانس بالا شده اند.
: Interrupt Enable (output) INTE محتویات فیلیپ فلاپ وقفه را نشان می دهد. اگر این فیلیپ فلاپ در حالت reset قرار گیرد در این صورت CPU، وقفه را نمی پذیرد این فیلیپ فلاپ در سیکل اول احضار دستور هنگامی که وقفه پذیرفته شده است یا هنگامی که سیگنال Reset، CPU فعال شده باشد reset می شود.
: Interrupt request (input) INT CPU با این سیگنال در انتهای دستورالعمل جاری یا هنگام HALT بودن تقاضای وقفه را تشخیص می دهد.
: RESET با آمدن سیگنال reset محتویات شمارنده برنامه (PC) پاک می شود برنامه از محل صفر حافظه شروع می شود و فیلیپ فلاپهای HALT , INET نیز reset می شود. ولی محتویات انباره پرچمها شمارنده پشته و رجیسترها عوض نمی شود.
:VSSزمین
:VDDتغذیه +12V
:VCCتغذیه +5V
:VBBتغذیه-5v
فازهای ساعت خارجی که بصورت ناهمپوشان هستند.
با نحوه زمانبندی و عملکرد در بخشهای بعدی آشنا می شوید
. D0 (INTA). : سیگنال تایید وقفه است.
D1 (نماد WO): نشان می دهد که سیکل ماشین جاری درحال اجرای دستور خروجی یا نوشتن درحافظه است که در این صورت WO=0 است یا اینکه درحال خواندن حافظه است که دراین صورت WO = 1 می باشد.
D2 (STACK): نشان می دهد باس آدرس، آدرس پشته را در بر دارد.
D3 (HLTA): سیگنال تایید HALT است.
D4 (OUT): نشان می دهد که باس داده آدرس یک وسیله خروجی را در بر دارد.
D5 (M): نشان می دهد که CPU در حال احضار اولین بایت یک دستور است.
D6 (INP): نشان می دهد که باس آدرس، آدرس یک وسیله ورودی را در بر دارد.
D7 (MEMR): نشان می دهد که باس داده برای خواندن داده از حافظه است.
جدول (2-1): 10 کلمه حالت 8080
دو آی سی پشتیبان 8080 توسط اینتل ساخته شده است. 8228 کنترل کننده سیستم است و 8224 که مولد ساعت است. این آی سی سیگنال دو فازه ساعت را تولید می کند آی سی ابتدا فرکانس کریستال را بر 9 تقسیم می کند و از روی آن شکل موج را می سازد معمولاً کریستال 18MHz است بنابراین سیگنال ساعت 2 MHz خواهد بود.
به عنوان تمرین می توانید مداری طرح کنید با داشتن سیگنال کریستال دو شکل موج ناهمپوشان را ایجاد کند. برای فهم بهتر ساختمان پرسسور شکل (2-2) ساختار استاندارد 8080 با
آی سی های پشتیبان را نشان داده است.
شکل (2-2): ساختار بلوکی 8080 با آی سی های پشتیبان
2-2) ثباتهای میکروپرسسور 8080:
ساختمان داخلی 8080 در شکل (2-3) نشان داده شده است 8080 شامل شش ثبات 16 بیتی است سه تا از آنها بصورت عمومی استفاده می شوند(H,L) , (D,E) , (B,C) است این ثبات ها میتوانند به صورت 8 بیتی یعنی H , E , D , C , B جداگانه استفاده شوند ثبات (program counter) PC آدرس محلی از حافظه که دستورالعمل جاری از آنجا اجرا می شود را در بر دارد. این ثبات 16 بیتی است.
ثبات انباره یک ثبات 8 بیتی است بیشتر دستورالعملهای برنامه دستورالعملهای حسابی و منطقی دادن و گرفتن داده از وسیله های I/O و انتقال از مکانی از حافظه به مکان دیگر با کمک این ثبات انجام می شود
شکل (2-3): بلوک دیاگرام 8080
ثبات پرچم شامل پنج پرچم و ضعیت است که هنگام اجرای دستورات این پرچمها تغییر میکند.
عملکرد هر پرچم به عبارت زیر است.
: Zero–1 اگر حاصل یک دستورالعمل صفرشود. بیت فوق 1 می شود در غیر این صورت صفر است.
: Sign –2 بیت علامت که پرارزشترین بیت داده است 1 بودن آن به معنی منفی بودن عدد است.
Parity–3 (بیت توازن): اگر تعداد بیتهای یک حاصل از دستورالعمل زوج باشد این پرچم 1 میشود مگرنه مقدارش صفر است.
Carry–4 (بیت نقلی): اگر در موقع جمع یا تفریق دو عدد یک بیت نقلی یا بیت قرض (Borrow) ایجاد شود این پرچم 1 می شود مگرنه در حالت صفر می ماند.
: Auxiliary Carry –5 اگر در یک جمع یک رقم نقلی از بیت 3 به بیت 9 برود پرچم فوق 1 میشود مگرنه مقدارش صفر است.
به ثبات های انباره و پرچم با هم ثبات کلمه حالت پرسسور (PSW) می گویند که یک ثبات 16 بیتی است. در شکل (4-2): مکان هر پرچم روی ثبات پرچم (Flag) مشخص شده است
CY 1 P 0 AC 0 Z S
شکل (4-2): محل پرچمهای روی ثبات F
Stack Pointer (اشاره گر پشته): هنگام صدا زدن یک زیر برنامه (subroutin) در طول اجرای برنامه اصلی و یا برای نوشتن برنامه های خاصی از این ثبات استفاده می شود. که در بخشهای بعدی توضیح داده خواهد شد.
2-3) دستور العملهای 8080:
در 8080 هفت نوع دستورالعمل وجود دارد که در هر قسمت جداگانه به آنها می پردازیم.
2-3-1) گروه انتقال داده:
این گروه از دستورالعملها داده را از ثبات به ثبات یا از حافظه به ثبات یا از ثبات به حافظه انتقال می دهد. بیشتر دستورات این گروه با دستور MOV است.
نکته: این دستورات تاثیری در وضعیت پرچمها ندارد.
در این قسمت چند دستورالعمل اصلی را به عنوان مثال مطرح می کنیم با درک دقیق این مثالها قادر خواهید بود عملکرد هر یک از دستورات که بعدها بصورت فشرده در جدول دراختیار شما قرار می گیرد را متوجه شوید.
MOV R1 , R2: انتقال از ثبات به ثبات دیگر.
: op code 01 DDD SSS زمان اجرا 5 سیکل ساعت.
نکته: تمام دستورات داده ساختار مقابل را دارند مبداء , مقصد : انتقال
: MVI R,DATA انتقال فوری داده مشخص به داخل ثبات.
Opcode 00DDD110 : (مکان N حافظه)
زمان اجرا : 7 سیکل ساعت.
: MOV R,M انتقال از حافظه به ثبات، آدرسی که ثبات های HL به آن اشاره می کنند و داده M را در بر دارد را بهR انتقا ل می دهد.
Opcode : 01 DDD 110 زمان اجرا: 7 سیکل ساعت.
نکته: در هر دستورالعمل که M مشاهده کردید منظور داده آدرسی از حافظه است که HL به آن اشاره می کند.
: MVI M,(DE) این دستور محتوای آدرسی را که DE به آن اشاره میکند در M یعنی آدرسی که HL به آن اشاره میکند قرار می دهد.
Opcode : 00110110=36 H
Data : 11011110=DEH
: LXI RP,DATA داده 16 بیتی در ثبات کمکی (مثلاً ثبات BC) قرار می دهد.
Opcode : 00RP0001
Data(LSB):XXXXXXXX
Data(HSB):YYYYYYYY
زمان اجرا : 10 سیکل ساعت.
نکته : در موقع اجرای دستورات دقت کنید که برای دادن آدرس مشخص از حافظه به یک ثبات ابتدا هشت بیت سمت راست آن و سپس هشت بیت سمت چپ آن را به عنوان دستورالعمل وارد کنید.
: LDA ADDR محتوای مکانی از حافظه که در دستورالعمل آمده و در انباره قرار می دهد.
Opcode: 00RP0001
Data (LSB):XXXXXXXX
Data(HSB): YYYYYYYY
زمان اجرا: 10 سیکل ساعت.
نکته: در موقع اجرای دستورات دقت کنید که برای دادن آدرس مشخص از حافظه به یک ثبات ابتدا هشت بیت سمت راست آن و سپس هشت بیت سمت آن را آن به عنوان دستورالعمل وارد کنید.
LDA ADDR : محتوای مکانی از حافظه که در دستورالعمل آمده در انباره قرار می دهد.
Opcode : 00111010
Data (LSB): XXXXXXX
Data(MSB):YYYYYYYY
زمان اجرا: 13 سیکل ساعت
:STA ADDR محتوای انباره را در مکانی از حافظه که در دستورالعمل آمده قرار می دهد.
Opcode : 00110010
Data (LSB): XXXXXXXX
Data(MSB): YYYYYYYY
: XCHG پس از اجرای این دستور محتوای آدرسهایی از حافظه که DE , HL به آن اشاره میکردند با هم عوض می شود.
Opcode : 11101011
2-3-2) گروه دستورالعملهای ریاضی:
این گروه تمام دستورالعملهای مانند جمع وتفریق و افزایش و کاهش را شامل می شود این دستورالعملها می تواند بصورت 8 بیتی یا 16 بیتی باشد البته تذکر این نکته لازم است که بقیه اعمال ریاضی مثل ضرب و تقسیم یا جمع 32 بیتی و غیره را می توان با کمک نرم افزار و استفاده از این دستورالعملها ایجاد کرد همچنین این دستورالعملها تاثیر برروی وضعیت پرچمها دارند که این تاثیر در برنامه نویسی باید در نظر گرفته شود.
در این قسمت هم مانند قسمت قبل چند دستورالعمل اصلی معرفی می شود تا کار با جدول دستورات ساده شود.
ADD R: محتوای ثبات R را با انباره جمع می کند و حاصل را در انباره قرار می دهد پرچمهای
Z , S , P , CY , AC پس از اجرای این عمل ممکن است تغییر کنند.
Opcode : 10000 SSS
زمان اجرا: 4 سیکل ساعت است.
فرمت این مقاله به صورت Word و با قابلیت ویرایش میباشد
تعداد صفحات این مقاله 28 صفحه
پس از پرداخت ، میتوانید مقاله را به صورت انلاین دانلود کنید
دانلودمقاله میکروپرسسور