1. Trang chủ
  2. » Công Nghệ Thông Tin

Tổng quan về ET LAB3A – phần mềm mô phỏng keil và lập trình flashmagic

30 540 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 30
Dung lượng 1,04 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Tài liệu này dành cho sinh viên, giáo viên khối ngành công nghệ thông tin tham khảo và có những bài học bổ ích hơn, bổ trợ cho việc tìm kiếm tài liệu, giáo án, giáo trình, bài giảng các môn học khối ngành công nghệ thông tin

Trang 1

BÀI 1:

PH ẦN MỀM MÔ PHỎNG KEIL VÀ LẬP TRÌNH FASHMAGIC

  

I M ục đích bài thí nghiệm

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

II T ổng quan về MSC-51

1 S ơ lượt về MSC-51

Họ vi điều khiển MCS-51 do Intel sản xuất đầu tiên vào năm 1980 là các IC thiết

kế cho các ứng dụng hướng điều khiển Các IC này chính là một hệ thống vi xử lý hoàn chỉnh bao gồm các các thành phần của hệ vi xử lý: CPU, bộ nhớ, các mạch giao

tiếp, điều khiển ngắt

MCS-51 là họ vi điều khiển sử dụng cơ chế CISC (Complex Instruction Set Computer), có độ dài và thời gian thực thi của các lệnh khác nhau Tập lệnh cung cấp cho MCS-51 có các lệnh dùng cho điều khiển xuất / nhập tác động đến từng bit

MCS-51 bao gồm nhiều vi điều khiển khác nhau, bộ vi điều khiển đầu tiên là 8051 có 4KB ROM, 128 byte RAM và 8031, không có ROM nội, phải sử dụng bộ nhớ ngoài Sau này, các nhà sản xuất khác như Siemens, Fujitsu, … cũng được cấp phép làm nhà cung cấp thứ hai

MCS-51 bao gồm nhiều phiên bản khác nhau, mỗi phiên bản sau tăng thêm một sốthanh ghi điều khiển hoạt động của MCS-51

Trang 2

Trang I-2

- 128 Byte RAM nội

- 4 Port xuất /nhập I/O 8 bit

- 4 chu kỳ máy (4 μs đối với thạch anh 12MHz) cho hoạt động nhân hoặc chia

- Có các chế độ nghỉ (Low-power Idle) và chế độ nguồn giảm (Power-down) Ngoài ra, một số IC khác của họ MCS-51 có thêm bộ định thời thứ 3 và 256 byte RAM nội

2 S ơ đồ khối của AT89C51

Bảng 1

Trang 3

3 M ột số thanh ghi quan trọng trong AT89C51

- Thanh ghi tích luỹ A

- Thanh ghi B

- Thanh ghi R0->R7 (có 4 bank thanh ghi Ri)

- Thanh ghi SP, DTPR, PWS

- Thanh ghi PORT I/O: P0, P1, P2, P3

- Thanh ghi PORT nối tiếp SBUF

- Thanh ghi định thời THx và TLx

- Thanh ghi điều khiển: IP  Interrupt Priority, TMOD  Timer Mode, TCON

 Timer Control, SCON  Serial Control, IE  Interrupt Enable, PCON Power Control

Các bạn sinh viên hãy tự ôn lại các đặc tính và cách thức sử dụng các thanh ghi của AT89C51

4 C ấu trúc của một chương trình hợp ngữ cho MSC-51

KHAI BÁO CÁC BIẾN, HẰNG NẾU CÓ

ĐỊNH NGHĨA CÁC BIT VÀ CÁC PORT VÀO RA NẾU CÓ

ORG 0000h ; RESET CPU 98C51

Trang 4

5 M ột số lệnh cần khảo sát trong bài thí nghiệm:

Yêu cầu: sinh viên tự ôn tập lại một số lệnh MSC-51 sau:

- Lệnh di chuyển dữ liệu: MOV, MOVC, MOVX, PUSH, POP

- Nhóm lệnh về số học: ADD, SUBB, INC, DEC, DIV, MUL…

- Nhóm lệnh về logic: ANL, ORL, XRL, CLR, CPL, RL, RLC, RR, RRC

- Nhóm lệnh thao tác trên bit: SETB, CLR, CPL

- Nhóm lệnh rẽ nhánh không điều kiện: CALL, JMP

- Nhóm lệnh rẽ nhánh có điều kiện: CJNE, DJNZ, JZ, JNZ, JC, JNC

III Gi ới thiệu board thí nghiệm ET-LAB3A

1 T ổng quan về ET-LAB3A

ET-LAB3A có các module tính năng sau:

- Module hiển thị 8 LED đơn

- Module hiển thị 4 LED 7 đoạn

- Module hiển thị 3 Ma trận LED 5 cột x 7 dòng

- Module hiển thị LCD

Trang 5

- Module ma trận phím và switch đơn

- Module biến đổi ADC có ngõ vào là Quang trở và Nhiệt trở

