مقاله میکروپرسسور در word دارای 28 صفحه می باشد و دارای تنظیمات در microsoft word می باشد و آماده پرینت یا چاپ است
فایل ورد مقاله میکروپرسسور در word کاملا فرمت بندی و تنظیم شده در استاندارد دانشگاه و مراکز دولتی می باشد.
این پروژه توسط مرکز مرکز پروژه های دانشجویی آماده و تنظیم شده است
توجه : در صورت مشاهده بهم ریختگی احتمالی در متون زیر ،دلیل ان کپی کردن این مطالب از داخل فایل ورد می باشد و در فایل اصلی مقاله میکروپرسسور در word،به هیچ وجه بهم ریختگی وجود ندارد
بخشی از متن مقاله میکروپرسسور در word :
میکروپرسسور
8080
فهرست:
مقدمه: معرفی میکروپرسسورهای 8080
2-1) سخت افزار 8080
2-2-1) ساختمان داخلی 8080
2-2-2)PIN CONFIGURATION المان8080
2-2-3)ICهای جانبی 8080
2-2) ثباتهای میکروپرسسور 8080
2-3) دستورالعملهای 8080
2-3-1) گروه انتقال داده
2-3-2) گروه عملیات ریاضی
2-3-3) گروه عملیات چرخش
2-3-4) گروه عملیات منطقی
2-3-5) گروه عملیات انشعابی
6-3-2) گروه کنترلI/O و پشته
2-4) مثالهایی از برنامه ریزی میکروپرسسور
2-5) زمانبندی timing
2-5-1) زمانبندی خواندن حافظه
2-5-2) زمانبندی نوشتن حافظه
2-5-3) زمانبندی وقفه ها
مقدمه: پس از آشنایی با کامپیوتر شریف با نمونه هایی از یک کامپیوتر عملی مانند 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 سیکل ساعت است.
: ADC R محتوای R را با بیت نقلی (carry) جمع می کند حاصل را در انباره قرار می دهد.
Opcode: 11001110
زمان اجرا: 7 سیکل ساعت.
: SUB R محتوای ثبات R را از انباره کم می کند و حاصل در انباره قرار می دهد.
Opcode : 10010 SSS
زمان اجرای: 4 سیکل ساعت.
: SBB R جمع ثباتهای دوتایی: مقدار 16 بیت RP را با 16 بیت HL جمع کرده و حاصل را در HL قرار می دهد.
Opcode: 00 RP 1001
زمان اجرا: 10 سیکل ساعت.
(2-3-3) دستورالعملهای چرخش:
با کمک این دستور العملها می توان شیفت به سمت راست یا چپ در ارقام یک عدد ایجاد کرد شیفت دادن و یا کم کردن زیاد کردن یک عدد به اندازه یک واحد کاربرد زیادی در برنامه نویسی دارد.
نکته: پرچم وضعیت نقلی (carry) در این دستور العملها تحت
تاثیر قرار می گیرد.
: RLC محتوای انباره را 1 بیت به سمت چپ شیفت می دهد. پس از اجرای دستور با ارزشترین بیت در داخل carry قرار می گیرد.
Opcode : 00000111
زمان اجرا: 4 سیکل ساعت.
: RAL محتوای انباره و carry را مانند یک عدد 9 بیتی یک بیت به چپ شیفت می دهد بطوری که carry به بیت LSB انباره منتقل می شود.
Opcode : 00010111
زمان اجرا: 4 سیکل ساعت.
دستور RRC مشابه RLC ولی شیفت به راست و RAR مشابه RAL و برای شیفت به راست مورد استفاده قرا می گیرند.
: INR R به محتوای ثبات R یک واحد اضافه می کند.
Opcode : 00DDD100
زمان اجرا: 5 سیکل ساعت.
: INX RP به محتوای ثبات 16 بیتی RP یک واحد اضافه می کند.
Opcode : 00RP0011
زمان اجرا: 5 سیکل ساعت.
: INR M به محتوای مکانی از حافظه که آدرس آن در HL است یک واحد اضافه می کند.
Opcode : 00110100
زمان اجرا: 10 سیکل ساعت.
دستورات DCX RP , DCR M , DCR R مشابه دستور فوق است و برای کم کردن به اندازه یک واحد استفاده می شود.
نکته: این دستورات موقع اجرا تاثیری بر بیت نقلی Carry ندارند.
دستورات CMC , CMA برای مکمل کردن انباره و بیت نقلی استفاده می شود.
: DAA انطبات دهدهی انباره: 8 بیت انباره به 2، عدد 4 , BCD بیتی تبدیل می کند.
2-3-4) گروه دستورالعملهای منطقی
این گروه شامل عملگرهای منطقی است و برای مقایسه دو عدد یا تشخیص 1 بودن بعضی از بیتها بکار می رود.
: ANA R محتویات R را انباره را با هم AND کرده و حاصل را در انباره قرار می دهد.
Opcode : 10100 SSS
زمان اجرا: 4 سیکل ساعت.
دستورات ORA M, DRA R, XR1 Data, XAR M, XAR R, ANI Data, ANA M
ORI Dataهر کدام عملکرد منطقی دارند که بسادگی عملکرد هر یک قابل حدس زدن است.
: CMP R محتوای A , R را مقایسه می کند. اگر A>R سپس پرچم نقلی (Carry) Set می شود اگر R>A پرچم نقلی reset می شود اگر A=R باشد پرچم Zero روشن می شود.
Opcode : 10111 SSS