سلام !
تو درس آزمايشگاه ريزپردازنده(Z80)از ما خواستن كه يك شمارنده درست كنيم كه اعداد رو به صورت دسيمال نمايش بده.يعني به جاي حرف A عدد 10 رو نشون بده.
ازشما مي خواستم من رو راهنمايي كنيد كه چطور اعداد هگزا رو به دسيمال تبديل كنم
ممنون
سلام !
تو درس آزمايشگاه ريزپردازنده(Z80)از ما خواستن كه يك شمارنده درست كنيم كه اعداد رو به صورت دسيمال نمايش بده.يعني به جاي حرف A عدد 10 رو نشون بده.
ازشما مي خواستم من رو راهنمايي كنيد كه چطور اعداد هگزا رو به دسيمال تبديل كنم
ممنون
خب مگه آی سی برای این کار داخل بازار وجود ندارد!.
شماره آی سی را نمیدانم ولی بپرسی شاید پیداش کنید.
سلام دوست عزيز
ظاهرا منظورم رو اشتباه رسوندم.ما بايد برنامه بنويسيم.به عنوان مثال از دستوراتي نظيرscan،7-segment،hex7sg و... استفاده ميكنيم.
من نمیدانم شما از چه ساختار کدی برای این کار استفاده میکنید ولی شما باید عدد را به 10 تقسیم کنید خارج قسمت میشه دهگان و باقیمانده یکان seven segment این الگوریتم میتونه شما رو برای خارج کردن اعداد کمک کنه
int num =16, SevenSegmenyNum;
while( num !=0 )
{
SevenSegmenyNum = num %10; // عدد را برای ارسال به سون سگمنتها خارج میند
// شما به ترتیب این اعداد خارج شده را به سون سگمنتها ارسال کنید
Num = num/10; //خارج قسمت عدد
}
مثلا من اگر بخواهم يك شمارنده به صورت هگزا بنويسم اين شكلي ميشه:
LD A,0
LD C,32H
Loop: LD Ix,1850
LD HL,1850
CALL HEX7SG
CALL SCAN
ADD A
DEC C
DJ NZ,Loopحالا من نميدانم چطور به دسيمال تبديلش كنم.
قوائد 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