PDA

View Full Version : سوال: ريزپردازنده



sharifat
شنبه 21 آذر 1388, 14:15 عصر
سلام !
تو درس آزمايشگاه ريزپردازنده(‌Z80)از ما خواستن كه يك شمارنده درست كنيم كه اعداد رو به صورت دسيمال نمايش بده.يعني به جاي حرف A عدد 10 رو نشون بده.
ازشما مي خواستم من رو راهنمايي كنيد كه چطور اعداد هگزا رو به دسيمال تبديل كنم
ممنون:ناراحت::عصبانی++:

tdkhakpur
شنبه 21 آذر 1388, 14:34 عصر
خب مگه آی سی برای این کار داخل بازار وجود ندارد!.
شماره آی سی را نمیدانم ولی بپرسی شاید پیداش کنید.

sharifat
شنبه 21 آذر 1388, 15:13 عصر
سلام دوست عزيز
ظاهرا منظورم رو اشتباه رسوندم.ما بايد برنامه بنويسيم.به عنوان مثال از دستوراتي نظيرscan،7-segment،hex7sg و... استفاده ميكنيم.
:ناراحت:

tdkhakpur
شنبه 21 آذر 1388, 15:40 عصر
من نمیدانم شما از چه ساختار کدی برای این کار استفاده میکنید ولی شما باید عدد را به 10 تقسیم کنید خارج قسمت میشه دهگان و باقیمانده یکان seven segment این الگوریتم میتونه شما رو برای خارج کردن اعداد کمک کنه


int num =16, SevenSegmenyNum;
while( num !=0 )
{
SevenSegmenyNum = num %10; // عدد را برای ارسال به سون سگمنتها خارج میند
// شما به ترتیب این اعداد خارج شده را به سون سگمنتها ارسال کنید
Num = num/10; //خارج قسمت عدد
}

sharifat
یک شنبه 22 آذر 1388, 07:28 صبح
مثلا من اگر بخواهم يك شمارنده به صورت هگزا بنويسم اين شكلي ميشه:


LD A,0
LD C,32H
Loop: LD Ix,1850
LD HL,1850
CALL HEX7SG
CALL SCAN
ADD A
DEC C
DJ NZ,Loop

حالا من نميدانم چطور به دسيمال تبديلش كنم.

tdkhakpur
یک شنبه 22 آذر 1388, 13:46 عصر
قوائد z80 یادم نیست ولی با 8086 چیزی مانند زیر میشه.


num db 123
mov ax, num
mob bl, 10
loop1:
div bl
CALL Ah2SevenSeg // برای سون سگمنت ارسال میکند AH
mov ah, 0
cmp al, 0
jnz loop1