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

pdf30 trang | Chuyên mục: Vi Xử Lý – Vi Điều Khiển | Chia sẻ: dkS00TYs | Lượt xem: 2608 | Lượt tải: 4download
Tóm tắt nội dung 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, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
ơ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:

  • pdfTà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