Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 69 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
69
Dung lượng
676,3 KB
Nội dung
ÐẠI HỌC CÔNG NGHIỆP TP. HỒ CHÍ MINHÐẠI HỌC CÔNG NGHIỆP TP. HỒ CHÍ MINH KHOA CÔNG NGHỆ ðIỆN TỬKHOA CÔNG NGHỆ ðIỆN TỬ BỘ MÔN ðIỆN TỬ CÔNG NGHIỆPBỘ MÔN ðIỆN TỬ CÔNG NGHIỆP BÀIGIẢNGLÝ THUYẾTBÀI GIẢNGLÝTHUYẾT VI XỬ LÝVI XỬLÝ TP. HỒ CHÍ MINHTP. HỒ CHÍ MINH THÁNG 09THÁNG 09 20092009 VI XỬ LÝVI XỬLÝ GiáoGiáo viên: PHẠM QUANG TRÍviên: PHẠM QUANG TRÍ ÐẠI HỌC CÔNG NGHIỆP TP. HỒ CHÍ MINHÐẠI HỌC CÔNG NGHIỆP TP. HỒ CHÍ MINH KHOA CÔNG NGHỆ ðIỆN TỬKHOA CÔNG NGHỆ ðIỆN TỬ BỘ MÔN ðIỆN TỬ CÔNG NGHIỆPBỘ MÔN ðIỆN TỬ CÔNG NGHIỆP CHƯƠNG 3CHƯƠNG 3 LẬP TRÌNHHỢP NGỮLẬP TRÌNHHỢPNGỮ CHO 8051CHO 8051 NgônNgôn ngữngữ lậplập trìnhtrình cấpcấp thấpthấp NgônNgôn ngữngữ lậplập trìnhtrình cấpcấp caocao Ngôn ngữlậptrình cấp thấpNgôn ngữlậptrình cấp thấp (Low(Low level programming language)level programming language) LẬPTRÌNHHỢPNGỮCHO 8051 LẬPTRÌNHHỢPNGỮCHO 8051 GIỚI THIỆU CHUNGGIỚI THIỆU CHUNG Ngôn ngữlậptrình cấp caoNgôn ngữlậptrình cấp cao (High(High level programming language)level programming language) (Low(Low level programming language)level programming language) NgônNgôn ngữngữ lậplập trìnhtrình cấpcấp thấpthấp:: NgônNgôn ngữngữ máymáy:: NgônNgôn ngữngữ nhịnhị phânphân tựtự nhiênnhiên màmà CPUCPU cócó thểthể nhậnnhận biếtbiết vàvà thựcthực hiệnhiện MỗiMỗi câucâu lệnhlệnh ñượcñược biểubiểu diễndiễn bằngbằng chuỗichuỗi cáccác concon sốsố 00 vàvà 11 KhóKhó ñọcñọc hiểuhiểu vàvà khókhó sửsử dụngdụng ñốiñối vớivới concon ngườingười HợpHợp ngữngữ :: Ngôn ngữlậptrình cấp thấpNgôn ngữlậptrình cấp thấp (Low(Low level programming language)level programming language) LẬPTRÌNHHỢPNGỮCHO 8051 LẬPTRÌNHHỢPNGỮCHO 8051 GIỚI THIỆU CHUNGGIỚI THIỆU CHUNG Ngôn ngữlậptrình cấp caoNgôn ngữlậptrình cấp cao (High(High level programming language)level programming language) Hợp ngữHợp ngữ (Assembly language)(Assembly language) HợpHợp ngữngữ :: ThayThay thếthế cáccác mãmã nhịnhị phânphân bằngbằng cáccác mãmã gợigợi nhớnhớ giúpgiúp dễdễ nhớnhớ vàvà dễdễ lậplập trìnhtrình hơnhơn soso vớivới ngônngôn ngữngữ máymáy MỗiMỗi câucâu lệnhlệnh tươngtương ứngứng vớivới mộtmột chỉchỉ lệnhlệnh màmà CPUCPU cócó thểthể thựcthực hiệnhiện ñượcñược ðượcðược thiếtthiết kếkế chocho cáccác khảkhả năngnăng vàvà tậptập lệnhlệnh cụcụ thểthể củacủa mộtmột loạiloại CPUCPU nhấtnhất ñịnhñịnh SoSo vớivới ngônngôn ngữngữ cấpcấp caocao:: chươngchương trìnhtrình viếtviết khókhó vàvà nhiềunhiều lệnhlệnh hơnhơn SoSo vớivới ngônngôn ngữngữ cấpcấp caocao:: câucâu lệnhlệnh ngắnngắn gọn,gọn, chươngchương trìnhtrình hoạthoạt ñộngñộng tốctốc ñộñộ nhanhnhanh hơn,hơn, hiệuhiệu suấtsuất tốttốt vàvà chiếmchiếm ítít bộbộ nhớnhớ (Low(Low level programming language)level programming language) Ngôn ngữ máyNgôn ngữ máy (Machine language)(Machine language) NgônNgôn ngữngữ lậplập trìnhtrình cấpcấp caocao:: SửSử dụngdụng cáccác từtừ vàvà phátphát biểubiểu gầngần giốnggiống vớivới ngônngôn ngữngữ concon ngườingười MỗiMỗi câucâu lệnhlệnh tươngtương ứngứng vớivới nhiềunhiều chỉchỉ lệnhlệnh trongtrong ngônngôn ngữngữ cấpcấp thấpthấp SoSo vớivới ngônngôn ngữngữ cấpcấp thấpthấp:: chươngchương trìnhtrình viếtviết dễ,dễ, nhanhnhanh vàvà ítít lệnhlệnh hơnhơn SoSo vớivới ngônngôn ngữngữ cấpcấp thấpthấp:: câucâu lệnhlệnh dài,dài, chươngchương trìnhtrình hoạthoạt ñộngñộng tốctốc ñộñộ chậmchậm hơn,hơn, hiệuhiệu suấtsuất khôngkhông caocao vàvà chiếmchiếm nhiềunhiều bộbộ nhớnhớ Ngôn ngữlậptrình cấp thấpNgôn ngữlậptrình cấp thấp (Low(Low level programming language)level programming language) LẬPTRÌNHHỢPNGỮCHO 8051 LẬPTRÌNHHỢPNGỮCHO 8051 GIỚI THIỆU CHUNGGIỚI THIỆU CHUNG Ngôn ngữlậptrình cấp caoNgôn ngữlậptrình cấp cao (High(High level programming language)level programming language) Hợp ngữHợp ngữ (Assembly language)(Assembly language) khôngkhông caocao vàvà chiếmchiếm nhiềunhiều bộbộ nhớnhớ (Low(Low level programming language)level programming language) Ngôn ngữ máyNgôn ngữ máy (Machine language)(Machine language) LẬPTRÌNHHỢPNGỮCHO 8051 LẬPTRÌNHHỢPNGỮCHO 8051 GIỚI THIỆU CHUNGGIỚI THIỆU CHUNG Ngôn ngữlậptrình cấp caoNgôn ngữlậptrình cấp cao (High(High level programming language)level programming language) CPU thực thi chương trìnhCPU thực thi chươngtrình Các công ñoạn ñể thực thi một chương trìnhCác công ñoạn ñể thực thi một chươngtrình Ngôn ngữlậptrình cấp thấpNgôn ngữlậptrình cấp thấp LẬPTRÌNHHỢPNGỮCHO 8051 LẬP TRÌNHHỢPNGỮ CHO 8051 GIỚI THIỆU CHUNGGIỚI THIỆU CHUNG Hợp ngữHợp ngữ (Assembly language)(Assembly language) Ngôn ngữlậptrình cấp thấpNgôn ngữlậptrình cấp thấp (Low(Low level programming language)level programming language) CPU thực thi chương trìnhCPU thực thi chươngtrình Các công ñoạn ñể thực thi một chương trìnhCác công ñoạn ñể thực thi một chươngtrình Ngôn ngữlậptrình cấp thấpNgôn ngữlậptrình cấp thấp LẬP TRÌNHHỢPNGỮ CHO 8051 LẬPTRÌNHHỢPNGỮCHO 8051 GIỚI THIỆU CHUNGGIỚI THIỆU CHUNG Ngôn ngữlậptrình cấp caoNgôn ngữlậptrình cấp cao (High(High level programming language)level programming language) Hợp ngữHợp ngữ (Assembly language)(Assembly language) Ngôn ngữlậptrình cấp thấpNgôn ngữlậptrình cấp thấp (Low(Low level programming language)level programming language) Ngôn ngữ máyNgôn ngữ máy (Machine language)(Machine language) CPU thực thi chương trìnhCPU thực thi chươngtrình Các công ñoạn ñể thực thi một chương trìnhCác công ñoạn ñể thực thi một chươngtrình KhuôngKhuông dạngdạng củacủa mộtmột dòngdòng lệnhlệnh:: [[LabelLabel::]] MnemonicMnemonic [[OperandOperand][][,Operand,Operand][][,Operand,Operand]] [[CommentComment]] NhãnNhãn (Label)(Label):: BiểuBiểu thịthị ñịañịa chỉchỉ củacủa dòngdòng lệnhlệnh ((hoặchoặc dữdữ liệuliệu)) theotheo sau,sau, ñượcñược dùngdùng trongtrong trườngtrường toántoán hạnghạng củacủa lệnhlệnh rẽrẽ nhánhnhánh VíVí dụdụ:: MAINMAIN:: MOVMOV A,A, ##2020HH LOOPLOOP :: LẬPTRÌNHHỢPNGỮCHO 8051 LẬPTRÌNHHỢPNGỮCHO 8051 KHUÔNG DẠNG CỦA CHƯƠNG TRÌNHKHUÔNG DẠNG CỦA CHƯƠNGTRÌNH LOOPLOOP :: ADDADD A,A, ##0101HH CJNECJNE A,A, ##3535H,H, LOOPLOOP SJMPSJMP $$ LưuLưu ýý vềvề nhãnnhãn:: DoDo ngườingười lậplập trìnhtrình tựtự ñặtñặt (không(không ñượcñược trùngtrùng vớivới từtừ khoá,khoá, mãmã gợigợi nhớ,nhớ, chỉchỉ dẫn,dẫn, toántoán tửtử hoặchoặc kýký hiệuhiệu tiềntiền ñịnhñịnh nghĩa)nghĩa) BắtBắt ñầuñầu bằngbằng kýký tựtự chữ,chữ, dấudấu chấmchấm hỏihỏi (?),(?), dấudấu gạchgạch dướidưới (_)(_) DàiDài tốitối ñaña 3131 kýký tựtự KếtKết thúcthúc bằngbằng dấudấu haihai chấmchấm ((::)) KýKý hiệuhiệu $$ dùngdùng ñểñể thamtham chiếuchiếu ñếnñến vịvị trítrí hiệnhiện tạitại củacủa dòngdòng lệnhlệnh KhuôngKhuông dạngdạng củacủa mộtmột dòngdòng lệnhlệnh:: [[LabelLabel::]] MnemonicMnemonic [[OperandOperand][][,Operand,Operand][][,Operand,Operand]] [[CommentComment]] •• MãMã gợigợi nhớnhớ (Mnemonic)(Mnemonic):: BiểuBiểu diễndiễn cáccác lệnhlệnh hoặchoặc cáccác chỉchỉ dẫndẫn củacủa chươngchương trìnhtrình dịchdịch hợphợp ngữngữ VíVí dụdụ:: ORGORG 00000000HH PARPAR EQUEQU 100100 LẬPTRÌNHHỢPNGỮCHO 8051 LẬPTRÌNHHỢPNGỮCHO 8051 KHUÔNG DẠNG CỦA CHƯƠNG TRÌNHKHUÔNG DẠNG CỦA CHƯƠNGTRÌNH ACALLACALL BBBBBB CJNECJNE A,A, ##3535H,H, LOOPLOOP JNBJNB PP33 11,, TEST_TEST_11 [...]... L P TRÌNH H P NG CHO 8051 C U TRÚC CHƯƠNGTRÌNH Các ký hi u thư ng dùng chovi c l p lưu ñ : • Kh i quy t ñ nh (so sánh, ki m tra) tra) • ðư ng ñi c a chươngtrìnhtrình • H p x lýlý • Kh i xu t / nh p p • B t ñ u / K t thúc chươngtrìnhtrình • K t n i qua trang chươngtrìnhtrình • X lý ti n ñ nh nghĩa (chương trình con) con) L P TRÌNH H P NG CHO 8051 C U TRÚC CHƯƠNGTRÌNH Ưu ñi m c a l p trình. .. ho t ñ ng, thu n ti n chovi c g r i i Các c u trúc ñã ñư c chu n hóa hóa Giúp chovi c xây d ng các chươngtrình con ñư c thu n ti n n M i chươngtrình ñ u có th ñư c vi t b ng cách s d ng ba c u trúc trúc Các c u trúc giúp ta d dàng mô t b ng lưu ñ , gi n ñ cú pháp, gi mã, … • Tăng năng su t c a ngư i vi t l p trình do chươngtrình ñư c vi t nhanh hơn hơn Khuy t ñi m c a l p trình có c u trúc: trúc:... - N i dung thì: 200H 02H 200H – 02H 201H – 00H 201H 00H 202H – 00H 202H 00H 204H 12H 204H – 12H 205H – 34H 205H 34H 206H – 00H 206H 00H 208H 42H 208H – 42H 209H – 43H 209H 43H 203H – 41H 203H 41H 207H – 02H 207H 02H L P TRÌNH H P NG CHO 8051 C U TRÚC CHƯƠNGTRÌNH Ý nghĩa c a vi c l p trình có c u trúc: trúc: • • • • Gi m ñ ph c t p c a vi c l p trình b ng h p ng C i thi n tính rõ ràng c a chương trình. .. trúc • Vi c th c thi chươngtrình ch m hơn và ñòi h i nhi u b nh hơn so v i chươngtrình tương ñương nhưng không có c u trúc trúc • Gi i quy t v n ñ g p khó khăn n u ch s d ng ba c u trúc ñ l p trìnhtrình • Các c u trúc l ng nhau cũng có khó khăn kèm theo theo L P TRÌNH H P NG CHO 8051 CÁC PHÁT BI U (STATEMENT) Công d ng c a c u trúc: trúc: Cung c p cho ta cơ ch cơ b n ñ th c hi n m t công vi c nào... a vi c l p trình b ng h p ng C i thi n tính rõ ràng c a chươngtrìnhtrình D dàng trong vi c g r i, s a ch a và thay ñ i chươngtrìnhtrình Giúp chovi c l p trình h p ng ñ t ñư c nh ng thu n l i r t l n n Các c u trúc thư ng dùng: dùng: • Các phát bi u (Statement) (Statement) • Các vòng l p (Loop) (Loop) • Các l a ch n (Choice) (Choice) Phương pháp th c hi n: n: • Lưu ñ (Flowchart) (Flowchart) • Gi... ISEG, BSEG, XSEG XSEG L P TRÌNH H P NG CHO 8051 CÁC CH D N TRONG L P TRÌNH Ch d n ORG: ORG: • Cú pháp: ORG expression pháp: (expression: (expression: bi u th c) • Thi t l p m t g c m i c a chươngtrìnhcho các phát bi u theo sau sau Ví d : ORG 100H 100H ; Thi t l p (PC) = 100H cho l nh theo sau 100H sau Ch d n END: END: • Cú pháp: END pháp: • Là phát bi u k t thúc c a chươngtrìnhngu n n • M i phát... ng th hai ñư c g i là toán h ng Destination) ngu n (Source) Source) L P TRÌNH H P NG CHO 8051 KHUÔNG D NG C A CHƯƠNGTRÌNH 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 chochươngtrình (Comment): trìnhVí d : SJMP AAA ; Lenh nhay khong dieu kien den AAA AAA ACALL BBB... nào ñó ñó Thư ng dùng chovi c gán m t giá tr cho m t bi n ho c g i m t chươngtrình con con Có th ch là m t phát bi u ho c m t nhóm các phát bi u u L P TRÌNH H P NG CHO 8051 CÁC PHÁT BI U (STATEMENT) Gi mã c a c u trúc: trúc: BEGIN [ Statement 1 ] [ Statement 2 ] [ Statement 3 ] ……………… ……………… [ Statement n ] END Trong ñó: ñó: Statement: Statement: Phát bi u L P TRÌNH H P NG CHO 8051 CÁC PHÁT BI U... P TRÌNH H P NG CHO 8051 CÁC QUI LU T CHOVI C ðÁNH GIÁ BI U TH C Các toán t • • • • • s h c: c: C ng Tr Nhân Chia Modulo + * / MOD (Phép chia l y thương s ) (Phép chia l y s dư) Ví d : MOV MOV MOV MOV MOV A, #10 + 10H 10H A, #10H - 10 10H A, #20 * 2 A, #25 / 7 A, #25 MOD 7 ⇔ ⇔ ⇔ ⇔ ⇔ MOV MOV MOV MOV MOV A, #1AH A, #06H 06H A, #28H 28H A, #03H 03H A, #04H 04H L P TRÌNH H P NG CHO 8051 CÁC QUI LU T CHO. .. (;) L P TRÌNH H P NG CHO 8051 CÁC QUI LU T CHOVI C ðÁNH GIÁ BI U TH C 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 : MOV 20H, E0H 20H, • Dùng ký hi u ti n ñ nh nghĩa: nghĩa: Ví d : MOV SETB 20H, A 20H, ACC ACC.7 • Dùng m t bi u th c: c: Ví d : MOV MOV MOV A, #25 MOD 7 A, #HIGH(1234H) #HIGH(1234H) A, #10 + 10H 10H L P TRÌNH H P NG CHO 8051 CÁC QUI LU T CHOVI C ðÁNH . NGHIỆP CHƯƠNG 3CHƯƠNG 3 LẬP TRÌNH HỢP NGỮLẬP TRÌNH HỢP NGỮ CHO 805 1CHO 8051 NgônNgôn ng ngữ lậplập trìnhtrình cấpcấp thấpthấp NgônNgôn ng ngữ lậplập trìnhtrình cấpcấp caocao Ngôn ngữ lập trình. ðIỆN TỬ CÔNG NGHIỆP BÀI GIẢNG LÝ THUYẾTBÀI GIẢNG LÝ THUYẾT VI XỬ L VI XỬ LÝ TP. HỒ CHÍ MINHTP. HỒ CHÍ MINH THÁNG 09THÁNG 09 20092009 VI XỬ L VI XỬ LÝ GiáoGiáo vi n: PHẠM QUANG TR vi n: PHẠM QUANG. HợpHợp ng ngữ :: Ngôn ngữ lập trình cấp thấpNgôn ngữ lập trình cấp thấp (Low(Low level programming language)level programming language) LẬP TRÌNH HỢP NGỮ CHO 8051 LẬP TRÌNH HỢP NGỮ CHO