Đồ án Thiết kế mạch đo độ ẩm hiển thị lên LCD

Ngày nay cùng với sự phát triển nhanh chóng của khoa học kỹ thuật thì các lĩnh vực ứng dụng kỹ thuật công nghệ cao ngày càng phát triển và kỹ thuật điện tử đã và đang khẳng định vai trò to lớn của mình. Lĩnh vực ứng dụng điện tử số đang ngày càng lớn mạnh và được ưa chuộng vì tính đa dạng, chính xác và những ưu điểm vượt trội so với kỹ thuật tương tự. chính vì vậy mà trong những năm gần đây, trong chương trình giảng dạy tại các trường đại học kỹ thuật các môn học về điện tử số luôn được chú trọng chuyên sâu. Hòa mình cùng sự phát triển mạnh mẽ đó, trường Đại Học công Nghệ Tp. Hồ Chí Minh đã luôn nâng cao trang thiết bị học tập, cập nhật chương trình giảng dạy để sinh viên có thể luôn nắm bắt được những kiến thức tốt nhất đáp ứng cho nhu cầu học tập và xã hội. Những môn học về điện tử đã được ứng dụng rất nhiều. Bên cạnh đó nhà trường còn tạo mọi điều kiện để sinh viên có thể làm quen với các trang thiết bị qua các mô hình học tập. Ngoài ra nhà trường còn hướng dẫn cho các sinh viên làm các đồ án môn học như là các bài tập lớn nhằm giúp cho sinh viên phát huy khả năng sáng tạo, tự nghiên cứu và trình bày khoa học. Dưới đây là một trong những ứng dụng của điện tử số trong cuộc sống hàng ngày đó là Mạch Đo Độ Ẩm.

