Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 66 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
66
Dung lượng
1,71 MB
Nội dung
BỘ CÔNG NGHIỆP TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP TP HCM KHOA CÔNG NGHỆ ĐIỆN TỬ #" Đồ Án Tốt nghiệp Đề Tài: LẬP TRÌNH C CHO HỌ VI ĐIỀU KHIỂN 8051 Đồ Án Tốt Nghiệp PHẦN I TỔNG QUAN ĐỀ TÀI I ĐẶT VẤN ĐỀ: Ngày nay, ứng dụng Vi điều khiển sâu vào đời sống sinh hoạt sản xuất người Thực tế hầu hết thiết bị điện dân dụng có góp mặt Vi Điều Khiển vi xử lí Ứng dụng vi điều khiển thiết kế hệ thống làm giảm chi phí thiết kế hạ giá thành sản phẩm đồng thời nâng cao tính ổn định thiết bị hệ thống.Trên thị trường có nhiều họ vi điều khiển: họ 8051 Intel, 68HC11 Motorola, Z80 hãng Zilog, PIC hãng Microchip, H8 Hitachi,vv… Việc phát triển ứng dụng hệ vi xử lý đòi hỏi hiểu biết phần cứng phần mềm, mà hệ vi xử lý sử dụng để giải tốn khác Tính đa dạng ứng dụng phụ thuộc vào việc lựa chọn hệ vi xử lý cụ thể vào kỹ thuật lập trình Ngày vi xử lý có mặt nhiều thiết bị điện tử đại: từ đầu đĩa CD, máy thu hình, máy ghi hình, dàn âm HiFi, điều khiển lị sưởi thiết bị điều khiển dùng công nghiệp Lĩnh vực ứng dụng hệ vi xử lý rộng lớn: từ nguyên cứu khoa học, truyền liệu, đến công nghiệp, lượng, giao thông y tế… Tùy theo kinh nghiệm mức độ thơng thạo mà sử dụng ngơn ngữ khác ngồi hợp ngữ như: C, C++, Visual basic để có chương trình chất lượng cao II NỘI DUNG CỦA ĐỀ TÀI: Sơ lược vi điều khiển AT89C51 Khảo sát vi điều khiển AT89C2051 hãng ATMEL • Gồm sơ đồ chân linh kiện • Sơ đồ khối AT89C2051 • Các nội dụng ứng dụng AT89C2051 Giới thiệu phần mềm Keil Software µViSion Ứng dụng ngơn ngữ C Assembly điều khiển lập trình led • Ứng dụng cho led đơn, led đoạn, led ma trận… Kết luận hướng phát triển đề tài SVTH:Lê Văn Long & Đặng Đức Trung CDDT6K Trang Đồ Án Tốt Nghiệp PHẦN II NỘI DUNG ĐỀ TÀI CHƯƠNG 1: GIỚI THIỆU BỘ VI ĐIỀU KHIỂN 89C2051 89C51 I.GIỚI THIỆU BỘ VI ĐIỀU KHIỂN 89C2051 I.1 CÁC ĐẶC ĐIỂM Tương thích với sản phẩm họ MSC-51 2K byte nhớ Flash lập trình Khả :1000 chu kì ghi/xóa Tầm điện áp hoạt động từ 2,7 V đến 6V Tầm tần số hoạt động từ Hz đến 21 MHz mức khóa nhớ chương trình (program memory) RAM bên (internal RAM) có dung lượng 128 x bit 15 đường I/O lập trình định thời /đếm 16 bit nguồn (nguyên nhân ) ngắt Kênh nối tiếp UART lập trình Các ngõ kích LED trực tiếp Mạch so sánh tương tự chip (on-chip analog comparator) Các chế độ nghỉ công suất thấp chế độ giảm cơng suất I.2 MƠ TẢ Chip AT89C2051 chip vi điều khiển CMOS bit điện áp thấp, hiệu suất cao có 2K byte nhớ Flash đọc, xóa lập trình PEROM (Flash programmable and erasable readonly memory) Linh kiện sản xuất cách sử dụng công nghệ nhớ không thay đổi mật độ cao Atmel tương thích với tập tệp MCS-51 chuẩn cơng nghiệp Bằng cách kết hợp CPU 8-bit đa linh hoạt với Flash chip đơn tinh thể , Atmel AT89C2051 chip vi điều khiển mạnh cung cấp giải pháp linh động cao mang lại hiệu giá thành cho nhiều ứng dụng điều khiển nhúng (embedded control application) AT89C2051 cung cấp đặc tính chuẩn sau : nhớ Flash 2K byte , 128 byte RAM , 15 đường I/O, định thời/đếm 16-bit , kiến trúc ngắt hai mức vector, port nối tiếp hồn tồn song cơng , mạch so sánh tương tự xác, mạch dao động tạo xung clock chip Ngồi AT89C2051 thiết kế có mạch logic tĩnh cho hoạt động giảm đến tần số Hz hỗ trợ chế độ tiết kiệm công suất lựa chọn phần mềm Chế dộ nghĩ ( idle mode ) dùng CPU cho phép RAM, định thời/đếm, port nối tiếp hệ thống ngắt tiếp tục hoạt động Chế độ giảm cơng suất trì nội dung RAM làm dừng mạch dao động, không cho phép chức khác chip hoạt động lần reset cứng (nghĩa ta thiết lập lại trạng thái ban đầu [reset] cho chiop mạch điện bên ngoài) SVTH:Lê Văn Long & Đặng Đức Trung CDDT6K Trang Đồ Án Tốt Nghiệp I.3 CẤU HÌNH CHÂN Hình 1.1 I.4 SƠ ĐỒ KHỐI SVTH:Lê Văn Long & Đặng Đức Trung CDDT6K Trang Đồ Án Tốt Nghiệp Hình 1.2 9RAM ADDR REGISTER: ghi địa RAM 9RAM: vùng nhớ truy cập ngẫu nhiên (RAM) 9FLASH: vùng nhớ FLASH 9B REGISTER:thanh ghi B 9ACC: chứa 9STACK POINTER: trỏ vùng nhớ xếp chồng 9PROGRAM ADDRESS REGISTER: ghi địa chương trình 9TMP1: ghi tạm 9TMP2: ghi tạm 9ALU: đơn vị số học/logic 9BUFFER: đệm 9PC INCREMENTER: tăng ghi đếm chương trình PC 9INTERRUPT, SERIAL PORT AND TIMER BLOCKS: khối ngắt, port nối tiếp định thời 9PROGRAM COUNTER: đếm chương trình PC 9PSW: từ trạng thái chương trình 9TIMING AND CONTROL:mạch logic điều khiển định thời 9INSTRUCTION REGISTERED: ghi lệnh 9DPTR: trỏ liệu 9PORT1 LATCH: chốt port 9PORT3 LATCH: chốt port 9ANALOG COMPARTOR:bộ so sánh tương tự 9OSC:mạch dao động 9PORT DRIVERS: mạch kích port 9PORT DRIVERS: mạch kích port I.5 MÔ TẢ CHÂN VCC Chân cấp điện áp Vcc cho chip GND Chân nối đất Port Port port I/O (port nhập/xuất: input/output port) hai chiều 8-bit Các chân port từ P1.2 đến P1.7 cung cấp mạch kéo lên bên (internal pull-ups) Các chân P1.0 P1.1 yêu cầu mạch kéo lên bên ngồi P1.0 P1.1 cịn sử dụng làm ngõ vào dương (AIN0) ngõ vào âm (ÁIN), theo thứ tự, mạch so sánh tương tự xác chip (on – chip precision analog comparator) Các mạch đệm ngõ (output buffer) port hút dịng 20mA kích trực tiếp thị LED Khi logic ghi đến chân port 1, chân sử dụng làm ngõ vào Khi chân từ P1.2 đến P1.7 sử dụng làm ngõ vào kéo xuống mức thấp từ bên ngồi, chúng cung cấp dịng (IIL) mạch kéo lên bên Port nhận liệu chương trình hay kiệu mã (code data) thời gian lập trình kiểm tra nhớ Flash Port Các chân port từ P3.0 đến P3.5, P3.7 chân I/O hai chiều với mạch kéo lên bên P3.6 nối dây cứng làm ngõ vào nối đến ngõ mạch so sánh chip truy cập chân I/O có mục đích tổng qt Các mạch đệm ngõ port hút dịng 20mA.Khi logíc ghi đến chân port 3, chân kéo lên mức cao mạch kéo lên bên sử dụng làm ngõ vào Khi ngõ vào, chân port kéo xuống mức thấp mạch bên ngồi cung cấp dịng (IIL) SVTH:Lê Văn Long & Đặng Đức Trung CDDT6K Trang Đồ Án Tốt Nghiệp mạch kéo lên Các chân port sử dụng cho chức đặc biệt khác AT89C2051 liệt kê ( bảng 11,1) Port nhận số tín hiệu điều khiển để lập trình kiểm tra nhớ Flash Bảng 1.1 RST Ngõ vào reset (thiết lập lại trạng thái ban đầu) Tất chân I/O reset đến mức logíc sau RST lên mức cao Việc trì chân RST mức cao chu kỳ máy mạch dao động hoạt động reset chip XTAL Ngõ vào đến mạch khuếch đại dao động đảo ngõ vào đến mạch tạo xung clock bên XTAL Ngõ từ mạch khuếch đại dao động đảo I.6 CÁC ĐẶC TÍNH CỦA MẠCH DAO ĐỘNG XTAL XTAL ngõ vào ngõ ra, theo thứ tự, mạch khuếch đại đảo cấu hình để trở thành mạch dao động chip trình bày hình 1.3 Một tinh thể thạch anh mạch cộng hưởng gốm sử dụng Để kích chip từ nguồnxung clock bên ngồi, chân XTAL không kết nối chân ATAL kích trình bày hình 1.4 Khơng có u cầu chu kỳ nhiệm vụ (duty cycle) tín hiệu xung clock bên ngồi ngõ vào đến mạch ngõ vào đến mạch tạo xung clock bên qua flipflop làm nhiệm vụ chia tần số, đặc tính điện áp tối thiểu tối đa mức cao mức thấp phải xem xét Hình 1.3 kết nối mạch dao động Lưu ý: C1,C2=30pF ± 10pF thạch anh ; C1,C2=40pF ± 10pF cộng hưởng gốm Hình 1.4: Cấu hình kích xung clock bên ngồi SVTH:Lê Văn Long & Đặng Đức Trung CDDT6K Trang Đồ Án Tốt Nghiệp I.7CÁC THANH GHI CHỨC NĂNG ĐẶC BIỆT SFR Bảng 1.2 Các giá trị reset đồ SFR AT89C2051 Một đồ vùng nhớ chip gọi không gian ghi chức đặc biệt SFR (special function registor) trình bày (bảng 1.2) Lưu ý tất địa bị chiếm ghi này, địa khơng bị chiếm không thực chip Các truy cập đọc đến địa trường hợp tổng quát, trả liệu ngẫu nhiên truy cập ghi có tác động khơng rõ ràng Phần mêm người sử dụng không nên ghi logic đến vị trí nhớ khơng liệt kê chúng sử dụng sản phẩm tương lai để đáp ứng đặt tính Trong trường hợp đó, giá trị reset giá trị khơng tích cực bit luôn I.8 CÁC GIỚI HẠN TRÊN MỘT SỐ LỆNH AT89C2051 thành viên tiết kiệm có hiệu giá thành họ vi đièu khiển phát triển Atmel Chip chứa 2K nhớ chương trình Flash Chip hồn tồn tương thích với kiến trúc MCS-51và lập trình cấch sử dụng tập lệnh MCS-51 nhiên, có vài cân nhắc mà ta ohải ý sử dụng số lập trình chip Tất lệnh liên quan đến hoạt động nhảy rẽ nhánh bị giới hạn, chẳn hạn địa đíh rơi vào khơng gian nhớ chip, không gian 2K byte với AT89C2051 Vấn đề trách nhiệm nguowif lập trình phần mềm Thí dụ, lệnh LJMP 7E0H lệnh hợp lệ AT89C2051 (có 2K byte nhớ chương trình)trong lệnh LJMP 900H lệnh khơng hợp lệ SVTH:Lê Văn Long & Đặng Đức Trung CDDT6K Trang Đồ Án Tốt Nghiệp Các lệnh rẽ nhánh LCALL,LMJP, ACALL, AJMP,SJMP ,JMP@A+DPTR- Các lệnh rẽ nhánh không điều kiện thực thi miễn người lập trình lưu ý địa đích rẽ nhánh phải nằm giới hạn vật lý kích thước nhớ chương trình (các vị trí nhớ từ 00H đến 7FFH AT89C2051) Việc vi phạm giới hạn khong gian vật lý gây hành vi khơng biết chương trình CJNE [ ], DJNZ [ ], JB, JNB, JC, JNC, JBC, JZ, JNZ - Với lệnh rẽ nhánh có điều kiện này, quy luật giống áp dụng Một lần nữa, việc vi phạm giơis hạn nhớ vật lý làm cho chương trình thực hti khơng Đối với ứng dụng bao gồm cách ngắt, vị trí địa chương trình phục vụ ngắt (interrupt service rountine) bình thường cấu trúc họ 89C2051 bảo toàn Các lệnh liên quan đến MOVX, nhớ liệu AT89C2051 chứa 128 byte nhớ liệu bên (intenal data memory) Như AT89C2051,kích thước xếp chồng (stack depth) giới hạn tới 128 byte, đay dung lượng RAM có sẳn Việc truy cạp nhớ bên ngồi khơng hỗ trợ chip việc thưc thi chương trình bên ngồi khơng hỗ trợ Như khơng có lệnh MOVX [ ] chứa chương trình Một trình dịch hợp ngữ (assembler) điển hình 89C51 dịch lệnh này,ngay chúng viết dạng vi phạm giới hạn đề cập Người sử dụng vi điều khiển phải có trách nhiệm phải biết tính chất vật lý giới hạn linh kiện sử dụng điều chỉnh lệnh sử dụng cách thích hợp Các giới hạn cho ta thấy khuyết điểm At89C2051 I.9 CÁC BIT KHOÁ BỘ NHỚ CHƯƠNG TRÌNH Với chip AT89C2051 ta có bit khố (lock bit), bit để lại khơng lập trình (U) lập trình (P) đẻ nhận thêm tính chất liệt kê bảng 11.3 Các bit khố chương trình LB1 LB2 U U P U U U Loại bảo vệ Khơng có tính chất khố chương trình Việc lập trình thêm cho nhớ Flash bị cấm Tương tự chế độ 2, việc kiểm tra bị cấm Lưu ý: bit khố bị xố thao tác xoá chip Bảng 1.3:Các chế độ bảo vệ bit khoá I.10 CHẾ ĐỘ NGHỈ Trong chế đọ nghỉ CPU tự ngủ, tất ngoại vi khác chip điều hoạt động điều trì trạng thái chế độ tích cực Chế đọ yêu cầu phần mềm Nội dung RAM chip tất tren ghi chức đặc biệt điều giữ nguyên không thay đổi thời gian chế độ Chế độ nghỉ kết thúc cách ngắt phép hoăc cách reset phần cứng Các chân P1.0 P1.1 thiết lập không sử dụng mạch kéo lên bên ngồi thiết lập có mạch kéo lên bên Cũng cần lưu ý chế độ nghỉ kết thúc reset cứng, chip tiếp tục thực thi chương trình bình thường từ nơi chương trình bị rời bỏ, đến chu kỳ máy trước giải thuật reset bên lấy quyền điều khiển Phần cứng chip ngăm cản việc truy cập đến RAM bên chế độ không cấm việc truy cập đến cá chân port Để laọi bỏ khả có thao tác khơng mong đợi đến chân port chế độ nghỉ kết thúc reset, lẹnh theo sau lệnh yêu cầu chế nghỉ lệnh ghi đến chân port nhớ SVTH:Lê Văn Long & Đặng Đức Trung CDDT6K Trang Đồ Án Tốt Nghiệp I.11 CHẾ ĐỘ GIẢM CÔNG SUẤT Trong chế độ giảm công suất, mạch dao động bị dừng lệnh yêu cầu chế độ giảm công suất lệnh sau thực thi RAM chip ghi chức đặc biệt giữ lại giá trị chúng cho đén chế độ giảm cơng suất kết thúc.Lối khỏi chế độ giảm công suất sử dụng reset cứng Reset định nghĩa lại ghi chua\cứ đặc biệt không làm thay đổi Ram chip Reset khơng nên kích hoạt trươc điện áp VCC khơi phục đến mức hoạt động bình thường reset phải trì tích cực đủ lâu phép mạch hoạt động trở lại trở nên ổn định Các chân P1.0 P1.1 thiết lập không sử dụng mạch kéo lên bên thiết lập có mạch kéo lên bên ngồi I.12 LẬP TRÌNH FLASH AT89C2051 thị trường có dải nhớ chương trình PEROM chip la 2K byte trạng thái xóa (nghĩa tồn nội dung byte FFH) sẳn sàng lập trình Dải nhớ chương trình lập trình byte cho thời điểm Một dãi lập trình, để lập trình lại byte khơng trống, tồn dải nhớ xóa điện Bộ điếm địa bên AT89C2051 có đếm địa PEROM bên trong, đếm luôn thiết lập 00H cạnh lên RST tăng lên cách áp dụng xung trở thành mức dương (positve going pluse) đến chân XTAL1 Giải thuật chương trình Để lập trình AT89C2051, theo trình tự sau Trình tự cấp điện: Cấp điện chân VCC GND Thiêt lập RST XTLA1 đến mức thấp (GND) Thiết lâp RST lên mức cao (‘H’) Thiết lập chân P3.2 lên mức cao (‘H’) Áp dụng tổ hợp mức logic ‘H’ ‘L’ thích hợp đên chân P3.3, P3.4, P3.5 P3.7 để chọn thao tác lập trình trình bày bảng chế độ lập trình PEROM (PEROM proramming modes table) Để lập trình kiểm tra dải nhớ chương trình: Đặt liệu byte chhương trình ( hay cịn gọi byte mã) vị trí 00h đến chân từ P1.0 đến P1.7 Tăng RST lên 12V phép lập trình Đưa xung đến chân P3.2 để lập trình byte dải PEROM bit khóa Chu kỳ ghi byte tự định thời điển hình chiếm 1.2ms Để kiểm tra liệu lập trình, giảm thấp RST từ 12V xuống mức logic cao ‘H’ thiết lập chân từ P3.3 đến P3.7 đến mức logic thích hợp Dữ liệu xuất đọc chân port Để lập trình byte vị trí địa kế tiếp, đưa xung đến XTAL1 để tăng đếm địa bên (internal address counter) đặt liệu đến chân port Lập lại bước từ đến 8, thay đổi liệu tăng đếm địa cho toàn dải byte hoăc kết thúc tập tin đối tượng (object file) 10.Trình tự ngắt nguồn điện Thiết lập XTLA1 đến mức thấp (‘L’) Thiết lập RST đến mức thấp (‘L’) Tắt nguồn cấp điện cho VCC SVTH:Lê Văn Long & Đặng Đức Trung CDDT6K Trang Đồ Án Tốt Nghiệp Data Polling: AT89C2051 có Data Polling để việc kết thúc chu kỳ ghi Trong thời gian chu kỳ ghi, việc thử đọc byte sau ghi dẫn đến việc lấy bù liệu ghi chân P1.7 Một chu kỳ ghi kết thúc, liệu có hiệu lực tất ngõ chu kỳ bắt đầu Data Polling bắt đầu lúc sau khki chu kỳ ghi khởi động Ready/ Busy : Tiến trình lập trình byte giám sát tín hiệu ngõ RDY/ BSY Chân P3.1 kéo xuống mức thấp sau chân P3.2 trở thành mức cao thời gian lập trình trạng thái bận (BUSY) Chân P3.1 kéo lên mức cao lấn việc lập trình kết thúc chhỉ trạng thái sẳn sàng (READY) Program verify ( kiểm tra chưong trình ): Nếu bit khóa LB1 LB2 khơng lập trình, liệu chương trình đọc ngược thơng qua đường liệu để kiểm tra: Reset đếm địa bên 00H để mang RST từ ‘L’ lên ‘H’ Đặt tín hiệu thích hợp để đọc liệu chương trình đọc liệu ngõ chân port Đưa xung đến chân XTAL để tăng đếm địa bên Đọc byte liệu chân port Lập lại bước toàn dải nhớ chương trình đọc Các bit khóa khong thể kiểm tra trực tiếp Việc kiểm tra bit khóa nhận cách tn theo tính chất cho phép chúng Chip erase (xóa chip): Tồn dải PEROM (2K byte) hai bit khóa đựơc xóa điện sử dụng tổ hợp thích hợp tín hiệu điều khiển cách giữ cho chân P3.2 mức thấp 10ms Dải nhớ chương trinhd ghi với tất bit điều thao tác xóa chip va phải thực trước byte nhớ không trống lập trình lại Reading the signature bytes (đọc byte chữ ký ): Các byte chữ ký đọc với thủ tục viêc kiểm tra bình thường vị trí nhớ 000H, 001H, 002H, ngoại trừ chân P3.3 chân P3.5 phải kéo xuống mức logic thấp Các giá trị trả sau: (000H) = 1EH sản xuất Atmel (001H) = 21H 89C2051 I.13CÁC CHẾ ĐỘ LẬP TRÌNH FLASH Các chế độ lập trình Flash tóm tắt bảng 1.4 SVTH:Lê Văn Long & Đặng Đức Trung CDDT6K Trang 10 ... mạch khuếch đại dao động đảo ngõ vào đến mạch tạo xung clock bên XTAL Ngõ từ mạch khuếch đại dao động đảo I.6 CÁC ĐẶC TÍNH CỦA MẠCH DAO ĐỘNG XTAL XTAL ngõ vào ngõ ra, theo thứ tự, mạch khuếch đại... SỐ LỆNH AT89C2051 thành viên tiết kiệm có hiệu giá thành họ vi đièu khiển phát triển Atmel Chip chứa 2K nhớ chương trình Flash Chip hồn tồn tương thích với kiến trúc MCS-5 1và lập trình cấch sử... chốt vào ghi lệnh 8951 để giải mã lệnh PSEN\ mức thụ động (mức cao) thi hành chương trình ROM nội 8951 CÁC CHÂN NGUỒN: AT8951 hoạt động nguồn đơn +5V.Vcc nối vào chân 40, Vss (GND) nối vào chân