intTypePromotion=1

Bài giảng lý thuyết vi xử lý - Chương 3: Lập trình hợp ngữ cho 8051(tiếp theo)

Chia sẻ: Tran Van Hieu | Ngày: | Loại File: PDF | Số trang:69

0
224
lượt xem
76
download

Bài giảng lý thuyết vi xử lý - Chương 3: Lập trình hợp ngữ cho 8051(tiếp theo)

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Tham khảo bài thuyết trình 'bài giảng lý thuyết vi xử lý - chương 3: lập trình hợp ngữ cho 8051(tiếp theo)', kỹ thuật - công nghệ, điện - điện tử phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả

Chủ đề:
Lưu

Nội dung Text: Bài giảng lý thuyết vi xử lý - Chương 3: Lập trình hợp ngữ cho 8051(tiếp theo)

  1. Ð I H C CÔNG NGHI P TP. H CHÍ MINH KHOA CÔNG NGH ðI N T B MÔN ðI N T CÔNG NGHI P BÀI GI NG LÝ THUY T VI X LÝ Giáo viên: PH M QUANG TRÍ TP. H CHÍ MINH THÁNG 09-2009 09-
  2. Ð I H C CÔNG NGHI P TP. H CHÍ MINH KHOA CÔNG NGH ðI N T B MÔN ðI N T CÔNG NGHI P CHƯƠNG 3 L P TRÌNH H P NG CHO 8051
  3. L P TRÌNH H P NG CHO 8051 GI GI I THI U CHUNG Ngôn Ngôn ng l p trình c p th p. p. Ngôn ng l p trình c p cao Ngôn Ngôn ng l p trình c p cao. cao. (High- (High-level programming language) Ngôn ng l p trình c p th p (Low-level programming language)
  4. L P TRÌNH H P NG CHO 8051 GI GI I THI U CHUNG Ngôn Ngôn ng l p trình c p th p: p: Ngôn ng l p trình c p cao Ngôn Ngôn ng máy: máy: (High- (High-level programming language) Ngôn Ngôn ng nh phân t nhiên mà CPU có th nh n bi t và th c hi n. n. M i câu l nh ñư c bi u di n b ng chu i các con s 0 và 1. H p ng (Assembly language) Khó Khó ñ c hi u và khó s d ng ñ i v i con ngư i. i. Ngôn ng l p trình c p th p H p ng : (Low-level programming language) Thay Thay th các mã nh phân b ng các mã g i nh giúp d nh và d l p trình hơn so v i Ngôn ng máy ngôn ng máy. máy. (Machine language) M i câu l nh tương ng v i m t ch l nh mà CPU có th th c hi n ñư c. c. ðư ðư c thi t k cho các kh năng và t p l nh c th c a m t lo i CPU nh t ñ nh. nh. So v i ngôn ng c p cao: chương trình vi t So cao: khó và nhi u l nh hơn. hơn. So v i ngôn ng c p cao: câu l nh ng n So cao: g n, chương trình ho t ñ ng t c ñ nhanh hơn, hi u su t t t và chi m ít b nh .
  5. L P TRÌNH H P NG CHO 8051 GI GI I THI U CHUNG Ngôn Ngôn ng l p trình c p cao: cao: Ngôn ng l p trình c p cao S d ng các t và phát bi u g n gi ng v i ngôn (High- (High-level programming language) ng con ngư i. i. M i câu l nh tương ng v i nhi u ch l nh trong ngôn ng c p th p. p. So v i ngôn ng c p th p: chương trình vi t d , So p: H p ng nhanh và ít l nh hơn. hơn. (Assembly language) So v i ngôn ng c p th p: câu l nh dài, chương So p: trình ho t ñ ng t c ñ ch m hơn, hi u su t Ngôn ng l p trình c p th p không cao và chi m nhi u b nh . nh (Low-level programming language) Ngôn ng máy (Machine language)
  6. L P TRÌNH H P NG CHO 8051 GI GI I THI U CHUNG Ngôn ng l p trình c p cao (High- (High-level programming language) CPU th c thi chương trình Các công ño n ñ th c thi m t chương trình
  7. L P TRÌNH H P NG CHO 8051 GI GI I THI U CHUNG H p ng (Assembly language) Ngôn Ngôn ng l p trình c p th p (Low- (Low-level programming language) CPU th c thi chương trình Các công ño n ñ th c thi m t chương trình
  8. L P TRÌNH H P NG CHO 8051 GI GI I THI U CHUNG Ngôn ng l p trình c p cao (High- (High-level programming language) H p ng (Assembly language) Ngôn Ngôn ng l p trình c p th p (Low- (Low-level programming language) Ngôn ng máy (Machine language) CPU th c thi chương trình Các công ño n ñ th c thi m t chương trình
  9. L P TRÌNH H P NG CHO 8051 KHUÔNG KHUÔNG D NG C A CHƯƠNG TRÌNH Khuông Khuông d ng c a m t dòng l nh: nh: [Label:] Mnemonic [Operand][,Operand][,Operand] [Comment] Label: Operand][,Operand][,Operand] Comment] Nhãn (Label): Bi u th ñ a ch c a dòng l nh (ho c d li u) theo sau, Nhãn ñư c dùng trong trư ng toán h ng c a l nh r nhánh. nhánh. Ví d : Ví MAIN: MAIN: MOV A, #20H 20H LOOP: ADD A, #01H 01H CJNE A, #35H, LOOP 35H, SJMP $ Lưu Lưu ý v nhãn: nhãn: Do ngư i l p trình t ñ t (không ñư c trùng v i t khoá, mã g i nh , Do ch d n, toán t ho c ký hi u ti n ñ nh nghĩa). nghĩa). B t ñ u b ng ký t ch , d u ch m h i (?), d u g ch dư i (_). (_). Dài Dài t i ña 31 ký t . K t thúc b ng d u hai ch m (:). Ký hi u $ dùng ñ tham chi u ñ n v trí hi n t i c a dòng l nh. Ký nh.
  10. L P TRÌNH H P NG CHO 8051 KHUÔNG KHUÔNG D NG C A CHƯƠNG TRÌNH Khuông Khuông d ng c a m t dòng l nh: nh: [Label:] Mnemonic [Operand][,Operand][,Operand] [Comment] Label: Operand][,Operand][,Operand] Comment] • Mã g i nh (Mnemonic): Bi u di n các l nh ho c các ch d n c a chương trình d ch h p ng . Ví d : Ví 0000H 0000H ORG PAR 100 EQU BBB ACALL A, #35H, LOOP 35H, CJNE P3.1, TEST_1 TEST_1 JNB
  11. L P TRÌNH H P NG CHO 8051 KHUÔNG KHUÔNG D NG C A CHƯƠNG TRÌNH Khuông Khuông d ng c a m t dòng l nh: nh: [Label:] Mnemonic [Operand][,Operand][,Operand] [Comment] Label: Operand][,Operand][,Operand] Comment] • Toán h ng (Operand): Ch a ñ a ch ho c d li u mà l nh s s d ng. ng. S lư ng toán h ng trong m t dòng l nh ph thu c vào t ng dòng l nh. nh. Ví d : Ví RET – không toán h ng, INC – m t toán h ng, A ADD – hai toán h ng, A, R0 CJNE A, #12H, ABC – ba toán h ng 12H Lưu Lưu ý v toán h ng: ng: N u l nh có nhi u toán h ng thì các toán h ng này cách nhau b ng d u ph y (,). (,). Trong Trong các l nh có 2 toán h ng thì toán h ng ñ u tiên ñư c g i là toán h ng ñích (Destination), toán h ng th hai ñư c g i là toán h ng ngu n (Source).
  12. L P TRÌNH H P NG CHO 8051 KHUÔNG KHUÔNG D NG C A CHƯƠNG TRÌNH Khuông Khuông d ng c a m t dòng l nh: nh: [Label:] Mnemonic [Operand][,Operand][,Operand] [Comment] Label: Operand][,Operand][,Operand] Comment] • Chú thích (Comment): Làm cho rõ nghĩa cho chương trình. trình. Ví d : Ví SJMP AAA ; Lenh nhay khong dieu kien den AAA. AAA. ACALL BBB ; Lenh goi chuong trinh con BBB. BBB. CJNE A, #35H, LOOP ; Lenh so sanh. 35H, sanh. JNB P3.1, TEST_1 TEST_1 ; Lenh kiem tra gia tri bit P3.1. Lưu Lưu ý v chú thích: thích: B t ñ u b ng d u ch m ph y (;). Các Các chú thích ph i n m trên cùng m t dòng. dòng. Các Các chú thích n u n m trên nhi u dòng thì m i dòng cũng ph i b t ñ u b ng d u ch m ph y (;).
  13. L P TRÌNH H P NG CHO 8051 CÁC CÁC QUI LU T CHO VI C ðÁNH GIÁ BI U TH C Cách Cách bi u di n các giá tr và h ng s : • Dùng m t cách tư ng minh: minh: Ví d : Ví MOV 20H, E0H 20H, • Dùng ký hi u ti n ñ nh nghĩa: nghĩa: Ví d : Ví MOV 20H, A 20H, SETB ACC.7 • Dùng m t bi u th c: c: Ví d : Ví MOV A, #25 MOD 7 MOV A, #HIGH(1234H) #HIGH(1234H) MOV A, #10 + 10H 10H
  14. L P TRÌNH H P NG CHO 8051 CÁC CÁC QUI LU T CHO VI C ðÁNH GIÁ BI U TH C Cơ s cho các h ng s : Cơ • S nh phân (Binary): ph i kèm theo ký hi u B (Binary): Ví d : Ví MOV A, #10011101B • S bát phân (Octal): ph i kèm theo ký hi u O ho c Q (Octal): Ví d : Ví MOV A, #235O MOV A, #235Q • S th p phân (Decimal): ph i kèm theo ký hi u D ho c không có (Decimal): Ví d : Ví MOV A, #157D MOV A, #157 • S th p l c phân (Hexa Decimal): ph i kèm theo ký hi u H Decimal): Ví d : Ví MOV A, #9DH
  15. L P TRÌNH H P NG CHO 8051 CÁC CÁC QUI LU T CHO VI C ðÁNH GIÁ BI U TH C Cơ s cho các h ng s : Cơ • Lu ý: Các giá tr t c th i n u có thành ph n ch (A, B, C, …, F) ñ ng ñ u thì c n ph i thêm s 0 vào trư c thành ph n ch và sau ký hi u “#”. “#”. Ví d : Ví MOV A, #BH ;Thi u s 0 → gây l i khi biên d ch. MOV A, #0BH ;Thêm s 0 → ñúng. MOV A, #F9H ;Thi u s 0 → gây l i khi biên d ch. MOV A, #0F9H ;Thêm s 0 → ñúng.
  16. L P TRÌNH H P NG CHO 8051 CÁC CÁC QUI LU T CHO VI C ðÁNH GIÁ BI U TH C Các Các chu i ký t : • Chu i ký t ñư c ñ t trong d u nháy ñơn (‘…‘). (‘…‘). • Chu i có 1 ký t (8 bit) ho c 2 ký t (16 bit) ñư c s d ng làm toán h ng. ng. • Các ký t ñư c bi n ñ i thành mã nh phân (chu n ASCII) khi th c hi n. n. Ví d : Ví CJNE A, # ’b’, LOOP CJNE A, #62H, LOOP 62H ⇔ SUBB A, # ’B’ SUBB A, #42H ⇔ MOV A, # ‘2’ MOV A, #32H 32H ⇔ MOV DPTR, # ‘AB’ MOV DPTR, #4142H 4142H ⇔ MOV A, # ‘AB’ Không h p l ⇔
  17. L P TRÌNH H P NG CHO 8051 CÁC CÁC QUI LU T CHO VI C ðÁNH GIÁ BI U TH C Các Các toán t s h c: c: • C ng + • Tr - • Nhân * • Chia (Phép chia l y thương s ) / • Modulo (Phép chia l y s dư) MOD Ví d : Ví MOV A, #10 + 10H 10H MOV A, #1AH ⇔ MOV A, #10H - 10 10H MOV A, #06H 06H ⇔ MOV A, #20 * 2 MOV A, #28H 28H ⇔ MOV A, #25 / 7 MOV A, #03H 03H ⇔ MOV A, #25 MOD 7 MOV A, #04H 04H ⇔
  18. L P TRÌNH H P NG CHO 8051 CÁC CÁC QUI LU T CHO VI C ðÁNH GIÁ BI U TH C Các Các toán t logic: logic: • Các toán t g m: AND, OR, XOR và NOT m: • Các thao tác ñư c th c hi n trên t ng bit c a toán h ng. ng. Ví d : Ví MOV A, # ‘9’ AND 0FH MOV A, #09H 09H ⇔ MOV A, # ‘9’ OR 0FH MOV A, #3FH ⇔ MOV A, # ‘9’ XOR 0FH MOV A, #36H 36H ⇔ MOV A, #NOT 5CH MOV A, #0A3H ⇔ MOV A, #NOT 3 MOV A, #0FCH ⇔
  19. L P TRÌNH H P NG CHO 8051 CÁC CÁC QUI LU T CHO VI C ðÁNH GIÁ BI U TH C Các Các toán t ñ c bi t: t: • D ch ph i (Thêm bit 0 vào bên trái sau khi d ch) SHR • D ch trái (Thêm bit 0 vào bên ph i sau khi d ch) SHL • L y byte cao HIGH • L y byte th p LOW • ðư c ñánh giá trư c () Ví d : Ví MOV A, #08H SHL 1 08H MOV A, #10H 10H ⇔ MOV A, #08H SHR 1 08H MOV A, #04H 04H ⇔ MOV A, #HIGH 1234H 1234H MOV A, #12H 12H ⇔ MOV A, #LOW 1234H 1234H MOV A, #34H 34H ⇔
  20. L P TRÌNH H P NG CHO 8051 CÁC CÁC QUI LU T CHO VI C ðÁNH GIÁ BI U TH C Các Các toán t quan h : • K t qu tr v là 00H (quan h SAI) ho c FFH (quan h ðÚNG). 00H SAI ðÚNG • B ng EQ = • Không b ng NE • Nh hơn LT < • Nh hơn ho c b ng LE • L n hơn ho c b ng GE >= Ví d : Ví MOV A, #5 = 5 MOV A, #5 NE 4 MOV A, # ’X’ LT ‘Z’ MOV A, # ’X’ >= ‘Z’ MOV A, #100 GE 50 Các l nh trên ñ u tr v k t qu ñúng nên s tương ñương v i l nh MOV A,#0FFH
ADSENSE
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2