chương 3 giới thiệu họ microcontroller

35 205 0
chương 3 giới thiệu họ microcontroller

Đ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

Chương III: GIỚI THIỆU HỌ MICROCONTROLLER I.PHẦN CỨNG: Sơ đồ khối: Microcontroller 8051/8031 IC thuộc họ vi điều khiển MCS_51 hãng Intel phát minh chế tạo.Các IC tiêu biểu cho họ MC_51 8051 8031 INT1 INT0 Timer Timer Port nối tiếp Điều khiển ngắt Các ghi khác 128 bytes RAM 4K ROM Timer Timer CPU Bộ dao động Điều khiển bus EA Các Port I/O Port nối tiếp ALE RST PSE TX RX N P0 P2 P1 P3 D D Sơ đồ khối 8051 T1 T0 Chúng có đặc điểm chung sau: + 4K byte ROM (được lập trình nhà sản xuất ,chỉ có 8051) + 128 byte Ram + port I/O bit + đònh 16 bit + Giao tiếp nối tiếp + 64K không gian nhớ chương trình mở rộng + 64K không gian nhớ liệu mở rộng + Một xử lý luận lý (thao tác bit đơn) + 210 bit có khả đònh vò riêng biệt Ram nội + nguồn ngắt với mức ưu tiên 2.Sơ lược chân 8051: 40 30p F 12MH z VCC 19 18 30p F 29 30 PSE N ALE 8051 31 EA /RD /WR T1 T0 /INT1 /INT0 TXD RXD RST 17 16 P3.7 P3.6 P3.5 P3.4 P3.3 P3.2 P3.1 P3.0 15 14 13 12 11 10 VSS 20 P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0 32 33 34 35 36 37 38 39 P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0 P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P21 P2.0 28 27 26 25 24 23 22 21 2.1.Port 0: Port gồm chân từ 32 ÷ 39 Port có chức I/O thiết kế cở nhỏ (không dùng nhớ mở rộng) Đối với thiết kế lớn với nhớ mở rộng ,nó hợp kênh bus đòa bus liệu 2.2.Port 1: Port Port I/O chân 1-8 Các chân ký hiệu P1.0,P1.1,…có thể dùng giao tiếp với thiết bò cần 2.3.Port 2: Port Port công dụng kép chân 21-28 dùng đường xuất nhập byte cao bus đòa thiết kế dùng nhớ mở rộng 2.4.Port 3: Port Port công dụng kép chân 10-17 Các chân Port có nhiều chức ,các công dụng chuyển đổi có liên hệ với đặc tính đặc biệt 8051/8031như bảng sau: Bit P3.0 P3.1 P3.2 P3.3 Tên RXD TXD /INT0 /INT1 Chức chuyển đổi Dữ liệu nhận cho Port nối tiếp Dữ liệu phát cho Port nối tiếp Ngắt Ngắt P3.4 P3.5 P3.6 T0 T1 /WR P3.7 /RD Ngõ vào Timer/Counter Ngõ vào Timer/Counter Xung ghi nhớ liệu Xung đọc nhớ liệu 2.5.PSEN (Prorgam Store Enable): 8051/8031 có tín hiệu điều khiển PSEN tín hiệu chân 29 tín hiệu điều khiển phép nhớ chương trình mở rộng thường nối đến chân OE (Output Enable) EPROM phép đọc byte mã lệnh PSEN mức thấp thời gian lấy lệnh Các mã nhò phân chương trình đọc từ ERPOM qua bus liệu chốt vào ghi lệnh 8051 để giải mã lệnh Khi thi hành chương trình ROM nội (8051) PSEN mức thụ động cao 2.6.ALE(Address Latch Enable): Tín hiệu ALE chân 30 ,8051 dùng ALE cho việc giải kênh bus đòa liệu.Khi Port dùng chế độ chuyển đổi củă nó: vừa bus liệu vừa byte thấp bus đòa ,AlE tín hiệu để chốt đòa vào ghi bên ,trong đầu chu kỳ nhớ Sau đường Port dùng để xuất nhập liệu chu kỳ sau nhớ 2.7.EA (External Access): Đây tín hiệu cho phép lựa chọn truy xuất nhớ chương trình hay Khi EA mắc lên mức cao (+5V) 8051 thi hành chương trình ROM nội Ngược lại, Ea mắc xuống mức thấp (GND) 8051 thực thi chương trình từ nhớ mở rộng 2.8.RST (Reset): Ngỏ vào RST chân ngỏ reset 8051 Khi tín hiệu đưa lên mức cao (trong chu kỳ máy),các ghi bên 8051 tải giá trò thích hợp để khởi động hệ thống 2.10.Các ngỏ vào dao động chip: 8051 có dao động chip ,nó thường nối với thạch anh hai chân 18 19 2.11.Các chân nguồn : 8051 vận hành với nguồn đơn +5V Vcc (+5V) nối vào chân 40 Vss (GND) nối vào chân 20 3.Tổ chức nhớ: 8051/8031 có nhớ theo cấu trúc Harvard : có vùng nhớ riêng biệt cho chương trình liệu ,cả chương trình liệu bên 8051 Dù chúng mở rộng thành phần lên đến tối đa 64K byte nhớ chương trình 64K byte nhớ liệu Bộ nhớ bên bao gồm ROM (8051) RAM chip , RAM chip bao gồm nhiều phần : phần lưu trữ đa dụng , phần lưu trữ đòa hóa bit, bank ghi ghi chức đặc biệt Hai đặc tính cần lưu ý : • Các ghi Port xuất nhập xếp nhớ truy xuất trực tiếp giống đòa nhớ khác • Ngăn xếp bên RAM nội nhỏ so với Ram vi xử lý khác ĐỊA CHỈ BYTE ĐỊA CHỈ BYTE ĐỊA CHỈ BIT RAM ĐA ĐỤNG F5 F4 F3 F2 F1 F0 E0 E7 E6 E5 E4 E3 E2 E1 E0 ACC D0 D7 D6 D5 D4 D3 D2 - D0 PSW B8 2F 2E 2D 2C 2B 2A 29 28 7F 77 6F 67 5F 57 4F 47 7E 76 6E 66 5E 56 4E 46 7D 75 6D 65 5D 55 4D 45 7C 74 6C 64 5C 54 4C 44 7B 73 6B 63 5B 53 4B 43 7A 72 6A 62 5A 52 4A 42 79 71 69 61 59 51 49 41 78 70 68 60 58 50 48 40 ĐỊA CHỈ BIT FF F0 F7 F6 - - - BC BB BA B9 B8 IP B0 B7 B6 A8 AF - A0 A7 A6 99 B B5 B4 B3 B2 B1 B0 P3 - AC AB AA A9 A8 IE A5 A4 A3 A2 A1 A0 P2 Không đòa hóa bit SBUF 27 26 25 24 23 22 21 20 1F 18 17 10 0F 08 07 00 3F 37 2F 27 1F 17 0F 07 3E 36 2E 26 1E 16 0E 06 3D 35 2D 25 1D 15 0D 05 3C 34 2C 24 1C 14 0C 04 3B 33 2B 23 1B 13 0B 03 3A 32 2A 22 1A 12 0A 02 BANK BANK BANK BANK (thanh ghi R0-R7) 39 31 29 21 19 11 09 01 38 30 28 20 18 10 08 00 98 9F 9E 9D 9C 9B 9A 99 98 SCON 90 97 95 94 93 92 91 90 P1 8D 8C 8B 8A 96 Không đòa hóa bit Không đòa hóa bit Không đòa hóa bit Không đòa hóa bit 89 88 87 Không đòa hóa bit 8F 8E 8D 8C 8B 8A 89 88 Không dòa hóa bit 83 82 81 80 Không đòa hóa bit Không đòa hóa bit Không đòa hóa bit 86 85 84 83 82 81 80 87 TH1 TH0 TL1 TL0 TMOD TCON PCON DPH DPL SP P0 Tóm tắc nhớ liệu chip • Chi tiết nhớ Ram chip : Ram bên 8051/8031 phân chia bank ghi (00H1FH),Ram đòa hóa bit (20H-2FH),Ram đa dụng (30H_7FH)và ghi chức đặc biệt (80H-FFH) 3.1 Ram đa dụng: Mọi đòa vùng RAM đa dụng truy xuất tự dùng cách đánh đòa trực tiếp gián tiếp Ví dụ, để đọc nội dung đòa 5FH RAM nội vào ghi tích lũy lệnh sau dùng : MOV A, #5FH Lệnh di chuyển búyt liệu dùng cách đánh đòa trực tiếp để xác đònh “đòa nguồn” (5FH) Đích nhận liệu ngầm xác đònh mã lệnh ghi tích lũy A RAM bên truy xuất dùng cách đánh đòa gián tiếp qua RO hay R1 Ví dụ, sau thi hành nhiệm vụ lệnh đơn trên: MOV R0, #5FH MOV A, @R0 Lệnh đầu dùng đòa tức thời để di chuyển giá trò 5FH vào ghi R0 lệnh thứ hai dùng đòa gián tiếp để di chuyển liệu “được trỏ R0” vào ghi tích lũy 3.2.RAM đòa hóa bit : 8051 / 8031 chứa 210 bit đòa hóa, 128 bit đòa byte 20H đến 2FH, phần lại ghi chức đặc biệt Ý tưởng truy xuất bit riêng rẽ mềm đặc tính tiện lợi vi điều khiển nói chung Các bit đặt, xóa, AND,OR …với lệnh đơn Đa số chi xử lí đòi hỏi chuổi lệnh đọc – sửa– ghi để đạt hiệu tương tự Hơn nữa, port I/0 đòa bit làm đơn giản phần mềm xuất nhập bit Có 128 bit đòa hóa đa dụng byte 20H đến 2FH Các đòa truy xuất byte bit phụ thuộc vào lệnh dùng ví dụ, để đặt bit 67H, ta dùng lệnh sau : SETB 67H Chú ý “đòa bit 67H” bit có trọng số lớn (MSB) “đòa byte 2CH” lệnh không tác động đến bit khác đòa 3.3.Các bank ghi : 32 byte thấp nhớ nội dành cho bank ghi Bộ lệnh 8051 / 8031 hổ trợ ghi (RO đến R7) theo mặc đònh (sau Reset hệ thống) ghi đòa 00H-07H Lệnh sau đọc nội dung đòa 05H vào ghi tích lũy MOV A,R5 Đây lệnh byte dùng đòa ghi Tất nhiên, thao tác tương tự thi hành lệnh byte dùng đòa trực tiếp nằm byte thứ hai: MOV A,05H Các lệnh dùng ghi R0 đến R7 ngắn nhanh lệnh tương ứng dùng đòa trực tiếp Các giá trò liệu dùng thường xuyên nên dùng ghi Bank ghi tích cực chuyển đổi cách thay đổi bit chọn bank ghi từ trạng thái chương trình (PSW) Giả sử bank ghi tích cực, lệnh sau ghi nội dung ghi tích lũy vào đòa 18H: MOV R0,A Ýù tưởng dùng “các bank ghi” cho phép “chuyển hướng” chương trình nhanh hiệu qủa (từng phần riêng rẽ phần mềm có ghi riêng không phụ thuộc vào phần khác) 3.4 Các ghi chức đặc biệt: Các ghi 8051/8031 đònh dạng phần RAM chip Vì ghi có đòa (ngoại trừ ghi trực tiếp, lợi đặt chúng vào RAM chip) Đó lý để 8051/0831 có nhiều ghi Cũng R0 đến R7, có 21 ghi chức đặc biệt (SFR: Special Funtion Register) vùng RAM nội, từ đòa 80H đến FFH Chú ý hầu hết 128 đòa từ 80H đến FFH không đònh nghóa Chỉ có 21 đòa SFR đònh nghóa Ngoại trừ tích lũy (A) truy xuất ngầm nói, đa số SFR truy xuất dùng đòa trực tiếp ý vài SFR đòa hóa bit byte Người thiết kế phải thận trọng truy xuất bit byte Ví dụ lệnh sau: SETB 0E0H Sẽ set bit ghi tích lũy, bit khác không thay đổi Ta thấy E0H đồng thời đòa byte ghi tích lũy đòa bit có trọng số nhỏ ghi tích lũy Vì lệnh SETB tác động bit, nên có đòa bit có hiệu a)Từ trạng thái chương trình: Từ trạng thái chương trình (PSW: Program Status Word) đòa D0H chứa bit trạng thái bảng tóm tắt sau: Bit Đòa PSW.7 PSW.6 PSW.5 PSW.4 PSW.3 Ký hiệu CY AC F0 RS1 RS0 PSW.2 OV D2H D7H D6H D5H D4H D3H Ý nghóa Cờ nhớ Cờ nhớ phụ Cờ Bit chọn bank ghi Bit chọn bank ghi 00=bank 0; đòa 00H-07H 01=bank 1: đòa 08H-0FH 10=bank 2:đòa 10H-17H 11=bank 3:đòa 18H-1FH Cờ tràn PSW.1 PSW.0 P D1H D0H Dự trữ Cờ Parity chẵn Bảng Từ trạng thái chương trình • Cờ nhớ (CY) :bit đòa D7H,cờ nhớ set lên có nhớ bit thứ phép toán cộng hay có mượn bit thứ phép toán trừ • Cờ nhớ phụ:Khi cộng số BCD, cờ nhớ phụ (AC) set kết qủa bit thấp khoảng 0AH đến 0FH Nếu giá trò cộng số BCD, sau lệnh cộng cần có DA A( hiệu chỉnh thập phân ghi tích lũy) để mang kết qủa lớn trở tâm từ 0÷9 • Cờ 0(F0): bit cờ đa dụng dành ứng dụng người dùng • Các bit chọn bank ghi: Các bit chọn bank ghi (RSO RS1) xác đònh bank ghi tích cực Chúng xóa sau reset hệ thống thay đổi phần mềm cần Ví dụ, ba lệnh sau cho phép bank ghi di chuyển nội dung ghi R7 đến ghi tích lũy A: SETB RS1 SETB RS0 MOV A,R7 • Cờ Tràn: Cờ tràn (OV) set lệnh cộng trừ có phép toán bò tràn Khi số có dấu cộng trừ với nhau, phần mềm kiểm tra bit để xác đònh xem kết qủa có nằm tầm xác đònh không Khi số không dấu cộng, bit OV bỏ qua Các kết qủa lớn +127 nhỏ –128 set bit OV b)Thanh ghi B: Thanh ghi B đòa F0H dùng với ghi tích lũy A cho phép toán nhân chia Lệnh MUL AB nhân giá trò không dấu bit A B trả kết qủa 16 bit A (byte thấp) B (byte cao) Lệnh DIV AB chia A cho B trả kết qủa nguyên A phần dư B Thanh ghi B xem ghi đệm đa dụng Nó đòa hóa ttừng bit đòa bit FOH đến F7H • Con trỏ ngăn xếp:(SP) Thanh ghi SP ghi bit đònh vò đòa 81H Nó chứa đòa đata đỉnh stack Các phép toán liên quan đến stack boa gồm việc đưa liệu vào stack(PUSH) lấy ( POP) đata khỏi stack Việc đưa data vào stack làm tăng SP trước ghi data vào stack ,và việc lấy data khỏi stack làm giảm nội dung SP • trỏ liệu: Con trỏ liệu (DPTR) dùng để truy xuất nhớ ghi 16 bit đòa 82H(DPL: byte thấp) 83H (DPH:byte cao) Ba lệnh sau ghi 55H vào RAM đòa 1000H: MOV A,#55H MOV DPTR,#1000H MOVX @DPTR,A Lệnh dùng đòa tức thời để tải liệu 55H vào ghi tích lũy, lệnh thứ hai dùng đòa tức thời, lần để tải liệu 16 bit 1000H vào trỏ liệu Lệnh thứ ba dùng đòa gián tiếp để di chuyển liệu A (55H) đến RAM đòa chứa DPTR (1000H) c)Các ghi port xuất nhập: Các port 8051/8031 bao gồm Port đòa 80H, Port đòa 90 H, Port đòa A0H Port đòa B0H Tất Port đòa hóa bit Điều cung cấp khả giao tiếp thuận lợi d)Các ghi timer: 8051/8031 chứa đònh thời đếm 16 bit dùng việc đònh thời đếm kiện Timer đòa 8AH (TL0:byte thấp) 8CH (TH0:byte cao).Timer đòa 8BH (TL1:byte thấp) 8DH (TH1: byte cao) việc vận hành timer set ghi Timer Mode (TMOD) đòa 89H ghi điều khiển timer (TCON) đòa 88H Chỉ có TCON đòa hóa bit e)Các ghi port nối tiếp: 8051/8031 chức port nối tiếp chip dành cho việc trao đổi thông tin với thiết bò nối tiếp máy tính, modem cho việc giao tiếp với IC khác có giao tiếp nối tiếp (có chuyển đổi A/D, ghi dòch ) MOVX A,@DPTR (1,2): Chuyển liệu (16 bit đòa chỉ) vào A MOVX @Ri,A (1,2): Chuyển nội dung A liệu (8 bit đòa chỉ) MOVX @DPTR,A (1,2): Chuyển nội dung A liệu (16 bit đòa chỉ) PUSH data (2,2) : Chuyển liệu trực tiếp vào ngăn xếp tăng SP POP data (2,2) : Chuyển liệu trực tiếp vào ngăn xếp giảm SP XCH A,Rn (1,1) : Trao đổi liệu ghi Rn v2 ghi A XCH A,data (2,1) : Trao đổi ghi A liệu trực tiếp XCH A,@Ri (1,1) : Trao đổi ghi A liệu gián tiếp XCHD A,@R (1,1) : Trao đổi nibble thấp (LSN) ghi A LSN liệu gián tiếp d) Nhóm lệnh chuyền điều khiển: ACALL addr11 (2,2): Gọi chương trình dùng đòa chì tuyệt đối LCALL addr16 (3,2): Gọi chương trình dùng đòa dài RET (1,2): Trở từ lệnh gọi chương trình RETI (1,2): Trở từ lệnh gọi ngắt AJMP addr11 (2,2): Nhảy tuyệt đối LJMP addr16 (3,2): Nhảy dài SJMP rel (2,2):Nhảy ngắn JMP @A+DPTR (1,2): Nhảy gián tiếp từ trỏ liệu JZ rel (2,2): Nhảy A=0 JNZ rel (2,2): Nhảy A không JC rel (2,2): Nhảy cờ nhớ đặt JNC rel (2,2): Nhảy cờ nhớ không đặt JB bit,rel (3,2): Nhảy tương đối bit trực tiếp đặt JNB bit,rel (3,2):Nhảy tương đối bit trực tiếp không đặt JBC bit,rel (3,2):Nhảy tương đối bit trực tiếp đặt,rồi xóa bit CJNE A,data,rel (3,2): So sánh liệu trực tiếp với A nhảy không CJNE A,#data,rel (3,2): So sánh liệu tức thời với A nhảy không CJNE Rn,#data,rel (3,2): So sánh liệu tức thời với nội dung ghi Rn nhảy không CJNE @Ri,#data,rel (3,2): So sánh liệu tức thời với liệu gián tiếp nhảy không DJNZ Rn,rel (2,2): Giản ghi Rn nhảy không DJNZ data,rel (3,2): Giảm liệu trực tiếp nhảy không III.HOẠT ĐỘNG CỦA BỘ ĐỊNH THỜI (TIMER) 1.Giới thiệu: 8051/8031 có hai timer 16 bit ,mỗi timer có cách làm việc người ta sử dụng timer để : a) đònh khoảng thời gian b) đếm kiện c) tạo tốc độ bad cho Port nối tiếp có sẵn 8051/8031 Truy xuất timer dùng ghi chức đặc biệt SFR MỤC ĐÍCH ĐỊA CHỈ TCON Điều khiển timer 88H TMO Chế độ timer 89H D Byte thấp timer 8AH TL0 8BH TL1 Byte thấp timer 8CH TH0 8DH TH1 Byte cao timer Byte cao timer Đòa hóa bit Có Không Không Không Không Không Thanh ghi chế độ timer (TMOD): Thanh ghi TMOD chứa hai nhóm bit dùng để đặt chế độ làm việc cho timer timer Bit Bit Tên C/T* Timer GATE 1 Mô tả Bit (mở) cổng, set Timer chạy INT1 mức cao Bit chọn chế độ timer/counter 1: đếm kiện M1 M0 1 GATE C/T* M1 M0 0 0 0: đònh thời Bit chế độ Bit chế độ 00: chế độ (timre 13 bit) 01: chế độ (timer 16 bit) 10: chế độ (8 bit tự động nạp lại) 11: chế độ (tách timer) Bit (mở ) cổng Bit chọn timer/counter Bít chế độ Bit chế độ Thanh ghi điều khiển timer (TCON): Thanh ghi TCON chứa bit trạng thái bit điều khiển cho timer timer BIT Ký Đòa Mô tả hiệu chỉbit TCON TF1 8FH Cờ báo tràn timer TCON TR1 8EH Bit điều khiển timer chạy/ngưng TCON TF0 8DH Cờ báo tràn timer TCON TR0 8CH Bit điều khiển timer chạy/ngưng TCON IE1 8BH Cờ cạnh interrupt bên TCON IT1 8AH Cờ kiểu interrupt bên đặt/xóa phần mềm với interrupt bên tác động mức thấp/cạnh xuống TCON IE0 89H Cờ cạnh interrupt bên TCON IT0 88H Cờ kiểu interrupt bên Các chế độ timer: a)Chế độ 0, chế độ timer 13 bit: Để tương thích với 8048 (có trứớc 8051) Ba bit cao TLX (TL0 và/hoăc TL1) không dùng Xung nhòp timer TLx (5 bit) THx (8 bit) TFx Cờ báo tràn b)Chế độ 1- chế độ timer 16 bit Hoạt động timer 16 bit đầy đủ Cờ báo tràn bit TFx TCON đọc ghi phầm mềm MSB giá trò ghi timer bit THx LBS bit TLx Các ghi timer (Tlx/THx) đọc ghi lúc phầm mềm Xung nhòp timer TLx (8 bit) THx (8 bit) TFx Cờ báo tràn c)Chế độ2- chế độ tự động nạp lại bit TLx hoạt động timer bit, THx giữ nguyên giá trò nạp Khi số đếm tràn tứ FFH đến 00H, cờ timer set mà giá trò THx đồng thời nạp vào TLx Việc đếm tiếp tục từ giá trò lên đến FFH xuống 00H nạp lại chế độ thông dụng tràn timer xảy khoảng thời gian đònh tuần hoàn khởi động TMOD THx Xung nhòp timer TLx (8 bit) TFx Nạp lại THx (8 bit) Cờ báo tràn d)Chế độ 3- chế độ tách timer Timer tách thành hai Timer bit với cờ báo tràn TF0 TF1 Timer không bò tác động cờ tràn TF1.Timer ngưng chế độ 3, có khởi động cách chuyển sang chế độ khác 1/12fosc TL1 TH1 TH1 Xung nhòp timer TL0 Xung nhòp timer TH0 TF0 Cờ báo tràn TF1 Cờ báo tràn 5.Nguồn tạo xung nhòp: Có hai nguồn tạo xung nhòp có, đươcï chọn cách ghi vào bit C/T (counter/timer) TMOD khởi động timer Một nguồn tạo xung nhòp dùng cho đònh khoảng thời gian, khác cho đếm kiện On chip Osillator ÷12 Clock (T0 or T1) − C/T Nguồn tạo xung nhòp 0=Up (Internal Timing) 1=Down (Event Counting) -Đònh khoảng thời gian (interval timing) Nếu C/T =0 hoạt động timer liên tục chọn timer dùng cho việc đònh khoảng thời gian Lúc đó, timer lấy xung nhòp từ dao động chip Bộ chia 12 thêm vào để giảm tần số xung nhòp đến giá trò thích hợp cho phần lớn ứng dụng Như thạch anh 12 MHz cho tốc độ xung nhòp timer MHz Báo tràn timer xảy sau số (cố đònh) xung nhòp, phụ thuộc vào giá trò ban đầu nạp vào ghi timer TLx/THx - Đếm kiện (Event counting) Nếu C/T=1, timer lấy xung nhòp từ nguồn bên Trong hầu hết ứng dụng nguồn bên cung cấp cho timer xung kh xảy “sự kiện “, timer dùng đếm kiện xác đònh phần mềm cách đọc ghi TLx/THx giá trò 16 bit ghi tăng thêm cho kiện Nguồn xung nhòp có từ thay đổi chức chân port3 Bit port (P3.4) dùng làm ngõ vào tạo xung nhòp bên timer gọi là“T0”.Và p3.5 hay “T1” ngõ vào tạo xung nhòp cho timer1 6.Bắt đầu dừng điều khiển timer: Phương pháp đơn giản để bắt đầu (cho chạy) dừng timer dùng bit điều khiển chạy :TRx TCON, TRx bò xóa sau reset hệ thống Như vậy, timer theo bò cấm (bò dừng) TRx đặt lên phần mềm timer chạy Xung nhòp timer TRx Các ghi timer 0=lên : timer dừng 1=xuống : timer chạy Ví dụ: Cho timer chạy dùng lệnh SET TR0 Cho timer dừng dùng lệnh CLR TR0 7.Khởi động truy xuất ghi timer: Thông thường ghi khởi động lần đầu chương trình để đặt chế độ làm việc cho Sau thân chương trình timer cho chạy, dừng , bit cờ kiểm tra xóa, ghi timer đọc cập nhật theo đòi hỏi ứng dụng TMOD ghi thứ khởi động đặt chế độ hoạt động Ví dụ lệnh sau khởi động timer timer 16 bit (chế độ 1) có xung nhòp từ dao động chíp cho việc đòng khoảng thời gian MOV TMOD,#00010000B Lệnh đặt M1=0 M0=1 cho chế độ 1, C/T=0 GATE=0 cho xung nhòp nội xóa bit chế độ timer Dó nhiên timer thật không bắt đầu đònh thời bit điều khiển chạy TR1 đặt lên Nếu cần số đếm ban đầu, ghi timer TL1/TH1 phải khởi động Khi timer tràn ,cần dừng timer xóa cờ báo tràn phần mềm lệnh sau: CLR TRx CLR TFx Các khoảng ngắn khoảng dài : Khoảng thời gian ngắn có bò giới hạn không tần số xung nhòp timer mà phần mềm Do ảnh hưởng thời khoảng thực lệnh Lệng ngắn 8051/8031 chu kỳ máy hay 1µs Sau bảng tóm tắt kỹ thuật để tạo khoảng thời gian có chiều dài khác (với giả sử xung nhòp cho 8051/8031 có tần số 12 MHz) Khoảng thời gian tối Kỹ thuật đa ≈10 Bằng phần mềm 256 Timer bit tự động nạp lại 65535 Timer 16 bit Không giới hạn Timer 16 bit cộng với vòng lặp phần mềm IV HOẠT ĐỘNG CỦA PORT NỐI TIẾP Giới thiệu: 8051/8031 có port nối tiếp chip hoạt động nhiều chế độ khác dãy tần số rộng Chức chủ yếu port nối tiếp thực chuyển đổi song song sang nối tiếp với liệu xuất chuyển đồi nối tiếp sang song song với liệu nhập Truy xuất phần cứng đến port nối tiếp qua chân TXD(P3.0)và RXD(P3.1).Hai ghi chức đặc biệt cho phép phần mềm truy xuất đến port nối tiếp : SBUF(99H) SCON(98H).Đây hai ghi riêng biệt ghi ghi để phát ghi đọc để thu A SBUF TXD (P3.1) A SBUF RXD (P3.0) Thanh ghi điều khiển port nối tiếp (SCON) đòa 98H ghi có đòa bit chứa bit trạng thái bit điều khiển Các bit điều khiển đặt chế độ hoạt động cho port nối tiếp, bit trạng thái báo cáo kết thúc việc phát thu ký tự Các bit trạng thái kiểm tra phần mềm lập trình để tạo ngắt Tần số làm việc port nối tiếp gọi tốc độ baund cố đònh (lấy từ giao động chip) Nếu sử dụng tốc độ baud thay đổi, timer cung cấp xung nhòp tốc độ baud phải lập trình Thanh ghi điều khiển port nối tiếp: Chế độ hoạt động port nối tiếp đặt cách ghi vào ghi chế độ port nối tiếp (SCON) đòa 98H Sau bảng tóm tắt ghi SCON chế độ port nối tiếp : Bit SCON SCON SCON Ký hiệu SM0 Đòa Mô tả 9FH Bit chế độ Port nối tiếp SM1 9EH Bit chế độ Port nối tiếp SM2 9DH SM2=0:hoạt động bình thường SCON SCON SCON SCON SCON REN 9CH TB8 9BH RB8 9AH TI 99H RI9FH 98H SM2=1:chế độ truyềng thông đa xử lý Cho phép thu set lên Bit phát thứ chế độ phát bit Bit thu thứ chế độ thu bit Cờ ngắt phát,phát xong byte TI=1 Cờ ngắt thu, thu xong byte RI=1 Bảng sau mô tả chế độ hoạt động port nối tiếp SM0 0 1 SM1 1 Chế độ Mô tả Thanh ghi dòch UART bit UART bit UART bit Tốc độ baud Co61 đònh (fOSC/12) Thay đổi (bằng timer 1) Cố đònh Thay đổi (bằng timer 1) Trước sử dụng port nối tiếp, phải khởi động SCON cho chế độ Ví dụ ,lệnh sau: MOV SCON,#01010010B Khởi động port nối tiếp cho chế độ (SM0/SM1=0/1), cho phép thu (REN=1) đặt cờ ngắt phát (TP=1) để phát sẵn sàng hoạt động 3.Khởi động truy xuất ghi cổng nối tiếp: a)Cho phép thu: Bit cho phép thu (REN = Receiver Enable) SCON phải đặt lên phần mềm phép thu ký tự Thông thường thực việc đầu chương trình khởi động cổng nối tiếp, timer Có thể thực việc theo hai cách Lệnh : SETB REN Sẽ đặt REN lên 1, lệnh : MOV SCON,#xxx1xxxxB Sẽ đặt REN đặc xóa bit khác SCON cần (các x phải để đặc chế độ làm việc) b)Bit liệu thứ 9: Bit liệu thứ cần phát chế độ 3, phải nạp vào TB8 phần mềm Bit liệu thứ thu đặt RB8 Phần mềm cần không cần bit liệu thứ 9, phụ thuộc vào đặc tính kỹ thuật thiết bò nối tiếp sử dụng (bit liệu thứ đóng vai trò quan trọng truyền thông đa xử lý) c)Thêm bit parity: Thường sử dụng bit liệu thứ để thêm parity vào ký tự Như xét chương trước, pit P từ trạng thái chương trình (PSW) đặt lên bò xóa chu kỳ máy để thiết lập kiểm tra chẵn với bit tích lũy d)Các cờ ngắt: Hai cờ ngắt thu phát (RI TI) SCON đóng vai trò quan trọng truyền thông nối tiếp dùng 8051/8031 Cả hai bit đặt lên phần cứng, phải xóa phần mềm Tốc độ baud port nối tiếp: Dao động chip Dao động chip Xung nhòp tốc độ baud ÷12 a.Chế độ ÷64 SMOD=0 SMOD=1 ÷32 Dao động chip a.Chế độ ÷32 ÷16 a.Chế độ SMOD=0 SMOD=1 Xung nhòp tốc độ baud Xung nhòp tốc độ baud Các nguồn tạo xung nhòp cho port nối tiếp Như nói, tốc độ baud cố đònh chế độ Trong chế độ luôn tần số dao động chip chia cho 12 Thông thường thạch anh ấn đònh tần số dao động chip 8051/8031 sử dụng nguồn xung nhòp khác Giả sử với tần số dao động danh đònh 12 MHz, tìm tốc độ baud chế độ MHz Mặc nhiên, sau reset hệ thống, tốc độ baud chế độ tần số dao động chia cho 64 Tốc độ baud ảnh hưởng bit ghi điều khiển nguồn cung cấp (PCON) Bit PCON bit SMOD Đặt bit sMOD lên làm gấp đôi tốc độ baud chế độ 1,2 Trong chế độ 2, tốc độ baud bò gấp đôi từ giá trò 1/64 tần số dao động (SMOD=0) đến 1/32 tần số dao động (SMOD=1) Vì PCON không đònh đòa theo bit, nên để đặt bit SMOD lên cần phải theo lệnh sau: MOV A,PCON ;lấy giá trò thời PCON SETB ACC.7 ;đặt bit (SMOD) lên MOV PCON,A ;ghi giá trò ngược PCON Các tốc độ baud chế độ xác đònh tốc độ tràn timer Vì timer hoạt động tần số tương đối cao, tràn timer chia thêm cho 32 (hay 16 SMOD=1) trước cung cấp xung nhòp tốc độ baud cho port nối tiếp V HOẠT ĐỘNG NGẮT (INTERRUPT): 1.Giới thiệu: Ngắt hoạt động ngừng tạm thời chương trình để tji hành chương trình khác Các ngắt có vai trò quan trọng thiết kế khả thực thi vi điều khiển Chúng cho phép hệ thốn đáp ứng không lúc tới công việc giải công việc chương trình khác thực thi Một hệ thống điều khiển ngắt cho ảo giác làm nhiều việc đồng thời Dó nhiên CPU lần thực thi chương trình để thực thi chương trình khác, quay chương trình đầu có yêu cầu ngắt Chương trình giải ngắt gọi lả chương trình phục vụ ngắt (ISR : Interrupt Sevice Reutine) Tổ chức ngắt: 8051 có nguồn ngắt: ngắt ngắt từ timer ngắt port nối tiếp Tất ngắt không đặt sau reset hệ thống cho phép ngắt riêng rẽ phần mềm a)Cho phép không cho phép ngắt: Mỗi nguồn ngắt cho phép không cho phép ngắt qua ghi chức đặt biệt cố đònh đòa bit IE (Interrupt Enable : cho phép ngắt) đòa A8H Cũng bit cho phép nguồn ngắt, có bit cho phép cấm toàn xóa để cấm tất ngắt đặt lên phép tất ngắt Bit IE.7 IE.6 IE.5 IE.4 IE.3 IE.2 IE.1 IE.0 Ký hiệu EA EA ET5 E5 ET1 EX1 ET0 EX0 Đòa bit AFH AEH ADH ACH ABH AAH A9H A8H Mô tả (1=cho phép,0=cấm) Cho phép cấm toàn Không đònh nghóa Cho phép ngắt từ timer (8052) Cho phép ngắt Port nối tiếp Cho phép ngắt từ timer Cho phép ngắt Cho phép ngắt từ timer Cho phép ngắt b)Ưu tiên ngắt: Mỗi nguồn ngắt đïc lập trình riêng vào hai mức ưu tiên qua ghi chức đặc biệt đòa bit Ip (Interrupt priority : ưu tiên ngắt) đòa B8H Bit IP.7 Ký hiệu _ Đòa bit BFH Mô tả (1=mức cao hơn,0=mức thấp) Không đònh nghóa IP.6 IP.5 IP.4 IP.3 IP.2 IP.1 IP.0 _ PT2 PS PT1 PX1 PT0 PX0 BEH BDH BCH BBH BAH B9H B8H Không đònh nghóa Ưu tiên cho ngắt từ timer (8052) Ưu tiên cho ngắt Port nối tiếp Ưu tiên cho ngắt từ timer Ưu tiên cho ngắt Ưu tiên cho ngắt từ timer Ưu tiên cho ngắt Các ngắt ưu tiên xóa sau reset hệ thống để đặ ttất ngắt mức ưu tiên thấp Xử lý ngắt: Khi có ngắn xẩy CPU chấp nhận, chương trình bò ngắt quãng Những hoạt động sau xẩy ra: Thi hành hoàn chỉnh lệnh hành Các DC vào ngắt xếp Trạng thái ngắt hành cất bên Các ngắt chặn mức ngắt Nap vàp DC đòa Vector ISR ISR thực thi ISR thực thi đáp ứng ngắt ISR hoàn tất lệnh RET1 Điều làm lấy lại giá trò cũ PC từ ngăn xếp lấy lại trạng thái ngắt cũ Chương trình lại tiếp tục thi hành nơi mà dừng • Các Vector ngắt Khi chấp nhận ngắt, giá trò nạp vào PC gọi Vector ngắt Nó đòa bắt đầu ISR cho nguồn tạo ngắt Các Vector ngắt cho bảng sau: Ngắt Reset hệ thống Bên Timer Bên Cờ RST IE0 TF0 IE1 TF1 Đòa Vector 0000H 0003H 000BH 0013H 001BH Timer Port nối tiếp TI RI 0023H Vector reset hệ thống (RST đòa 0000H) giống ngắt Nó ngắt chương trình tải vào PC giá trò Khi đến ngắt “cờ gây ngắt tự động bò xóa phần cứng, trừ R1, T1 cho ngắt cổng nối tiếp Vì có hai nguồn có cho ngắt này,không thực tế để CPU xóa cờ ngắt Các bit phải kiểm tra ISR để xác đònh nguồn ngắt cờ tạo ngắt xóa phần mềm Các ngắt 8051: a)Các ngắt timer: Các ngắt timer có đòa Vector ngắt 000BH (timer 0) 001BH (timer 1) Ngắt timer xẩy ghi timer (TLx ITHx) tràn set cờ báo tràn (TFx) lên Các cờ timer (TFx) không bò xóa phần mềm Khi cho phép ngắt, TFx tự động bò xóa phần cứng CPU chuyển đến ngắt b)Các ngắt cổng nối tiếp: Ngắt cổng nối tiếp xẩy cờ phát (TI) cờ ngắt thu (RI) đặt lên Ngắt phát xẩy ký tự nhận xong đợi SBUP để đọc Các ngắt cổng nối tiếp khác với ngắt timer Cờ gây ngắt cổng nối tiếp không bò xóa phần cứng CPU chuyển tới ngắt Do có hai nguồn ngắt cổng nối tiếp TI RI Nguồn ngắt phải xác đònh ISR cờ tạo ngắt xóa phần mềm Các ngắt timer cờ ngắt cờ ngắt xóa phần cứng CPU hướng tới ISR c)Các ngắt ngoài: Các ngắt xẩy có mức thấp cạnh xuống chân INT0 INT1 vi điều khiển Đây chức chuyển đổi bit Port 3.(Port 3.2 Port 3.3) Các cờ tạo ngắt bit IE0 vá IE1 TCON Khi quyền điều khiển chuyển đến ISR, cờ tạo ngắt xóa ngắt tích cực cạnh xuống Nếu ngắt tích cực theo mức, nguồn yêu cầu ngắt bên điều khiển mức cờ thay cho phần cứng Sự lựa chọn ngắt tích cực mức thấp hay tích cực cạnh xuống lập trình qua bit IT0 IT1 TCON Nếu IT1 = 0, ngắt tác động múc thấp chân IT1 Nếu IT1 = ngắt tác động cạnh xuống chế độ này, mẫu liên tiếp chân INT1 mức cao chu kỳ mức thấp chu kỳ kế, cờ yêu cầu ngắt IE1 TCON đặt lên 1, bit IE1Ù yêu cầu ngắt Nếu ngắt tác động cạnh xuống nguồn bên phải giữ chân tác động mức cao tối thiểu chu kỳ giữ mức thấp thêm chu kỳ để đảm bảo phát cạnh xuống Nếu ngắt tác động theo mức nguồn bên phải giữ tín hiệu yêu cầu tác động ngắt yêu cầu thật tạo không tác động yêu cầu ngắt trước ISR hoàn tất Nếu không ngắt khác lặp lại [...]... chốt 74HC3 73 (hoặc tương đương) sẽ giữ byte đòa chỉ thấp trong phần còn lại của chu kỳ bộ nhớ Trong nửa sau của chu kỳ bộ nhớ port 0 được dùng như bus dữ liệu và được đọc hoặc ghi tùy theo lệnh a) Truy xuất bộ nhớ chương trình ngoài: Bộ nhớ chương trình ngoài là mộ IC ROM được phép bởi tín hiệu PSEn Hình sau mô tả cách nối một EPROM vào 8051/8 031 : Port 0 EA AL 8051 E D0÷D7 D Q A0÷A7 74CH3 73 G Port... mức thấp, việc thi hành chương trình luôn bắt đầu ở đòa chỉ đầu tiên trong bộ nhớ trong chương trình: đòa chỉ 0000H Nội dung của RAM trên chip không bò thay đổi bởi lệnh reset II TẬP LỆNH CỦA 8051/8 031 Tập lệnh 8051/8 031 có 255 lệnh gồm 139 lệnh 1 byte, 92 lệnh 2 byte và 24 lệnh 3 byte 1 Các chế độ đánh đòa chỉ: trong tập lệnh có 8 chế độ đánh đòa chỉ: a)Thanh ghi đòa ghi: 8051/8 031 có 4 bank thanh ghi,... được đặt JB bit,rel (3, 2): Nhảy tương đối nếu bit trực tiếp được đặt JNB bit,rel (3, 2):Nhảy tương đối nếu bit trực tiếp không được đặt JBC bit,rel (3, 2):Nhảy tương đối nếu bit trực tiếp được đặt,rồi xóa bit CJNE A,data,rel (3, 2): So sánh dữ liệu trực tiếp với A và nhảy nếu không bằng CJNE A,#data,rel (3, 2): So sánh dữ liệu tức thời với A và nhảy nếu không bằng CJNE Rn,#data,rel (3, 2): So sánh dữ liệu... thì Timer chạy khi INT1 ở mức cao Bit chọn chế độ timer/counter 1: đếm sự kiện 5 4 M1 M0 1 1 3 2 1 0 GATE C/T* M1 M0 0 0 0 0 0: đònh thời Bit 1 của chế độ Bit 0 của chế độ 00: chế độ 0 (timre 13 bit) 01: chế độ 1 (timer 16 bit) 10: chế độ 2 (8 bit tự động nạp lại) 11: chế độ 3 (tách timer) Bit (mở ) cổng Bit chọn timer/counter Bít của chế độ Bit 0 của chế độ 3 Thanh ghi điều khiển timer (TCON): Thanh... công việc và giải quyết một công việc đó trong khi một chương trình khác đang thực thi Một hệ thống được điều khiển bằng ngắt cho ảo giác là làm nhiều việc đồng thời Dó nhiên CPU mỗi lần không thể thực thi một chương trình để thực thi một chương trình khác, rồi quay về chương trình đầu khi có yêu cầu ngắt Chương trình giải quyết ngắt được gọi lả chương trình phục vụ ngắt (ISR : Interrupt Sevice Reutine)... với nội dung thanh ghi Rn và nhảy nếu không bằng CJNE @Ri,#data,rel (3, 2): So sánh dữ liệu tức thời với dữ liệu gián tiếp và nhảy nếu không bằng DJNZ Rn,rel (2,2): Giản thanh ghi Rn và nhảy nếu không bằng DJNZ data,rel (3, 2): Giảm dữ liệu trực tiếp và nhảy nếu không bằng III.HOẠT ĐỘNG CỦA BỘ ĐỊNH THỜI (TIMER) 1 .Giới thiệu: 8051/8 031 có hai timer 16 bit ,mỗi timer có 4 cách làm việc người ta sử dụng... A và LSN của dữ liệu gián tiếp d) Nhóm lệnh chuyền điều khiển: ACALL addr11 (2,2): Gọi chương trình con dùng đòa chì tuyệt đối LCALL addr16 (3, 2): Gọi chương trình con dùng đòa chỉ dài RET (1,2): Trở về từ lệnh gọi chương trình con RETI (1,2): Trở về từ lệnh gọi ngắt AJMP addr11 (2,2): Nhảy tuyệt đối LJMP addr16 (3, 2): Nhảy dài SJMP rel (2,2):Nhảy ngắn JMP @A+DPTR (1,2): Nhảy gián tiếp từ con trỏ dữ... bằng tốc độ tràn của timer 1 Vì timer hoạt động ở tần số tương đối cao, tràn timer được chia thêm cho 32 (hay 16 nếu SMOD=1) trước khi cung cấp xung nhòp tốc độ baud cho port nối tiếp V HOẠT ĐỘNG NGẮT (INTERRUPT): 1 .Giới thiệu: Ngắt là hoạt động ngừng tạm thời một chương trình này để tji hành một chương trình khác Các ngắt có một vai trò quan trọng trong thiết kế và khả năng thực thi của vi điều khiển... ở hình sau: M o ät c h u k y ø m a ùy S2 S1 P1 P2 P1 P2 P1 S5 S4 S3 P2 P1 P2 P1 S6 P2 P1 S1 P2 P1 P2 O SC A LE PSEN P o rt 2 PC H PC H P o rt 1 PC L O pcode PC L Giản đồ thời gian đọc bộ nhớ chương trình ngoài b/ Truy xuất bộ nhớ dữ liệu ngoài: Port 0 EA D0÷D7 D Q A0÷A7 74CH3 73 AL G 8051 E Port 2 /RD /WR / NC PSE Giao tiếp giữa 8051/8 031 và RAM N RAM A8÷A1 5 /OE /WR /CS Bộ nhớ dữ liệu ngoài là một bộ... khiển Đây là chức năng chuyển đổi của các bit Port 3. (Port 3. 2 và Port 3. 3) Các cờ tạo ngắt này là các bit IE0 vá IE1 trong TCON Khi quyền điều khiển đã chuyển đến ISR, cờ tạo ra ngắt chỉ được xóa nếu ngắt được tích cực bằng cạnh xuống Nếu ngắt được tích cực theo mức, thì nguồn yêu cầu ngắt bên ngoài sẽ điều khiển mức của cờ thay cho phần cứng Sự lựa chọn ngắt tích cực mức thấp hay tích cực cạnh xuống ... 40 30 p F 12MH z VCC 19 18 30 p F 29 30 PSE N ALE 8051 31 EA /RD /WR T1 T0 /INT1 /INT0 TXD RXD RST 17 16 P3.7 P3.6 P3.5 P3.4 P3 .3 P3.2 P3.1 P3.0 15 14 13 12 11 10 VSS 20 P0.7 P0.6 P0.5 P0.4 P0 .3. .. P0.2 P0.1 P0.0 32 33 34 35 36 37 38 39 P1.7 P1.6 P1.5 P1.4 P1 .3 P1.2 P1.1 P1.0 P2.7 P2.6 P2.5 P2.4 P2 .3 P2.2 P21 P2.0 28 27 26 25 24 23 22 21 2.1.Port 0: Port gồm chân từ 32 ÷ 39 Port có chức... A4 A3 A2 A1 A0 P2 Không đòa hóa bit SBUF 27 26 25 24 23 22 21 20 1F 18 17 10 0F 08 07 00 3F 37 2F 27 1F 17 0F 07 3E 36 2E 26 1E 16 0E 06 3D 35 2D 25 1D 15 0D 05 3C 34 2C 24 1C 14 0C 04 3B 33 2B

Ngày đăng: 28/11/2015, 06:25

Mục lục

  • Ba bit cao cuỷa TLX (TL0 vaứ/hoaờc TL1) khoõng duứng

  • MOV SCON,#01010010B

  • SETB REN

  • MOV SCON,#xxx1xxxxB

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

Tài liệu liên quan