Tài Liệu Hướng Dẫn Vi Điều Khiển

55 215 0
Tài Liệu Hướng Dẫn Vi Điều Khiển

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Vi điều khiển là một máy tính được tích hợp trên một chíp, nó thường được sử dụng để điều khiển các thiết bị điện tử. Vi điều khiển, thực chất, là một hệ thống bao gồm một vi xử lý có hiệu suất đủ dùng và giá thành thấp (khác với các bộ vi xử lý đa năng dùng trong máy tính) kết hợp với các khối ngoại vi như bộ nhớ, các mô đun vàora, các mô đun biến đổi số sang tương tự và tương tự sang số,... Ở máy tính thì các mô đun thường được xây dựng bởi các chíp và mạch ngoài.Vi điều khiển thường được dùng để xây dựng các hệ thống nhúng. Nó xuất hiện khá nhiều trong các dụng cụ điện tử, thiết bị điện, máy giặt, lò vi sóng, điện thoại, đầu đọc DVD, thiết bị đa phương tiện, dây chuyền tự động, v.v.

CHƯƠNG II: TẬP LỆNH 8951 I. NHÓM LỆNH DI CHUYỂN DỮ LiỆU: 1. Lệnh di chuyển dữ liệu trực tiếp: - Cú pháp: MOV <ĐÍCH>, <NGUỒN> Trong đó: . <ĐÍCH>: có thể là thanh ghi, địa chỉ ô nhớ trong vùng RAM nội Ồ ể . < N GU Ồ N>: có th ể là thanh ghi, địa chỉ ô nhớ trong vùng RAM nội hoặc #<giá trị> - Thựchiện: di chuyểnnội dung < NGUỒN > vào < ĐÍCH > Thực hiện: di chuyển nội dung NGUỒN vào ĐÍCH -Ví dụ: MOV A, 120 MOV B, #24 MOV 120,#10110010B MOV R3, A MOV P3,#3EH 20 2. Nhóm lệnh di chuyển dữ liệu gián tiếp: a. Liên quan đến vùng nhớ RAM nội : + Lệnh đọc bộ nhớ: - Cú pháp: MOV <ĐÍCH>, @Rp T đó T rong đó : . <ĐÍCH>: thanh ghi, ô nhớ Rp: là thanh ghi R 0 hoặcR 1 . Rp: là thanh ghi R 0 hoặc R 1 -Thực hiện: lấy nội dung ô nhớ trong vùng RAM nội có địa chỉ là nội dung thanh ghi Rp đặt vào <ĐÍCH> -Ví dụ: MOV 120,#47 MOV R1,#120 MOV A,@R1 ; sau khi thực hiện xong đoạn lệnh nội dung thanh ghi A chứa giá trị 47 21 + Lệnh ghi bộ nhớ: - Cú pháp: MOV @Rp, <NGUỒN> Trong đó: . <NGUỒN>: thanh ghi, ô nhớ hoặc #<giá trị> RlàhhhiR 0 h ặ R 1 . R p: là t h an h g hi R 0 h o ặ c R 1 -Thực hiện: đặt nội dung <NGUỒN> vào ô nhớ trong vùng RAM nội có địa chỉ là nội dung thanh ghi Rp. -Ví dụ 1: MOV R0,#100 MOV @R0, #0E3H ; sau khi thực hiện xong đoạn lệnh nội dung ô nhớ 100 chứa giá trị E3H -Ví dụ 2: MOV A, #49 MOV R 1,#127 MOV @R1, A ; (127) = 49 22 b. Liên quan đến vùng nhớ dữ liệu ngoài: + Lệnh đọc bộ nhớ: - Cú pháp: MOVX A, @DPTR -Thực hiện: lấy nội dung ô nhớ trong vùng dữ liệu ngoài có địa chỉ là nội dung thanh ghi DPTR đặt vào thanh ghi A dung thanh ghi DPTR đặt vào thanh ghi A -Ví dụ: MOV DPTR,#1000 MOVX A, @DPTR ; A Å (1000) + Lệnh đọc bộ nhớ: - Cú pháp: MOVX @DPTR, A -Thực hiện: lấy nội dung A đặt vào ô nhớ trong vùng dữ liệu ngoài có địa chỉ là ộid th h hiDPTR là n ội d ung th an h g hi DPTR . -Ví dụ: MOV DPTR # 1000 MOV DPTR , # 1000 23 MOV A, #4EH MOVX @DPTR, A ; ghi giá trị 4EH vào ô nhớ ngoài có địa chỉ 1000 c. Lệnh liên quan đến vùng nhớ chương trình (đọc mã lệnh): - Cú pháp: MOVC A,@A+DPTR Th hiệ lấ ộid ô hớ ùhớ h ìh óđị hỉ là ội - Th ực hiệ n: lấ y n ội d ung ô n hớ trong v ù ng n hớ c h ương tr ì n h c ó đị a c hỉ là n ội dung thanh ghi A + DPTR đặt vào thanh ghi A. -Ví dụ 1: MOV A,#2 MOV DPTR,#500 MOVC A,@A+DPTR ; A Å (502) -Ví dụ 2: MOV A, #4 MOV DPTR,#TABLE MOVC A, @A+DPT R TABLE: DB 12H, 4EH, 0C7H, 084H, 055H,…… 24 3. Nhóm lệnh liên quan đến ngăn xếp: + Ghi vào ngăn xếp: - Cú pháp: PUSH Thanh ghi/ địa chỉ -Thực hiện: cất nội dung thanh ghi hoặc ô nhớ vào đỉnh ngăn xếp Đ ă ế + Đ ọc ng ă n x ế p: - Cú pháp: POP Thanh ghi/ địa chỉ Thựchiện: lấynội dung ở đỉnh ngănxếp gán vào thanh ghi ô nhớ - Thực hiện: lấy nội dung ở đỉnh ngăn xếp gán vào thanh ghi , ô nhớ + dụ: MOV A,#100 MOV 100 # 3 EH MOV 100 , # 3 EH PUSH ACC PUSH 100 MOV A, #21H MOV 100, #40 POP 100 POP ACC 25 4. Lệnh trao đổi dữ liệu: - Cú pháp: XCH A, <NGUỒN> Trong đó: <NGUỒN> có thể là thanh ghi, ô nhớ hoặc @Rp -Thực hiện: trao đổi nội dung thanh ghi A và <NGUỒN> Ó Ệ Ố II. NH Ó M L Ệ NH S Ố HỌC 1. Lệnh cộng: a. Cộng không nhớ: - Cú pháp: ADD A, <NGUỒN> T đó <NGUỒN> ó thể là th h hi ô hớ #< iá t ị>h ặ @R T rong đó : <NGUỒN> c ó thể là th an h g hi , ô n hớ , #< g iá t r ị> h o ặ c @R p -Thực hiện: A Å A + <NGUỒN> b. Cộng có nhớ: - Cú pháp: ADDC A, <NGUỒN> T đó NGUỒNóthể là th h hi ô hớ #iátị h ặ @R T rong đó : < NGUỒN > c ó thể là th an h g hi , ô n hớ , # <g iá t r ị > h o ặ c @R p -Thực hiện: A Å A + <NGUỒN> + C 26 2. Lệnh trừ: - Cú pháp: SUBB A, <NGUỒN> Trong đó: <NGUỒN> có thể là thanh ghi, ô nhớ, #<giá trị> hoặc @Rp -Thực hiện: A Å A - <NGUỒN> - C (carry bit) 3. Lệnh nhân : Cú há MUL AB - Cú p há p: MUL AB -Thực hiện: A * B = BA (B: byte cao của kết quả; A: byte thấp của kết quả) 4. Lệnh chia: - Cú pháp: DIV AB -Thực hiện: A : B = A dư B (A: chứa phần nguyên; B: chứa phần dư) 5. L ệ nh tăn g m ộ t đơn v ị : ệ g ộ ị - Cú pháp: INC <ĐÍCH> Trong đó: <ĐÍCH> có thể là thanh ghi, ô nhớ - Thực hiện: <ĐÍCH> = <ĐÍCH> + 1 27 6. Lệnh giảm một đơn vị: - Cú pháp: DEC <ĐÍCH> Trong đó: <ĐÍCH> có thể là thanh ghi, ô nhớ - Thực hiện: <ĐÍCH> = <ĐÍCH> - 1 Ó Ệ Ả III. NH Ó M L Ệ NH NH Ả Y: 1. Lệnh nhảy không điều kiện: ầ a . Nhả y g ầ n: - Cú pháp: SJMP <NHÃN> T đ ó < NHà N > là ộ tt ừ h hó t ừ i ế tli ề h th b ằ d ấ ” ” T rong đ ó : < NHà N > là m ộ t t ừ , h ay n hó m t ừ v i ế t li ề n n h au, th eo sau b ằ ng d ấ u ” : ” dùng để đánh dấu vị trí chương trình. - Thực hiện: nhày không điều kiện đến vị trí chương trình được chỉ định bởi à ế à < N H à N >, khoảng cách từ lệnh đ ế n < N H à N > không vư ợ t quá 128 b yte mã lệnh. b . Nhả y xa: y - Cú pháp: LJMP <NHÃN> 28 - Thực hiện: nhảy đến vị trí được chỉ định bởi <NHÃN>, <NHÃN> có thể nằm ở bất kì vị trí nào trong chương trình. 2 L ệ nh nhả y có đi ề uki ệ n : 2 . L ệ nh nhả y có đi ề u ki ệ n : a. Lệnh so sánh và nhảy nếu không bằng (compare and jump if not equal) - Cú phá p: Cú phá p: CJNE A, <TOÁN HẠNG >, <NHÃN> Trong đó <TOÁN HẠNG> có thể là thanh ghi, ô nhớ hoặc #<giá trị> - Thực hiện: So sánh A và <TOÁN HẠNG>, nếu: + A ≠ <TOÁN HẠNG>: nhảy đến <NHÃN> và nếu: . A > <TOÁN HẠNG>: bit C = 0 . A < <TOÁN HẠNG>: bit C = 1 + A = <TOÁN HẠNG>: thực hiện lệnh kế tiếp - Một dạng khác của lệnh: Á à CJNE Ri/@Rp, #<GI Á TRỊ>, <NH à N> 29 [...]... nhận - bit 6, 5, 4: không sử dụng - GF1 (general flag 1), GF0 (general flag 1): user bit - PD (power down): vi điều khiển hoạt động ở chế độ ít tiêu tốn năng lượng (nếu đặt bằng 1, 1 mặc định là 0) IDL (idle): trạng thái nghỉ của vi điều khiển (nếu đặt bằng 1, mặc định là 0) 51 CÁC CHẾ ĐỘ TRUYỀN NHẬN Chế độ truyền nhận 0: là thanh ghi dịch 8 bit MOV SBUF, #01001101B 11... 35 1 Thanh ghi điều khiển timer: TCON Là thanh ghi 8 bit, truy xuất (ghi/đọc) byte hoặc bit -T Truy xuất byte: ất b t MOV TCON, #giá t ị TCON # iá trị - Truy xuất bit: SETB/CLR 7 6 5 TF1 TR1 TF0 4 3 TR0 IE1 2 1 IT1 IE0 0 IT0 TF1: báo trạng thái tràn cho bộ Timer/Counter1 TR1: điều khiển cấp xung cho bộ Timer/Counter1 TF0: báo trạng thái tràn cho bộ Timer/Counter0 TR0: điều khiển cấp xung... (default IT1 = 0, tác động ngắt bằng mức thấp) 36 2 Thanh ghi chế độ timer: TMOD Là thanh ghi 8 bit, truy xuất (ghi/đọc) byte MOV 7 GATE TMOD, #giá trị 6 5 4 C/T M1 M0 ĐIỀU KHIỂN TIMER 1 3 GATE 2 1 0 C/T M1 M0 ĐIỀU KHIỂN TIMER 0 GATE, C/T: điều khiển trạng thái hoạt động cho Timer/Counter M1, M0: chọn chế độ hoạt động cho Timer/Counter M1 M0 Chế độ Mô tả 0 0 0 Timer/Counter 13 bit 0 1 1 Timer/Counter 16... , - MOV BIT, C ; BIT BIT C 33 VI NHÓM LỆNH LIÊN QUAN ĐẾN CHƯƠNG TRÌNH CON: 1 CALL ; gọi chương trình con 2 RET ; kết thúc chương trình con 3 RETI ; kết thúc chương trình ngắt ế ắ 34 Chương III: CÁC THANH GHI CÓ CHỨC NĂNG ĐẶC BIỆT ( (SFR: Special Function Registers) p g ) T 113 138, T 113-138 TLTK I CÁC THANH GHI ĐIỀU KHIỂN TIMER/COUNTER: Vi điều khiển 8951 có 2 timer/counter:... được sử dụng, thay vào đó là TH0 và TL0 hoạt động như 2 bộ Timer/counter 8 bit Tuy nhiên, xung cung cho TH0 là từ bộ điề khiể của timer/counter1 ừ điều khiển ủ i / 1 40 DỤ ỨNG DỤNG CHẾ ĐỘ 1 16 BITS 1: Chế độ 1: 16 bit YÊU CẦU: Vi t chương trình điều khiển bóng đèn theo qui luật: 300mS sáng, sáng 300mS tắt (delay sử dụng timer0 timer0, mode 16 bit) 8951 THỰC HIỆN: BEGIN: CPL P1.0 CALL DL300mS SJMP... truyền 48 Các thanh ghi liên quan: SBUF, SCON, PCON 1 Thanh ghi đệm dữ liệu truyền nhận: SBUF (serial buffer) Là thanh ghi 8 bi truy xuất b h h hi bit, ấ byte, cho phép chứa b d li cần truyền và b d h h h byte dữ liệu ầ ề byte dữ liệu nhận được từ nơi khác truyền đến 2 Thanh hi điề khiển truyền/nhận nối tiếp: SCON( i l control) 2 Th h ghi điều khiể t ề / hậ ối tiế SCON(serial t l) 7 6 5 4 3 SM0 SM1 SM2 REN... nhận trên hệ thống nhiều vi điều khiển - REN (receive enable): = 0, không cho phép nhận; = 1: cho phép nhận - TB8: bit truyền thứ 9 trong chế độ truyền nhận 9 bit - RB8: bit nhận thứ 9 trong chế độ truyền nhận 9 bit ế ề - TI (transmit interrupt): được đặt lên 1 mỗi khi truyền xong 1 byte - RI (receive interrupt): được đặt lên 1 mỗi khi nhận xong 1 byte 50 3 Thanh ghi điều khiển công suất: PCON(power... các bit của một thanh ghi hoặc các chân I/O của vi điều khiển ể - Thực hiện: nhảy đến vị trí chương trình được chỉ định bởi nếu BIT bằng 1 hoặc bằng 0 g ặ g d Lệnh nhảy thông qua vi c kiểm tra cờ CARRY: - Cú pháp: JC/ JNC - Thực hiện: nhảy đến vị trí chương trình được chỉ định bởi nếu C bằng 30 1 hoặc bằng 0 e Lệnh nhảy thông qua vi c kiểm tra cờ ZERO: - Cú pháp: JZ/ JNZ ... CLR RS0 MOV A,@R0 SETB RS0 MOV @R0,A 100 08 110 R0 00 100 R0 46 DỤ VỀ BIT PARITY MOV A, #11001101B ;P=1 MOV A, #11001001B ;P=0 MOV A, #00001001B ;P=0 47 III CÁC THANH GHI ĐIỀU KHIỂN TRUYỀN THÔNG NỐI TIẾP: Tổng quan về truyền dữ liệu nối tiếp bất đồng bộ (UART: universal asynchronous ổ ề ề ố ế ấ ồ receiver/transmitter): 8 BIT OR 9 BIT IDLE IDLE D0 > D7 || TB8 or RB8 or NOT START BIT STOP BIT Các tín... ; LỆNH LẶP R5,#6 MOV : TMOD,#01H MOV Ri, #N 05 MOV MOV TR0 CLR TF0 JNB TF0,$ DJNZ R5, X1 POP 05 ; chờ tràn RET 42 DỤ ỨNG DỤNG CHẾ ĐỘ 2 8 BITS AUTORELOAD 2: Chế độ 2: 8 bit autoreload YÊU CẦU: Vi t chương trình xuất chuỗi xung 500Hz ra loa (delay sử dụng timer1 mode 2) timer1, 2) 8951 THỰC HIỆN: BEGIN: CPL CALL SJMP P2.5 P2.5 DL1mS BEGIN 12Mhz DL1mS: DL1 S ……… RET 43 CHƯƠNG TRÌNH CON DELAY 1 . các chân I/O của vi điều ể khi ể n - Thực hiện: nhảy đến vị trí chương trình được chỉ định bởi <NHÃN> nếu BIT b ằn g 1 ho ặ c bằn g 0 g ặ g d. Lệnh nhảy thông qua vi c kiểm tra cờ CARRY: -. chương trình được chỉ định bởi <NHÃN> nếu C bằng 1 hoặc bằng 0 30 e. Lệnh nhảy thông qua vi c kiểm tra cờ ZERO: - Cú pháp: JZ/ JNZ <NHÃN> - Thực hiện: nhảy đến vị trí chương trình. tạ i củ a BIT 4. Lệnh di chuyển BIT - MOV C , BIT ; C Å BIT , ; - MOV BIT, C ; BIT Å C 33 VI. NHÓM LỆNH LIÊN QUAN ĐẾN CHƯƠNG TRÌNH CON: 1. CALL <TÊN CHƯƠNG TRÌNH CON> ; gọi chương

Ngày đăng: 01/07/2014, 15:08

Mục lục

  • chuong 02.pdf

  • chuong 03.pdf

  • chuong 04.pdf

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan