Tài liệu hướng dẫn thực tập Vi điều khiển MSC-51 - Bài 1: Tổng quan về Board thí nghiệm ET-LAB3A phần mềm mô phỏng Keil và lập trình Fashmagic
Bài thực hành nhắm giúp học viên:
-Nắm khảnăng của board thí nghiệm ET-LAB3A.
-Sơđồnguyên lý của hệthống
-Phương thức kết nối các PORT ra của Vi điều khiển với ngoại vi trên Board
ET-LAB3A
-Soạn thảo, biên dịch, mô phỏng chương trình MSC-51 trên Keil.
-Lập trình cho vi điều khiển bằng FlashMagic
ơng trình mô phỏng. Chú ý do Vi điều khiển loại 8951 không chỉ có hãng Atmel sản xuaart mà có có thể có nhiều hãng sản xuất khác nhau, do đó để kết quả mô phỏng được gần đúng chúng ta nên chọn đúng loại CPU cần mô phỏng. Tên Project Chọn đường dẫn để lưu Project Hình H3 Hình H2 Bài 1: Tổng quan về ET-LAB3A – Phần mềm mô phỏng Keil và Lập trình FlashMagic Trang I-18 - Bước 5: Sau khi chọn OK từ hộp thoại của hình H4, chúng ta sẽ thấy một hộp thoại hiển thị thông báo như hình bên dưới Nếu ta chọn Yes thì μVision3 sẽ sao chép một khuôn dạng chương trình mẫu cho chúng ta. Còn nếu chọn No thì ngược lại. Trong trường hợp này thì chúng ta nên chọn No - Bước 6: Tạo tập tin chứa Code cho vi điều khiển. Tập tin chứa code là chương trình hợp ngữ cần viết cho 8051. Tập tin này được lưu với phần mở rộng là .a51. Để tiến hành tạo tập tin nguồn ta chọn File\ New, một giao diện như hình H5, sau khi soạn thảo xong và lưu với filename.A51 Giả sử chọn AT89C51 của hãng Atmel. Sao đó click chuột vào OK Hình H4 Bài 1: Tổng quan về ET-LAB3A – Phần mềm mô phỏng Keil và Lập trình FlashMagic Trang I-19 - Bước 7: Add một filename.A51 vào Project, chúng ta làm như sau: Chọn Source Group1 trong Project Workspace, sau đó click chuột phải và chọn Add Files to Group “Source group 1”. Cách thực hiện như hình H6 Lưu với phần mở rộng .A51 Vùng soạn thảo đoạn code cho vi điều khiển Hình H5 Chọn filename.A51 Chọn đường dẫn chứa filename.A51 cần Add Hình H6 Bài 1: Tổng quan về ET-LAB3A – Phần mềm mô phỏng Keil và Lập trình FlashMagic Trang I-20 Sau khi Add xong chúng ta thấy bên dưới Source Group 1 sẽ chứa file chúng ta vừa Add như hình bên dưới. - Bước 8: Thiết lập các thông số cho Project. Từ menu Project chọn Option for Target “Target 1” hay từ Target 1 trong Project WorkSpace ta click chuột phải và chọn Option for Target “Target 1. Một hộp thoại hiện ra như hình H7 cho chúng ta thiết lập các thông số cho Project. Ở lớp Target cho chúng ta chọn tần số dao động thạch anh, còn ở lớp Output cho chúng ta chọn file.HEX xuất ra để nạp chương trình cho vi điều khiển Bài 1: Tổng quan về ET-LAB3A – Phần mềm mô phỏng Keil và Lập trình FlashMagic Trang I-21 - Bước 9: Biên dịch và Debug chương trình Check vào đây để tạo ra file.HEX Click vào đây để chọn đường dẫn lưu file.HEX Hình H7 Debug chương trình Biên dịch chương trình Kết quả sau khi biên dich Bài 1: Tổng quan về ET-LAB3A – Phần mềm mô phỏng Keil và Lập trình FlashMagic Trang I-22 Dĩ nhiên chúng ta chỉ Debug được chương trình khi chương trinh chúng ta không còn bất kỳ lỗi nào hết. Và khi đó file.HEX cũng sẽ được tạo ra để cho chúng ta nạp chương trình vào vi điều khiển. V. Phần mềm lập trình FlashMagic FlashMagic sử dụng phương pháp lập trình nối tiếp thông qua chuẩn RS232. Kit ET- LAB3A trong phòng TN.VXL&DSP sử dụng CPU loại P89V51RD2, để nạp chương trình cho vi điều khiển loại này chúng ta làm như hình bên dưới sau: Chọn loại CPU cần nạp Chọn file.HEX cần nạp Các Option tuỳ chọn khi nạp CT Bài 1: Tổng quan về ET-LAB3A – Phần mềm mô phỏng Keil và Lập trình FlashMagic Trang I-23 QUY TRÌNH NẠP CHƯƠNG TRÌNH CHO IC 89V51RD2 Khi nạp chương trình cho IC 89V51RD2, sinh viên cần tuân thủ theo các nguyên tắc sau: 1. Thiết kế xong chương trình trên máy tính (Chú ý: hạn chế sử dụng Port3 nhất là các chân truyền nhận dữ liệu P3.0 và P3.1 - để truy xuất dữ liệu – các chân của Port này thường để sử dụng cho những chức năng đặc biệt: Ngắt, định thời, ghi đọc Port,…). 2. Biên dịch thành File.HEX 3. Khởi động Flash Magic • Cửa sổ Flash Magic mở ra như sau • Nhấp nút Cancel trên thông báo Reset Device để đóng thông báo lại. • Sau khi thông báo Reset Device đóng lại, Thông báo khác xuất hiện. Nhấp Cancel Bài 1: Tổng quan về ET-LAB3A – Phần mềm mô phỏng Keil và Lập trình FlashMagic Trang I-24 • Lúc đó cửa sổ Flash Magic như sau. Để tiến hành nạp chương trình cho IC ta thực hiện theo các bước 1..6 như sau: 1. Chọn đúng IC 89V51RD2 2. Chọn tùy chọn Erase all Flash 3. Nhấp vào Browse …để chọn file Hex cần nạp cho IC 4. Chọn các tùy chọn như trong hình. 5. Bấm và giữ nút Reset trên mạch. 6. Nhấp nút Start để nạp Bài 1: Tổng quan về ET-LAB3A – Phần mềm mô phỏng Keil và Lập trình FlashMagic Trang I-25 Sau khi nhấp nút Start • Thông báo xuất hiện nhấp Yes • Một thông báo khác lại mở ra chọn Yes • Yêu cầu – Reset Device (bấm nút Reset trên mạch) xuất hiện. Lúc này buông phím Reset (vì trước đó ta đang bấm và giữ nút Reset) trên mạch ra thì chương trình sẽ được nạp xuống cho IC. 1. Chọn đúng IC 2. Chọn tùy chọn này 3. Nhấp vào đây để chọn file Hex cần nạp cho IC 4. Chọn các tùy chọn như hình 6. Nhấp nút Start để nạp 5. Bấm và giữ nút Reset trên mạch Bài 1: Tổng quan về ET-LAB3A – Phần mềm mô phỏng Keil và Lập trình FlashMagic Trang I-26 • Chương trình đang được nạp từ máy tính xuống IC Cần chú ý rằng • Khi chương trình chưa được nạp xong thì tuyệt đối không được nhấn nút Reset trên mạch để chạy chương trình (Thao tác này có thể làm hư hỏng IC). • Mà phải đợi đến khi thông báo chương trình đã được nạp xong thì được nhấn nút Reset trên mạch. Hình sau. Chương trình chưa nạp xong Bài 1: Tổng quan về ET-LAB3A – Phần mềm mô phỏng Keil và Lập trình FlashMagic Trang I-27 • Không được bấm nút Reset trên mạch liên tục khi không có yêu cầu nạp chương trình cho IC hay cho chạy chương trình có trong IC. VI. Nội dung thực hành (Một số chương trình mẫu làm quen với hệ thống) 1. Bài 1: Chương trình cho 1 LED đơn nhấp nháy (on/off) 1giây. Sinh viên hãy thực hiện các yêu cầu sau: a. Dùng Keil soạn thảo đoạn chương trình bên dưới và lưu với tên test1.A51. Sau đó thiết lập các thông số, kiểm tra lỗi, biên dịch chương trình. ORG 0000H LJMP MAIN MAIN: SETB P0.0 ACALL DELAY_xS Chương trình đã được nạp xong Bài 1: Tổng quan về ET-LAB3A – Phần mềm mô phỏng Keil và Lập trình FlashMagic Trang I-28 CLR P0.0 ACALL DELAY_xS SJMP MAIN DELAY_xS: ; ; ĐOAN CODE DELAY x GIAY MOV R1, #20 L1: MOV R2, #200 L2: MOV R3, #255 L3: DJNZ R3, L3 DJNZ R2, L2 DJNZ R1, L1 RET END b. Chạy debug đoạn chương trình trên và quan sát sự thay đổi trên các thanh ghi của Vi điều khiển. Chú ý: Khi chạy Debug theo mode từng lệnh để quan sát các trang thái của thanh ghi chúng ta nên bỏ lệnh CALL DELAY_XS (Khi cho chương trình chạy mode Auto thi không cần phải bỏ). c. Kết nối PORT0 của vi điều khiển với Module Led đơn và LED 7 đoạn bằng dây bus. Kích hoạt FlashMagic để nạp file test1.HEX xuống vi điều khiển. Ấn nút Reset để cho chạy chương trình và quan sát ngõ ra và cho nhận xét. d. Hãy thử thay đổi lần lượt các giá trị trên các thanh ghi R0, R1, R2, sau đó biên dịch và nạp lại chương trình cho Vi điều khiển và làm lại như ở câu c. Có nhận xét gì về sự thau đổi này không ? Nếu thay giá trị thanh ghi R0 bằng 00H có nhận xét gì về thời gian trì hoãn. Giải thích ? e. Hãy thử thay lệnh SETB P0.0 thành lệnh MOV P0, #0FFH và thay lệnh CLR P0.0 thành lệnh MOV P0, #00H. Biên dịch và làm lại bước câu c. Quan sát kết quả và có nhận xét gì ? f. Hãy cho vẽ lưu đồ chương trình chình và chương trình con của đoạn chương trình trên. 2. Bài 2: Chương trình cho 1 LED đơn cháy từ trái sang phải và sau đó cháy ngược lại từ phải sang trái. Sinh viên hãy thực hiện các yêu cầu sau: a. Dùng Keil soạn thảo đoạn chương trình bên dưới và lưu với tên test1.A51. Sau đó thiết lập các thông số, kiểm tra lỗi, biên dịch chương trình. ORG 0000H LJMP MAIN MAIN: MOV P1,#0FFH CLR P1.7 Bài 1: Tổng quan về ET-LAB3A – Phần mềm mô phỏng Keil và Lập trình FlashMagic Trang I-2 CALL DELAY_XS SETB P1.7 CLR P1.6 CALL DELAY_XS SETB P1.6 CLR P1.5 CALL DELAY_XS SETB P1.5 CLR P1.4 CALL DELAY_XS SETB P1.4 CLR P1.3 CALL DELAY_XS SETB P1.3 CLR P1.2 CALL DELAY_XS SETB P1.2 CLR P1.1 CALL DELAY_XS SETB P1.1 CLR P1.0 CALL DELAY_XS SETB P1.0 ; QUAY NGUOC LAI CLR P1.0 CALL DELAY_XS SETB P1.0 CLR P1.1 CALL DELAY_XS SETB P1.1 CLR P1.2 CALL DELAY_XS SETB P1.2 CLR P1.3 CALL DELAY_XS SETB P1.3 CLR P1.4 CALL DELAY_XS SETB P1.4 CLR P1.5 CALL DELAY_XS SETB P1.5 CLR P1.6 CALL DELAY_XS SETB P1.6 CLR P1.7 CALL DELAY_XS SETB P1.7 LJMP MAIN ; DELAY X GIAY DELAY_XS: MOV R1, #20 L1: MOV R2, #200 L2: MOV R3, #255 L3: DJNZ R3, L3 DJNZ R2, L2 DJNZ R1, L1 RET END b. Chạy Debug đoạn chương trình trên và quan sát sự thay đổi trên các thanh ghi của Vi điều khiển. c. Kết nối PORT0 của vi điều khiển với Module Led đơn và LED 7 đoạn bằng dây bus. Kích hoạt FlashMagic để nạp file test1.HEX xuống vi điều khiển. Ấn nút Reset để cho chạy chương trình và quan sát ngõ ra và cho nhận xét. Bài 1: Tổng quan về ET-LAB3A – Phần mềm mô phỏng Keil và Lập trình FlashMagic Trang I-26 d. Hãy thử thay đổi giá trị trên thanh ghi R0 để cho LED hiển thị quan sát được, sau đó biên dịch và nạp lại chương trình cho Vi điều khiển và làm lại như ở câu c. Có nhận xét gì về sự thau đổi này không ? Khi đó hãy tính ước lượng thời gian trì hoãn này là bao nhiêu ? e. Hãy thử thay các nhóm lệnh SETB và CLR thành lệnh MOV P0, #xxH (với xx là giá trị cần thay thế) sao cho có kết quả không đổi với chương trình ban đầu. Biên dịch và làm lại câu c. Quan sát kết quả và có nhận xét gì ? f. Hãy thử nêu ý tưởng và giải thuật cải tiến đoạn chương trình. Gợi ý có thể dùng các lệnh khác sao cho chương trình ngắn gọn hơn. Thử kiểm chứng bằng cách viết lại chương trình và kiểm tra kết quả Bài 3: Sửa lại chương trình trên cho LED đơn cháy xen kẻ và đổi chỗ cho nhau với thời gian hợp lý để tạo hiệu ứng nhấp nháy. Bài 4: Sửa lại chương trình cho 8 LED ON/OFF 4 lần. Sau đó 4 bit thấp ON/OFF 8 lần, 4 bit cao OFF/ON 8 lần rồi dùng lại. -----------Hết-----------
File đính kèm:
- Tài liệu hướng dẫn thực tập Vi điều khiển MSC-51 - Bài 1 Tổng quan về Board thí nghiệm ET-LAB3A phần mềm mô phỏng Keil và lập trình Fashmagic.pdf