Đăng ký Đăng nhập
Trang chủ Giáo dục - Đào tạo Cao đẳng - Đại học Đại cương Vi điều khiển cấu trúc lập trình và ứng dụng...

Tài liệu Vi điều khiển cấu trúc lập trình và ứng dụng

.PDF
65
24
54

Mô tả:

Chương VI Điếu KHIấN 8051 2.1. TỔNG QUAN VỂ HỌ VI ĐIỂU KHIỂN 8051 2.1.1. Tóm tắt vể lịch sử của 8051 Năm 1981, hãng In te l giới thiệu bộ v i điều khiển 8051 Bộ vi điều khiển này có 128 byte R A M , 4 kbyte R O M , hai bộ định ihời, m ột cổng nối tiếp và bốn cổng vào/ra song song (độ rộng 8 bit) tất cả đều được đạt trên m ột chip. 8051 là bộ xử lý 8 b it, có nghĩa ỉà CPU chỉ có thể ỉàm việc với 8 b it dữ liệu tại m ột thời điểm . Dữ hệii lớn hơn 8 b it được chia ra thành các dữ liệu 8 b it để xử lý. 8051 đã trở nên phổ biến sau khi Intel cho phép các nhà san xuất khác sản xuất và bán các dạng biến Ihể của 8051. Điều này dẫn đến sự ra đời nhiều phiên bản của 8051 với các tốc dộ khác nhau và dung lượng ROM trên chip khác nhau, nhưng tất cả các lệnh đều lương th^ch với 8051 ban đầu. Như vậy, nếu ta viết chương trình cho một phiên bản nào của 8051 thì cũng chạy được với mọi phiên bản khác khống phi thuộc vào hãng sản xuất. B Ả N G 2 .1 . C Á C Đ Ặ C T ÍN H C Ủ A 8051 Đ Ầ U T IÊ N Đ ặc tính Số iượng ROM 4 kbyte RAM 128 byte Bộ định thời 2 Chân vào/ra 32 Cổng nối tiếp 1 Nguồn ngắt 6 2.1.2. Các thành viên khác của họ 8051 Có hai bộ vi điều khiển là các thành viên khác của họ 8051 h 8052 và 8031. 1. Bộ vi đ iề u k h iể n 8052 Bộ v i điểu khiển 8052 là một thành viên của họ 8051, 8052 có tất cả các đẫc tính chuẩn của 8051 ngoài ra nó có thêm 128 byte R a M và một bộ định thời nữa (bảng 2.2). 18 B Ả N G 2 .2 . S O S Á N H C Á C Đ Ặ C TÍNH CỦA C ÁC T H À N H V IÊ N H Ọ 8051 Đặc tinh 8051 ^52 8031 ROM trên chip 4 kbyte 8 k b y te không có RAM 128 byte 256 byte... 128 byte Bộ định thởi 2 3 2 Chân vào/ra 32 32 31 Cổng nối tiếp 1 Nguồn ngắt 6 * 1 6 1 Như thấy lừ bảng 2.2 thì 8052 là nì(< rông cua Hih 1. Do vậy các chương trìnli viêi clio 8051 đều chạy trên 8052 nhirnti diều ngược lại là không đúng. 2. Bộ vi diều M ọl íliàiili vicn khác nửa của 80.^ 1 là chip 803ỉ. Chip này Ihường được coi như là 8031 không có ROM ỉrcn chip. Để sử dụng chip này ta phải bổ sung R O M ngoài cho nó, ROM ngoài phải chứa chương trình mà 8031 SC nạp và thực hiện. Với 8051, chương Iiình dược chứa trong ROM trẽn chip bị giới hạn bởi 4 kbyte, còn ROM ngoài được gắn vào 8031 thì có thổ lớn đến 64 kbyte. K hi sử dung ROM ngoài ta chỉ còn lại có hai cổng dể sử dụng cho mục đích vào/ra. dể giải quyết vấn đề này ta có thể lĩiở rộng cổng vào/ra cho 8031 bằng cách sử dung vi mạch PPĨ 8255. 2.1.3. Các phỉèn bản của 8051 Mặc dù 8051 là thành viên phổ biến nhủi của họ 8051 nhưiig chúng ta sẽ gặp rất tihiều pliiên bản của nó với nlùmg lêii gọi khác nhau \uỳ thuộc vào kiểu bộ nliớ chưiĩiig trình, cỏng nghé chế líio, tần sô ỉàm việc... V í dụ phiên tón ciìa 8051 với bộ nhớ ư v - FROM đưạc ký hiệu là 875ỉ. Phiên bản Flash ROM cũng được bán bcVi nhiểu liẫiig kỉiác nỉiau, chảng hạn của Atmel với tên gọi là AT89C51 còn phiên ban NV - RAM của 8051 do Dalas Semiconductor cung cấp thì được gọi ỉà DS5fX)0. Ngoài ra còn có phiên bản OTP (lập trình được một lần) cũng dược sản xuất tò i rất nhiều hãng. I. Bô ví điề u k h iể n 8751 Chip 8751 chỉ có 4kbyte bộ nhớ IJV - ÍÌPROM trẽn chip. Đổ sử dụug chip này cần có bộ đốỉ PROM và bộ xoá u v - EFROM để xoá nội dung của bộ nhớ ư v - EPROM bẽn trong 8751 trước khi ta có thể lập trình lại nó. Do R O M trên chip dối với 8751 ỉà u v - EPROM nôn cẩn phải mất 20 phúi để xoá 8751 trước khi nó có ihể được lạp trình irở lại. V ì điểu này đã dẫn đến nhiéu nhà sán xuất giới ihiộu các phiên bản 19 Flash R O M và u v - R A M . Niioai ra c o n CÓ n hieu fliie n ban với các lốc clộ khác nhau c ú a S751 lừ I i l i ĩ c u hãỉiíi kỉiac nhau. 2, B ô v i d i ê u k h i ê n A T 8 9 5Ỉ t ừ Ađ me l C o r p o r í t t i o n AT8951 là phiên bản 8051 có R O M irciì c h i p ơ dạiig bộ nhớ ĩ-lash. Phiẽn btUi này là Iv iư ở n g dối V Ớ I [ihĩnig phái tricu n h a n h vì bọ nhớ Flash có ihể dược x oá t r o n g vài g iâv. Dùnig A1'89C.^1 dể phát trển rnột hệ thống dưa trên bộ vi tỉiều k h iên vêu c ầ u inột b ộ cỉỏì R O M h6 trợ bộ nhớ Flash, không y c u cáu bộ xo á R O M . ĩlãnsỊ A tm cl dã C Ỉ I O ra đời một pliiên bản của A T 89 C51 cổ thê’ đ ư ơ c l â p irìn h qua c ổ n g tru yền t h ỏ n g COM của ináy lính IB M l’C. B Ả N G 2 .3 . C Á C P H IÊ N BẢN C Ủ A 8051 DO H à N G A T M E L C U N G C Ấ P (F L A S H R O M ) Vcc Đóng vò 5V 40 chân, 2 hàng 32 3V 40 chân, 2 hàng 64 byte 15 3V 20 chân, 2 hàng 2 kbyte 1 2 8 b y te 15 3V 20 chân, 2 hàng AT89C52 8 kbyte 1 2 8 b y te 32 5V 40 chân, 2 hàng AT89LV52 8 kbyte 1 2 8 b y te 32 3V 40 chân, 2 hàng Chân HO \ Timer i Ngất ROM RAM AT89C51 4 kbyte 1 2 8 b y te 32 AT89LV51 4 kbyte 1 2 8 b y te AT89C1Ũ51 1 kbyte AT89C2051 Kỷ hiệu ỉ 2 6 AT89C2051 là bộ vi diéu khiển 8 bií được ché lụo Iheo công nghệ CMOS, có thé hoạt dộng đưực ở dải điện áp lừ 2,7 V đến 6V. Bộ vi cìiéu khiổn này được đóng gói DIP 20 chân, khá nliỏ gọn so với AT89S52 nhưng vản có đủ các lài nguyên Ihông dung như: - Bộ nhớ: 2 kbyte Flasli có ihể ghi/xoá được KXX) lần; ỉ 28 X 8-bit RAM; - Có thể hoạt động ử làn sô' Ihạcli anh lôn tới 24M Hz; - l 5 chân xuất nhập; - 2 bộ Tim er/Counter 16 bit; - 6 nguồn ngát; - 1 PORT nối tiếp: - l bộ so sánh (Analog Comparator). AT89C4051 có sơ íiồ chùn và cac lài nguyên giỏng AT89C2051. ngoại trừ bộ nhớ ROM có dung lượng lớn hưn (4kbytc). AT89S52 là mội bô vi điều khiển ihỏng dụng, giá rẻ có khá nhiều chức aăng hay, đặc bi4) □ p r« 6 (AD5) 3)P^e(AD«) 5 7 (A 07) JẸĨẦ/Sỉị>p □ NWOG Ij PSEN “1P2.7 (A15) □ P2.6 (A14) I] P2.5 (A13) 3 P2.4 (A12) DP2.3 (A11) □ P2.2 (AlO) □ P2.1 (A9) 3 P2.0 (A8) e) 89C52/89S52 kiểu DIP 40 chân; ' V C Ọ O Ị v - Ọ 42 : ì P1.7 (SCK) 41 1 P1.6(M IS0) 40 J P1.5(M 0SI) 39 D P1-4 yHXÚ) P3.0 2 (ĨXD) P3.1 L 3 (INTO) P 3 . 2 Ĩ : 4 (INT1)P3.3 . 5 (TO) P3 4 6 (Ĩ1)P3,5;:_ 7 (WR) P 3 . 6 ' 8 38 37 36 35 34 J P1.3 ! P1.2 1 P1.1 (T2EX) 1 P 1 .0 (T2) 12 13 14 15 31 30 29 28 ĩlP O .I □ P0.2 D P0.3 □ P0 4 (A10) P2.2C 16 (A11)P2.3 í: 17 27 26 25 24 □ P0.5 (AD5) □ P0.6 (AD6) □ P0.7(AD7) (RD) P3.7 z 9 XTAL2: 10 X ĨA L 1 . 11 GND ' PWRGND r (A8) P2.0 (A9) P2.1 C □ VDD 33 3 PWRVDD 32 J PO.O (ADO) (A12) P 2 .4 f 18 (A13) P2.5C 19 (A14)P2.6C: 20 (A15) P 2 . 7 L 21 □ ẼAA/PP 23 3 ALE/PRÕỒ 22 □ PSEN f) 89C52/89S52 kiểu DIP 42 chân; lễ llli nil 't n t>Ị — ọ o ọ — cvm 0 0 « - r \ Ị C Ọ , ...Ì.Ì..U 1..I . J-1J1 - 11 ! H 1 w (MOSI)PI 5C (MíSO)PI 6L (SCK)PI 7C RSTC (RXD) P3.0 C. NCC (ĨXD ) P3.1 l (IWTO) P3.2 r (líĩTt)P3.3C. (TO) P3 4 1 Ơ I) PXS{ n :• *n n ri 38 37 36 35 34 33 32 31 30 í 5 8 K 8 i S a « R t 5 S ” T T m T LJ i.J t_J l J J u *_J u u (D r>> «u •” O O 0 *“ «N n ^ f g t n n 7 a 9 10 11 12 13 14 15 16 II 3 (AD1) (AD2) (AD3) (AD4) □ PO 4 (A04) J P0.5 (AD5) :i f>n 6 (AD6) 3P0.7(AD7) ỄẦA/PP 3NC J A L E ^Ì KXÌ J f»§ỀN JP2.7(A15) J P2.6(A14) :i P2 5 (A l3 ) (M o s i)P i.s r % 33 ■ P0.4 {A04) 32 P0.5 Ì a o s ) 3t ^ p o .e ÌA o e i (MlSOỉ P1 6 L 2 (SCk Ì p í 7C 3 nSTL 4 (RXĐ)P3 0 l S NCÍ 6 ÍTX0)P3.1 C 7 (IMTO) P3 ĩ L e 30 29 ?e 27 26 25 24 23 (íN ĩìíP a .s r s fTO) P3 4 L to (T í »P 35[- 11 'N C IALE/PAỖ Ố .. PS£N ^ P 2 .7 (A15) r P 2 .6 íA l4 ) :P ? 5 (A 1 3 ) T T T r-T T rT T T T T T T rn rrT " III i i sĩ ĩs ị? ịr ị? <. < g) 89C52/89S52 kiểu PLCC; : P0.7 (A07) _ẼA/VPP h) 89C52/89S52 kiểu PQ FP/TQ FP. Hinh 2.3. Sơ đó chân của89C51/89S51. 89C52/89S52. I . P o rt 0 (PO.O - P0.7) Port 0 gồm 8 chân, ngoài chức năng x u ấ t nhập, Port 0 còn là bus đa hợp dữ liệu và địa chỉ (A D 0 -A D 7 ), chức năng này sẽ được sử dụng khi 8051 giao tiếp với các thiết bị ngoài có kiến trúc Bus như các vi mạch nhớ, mạch PIO ... 4VI0K ƯDA 25 A d dress tow/ Contro» Read Latch Q p o X (1) InlernHl Bus W rite 10 Laich Hinh 2.4. cáu trúc của các chàn trên Port 0. 2. P o r t I ( P 1 . 0 - P 1 . 7 ) Dỏi với 8051, chức năng duy nhâl của Porl 1 là chức nàng xuâì nihãp, cũng như các Port khác, Porl 1 có ihc xuâì nhập Ihco bií và íhco byle. vcc A lternate O utput Function R ead La!ch Internal Bus W rite to Latch A lternate Input Function Hinh 2.5. Càu trúc của các chân trên Port 1 và Port 3, Riêng dòng 89Sxx, ba chân P1.5, 1^1.6, P1.7 dược dìiiig dểinạp ROM Iheo chuán ISI*; hai chân Pl .0 và P1.1 dược dùng cho bộ T im e r 2. 3. P o rt 2 Pori 2 ngoài chức năng bytc cao cùa bus dịa chi khi là cổng vào/ra như pori 0 và sứ dụng bộ nhớ ngoài. pori 1 còmlà 26 4 VIDK nị. 9. X T A L l , X T A L 2 AT89S52 có một bộ dao động trên chip, nó thường được nối Với bộ dao động thạch anh có tẩn số lớn nhất là 33MHz, thông thường là 12MFz. 10. Vcc, G N D AT89S52 dùng nguồn một chiều có dải điện áp từ 4V đến 5,5V được cấp qua chân 40 và 20. 2.2.3. Tô chức bộ nhớ AT89S52 có bộ nhớ theo cấu trúc Harvard - có những vùng chiobộ nhớ riêng biệl cho chương trình và dữ liệu. Như đã nói ở Irên, cá bộ ihớ chương trình và dữ liệu có sẵn ở trên chip, tuy nhiên dung lượiig củ:a íác bộ nhớ trên chip là hạn chế. K hi thiết kế các ứng dụng đòi hỏi bộ nh(ớ ớn người ta có thể dùng bộ nhớ ngoài với dung lưíỊrng lên tới 64 kbyte chiobộ nhớ chương trình và cho 64 kbyte bộ nhớ dữ liệu (hình 2.7). OxFFFF 0) n 't tò -A- CODE XDATA OxFF PDATA IDATA DATA 0x0000 Hình 2.7. Tổ chức bộ nhâ của AT89S52. 28 BDATA l. REG 0X30 0x1 F 1. Bộ nhớ chương t r i n h AT89vS52 có 8 kbyte Flash ROM ircn chip, khi chân /E A (chân sô' 31) đươc đặt ở mức logic cao (+5V), bô vi điều khiển sẽ thực hiện chương trình trong bộ nhớ này bát dáu từ địa chỉ OOOOH. Số lần lập trìiih (ghi) cho bộ nhớ này là khoáiìg 1000 lần. K hi chân /E A được đặt ở mức logic (hấp, bộ vi điều khiển sẽ thực hiện chương trình ở bộ nhớ chương irình ngoài (EPPOM ngoài), tuy nhiên đc có dược điều này thi cần phải có một mạch phối ghép AT89S52 với Flash/EPROM như trong hình 2.8. V i mạch chốt (La lch) sẽ tácli riêng Bus đa hợp địa chỉ và dữ liệu A D 0 -A D 7 trôn port 0 của 8951, tuỳ theo dung lượng của EPROM sẽ có sô' đường địa chỉ tương ứng được dùng. Tín hiệu điểu khiển đoc ROM là tín hiệu /PSEN. Flash AT89S52 EPROM A 158 P2 ALE PO í> Latch A7.0 c > A7;0 í> PSEN# A15;8 D7:0 OE Hình 2.8. Sơ đồ ghép nối AT89S52 vài EPROM. 2. lìô nhớ dữ liê u AT89S52 có 256 byte R A M nội (bảng 2.7) được phân chia như sau: * Các bank í hanh ghi có địa chỉ ĩừOOỈi ổến 1FH. 32 byte thấp của bộ nhớ nội được dành cho các bank thanh ghi. Bộ lộnh 8951 hỗ trợ 8 thanh ghi có tên là RO - R7 và theo mặc định sau khi reset hô thống, các thanh ghi này có các địa chỉ từ OOH - 07H. Các lệnh dùng các thanh ghi RO - R7 sẽ ngắn hơn và nhanh hơn so với các iệnh có chức năng lương ứng dùng kiểu địa chỉ trực tiếp. Các dữ liệu được dùng thường xuyên nên sử dụng một trong các thanh ghi này. Do có 4 bank thanh ghi nên tại một thời điểm chỉ có m ột bank thanh ghi được truy xuất bời các thanh ghi RO - R7, để chuyển đổi việc truy xuất các bank thanh ghi ta phải thay đổi các bit chọn bank trong thanh ghi trạng thái. 29 * RAM dịa chỉ Ììoá từng bit có dịa chỉ từ 20H cíến 2FỈÌ. AT89S52 có 128 bit có chứa các byte dịnh địa chi theo b it từ 2()H đến 2FH. Ý tưởng truy xuất từng bit bằng phần mém là các đặc tính mạnh của các bộ vi điéu khiển nói chung. Các bit có thể đưực đặt, xóa (A N D , O R )... với 1 lệnh đơn. * RAM da dụng íừSOH dến FFỈỈ. * Các llianh íịI iì chức năng đặc hiệt íừHOIỈ dến F F IỈ. B Ả N G 2 .7 . B Ộ N H Ớ D Ữ L IỆ U T R Ê N C H IP C Ủ A A T 8 9 S 5 2 FF 7F Vùng RAM đa dụng 30 2F 7F 7E 7D 7C 7B 7A 79 78 2E 77 76 75 74 73 72 71 70 2D 6F 6E 6D 6C 6B 6A 69 68 2C 67 66 65 64 63 62 61 60 2B 5F 5E 5D 5C 5B 5A 59 58 2A 57 56 55 54 53 52 51 50 29 4F 4E 4D 4C 4B 4A 49 48 28 47 46 45 44 43 42 41 40 27 3F 3E 3D 3C 3B 3A 39 38 26 37 36 35 34 33 32 31 30 25 2F 2E 2D 2C 2B 2A 29 28 24 27 26 25 24 23 22 21 20 23 1F 1E 1D 1C 1B 1A 19 18 22 17 16 15 14 13 12 11 21 OF OE OD 10 oc OB OA 09 08 20 07 06 05 04 03 02 01 00 1F Bank 3 18 17 Bank 2 10 OF Bank 1 08 07 Bank thanh ghi 0 00 (mậc định cho RO - R7) .^0 80 Port 0 8051 EA ALE Port 2 RD WR D0-D7 74HC373 1 O D -y A0-A7 RAM G A8-A15 OE WE Hinh 2.9. Sd đo ghép nòi 8051 với RAM ngoài. 31 Bộ Iihớ dử ỉiôu ngoài là bộ nìỉở RAM (!ưv;c đọc ỉioặc ghi bởi tín hiệu /R D và A \ ’R Các RAM có ihc ^iao tiép NỚi .\ Í'89S52 urưng tự cách thức như EPROM ngoai trừ chđn /Rl ) cùa AT8‘)S32 nối với chân /O E (O utput Enable) cua RAM \à chân /\VR cua A'r89S32 nối với chân /W E của R A M (hình 2.9). Nếu có nhiều vi inạch R O M và R A M cùng dược ghép nối với AT89S52 í hì có ihể dùng thêm vi mach giải mã 74LS138 (hình 2.10). Như đã nói ở trên, bộ nhớ cliưcmg trình và bộ nhớ dữ liệu của AT89S52 có thể trùng địa chỉ, điều này cho phép người thiết kế có ihể xây dựng một bộ nhớ dữ liệu chứa chương trình thực Ihi (bộ nhớ dữ liệu đọc như bộ nhớ chương trình) như hình 2.11. Hỉnh 2.11. Bộ nhố dữ liệu dọc như bộ nhó chương trình. 2.2.4. Các thanh ghi chức năng 1. T ừ t r a n g t h á i chương t r ì n h (PSW: ProỊịram Status Word) Từ trạng thái chương trình ở dịa chỉ DOH được tóm tát như sau: Bit Ký hiệu Dja chỉ (bit) Mo ta PSW.7 CY D7H Cary Flag PSW .6 AC D6H Auxiliary Cary Flag PSW .5 FO D5H Fjag 0 PSW .4 RSI 04H Register Bank Select 1 PSW.3 RSO D3H Register Bank Select 0 00 = Bank 0, address 00H-; 07H 01 = Bank 1: address 08H-^0FH 10 = Bank 2, address 10H -17H 11 = Bank 3. address 18H^ 1FH D2H Overlow Flag PSW.1 D1H Reserved PSW .0 DOH Even Parity Fiag PSW .2 32 ov B A N G 2 .8 . Đ ỊA C H Ỉ VÀ GIÁ TRỊ KHI R E S E T C Ủ A C Á C T H A N H G H I CHỬC NẲNG C Ù A A T 8 9 S 5 2 0F8H OFOH OFFH B oooooooo 0F7H 0E8H OEOH OEFH ACC oooooooo 0E7H ODFH ODBH PSW ODOH 00000000 0C 8H 00000000 7 2C O N 007 H T2MOD xxxxxxoo RCAP2L RCAP2H 00000000 00000000 TH2 TL2 0000000Ũ OCFH 00000000 OCOH 0C 7H IP 0B8H xxoooooo OBOH 1 11 11111 OBFH P3 0A8H IE 0X000000 OAOH 11111111 98H 00000000 90 H PI 11111111 0B7H OAFH PZ SC O N TC O N 88H 00000000 eon PO 11111111 AUXRI W DTRST xxxxxxxx xxxxxxxo 0A7H SB U F 9 FH xxxxxxxx 97H TM OD TLO TLl 00000000 00000000 00000000 SP 00000111 DPOL 00000000 DPOH oooooooo THI THO oooooooo 00000000 O P IL DPIH 00000000 00000000 AUXR 8 FH xxxooxxo PC O N oxxxoooo 87H Chức năng từng hit của từ trạng thái chưmig trình: - Cờ nhớ CY (Carry Flag): Cờ nhớ có lác dụng kép. Thông ỉhườiig nó (lược dùng cho các lệnh toán học: c = 1 nếu phép toán cộng có sự tràn hoặc phép trừ có mượn và ngược lại c = 0 nếu phép toán cộng không tràn và phép trừ không có mượn. - Cờ nhớ phụ A C (A u x ilia ry Carry Flag): K hi cộng những giá trị BCD (Binary Code Decim al), cờ nhớ phụ AC được thiết iập nếu kết quả 4 bit íhấp nằm trong phạm vi điểu khiển OAH - OFH. Ngược lạ i AC = 0. - Cờ 0 (Flag 0): Cờ 0 (F0) là 1 bit cờ đa dụng dùng cho các ứiig dụng cùa người đùng. 5VK)k ƯDA 33 - Bit chọn bank lhanh ghi triỉV xuát RSU, R S l: R Sl v à RSO quyô't địnli d ãy ihianh ịji! líc h circ C h ú n g đ ư ợ c xó a sau khi r e s e t hệ thống V?1 được tliay điổi bừi pháii incm khi c ầ n ihìếl. Tùy theo R S l, RSO - 00, 01, lCí, ] 1 sẽ dược chọn Bank tích cực tương ứng là BankO, B ankl, Bank2, Bamk3. RS1 - Cờ tràn ov RSO BANK (Over Flag): Cờ tràn được thiết lập sau một hoat động cộng hoạc trừ nếu có sự tràn toán học. K h i các sô có dấu đươc cộng hoạc trừ với nhau, phần mểm có ihể kiểm tra bii này để xác đinh xem kếl quả có nằm irong tầm xác định không. Khi các số khống có dấu được cộng, b it o v ttược bỏ qua. Các kết quả ỉớn hơn +127 hoãc nhỏ hơn -128 thì bit o v = 1. - Bit Parity (P): B it tự động được thiết lập liav xóa (V mỗi chu kỳ máy để lập bit chẵn lẻ (P arity) chán với thanh ghi A. Sư đếm các bit 1 trong ihanh glìi A cộng với b it chẩn lỏ lu6n luôn chẵn. V í clụ A chứa 10101 lO lB thì bit p đạt lên 1 để tổng số bit 1 trong A và p là chẫn. Bit chẩn lẻ thường được (lùng trong sư kếi hợp với những thủ lục của Port nối liế p đe tạo rẽ Int chấn lẻ ưước khi plìấl bit chẵn lẻ sau kh i thu. hoặc- kiểin Ua 2. T h a n h g h i B Thanh ghi B ở dịa chì Ĩ-OỈỈ được dùng cùng với thanh ghi A trong các phép toán nhân chia. Lệnh MUL. A B sẽ iihẠn những giá trị không dấu 8 bit trong hai thanh ghi A và B, rồi trá vé kếí quá 16 b ìi trong A (byte cao) và B (byte thấp). Lênh D IV A B láy A chia B, kêl quả phần nguyên của phép chia đậi vào A, phần dư đật vào B. Thanh ghi B cũng có ĩhê dược dùng như một thanh ghi trung giíin, ihanh ghi này được định địa chỉ theo bit lừ FOH đến f'7FỈ. 34 SVIOK ƯGB 3. Con trỏ n g á n xếp SP (Stack Pointer) Con trỏ ngăn xếp là m ộl thanh ghi 8 bii ỏ địa chỉ 81H dùng dể chứa địa chỉ của đỉnh ngăn xcp. Các lệiilì thao lác vứi ngăn xếp bao gồm các lệnh cấl dữ liệu vào ngăn xếp (PUSỈI) và lấy dữ liệu ra khỏi ngăn xếp (POP). Lệnh cất dữ liệu vào ngăn xếp sẽ iàm tãng SP và lệnh lấy ra khỏi ngăn xếp sẽ làm giảm SP. Ngăn xếp của AT89S52 là 128 byte đầu của R A M nội. 4. Con trỏ dữ liê u D P T R ( D a t a Pointer) Con :rỏ dữ liệu ( D I^ R ) được dùng dé’ truy x L iâ ì bộ nhớ ngoài. Con trỏ dữ liệu ỉà một thanh ghi 16 bit ở địa chi 82H (DPL: byte thấp) và 83H (DPH: byte cao). \ 'í dụ: 03 lộnh sau sẽ ghi 1211 vào RAM ngoài ở địa chí 1200H: MOV A , - Xem thêm -