Thiết kế, chế tạo và điều khiển tay máy Trang 51 7 VI XỬ LÝ AT89C2051 7.1 GIỚI THIỆU VỀ AT89C2051 AT89C2051 là chip thuộc họ vi xử lý MCS-51 do hãng Atmel sản xuất. Chip AT89C2051 có các đặc tính kỹ thuật sau: o 2k flash ROM, 128 byte RAM. o 15 đường xuất nhập. o 1 port nối tiếp và hai bộ đònh thời 16 bit. o 6 nguồn tạo ngắt. o Một bộ so áp (Voltage Comparator). Ngoài ra so với chip AT89C51 (loại chip thường dùng phổ biến hiện nay) thì chip AT89C2051 có kích thước nhỏ gọn hơn (chỉ có 20 chân), dòng tải ở các chân xuất nhập cao (20mA). Còn về tập lệnh thì nó hoàn toàn giống AT89C51, do vậy cách viết chương trình ta có thể tham khảo ở chip AT89C51 [Sách họ vi điều khiển 8051 của Tống Văn On và Hoàng Đức Hải]. AT89C2051 còn được thiết kế có thể hoạt động ngay cả khi tần số xuống tới zero và nó còn cung cấp cho hai chế độ chọn mode tiết kiệm năng lượng bằng phần mềm. Ở chế độ nghỉ (IDLE), thì CPU sẽ ngưng hoạt động trong khi GVHD: TS. NGUYỄN VĂN GIÁP SVTH: Nguyễn Nhật Tân-Nguyễn Lê Tùng Thiết kế, chế tạo và điều khiển tay máy Trang 52 cho phép RAM, bộ đònh thời, cổng nối tiếp, ngắt tiếp tục hoạt động. Còn ở chế độ nguồn giảm (Power Down) thì nội dung của RAM được lưu, còn bộ giao động thì “đóng băng” cho đến khi có một tín hiệu (mức cao trong 2 chu kỳ máy) ở chân Reset. 7.2 MÔ TẢ CÁC CHÂN CỦA AT89C2051 Hình 7.1 Cấu hình chân ra của chip AT89C2051 o Chân VCC Chân cung cấp điện. o GND Chân nối mass. o Port 1 Là port xuất nhập 8-bit hai chiều. P1.2-P1.7 thì có điện trở pull up ở bên trong, còn P1.0 và P1.1 đòi hỏi phải có điện trở pull up khi được sử dụng làm ngõ xuất tín hiệu. Còn khi dùng làm ngõ nhập thì chúng lần lượt trở thành các ngõ vào đảo và không đảo của bộ so áp. Port 1 còn được dùng để đưa mã lập trình cho chip cũng như đọc nội dung của chip. o Port 3 Là port xuất nhập 7-bit hai chiều đã có sẵn điện trở pull up ở bên trong. P3.6 là ngõ ra của bộ so áp, nhưng không thể sử dụng như một chân xuất nhập bình thường mà phải thông qua phần mềm. Port 3 ngoài được dùng như các chân chức năng (nối tiếp, ngắt) còn được dùng để đưa các tín hiệu điều khiển để lập trình cho chip. o RST GVHD: TS. NGUYỄN VĂN GIÁP SVTH: Nguyễn Nhật Tân-Nguyễn Lê Tùng Thiết kế, chế tạo và điều khiển tay máy Trang 53 Ngõ vào reset. AT89C2051 sẽ bò reset khi chân này được đưa lên mức cao trong hai chu kỳ máy. o XTAL1 Ngõ vào đến mạch khuếch đại đảo của mạch dao động và ngõ vào đến mạch tạo xung clock bên trong chip. o XTAL2 Ngõ ra từ mạch khuếch đại đảo của mạch dao động. 7.3 SƠ ĐỒ VÀ NGUYÊN LÝ NẠP CHƯƠNG TRÌNH CHO AT89C2051 Trong luận văn này để thuận tiện cho việc lập trình cho AT89C2051, chúng ta cần làm một mạch nạp cho AT89C2051 bằng cổng song song thông qua 8255 và chương trình nạp được viết bằng Visual Basic. So với cách lập trình thông thường bằng cổng nối tiếp thì cách lập trình này nhanh hơn nhiều. 7.3.1 Sơ đồ mạch nạp cho AT89C2051 BASE1 A0 /WR /RD /RD U2 AT89C2051 1 5 4 12 13 14 15 16 17 18 19 2 3 6 7 8 9 11 RST/VPP XTAL1 XTAL2 P1.0/AIN0 P1.1/AIN1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 P3.0/RXD P3.1/TXD P3.2/INT0 P3.3/INT1 P3.4/T0 P3.5/T1 P3.7 A1 VB1 SUB-D 25 13 25 12 24 11 23 10 22 9 21 8 20 7 19 6 18 5 17 4 16 3 15 2 14 1 A0 /WR U1 8255 34 33 32 31 30 29 28 27 4 3 2 1 40 39 38 37 18 19 20 21 22 23 24 25 14 15 16 17 13 12 11 10 5 36 9 8 35 6 D0 D1 D2 D3 D4 D5 D6 D7 PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7 PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7 PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7 RD WR A0 A1 RESET CS BASE2 VPP A1 D3 D6 D4 D5 D4 D0 D2 D7 D2 D0 D7 D3 D1 D6 D1 D5 Hình 7.2 Sơ đồ nguyên lý mạch nạp AT89C2051 bằng cổng song song GVHD: TS. NGUYỄN VĂN GIÁP SVTH: Nguyễn Nhật Tân-Nguyễn Lê Tùng Thiết kế, chế tạo và điều khiển tay máy Trang 54 0 R7 1k Q1 2N1069 0 10uF 0 100uF R6 1k VPP 0 10uF 0 R8 1k 2 1 3 VOUT ADJ VIN Q2 Q2N2906A 0 LM7805 1 2 3 IN OUT GND BASE2 R1 1k V1 15V 0 R5 10k BASE1 5V 0 Hình 7.3 Sơ đồ nguyên lý mạch nguồn cho mạch nạp 7.3.2 Nguyên lý nạp chương trình cho AT89C2051 Để nạp chương trình cho chip, trước hết ta cần phải xóa nội dung của nó (để toàn bộ nội dung của nó là FFh). Bên trong chip có một biến đếm đòa chỉ của PEROM, biến này được reset về 00h khi có tín hiệu reset ở chân RST và tăng lên một khi có một xung dương được kích ở chân XTAL1. Để lập trình cho chip AT89C2051 ta làm theo các bước sau: 1. Cấp nguồn cho chân VCC và GND, cho chân RST và chân XTAL1 xuống mức thấp. 2. Cho chân RST và chân P3.2 lên mức cao. 3. Cung cấp các chân chọn mode lên các chân P3.3, P3.4, P3.5, P3.7 theo bảng 7.1. 4. Đưa dữ liệu lập trình ra Port1 của chip. 5. Cho chân RST lên mức áp lập trình là 12V. 6. Cấp một xung lên chân P3.2, lúc này quá trình đưa mã lập trình vào chíp được bắt đầu, thời gian này mất khoảng 1.2 ms. Ở đây ta chờ khoảng 1.25 ms cho an toàn (không dùng chế độ đọc lại để kiểm tra mà ta sẽ kiểm tra sau khi lập trình). 7. Cấp xung lên chân XTAL1 để tăng đòa chi lên vò trí kế tiếp, tiếp tục đưa dữ liệu lập trình mới ra port1. 8. Lặp lại bước 6 cho tới khi biến đếm đòa chi PEROM đến 2K hoặc đến hết chương trình cần nạp. 9. Cho chân XTAL1 và chân RST xuống mức thấp. 10. Ta cho đọc lại toàn bộ nội dung chip và so sánh với dữ liệu cần nạp và đưa ra thông báo cho người sử dụng biết kết quả. GVHD: TS. NGUYỄN VĂN GIÁP SVTH: Nguyễn Nhật Tân-Nguyễn Lê Tùng Thiết kế, chế tạo và điều khiển tay máy Trang 55 Bảng 7.1 Bảng các mode lập trình Chế độ RST/VPP P3.2/nPROG P3.3 P3.4 P3.5 P3.7 Ghi mã 12V L H H H Đọc mã H H L L H H Bit-1 12V H H H H Ghi khóa Bit-2 12V H H L L Xóa chip 12V H L L L Đọc byte dấu hiệu H H L L L L • Chú ý: - Lệnh xóa chip yêu cầu độ rộng xung nPROG là 10ms. - Chân P3.1 được kéo xuống thấp khi dữ liệu được nạp vào chip để chỉ ra rằng CPU đang bận. Ta có thể đọc chân này thay cho việc chờ 1.25ms. - Ở chế độ đọc nội dung của chip, thì dữ liệu nội dung của chip được đọc ở port1. 7.4 KẾT LUẬN Chương này chúng ta đã tìm hiểu về chip vi xử lý AT89C2051, là loại chip khá thông dụng, có kích thước nhỏ, thuận tiện cho việc dùng trong các ứng dụng mà không đòi hỏi phải dùng nhiều chân (như giải mã, phát hồng ngoại, giải mã bàn phím, …). Một trong những ứng dụng dùng AT89C2051 để điều khiển là giải mã hiển thò LCD sẽ được trình bày trong chương tiếp theo đây. GVHD: TS. NGUYỄN VĂN GIÁP SVTH: Nguyễn Nhật Tân-Nguyễn Lê Tùng . chip và so sánh với dữ liệu cần nạp và đưa ra thông báo cho người sử dụng biết kết quả. GVHD: TS. NGUYỄN VĂN GIÁP SVTH: Nguyễn Nhật Tân-Nguyễn Lê Tùng Thiết kế, chế tạo và điều khiển tay. các tín hiệu điều khiển để lập trình cho chip. o RST GVHD: TS. NGUYỄN VĂN GIÁP SVTH: Nguyễn Nhật Tân-Nguyễn Lê Tùng Thiết kế, chế tạo và điều khiển tay máy Trang 53 Ngõ vào reset. AT89C2051. Nhật Tân-Nguyễn Lê Tùng Thiết kế, chế tạo và điều khiển tay máy Trang 54 0 R7 1k Q1 2N1069 0 10uF 0 100uF R6 1k VPP 0 10uF 0 R8 1k 2 1 3 VOUT ADJ VIN Q2 Q2N2906A 0 LM7805 1 2 3 IN OUT GND BASE2 R1 1k V1 15V 0 R5 10k BASE1 5V 0