Download presentation
Presentation is loading. Please wait.
Published byFerdinand Osborne Modified over 9 years ago
1
Calculator 9S12DP256 Lab 2
2
\ Convert counted string at addr1 to double number ud2 \ ud1 normally zero to begin with \ addr2 points to first invalid character : >NUMBER ( ud1 addr1 -- ud2 addr2 ) \Calculator (add) LOAD lcd256.whp LOAD keypad12.whp VARIABLE ptr VARIABLE first VARIABLE kbuf 20 ALLOT : init( -- ) kbuf ptr ! SPI.INIT init.key lcd.init TRUE first ! ; kbufptr
3
\ Convert counted string at addr1 to double number ud2 \ ud1 normally zero to begin with \ addr2 points to first invalid character : >NUMBER ( ud1 addr1 -- ud2 addr2 ) kbuf ptr : display( n -- ) first @\ if first digit IF init\ clear display FALSE first ! THEN hex2asc DUP >data8\ display digit 1 ptr +! \ update ptr ptr @ C! ; 31 32 33 Enter decimal number 123
4
\ Convert counted string at addr1 to double number ud2 \ ud1 normally zero to begin with \ addr2 points to first invalid character : >NUMBER ( ud1 addr1 -- ud2 addr2 ) kbuf ptr 31 32 33 : enter( n -- d ) DROP ptr @ kbuf - \ get no. of chars kbuf C!\ make counted string 1 ptr +! 0 ptr @ C!\ make asciiz string 0 0 kbuf \ convert ascii string >NUMBER DROP\ to double number TRUE first ! ; Press E 3 0
5
: add( d1 n -- d2 ) clear.lcd enter D+ 2DUP (D.) type.lcd ; : calc( -- ) init BEGIN wait.for.keyup getkey DUP 14 =\ E key IF enter ELSE DUP 10 =\ A key IF add ELSE DUP 12 =\ C key IF init ELSE display THEN AGAIN ;
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.