ĐỒ ÁN TỐT NGHIỆP ĐIỆN TỬ BÁO CÁO BÀI TẬP LỚN VI XỬ LÝ ĐỀ TÀI ĐO VÀ ỔN ĐỊNH NHIỆT ĐỘ NỘI DUNG ĐỒ ÁN LỜI MỞ ĐẦU Ngày nay, khoa học kĩ thuật phát triển rất nhanh đặc biệt là điện tử Gắn liền với sự phát[.]
ĐỒ ÁN TỐT NGHIỆP ĐIỆN TỬ BÁO CÁO BÀI TẬP LỚN VI XỬ LÝ ĐỀ TÀI: ĐO VÀ ỔN ĐỊNH NHIỆT ĐỘ NỘI DUNG ĐỒ ÁN LỜI MỞ ĐẦU: Ngày nay, khoa học kĩ thuật phát triển nhanh đặc biệt điện tử Gắn liền với phát triển điên tử phát triển vi xử lý, vi điều khiển Đó đời vi xủ lý đa Pentium, Celerong… Và vi điều khiển có bước nhảy vọt đựoc đánh dấu đời vi điều khiển PIC, AVR, PsoC, FPGA… Các vi điều khiển, vi xử lý ngày ứng dụng rộng rãi phổ biến Đặc biệt vi xử lý , vi điều khiển làm nhiều việc vô phức tạp Đối với sinh viên điện tử hiểu biết cấu trúc ứng dụng vi điều khiển vi xử lý vơ cần thiết Bước đầu tìm hiểu chúng en chọn vi điều khiển 8051, họ vi điều khiển ứng dụng rộng rãi thị trường GIỚI THIỆU VỀ ĐỀ TÀI: Để nghiên cứu vi điều khiển 8051 chúng em chọn đề tài “ Đo nhiệt độ điều chỉnh nhiệt độ” Đây đề tài khơng đề tài giúp em hiểu thêm cấu trúc bên trong, cách hoạt động cách lập trình cho vi xử lý Trong đề tài này, chúng em giẩi vấn đề sau: _ dải nhiệt độ đo từ 00C – 990C _ ổn định nhiệt độ dạng mô phỏng: + Khi nhiệt độ tăng ngưỡng ( đặt) quạt quay làm gảim nhiệt đọ + Khi nhiệt độ thấp ngưỡng( đặt) đèn sáng làm tăng nhiệt độ + Sử dụng ngôn ngữ lập trình Assembly LÝ THUYẾT: A GIỚI THIỆU VỀ HỌ VI ĐIỀU KHIỂN 8051: IC vi điều khiển 89S52 có đặc điểm sau : 4kbyte ROM (được lập trỡnh nhà sản xuất co 8051) 128 byte RAM port 8bit Hai định thời 16 bit Giao tiếp nối tiếp 64KB không gian nhớ chương trỡnh mở rộng 64 KB khụng gian nhớ liệu mở rộng Một xử lý bớt (thao tỏc trờn cỏc bit đơn) 210 bit địa hóa vị trí bít Bộ nhõn/chia 4ms CẤU TRÚC BấN TRONG 89S52 1.1 Cấu tạo Tuỳ theo khả người (về kinh tế, kỹ thuật…) mà nhà sản xuất sản phẩm ứng dụng chọn kiểu chân ATMEL đưa b.port1 : port1 port I/O chân từ 1-8 Các chân dùng cho thiết bị ngoại vi cần Port1 khơng có chức khác vỡ chỳng dùng giao tiếp thiết bị ngồi c.port2 : port2 port cơng dụng kép chân 21 đến 28 dùng đường xuất nhập byte cao bus địa 16 bit thiết kế dùng nhớ mở rộng thiết kế có nhiều 256 byte nhớ liệu d.Port3 : port3 port cụng dụng kép chân 10 – 17 Các chân port có nhiều chức riêng, các cơng dụng chuyển đổi có liên hệ với đặc tính đặc biệt 8051/89S52 bảng sau: PSEN (Program Store Enable ) : 89S52 có tín hiệu điều khiển PSEN tớn hiệu chân 29 Nó tín hiệu điều khiển cho 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ừ EPROM qua bus chơt vào ghi lệnh 89S52 để giải mó lệnh Khi thi hành chương trỡnh trong ROM nội (89S52) PSEN mức thụ động( mức cao) f.ALE (Address Latch Enable ) : Tín hiệu ra ALE chân 30 tương hợp với thiết bị làm việc vớicỏc xữ lý 8585, 8088, 8086, 8051 dựng ALE cỏch tương tự cho việc giải mó cỏc kờnh cỏc bus địa liệu port dùng chế độ chuyển đổi nó: vừa bus liệu vừa bus thấp địa chỉ, ALE tín hiệu để chốt địa vào ghi bên đầu chu ký nhớ Sau đường port dùng để xuất nhập liệu sau chu kỳ nhớ Các xung tín hiệu chân ALE có tốc độ 1/6 lần tần số dao động chip dùng làm nguồn xung nhịp cho cỏc hệ thống Nếu xung trờn chõn 8051 12MHz thỡ ALE cú tần số 2MHz Chỉ ngoại trừ thi hành lệnh MOVX, xung ALE bị Chõn làm ngừ vào cho xung lập trỡnh cho EPROM 8051 g.EA (External Access) : Tớn hiệu vào EA chân 31 thường mắc lên mức cao (+5V) mức thấp (GND) Nếu mức cao, 8051 thi hành chương trỡnh từ ROM nội khoảng địa thấp (4K) Nếu mức thấp, chương trỡnh thi hành từ nhớ mở rộng Khi dùng 8031, EA nối mức thấp vỡ khụng cú nhớ chương trỡnh trờn chip Nếu EA nối mức thấp nhớ bên chương trỡnh 89S52 bị cấm chương trỡnh thi hành từ EPROM mở rộng Người ta cũn dựng chõn EA làm chõn cấp điện áp 21V lập trỡnh cho EPROM 89S52 h.SRT (Reset) : Ngừ vào RST trờn chõn ngừ reset 8051 Khi tớn hiệu đưa lên múc cao (trong chu kỳ máy ), ghi 89S52 tải nhưừng giỏ trị thớch hợp để khởi động hệ thống i.Cỏc ngừ vào dao động chip : Như thấy cỏc hỡnh trờn , 89S52 có dao động chip Nó thường nối với thạch anh hai chân 18 19 Các tụ cần thiết vẽ Tần số thạch anh thụng thường 12MHz j.Cỏc chân nguồn : 89S52 vận hành với nguồn đơn +5V Vcc được nối vào chân 40 Vss (GND) nối vào chân 20 Tổ chức nhớ 89S52 có nhớ theo cấu trúc Harvard : có vùng cho nhớ riêng biệt cho chương trỡnh, liệu Như núi trờn, chương trỡnh liệu cú thể bờn 89S52, dự chúng mở rộng thành phần lên đến tối đa 64 Kbytes nhớ chương trỡnh 64 Kbytes nhớ liệu Bộ nhớ bờn bao gồm ROM (89S52) 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 địa nhớ khác Ngăn xếp RAM nội thay vỡ RAM ngồi vi xử lí khác Chi tiết nhớ RAM trờn chip : Như ta thấy sau, RAM bờn 89S52 phân chia bank ghi (00H - 1FH), RAM địa hóa bit (20H 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 bus 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 : 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 trực tiếp để di chuyển liệu "được trỏ R0" vào ghi tớch lũy b.RAM địa hóa bit : 89S52 chứa 210 bit địa hóa, 128 bit địa byte 20H đến 2FH, phần cũn lại cỏc ghi chức đặc biệt í tưởng truy xuất bit riêng rẽ mềm đặc tín 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ố cỏc 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 c.Cỏc bank ghi : 32 byte thấp nhớ nội dành cho cỏc bank ghi Bộ lệnh 89S52 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 thỡ 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 cỏc 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 cỏc phần khỏc) Các ghi chức đặc biệt Cỏc ghi nội 89S52 truy xuất ngầm định lệnh Ví dụ lệnh "INC A" tăng nội dung ghi tích lũy A lên Tác động ngầm định mó lệnh Cỏc ghi 89S52 định dạng phần RAM chip Vỡ ghi có địa (ngoại trừ ghi trực tiếp, khơng có lợi đặt chúng vào RAM chip) éú lý để 89S52 có nhiều ghi Cũng R0 đến R7, có 21 ghi chức đặc biệt (SFR: Special Funtion Rgister) 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: Ký hiệu Địa PSW.7 PSW.6 PSW.5 PSW.4 PSW.3 PSW.2 PSW.1 PSW.0 CY AC F0 RS1 RS0 OV P D7H D6H D5H D4H D3H D2H D1H D0H í 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 Dự trữ Cờ Parity chẵn l ẻ Cờ nhớ (CY) có cơng dụng kép Thơng thường dùng cho lệnh tốn học: set có số nhớ sinh phép cộng có số mượn phép trừ Ví dụ: ghi tích lũy chứa FFH, thỡ lệnh sau: ADD A,#1 Sẽ trả ghi tớch lũy kết qủa 00H set cờ nhớ PSW Cờ nhớ xem ghi bit cho lệnh luận lý thi hành trờn bit Vớ dụ, lệnh AND bit 25H với cờ nhớ đặt kết qủa trở vào cờ nhớ: ANL C,25H 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, thỡ 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ờ Cờ (F0)là 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 (địa byte IFH) đến ghi tích lũy: :SETB RS1 SETB RSO MOV A,R7 Khi chương trỡnh hợp dịch địa bit thay cho ký hiệu "RS1" "RS0" Vậy lệnh SETB RS1 giống lệnh SETB 0D4H Cờ Tràn Cờ tràn (OV) set lệnh cộng trừ có phép tố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 tố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 c Con trỏ ngăn xếp: Con trỏ ngăn xếp (SP) ghi bit địa 81H Nó chứa địa byte liệu hành đỉnh ngăn xếp Các lệnh ngăn xếp bao gồm thao tác cất liệu vào ngăn xếp lấy liệu khỏi ngăn xếp Lệnh cất liệu vào ngăn xếp làm tăng SP trước ghi liệu, lệnh lấy liệu khỏi ngăn xếp dọc liệu làm giảm SP Ngăn xếp 89S52 giữ RAM nội giới hạn địa truy xuất địa gián tiếp chúng 128 byte đầu 89S52 éể khởi động lại SP với ngăn xếp bắt đầu 60H, lệnh sau dùng: MOV SP,#%FH Trờn 89S52 ngăn xếp bị giới hạn 32 byte vỡ địa cao RAM chip 7FH Sở dĩ giá trị 5FH vỡ SP tăng lên 60H trước cất byte lệu Người thiết kế chọn khơng phải khởi động lại trỏ ngăn xếp mà để lấy giá trị mặc định reset hệ thống Giá trị măc định 07H kết qủa ngăn để cất liệu có địa 08H Nếu phần mềm ứng dụng không khởi động lại SP, bank ghi (có thể 3) khơng dùng vỡ vựng RAM dùng làm ngăn xếp Ngăn xếp truy xuất trực tiếp lệnh PUSH POP để lưu giữ tạm thời lấy lại liệu truy xuất ngầm lệnh gọi chương trỡnh (ACALL, LACALL) cỏc lệnh trở (RET,RETI) để cất lấy lại đếm chương trỡnh d Con 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) e Cỏc ghi port xuất nhõp: Cỏc port 89S52 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 f Cỏc ghi timer: 89S52 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 g Cỏc ghi port nối tiếp: 89S52 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 ) Một ghi gọi đệm liệu nối tiếp (SBUF) địa 99H ssẽ giữ hai giữ liệu truyền nhận Khi truyền liệu thỡ ghi lờn SBUF nhận liệu thỡ đọc SBUF Các mode vận hành khác lập trỡnh qua ghi điều khiển port nối tiếp (SCON) (được địa hóa bit) địa 98H h Cỏc ghi ngắt: 89S52 có cấu trúc nguồn ngắt, mức ưu tiên Các ngắt bị cấm sau reset hệ thống cho phép việc ghi ghi cho phép ngắt (IE) địa 8AH Cả hai ghi địa hóa bit i Các ghi điều khiển công suất: Thanh ghi điều khiển công suất (PCON) địa 87H chứa nhiều bit điều khiển Chúng tóm tắt bảng sau: Bit Ký hiệu í nghĩa SMOD GF1 GF0 PD IDL Bit gấp đôi tốc độ baud, set thỡ tốc độ baud tăng gấp đôi cỏc mode 1,2 port nối tiếp Không định nghĩa Không định nghĩa Không định nghĩa Bit cờ đa dụng Bit cờ đa dụng Giảm cơng suất, set để kích hoạt mode giảm cơng suất, thố reset Mode chờ, set để kích hoạt mode chờ, có ngắt reset hệ thống Bộ định thời Timer 4.1 Các chế độ timer a Chế độ 0, chế độ timer 13 bit éể tương thích với 8048 (có trứớc 89S52) ba bit cao TLX (TL0 và/hoăc TL1) không dùng ... cứu vi điều khiển 8051 chúng em chọn đề tài “ Đo nhiệt độ điều chỉnh nhiệt độ” Đây đề tài không đề tài giúp em hiểu thêm cấu trúc bên trong, cách hoạt động cách lập trình cho vi xử lý Trong đề tài. .. Khi nhiệt độ thấp ngưỡng( đặt) đèn sáng làm tăng nhiệt độ + Sử dụng ngơn ngữ lập trình Assembly LÝ THUYẾT: A GIỚI THIỆU VỀ HỌ VI ĐIỀU KHIỂN 8051: IC vi điều khiển 89S52 có đặc điểm sau... Enable ) : Tín hiệu ra ALE chân 30 tương hợp với thiết bị làm vi? ??c vớicỏc xữ lý 8585, 8088, 8086, 8051 dựng ALE cỏch tương tự cho vi? ??c giải mó cỏc kờnh cỏc bus địa liệu port dùng chế độ chuyển