Đề tài Nghiên cứu lý thuyết và lắp ráp modul điều khiển nhà thông minh

I. Cơ sở lý thuyết Khi cuộc sống con người càng được nâng cao, những nhu cầu cuộc sống ngày càng đòi hỏi phải được hỗ trợ tốt hơn. Và từ những nhu cầu thực tế đó ý tưởng về một ngôi nhà thông minh mà nơi đó ngoài sự ấm áp của tình yêu hạnh phúc, mọi hoạt động của con người đều được hỗ trợ và giúp đỡ một cách linh hoạt, không những được giúp đỡ mà ngôi nhà còn tự động quản lý một cách thông minh Ngày nay với sự phát triển mạnh mẽ vượt bậc của khoa học kỹ thuật, đặc biệt là sự phát triển của vi điều khiển thì ý tưởng về một ngôi nhà thông minh không còn vướng bởi rào cản công nghệ. Khi đó con người sẽ có cảm giác an toàn hơn khi ngôi nhà của chúng ta sẽ được tích hợp của các hệ thống như hệ thống điều khiển và giám sát môi trường: hệ thống đảm bỏa nhiệt độ, hệ thống đảm bảo ánh sáng , mạch đóng ngắt, điều khiển ra vào, giám sát cảnh báo cháy , thành một hệ thống mạng thống nhất. II. Ý nghĩa thực tiễn Chúng ta không thể phủ nhận lợi ích của việc nghiên cứu và phát triển nhà thông minh tới đời sống hiện tại, nó mang lại tính tiện nghi, thoải mái, sang trọng, an toàn cho cuộc sống nhiều âu lo, vất vả hằng ngày. Không những vậy nhà thông minh còn là giải pháp tiết kiệm nguồn năng lượng, đang là vấn đề làm đau đầu các nhà khoa học. Con người sẽ có cuộc sống tốt đẹp hơn, không phải dành quá nhiều tâm trí trong việc quản lý ngôi nhà, mà con người có thể dành thời giờ cho nhiều việc khác. Chúng ta gần như tương tác đươc những vật liệu mà trước đây gần như là không thể. Và ngôi nhà của chúng ta cũng có một cái nhìn hoàn toàn mới, thực sự như một vật thể tự vận hành để phục vụ con người. Giờ đây ta hoàn toàn hãnh diện với ngôi nhà thể hiện dẳng cấp của sự chuyên nghiệp, hiện đại, phong cách mà bất cứ đặc trưng nào ta muốn có. Với tiêu chí đó khóa luận lần này em sẽ trình vày về cách xây dựng và thiết kế modul điều khiển nhiệt độ và ánh sáng trong nhà thông minh.

docx60 trang | Chia sẻ: tienduy345 | Lượt xem: 1891 | Lượt tải: 3download
Bạn đang xem trước 20 trang tài liệu Đề tài Nghiên cứu lý thuyết và lắp ráp modul điều khiển nhà thông minh, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA ĐIỆN TỬ -------eòf------- Thực tập tốt nghiệp Đề tài: Nghiên cứu lý thuyết và lắp ráp modul điều khiển nhà thông minh Giáo viên hướng dẫn: Lê Việt Tiến Sinh viên thực hiện: Nguyễn Bách Khoa Lớp: CNKT Điện Tử 3 Khóa 7 Hà Nội 03-2016 NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN Hà Nội, Ngày..tháng..năm 2016 Giảng viên hướng dẫn (Ký và ghi rõ họ tên) Lời cảm ơn Trước tiên em xin gửi lời cảm ơn chân thành sâu sắc tới các thầy cô giáo trong trường Đại Học Công Nghiệp Hà Nội nói chung và các thầy cô giáo trong khoa Điện Tử nói riêng đã tận tình giảng dạy, truyền đạt cho chúng em những kiến thức, kinh nghiệm quý báu trong suốt 4 năm ngồi trên giảng đường qua. Đặc biệt em xin gửi lời cảm ơn đến thầy Lê Việt Tiến, thầy đã tận tình giúp đỡ, trực tiếp chỉ bảo, hướng dẫn em trong suốt quá trình làm thực tập tốt nghiệp. Trong thời gian làm việc với thầy, em không ngừng tiếp thu thêm nhiều kiến thức bổ ích mà còn học tập được tinh thần làm việc, thái độ nghiên cứu khoa học nghiêm túc, hiệu quả, đây là những điều rất cần thiết cho em trong quá trình học tập và công tác sau này. Sau cùng em xin gửi lời cảm ơn chân thành tới gia đình, bạn bè đã động viên, đóng góp ý kiến và giúp đỡ trong quá trình học tâp, nghiên cứu và hoàn thành thực tập tốt nghiệp. Đề tài này được hoàn thành không thể tránh khỏi những thiếu sót nhất định. Em mong nhận được sự góp ý quý báu của các thầy cô giáo và các bạn. Em xin chân thành cảm ơn. Hà Nội 03-2016  Mục lục  Bảng ký hiệu viết tắt Ký hiệu Viết đầy đủ Giải thích VĐK Vi Điều Khiển PIC Programmable Intelligent Computer Máy tính khả trình thông minh CPU Central Processing Unit Bộ xử lý trung tâm ROM Read-only Memory Bộ nhớ chỉ đọc RAM Random Access Memory Bộ nhớ truy cập ngẫu nhiên CHƯƠNG 1: GIỚI THIỆU ĐỀ TÀI Cơ sở lý thuyết Khi cuộc sống con người càng được nâng cao, những nhu cầu cuộc sống ngày càng đòi hỏi phải được hỗ trợ tốt hơn. Và từ những nhu cầu thực tế đó ý tưởng về một ngôi nhà thông minh mà nơi đó ngoài sự ấm áp của tình yêu hạnh phúc, mọi hoạt động của con người đều được hỗ trợ và giúp đỡ một cách linh hoạt, không những được giúp đỡ mà ngôi nhà còn tự động quản lý một cách thông minh Ngày nay với sự phát triển mạnh mẽ vượt bậc của khoa học kỹ thuật, đặc biệt là sự phát triển của vi điều khiển thì ý tưởng về một ngôi nhà thông minh không còn vướng bởi rào cản công nghệ. Khi đó con người sẽ có cảm giác an toàn hơn khi ngôi nhà của chúng ta sẽ được tích hợp của các hệ thống như hệ thống điều khiển và giám sát môi trường: hệ thống đảm bỏa nhiệt độ, hệ thống đảm bảo ánh sáng, mạch đóng ngắt, điều khiển ra vào, giám sát cảnh báo cháy, thành một hệ thống mạng thống nhất. Ý nghĩa thực tiễn Chúng ta không thể phủ nhận lợi ích của việc nghiên cứu và phát triển nhà thông minh tới đời sống hiện tại, nó mang lại tính tiện nghi, thoải mái, sang trọng, an toàn cho cuộc sống nhiều âu lo, vất vả hằng ngày. Không những vậy nhà thông minh còn là giải pháp tiết kiệm nguồn năng lượng, đang là vấn đề làm đau đầu các nhà khoa học. Con người sẽ có cuộc sống tốt đẹp hơn, không phải dành quá nhiều tâm trí trong việc quản lý ngôi nhà, mà con người có thể dành thời giờ cho nhiều việc khác. Chúng ta gần như tương tác đươc những vật liệu mà trước đây gần như là không thể. Và ngôi nhà của chúng ta cũng có một cái nhìn hoàn toàn mới, thực sự như một vật thể tự vận hành để phục vụ con người. Giờ đây ta hoàn toàn hãnh diện với ngôi nhà thể hiện dẳng cấp của sự chuyên nghiệp, hiện đại, phong cách mà bất cứ đặc trưng nào ta muốn có. Với tiêu chí đó khóa luận lần này em sẽ trình vày về cách xây dựng và thiết kế modul điều khiển nhiệt độ và ánh sáng trong nhà thông minh. CHƯƠNG 2: CÁC HỌ VI ĐIỀU KHIỂN THÔNG DỤNG Vi điều khiển là một máy tính được tích hợp trên một chíp, nó thường được sử dụng để điều khiển các thiết bị điện tử. Vi điều khiển, thực chất, là một hệ thống bao gồm một vi xử lý có hiệu suất đủ dùng và giá thành thấp (khác với các bộ vi xử lý đa năng dùng trong máy tính) kết hợp với các khối ngoại vi như bộ nhớ, các mô đun vào/ra, các mô đun biến đổi số sang tương tự và tương tự sang số,... Ở máy tính thì các mô đun thường được xây dựng bởi các chíp và mạch ngoài. Vi điều khiển thường được dùng để xây dựng các hệ thống nhúng. Nó xuất hiện khá nhiều trong các dụng cụ điện tử, thiết bị điện, máy giặt, lò vi sóng, điện thoại, đầu đọc DVD,thiết bị đa phương tiện, dây chuyền tự động, v.v. Các họ vi điều khiển hiện nay: Họ vi điều khiển AMCC (do tập đoàn "Applied Micro Circuits Corporation" sản xuất). Từ tháng 5 năm 2004, họ vi điều khiển này được phát triển và tung ra thị trường bởi IBM. + 403 PowerPC CPU + PPC 403GCX Họ vi điều khiển Atmel + Dòng 8051 (8031, 8051, 8751, 8951, 8032, 8052, 8752, 8952) + Dòng Atmel AT91 (Kiến trúc ARM THUMB) Họ vi điều khiển Cypress MicroSystems + CY8C2xxxx (PSoC) Họ vi điều khiển Freescale Semiconductor. Từ năm 2004, những vi điều khiển này được phát triển và tung ra thị trường bởi Motorola. + Dòng 8-bit Họ vi điều khiển Fujitsu + F²MC Family (8/16 bit) + FR Family (32 bit) + FR-V Family (32 bit RISC) Họ vi điều khiển Intel + Dòng 8-bit + Dòng 16-bit + Dòng 32-bit Họ vi điều khiển Microchip + PIC 8-bit (xử lý dữ liệu 8-bit, 8-bit data bus) + PIC 16-bit (xử lý dữ liệu 16-bit) + PIC 32-bit (xử lý dữ liệu 32-bit): PIC32MX Trong bài báo cáo này em xin trình bày về 3 họ vi điều khiển thông dụng và được nhiều người sử sụng nhất hiện nay là: Họ VĐK 8051 (bao gồm vđk 8051, 8052, 8031) , họ VĐK PIC ( PIC16F877A) và họ VĐK AVR. Họ vi điều khiển 8051 Vi điều khiển 8051 Tóm tắt về lịch sử của 8051 Vào năm 1981 hãng Intel giới thiệu một số bộ vi điều khiển được gọi là 8051. Bộ vi điều khiển này có 128 byte RAM, 4K byte ROM trên chíp, hai bộ định thời, một cổng nối tiếp và 4 cổng (đều rộng 8 bit) vào ra tất cả được đặt trên một chíp. Lúc ấy nó được coi là một „hệ thống trên chíp‟. 8051 là một bộ xử lý 8 bit có nghĩa là CPU chỉ có thẻ làm việc với 8 bit dữ liệu tại một thời điểm. Dữ liệu lớn hơn 8 bit đƣợc chia ra thành các dữ liệu 8 bit để cho xử lý. 8051 có tất cả 4 cổng vào ra I/O mỗi cổng rộng 8 bit (hình vẽ). Mặc dù 8051 có một ROM trên chíp cực đại là 64Kbyte, nhưng các nhà sản xuất lúc đó đã xuất xưởng chỉ với 4Kbyte Rom trên chíp. 8051 đã trở nên phổ biến sau khi Intel cho phép các nhà sản xuất khác nhau sản xuất và bán bất kỳ dạng biến thể nào của 8051 mà họ thích với điều kiện họ phải để lại mã tương thích với 8051. Điều này dẫn đến sự ra đời nhiều phiên bản của 8051 với các tốc độ khác nhau và dung lượng Rom trên chíp khác nhau. Điều này quan trọng là mặc dù có nhiều biến thể khác nhau của 8051 về tốc độ và dung lượng nhớ ROM trên chíp nhưng tất cả chúng đều tương thích với 8051 ban đầu về các lệnh. Điều này có nghĩa là nếu ta viết chương trình cho một phiên bản nào đó thì nó cũng sẽ chạy với mọi phiên bản bất kỳ khác mà không phân biệt nó từ hãng sản xuất nào. Bảng 2.1. Các đặc tính của 8051 đầu tiên. Đặc tính Số lượng ROM trên chip RAM Bộ định thời Các chân vào ra Cổng nối tiếp Nguồn cắt 4Kbyte 128 byte 2 32 1 6 Bộ vi điều khiển 8051 là thành viên đầu tiên của họ 8051, hãng Intel ký hiệu nó là MSC51. Sơ đồ chân Hình 2.1 Sơ đồ chân 8051 Từ hình 2.1. ta thấy trong 40 chân có 32 chân dùng cho các cổng P0, P1, P2, P3 với mỗi cổng có 8 chân. Các chân còn lại dành cho nguồn Vcc, đất GND, các chân dao động XTAL1 và XTAL2, khởi động lại RST cho phép chốt địa chỉ ngoài EA , cho ngắt cất chƣơng trình PSEN . Trong 8 chân này thì 6 chân Vcc, GND, XTAL1, XTAL2, RST và EA đƣợc các họ 8031 và 8051 sử dụng. Hay nói cách khác là chúng phải được nối để cho hệ thống làm việc mà không cần biết bộ vi điều khiển thuộc họ 8051 hay 8031. Còn chân PSEN và chân ALE được sử dụng trong các hệ thống dựa trên 8031. + Chân Vcc và chân GND tương ứng với chân số 40 và chân số 20 cung cấp nguồn (+5V) và nối mass + Chân XTAL1 (chân 19) và XTAL2 (chân 18): 8051 có bộ dao động trên chíp nhưng nó yêu cầu có một xung đồng hồ ngoài để chạy nó. Bộ dao động thạch anh được nối với XTAL1 và XTAL2 cùng hai tụ điện có giá trị 30pF + Chân RST: Chân số 9 là chân tái lập RESET. Nó là chân đầu vào có mức tích cực cao. Khi cấp xung cao tới chân này thì bộ vi điều khiển sẽ tái lập và kết thúc mọi hoạt động. Nó có thể coi như sự tái bật nguồn. + Chân EA (là chân IN): Truy cập bộ nhớ ngoài, chân số 31 trên vỏ chíp như 8751, 89C51 hoặc DS5000 thì chân EA được nối với nguồn Vcc. Trường hợp không có ROM trên chíp như 8031 và 8051 thì mã chương trình được lưu cất ở bộ nhớ ngoài, khi đó chân EA được nối đất. Như vậy chân này không bao giờ được để hở. + Chân PSEN là chân có chức năng cho phép lưu chƣơng trình. Ở hệ thống 8031, khi chương trình cất ở bộ nhớ ROM ngoài thì chân này được nối tới chân OE của ROM. + ALE cho phép chốt địa chỉ là chân có mức tích cực cao. Khi nối 8031 tới bộ nhớ ngoài thì cổng 0 cũng được cấp địa chỉ và dữ liệu. Hay nói cách khác, 8031 dồn địa chỉ và dữ liệu qua cổng 0 để tiết kiệm số chân. Chân ALE được sử dụng để phân kênh địa chỉ và dữ liệu bằng cách nối tới chân G của của chíp 73LS373. + Nhóm chân cổng vào ra I/O: bốn cổng P0, P1, P2, P3 đều có 8 chân và tạo thành cổng 8 bít. Tất cả các cổng khi RESET đều được cấu hình làm cổng ra. Để làm đầu vào thì cần được lập trình. Các cổng bình thường là cổng ra. Cổng P0 có thể vừa làm đầu ra, vừa làm đầu vào cổng P0 từ chân 32 đến 39 phải được nối với điện trở kéo 10K bên ngoài. Cổng P1 cũng có 8 chân, từ chân 1 đến chân 8, và có thể sử dụng làm đầu vào hoặc ra. Khác với cổng P0, cổng P1 không cần đến điện trở kéo bên ngoài vì nó đã có điện trở kéo bên trong. Cổng P2 cũng có 8 chân từ chân 21đến 28, và có thể sử dụng làm đầu vào hoặc ra. Cũng giống như cổng P1, cổng P2 không cần điện trở kéo vì bên trong đã có các điện trở kéo. Cổng P3 có 8 chân từ chân 10 đến chân 17. Cổng này có thể sử dụng làm đầu vào hoặc ra. Cũng như chân P1và P2, cổng P3 cũng không cần điện trở kéo. Bảng 2.2. Chức năng các chân cổng P3. Bít cổng P3 Chức năng Chân số P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 Nhận dữ liệu (RXD) Phát dữ liệu (TXD) Ngắt 0(INT0) Ngắt 1(INT1) Bộ định thời 0 (TO) Bộ định thời 1(T1) Ghi (WR) Đọc (RD) Nhận dữ liệu (RXD) Phát dữ liệu (TXD) Ngắt 0(INT0) Ngắt 1(INT1) Bộ định thời 0 (TO) Bộ định thời 1(T1) Ghi (WR) Đọc (RD) Có hai bộ vi điều khiển thành viên khác của họ 8051 là 8052 và 8031. Tổ chức bộ nhớ Các vi điều khiển thuộc họ 8051 đều tổ chức thành 2 không gian chương trình và dữ liệu, hình 2.2 và hình 1.3 sẽ mô tả điều này. Kiến trúc vi xử lý 8 bit của 8051 này cho phép truy nhập và tính toán nhanh hơn đối với không gian dữ liệu nhờ việc phân chia 2 không gian bộ nhớ chương trình và dữ liệu như trên. Tuy nhiên bộ nhớ ngoài được truy nhập bởi hệ thống 16 bit địa chỉ vẫn có thể thực hiện nhờ thanh ghi con trỏ.  Bộ nhớ chương trình (ROM, EPROM) là bộ nhớ chỉ đọc, có thể mở rộng tối đa 64Kbyte. Với họ vi điều khiển 89xx, bộ nhớ chương trình được tích hợp sẵn trong chip có kích thước nhỏ nhất là 4kByte. Với các vi điều khiển không tích hợp sẵn bộ nhớ chương trình trên chip, buộc phải thiết kế bộ nhớ chương trình bên ngoài. Ví dụ sử dụng EPROM: 2764 (64Kbyte), khi đó chân PSEN phải ở mức tích cực (5V). Hình 2.2: Cấu trúc chương trình vi điều khiển 89C51 Bộ nhớ dữ liệu (RAM) tồn tại độc lập so với bộ nhớ chương trình. Họ vi điều khiển 8051 có bộ nhớ dữ liệu tích hợp trên chip nhỏ nhất là 128byte và có thể mở rộng với bộ nhớ dữ liệu ngoài lên tới 64kByte. Với những vi điều khiển không tích hợp ROM trên chip thì vẫn có RAM trên chip là 128byte. Khi sử dụng RAM ngoài, CPU đọc và ghi dữ liệu nhờ tín hiệu trên các chân RD và WR. Khi sử dụng cả bộ nhớ chương trình và bộ nhớ dữ liệu bên ngoài thì buộc phải kết hợp chân RD và PSEN bởi cổng logic AND để phân biệt tín hiệu truy xuất dữ liệu trên ROM hay RAM ngoài. Hình 2.3: Địa chỉ các ngắt trên bộ nhớ chương trình Hình 2.2 mô tả cấu trúc bộ nhớ chương trình. Sau khi khởi động, CPU bắt đầu thực hiện chương trình ở vị trí 0000H. Hình 2.3 mô tả địa chỉ ngắt mặc định trên bộ nhớ chương trình. Mối khi xảy ra ngắt, con trỏ của CPU sẽ nhảy đến đúng địa chỉ ngắt tương ứng và thực thi chương trình tại đó. Ví dụ ngắt ngoài 0 sẽ có địa chỉ là 0003H, khi xảy ra ngắt ngoài 0 thì con trỏ chương trình sẽ nhảy đến đúng địa chỉ 0003H để thực thi chương trình tại đó. Nếu trong chương trình ứng dụng không xử dụng đến ngắt ngoài 0 thì địa chỉ 0003H vẫn có thể dùng cho mục đích khác (sử dụng cho bộ nhớ chương trình). Hình 2.4: Cấu trúc bộ nhớ dữ liệu Hình 2.4 mô tả cấu trúc bộ nhớ dữ liệu trong và bộ nhớ dữ liệu ngoài của họ vi điều khiển 8051. CPU sẽ dùng đến các chân RD và WR khi truy cập đến bộ nhớ dữ liệu ngoài. Hình 2.5 mô tả cấu trúc bộ nhớ dữ liệu trong chip, được chia thành 3 khối là 128 byte thấp, 128 byte cao và 128 byte đặc biệt. Hình 2.5: Cấu trúc bộ nhớ trong 8051 chứa 210 vị trí bit được định địa chỉ trong đó 128 bit chứa trong các byte ở địa chỉ từ 20H đến 2FH (16 byte x 8 bit = 128 bit) và phần còn lại chứa trong các thanh ghi đặc biệt. Ngoài ra 8051 còn có các port xuất/nhập có thể định địa chỉ từng bit, điều này làm đơn giản việc giao tiếp bằng phần mềm với các thiết bị xuất/nhập đơn bit.              Vùng RAM đa mục đích có 80 byte đặt ở địa chỉ từ 30H đến 7FH, bên dưới vùng này từ địa chỉ 00H đến 2FH là vùng nhớ có thể được sử dụng tương tự. Bất kỳ vị trí nhớ nào trong vùng RAM đa mục đích đều có thể được truy xuất tự do bằng cách sử dụng các kiểu định địa chỉ trực tiếp hoặc gián tiếp.              Bất kỳ vị trí nhớ nào trong vùng RAM đa mục đích đều có thể được truy xuất tự do bằng cách sử dụng các kiểu định địa chỉ trực tiếp hoặc gián 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 chiếm phần trên của Ram nội từ địa chỉ 80H đến FFH. Cần lưu ý là không phải tất cả 128 địa chỉ từ 80H đến FFH đều được định nghĩa mà chỉ có 21 địa chỉ được định nghĩa.  Các thanh ghi đặc biệt             8051 có 21 thanh ghi chức năng đặc biệt SFR chiếm phần trên của Ram nội từ địa chỉ 80H đến FFH. Cần lưu ý là không phải tất cả 128 địa chỉ từ 80H đến FFH đều được định nghĩa mà chỉ có 21 địa chỉ được định nghĩa. Hình 2.6 mô tả các thanh ghi đặc biệt trong vùng nhớ dữ liệu 80H đến FFH và giá trị của chúng sau khi Reset. Hình 2.6: Các thanh ghi đặc biệt Thanh ghi chính: Thanh ghi tính toán  chính của vi điều khiển 8051 ACC (Accumulator). Là thanh ghi đặc biệt của 8051 dùng để thực hiện các phép toán của CPU, thường kí hiệu là A.  Thanh ghi phụ:             Thanh ghi tính toán phụ của vi điều khiển 8051 là B. Thanh ghi B ở địa chỉ F0H được dùng chung với thanh chứa A trong các phép toán nhân, chia. Lệnh MUL  AB nhân 2 số 8 bit không dấu chứa trong A và B và chứa kết quả 16 bit vào cặp thanh ghi B, A (thanh chứa A cất byte thấp và thanh ghi B cất byte cao). Lệnh chia DIV  AB chia A bởi B, thương số cất trong thanh chứa A và dư số cất trong thanh ghi B. Thanh ghi B còn được xử lý như một thanh ghi nháp. Các bit được định địa chỉ của thanh ghi B có địa chỉ từ F0H đến F7H.  Thanh ghi trạng thái chương trình (PSW): Thanh ghi trạng thái chương trình PSW (địa chỉ: D0H) là thanh ghi mô tả toàn bộ trạng thái chương trình đang hoạt động của hệ thống. Bảng 2.2 và Bảng 2.3 sẽ mô tả thanh ghi này. 7 6 5 4 3 2 1 0 CY AC F0 RS1 RS0 0V - P Bảng 2.2: Thanh ghi trạng thái chương trình PSW Bit Ký Hiệu Địa Chỉ Mô tả bit PSW.7 CY D7H Cờ nhớ (Carry Flag): được Set nếu có Bit nhớ từ Bit 7 trong phép cộng hoặc có Bit mượn cho Bit 7 trong phép trừ. PSW.6 AY D6H Cờ nhớ phụ: được Set trong phép cộng nếu có Bit nhớ từ Bit 3 sang Bit 4 hoặc kết quả trong 4 Bit thấp nằm trong khoảng 0AH->0FH. PSW.5 FO D5H Cờ O: dành cho người sử dụng. 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=Bank 0: Địa chỉ 00H->07H 01=Bank 1: Địa chỉ 08H->0FH 10=Bank 2: Địa chỉ 10H->17H 11=Bank 3: Địa chỉ 18H->1FH PSW.2 0V D2H Cờ tràn (Overflow Flag): được Set khi phép toán có dấu có kết quả > +127 hoặc < -128. PSW.1 - D1H Chưa dùng PSW.0 P D0H Cờ kiểm tra chẵn lẻ: được Set hoặc Clear bởi phần cứng sau mỗi 1 chu kỳ lệnh, để chỉ ra rằng có 1 số chẵn hoặc số lẻ Bit 1 trong thanh chứa. Bảng 2.3: Chi tiết các bit trong thanh ghi PSW Thanh ghi ngăn xếp (Stack Pointer):             Con trỏ stack SP (stack pointer) là 1 thanh ghi 8 bit ở địa chỉ 81H. SP chứa địa chỉ của dữ liệu hiện đang ở đỉnh của stack. Các lệnh liên quan đến satck bao gồm lệnh cất dữ liệu vào stack và lệnh lấy dữ liệu ra khỏi stack. Việc cất vào stack làm tăng SP trước khi ghi dữ liệu và việc lấy dữ liệu ra khỏi stack sẽ giảm SP. Vùng stack của 8051 được giữ trong RAM nội  và được giới hạn đến các địa chỉ truy xuất được bởi kiểu định địa chỉ gián tiếp. Các lệnh PUSH và POP sẽ cất dữ liệu vào stack và lấy dữ liệu từ stack, các lệnh gọi chương trình con (ACALL, LCALL) và lệnh trở về (RET, RETI) cũng cất và phục hồi nội dung của bộ đếm chương trình PC (Program counter) Con trỏ dữ liệu DPTR: Con trỏ dữ liệu DPTR (data pointer) được dùng để truy xuất bộ nhớ chương trình ngoài hoặc bộ nhớ dữ liệu ngoài. DPTR là một thanh ghi 16 bit có địa chỉ là 82H (DPL, byte thấp) và 83H (DPH, byte cao). Thanh ghi các cổng P0-P3:             Các port xuất/nhập của 8051 bao gồm  Port 0 tại địa chỉ 80H, Port 1 tại địa chỉ 90H, Port 2 tại địa chỉ A0H và Port 3 tại địa chỉ B0H. Tất cả các port đều được định địa chỉ từng bit nhằm cung cấp các khả năng giao tiếp mạnh. Thanh ghi bộ đệm truyền thông nối tiếp (Serial Data Buffer):             Bộ đệm truyền thông được chia thành hai bộ đệm, bộ đệm truyền dữ liệu và bộ đệm nhận dữ liệu. Khi dữ liệu được chuyển vào thanh ghi SBUF, dữ liệu sẽ được chuyển vào bộ đệm truyền dữ liệu và sẽ được lưu giữ ở đó cho đến khi quá trình truyền dữ liệu qua truyền thông nối tiếp kết thúc. Khi thực hiện việc chuyển dữ liệu từ SBUF ra ngoài, dữ liệu sẽ được lấy từ bộ đệm nhận dữ liệu của truyền thông nối tiếp. Thanh ghi của bộ định thời/bộ đếm:             8051 có 2 bộ đếm/định thời (counter/timer) 16 bit để định các khoảng thời gian hoặc để đếm các sự kiện. Các cặp thanh ghi (TH0, TL0) và (TH1, TL1) là các thanh ghi của bộ đếm thời gian. Bộ định thời 0 có địa chỉ 8AH (TL0, byte thấp) và 8CH (TH0, byte cao). Bộ định thời 1 có địa chỉ 8BH (TL1, byte thấp) và 8DH (TH1, byte cao).               Hoạt động của bộ định thời được thiết lập bởi thanh ghi chế độ định thời TMOD (Timer Mode Register) ở địa chỉ 88H. Chỉ có TCON được định địa chỉ từng bit. Các thanh ghi điều khiển: Các thanh ghi điều khiển đặc biệt như IP, IE, TMOD, TCON, SCON và PCON là các thanh ghi điều khiển và ghi nhận trạng thái của hệ thống ngắt, bộ đếm/định thời, truyền thông nối tiếp. Chi tiết của các thanh ghi này sẽ được mô tả sau. Các bộ định thời của 8051             8051 có hai bộ định thời là Timer 0 và Timer 1, ở phần này chúng ta bàn về các thanh ghi của chúng và sau đó trình bày cách lập trình chúng như thế nào để tạo ra các độ trễ thời gian.            Cả hai bộ định thời Timer 0 và Timer 1 đều có độ dài 16 bit được truy cập như hai thanh ghi tách biệt byte thấp và byte cao. Chúng ta sẽ bàn riêng về từng thanh ghi. Các thanh ghi của bộ Timer 0 Thanh ghi 16 bit của bộ Timer 0 được truy cập như byte thấp và byte cao: Ø  Thanh ghi byte thấp được gọi là TL0 (Timer0 Low byte). Ø  Thanh ghi byte cao được gọi là TH0 (Timer0 High byte). Các thanh ghi này có thể được truy cập, hoặc được đọc như mọi thanh ghi khác chẳng hạn như A, B, R0, R1, R2 v.v... Các thanh ghi của bộ Timer 1 Giống như timer 0, bộ định thời gian Timer 1 cũng dài 16 bit và thanh ghi 16 bit của nó cũng được chia ra thành hai byte là TL1 và TH1. Các thanh ghi này được truy cập và đọc giống như các thanh ghi của bộ Timer 0 ở trên. Thanh ghi TMOD Cả hai bộ định thời Timer 0 và Timer 1 đều dùng chung một thanh ghi được gọi là TMOD: để thiết lập các chế độ làm việc khác nhau của bộ định thời. Thanh ghi TMOD là thanh ghi 8 bit gồm