- Module điều khiển Relay, Speaker và động cơ bước

- Module điều khiển động cơ DC có bộ cảm biến tốc độ quay

- Module biến đổi DAC 8 bit

- Module giao tiếp chuẩn I2C BUS

- Module điều khiển công suất AC vừa dùng TRIAC

- Module ngõ vào nhận tín hiệu DC

- Module giao tiếp với máy tính qua RS323

- Module mở rộng PORT dùng 8255

2 S ơ đồ và hình dạng các khối chức năng của ET-LAB3A

Trang 6

Trang I-6

a Kh ối nguồn và sơ đồ nguyên lý

b Kh ối CPU , giao tiếp RS232 và sơ đồ nguyên lý

Kh ối CPU – P89V51RD2 Kh ối giao tiếp RS232

Trang 7

c Module hi ển thị LED đơn và 4 LED 7 đoạn và sơ đồ nguyên lý

Trang 8

Trang I-8

d Module Ma tr ận LED và sơ đồ nguyên lý

e Module hi ển thị LCD và sơ đồ nguyên lý

Trang 9

f Module ma tr ận phím, switch đơn và sơ đồ nguyên lý

Switch và ma tr ận bàn phím

Trang 10

Trang I-10

g Module điều khiển Relay, Speaker, động cơ bước và và sơ đồ nguyên lý

Trang 11

h Module điều khiển động cơ DC có bộ cảm biến tốc độ quay và sơ đồ nguyên lý

i Module giao ti ếp chuẩn I2C BUS và sơ đồ nguyên lý

Trang 12

Trang I-12

j Module điều khiển công suất AC vừa dùng TRIAC và sơ đồ nguyên lý

Trang 13

k Module ngõ vào nh ận tín hiệu DC và sơ đồ nguyên lý

l Module m ở rộng PORT dùng 8255 và sơ đồ nguyên lý

Trang 14

Trang I-14

m Module bi ến đổi DAC 8 bit

Trang 15

n Module bi ến đổi ADC có ngõ vào là Quang trở - Nhiệt trở và sơ đồ nguyên

Trang 16

Trang I-16

IV Ph ần mềm mô phỏng và biên dịch Keil cho MSC-51

Có khá nhiều phần mềm mô phỏng cho vi điều khiển MSC-51 Đối với việc mô

phỏng mềm để xem trạng thái các thanh ghi trong MSC-51 thì chúng ta nên dùng phần

mềm mô phỏng Keil Còn nếu mô phỏng Vi điều khiển thông qua phần cứng thiết kếthì chúng ta nên dùng phần mềm Proteus

Trong phần thí nghiệm Vi điều khiển này chúng ta dùng phần mềm Keil để biên

dịch, debug chương trình cho MSC-51 Keil là phần mềm mô phỏng có nhiều công cụ

tiện ích như có thể soạn thảo, biên dịch và debug chương trình cho Vi điều khiển bằng ngôn ngữ C, ngôn ngữ ASM của MSC-51 Bên cạnh đó nó còn có cho phép tạo ra file.HEX để nạp cho Vi điều khiển sau mô phỏng đạt yêu cầu Điểm yếu của Keil so

với Proteus là Keil không cho phép mô phỏng theo phần cứng thiết kế

Khởi động μVision 3, chúng ta thấy giao diện như hình H1

Mặc định sẽ soạn thảo và biên dịch chương trình duwois dạng ngôn ngữ C Do chúng ta mới làm quen với lập trình Vi điều khiển nên việc lập trình bằng ngôn ngữ C

tương đối khó khăn Chúng ta nên chuyển qua chế độ soạn thảo và biên dịch chương trình bằng hợp ngữ ASM của MSC-51 Để soạn thảo, biên dịch và debug chúng ta làm theo các bước sau:

Hình H1

Trang 17

- Bước 1: Từ menu Project chọn New Project và click chuột vào đây - như hình H2

- Bước 2: Một hộp thoại hiện ra và thực hiện hướng dẫn như hình H3, sau đó click chuột vào Save

- Bước 3: Một hộp thoại hiện ra như hình H4 cho chúng ta chọn loại CPU đang thiết kế để viết chươ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

Trang 18

- 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

Trang 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

Chọn đường dẫn

Hình H6

Trang 20

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

Trang 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

Trang 22

ET-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

Trang 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

Trang 24

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

Trang 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

1 Chọn đúng

IC

2 Chọn tùy chọn này

Trang 26

• 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

Trang 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:

Chương trình đã được nạp xong

Trang 28

L2: MOV R3, #255

L3: DJNZ R3, L3

DJNZ R2, L2 DJNZ R1, L1 RET

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

Trang 29

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

Trang 30

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 -

Ngày đăng: 23/10/2014, 12:38

HÌNH ẢNH LIÊN QUAN

Hình H3 Hình H2 - Tổng quan về ET LAB3A – phần mềm mô phỏng keil và lập trình flashmagic
nh H3 Hình H2 (Trang 17)

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w