Danh mục

Giáo trình vi điều khiển 8051 - Chương 8

Số trang: 10      Loại file: pdf      Dung lượng: 132.63 KB      Lượt xem: 16      Lượt tải: 0    
Hoai.2512

Phí tải xuống: 2,000 VND Tải xuống file đầy đủ (10 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:

Lập trình với các lệnh một bít. Trong hầu hết các bộ vi xử lý (BVXL) thì dữ liệu được truy cập theo từng byte. Trong các bộ vi xử lýnh địa chỉ theo byte này thì các nội dung của một thanh ghi, bộ nhớ RAM hay cổng đều phải được truy cập từng byte một. Hay nói cách khác, lượng dữ liệu tối thiểu có thể được truy cập là một byte. Ví dụ, trong bộ vi xử lý Pentium cổng vào/ ra (I/O) được định hướng theo byte, có nghĩa là để thay đổi một bít thì...
Nội dung trích xuất từ tài liệu:
Giáo trình vi điều khiển 8051 - Chương 8 ch¬ng 8 c¸c lÖnh mét bÝt vµ lËp tr×nh8.1 LËp tr×nh víi c¸c lÖnh mét bÝt. Trong hÇu hÕt c¸c bé vi xö lý (BVXL) th× d÷ liÖu ®îc truy cËp theo tõng byte.Trong c¸c bé vi xö lýnh ®Þa chØ theo byte nµy th× c¸c néi dung cña mét thanh ghi, bénhí RAM hay cæng ®Òu ph¶i ®îc truy cËp tõng byte mét. Hay nãi c¸ch kh¸c, lîngd÷ liÖu tèi thiÓu cã thÓ ®îc truy cËp lµ mét byte. VÝ dô, trong bé vi xö lý Pentiumcæng vµo/ ra (I/O) ®îc ®Þnh híng theo byte, cã nghÜa lµ ®Ó thay ®æi mét bÝt th× taph¶i truy cËp toµn bé 8 bÝt. Trong khi ®ã cã rÊt nhiÒu øng dông th× ta ph¶i chØ cÇn thay®æi gi¸ trÞ cña mét bÝt ch¼ng h¹n nh lµ bËt hoÆc t¾t mét thiÕt bÞ. Do vËy kh¶ n¨ng®¸nh ®Þa chØ ®Õn tõng bÝt cña 8051 rÊt thÝch hîp cho øng dông nµy. Kh¶ n¨ng truy cËp®Õn tõng bÝt mét thay v× ph¶i truy cËp c¶ byte lµm cho 805 trë thµnh trong nh÷ng bévi ®iÒu khiÓn (BV§K) 8 bÝt m¹nh nhÊt trªn thÞ trêng. VËy nh÷ng bé phËn nµo cñaCPU, RAM, c¸c thanh ghi, cæng I/O hoÆc ROM lµ cã thÓ ®¸nh ®Þa chØ theo bÝt ®îc.V× ROM chØ ®¬n gi¶n d÷ m· ch¬ng tr×nh thùc thi nªn nã kh«ng cÇn kh¶ n¨ng ®¸nh®Þa chØ theo bÝt. TÊt c¶ mäi m· lÖnh ®Òu ®Þnh híng theo byte chØ cã c¸c thanh ghi,RAM vµ c¸c cæng I/O lµ cÇn ®îc ®¸nh ®Þa chØ theo bÝt. Trong 8051 th× rÊt nhiÒu vÞ trÝcña RAM trong mét sè thanh ghi vµ tÊt c¶ c¸c cæng I/O lµ cã thÓ ®¸nh ®Þa chØ theotõng bÝt. Díi ®©y ta chØ ®i s©u vµo tõng phÇn mét.8.1.1 C¸c lÖnh mét bÝt. C¸c lÖnh dïng c¸c phÐp tÝnh mét bÝt ®îc cho ë b¶ng 8.1. Trong phÇn nµychóng ta lµm vÒ c¸c lÖnh nµy vµ ®a ra nhiÒu vÝ dô vÒ c¸ch sö dông chóng, c¸c lÖnhmét bÝt kh¸c mµ chØ liªn quan ®Õn cê nhí CY (Cary Flag) sÏ lµm ë môc kh¸c. B¶ng 8.1: C¸c lÖnh mét bÝt cña 8051 LÖnh Chøc n¨ng SETB bÝt ThiÕt lËp bÝt (bÝt b»ng 1) CLR bÝt Xo¸ bÝt vÒ kh«ng (bÝt = 0) CPL bÝt Bï bÝt (bÝt = NOT bÝt) JB bÝt, ®Ých Nh¶y vÒ ®Ých nÕu bÝt = 1 JNB bÝt, ®Ých Nh¶y vÒ ®Ých nÕu bÝt = 0 JBC bÝt, ®Ých Nh¶y vÒ ®Ých nÕu bÝt = 1 vµ sau ®ã xo¸ bÝt8.1.2 C¸c cæng I/O vµ kh¶ n¨ng ®¸nh ®Þa chØ theo bÝt. Bé vi ®iÒu khiÓn 8051 cã bèn cæng I/O 8 bÝt lµ P0, P1, P2 vµ P3. Chóng ta cãthÓ truy cËp toµn bé 8 bÝt hoÆc theo mét bÝt bÊt kú mµ kh«ng lµm thay ®æi c¸c bÝt kh¸ccßn l¹i. Khi truy cËp mét cæng theo tõng bÝt, chóng ta sö dông c¸c có ph¸p “SETB Y,Y” víi X lµ sè cña cæng 0, 1, 2 hoÆc 3, cßn Y lµ vÞ trÝ bÝt tõ 0 ®Õn 7 ®èi víi c¸c bÝt d÷liÖu ®o ®Õn 7. VÝ dô “SETB P1.5” lµ thiÕt lËp bÝt cao sè 5 cña cæng 1. H·y nhí r»ng dolµ bÝt cã nghÜa thÊp nhÊt LSB vµ D7 lµ bÝt cã nghÜa lµ cao nhÊt MSB. Xem vÝ dô 8.1.VÝ dô 8.1: ViÕt c¸c ch¬ng tr×nh sau: a) T¹o mét sãng vu«ng (hµm xung vu«ng) víi ®é ®Çy xung 50% trªn bÝt 0 cñacæng 1. b) T¹o mét hµm xung vu«ng víi 66% ®é ®Çy xung trªn bÝt 3 cña cæng 1.Lêi gi¶i: a) Hµm xung vu«ng víi ®é ®Çy xung 50% cã nghÜa lµ tr¹ng th¸i “bËt” vµ “t¾t”(hoÆc phÇn cao vµ thÊp cña xung) cã cïng ®é dµi. Do vËy ta chèt P1.0 víi thêi giangi÷ chËm gi÷a c¸c tr¹ng th¸i.HERE: SETB P1.0 ;ThiÕt lËp bÝt 0 cæng 1 lªn 1. LCALL DELAY ;Gäi ch¬ng tr×nh con gi÷ chËm DELAY CLR P1.0 ;P1.0 = 0 SJMP HERE ;TiÕp tôc thùc hiÖn nã. Cã thÓ viÕt ch¬ng tr×nh nµy theo c¸ch kh¸c:HERE: CPL P1.0 ;Bï bÝt 0 cña cæng 1. LCALL DELAY ;Gäi ch¬ng tr×nh con gi÷ chËm DELAY SJMP HERE ;TiÕp tôc thùc hiÖn nã. 8051 P1.0b) Hµm xung vu«ng víi ®é ®Çy xung 66% cã nghÜa lµ tr¹ng th¸i “bËt” cã ®é dµi gÊp®«i tr¹ng th¸i “t¾t”.BACK: SETB P1.3 ;ThiÕt lËp bÝt 3 cæng 1 lªn 1. LCALL DELAY ;Gäi ch¬ng tr×nh con DELAY LCALL DELAY ;Gäi ch¬ng tr×nh con DELAY lÇn n÷a. CLR P1.3 ;Xo¸ bÝt 3 cña cæng 1 vµ 0. LCALL DELAY ;Gäi ch¬ng tr×nh con DELAY SJMP BACK ;TiÕp tôc thùc hiÖn nã. 8051 P1.0 Lu ý r»ng, khi m· “P1.0” ®îc hîp dÞch nã trë thµnh “SETB 90H” v× P1.0cã ®Þa chØ trong RAM lµ 90h. Tõ h×nh vÏ 8.1 ta thÊy r»ng c¸c ®Þa chØ bÝt cho P0 lµ80H ®Õn 87H vµ cho P lµ 90H ®Õn 97H v.v... H×nh 8.1 còng chØ ra tÊt c¶ c¸c thanh ghicã kh¶ n¨ng ®¸nh ®Þa chØ theo bÝt. B¶ng 8.2: Kh¶ n¨ng ®¸nh ®Þa chØ theo bÝt cña c¸c cæng. P0 P1 P2 P3 Ports Bit P0.0 P1.0 P2.0 P3.0 D0 P0.1 P1.1 P2.1 P3.1 D1 P0.2 P1.2 P2.2 P3.2 D2 P0.3 P ...

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