intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

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

268
lượt xem
77
download
 
  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

CÓ THỂ BẠN MUỐN DOWNLOAD

 

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