Đồ án Điều khiển nhiệt độ lò điện

MỤC LỤC

Nội dung Trang

LỜI NÓI ĐẦU---------------------------------------------------------------------------- 1

NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN----------------------------------- 2

NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN------------------------------------- 3

MỤC LỤC-------------------------------------------------------------------------------- 4

CHƯƠNG 1: LÝ THUYẾT ----------------------------------------------------------- 6

1. IC cảm biến nhiệt độ---------------------------------------------------------------- 6

1.1. LM335, LM334 --------------------------------------------------------------- 6

1.2. Đặc tính của một sốIC cảm biến nhiệt thông dụng ---------------------- 7

2. Bộbiến đổi ADC ---------------------------------------------------------------------- 7

2.1. Sơ đồchân ADC0804 ----------------- --------------------------------------- 8

2.2. Chức năng các chân ADC0804 --------------------------------------------- 8

3. Tìm hiểu vềP89V51RB2 ----------------------------------------------------------- 11

3.1. Sơ đồkhối P89V51RB2 ------------------------------------------------------ 11

3.2. Sơ đồchân và chức năng các chân P89V51RB2 -------------------------- 12

3.2.1. Các Port --------------------------------------- -------------------------- 12

3.2.2. Các chân tín hiệu điều khiển ---------------- -------------------------- 14

3.3. Tổchức bộnhớ---------------------------------------------------------------- 15

3.3.1. Bộnhớtrong ------------------------------------------------------------- 15

3.3.1.1. BộnhớROM ------------------------------------------------------ 16

3.3.1.2. BộnhớRAM ----------------------------------------------------- 16

3.3.1.3. Các thang ghi chức năng đặc biệt ------------------------------ 17

3.3.2. Bộnhớngoài ------------------------------------------------------------- 20

3.4. Hoạt động Reset --------------------------------------------------------------- 22

3.5. Các tập lệnh -------------------------------------------------------------------- 23

3.6. Hoạt động của các port nối tiếp --------------------------------------------- 25

3.6.1. Thanh ghi đệm port nối tiếp (SBUF) --------------------------------- 25

3.6.2. Thanh ghi điều khiển Port nối tiếp SCON -------------------------- 25

3.6.3. Khởi động và truy xuất các thanh ghi Port nối tiếp ---------------- 27

CHƯƠNG 2: THIẾT KẾVÀ THI CÔNG ----------------------------------------- 29

1. Tìm hiểu về đềtài -------------------------------------------------------------------- 29

1.1. Nhiệm vụ đặt ra ---------------------------------------------------------------- 29

1.2. Hướng giải quyết ------------------------------------------------------------- 29

2. Thiết kếphần cứng và nguyên lý hoạt động của các khối - ------------------ 29

2.1. Khối cảm biến nhiệt và khối ADC ------------------------------------------ 29

2.2. Khối xửlý và nút nhấn ------------------------------------------------------- 31

2.3. Khối điều khiển quạt, đèn --------------------------------------------------- 32

2.4. Khối hiển thị------------------------------------------------------------------- 33

2.5. Khối nguồn --------------------------------------------------------------------- 33

2.6. Sơ đồnguyên lý điều khiển nhiệt độlò điện ------------------------------ 34

2.7. Sơ đồmạch in điều khiển nhiệt độlò điện -------------------------------- 34

3. Phần mềm và giải thuật ------------------------------------------------------------- 35

3.1. Phần mềm ---------------------------------------------------------------------- 35

3.2. Lưu đồgiải thuật - ------------------------------------------------------------- 35

CHƯƠNG 3: ĐÁNH GIÁ – KẾT LUẬN ------------------------------------------- 37

1. Kết quảthực hiện -------------------------------------------------------------------- 37

2. Khuyết điểm -------------------------------------------------------------------------- 37

3. Hướng khắc phục và phát triển --------------------------------------------------- 37

PHỤC LỤC------------------------------------------------------------------------------- 39

TÀI LIỆU THAM KHẢO ------------------------------------------------------------- 46

pdf45 trang | Chia sẻ: lethao | Lượt xem: 2242 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Đồ án Điều khiển nhiệt độ lò điện, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Vin đối với các đầu vào /2REFV khác nhau. ™ Các chân dữ liệu D0 – D7 (Từ chân 11 đến chân 18): Các chân dữ liệu D0 – D7 (D7 là các bit cao nhất MSB và D0 là bit thấp LSB) là các chân đầu ra dữ liệu số. Đây là những chân được đệm ba trạng thái và dữ liệu được chuyển đổi chỉ được truy cập khi chân CS = 0 và chân RD bị đưa xuống thấp. Để tính điện áp đầu ra ta có thể sử dụng công thức sau: Với Dout là đầu ra dữ liệu số (dạng thập phân). Vin là điện áp đầu vào tương tự và độ phân dãy là sự thay đổi nhỏ nhất được tính như là (2x /2REFV ) chia cho 256 đối với ADC 8 bit. ™ Chân GND (chân số 10): Đây là những chân đầu vào cấp đất chung cho cả tín hiệu số và tương tự. Đất tương tự được nối tới đất của chân Vin tương tự, còn đất số được nối tới đất của chân VCC. Lý do mà ta phải có hai đất là để cách ly tín hiệu tương tự Vin từ các điện áp ký Trường ĐH Công Nghiệp TP. HCM Đồ án 1: Điều khiển nhiệt độ lò điện GVHD: Đào Thị Thu Thủy Trang 11 sinh tạo ra việc chuyển mạch số được chính xác. Trong phần trình bày thì các chân được nối chung với một đất. Tuy nhiên, trong thực tế thu đo dữ liệu các chân đất này được nối tách biệt. Từ những điều trên ta kết luận rằng các bước cần phải thực hiện khi chuyển đổi dữ liệu bởi ADC0804 là: 9 Bật CS = 0 và gửi một xung thấp lên cao tới chân WR để bắt đầu chuyển đổi. 9 Duy trì hiển thị chân INTR . Nếu INTR xuống thấp thì việc chuyển đổi được hoàn tất và ta có thể sang bước kế tiếp. Nếu INTR cao tiếp tục thăm dò cho đến khi nó xuống thấp. 9 Sau khi chân INTR xuống thấp, ta bật CS = 0 và gửi một xung cao xuống thấp đến chân RD để lấy dữ liệu ra khỏi chip ADC0804. Phân chia thời gian cho quá trình này được trình bày như hình 1.6. Hình 1.6: Phân chia thời gian đọc và ghi của ADC0804 3. Tìm hiểu về P89V51RB2: Là bộ vi điều khiển của Philips Corporation. Đây là một phiên bản cải tiến sử dụng CPU là bộ vi điều khiển 80C51 với nhiều tính năng vượt trội: Dung lượng ROM/RAM trên chip rất lớn, 3 Timer 16 bit + 1 Watch-dog Timer, 2 thanh ghi DPTR, 8 nguồn ngắt, PWM (Pulse Width Modulator), SPI (Serial Peripheral Interface) và đặc biệt là bộ nhớ chương trình trên chip có tính năng ISP (In-System Programming) và IAP (In-Application Programming),… 3.1. Sơ đồ khối: Trường ĐH Công Nghiệp TP. HCM Đồ án 1: Điều khiển nhiệt độ lò điện GVHD: Đào Thị Thu Thủy Trang 12 3.2. Sơ đồ chân và chức năng các chân P89V51RB2: P89V51RB2 có 40 chân trong đó 32 chân có công dụng xuất/nhập. Trong 32 chân đó có 24 chân có tác dụng kép (Nghĩa là 1 chân có 2 chức năng), mỗi một đường có thể hoạt động xuất/nhập, hoạt động như một đường điều khiển hoặc hoạt động như một đường địa chỉ/dữ liệu của bus địa chỉ/dữ liệu đa hợp. Hình 1.8: Sơ đồ chân P89V51RB2 3.2.1. Các Port: Hình 1.7: Sơ đồ khối của 89V51RB2 Trường ĐH Công Nghiệp TP. HCM Đồ án 1: Điều khiển nhiệt độ lò điện GVHD: Đào Thị Thu Thủy Trang 13 ™ Port 0: - Port 0 (P0.0 – P0.7) có số chân từ 32 – 39. - Port 0 có chức năng xuất nhập dữ liệu (P0.0 – P0.7) trong các thiết kế cỡ nhỏ không sử dụng bộ nhớ ngoài. - Port 0 có chức năng là bus địa chỉ byte thấp và bus dữ liệu đa hợp (AD0 – AD7) trong các thiết kế cỡ lớn có sử dụng bộ nhớ ngoài. ™ Port 1: - Port 1 (P1.0 – P1.7) có số chân từ 1 – 8. - Port 1 là port xuất nhập dữ liệu (P1.0 – P1.7) khi sử dụng hoặc không sử dụng bộ nhớ ngoài. ™ Port 2: - Port 2 (P2.0 – P2.7) có số chân từ 21 – 28. - Port 2 có chức năng là port xuất nhập dữ liệu (P2.0 – P2.7) khi không sử dụng bộ nhớ ngoài. - Port 2 có chức năng là bus địa chỉ byte cao (A8 - A15) khi sử dụng bộ nhớ ngoài. ™ Port 3: - Port 3 (P3.0 – P3.7) có số chân từ 10 – 17. - Port 3 có chức năng xuất nhập dữ liệu (P3.0 – P3.7) khi không sử dụng bộ nhớ ngoài hoặc các chức năng đặc biệt. - Port 3 có chức năng là các tín hiệu điều khiển khi sử dụng bộ nhớ ngoài hoặc các chức năng đặc biệt. - Chức năng của các chân port 3: Bit Tên Địa chỉ bit Chức năng P3.0 RxD B0H Chân nhận dữ liệu của port nối tiếp. P3.1 TxD B1H Chân phát dữ liệu của port nối tiếp. P3.2 INT0\ B2H Ngõ vào ngắt ngoài 0. P3.3 INT1\ B3H Ngõ vào ngắt ngoài 1. Trường ĐH Công Nghiệp TP. HCM Đồ án 1: Điều khiển nhiệt độ lò điện GVHD: Đào Thị Thu Thủy Trang 14 P3.4 T0 B4H Ngõ vào của bộ định thời/ đếm 0. P3.5 T1 B5H Ngõ vào của bộ định thời/ đếm 1. P3.6 WR\ B6H Điều khiển ghi vào RAM ngoài. P3.7 RD\ B7H Điều khiển đọc từ RAM ngoài. Bảng 1.9: Bảng tóm tắt chức năng các chân của Port 3 3.2.2. Các chân tín hiệu điều khiển: ™ Chân PSEN\: - PSEN (Program Store Enable): Cho phép bộ nhớ chương trình, chân số 29. - Chân PSEN\: Có chức năng là tín hiệu cho phép truy xuất (đọc) bộ nhớ chương trình (ROM) ngoài hoặc là tín hiệu truy xuất, tích cực mức thấp. - PSEN ở mức thấp trong thời gian CPU tìm - nạp lệnh từ ROM ngoài. Khi CPU sử dụng ROM trong, PSEN sẽ ở mức cao. - Khi sử dụng bộ nhớ chương trình bên ngoài, chân PSEN\ thường được nối với chân OE\ của ROM ngoài để cho phép CPU đọc mã lệnh từ ROM ngoài. ™ Chân ALE: - ALE (Address Latch Enable): Cho phép chốt địa chỉ, chân số 30. - Chân ALE có chức năng là tín hiệu cho phép chốt địa chỉ để thực hiện việc giải đa hợp cho bus địa chỉ byte thấp và bus dữ liệu đa hợp (AD0 – AD7). Ngoài ra chân ALE còn là tín hiệu xuất, tích cực mức cao. - Các xung tín hiệu ALE có tốc độ bằng 1/6 lần tần số dao động trên chíp và có thể được dùng làm tín hiệu clock cho các phần khác của hệ thống. Chân ALE được dùng làm ngõ vào xung lập trình (PGM\). ™ Chân EA\: - EA ( External Access): Truy xuất ngoài, chân số 31. - Tín hiệu vào EA\ thường được mắc lên mức 1 hoặc mức 0. Nếu ở mức 1, 89V51RB2 thi hành chương trình từ ROM nội. Nếu ở mức 0, 89V51RB2 thi hành chương trình từ ROM ngoài. Trường ĐH Công Nghiệp TP. HCM Đồ án 1: Điều khiển nhiệt độ lò điện GVHD: Đào Thị Thu Thủy Trang 15 - Khi lập trình cho ROM trong chip thì chân EA đóng vai trò là ngõ vào của điện áp lập trình (Vpp = 12V – 12,5V cho 89V51RB2). ™ Chân Reset: - RST (Reset): Thiết lập lại, chân số 9. - Khi ngõ vào RST đưa lên cao ít nhất 2 chu kỳ máy, 89V51RB2 thiết lập lại trạng thái ban đầu. Khi ngõ vào RST ở mức thấp IC hoạt động bình thuờng. ™ Chân XTAL1, XTAL2: - XTAL (Crystal): Tinh thể thạch anh, chân số 18 – 19. - XTAL1: Ngõ vào mạch tạo xung clock trong chip. - XTAL2: Ngõ ra mạch tạo xung clock trong chip. - Bộ dao động được tích hợp bên trong 89V51RB2, khi sử dụng 89V51RB2 người thiết kế chỉ cần nối thêm thạch anh (Tần số thạch anh thường sử dụng là 12MHZ) và tụ. ™ Chân VCC, GND: - VCC, GND: Nguồn cung cấp điện, chân số 40 và 20. - VCC = +5V ± 10% và GND = 0V. 3.3. Tổ chức bộ nhớ: SFR 80H 7FH 00H Bộ nhớ chương trình (mã) FFFH 000H Bộ nhớ trong chip PSEN\ ª WR\ RD\ ª ª Bộ nhớ chương trình (mã) FFFFH 0000H Bộ nhớ dữ liệu Bộ nhớ ngoài chip Trường ĐH Công Nghiệp TP. HCM Đồ án 1: Điều khiển nhiệt độ lò điện GVHD: Đào Thị Thu Thủy Trang 16 Hình 1.10: Tóm tắt các vùng nhớ của 89V51RB2 3.3.1. Bộ nhớ trong: Bộ nhớ trong 89V51RB2 bao gồm ROM và RAM. RAM trong 89V51RB2 bao gồm nhiều thành phần: RAM đa chức năng, RAM định địa chỉ bit và các dãy thanh ghi. 3.3.1.1. Bộ nhớ ROM (Bộ nhớ chương trình): Bộ nhớ chương trình dùng để lưu trữ chương trình điều khiển cho chip hoạt động. 3.3.1.2. Bộ nhớ RAM (Bộ nhớ dữ liệu): Bộ nhớ dữ liệu dùng để lưu trữ các dữ liệu và tham số. ™ RAM đa chức năng: - Trên hình vẽ cho thấy 80 byte RAM đa chức năng chiếm địa chỉ từ 30H đến 7FH. - Mọi địa chỉ trong vùng RAM đa chức năng đều có thể truy xuất tự do dùng kiểu định địa chỉ trực tiếp hoặc gián tiếp. ™ RAM định địa chỉ bit: - RAM định địa chỉ bit gồm 128 bit được định địa chỉ chứa các byte có địa chỉ từ 20H đến 2FH. - RAM định địa chỉ bit có 3 kiểu truy xuất dữ liệu: trực tiếp, gián tiếp hoặc theo từng bit. ™ Các dãy thanh ghi: - 32 vị trí thấp của bộ nhớ nội chứa các dãy thanh ghi. Các lệnh của 89V51RB2 hỗ trợ 8 thanh ghi từ R0 – R7 thuộc dãy 0 và theo mặc định sau khi Reset hệ thống các thanh ghi này ở các địa chỉ từ 00H đến 07H. - Các lệnh dùng các thanh ghi R0 đến R7 sẽ ngắn hơn và nhanh hơn so với các lệnh có chức năng tương ứng dùng kiểu địa chỉ trực tiếp. Các dữ liệu được dùng thường xuyên nên dùng một trong các thanh ghi này. Trường ĐH Công Nghiệp TP. HCM Đồ án 1: Điều khiển nhiệt độ lò điện GVHD: Đào Thị Thu Thủy Trang 17 - Do có 4 dãy thanh ghi nên tại một thời điểm chỉ có một dãy thanh ghi tích cực. Dãy thanh ghi tích cực có thể được thay đổi bằng cách thay đổi bit chọn dãy trong từ trạng thái chương trình PSW. 3.3.1.3. Các thang ghi chức năng đặc biệt: - Các thanh ghi nội của hầu hết các bộ vi xử lý đều được truy xuất rõ ràng bởi một tập lệnh. - Các thanh ghi nội của 89V51RB2 được cấu hình thành một phần của RAM trên chip, vì vậy mỗi thanh ghi sẽ có một địa chỉ (ngoại trừ thanh ghi bộ đếm chương trình và thanh ghi lệnh vì các thanh ghi này hiếm khi bị tác động trực tiếp). Cũng như các thanh ghi từ R0 đến R7, ta có 21 thanh ghi chức năng đặc biệt (SFR: Special Function Register) chiếm phần trên của RAM nội từ địa chỉ 80H đến FFH. - Ngoại trừ thanh ghi A có thể được truy xuất rõ ràng còn lại hầu hết các thanh ghi chức năng đặc biệt được truy xuất bằng kiểu định địa chỉ trực tiếp. ™ Thanh ghi từ PSW (Program Status Word): Bit Ký hiệu Địa chỉ Mô tả bit PSW.7 CY D7H Cờ nhớ PSW.6 AC D6H Cờ nhớ phụ PSW.5 F0 D5H Cờ 0 PSW.4 RS1 D4H Chọn dãy thanh ghi (bit 1) PSW.3 RS0 D3H Chọn dãy thanh ghi (bit 0): 00 = dãy 0: địa chỉ từ 00H đến 07H 01 = dãy 1: địa chỉ từ 08H đến 0FH 10 = dãy 2: địa chỉ từ 10H đến 17H 11 = dãy 2: địa chỉ từ 18H đến 1FH PSW.2 OV D2H Cờ tràn Trường ĐH Công Nghiệp TP. HCM Đồ án 1: Điều khiển nhiệt độ lò điện GVHD: Đào Thị Thu Thủy Trang 18 PSW.1 - D1H Dự trữ PSW.0 P D0H Cờ kiểm tra chẵn lẻ Bảng1.11: Thanh ghi PSW ™ Thanh ghi A: - Thanh ghi A là thanh ghi tích lũy có công dụng chứa dữ liệu của các phép toán mà vi điều khiển xử lý. Ví dụ lệnh MUL AB sẽ nhân những giá trị không dấu 8 bit có trong hai thanh ghi A và B, rồi trả về kết quả 16 bit trong A (byte thấp) và B (byte cao). Lệnh DIV AB sẽ lấy A chia B, kết quả số nguyên đặt vào A, số dư đặt vào B. - Thanh ghi A có địa chỉ byte là E0H và địa chỉ bit từ E0H – E7H. ™ Thanh ghi B: - Thanh ghi B ở địa chỉ F0H được dùng cùng với thanh ghi A cho các phép toán nhân chia. - Thanh ghi B có thể được dùng như một thanh ghi đệm trung gian đa mục đích. Nó là những bit định vị thông qua những địa chỉ từ F0H – F7H. ™ Thanh ghi SP: - Con trỏ ngăn xếp (SP: Stack Pointer) là một thanh ghi 8 bit ở địa chỉ byte là 81H, dùng để lưu trữ tạm thời các dữ liệu. Đây là thanh ghi không định địa chỉ bit. Thanh ghi này chứa địa chỉ của byte dữ liệu hiện hành trên đỉnh ngăn xếp. Các lệnh trên ngăn xếp bao gồm lệnh cất dữ liệu vào ngăn xếp (PUSH) và lệnh lấy dữ liệu ra khỏi ngăn xếp (POP). Lệnh cất dữ liệu vào ngăn xếp sẽ làm tăng SP trước khi ghi dữ liệu và lệnh lấy ra khỏi ngăn xếp sẽ làm giảm SP. Đối với chip 8051 thì vùng nhớ được dùng để làm ngăn xếp được lưu giữ trong RAM nội. - Để sử dụng ngăn xếp thì ta phải khởi động thanh ghi SP (nghĩa là nạp giá trị cho thanh ghi SP) → vùng nhớ của ngăn xếp có địa chỉ bắt đầu là (SP) +1 và địa chỉ kết thúc là 7FH. - Sau khi reset IC, SP sẽ mang giá trị mặc định là 07H và dữ liệu đầu tiên sẽ được cất vào ô nhớ ngăn xếp có địa chỉ 08H. Nếu phần mềm ứng dụng không khởi Trường ĐH Công Nghiệp TP. HCM Đồ án 1: Điều khiển nhiệt độ lò điện GVHD: Đào Thị Thu Thủy Trang 19 động SP một giá trị mới thì dãy thanh ghi 1, có thể cả 2 và 3 sẽ không dùng được vì vùng RAM này đã được dùng làm ngăn xếp. Ngăn xếp được truy xuất trực tiếp bằng các lệnh PUSH và POP để lưu trữ tạm thời và lấy lại dữ liệu, hoặc truy xuất ngầm bằng lệnh gọi chương trình con (ACALL, LCALL) và các lệnh trở về (RET, RETI) để lưu trữ giá trị của bộ đếm chương trình khi bắt đầu thực hiện chương trình con và lấy lại khi kết thúc chương trình con. ™ Thanh ghi DPTR: - Con trỏ dữ liệu (DPTR: Data Pointer Register) là thanh ghi 16 bit chứa địa chỉ của ô nhớ cần truy xuất thuộc ROM trong hoặc ngoài và RAM ngoài. - Thanh ghi DPTR có địa chỉ byte là 82H (DPL: byte thấp) và 83H (DPH: byte cao). Thanh ghi này không định địa chỉ bit. ™ Thanh ghi port xuất nhập: Các Port của P89V51RB2 bao gồm Port 0 ở địa chỉ 80H, Port 1 ở địa chỉ 90H, Port 2 ở địa chỉ A0H, Port 3 ở địa chỉ B0H. Tất cả các Port này đều có thể truy xuất từng bit nên rất thuận tiện trong khả năng giao tiếp. ™ Thanh ghi port nối tiếp: P89V51RB2 chứa một port nối tiếp cho việc trao đổi thông tin với các thiết bị nối tiếp như máy tính hoặc giao tiếp nối tiếp với các IC khác. Một thanh ghi đệm dữ liệu nối tiếp (SBUF: Serial Buffer) ở địa chỉ 99H sẽ giữ cả dữ liệu truyền và dữ liệu nhận. Khi truyền dữ liệu thì ghi lên SBUF, khi nhận dữ liệu thì đọc SBUF. Ngoài ra còn có thanh ghi điều khiển port nối tiếp (SCON: Serial Control) có địa chỉ byte 98H dùng để báo trạng thái và điều khiển quá trình hoạt động của port nối tiếp. ™ Thanh ghi định thời: 89V51RB2 có chứa hai bộ định thời/bộ đếm 16 bit được dùng cho việc định thời hoặc đếm sự kiện. Timer 0 ở địa chỉ 8AH (TL0: byte thấp) và 8CH (TH0: byte cao). Timer 1 ở địa chỉ 8BH (TL1: byte thấp) và 8DH (TH1: byte cao). Việc khởi động Timer được SET bởi Timer Mode (TMOD) ở địa chỉ 89H và thanh ghi điều khiển Timer (TCON) ở địa chỉ 88H. Chỉ có TCON được địa chỉ hoá từng bit. ™ Thanh ghi ngắt: Trường ĐH Công Nghiệp TP. HCM Đồ án 1: Điều khiển nhiệt độ lò điện GVHD: Đào Thị Thu Thủy Trang 20 - Thanh ghi IE (Interrupt Enable: Cho phép ngắt) có địa chỉ byte A8H và địa chỉ bit A8H – AFH có công dụng cho phép hoặc không cho phép các ngắt hoạt động (có thể từng ngắt riêng rẽ hoặc tất cả các ngắt). - Thanh ghi IP (Interrup Priority: Ưu tiên ngắt) có địa chỉ byte B8H và địa chỉ bit B8H – BCH có công dụng thiết lập mức ưu tiên cho các ngắt (ưu tiên thấp hoặc ưu tiên cao). ™ Thanh ghi điều khiển nguồn: Thanh ghi PCON (Power Control: Điều khiển nguồn) không có bit định vị. Nó ở địa chỉ 87H chứa nhiều bit điều khiển. Thanh ghi PCON được tóm tắt như sau: • Bit 7 (SMOD) → cho phép tăng gấp đôi tốc độ truyền dữ liệu nối tiếp (tốc độ baud) khi SMOD = 1. • Bit 6, 5, 4 → không có địa chỉ. • Bit 3, 2 (GF1, GF0) → cho phép người lập trình dùng với mục đích riêng. • Bit 1 (PD) → dùng để quy định chế độ nguồn giảm. • Bit 0 (IDL) → dùng để quy định chế độ nghỉ. Các bit điều khiển Power Down và Idle có tác dụng chính trong tất cả các IC họ MCS – 51 nhưng chỉ được thi hành trong sự biên dịch của CMOD. 3.3.2. Bộ nhớ ngoài: - 89V51RB2 có khả năng mở rộng không gian bộ nhớ chương trình lên đến 64KB và không gian bộ nhớ dữ liệu lên đến 64KB. - Khi dùng bộ nhớ ngoài, Port 0 không còn chức năng I/O nữa mà đó là bus địa chỉ byte thấp và bus dữ liệu đa hợp (AD0 – AD7). Port 2 là bus địa chỉ byte cao (A8 - A15). Port 3 là các tín hiệu điều khiển (WR\, RD\). ™ Kết nối và truy xuất bộ nhớ dữ liệu ngoài: Trường ĐH Công Nghiệp TP. HCM Đồ án 1: Điều khiển nhiệt độ lò điện GVHD: Đào Thị Thu Thủy Trang 21 Hình 1.12: Sơ đồ kết nối và truy xuất bộ nhớ dữ liệu ngoài Bộ nhớ dữ liệu ngoài là bộ nhớ đọc/ghi được cho phép bởi các tín hiệu RD\ và WR\ ở các chân P3.7 và P3.6. Lệnh dùng để truy xuất bộ nhớ dữ liệu ngoài là MOVX, sử dụng con trỏ dữ liệu 16 bit DPTR hoặc R0, R1 làm thanh ghi chứa địa chỉ. ™ Giải mã địa chỉ: Nếu trường hợp ROM và RAM được kết hợp từ nhiều bộ nhớ có dung lượng nhỏ hoặc cả hai giao tiếp với chip 89V51 thì cần phải giải mã địa chỉ. Việc giải mã này cần cho hầu hết các bộ vi xử lý. Ví dụ nếu các ROM và RAM có dung lượng 8KB được sử dụng thì tầm địa chỉ mà chip 89V51 quản lý (0000H – FFFFH) cần phải được giải mã thành từng đoạn 8KB để chip có thể chọn từng IC nhớ trên các giới hạn 8KB tương ứng: IC1: 0000H – 1FFFH, IC2: 2000H – 3FFFH,… IC chuyên dùng cho việc tạo tín hiệu giải mã là 74HC138, các ngõ ra của IC này lần lượt nối với các ngõ vào chọn chip CS\ tương ứng của các IC nhớ để cho các IC nhớ hoạt động (tại một thời điểm chỉ có một IC nhớ được phép hoạt động). Cần lưu ý là do các đường cho phép IC nhớ hoạt động riêng lẻ cho từng loại (PSEN\ cho bộ D0 – D7 A0 – A7 CS\ A8– A15 OE\ RAM 64KB WR\ D Q G 74373 AD0 – AD7 EA\ ALE A8 – A15 RD\ 8951 WR\ Trường ĐH Công Nghiệp TP. HCM Đồ án 1: Điều khiển nhiệt độ lò điện GVHD: Đào Thị Thu Thủy Trang 22 R2 8K2 VCC RESET 0 R1 100 C3 10uF nhớ chương trình, RD\ và WR\ cho bộ nhớ dữ liệu) nên 89V51 có thể quản lý không gian nhớ lên đến 64KB cho ROM và 64KB cho RAM. ™ Các không gian nhớ chương trình và dữ liệu gối nhau: Vì bộ nhớ chương trình là bộ nhớ chỉ đọc, một tình huống khó xử được phát sinh trong quá trình phát triển phần mềm cho 8951. Làm thế nào phần mềm được viết cho một hệ thống đích để gỡ rối nếu phần mềm chỉ có thể được thực thi từ không gian bộ nhớ chương trình chỉ đọc. Giải pháp tổng quát là cho các bộ nhớ chương trình và dữ liệu ngoài gối lên nhau. Vì PSEN\ được dùng để đọc chương trình và RD\ được dùng để đọc bộ nhớ dữ liệu, một RAM có thể chiếm không gian nhớ chương trình và dữ liệu bằng cách nối chân OE\ tới ngõ ra cổng AND có các ngõ vào là PSEN\ và RD\. 3.4. Hoạt động Reset: Hình 1.13: Hoạt động Reset 89V51RB2 có ngõ vào Reset tác động ở mức cao trong khoảng thời gian 2 chu kỳ xung máy, sau đó xuống mức thấp để 89V51RB2 bắt đầu làm việc. RST có thể kích bằng tay bởi một nút nhấn thường hở hoặc RST khi cấp nguồn. Trạng thái của các thanh ghi sau khi Reset hệ thống: ƒ Bộ đếm chương trình (PC) 0000H ƒ Thanh ghi A 00H ƒ Thanh ghi B 00H ƒ Thanh ghi PSW 00H ƒ Thanh ghi SP 07H ƒ Thanh ghi DPTR 0000H Trường ĐH Công Nghiệp TP. HCM Đồ án 1: Điều khiển nhiệt độ lò điện GVHD: Đào Thị Thu Thủy Trang 23 ƒ Port 0 – Port3 FFH ƒ Thanh ghi IP xxx00000B ƒ Thanh ghi IE 0xx00000B ƒ Các thanh ghi định thời 00H ƒ Thanh ghi SCON 00H ƒ Thanh ghi SBUF 00H ƒ Thanh ghi PCON (HMOS) 0xxxxxxxB ƒ Thanh ghi PCON (CMOS) 0xxx0000B 3.5. Các tập lệnh: ™ Các lệnh số hoc: ADD A, SUBB A, INC DEC MUL AB : (A) ← LOW [(A) x (B)]; có ảnh hưởng cờ OV : (B) ← HIGH [(A) x (B)]; cờ Carry được xoá DIV AB : (A) ← Integer result of [(A) / (B)]; cờ OV : (B) ← Remainder of [(A) / (B)]; cờ Carry xoá. ™ Các lệnh logic: Tất cả các lệnh logic sử dụng thanh ghi A như là một trong những toán hạng thực thi một chu kì máy, ngoài A mất 2 chu kì máy. Những hoạt động logic có thể được thực hiện trên bất kì byte nào trong vị trí nhớ dữ liệu nội mà không thông qua thanh ghi A. Các hoạt động logic được tóm tắt như sau: ANL , ORL , XRL , RL A : Quay thanh ghi A qua trái 1 bit Trường ĐH Công Nghiệp TP. HCM Đồ án 1: Điều khiển nhiệt độ lò điện GVHD: Đào Thị Thu Thủy Trang 24 RLC A : Quay vòng thanh ghi A qua trái 1 bit có cờ Carry RR A : Quay thanh A ghi sang phải 1 bit ™ Các lệnh rẽ nhánh: JC Rel : Nhảy đến “Rel” nếu cờ carry C = 1. JNC Rel : Nhảy đến “Rel” nếu cờ Carry C = 0 JB bit, rel : Nhảy đến “Rel” nếu (bit) = 1 JNB bit, rel : Nhảy đến “rel” nếu (bit) = 0 JBC bit, rel : Nhảy đến “rel” nếu (bit) = 1 và xoá bit. ACALL addr 11 : Lệnh gọi tuyệt đối trong Page 2K LCAL Addr 16 : Lệnh gọi dài chương trình con trong 64 K RET : Kết thúc chương trình con trở về chương trình chính. RETI : Kết thúc thủ tục phục vụ ngắt quay về chương trình chính AJMP addr11 : Nhảy tuyệt đối không điều kiện trong 2 K LJMP addr16 : Nhảy dài không điều kiện trong 64 K SJMP rel : Nhảy ngắn không điều kiện trong (-128 ÷ 127) byte. CJNE A, direct, rel : so sánh và nhảy đến A nếu A ≠ direct DJNE Rn, rel : Giảm Rn và nhảy nếu Rn ≠ 0 DJNZ direct, rel : Giảm và nhảy nếu direct ≠ 0 ™ Các lệnh dịch chuyển dữ liệu: Các lệnh dịch chuyển dữ liệu trong những vùng nhớ nội thực thi 1 hoặc 2 chu kỳ máy. Mẫu lệnh MOV , cho phép di chuyển dữ liệu bất kỳ 2 vùng nhớ nào của RAM nội hoặc các vùng nhớ của các thanh ghi chức năng đặc biệt mà không thông qua thanh ghi A. Vùng Stack của 8051 chỉ chứa 128 byte RAM nội, nếu con trỏ Stack SP được tăng quá địa chỉ 7FH thì các byte được PUSH vào sẽ mất đi vào các byte POP ra thì không biết rõ. Các lệnh dịch chuyển bộ nhớ nội và bộ nhớ ngoại dùng sự định vị gián tiếp. Địa chỉ gián tiếp có thể dùng địa chỉ 1 byte (@ Ri) hoặc địa chỉ 2 byte (@ DPTR). Tất cả các lệnh dịch chuyển hoạt động trên toàn bộ nhớ ngoài thực thi trong 2 chu kỳ máy và dùng thanh ghi A làm toán hạng DESTINATION. Việc đọc và ghi RAM ngoài (RD và WR) chỉ tích cực trong suốt quá trình thực thi của lệnh MOVX, còn bình thường RD và WR không tích cực (mức 1). ™ Các lệnh luận lý: Trường ĐH Công Nghiệp TP. HCM Đồ án 1: Điều khiển nhiệt độ lò điện GVHD: Đào Thị Thu Thủy Trang 25 CLR C : Xoá cờ Carry xuống 0. Có ảnh hưởng cờ Carry. CLR BIT : Xoá bit xuống 0. Không ảnh hưởng cờ Carry. SET C : Set cờ Carry lên 1. Có ảnh hưởng cờ Carry. SET BIT : Set bit lên 1. Không ảnh hưởng cờ Carry. CPL C : Đảo bit cờ Carry. Có ảnh hưởng cờ Carry. CPL BIT : Đảo bit. Không ảnh hưởng cờ Carry. ANL C, BIT : Có ảnh hưởng cờ Carry. ANL C, BIT : Không ảnh hưởng cờ Carry. ORL C, BIT : Tác động cờ Carry. ORL C, : Tác động cờ Carry. MOV C, BIT : Cờ Carry bị tác động. MOV BIT, C : Không ảnh hưởng cờ Carry. 3.6. Hoạt động của các port nối tiếp: Port nối tiếp tham dự hoạt động đầy đủ (sự phát và thu cùng lúc), và thu vào bộ đệm mà nó cho phép 1 ký tự nhận vào và được cất ở bộ đệm trong khi ký tự thứ hai được nhận vào. Nếu CPU đọc ký tự thứ nhất trước khi ký tự thứ hai được nhận vào hoàn toàn thì dữ liệu không bị mất. 3.6.1. Thanh ghi đệm port nối tiếp (SBUF): Thanh ghi SBUF (Serial Buffer Register): Được dùng để lưu giữ dữ liệu cần phát đi và dữ liệu đã nhận được. Việc ghi dữ liệu lên thanh ghi SBUF sẽ nạp dữ liệu để phát đi và việc đọc dữ liệu từ thanh ghi SBUF sẽ truy xuất dữ liệu đã thu được. Thanh ghi SBUF bao gồm 2 thanh ghi: - Thanh ghi phát (Bộ đệm phát): Dùng để lưu giữ dữ liệu cần phát đi. - Thanh ghi thu (Bộ đệm thu): Dùng để lưu giữ dữ liệu đã được nhận. 3.6.2. Thanh ghi điều khiển Port nối tiếp SCON: Mode hoạt động của Port nối tiếp được set bởi việc ghi lên thanh ghi mode của Port nối tiếp SCON ở địa chỉ 99H. Bảng tóm tắt thanh ghi điều khiển Port nối tiếp SCON như sau: Bit Ký hiệu Địa chỉ Mô tả hoạt động SCON.7 SM0 9FH Bit 0 của mode Port nối tiếp Trường ĐH Công Nghiệp TP. HCM Đồ án 1: Điều khiển nhiệt độ lò điện GVHD: Đào Thị Thu Thủy Trang 26 Hình 1.14: Chức năng thanh ghi SCON SM0 SM1 MODE MÔ TẢ TỐC ĐỘ BAUD 0 0 0 Thanh ghi dịch Cố định (tần số dao động/12) 0 1 1 UART 8 bit Thay đổi (thiết lập bởi bộ định thời) 1 0 2 UART 9 bit Cố định (tần số dao động /12 hoặc /64) 1 1 3 UART 9 bit Thay đổi (thiết lập bởi bộ định thời) Hình 1.15: Các chế độ hoạt động của Port nối tiếp Trước khi dùng Port nối tiếp, SCON phải được định đúng chế độ. VD: Để khởi tạo Port nối tiếp chế độ 1 (SM0/SM1 = 0/1), cho phép thu (REN = 1), và set cờ ngắt của việc phát sẵn sàng hoạt động (TI = 1), ta dùng lệnh sau : MOV SCON, #01010010H. Port nối tiếp của 89V51RB2 có 4 mode hoạt động tùy thuộc theo trạng thái của SM0/SM1. Ba trong 4 mode cho phép truyền động bộ với mỗi ký tự thu hoặc phát sẽ được bố trí bởi bit Start hoặc bit Stop. 3.6.3. Khởi động và truy xuất các thanh ghi Port nối tiếp: SCON.6 SM1 9EH Bit 1 của mode Port nối tiếp SCON.5 SM2 9DH Bit 2 của mode Port nối tiếp. cho phép sự truyền của bộ xử lý đa kênh ở mode 2 và 3; RI sẽ không tích cực nếu bit thứ 9 đã thu vào là 0. SCON.4 REN 9CH REN = 1 sẽ cho phép thu ký tự SCON.3 TB8 9BH Phát bit 8. Bit 9 phát trong mode 2 và 3, được set và xóa bởi phần mềm SCON.2 RB8 9AH Thu bit 8. Bit thứ 9 nhận được SCON.1 TI 99H Cờ ngắt phát. Cờ này được set ngay khi kết thúc việc phát một ký tự; được xóa bởi phần mềm SCON.0 RI 98H Cờ ngắt thu. Cờ này được set ngay khi kết thúc việc thu một ký tự; được xóa bởi phần mềm Trường ĐH Công Nghiệp TP. HCM Đồ án 1: Điều khiển nhiệt độ lò điện GVHD: Đào Thị Thu Thủy Trang 27 ™ Bit cho phép thu dữ liệu (REN: Receive Enable): Bit cho phép thu REN trong thanh ghi SCON phải được set bởi phần mềm để cho phép sự thu các ký tự. Điều này thường được dùng làm ở đầu chương trình khi các Port nối tiếp và các timer được khởi động. Ta có thể tác động bằng lệnh: SETB REN hoặc: MOV SCON, # xxx1xxxxB ™ Dùng Timer tạo tốc độ Baud cho Port nối tiếp: Muốn tạo ra tốc độ Baud, ta khởi tạo TMOD ở chế độ tự nạp lại 8 bit (mode 2 của timer) và đặt trước giá trị nạp lại đúng vào byte cao của thanh ghi timer 1 (TH1) để tạo ra tố

Các file đính kèm theo tài liệu này:

  • pdfĐiều khiển nhiệt độ lò điện.pdf