docx62 trang | Chia sẻ: duongneo | Lượt xem: 6936 | Lượt tải: 4download
Bạn đang xem trước 20 trang tài liệu Đồ án Thiết kế mạch đo độ ẩm hiển thị lên LCD, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
LỜI CẢM ƠN Lời đầu tiên em xin chân thành cảm ơn tất cả quí thầy/cô giáo đã hướng dẫn và chỉ bảo hết sức tận tình trong thời gian em làm Đồ án CƠ SỞ II vừa qua, đặc biệt là khoa Cơ - Điện – Điện Tử đã tạo điều kiện thuận lợi nhất cho em hòan thành đồ án này. Em cũng vô cùng biết ơn Thầy : Đinh Sỹ Hiền là người trực tiếp hướng dẫn và chỉ bảo hết sức tận tình cho em hoàn thành Đồ án Thiết Kế Mạch Đo Độ Ẩm Hiển Thị Lên LCD này. Với ước mong học hỏi, em rất mong nhận được sự góp ý của quí thầy, cô giáo chỉ bảo, hướng dẫn thêm để em rút kinh nghiệm cho những đồ án tiếp theo được tốt hơn. Xin chân thành cảm ơn Thành phố Hồ Chí Minh, ngày tháng 6 năm 2016 Sinh viên thực hiện LỜI NÓI ĐẦU Ngày nay cùng với sự phát triển nhanh chóng của khoa học kỹ thuật thì các lĩnh vực ứng dụng kỹ thuật công nghệ cao ngày càng phát triển và kỹ thuật điện tử đã và đang khẳng định vai trò to lớn của mình. Lĩnh vực ứng dụng điện tử số đang ngày càng lớn mạnh và được ưa chuộng vì tính đa dạng, chính xác và những ưu điểm vượt trội so với kỹ thuật tương tự. chính vì vậy mà trong những năm gần đây, trong chương trình giảng dạy tại các trường đại học kỹ thuật các môn học về điện tử số luôn được chú trọng chuyên sâu. Hòa mình cùng sự phát triển mạnh mẽ đó, trường Đại Học công Nghệ Tp. Hồ Chí Minh đã luôn nâng cao trang thiết bị học tập, cập nhật chương trình giảng dạy để sinh viên có thể luôn nắm bắt được những kiến thức tốt nhất đáp ứng cho nhu cầu học tập và xã hội. Những môn học về điện tử đã được ứng dụng rất nhiều. Bên cạnh đó nhà trường còn tạo mọi điều kiện để sinh viên có thể làm quen với các trang thiết bị qua các mô hình học tập. Ngoài ra nhà trường còn hướng dẫn cho các sinh viên làm các đồ án môn học như là các bài tập lớn nhằm giúp cho sinh viên phát huy khả năng sáng tạo, tự nghiên cứu và trình bày khoa học. Dưới đây là một trong những ứng dụng của điện tử số trong cuộc sống hàng ngày đó là Mạch Đo Độ Ẩm. Em xin chân thành cảm ơn thầy Đinh Sỹ Hiền đã tận tình giúp đỡ và hướng dẫn để em hoàn thành đồ án môn học này. Em cũng xin gửi lời cảm ơn tới các thầy cô đã giảng dạy và giúp đỡ em rất nhiều trong quá trình học tập. Thành phố Hồ Chí Minh, ngày 22 tháng 6 năm 2016 Sinh viên thực hiện LỜI NHẬN XÉT CỦA GIÁO VIÊN TP.HCM,ngày tháng 6 năm 2016 Giảng viên hưóng dẫn Ký tên: LỜI NHẬN XÉT CỦA GIÁO VIÊN TP.HCM,ngày tháng 6 năm 2016 Giảng viên hưóng dẫn. Ký tên: MỤC LỤC CHƯƠNG I: GIỚI THIỆU ĐỀ TÀI 7 I. Đặt vấn đề...7 II. Mục đích đề tài...7 III. Đối tượng nghiên cứu...7 IV. Lập kế hoạch ghiên cứu...8 V. Giới hạn đề tài...8 CHƯƠNG II: GIỚI THIỆU LINH KIỆN 9 PHẦN I- PIC...9 I. Tổng quang về PIC...9 II. Cấu trúc tổng quang về PIC AT89S52...11 III. Các ứng dụng của PIC AT89S52...24 Phần 2- LCD 16x02...24. I. Hình dáng và kích thước...24 II. Chức năng các chân ...25 III. Sơ đồ khối của HD44780...26 IV. Tập lệnh của LCD...33 V. Giao tiếp giữa LCD và MPU...38 VI. Khởi tạo LCD...40 PHẦN 3- ĐIỆN TRỞ...44 I. Cấu Tạo...44 II. Kí Hiệu...44 PHẦN 4- TỤ ĐIỆN...44 PHẦN 5- DHT11 Cảm biết độ ẩm...47 I. Thông số DHT11...47 II. Sơ đồ và chức năng chân của linh kiện điện tử DHT11...47 III. Kích thước của DHT11...48 IV. Nguyên lý hoạt động của linh kiện điên tử DHT11...48 CHƯƠNG III: THIẾT KẾ VÀ THI CÔNG...51 I. SƠ ĐỒ KHỐI...51 II. KHỐI NGUỒN..51 III. KHỐI NGÕ VÀO...52 IV. KHỐI VI XỬ LÝ...52 V. KHỐI HIỂN THỊ...53 CHƯƠNG IV: SƠ ĐỒ NGUYÊN LÝ VÀ MẠCH IN...54 I. NGUYÊN LÝ HOẠT ĐỘNG...56 II. Lưu đồ giải thuật...56 III. CODE CHƯƠNG TRÌNH...57 CHƯƠNG V: KẾT LUẬN VÀ PHÁT TRIỂN ĐỀ TÀI...59 DANH MỤC CÁC TỪ VIẾT TẮT...60 CHƯƠNG I: GIỚI THIỆU ĐỀ TÀI I. ĐẶT VẤN ĐỀ Ngày nay, khi mà cả thế giới như đang nóng lên vì sự vận động, phát triển về mọi mặt như kinh tế, chính trị, khoa học kỹ thuật.vv..Trong đó, những ứng dụng của khoa học kỹ thuật tiên tiến đã và đang làm cho thế giới ngày càng thay đổi, văn minh hơn và hiện đại hơn. Sự phát triển của Kỹ thuật điện tử đã tạo ra hàng loạt những thiết bị với các đặc điểm nổi bật như sự chính xác cao, tốc độ nhanh, gọn nhẹ, an toàn là những yếu tố rất cần thiết góp phần cho họat động của con người đạt hiệu quả cao. Trong đó vấn đề an toàn được quan tâm nhiều nhất. Được sự đồng ý của khoa Cơ Điện-Điện Tử trường Đại Học Công Nghệ TP Hồ Chí Minh em tiến hành thực hiện đề tài “MẠCH ĐO ĐỘ ẨM HIỂN THỊ LÊN LCD” để làm đồ án cơ sở II cho mình. Đề tài là sự kết hợp giữa kiến thức học được trong nhà trường với quá trình tìm tòi nghiên cứu và sự hướng dẫn tận tình của giáo viên hướng dẫn, song chắc chắn không tránh khỏi những hạn chế và thiếu sót. Em rất mong nhận được những ý kiến đóng góp quý báu cùng những phê bình, chỉ dẫn của Thầy Cô và các bạn. II. MỤC ĐÍCH ĐỀ TÀI: Mục đích của người thực hiện đề tài đã tiến hành nghiên cứu là: Trước tiên là để hoàn thành môn học . Với bản thân người thực hiện đề tài, đây chính là một cơ hội tốt để có thể tự kiểm tra lại kiến thức của mình, đồng thời có cơ hội để nỗ lực vận động tìm hiểu, tiếp cận nghiên cứu được với những vấn đề mình chưa biết, chưa hiểu rõ nhằm trang bị cho bản thân nhiều kiến thức bổ ích sau này có thể ứng dụng vào thực tế cuộc sống. Tập tính làm việc độc lập, khả năng tự suy nghĩ tìm tòi, học hỏi, phát huy năng lực của bản thân. Ngoài ra còn tạo được 1 sản phẩm có tính ứng dụng trong thực tế. III. ĐỐI TƯỢNG NGHIÊN CỨU: - Các phương án điều khiển và xử lý dữ liệu ra lcd. - Tìm hiểu vi điều khiển PIC AT89S52. - Tìm hiểu phương pháp lập trình CCS cho PIC. - Giao tiếp giữa cảm biến đo dộ ẩm và PIC. IV. LẬP KẾ HOẠCH NGHIÊN CỨU: Để thực hiện đề tài này em đã kết hợp sử dụng nhiều phương pháp và phương tiện hỗ trợ gồm có: - Tham khảo tài liệu: kỹ thuật số, điện tử căn bản, vi điều khiển Pic AT89S52, - Quan sát thực tế. - Thực nghiệm. - Tổng kết kinh nghiệm. - Phương tiện: máy vi tính, Internet, thư viện. V. GIỚI HẠN ĐỀ TÀI Với thời gian gần năm tuần thực hiện đề tài cũng như trình độ chuyên môn có hạn, dù em đã cố gắng hết sức để hoàn thành đồ án này nhưng chỉ giải quyết được những vấn đề sau: - Dùng cảm biến độ ẩm DHT11 để đo độ ẩm. - Hiễn thị nhiệt độ ra LCD. - Dùng ngôn ngữ CCS lập trình cho PIC AT89S52. CHƯƠNG II: GIỚI THIỆU LINH KIỆN PHẦN 1- PIC I. TỔNG QUAN VỀ PIC Pic là gì? PIC là một họ vi điều khiển RISC được sản xuất bởi công ty Microchip Technology. Dòng PIC đầu tiên là PIC1650 được phát triển bởi Microelectronics Division thuộc General_Instrument. PIC bắt nguồn từ chữ viết tắt của “Programmable Intelligent Computer” (Máy tính khả trình thông minh) là một sản phẩm của hãng General Instruments đặt cho dòng sản phẩm đầu tiên của họ là PIC1650. Lúc này, PIC 1650 được dùng để giao tiếp với các thiết bị ngoại vi cho máy chủ 16 bit CP1600, vì vậy, người ta cũng gọi PIC với tên “Peripheral Interface Controller” (Bộ điều khiển giao tiếp ngoại vi). CP1600 là một CPU tốt, nhưng lại kém về các hoạt động xuất nhập, và vì vậy PIC 8-bit được phát triển vào khoảng năm 1975 để hỗ trợ hoạt động xuất nhập cho CP1600. PIC sử dụng microcode đơn giản đặt trong ROM, và mặc dù, cụm từ RISC chưa được sử dụng thời bấy giờ, nhưng PIC thực sự là một vi điều khiển với kiến trúc RISC, chạy một lệnh một chu kỳ máy (4 chu kỳ của bộ dao động). Năm 1985 General Instruments bán bộ phận vi điện tử của họ, và chủ sở hữu mới hủy bỏ hầu hết các dự án – lúc đó quá lỗi thời. Tuy nhiên, PIC được bổ sung EPROM để tạo thành 1 bộ điều khiển vào ra khả trình. Ngày nay rất nhiều dòng PIC được xuất xưởng với hàng loạt các module ngoại vi tích hợp sẵn (như USART, PWM, ADC), với bộ nhớ chương trình từ 512 Word đến 32K Word. Tại sao dùng Pic? Họ vi điều khiển này có thể tìm mua dễ dàng tại thị trường Việt Nam. Giá thành không quá đắt. Có đầy đủ các tính năng của một vi điều khiển khi hoạt động độc lập. Là một sự bổ sung rất tốt về kiến thức cũng như về ứng dụng cho họ vi điều khiển mang tính truyền thống: họ vi điều khiển 8051. Số lượng người sử dụng họ vi điều khiển PIC hiện nay tại Việt Nam cũng như trên thế giới, họ vi điều khiển này được sử dụng khá rộng rãi. Điều này tạo nhiều thuận lợi trong quá trình tìm hiểu và phát triển các ứng dụng như: số lượng tài liệu, số lượng các ứng dụng mở đã được phát triển thành công, dễ dàng trao đổi, học tập, dễ dàng tìm được sự chỉ dẫn khi gặp khó khăn, Sự hỗ trợ của nhà sản xuất về trình biên dịch, các công cụ lập trình, nạp chương trình từ đơn giản đến phức tạp, Các tính năng đa dạng của vi điều khiển PIC, và các tính năng này không ngừng được phát triển. 3. Các dòng Pic và cách lựa chọn Vi điều khiển PIC Các sản phẩm vi điều khiển PIC của Microchip có gần 100 loại sản phẩm từ họ 10Fxxx đến các họ 12Cxxx, 12Fxxx, 16Cxx, 17Cxx, 16Fxx, 16Fxxx, 16FxxxA, 16LFxxxA, 18Fxxx, 18LFxxx, 18Fxxxx, 18LFxxxx, Cách phân loại PIC theo chữ cái Các họ PIC xxCxxx được đưa vào một nhóm, gọi là OTP (One Time Programmable): chúng ta chỉ có thể lập trình và nạp chương trình cho nó được một lần duy nhất. Nhóm thứ hai có chữ cái F hoặc LF: chúng ta gọi nhóm này là nhóm Flash, nhóm này cho phép ghi xóa nhiều lần bằng các mạch điện thông thường. Cách phân loại theo hai con số đầu tiên của sản phẩm Loại thứ nhất là dòng PIC cơ bản( Base – line ), gồm các PIC 12Cxxx, có độ dài 12bit. Loại thứ hai là các dòng PIC 10F, 12F va 16F, gọi là dòng phổ thông ( Mid – Range ), có dộ dài 14 bit. Loại thứ ba là dòng PIC 18( High – End ), có độ dài 16 bit. Ở Việt Nam phổ biến nhất là các họ vi điều khiển PIC do hãng Microchip sản xuất. Cách lựa chọn một vi điều khiển PIC phù hợp: Trước hết cần chú ý đến số chân của vi điều khiển cần thiết cho ứng dụng. Có nhiều vi điều khiển PIC với số lượng chân khác nhau, thậm chí có vi điều khiển chỉ có 8 chân,ngoài ra còn có các vi điều khiển 18, 28, 40, 44, chân. Cần chọn vi điều khiển PIC có bộ nhớ flash để có thể nạp xóa chương trình được nhiều lần hơn. Tiếp theo cần chú ý đến các khối chức năng được tích hợp sẵn trong vi điều khiển, các chuẩn giao tiếp bên trong. Sau cùng cần chú ý đến bộ nhớ chương trình mà vi điều khiển cho phép. 4. Ngôn ngữ lập trình cho Pic Ngôn ngữ lập trình cho PIC rất đa dạng. Ngôn ngữ lập trình cấp thấp có MPLAB (được cung cấp miễn phí bởi nhà sản xuất Microchip), các ngôn ngữ lập trình cấp cao hơn bao gồm C, Basic, Pascal, Ngoài ra còn có một số ngôn ngữ lập trình được phát triển dành riêng cho PIC như PICBasic, MikroBasic, 5. Mạch nạp Pic: Đây cũng là một dòng sản phẩm rất đa dạng dành cho vi điều khiển PIC. Có thể sử dụng các mạch nạp được cung cấp bởi nhà sản xuất là hãng Microchip như: PICSTART plus, MPLAB ICD 2, MPLAB PM 3, PRO MATE II. Có thể dùng các sản phẩm này để nạp cho vi điều khiển khác thông qua chương trình MPLAB. Dòng sản phẩm chính thống này có ưu thế là nạp được cho tất cả các vi điều khiển PIC, tuy nhiên giá thành rất cao và thường gặp rất nhiều khó khăn trong quá trình mua sản phẩm. II. CẤU TRÚC TỔNG QUÁT PIC AT89S52 1. Một vài thông số về Pic AT89S52 Tổng quan về vi điều khiển AT89S52: Hình 1.1 Hình ảnh PIC AT89S52. AT89S52 là họ IC vi điều khiển do hãng Atmel sản xuất.  Các sản phẩm AT89S52 thích hợp cho những ứng dụng điều khiển. Việc xử lý trên byte và các toán số học ở cấu trúc dữ liệu nhỏ được thực hiện bằng nhiều chế độ truy xuất dữ liệu nhanh trên RAM nội. Tập lệnh cung cấp một bảng tiện dụng của nhữnglệnh số học 8 bit gồm cả lệnh nhân và lệnh chia. Nó cung cấp những hổ trợ mở rộng trên chip dùng cho những biến một bit như là kiểu dữ liệu riêng biệt chophép quản lý và kiểm tra bit trực tiếp trong hệ thống điều khiển.  AT89S52cung cấp những đặc tính chuẩn như: 8 KByte bộ nhớ chỉ đọc có thể xóa và lập trình nhanh 128 Byte RAM, 32 đường I/0, 3 TIMER/COUNTER 16bit, 5 vecto ngắt có cấu trúc 2 mức ngắt, một Port nối tiếp bán song công, 1 mạch giao động xung clock và bộ giao động ON-CHIP. Các đặc điểm của AT89S52 được tóm tắt như sau: 8 Kbyte bộ nhớ có thể lặp trình nhanh, có khả năng ghi tới 1000 chu kỳ xóa. Tần số hoạt động từ 0Hz đến 24Mhz. 3 mức khóa bộ nhớ lập trình. 3 bộ Timer/couter 16 bit. 128 byte RAM nội. 4 Port xuất/ nhập I/0 8 bit. Giao tiếp nối tiếp. 64 KB vùng nhớ mã ngoài. 64 KB vùng nhớ dữ liệu ngoại. 4us cho hoạt động nhân hoặc chia. Cấu trúc bên trong AT89S52. Phần chính của vi điều khiển AT89S52 là bộ xử lí trung tâm (CPU) bao gồm: Thanh tích lũy A. Thanh ghi tích lũy phụ B dùng cho phép nhân hoặc chia. Đơn vị logic học (ALU). Từ trạng thái chương trình (PSW: proram status word). Bốn băng thanh ghi. Con trỏ ngăn xếp. Ngoài ra còn bộ nhớ chương trình, bộ giải mã lệnh, bộ điều khiển thời gian và logic. Phần cứng của AT89S52: Hình 1.2 Các chân của PIC AT89S52 AT89S52 có tất cả 40 chân có chức năng như các đường xuát nhập. Trong đó có 24 chân có tác dụng kép (một chân có 2 chức năng), mỗi đường có thể hoạt động như đường xuất nhập hoặc như đường điều khiển hoặc là thành phần của các bus dữ liệu hoặc bus địa chỉ. Nhóm chân nguồn: VCC: Chân 40, điện áp cung cấp 5 VDC. GND: Chân 20. Nhóm chân giao động: gồm chân 18 và chân 19 (chân XTAL1 và XTAL2), cho phép ghép nối thạch anh và mạch giao động bên trong vi điều khiển. XTAL1: Ngõ vào đến mạch khuếch đại giao động đảo và đến mạch tạo xung clock bên trong. XTAL2: Ngõ vào mạch khuếch đại giao động đảo. Chân chọn bộ nhớ chương trình: Chân 31 (EA/VPP): xác định chương trình thực hiện. Chân 31 nối mass: sử dụng bộ nhớ bên ngoài vi điều khiển. Chân 31 nối nguồn: sử dụng bộ nhớ bên trong vi điều khiển. Chân RESET (chân 9): có tác dụng reset cho chip, mức tích cực của chân này là mức 1, để reset phải đưa ra mức 1(5v) đến chân này với thời gian tối thiểu 2 chu kì. Chân cho phép bộ nhớ chương trình PSEN: tín hiệu được xuất ra ở chân 29 dùng để truy xuất bộ nhớ ngoài. Chân ALE: Cho phép chốt địa chỉ chân 30. Nhóm chân điều khiển vào ra: Port 0: Chân 32-39 có hai chức năng Chức năng xuất nhập: nhận tín hiệu bên ngoài vào để xử lí hoặc dữ liệu truy xuất tới chương trình ngoài, chẳng hạn để điều khiển tín hiệu để led đơn sáng tắt. Chức năng bus dữ liệu và bus địa chỉ (AD7-AD0): 8 chân này còn làm nhiệm vụ lấy dữ liệu từ ROM hoặc RAM ngoại (nếu có kết nối với bộ nhớ ngoài), đồng thời port0 còn dùng để chỉ định bộ nhớ ngoài. Port 1: gồm 8 chân (từ chân 1 đến chân 8) chức năng làm các đường xuất/ nhập, không có chức năng khác. Port 2: gồm 8 chân (từ chân 21 đến chân 28) có hai chức năng: Chức năng xuất/ nhập. Chức năng bus địa chỉ cao (A8-A15): khi kết nối bộ nhớ ngoài có dung lượng lớn, cần 2 byte để định địa chỉ bộ nhớ, byte do P0 đảm nhận, byte do P2 đảm nhận. Port 3: gồm 8 chân (từ chân 10 đến chân 17): Chức năng xuất nhập và với mỗi chân có một chức năng riêng: P3.0 RxD: Ngõ vào nhận dữ liệu nối tiếp. P3.1 TxD: Ngõ xuất dữ liệu nối tiếp. P3.2 INT0: Ngõ vào ngắt ngoài 0. P3.3 INT1: Ngõ vào ngắt ngoài 1. P3.4 T0: Ngõ vào định thời đếm0. P3.5 T1: Ngõ vào định thời đếm 1. P3.6 WR: Ngõ điều khiển ghi dữ liệu lên bộ nhớ ngoài. P3.7 RD: Ngõ điều khiển đọc dữ liệu từ bộ nhớ ngoài. P1.0 T2: Ngõ vào timer/couter thứ 2. P1.1 T2X: Ngõ nạp lại/ thu nhận của timer/couter thứ 2. Sơ đồ khối: Hình 1.3 Sơ đồ khối của AT89S52 2. Tổ chức bộ nhớ bên trong AT89S52. Bộ nhớ trong 89S52 bao gồm ROM và RAM. RAM trong AT89S52 bao gồm nhiều thành phần: phần lưu trữ đa dụng, phần lưu trữ địa chỉ hóa từng bit, các bank thanh ghi và các thanh ghi chức năng đặc biệt. AT89S52 có bộ nhớ được tổ chức theo cấu trúc Harvard: có những vùng bộ nhớ riêng biệt cho chương trình và dữ liệu. Chương trình và dữ liệu có thể chứa bên trong 89S52 nhưng 89S52 vẫn có thể kết nối với 64K byte bộ nhớ chương trình và 64K byte dữ liệu bên ngoài. Địa chỉ byte Địa chỉ bit Địa chỉ bit Địa chỉ byte Bản đồ bộ nhớ Data bên trong Chip 89S52 được tổ chức như sau: Hình 1.4 Bản đồ bộ nhớ trong chip AT89S52 RAM bên trong AT89S52 được phân chia như sau: Các bank thanh ghi có địa chỉ từ 00H đến 1FH. RAM địa chỉ hóa từng bit có địa chỉ từ 20H đến 2FH. RAM đa dụng từ 30H đến 7FH. Các thanh ghi chức năng đặc biệt từ 80H đến FFH 2.1. RAM đa dụng. RAM đa dụng có địa chỉ từ 30h – 7Fh có thể truy xuất mỗi lần 8 bit bằng cách dùng chế độ định địa chỉ trực tiếp hay gián tiếp. Các vùng địa chỉ thấp từ 00h – 2Fh cũng có thể sử dụng cho mục đích như trên, ngoài các chức năng đặc biệt được đề cập ở phần sau. 2.2. RAM có thể định địa chỉ bit. Vùng địa chỉ từ 20h -2Fh gồm 16 byte có thể thực hiện như vùng RAM đa dụng (truy xuât mỗi lần 8 bit) hay thực hiện truy xuất mỗi lần 1 bit bằng các lệnh xử lý bit. 2.3. Các bank thanh ghi. Vùng địa chỉ 00h – 1Fh được chia thành 4 bank thanh ghi: bank 0 từ 00h – 07h, bank 1 từ 08h – 0Fh, bank 2 từ 10h – 17h và bank 3 từ 18h – 1Fh. Các bank thanh ghi này được đại diện bằng các thanh ghi từ R0 đến R7. Sau khi khởi động thì hệ thống bank 0 được chọn sử dụng. Do có 4 bank thanh ghi nên tại một thời điểm chỉ có một bank thanh ghi được truy xuất bởi các thanh ghi R0 đến R7. Viêc thay đổi bank thanh ghi được thực hiện thông qua thanh ghi từ trạng thái chương trình (PSW). 2.4. Các thanh ghi có chức năng đặc biệt. Các thanh ghi trong 89S52 được định dạng 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ư R0 đến R7, 89S52 có 21 thanh ghi có chức năng đặc biệt (SFR: Special Function Register) ở vùng trên của RAM nội từ địa chỉ 80H đến 0FFH. Sau đây là một vài thanh ghi đặc biệt thường được sử dụng: 2.4.1. Thanh ghi trạng thái chương trình (PSW: Program Status Word) BIT SYMBOL ADDRESS DESCRIPTION PSW.7 CY D7H Cary Flag PSW.6 AC D6H Auxiliary Cary Flag PSW.5 F0 D5H Flag 0 PSW4 RS1 D4H Register Bank Select 1 PSW.3 RS0 D3H Register Bank Select 0 00=Bank 0; address 00H¸07H 01=Bank 1; address 08H¸0FH 10=Bank 2; address 10H¸17H 11=Bank 3; address 18H¸1FH PSW.2 OV D2H Overlow Flag PSW.1 - D1H Reserved PSW.0 P DOH Even Parity Flag Bảng 2.1: Thanh ghi trạng thái chương trình (PSW: Program Status Word). Chức năng từng bit trạng thái chương trình: Cờ Carry CY (Carry Flag): Cờ nhớ thường nó được dùng cho các lệnh toán học: C =1 nếu phép toán cộng có sự tràn hoặc phép trừ có mượn và ngược lại C = 0 nếu phép toán cộng không tràn và phép trừ không có mượn. Cờ Carry phụ AC (Auxiliary Carry Flag): Khi cộng những giá trị BCD (Binary Code Decimal), cờ nhớ phụ AC được set nếu kết quả 4 bit thấp nằm trong phạm vi điều khiển 0AH - 0FH. Ngược lại AC = 0. Cờ 0 (Flag 0): Cờ 0 (F0) là 1 bit cờ đa dụng dùng cho các ứng dụng của người dùng. Những bit chọn bank thanh ghi truy xuất: - RS1 và RS0 quyết định dãy thanh ghi tích cực. Chúng được xóa sau khi reset hệ thống và được thay đổi bởi phần mềm khi cần thiết. - Tùy theo RS1, RS0 = 00, 01, 10, 11 sẽ được chọn Bank tích cực tương ứng là Bank 0, Bank1, Bank2 và Bank3. RS1 RS0 BANK 0 0 0 0 1 1 1 0 2 1 1 3 Bảng 2.2 Những bit chọn trong thanh ghi truy suất. Cờ tràn OV (Over Flag): Cờ tràn được set sau một hoạt động cộng hoặc trừ nếu có sự tràn toán học. Bit Parity (P): Bit tự động được set hay Clear ở mỗi chu kỳ máy để lập Parity chẵn với thanh ghi A. Sự đếm các bit 1 trong thanh ghi A cộng với bit Parity luôn luôn chẵn. Ví dụ A chứa 10101101B thì bit P set lên một để tổng số bit 1 trong A và P tạo thành số chẵn. Bit Parity thường được dùng trong sự kết hợp với những thủ tục của Port nối tiếp để tạo ra bit Parity trước khi phát đi hoặc kiểm tra bit Parity sau khi thu. 2.4.2. Thanh ghi TIMER. Vi Điều Khiển 89S52 có 3 timer 16 bit, mỗi timer có bốn cách làm việc. Người ta sử dụng các timer để: Định khoảng thời gian. Đếm sự kiện. Tạo tốc độ baud cho port nối tiếp trong 89S52. Trong các ứng dụng định khoảng thời gian, người ta lập trình timer ở những khoảng đều đặn và đặt cờ tràn timer. Cờ được dùng để đồng bộ hóa chương trình để thực hiện một tác động như kiểm tra trạng thái của các ngõ vào hoặc gửi sự kiện ra các ngõ ra. Các ứng dụng khác có thể sử dụng việc tạo xung nhịp đều đặn của timer để đo thời gian trôi qua giữa hai sự kiện (ví dụ đo độ rộng xung). 2.4.3. Thanh ghi ngắt