Danh mục

Lập trình 8051 : Các lệnh số học và các chương trình

Số trang: 12      Loại file: pdf      Dung lượng: 125.45 KB      Lượt xem: 19      Lượt tải: 0    
Thư Viện Số

Hỗ trợ phí lưu trữ khi tải xuống: 4,000 VND Tải xuống file đầy đủ (12 trang) 0
Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Các số không dấu được định nghĩa như những dữ liệu mà tất cả mọi bit của chúng đều được biểu diễn dữ liệu và khó có bit dành cho số âm hoặc dương
Nội dung trích xuất từ tài liệu:
Lập trình 8051 : Các lệnh số học và các chương trình ch−¬ng 6 C¸c lÖnh sè häc vµ c¸c ch−¬ng tr×nh6.1 PhÐp céng vµ trõ kh«ng dÊu. C¸c sè kh«ng dÊu ®−îc ®Þnh nghÜa nh− nh÷ng d÷ liÖu mµ tÊt c¶ mäi bit cñachóng ®Òu ®−îc dïng ®Ó biÓu diÔn d÷ liÖu vµ khã cã bit dµnh cho dÊu ©m hoÆcd−¬ng. §iÒu nµy cã nghÜa lµ to¸n h¹ng cã thÓ n»m gi÷a 00 vµ FFH (0 ®Õn 255 hÖthËp ph©n) ®èi víi d÷ liÖu 8 bit.6.1.1 PhÐp céng c¸c sè kh«ng dÊu. Trong 8051 ®Ó céng c¸c sè víi nhau th× thanh ghi tæng (A) ph¶i ®−îc dïng®Õn. D¹ng lÖnh ADD lµ: ADD A, nguån; A = A + nguån LÖnh ADD ®−îc dïng ®Ó céng hai to¸n h¹ng. To¸n h¹ng ®Ých lu«n lµ thanhghi A trong khi ®ã to¸n h¹ng nguån cã thÓ lµ mét thanh ghi d÷ liÖu trùc tiÕp hoÆc lµë trong bé nhí. H·y nhí r»ng c¸c phÐp to¸n sè häc tõ bé nhí ®Õn bé nhí kh«ng baogiê ®−îc phÐp trong hîp ng÷. LÖnh nµy cã thÓ thay ®æi mét trong c¸c bit AF, CFhoÆc PF cña thanh ghi cê phô thuéc vµo c¸c to¸n h¹ng liªn quan. T¸c ®éng cña lÖnhADD lªn cê trµn sÏ ®−îc tr×nh bµy ë môc 6.3 v× nã chñ yÕu ®−îc sö dông trong c¸cphÐp to¸n víi sè cã dÊu. XÐt vÝ dô 6.1 d−íi ®©y:VÝ dô 6.1: H·y biÓu diÔn xem c¸ lÖnh d−íi ®©y t¸c ®éng ®Õn thanh ghi cê nh− thÕ nµo? MOV A, # 0F5H ; A = F5H MOV A, # 0BH ; A = F5 + 0B = 00Lêi gi¶i: F5H 1111 0101 + 0BH + 0000 1011 100H 0000 0000Sau phÐp céng, thanh ghi A (®Ých) chøa 00 vµ c¸c cê sÏ nh− sau: CY = 1 v× cã phÐp nhí tõ D7 PF = 1 v× sè c¸c sè 1 lµ 0 (mét sè ch½n) cê PF ®−îc ®Æt lªn 1. AC = 1 v× cã phÐp nhí tõ D3 sang D46.1.1.1 PhÐp céng c¸c byte riªng rÏ. ë ch−¬ng 2 ®· tr×nh bµy mét phÐp céng 5 byte d÷ liÖu. Tæng sè ®· ®−îc cÊttheo chó ý nhá h¬n FFH lµ gi¸ trÞ cùc ®¹i mét thanh ghi 8 bit cã thÓ ®−îc gi÷. §ÓtÝnh tæng sè cña mét sè bÊt kú c¸c to¸n h¹ng th× cê nhí ph¶i ®−îc kiÓm tra sau mçilÇn céng mét to¸n h¹ng. VÝ dô 6.2 dïng R7 ®Ó tÝch luü sè lÇn nhí mçi khi c¸c to¸nh¹ng ®−îc céng vµo A.VÝ dô 6.2: Gi¶ sö c¸c ng¨n nhí 40 - 44 cña RAM cã gi¸ trÞ sau: 40 = (7D); 41 = (EB); 42= (C5); 43 = (5B) vµ 44 = (30). H·y viÕt mét ch−¬ng tr×nh tÝnh tæng cña c¸c gi¸ trÞtrªn. Cuèi ch−¬ng tr×nh gi¸ trÞ thanh ghi A chøa byte thÊp vµ R7 chøa byte cao (c¸cgi¸ trÞ trªn ®−îc cho ë d¹ng Hex).Lêi gi¶i: MOV R0, #40H ; N¹p con trá MOV R2, #5 ; N¹p bé ®Öm CLR A ; Xo¸ thanh ghi A MOV R7, A ; Xo¸ thanh ghi R7 AGAIN: ADD A, @R0 ; Céng byte con trá chØ®Õn theo R0 JNC NEXT ; NÕu CY = 0 kh«ng tÝch luü cê nhí INC R7 ; B¸m theo sè lÇn nhí NEXT: INC R0 ; T¨ng con trá DJNZ R2, AGAIN ; LÆp l¹i cho ®Õn khi R0 = 0Ph©n tÝch vÝ dô 6.2: Ba lÇn lÆp l¹i cña vßng lÆp ®−îc chØ ra d−íi ®©y. PhÇn dß theo ch−¬ng tr×nhdµnh cho ng−êi ®äc tù thùc hiÖn.Trong lÇn lÆp l¹i ®Çu tiªn cña vßng lÆp th× 7DH ®−îc céng vµo A víi CY = 0 vµ R7 =00 vµ bé ®Õm R2 = 04. Trong lÇn lÆp l¹i thø hai cña vßng lÆp th× EBH ®−îc céng vµo A vµ kÕt qu¶trong A lµ 68H víi CY = 1. V× cê nhí xuÊt hiÖn, R7 ®−îc t¨ng lªn. Lóc nµy bé ®ÕmR2 = 03. Trong lÇn lÆp l¹i thø ba th× C5H ®−îc céng vµo A nªn A = 2DH vµ cê nhí l¹ibËn. Do vËy R7 l¹i ®−îc t¨ng lªn vµ bé ®Öm R2 = 02. ë phÇn cuèi khi vßng lÆp kÕt thóc, tæng sè ®−îc gi÷ bëi thanh ghi A vµ R7,trong ®ã A gi÷ byte thÊp vµ R7 chøa byte cao.6.1.1.2 PhÐp céng vã nhí vµ phÐp céng c¸c sè 16 bit. Khi céng hai to¸n h¹ng d÷ liÖu 16 bit th× ta cÇn ph¶i quan t©m ®Õn phÐptruyÒn cña cê nhí tõ byte thÊp ®Õn byte cao. LÖnh ADDC (céng cã nhí) ®−îc södông trong nh÷ng tr−êng hîp nh− vËy. VÝ dô, xÐt phÐp céng hai sè sau: 3CE7H +3B8DH. 3C E7 + 3B 8D 78 74 79 Khi byte thø nhÊt ®−îc céng (E7 + 8D = 74, CY = 1). Cê nhí ®−îc truyÒn lªnbyte cao t¹o ra kÕt qu¶ 3C + 3B + 1 = 78. D−íi ®©y lµ ch−¬ng tr×nh thùc hiÖn c¸cb−íc trªn trong 8051.VÝ dô 6.3: H·y viÕt ch−¬ng tr×nh céng hai sè 16 bit. C¸c sè ®ã lµ 3CE7H vµ 3B8DH. CÊttæng sè vµo R7vµ R6 trong ®ã R6 chøa byte thÊp.Lêi gi¶i: CLR ; Xo¸ cê CY = 0 MOV A, #0E7H ; N¹p byte thÊp vµo A → A = E7H ADD A, #8DH ; Céng byte thÊp vµo A → a =74H vµ CY = 1 MOV R6, A ; L-u byte thÊp cña tæng vµo R6 MOV A, #3CH ; N¹p byte cao vµo A → A =3CH ADDC A, #3BG ; Céng byte cao cã nhí vµo A→ A = 78H ; MOV R7, A ; L-u byte cao cña tæng vµo R ...

Tài liệu được xem nhiều: