Huong Dan Flowcode Avr

228
FLOWCODE AVR BM. ĐIỆN TỬ HƯỚNG DẪN THỰC HÀNH VI ĐIỀU KHIỂN AVR

Transcript of Huong Dan Flowcode Avr

Page 1: Huong Dan Flowcode Avr

FLOWCODE AVR

BM. ĐIỆN TỬ

HƯỚNG DẪN THỰC HÀNH VI ĐIỀU KHIỂN AVR

Page 2: Huong Dan Flowcode Avr

Hướng dẫn thực hành vi điều khiển AVR FlowCode AVR

Trường CĐ Công Nghệ Thủ Đức Trang - 2 -

LLỜỜII GGIIỚỚII TTHHIIỆỆUU

Chào mừng các bạn đến với tài liệu hướng dẫn thực hành vi điều khiển AVR

thông qua phần mềm Flowcode và Kit thí nghiệm của trung tâm CITA. Flowcode

là một chương trình phần mềm cho phép các bạn tạo các chương trình từ đơn

giản tới phức tạp cho vi điều khiển AVR chỉ thông qua các giải thuật điều khiển.

Tài liệu này sẽ giúp cho các bạn bước đầu làm quen với vi điều khiển AVR một

cách nhanh nhất. Thông qua các bài thực hành và thí nghiệm trên Kit các bạn sẽ

khám phá ra được nhiều điều vô cùng thú vị, từ đó các bạn sẽ thấy rằng học môn

học vi điều khiển không khó mà còn khá dễ.

Các bạn sẽ từng bước làm quen với vi điều khiển AVR thông qua từng bài thực

hành từ dễ tới khó. Mỗi bài thực hành, tài liệu sẽ hướng dẫn các bạn từng bước

thực hiện bằng các hình ảnh vô cùng trực quan. Đồng thời thông qua bài thực

hành các bạn sẽ được ôn lại những kiến thức củ và học những kiến thức mới.

Cuối mỗi bài thực hành là các bài tập nâng cao để các bạn thực hành thêm.

Nếu trong quá trình sử dụng tài liệu các bạn cảm thấy khó khăn, hoặc cảm thấy

rằng mình thiếu kiến thức, thì đừng vội hoảng sợ. Bạn chỉ cần nhớ rằng bạn có

thể không hiểu được tất cả mọi thứ ở lần đầu tiên.

Mặc dù tài liệu đã được biên soạn với sự nỗ lực, tận tâm cao nhất nhưng với kinh

nghiệm và thời gian còn hạn chế nên những bài thực hành trong tài liệu không

thể tránh khỏi những sai sót. Tác giả rất mong nhận được sự đóng góp ý kiến quý

báo từ các đồng nghiệp, quí thầy cô và các bạn sinh viên để tài liệu này được

hoàn thiện hơn.

Mọi ý kiến đón góp xin gởi về:

Trường Cao Đẳng Công Nghệ Thủ Đức

Trần Hồng Văn

Phòng Khoa Học Công Nghệ & Quan Hệ Quốc Tế

Tel: 0902.969.727 – (08)38893666

Email: [email protected]

Page 3: Huong Dan Flowcode Avr

Hướng dẫn thực hành vi điều khiển AVR FlowCode AVR

Trường CĐ Công Nghệ Thủ Đức Trang - 3 -

GGIIỚỚII TTHHIIỆỆUU FFLLOOWWCCOODDEE

Môi trường lập trình Flowcode bao gồm một khu vực hoạt động chính, trong đó

cửa sổ flowchart được hiển thị, một số thanh công cụ cho phép các biểu tượng và

các thành phần được thêm vào trong ứng dụng của flowchart, cửa sổ cho phép

xem trạng thái của vi điều khiển và cũng là cửa sổ hiển thị các biến trong quá

trình lưu đồ thuật giải đang được mô phỏng. Ở đây bạn có thể nhìn thấy một màn

hình của một dự án:

Có 3 thanh công cụ mà bạn có thể sử dụng

Thanh công cụ Icons

Kéo và thả biểu tượng này vào cửa sổ chính flowchart để tạo thành một ứng dụng

flowchart của bạn. Thông thường thanh công cụ này nằm ở vị trí ở bên trái của

màn hình, nhưng thanh công cụ có thể được trong giống như hình dưới đây khi

nó undocked.

Page 4: Huong Dan Flowcode Avr

Hướng dẫn thực hành vi điều khiển AVR FlowCode AVR

Trường CĐ Công Nghệ Thủ Đức Trang - 4 -

Thanh công cụ Components

Đây là thanh công cụ hiển thị các thành phần bên ngoài, các thành phần nầy có

thể được kết nối với một vi điều khiển. Click vào một thành phần và nó sẽ thêm

một thành phần cần điều khiển vào của sổ flowchart. Chất kết nối giữa vi điều

khiển và thành phần điều khiển có thể được sửa đổi. Thông thường vị trí của

thanh công cụ này nằm ở bên trái của màn hình bên cạnh thanh công cụ Icons,

nhưng thanh công cụ có thể được trong giống như hình dưới đây khi nó

undocked.

Thanh công cụ Menu và simulation (mô phỏng)

Các nút trên thanh công cụ này cho phép bạn mở tập tin, đóng các tập tin v.v…

và cũng cho phép bạn kiểm soát các mô phỏng và điều khiển các chức năng. Các

chức năng này cũng có sẵn trên trình đơn Windows chuẩn ở phía trên cùng của

màn hình

Duy chuyển thanh công cụ

Các thanh công cụ có thể được duy chuyển ra khởi vị trí mặt định của nó hoặc

thả nổi, hoặc đưa vào trong trình đơn, hoặc bên dưới cùng của cửa sổ Flowcode.

Dưới đây là một ví dụ thả nổi thanh công cụ

Page 5: Huong Dan Flowcode Avr

Hướng dẫn thực hành vi điều khiển AVR FlowCode AVR

Trường CĐ Công Nghệ Thủ Đức Trang - 5 -

Cửa sổ Microcontroller

Vi điều khiển hiện thành được hiển thị ở cửa sổ này. Khi flowchart được mô

phỏng thì tình trạng các chân xuất nhập của vi điều khiển được hiển thị trên vi

điều khiển với màu đỏ và màu xanh cho kết quả đầu ra cao và thấp tương ứng

như bạn có thể xem ở đây:

Page 6: Huong Dan Flowcode Avr

Hướng dẫn thực hành vi điều khiển AVR FlowCode AVR

Trường CĐ Công Nghệ Thủ Đức Trang - 6 -

Cửa sổ Flowchart

Các biểu tượng làm nên lưu đồ giải thuật flowchart được hiển thị trong cửa sổ

này. Ngoài ra, các lưu đồ giải thuật của các macro được hiển thị trong một của sổ

riêng biệt. Cửa số chính flowchart luôn luôn được hiển thị và của sổ các của các

macro có thể được hiển thị hoặc ẩn đi khi cần thiết.

Page 7: Huong Dan Flowcode Avr

Hướng dẫn thực hành vi điều khiển AVR FlowCode AVR

Trường CĐ Công Nghệ Thủ Đức Trang - 7 -

Cửa sổ External component

Tình trạng của một trong những thành phần kèm theo vi điều khiển được hiển thị

trong cửa sổ này. Các thành phần sẽ trở nên “hoạt động” khi mà flowchart được

mô phỏng. Cho bạn một cách nhìn tổng thể cũng như cho phép bạn tương tác với

các thành phần bên ngoài, ví dụ: đóng và mở công tắc.

Cử sổ Variables

Khi mô phỏng một flowchart, giá trị của bất kỳ các biến sử dụng có thể được

nhìn thấy trong cửa sổ này. Các giá trị của các biến được cập nhật cho tất cả các

lệnh của mỗi lệnh mô phỏng nhưng không được cập nhật khi các mô phỏng chạy

ở tốc độ đầy đủ. Nếu bạn mô phỏng một flowchart ành nhấn nút pause thì bạn có

thể click vào các biến trong của sổ này và thay đổi giá trị của chúng. Điều này

cho phép bạn thử nghiệm flowchart của bạn dưới các điều kiện khác nhau.

Page 8: Huong Dan Flowcode Avr

Hướng dẫn thực hành vi điều khiển AVR FlowCode AVR

Trường CĐ Công Nghệ Thủ Đức Trang - 8 -

Cửa sổ Call stack.

Cửa sổ này cho phép xem các macro hiện hành được mô phỏng. Điều này rất hữu

ích khi một trong những macro khác được gọi trong quá trình mô phỏng.

Thanh công cụ và cửa sổ kiểm tra.

Nếu bạn chọn VIEW… từ trình đơn bạn có thể xem được số của các hộp lựa

chọn, các lựa chọn này có thể được dùng để kích hoạt hoặc tắt cửa sổ các thanh

công cụ.

Page 9: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 1 XUẤT DỮ LIỆU RA PORT A Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 9 -

II.. MMỤỤCC ĐĐÍÍCCHH

- Nhận diện vi điều khiển ATMEGA8515.

- Xuất dữ liệu ra các port của vi điều khiển ATMEGA8515.

IIII.. TTRRAANNGG TTHHIIẾẾTT BBỊỊ

- Máy vi tính có cài phần mềm Flowcode AVR.

- Bộ Thực Tập Vi Xử Lý CITA.

IIIIII.. LLÝÝ TTHHUUYYẾẾTT

III.1. Giới thiệu chip ATMEGA8515

Hình 1: Sơ đồ chân của chip 8515

A. Khái quát :

Chip ATmega8515 là một vi điều khiển họ CMOS 8-bit năng lượng thấp dựa

trên họ AVR được tăng cường cấu trúc RISC. Bằng cách thi hành những lệnh

mạnh trong một chu kỳ xung đơn, ATmega8515 đạt thông lượng gần 1 MIPS /

Page 10: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 1 XUẤT DỮ LIỆU RA PORT A Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 10 -

MHz cho phép hệ thống thiết kế có thể tối ưu hóa điện năng tiêu thụ so với tốc độ

xử lý.

B. Đặc tính:

• Hiệu suất cao, bộ vi điều khiển công suất thấp 8-bit

• Cấu trúc RISC

Thanh ghi làm việc đa năng.

Sự vận hành tĩnh.

Khả năng thực hiện 16 triệu lệnh/s tại tần số 16 Mhz.

• Bộ nhớ chương trình và dữ liệu không đổi.

Tự lập trình hệ thống được 8Kbyte.

Độ bền:10000vòng ghi/xóa.

Bộ phận khởi động ngẫu nhiên độc lập với bit khóa.

Chuơng trình hệ thống dựa trên chương trình khởi động trên chip

Điều khiển việc đọc trong khi ghi trung thực

512 byte EEPROM

Độ bền:100000 vòng ghi/xóa.

512 byte SRAM bên trong

Có thể mở rộng bộ nhớ ngoài lên tới 64 Kbyte

Chương trình khóa dành cho phần mềm bảo mật

• Đặc tính ngoại vi:

3 kênh điều biến độ rộng xung(PWM:pulse width modulation)

Page 11: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 1 XUẤT DỮ LIỆU RA PORT A Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 11 -

Giao tiếp nối tiếp loại chủ tớ SPI

Bộ thu phát tổng hợp đồng bộ và không đồng bộ

Bộ định thời giám sát lập trình với bộ tạo dao động riêng biệt trên chip

Bộ so sánh tương tự trên chip

• Chức năng đặc biệt của vi điều khiển:

Trình tự khởi động và khả năng tự dò tìm khi nguồn yếu.

Bộ dao động RC bên trong được hiệu chỉnh

Bộ nguồn ngắt bên trong và ngoài

3 chế độ chờ:không họat động,nguồn giảm,chế độ nghỉ

• Ngõ vào/ra và gói chương trình:

40 chân ngoại vi

• Mức điện thế hoạt động:

2.7-5.5 V cho ATmega8515L

4.5-5.5V cho ATmega8515

• Cấp tần số:

0-8 Mhz cho ATmega8515L

0-16 Mhz cho ATmega8515

III.2. Mô tả các chân

VCC

GND

Page 12: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 1 XUẤT DỮ LIỆU RA PORT A Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 12 -

Port A (PA7..PA0) Port B (PB7..PB0) Port C (PC7..PC0) Port D (PD7..PD0)

: là các cổng xuất nhập 2 chiều 8 bit, với điện trở kéo lên bên trong (tùy chọn cho

từng bit). Ngoài ra các cổng A,B và D còn có thể phục vụ một số chức năng đặc

biết của Atmega8515.

Port E (PE2..PE0) : là cổng xuất nhập 2 chiều 3 bit, với điện trở kéo lên bên

trong (tùy chọn cho từng bit). Ngoài ra cổng E còn có thể phục vụ một số chức

năng đặc biệt của Atmega8515.

RESET ngõ vào chân reset.

XTAL1 Ngõ vào bộ khuếch đại dao động đảo và ngõ vào xung trong để mạch

hoạt động.

XTAL2 Ngõ ra từ bộ dao động khuếch đại đảo.

III.3. Kết nối phần cứng

Page 13: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 1 XUẤT DỮ LIỆU RA PORT A Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 13 -

IIVV.. TTHHỰỰCC HHÀÀNNHH

Sơ đồ giải thuật xuất dữ liệu ra port A

Bước 1: Tạo dự án mới

- Khởi động chương trình FlowCode

- Chọn Create a new FlowCode flowchart… Nhấn OK

Page 14: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 1 XUẤT DỮ LIỆU RA PORT A Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 14 -

- Chọn chip ATMEGA8515 Nhấn OK

- Màn hình làm việc hiện ra với 2 khối BEGIN và END

Page 15: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 1 XUẤT DỮ LIỆU RA PORT A Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 15 -

- Nhấn vào biểu tượng để lưu chương trình với tên

D:\\BaitapAVR\Bai1

Bước 2: Gọi khối xuất dữ liệu

- Chọn vào biểu tượng sau đó kéo – thả vào giữa 2 khối

BEGIN & END

- Nhấn 2 lần vào biểu tượng

- Ghi vào ô Variable or value giá trị 1 Nhấn OK

- Có thể sử dụng số hex hoặc số nhị phân trong ô Variable or value.

- Đối với số hex ta ghi với cú pháp: 0x1F

- Đối với số nhị phân ta ghi với cú pháp: 0b10101010

- Trong phần mềm Flowcode ta có thể sử dụng số ở dạng thập phân, nhị

phân và thập lục phân nhưng phải tuân theo cú pháp trên.

Page 16: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 1 XUẤT DỮ LIỆU RA PORT A Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 16 -

Bước 3: Gọi khối mô phỏng Led đơn

- Nhấn vào biểu tượng

- Nhấn vào biểu tượng

- Chọn Component Connections…

o Port: Lựa chọn Led nối với port nào của ATMEGA8515

o Bit: Lựa chọn từng chân của ATMEGA8515 nối với Led

- Chọn Port A

Page 17: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 1 XUẤT DỮ LIỆU RA PORT A Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 17 -

Bước 4: Mô phỏng

- Nhấn vào biểu tượng

- Quan sát hiện tượng

- Nhấn vào biểu tượng

- Chọn Properties…

Number of LEDs: Lựa chọn số lượng LED hiển thị

LED Colour: Chọn màu cho LED

Direction:

Page 18: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 1 XUẤT DỮ LIỆU RA PORT A Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 18 -

o Deflault: Led 0 nằm bên phía tay phải

o Reverse: Led 0 nằm bên phía tay trái

Orientation:

o Horizontal: Led hiển thị nằm ngang

o Vertical: Led hiển thị đứng

- Đặt tên cho các Led

VV.. TTHHÍÍ NNGGHHIIỆỆMM

AA.. KKếếtt nnốốii pphhầầnn ccứứnngg

Bước 1: Tắt nguồn KIT thực tập vi xử lý

Bước 2: Gắn board ATMEGA8515 vào TEXTDOL

Page 19: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 1 XUẤT DỮ LIỆU RA PORT A Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 19 -

Bước 3: Nối dây nạp chương trình vào board ATMEGA8515

Page 20: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 1 XUẤT DỮ LIỆU RA PORT A Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 20 -

- Nối J181 với board ATMEGA8515 ở vị trí Nạp

Bước 4: Kết nối với Led

- Nối Led với Port A

1

4 Nap

Port A

PA0

PA7

Page 21: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 1 XUẤT DỮ LIỆU RA PORT A Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 21 -

- Kết nối hoàn chỉnh

BB.. NNạạpp cchhưươơnngg ttrrììnnhh vvààoo cchhiipp

Bước 1: Mở nguồn KIT thực tập vi xử lý

Bước 2: Biên dịch chương trình

- Trên trình đơn chính, chọn Chip chọn Clock Speed

Page 22: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 1 XUẤT DỮ LIỆU RA PORT A Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 22 -

- Trong ô Clock speed (Hz) nhập giá trị 8000000. Tương đương với tần số

hoạt động của chip là 8Mz Nhấn OK

- Nhấn vào biểu tượng

- Nếu như chương trình chưa lưu sẽ có bản thông báo. Chọn Yes.

Page 23: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 1 XUẤT DỮ LIỆU RA PORT A Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 23 -

Bước 3: Mở chương trình nạp SpiPgm

- Chọn chip MEGA8515

- Nhấn vào Signature kiểm tra chip

Page 24: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 1 XUẤT DỮ LIỆU RA PORT A Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 24 -

- Nếu thông báo như hình: chip đã được nhận diện. Ta tiến hành bước 3

- Nếu thông báo như hình: Tiến hành kiểm tra lại các bước ở phần A

Page 25: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 1 XUẤT DỮ LIỆU RA PORT A Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 25 -

Bước 5: Nạp chương trình

- Chọn Open File

- Chọn file cần nạp D:\\BaitapAVR\bai1.hex

- Nhấn vào nút Program để tiến hành nạp chương trình

- Nếu biên dịch thành công sẽ có thông báo

Page 26: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 1 XUẤT DỮ LIỆU RA PORT A Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 26 -

Bước 6: Quan sát hiện tượng

- Nếu hiện tượng không đúng với quá trình mô phỏng thì thực hiện lại từng

bước từ phần A.

- Phần cứng của Kit thực tập vi điều khiển, Led có chân chung là chân

dương, chân âm là chân điều khiển. Nên Led sẽ sáng ở mức thấp, trong

khi phần mô phỏng của phần mềm Flowcode Led sáng ở mức cao.

CCÂÂUU HHỎỎII –– BBÀÀII TTẬẬPP

- Hãy điền vào các giá trị tương ứng với led sáng. Hoặc các led nào sáng

tương ứng với các giá trị

Dự liệu xuất LED

51

204

195

____

Page 27: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 1 XUẤT DỮ LIỆU RA PORT A Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 27 -

____

____

- Đổi các số thập phân sau đây sang mã hex, nhị phân

Số thập phân Số hex Nhị phân

12

254

120

72

96

Page 28: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 1 XUẤT DỮ LIỆU RA PORT A Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 28 -

- Khi kết nối phần cứng phải đảm bảo rằng nguồn đã tắt.

- Không nhấn vào các nút khác ngoài các nút: Signature, Open File,

Program. Vì có thể làm hỏng Chip

- Thao tác gắn các Jump – dây cắm trên Kit thực tập vi xử lý phải nhẹ

nhàng và cẩn thận.

- Khi tháo các Jump – dây cắm phải tháo thẳng góc.

- Khi thực tập có những vấn đề khác thường thì phải báo ngây với giáo viên

đứng lớp, không tự ý giải quyết.

- Những vấn đề không hiểu trong quá trình thực tập hãy mạnh dạng hỏi giáo

viên đứng lớp, đừng lo sợ.

Page 29: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 2 ĐIỀU KHIỂN LED CHỚP TẮT Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 29 -

II.. MMỤỤCC ĐĐÍÍCCHH

- Sử dụng vòng lặp trong lập trình điều khiển vi điều khiển ATMEGA8515.

IIII.. TTRRAANNGG TTHHIIẾẾTT BBỊỊ

- Máy vi tính có cài phần mềm Flowcode AVR

- Bộ thực tập Vi Xử Lý CITA

IIIIII.. LLÝÝ TTHHUUYYẾẾTT

VVòònngg llặặpp vvôô ttậậnn..

Cú pháp:

While (1)

{

…… Các lệnh khác nằm ở đây ………

}

Loop

Giải nghĩa: While (1) luôn luôn đúng nên vòng lặp này sẽ thực hiện các lệnh

nằm trong dấu { } vô tận

Cách khác:

Loop

{

…… Các lệnh khác nằm ở đây ………

}

While (1)

Page 30: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 2 ĐIỀU KHIỂN LED CHỚP TẮT Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 30 -

IIVV.. TTHHỰỰCC HHÀÀNNHH

Sơ đồ giải thuật port A chớp – tắt.

Bước 1: Tạo dự án

- Thực hiện giống bước 1 ở Bài 1, trang 13

- Lưu bài tập với tên D:\\BaitapAVR\Bai2

Bước 2: Gọi vòng lặp while

Page 31: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 2 ĐIỀU KHIỂN LED CHỚP TẮT Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 31 -

- Chọn vào biểu tượng sau đó kéo – khả vào giữ 2 khối BEGIN &

END.

- Kết quả sau khi thực hiện kéo khối vòng lặp

- Nhấn 2 lần vào hoặc

- Ghi vào ô Variable or Value giá trị 1 Nhấn OK

Page 32: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 2 ĐIỀU KHIỂN LED CHỚP TẮT Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 32 -

- Nếu trong Test the loop at the: ta chọn End thì kết quả sẽ như hình

Bước 3: Gọi khối xuất dữ liệu

- Chọn vào biểu tượng , các bước thực hiện giống Bước 2, Bài 1 –

Trang

Khối thứ nhất

Chọn Port: PORT A

Variable or Value: 00

Khối thứ hai

Chọn Port: PORT A

Variable or Value: 0xff

Page 33: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 2 ĐIỀU KHIỂN LED CHỚP TẮT Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 33 -

Bước 4: Chọn khối Delay

- Chọn vào biểu tượng , sau đó kéo – thả vào như hình

Page 34: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 2 ĐIỀU KHIỂN LED CHỚP TẮT Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 34 -

- Nhấn 2 lần vào biểu tượng

- Trong ô Delay value or variable: gõ giá trị 250.

- Thêm một khối Delay nữa đưa vào như hình.

Page 35: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 2 ĐIỀU KHIỂN LED CHỚP TẮT Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 35 -

- Các bước cấu hình cho khối Delay thứ 2 tương tự khối Delay thứ nhất.

Bước 5: Gọi khối mô phỏng Led đơn

- Giống như Bước 3, Bài 1 – Trang 16

Bước 6: Mô phỏng

- Nhấn vào biểu tượng

- Quan sát hiện tượng

Page 36: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 2 ĐIỀU KHIỂN LED CHỚP TẮT Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 36 -

VV.. TTHHÍÍ NNGGHHIIỆỆMM

AA.. KKếếtt nnốốii pphhầầnn ccứứnngg

- Các bước thực hiện giống như các bước ở Bài 1 – Trang 18.

BB.. NNạạpp cchhưươơnngg ttrrììnnhh vvààoo cchhíípp

Bước 1: Các bước thực hiện giống như các bước ở Bài 1 – Trang 21.

Bước 2: Các bước thực hiện giống như các bước ở Bài 1 – Trang 21.

Bước 3: Nạp chương trình

- Chọn file cần nap D:\\BaitapAVR\bai2.hex

Bước 4: Quan sát hiện tượng

- Nếu hiện tượng không đúng với quá trình mô phỏng thì thực hiện lại từng

bước từ phần A.

- Phần cứng của Kit thực tập vi điều khiển, Led có chân chung là chân

dương, chân âm là chân điều khiển. Nên Led sẽ sáng ở mức thấp, trong

khi phần mô phỏng của phần mềm Flowcode Led sáng ở mức cao.

CCÂÂUU HHỎỎII –– BBÀÀII TTẬẬPP

1. Khối Delay thêm vào để làm gì? Nếu bỏ khối Delay thì hiện tượng gì xảy ra?

2. Khời gian Delay có ảnh hưởng gì đến sự hiện thị của Led không? Như thế

nào?

3. Làm lại bài tập 2 với yêu cầu: Khi khởi động Led ở port A tắt, sau đó 4 Led

byte thấp ở port A sáng 200ms, kế tiếp 4 Led byte cao ở port A sáng, 4 Led

byte thấp ở port A tắt 200ms. Và lặp đi lặp lại vô hạn.

Page 37: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 2 ĐIỀU KHIỂN LED CHỚP TẮT Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 37 -

- Khi kết nối phần cứng phải đảm bảo rằng nguồn đã tắt.

- Không nhấn vào các nút khác ngoài các nút: Signature, Open File,

Program. Vì có thể làm hỏng Chip

- Thao tác gắn các Jump – dây cắm trên Kit thực tập vi xử lý phải nhẹ

nhàng và cẩn thận.

- Khi tháo các Jump – dây cắm phải tháo thẳng góc.

- Khi thực tập có những vấn đề khác thường thì phải báo ngây với giáo viên

đứng lớp, không tự ý giải quyết.

- Những vấn đề không hiểu trong quá trình thực tập hãy mạnh dạng hỏi giáo

viên đứng lớp, đừng lo sợ.

Page 38: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 3 ĐIỀU KHIỂN LED CHỚP TẮT 3 LẦN

Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 38 -

II.. MMỤỤCC ĐĐÍÍCCHH

- Sử dụng vòng lặp trong lập trình điều khiển vi điều khiển ATMEGA8515.

IIII.. TTRRAANNGG TTHHIIẾẾTT BBỊỊ

- Máy vi tính có cài phần mềm Flowcode AVR

- Bộ thực tập Vi Xử Lý CITA

IIIIII.. LLÝÝ TTHHUUYYẾẾTT

VVòònngg llặặpp ccóó đđiiềềuu kkiiệệnn

Cú pháp:

While (<điều kiện>)

{

…… Các lệnh khác nằm ở đây ………

}

Loop

Giải nghĩa: Vòng lặp sẽ kiểm tra <điều kiện> trước, nếu còn đúng thì các lệnh

nằm trong { } sẽ được lặp di lặp lại. Nếu <điều kiện sai> vòng lặp sẽ kết thúc.

Ví dụ:

I =0;

While (I <9)

{

I = I + 1;

}

Loop

Page 39: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 3 ĐIỀU KHIỂN LED CHỚP TẮT 3 LẦN

Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 39 -

Vòng lặp sẽ kiểm tra giá trị I, nếu I vẫn nhỏ hơn 9 thì vòng lặp tiếp tục lặp,

ngược lại nếu I =9 vòng lặp sẽ kết thúc. Kết quả sau khi vòng lặp dừng I = 9

Cách khác:

Loop

{

…… Các lệnh khác nằm ở đây ………

}

While (<điều kiện>)

Giải nghĩa: Vòng lặp sẽ thực hiện các lệnh trong dấu { }, sau đó kiểm tra <điều

khiện>, nếu còn đúng vòng lặp tiếp tục lặp, ngược lại vòng lặp sẽ kết thúc.

Ví dụ:

I =0;

Loop

{

I = I + 1;

}

While (I < 9)

Vòng lặp sẽ xử lý các lệnh trong { }, sau đó kiểm tra giá trị I có nhỏ hơn 9

không, nếu đúng thì vòng lặp tiếp tục lặp, ngược lại vòng lặp kết thúc. Kết quả

sau khi vòng lặp dừng I = 9

Page 40: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 3 ĐIỀU KHIỂN LED CHỚP TẮT 3 LẦN

Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 40 -

IIVV.. TTHHỰỰCC HHÀÀNNHH

Sơ đồ giải thuật port A chớp – tắt 3 lần.

Bước 1: Tạo dự án

- Thực hiện giống bước 1 ở Bài 1, trang 13

- Lưu bài tập với tên D:\\BaitapAVR\Bai3

Page 41: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 3 ĐIỀU KHIỂN LED CHỚP TẮT 3 LẦN

Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 41 -

Bước 2: Gọi vòng lặp while

- Chọn vào biểu tượng sau đó kéo – khả vào giữ 2 khối BEGIN &

END.

- Kết quả sau khi thực hiện kéo khối vòng lặp

- Nhấn 2 lần vào hoặc

Page 42: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 3 ĐIỀU KHIỂN LED CHỚP TẮT 3 LẦN

Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 42 -

- Nhấn vào nút

- Nhấn vào nút

- Ghi vào ô Name of new variable: Dem (tên biến kiểu byte)

- Ô Variable type: chọn Byte

Page 43: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 3 ĐIỀU KHIỂN LED CHỚP TẮT 3 LẦN

Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 43 -

- Nhận OK

- Variable Name chọn nhấn nút

- Ở ô Loop while ghi vào giá trị: Dem<3 Nhấn OK

Page 44: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 3 ĐIỀU KHIỂN LED CHỚP TẮT 3 LẦN

Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 44 -

Bước 3: Gọi khối xuất dữ liệu và khối Delay

- Thực hiện giống như Bài 2

- Kết quả như hình

Page 45: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 3 ĐIỀU KHIỂN LED CHỚP TẮT 3 LẦN

Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 45 -

Bước 4: Gọi khối Calculation

Chọn vào biểu tượng sau đó kéo – thả vào trong flowchart

Page 46: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 3 ĐIỀU KHIỂN LED CHỚP TẮT 3 LẦN

Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 46 -

- Nhấn chuột 2 lần vào khối Calculation

Page 47: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 3 ĐIỀU KHIỂN LED CHỚP TẮT 3 LẦN

Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 47 -

- Ghi vào ô Caculations: Dem = Dem + 1 Nhấn OK

- Thêm một khối vào flowchart như hình với Caculations: Dem = 0

Page 48: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 3 ĐIỀU KHIỂN LED CHỚP TẮT 3 LẦN

Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 48 -

Bước 5: Gọi khối mô phỏng Led đơn

- Giống như Bước 3, Bài 1 – Trang 16

Bước 6: Mô phỏng

- Nhấn vào biểu tượng

- Quan sát hiện tượng

Page 49: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 3 ĐIỀU KHIỂN LED CHỚP TẮT 3 LẦN

Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 49 -

VV.. TTHHÍÍ NNGGHHIIỆỆMM

AA.. KKếếtt nnốốii pphhầầnn ccứứnngg

- Các bước thực hiện giống như các bước ở Bài 1 – Trang 18

BB.. NNạạpp cchhưươơnngg ttrrììnnhh vvààoo cchhíípp

Bước 1, 2, 3, 4: Các bước thực hiện giống như các bước ở Bài 1 – Trang 21.

Bước 5: Nạp chương trình

- Chọn file cần nap D:\\BaitapAVR\bai3.hex

Bước 6: Quan sát hiện tượng

- Nếu hiện tượng không đúng với quá trình mô phỏng thì thực hiện lại từng

bước từ phần A.

- Phần cứng của Kit thực tập vi điều khiển, Led có chân chung là chân

dương, chân âm là chân điều khiển. Nên Led sẽ sáng ở mức thấp, trong

khi phần mô phỏng của phần mềm Flowcode Led sáng ở mức cao.

- Khối Calculation: Các phép toán thực hiện được trong khối Calculation

( ) : phép toán trong ngoặc

= <> : phép toán so sánh bằng và không bằng

+ - * / MOD : cộng, trừ, nhân, chia và lấy phần dư

< <= > >= : phép toán nhỏ hơn, nhỏ hơn hoặc bằng; lớn

hơn, lớn hơn hoặc bằng

>> << : dịch phải, dịch trái

NOT AND OR XOR : các phép toán logic

Page 50: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 3 ĐIỀU KHIỂN LED CHỚP TẮT 3 LẦN

Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 50 -

CCÂÂUU HHỎỎII –– BBÀÀII TTẬẬPP

1. Khối Caculation với giá trị Dem = 0 ở đầu flowchart dùng để làm gì?

Nếu không có khối Caculation đó thì hiện tượng gì xảy ra?

2. Thực hiện chương trình: Led sáng tắt 3 lần, sau đó 4 Led byte thấp sáng –

4 Led byte cao tắt và ngược lại thực hiện 3 lần. Chương trình quay lại từ

đầu.

3. Thực hiện đếm lên ở port A từ 0 tới 9.

- Khi kết nối phần cứng phải đảm bảo rằng nguồn đã tắt.

- Không nhấn vào các nút khác ngoài các nút: Signature, Open File,

Program. Vì có thể làm hỏng Chip

- Thao tác gắn các Jump – dây cắm trên Kit thực tập vi xử lý phải nhẹ

nhàng và cẩn thận.

- Khi tháo các Jump – dây cắm phải tháo thẳng góc.

- Khi thực tập có những vấn đề khác thường thì phải báo ngây với giáo viên

đứng lớp, không tự ý giải quyết.

- Những vấn đề không hiểu trong quá trình thực tập hãy mạnh dạng hỏi giáo

viên đứng lớp, đừng lo sợ.

Page 51: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 4 ĐIỀU KHIỂN LED

SÁNG ĐUỔI Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 51 -

II.. MMỤỤCC ĐĐÍÍCCHH

- Sử dụng cấu trúc điều khiển rẽ nhánh trong lập trình điều khiển vi điều

khiển ATMEGA8515.

IIII.. TTRRAANNGG TTHHIIẾẾTT BBỊỊ

- Máy vi tính có cài phần mềm Flowcode AVR

- Bộ thực tập Vi Xử Lý CITA

IIIIII.. LLÝÝ TTHHUUYYẾẾTT

Cú pháp:

if (<điều kiện>)

{

Lệnh 1

}

Else

{

Lệnh 2

}

Giải nghĩa: Lệnh 1 sẽ được thực hiện nếu như <điều kiện> đúng, ngược lại

Lệnh 2 thực hiện.

Page 52: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 4 ĐIỀU KHIỂN LED

SÁNG ĐUỔI Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 52 -

Ví dụ:

if (I = 1)

{

J = 1;

}

Else

{

J = 0;

}

Kết quả cuối cùng nếu J = 1 có nghĩa là I = 1. Ngược lại nếu J = 0 có nghĩa là I

khác 0.

Page 53: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 4 ĐIỀU KHIỂN LED

SÁNG ĐUỔI Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 53 -

IIVV.. TTHHỰỰCC HHÀÀNNHH

Sơ đồ giải thuật Led sáng đuổi.

Page 54: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 4 ĐIỀU KHIỂN LED

SÁNG ĐUỔI Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 54 -

Bước 1: Tạo dự án

- Thực hiện giống bước 1 ở Bài 1, trang 13

- Lưu bài tập với tên D:\\BaitapAVR\Bai4

Bước 2: Gọi khối Output

- Nhấn 2 lần vào khối Output

- Trong cửa sổ Properties: Output chọn các thông số

Variable or value: 0

Port: Port A

Bước 3: Gọi khối Calculation

- Nhấn 2 lần vào khối Calculation

- Trong cửa sổ Properties: Calculation

o Nhấn vào nút Variables

Cửa sổ Variable Manager

Nhấn nút Add New Variable

o Cửa sổ Create a New Variable

Name of New Variable: count

Nhấn OK

Variable Name chọn count Use Variable

o Calculations: count = 1

o Nhấn OK

Page 55: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 4 ĐIỀU KHIỂN LED

SÁNG ĐUỔI Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 55 -

Bước 4: Gọi vòng lặp while

Bước 5: Gọi khối Decision (khối rẽ nhánh)

- Chọn vào biểu tượng sau đó kéo – thả vảo giửa 2 khối While – Loop

- Nhấn 2 lần vào khối

Page 56: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 4 ĐIỀU KHIỂN LED

SÁNG ĐUỔI Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 56 -

- Ghi vào trong ô If: count = 0

Bước 6: Gọi khối Calculation

- Kéo khối Calculation vào nhánh Yes của khối Decision

- Nhấn 2 lần vào khối Calculation

- Trong cửa sổ Properties: Calculation

o Calculations: count = 1

Page 57: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 4 ĐIỀU KHIỂN LED

SÁNG ĐUỔI Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 57 -

Bước 7: Gọi khối Output

- Kéo khối Output vào sau khối Decision

- Nhấn 2 lần vào khối Output

- Trong cửa sổ Properties: Output chọn các thông số

Variable or value: count

Port: Port A

Bước 8: Gọi khối Calculation

- Nhấn 2 lần vào khối Calculation

- Trong cửa sổ Properties: Calculation

o Calculations: count = count << 1

Bước 9: Gọi khối Delay

- Nhấn 2 lần vào khối Delay

- Trong cửa sổ Properties: Delay

o Delay value or vairable: 250

o Chọn milliseconds

Bước 10: Gọi khối mô phỏng Led đơn

- Giống như Bước 3, Bài 1 – Trang 16

Bước 11: Mô phỏng

- Nhấn vào biểu tượng

- Quan sát hiện tượng

Page 58: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 4 ĐIỀU KHIỂN LED

SÁNG ĐUỔI Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 58 -

VV.. TTHHÍÍ NNGGHHIIỆỆMM

AA.. KKếếtt nnốốii pphhầầnn ccứứnngg

- Các bước thực hiện giống như các bước ở Bài 1 – Trang 18.

BB.. NNạạpp cchhưươơnngg ttrrììnnhh vvààoo cchhíípp

Bước 1, 2, 3, 4: Các bước thực hiện giống như các bước ở Bài 1 – Trang 21.

Bước 5: Nạp chương trình

- Chọn file cần nap D:\\BaitapAVR\bai4.hex

Bước 5: Quan sát hiện tượng

- Nếu hiện tượng không đúng với quá trình mô phỏng thì thực hiện lại từng

bước từ phần A.

- Phần cứng của Kit thực tập vi điều khiển, Led có chân chung là chân

dương, chân âm là chân điều khiển. Nên Led sẽ sáng ở mức thấp, trong

khi phần mô phỏng của phần mềm Flowcode Led sáng ở mức cao.

CCÂÂUU HHỎỎII –– BBÀÀII TTẬẬPP

1. Thực hiện chương trình Led sáng đuổi từ trái qua phải

2. Thực hiện chương trình Led sáng đuổi từ phải qua trái, sau đó từ trái qua

phải. Chương trình lặp lại từ đầu.

3. Thực hiện chương trình Led sáng dần.

4. Thực hiện chương trình Led sáng dồn.

Page 59: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 4 ĐIỀU KHIỂN LED

SÁNG ĐUỔI Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 59 -

- Khi kết nối phần cứng phải đảm bảo rằng nguồn đã tắt.

- Không nhấn vào các nút khác ngoài các nút: Signature, Open File,

Program. Vì có thể làm hỏng Chip

- Thao tác gắn các Jump – dây cắm trên Kit thực tập vi xử lý phải nhẹ

nhàng và cẩn thận.

- Khi tháo các Jump – dây cắm phải tháo thẳng góc.

- Khi thực tập có những vấn đề khác thường thì phải báo ngây với giáo viên

đứng lớp, không tự ý giải quyết.

- Những vấn đề không hiểu trong quá trình thực tập hãy mạnh dạng hỏi giáo

viên đứng lớp, đừng lo sợ.

Page 60: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 5 NHẬP DỮ LIỆU TỪ PORT B Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 60 -

II.. MMỤỤCC ĐĐÍÍCCHH

- Nhận dữ liệu từ bên ngoài vào ATMEGA8515 và xử lý.

IIII.. TTRRAANNGG TTHHIIẾẾTT BBỊỊ

- Máy vi tính có cài phần mềm Flowcode AVR

- Bộ thực tập Vi Xử Lý CITA

IIIIII.. LLÝÝ TTHHUUYYẾẾTT

- Xem lại Bài 1

Sơ đồ kết nối phần cứng

Page 61: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 5 NHẬP DỮ LIỆU TỪ PORT B Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 61 -

IIVV.. TTHHỰỰCC HHÀÀNNHH

Sơ đồ giải thuật nhận dữ liệu từ Port B và xuất ra Port A

Bước 1: Tạo dự án

- Thực hiện giống bước 1 ở Bài 1, trang 13

- Lưu bài tập với tên D:\\BaitapAVR\Bai5

Bước 2: Gọi vòng lặp while

Bước 3: Gọi khối Input

- Chọn vào biểu tượng sau đó kéo – thả vào giữ 2 khối While – Loop

- Nhấn 2 lần vào khối

Page 62: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 5 NHẬP DỮ LIỆU TỪ PORT B Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 62 -

- Trong cửa sổ Properties: Input

o Nhấn vào nút Variables

Cửa sổ Variable Manager

Nhấn nút Add New Variable

o Cửa sổ Create a New Variable

Name of New Variable: switch

Nhấn OK

Variable Name chọn count Use Variable

o Variable: switch

o Port: Port B

o Nhấn OK

Page 63: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 5 NHẬP DỮ LIỆU TỪ PORT B Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 63 -

Bước 4: Gọi khối Output

- Nhấn 2 lần vào khối Output

- Trong cửa sổ Properties: Output chọn các thông số

Variable or value: switch

Port: Port A

Bước 5: Gọi khối mô phỏng Led đơn

- Giống như Bước 3, Bài 1 – Trang 16

Bước 7: Gọi khối mô phỏng nút nhất.

- Nhấn vào biểu tượng

- Nhấn vào biểu tượng

- Chọn Component Connections…

Page 64: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 5 NHẬP DỮ LIỆU TỪ PORT B Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 64 -

o Port: Lựa chọn Led nối với port nào của ATMEGA8515

o Bit: Lựa chọn từng chân của ATMEGA8515 nối với Led

- Chọn Port B

Bước 6: Mô phỏng

- Nhấn vào biểu tượng

- Quan sát hiện tượng

- Nhấn vào biểu tượng

Page 65: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 5 NHẬP DỮ LIỆU TỪ PORT B Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 65 -

- Chọn Properties…

Number of Switches: Lựa chọn số lượng nút nhấn/ công tắc.

Switch Type:

Toggle: công tắc

Push To Make: Nút nhấn

Direction:

Deflaul: Switch 0 nằm bên phía phải.

Reverse: Switch 0 nằm bên phía trái.

Orientation:

Horizontal: Switch hiển thị nằm ngang

Vertical: Switch hiển thị đứng

Debounce: thời gian nẩy phím

Page 66: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 5 NHẬP DỮ LIỆU TỪ PORT B Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 66 -

- Đặt tên cho các Switch

VV.. TTHHÍÍ NNGGHHIIỆỆMM

AA.. KKếếtt nnốốii pphhầầnn ccứứnngg

Từ Bước 1 tới Bước 4 giống Bài 1 – Trang 18

Bước 5: Kết nối với switch

PB0

PB7

Port B

Page 67: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 5 NHẬP DỮ LIỆU TỪ PORT B Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 67 -

- Kết nối Port B với khối công tắc

- Kết nối hoàn chỉnh

Page 68: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 5 NHẬP DỮ LIỆU TỪ PORT B Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 68 -

BB.. NNạạpp cchhưươơnngg ttrrììnnhh vvààoo cchhíípp

Bước 1, 2, 3, 4: Các bước thực hiện giống như các bước ở Bài 1 – Trang 21.

Bước 5: Nạp chương trình

- Chọn file cần nap D:\\BaitapAVR\bai5.hex

Bước 6: Quan sát hiện tượng

- Thay đổi các switch – quan sát các led

- Nếu hiện tượng không đúng với quá trình mô phỏng thì thực hiện lại từng

bước từ phần A.

- Phần cứng của Kit thực tập vi điều khiển, Led có chân chung là chân

dương, chân âm là chân điều khiển. Nên Led sẽ sáng ở mức thấp, trong

khi phần mô phỏng của phần mềm Flowcode Led sáng ở mức cao.

CCÂÂUU HHỎỎII –– BBÀÀII TTẬẬPP

1. Thực hiện chương trình khi Port B nhận dữ liệu là 1 thì dữ liệu xuất ra ở

Port A là 2, tương tự dữ liệu vào là 2 thì dữ liệu xuất ra là 3…

Page 69: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 5 NHẬP DỮ LIỆU TỪ PORT B Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 69 -

- Khi kết nối phần cứng phải đảm bảo rằng nguồn đã tắt.

- Không nhấn vào các nút khác ngoài các nút: Signature, Open File,

Program. Vì có thể làm hỏng Chip

- Thao tác gắn các Jump – dây cắm trên Kit thực tập vi xử lý phải nhẹ

nhàng và cẩn thận.

- Khi tháo các Jump – dây cắm phải tháo thẳng góc.

- Khi thực tập có những vấn đề khác thường thì phải báo ngây với giáo viên

đứng lớp, không tự ý giải quyết.

- Những vấn đề không hiểu trong quá trình thực tập hãy mạnh dạng hỏi giáo

viên đứng lớp, đừng lo sợ.

Page 70: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 6 NÚT NHẤN Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 70 -

II.. MMỤỤCC ĐĐÍÍCCHH

- Nhận dữ liệu từ bên ngoài vào ATMEGA8515 và xử lý.

IIII.. TTRRAANNGG TTHHIIẾẾTT BBỊỊ

- Máy vi tính có cài phần mềm Flowcode AVR

- Bộ thực tập Vi Xử Lý CITA

IIIIII.. LLÝÝ TTHHUUYYẾẾTT

- Xem lại Bài 1

Sơ đồ kết nối phần cứng

Page 71: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 6 NÚT NHẤN Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 71 -

IIVV.. TTHHỰỰCC HHÀÀNNHH

Sơ đồ giải thuật đếm lên khi nhấn nút – dữ liệu xuất ra Port A

Bước 1: Tạo dự án

- Thực hiện giống bước 1 ở Bài 1, trang 13

- Lưu bài tập với tên D:\\BaitapAVR\Bai6

Bước 2: Gọi khối Calculation

Page 72: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 6 NÚT NHẤN Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 72 -

- Nhấn 2 lần vào khối Calculation

- Trong cửa sổ Properties: Calculation

o Nhấn vào nút Variables

Cửa sổ Variable Manager

Nhấn nút Add New Variable

o Cửa sổ Create a New Variable

Name of New Variable: total

Nhấn OK

Variable Name chọn count Use Variable

o Calculations: count = 0

o Nhấn OK

Bước 3: Gọi vòng lặp while

Bước 4: Gọi khối Input

- Chọn vào biểu tượng sau đó kéo – thả vào giữ 2 khối While – Loop

- Nhấn 2 lần vào khối Iutput

- Trong cửa sổ Properties: Input

o Nhấn vào nút Variables

Cửa sổ Variable Manager

Nhấn nút Add New Variable

o Cửa sổ Create a New Variable

Name of New Variable: count

Page 73: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 6 NÚT NHẤN Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 73 -

Nhấn OK

Variable Name chọn count Use Variable

o Variable: count

o Port: Port C

o Single bit: 0

o Nhấn OK

Bước 5: Gọi khối Calculation

- Nhấn 2 lần vào khối Calculation

- Trong cửa sổ Properties: Calculation

o Calculations: total=total+count

o Nhấn OK

Bước 6: Gọi khối Delay

- Nhấn 2 lần vào khối Delay

- Trong cửa sổ Properties: Delay

o Delay value or vairable: 250

o Chọn milliseconds

Bước 7: Gọi khối Output

- Nhấn 2 lần vào khối Output

- Trong cửa sổ Properties: Output chọn các thông số

Variable or value: total

Port: Port A

Page 74: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 6 NÚT NHẤN Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 74 -

Bước 8: Gọi khối mô phỏng Led đơn

- Giống như Bước 3, Bài 1 – Trang 16

Bước 9: Gọi khối mô phỏng nút nhất.

- Nhấn vào biểu tượng

- Nhấn vào biểu tượng

- Chọn Properties…

- Chọn Component Connections…

Page 75: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 6 NÚT NHẤN Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 75 -

Bước 10: Mô phỏng

- Nhấn vào biểu tượng

- Quan sát hiện tượng

VV.. TTHHÍÍ NNGGHHIIỆỆMM

AA.. KKếếtt nnốốii pphhầầnn ccứứnngg

Từ Bước 1 tới Bước 4 giống Bài 1 – Trang 18

Bước 5: Kết nối với switch

Page 76: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 6 NÚT NHẤN Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 76 -

- Kết nối PC0 với khối công tắc switch 1

- Kết nối Port A với khối Led đơn

- Kết nối hoàn chỉnh

PC0

PA

Port C

Page 77: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 6 NÚT NHẤN Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 77 -

BB.. NNạạpp cchhưươơnngg ttrrììnnhh vvààoo cchhíípp

Bước 1, 2, 3, 4: Các bước thực hiện giống như các bước ở Bài 1 – Trang 21.

Bước 5: Nạp chương trình

- Chọn file cần nap D:\\BaitapAVR\bai6.hex

Bước 6: Quan sát hiện tượng

- Thay đổi switch – quan sát các led

- Nếu hiện tượng không đúng với quá trình mô phỏng thì thực hiện lại từng

bước từ phần A.

- Phần cứng của Kit thực tập vi điều khiển, Led có chân chung là chân

dương, chân âm là chân điều khiển. Nên Led sẽ sáng ở mức thấp, trong

khi phần mô phỏng của phần mềm Flowcode Led sáng ở mức cao.

CCÂÂUU HHỎỎII –– BBÀÀII TTẬẬPP

1. Thực hiện chương trình khi thả nút nhấn ra thì dữ liệu mới đếm lên.

2. Thực hiện chương trình nhấn nút – đếm lên 2, 4, 6, 8 ….

3. Thực hiện chương trinh nhấn nút – đếm lên đến 9 thì dừng lại.

4. Thực hiện chương trình nhất nút – đếm lên đến 10 thì đếm xuống. Khi

đếm xuống đến 0 thì đếm lên.

Page 78: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 6 NÚT NHẤN Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 78 -

- Khi kết nối phần cứng phải đảm bảo rằng nguồn đã tắt.

- Không nhấn vào các nút khác ngoài các nút: Signature, Open File,

Program. Vì có thể làm hỏng Chip

- Thao tác gắn các Jump – dây cắm trên Kit thực tập vi xử lý phải nhẹ

nhàng và cẩn thận.

- Khi tháo các Jump – dây cắm phải tháo thẳng góc.

- Khi thực tập có những vấn đề khác thường thì phải báo ngây với giáo viên

đứng lớp, không tự ý giải quyết.

- Những vấn đề không hiểu trong quá trình thực tập hãy mạnh dạng hỏi giáo

viên đứng lớp, đừng lo sợ.

Page 79: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 7 ĐIỀU KHIỂN LED 7 ĐOẠN Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 79 -

II.. MMỤỤCC ĐĐÍÍCCHH

- Các phương pháp hiển thị dữ liệu trên Led 7 đoạn

- Điều khiển Led 7 đoạn bằng vi điều khiển ATMEGA8515.

IIII.. TTRRAANNGG TTHHIIẾẾTT BBỊỊ

- Máy vi tính có cài phần mềm Flowcode AVR

- Bộ thực tập Vi Xử Lý CITA

IIIIII.. LLÝÝ TTHHUUYYẾẾTT

A. Cấu trúc và mã hiển thị dữ liệu trên Led 7 đoạn D

- Dạng Led

- Led Anode chung

a

b

c

d

e

f

g

dp

Page 80: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 7 ĐIỀU KHIỂN LED 7 ĐOẠN Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 80 -

Đối với dạng Led anode chung, chân COM phải có mức logic 1 và muốn sáng

Led thì tương ứng các chân a – f, dp sẽ ở mức logic 0.

Bảng mã cho Led Anode chung (a là MSB, dp là LSB):

Số a b c d e f g dp Mã hex 0 0 0 0 0 0 0 1 1 03h

1 1 0 0 1 1 1 1 1 9Fh 2 0 0 1 0 0 1 0 1 25h

3 0 0 0 0 1 1 0 1 0Dh 4 1 0 0 1 1 0 0 1 99h

5 0 1 0 0 1 0 0 1 49h

6 0 1 0 0 0 0 0 1 41h

7 0 0 0 1 1 1 1 1 1Fh

8 0 0 0 0 0 0 0 1 01h

9 0 0 0 0 1 0 0 1 09h

Bảng mã cho Led Anode chung (a là LSB, dp là MSB):

Số dp g f e d c b a Mã hex 0 1 1 0 0 0 0 0 0 0C0h

1 1 1 1 1 1 0 0 1 0F9h 2 1 0 1 0 0 1 0 0 0A4h 3 1 0 1 1 0 0 0 0 0B0h 4 1 0 0 1 1 0 0 1 99h 5 1 0 0 1 0 0 1 0 92h 6 1 0 0 0 0 0 1 0 82h 7 1 1 1 1 1 0 0 0 0F8h

8 1 0 0 0 0 0 0 0 80h 9 1 0 0 1 0 0 0 0 90h

Page 81: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 7 ĐIỀU KHIỂN LED 7 ĐOẠN Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 81 -

- Led Cathode chung

Đối với dạng Led Cathode chung, chân COM phải có mức logic 0 và

muốn sáng Led thì tương ứng các chân a – f, dp sẽ ở mức logic 1. Bảng mã cho

Led Cathode chung (a là MSB, dp là LSB):

Số a b c d e f g dp Mã hex 0 1 1 1 1 1 1 0 0 0FCh 1 0 1 1 0 0 0 0 0 60h 2 1 1 0 1 1 0 1 0 0DAh 3 1 1 1 1 0 0 1 0 0F2h 4 0 1 1 0 0 1 1 0 66h 5 1 0 1 1 0 1 1 0 0B6h 6 1 0 1 1 1 1 1 0 0BEh 7 1 1 1 0 0 0 0 0 0E0h 8 1 1 1 1 1 1 1 0 0FEh

9 1 1 1 1 0 1 1 0 0F6h

Page 82: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 7 ĐIỀU KHIỂN LED 7 ĐOẠN Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 82 -

Bảng mã cho Led Anode chung (a là LSB, dp là MSB):

Số dp g f e d c b a Mã hex

0 0 0 1 1 1 1 1 1 3Fh 1 0 0 0 0 0 1 1 0 06h 2 0 1 0 1 1 0 1 1 5Bh

3 0 1 0 0 1 1 1 1 4Fh 4 0 1 1 0 0 1 1 0 66h 5 0 1 1 0 1 1 0 1 6Dh 6 0 1 1 1 1 1 0 1 7Dh 7 0 0 0 0 0 1 1 1 07h

8 0 1 1 1 1 1 1 1 7Fh 9 0 1 1 0 1 1 1 1 6Fh

B. Các phương pháp điều khiển Led 7 đoạn

Dùng phương pháp quét

Khi kết nối chung các đường dữ liệu của Led 7 đoạn (hình vẽ), ta không thể cho

các Led này sáng đồng thời (do ảnh hưởng lẫn nhau giữa các Led) mà phải thực

hiện phương pháp quét, nghĩa là tại mỗi thời điểm chỉ sáng một Led và

tắt các Led còn lại. Do hiện tượng lưu ảnh của mắt, ta sẽ thấy các Led sáng đồng

thời.

Page 83: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 7 ĐIỀU KHIỂN LED 7 ĐOẠN Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 83 -

Dùng phương pháp chốt

Khi thực hiện tách riêng các đường dữ liệu của Led, ta có thể cho phép các Led

sáng đồng thời mà sẽ không có hiện tượng ảnh hưởng giữa các Led. IC chốt cho

phép lưu trữ dữ liệu cho các Led có thể sử dụng là 74LS373, 74LS374.

Page 84: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 7 ĐIỀU KHIỂN LED 7 ĐOẠN Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 84 -

Kết nối phần cứng

Page 85: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 7 ĐIỀU KHIỂN LED 7 ĐOẠN Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 85 -

Sơ đồ kết nối phần cứng

Page 86: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 7 ĐIỀU KHIỂN LED 7 ĐOẠN Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 86 -

IIVV.. TTHHỰỰCC HHÀÀNNHH

Sơ đồ giải thuật hiển thị số 9 ra Led 7 đoạn

Bước 1: Tạo dự án

- Thực hiện giống bước 1 ở Bài 1, trang 13

- Lưu bài tập với tên D:\\BaitapAVR\Bai7

Bước 2: Gọi khối Output

- Nhấn 2 lần vào khối Output

- Trong cửa sổ Properties: Output chọn các thông số

Variable or value: 0b00001000

Port: Port A

Bước 3: Gọi khối Output

- Nhấn 2 lần vào khối Output

- Trong cửa sổ Properties: Output chọn các thông số

Variable or value: 0b00000001

Page 87: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 7 ĐIỀU KHIỂN LED 7 ĐOẠN Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 87 -

Port: Port C

Bước 4: Gọi khối mô phỏng Led đơn

- Giống như Bước 3, Bài 1 – Trang 16

Bước 5: Gọi khối mô phỏng Led 7 đoạn.

- Nhấn vào biểu tượng

- Nhấn vào biểu tượng

- Chọn Component Connections…

- Chọn các thông số như hình

Bước 6: Mô phỏng

- Nhấn vào biểu tượng

- Quan sát hiện tượng

Page 88: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 7 ĐIỀU KHIỂN LED 7 ĐOẠN Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 88 -

VV.. TTHHÍÍ NNGGHHIIỆỆMM

AA.. KKếếtt nnốốii pphhầầnn ccứứnngg

Từ Bước 1 tới Bước 4 giống Bài 1 – Trang 18

Bước 5: Kết nối với switch

- Kết nối Port A với khối Led 7 đoạn tại 7SEG-IN (PA7 nối với A)

- Kết nối PC0, PC1, PC2, PC3 với khối Led 7 đoạn tại SELECT-LED (PC0

với Led3…).

- Phần cứng của Kit thực tập vi điều khiển, tại khối Led 7 đoạn – SELECT-

LED nối qua transistor. Nên Led sẽ được lựa chọn ở mức thấp, trong khi

phần mô phỏng của phần mềm Flowcode Led lựa chọn ở mức cao.

- Kết nối hoàn chỉnh

PA

PC

Page 89: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 7 ĐIỀU KHIỂN LED 7 ĐOẠN Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 89 -

BB.. NNạạpp cchhưươơnngg ttrrììnnhh vvààoo cchhíípp Bước 1, 2, 3, 4: Các bước thực hiện giống như các bước ở Bài 1 – Trang 21.

Bước 5: Nạp chương trình

- Chọn file cần nap D:\\BaitapAVR\bai7.hex

Bước 6: Quan sát hiện tượng

- Quan sát số hiển thị trên Led 7 đoạn

- Nếu hiện tượng không đúng với quá trình mô phỏng thì thực hiện lại từng

bước từ phần A.

CCÂÂUU HHỎỎII –– BBÀÀII TTẬẬPP

1. Led 7 đoạn sử dụng là Led loại gì?

2. Thực hiện chương trình hiển thị số 88 ra 2 Led 7 đoạn

3. Hiển thị số 21 trên 2 Led 7 đoạn

Page 90: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 7 ĐIỀU KHIỂN LED 7 ĐOẠN Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 90 -

- Khi kết nối phần cứng phải đảm bảo rằng nguồn đã tắt.

- Không nhấn vào các nút khác ngoài các nút: Signature, Open File,

Program. Vì có thể làm hỏng Chip

- Thao tác gắn các Jump – dây cắm trên Kit thực tập vi xử lý phải nhẹ

nhàng và cẩn thận.

- Khi tháo các Jump – dây cắm phải tháo thẳng góc.

- Khi thực tập có những vấn đề khác thường thì phải báo ngây với giáo viên

đứng lớp, không tự ý giải quyết.

- Những vấn đề không hiểu trong quá trình thực tập hãy mạnh dạng hỏi giáo

viên đứng lớp, đừng lo sợ.

Page 91: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 8 ĐẾM LÊN 69

HIỂN THỊ RA LED 7 ĐOẠN Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 91 -

II.. MMỤỤCC ĐĐÍÍCCHH

- Các phương pháp hiển thị dữ liệu trên Led 7 đoạn

- Điều khiển Led 7 đoạn bằng vi điều khiển ATMEGA8515.

IIII.. TTRRAANNGG TTHHIIẾẾTT BBỊỊ

- Máy vi tính có cài phần mềm Flowcode AVR

- Bộ thực tập Vi Xử Lý CITA

IIIIII.. LLÝÝ TTHHUUYYẾẾTT

- Xem lại lý thuyết ở bài 7

- Kết nối phần cứng

Sơ đồ kết nối phần cứng

Page 92: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 8 ĐẾM LÊN 69

HIỂN THỊ RA LED 7 ĐOẠN Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 92 -

IIVV.. TTHHỰỰCC HHÀÀNNHH

Sơ đồ giải thuật đếm lên tới 69 hiển thị ra Led 7 đoạn

Page 93: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 8 ĐẾM LÊN 69

HIỂN THỊ RA LED 7 ĐOẠN Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 93 -

Bước 1: Tạo dự án

- Thực hiện giống bước 1 ở Bài 1, trang 13

- Lưu bài tập với tên D:\\BaitapAVR\Bai8

Bước 2: Gọi vòng lặp While

Bước 3: Gọi khối Calculation

- Nhấn 2 lần vào khối Calculation

- Trong cửa sổ Properties: Calculation

o Nhấn vào nút Variables

Cửa sổ Variable Manager

Nhấn nút Add New Variable

o Cửa sổ Create a New Variable

Name of New Variable: count

Nhấn OK

Tạo tiếp các biến hchuc, hdonvi, tam, ht, delay

Variable Name chọn count Use Variable

o Calculations: count = 0

o Nhấn OK

Bước 4: Gọi vòng lặp While

- Nhấn 2 lần vào khối While

- Trong cửa sổ Properties: Loop

o Loop while: count < 69

Page 94: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 8 ĐẾM LÊN 69

HIỂN THỊ RA LED 7 ĐOẠN Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 94 -

o Nhấn OK

Bước 4: Gọi khối Macro

- Chọn vào biểu tượng sau đó kéo – thả vảo giửa 2 khối While – Loop

(khối thứ 2)

- Nhấn 2 lần vào khối

Nhấn vào nút để tạo các Macro (chương trình con)

Page 95: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 8 ĐẾM LÊN 69

HIỂN THỊ RA LED 7 ĐOẠN Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 95 -

Trong cửa sổ Create a New Macro

Name of new macro: Giaima7doan

Nhấn OK

Tương tự tạo tiếp các Macro: hienthi, ma7doan

Page 96: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 8 ĐẾM LÊN 69

HIỂN THỊ RA LED 7 ĐOẠN Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 96 -

Chọn Giaima7doan

Nhấn OK

Bước 5: Gọi khối Calculation

- Nhấn 2 lần vào khối Calculation

- Trong cửa sổ Properties: Calculation

o Calculations: delay = 10

o Nhấn OK

Bước 6: Gọi vòng lặp While

- Nhấn 2 lần vào khối While

- Trong cửa sổ Properties: Loop

o Loop while: delay > 0

Page 97: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 8 ĐẾM LÊN 69

HIỂN THỊ RA LED 7 ĐOẠN Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 97 -

o Nhấn OK

Bước 7: Gọi khối Macro

- Nhấn 2 lần vào khối Macro

- Trong cửa sổ Properties: Macro

o Macro: hienthi

o Nhấn OK

Bước 8: Gọi khối Calculation

- Nhấn 2 lần vào khối Calculation

- Trong cửa sổ Properties: Calculation

o Calculations: delay = delay - 1

o Nhấn OK

Bước 9: Gọi khối Calculation

- Để ngoài vòng lặp While delay > 0

- Nhấn 2 lần vào khối Calculation

- Trong cửa sổ Properties: Calculation

o Calculations: delay = delay + 1

o Nhấn OK

Bước 10: Viết chương trình cho các Macro

- Nhấn 2 lần vào khối Macro bất kỳ

- Chọn Macro cần viết nhấn nút để viết chương

Page 98: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 8 ĐẾM LÊN 69

HIỂN THỊ RA LED 7 ĐOẠN Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 98 -

aa.. TTạạoo cchhưươơnngg ttrrììnnhh cchhoo mmaaccrroo GGiiaaiimmaa77ddooaann

Lưu đồ giải thuật giải mã 7 đoạn.

hdonvi = count MOD 10 hchuc = count / 10

Page 99: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 8 ĐẾM LÊN 69

HIỂN THỊ RA LED 7 ĐOẠN Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 99 -

bb.. TTạạoo cchhưươơnngg ttrrììnnhh cchhoo mmaaccrroo hhiieenntthhii

Lưu đồ giải thuật hiển thị ra led 7 đoạn

Variable or value: 0b00000001

Variable or value: 0b00000000

Variable or value: 0b00000010

Variable or value: 0b00000000

Page 100: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 8 ĐẾM LÊN 69

HIỂN THỊ RA LED 7 ĐOẠN Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 100 -

cc.. TTạạoo cchhưươơnngg ttrrììnnhh cchhoo mmaaccrroo mmaa77ddooaann

Lưu đồ giải thuật giải mã 7 đoạn

tam = 0b00000010

tam = 0b10011110

tam = 0b00100100

tam = 0b00001100

tam = 0b10011000

Page 101: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 8 ĐẾM LÊN 69

HIỂN THỊ RA LED 7 ĐOẠN Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 101 -

tam = 0b01001000

tam = 0b01000000

tam = 0b00011110

tam = 0b00000000

tam = 0b00001000

Page 102: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 8 ĐẾM LÊN 69

HIỂN THỊ RA LED 7 ĐOẠN Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 102 -

Bước 11: Gọi khối mô phỏng Led 7 đoạn.

- Chọn Component Connections…

- Chọn các thông số như hình

Bước 12: Mô phỏng

- Nhấn vào biểu tượng

- Quan sát hiện tượng

VV.. TTHHÍÍ NNGGHHIIỆỆMM

AA.. KKếếtt nnốốii pphhầầnn ccứứnngg

Từ Bước 1 tới Bước 4 giống Bài 1 – Trang 18

Page 103: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 8 ĐẾM LÊN 69

HIỂN THỊ RA LED 7 ĐOẠN Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 103 -

Bước 5: Kết nối với switch

- Kết nối Port A với khối Led 7 đoạn tại 7SEG-IN (PA7 nối với A)

- Kết nối PC0, PC1, PC2, PC3 với khối Led 7 đoạn tại SELECT-LED (PC0

với Led3…).

- Kết nối hoàn chỉnh

PA

PC

Page 104: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 8 ĐẾM LÊN 69

HIỂN THỊ RA LED 7 ĐOẠN Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 104 -

- Phần cứng của Kit thực tập vi điều khiển, tại khối Led 7 đoạn – SELECT-

LED nối qua transistor. Nên Led sẽ được lựa chọn ở mức thấp, trong khi

phần mô phỏng của phần mềm Flowcode Led lựa chọn ở mức cao.

BB.. NNạạpp cchhưươơnngg ttrrììnnhh vvààoo cchhíípp

Bước 1, 2, 3, 4: Các bước thực hiện giống như các bước ở Bài 1 – Trang 21.

Bước 5: Nạp chương trình

- Chọn file cần nap D:\\BaitapAVR\bai8.hex

Bước 6: Quan sát hiện tượng

- Quan sát số hiển thị trên Led 7 đoạn

- Nếu hiện tượng không đúng với quá trình mô phỏng thì thực hiện lại từng

bước từ phần A.

CCÂÂUU HHỎỎII –– BBÀÀII TTẬẬPP

1. Giải thích các macro Giaima7doan, hienthi, ma7doan 2. Thực hiện đoạn chương trình trên để hiển thị số tăng dần từ 00 đến 99 ra 2

Led 7 đoạn 3. Hiển thị số ra 2 Led 7 đoạn tăng dần từ 00 - 59. 4. Hiển thị số ra 2 Led 7 đoạn tăng dần từ 00 - 23. 5. Hiển thị số ra 2 Led 7 đoạn giảm dần từ 99 - 00. 6. Hiển thị số ra 2 Led 7 đoạn giảm dần từ 59 - 00. 7. Hiển thị số ra 2 Led 7 đoạn giảm dần từ 23 - 00.

Page 105: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 8 ĐẾM LÊN 69

HIỂN THỊ RA LED 7 ĐOẠN Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 105 -

- Khi kết nối phần cứng phải đảm bảo rằng nguồn đã tắt.

- Không nhấn vào các nút khác ngoài các nút: Signature, Open File,

Program. Vì có thể làm hỏng Chip

- Thao tác gắn các Jump – dây cắm trên Kit thực tập vi xử lý phải nhẹ

nhàng và cẩn thận.

- Khi tháo các Jump – dây cắm phải tháo thẳng góc.

- Khi thực tập có những vấn đề khác thường thì phải báo ngây với giáo viên

đứng lớp, không tự ý giải quyết.

- Những vấn đề không hiểu trong quá trình thực tập hãy mạnh dạng hỏi giáo

viên đứng lớp, đừng lo sợ.

Page 106: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 9 LED MA TRẬN Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 106 -

II.. MMỤỤCC ĐĐÍÍCCHH

- Sử dụng vi xử lý ATMEGA8515 giao tiếp với Led ma trận.

IIII.. TTRRAANNGG TTHHIIẾẾTT BBỊỊ

- Máy vi tính có cài phần mềm Flowcode AVR

- Bộ thực tập Vi Xử Lý CITA

IIIIII.. LLÝÝ TTHHUUYYẾẾTT

Led Ma Trận

Ma trận LED bao gồm nhiều LED cùng nằm trong một vỏ chia thành

nhiều cột và hàng, mỗi giao điểm giữa hàng và cột có thể có 1 LED (ma

trận LED một màu) hay nhiều LED (2 LED tại một vị trí tạo thành ma trận LED

3 màu). Để LED tại một vị trí nào đó sáng thì phải cấp hiệu điện thế dương giữa

Anode và Cathode. Trên cơ sở cấu trúc như vậy, ta có thể mở rộng hàng và cột

của ma trận LED để tạo thành các bảng quang báo.

Kết nối của ma trận Led có 2 cách: anode nối với hàng, cathode nối với cột hay

ngược lại. Sơ đồ kết nối mô tả như hình vẽ trang bên.

Page 107: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 9 LED MA TRẬN Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 107 -

Theo cấu trúc kết nối như hình vẽ, 2 Led trên 2 cột không thể sáng đồng thời. Xét

sơ đồ kết nối như mạch hình b, một Led sáng khi tương ứng hàng của Led = 0 và

cột = 1.

Giả sử ta cần sáng Led đồng thời tại hàng 1, cột 1 và hàng 2, cột 2. Như vậy, ta

phải có hàng 1 = 0, cột 1 = 1 (sáng Led tại hàng 1, cột 1) và hàng 2 = 0, cột 2 = 1

(sáng Led tại hàng 2, cột 2).

Từ đó, do hàng 1 = 0, cột 2 = 1 và hàng 2 = 0, cột 2 = 1 nên ta cũng có các

Led tại hàng 1, cột 2 và hàng 2, cột 1 cũng sáng.

Nghĩa là, khi ta cho 2 Led tại hàng 1, cột 1 và hàng 2, cột 2 sáng đồng thời thì sẽ

dẫn đến các Led tại hàng 1, cột 2 và hàng 2, cột 1 cũng sáng.

Do đó, để thực hiện sáng một ký tự trên ma trận Led, ta phải dùng cơ chế quét,

tại mỗi thời điểm chỉ sáng 1 cột, các cột còn lại tắt đi nhưng nếu cho thời gian

quét đủ nhanh thì ta vẫn thấy giống như các cột sáng đồng thời.

Page 108: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 9 LED MA TRẬN Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 108 -

Hình a Hình b

Page 109: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 9 LED MA TRẬN Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 109 -

Dữ liệu cho số 0:

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

Để sáng số 0 trên ma trận Led, ta thực hiện quá trình quét như sau:

Lần 1: Hàng = 0100 0001b, cột = 00010000b

Lần 2: Hàng = 0011 1110b, cột = 0000 1000b

Lần 3: Hàng = 0011 1110b, cột = 0000 0100b

Lần 4: Hàng = 0011 1110b, cột = 0000 0010b

Lần 5: Hàng = 0100 0001b, cột = 0000 0001b

Page 110: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 9 LED MA TRẬN Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 110 -

Kết nối phần cứng

SSơơ đđồồ kkếếtt nnốốii pphhầầnn ccứứnngg

Page 111: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 9 LED MA TRẬN Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 111 -

IIVV.. TTHHỰỰCC HHÀÀNNHH

Sơ đồ giải thuật hiện chữ T trên Led ma trận

Page 112: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 9 LED MA TRẬN Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 112 -

Bước 1: Tạo dự án

- Thực hiện giống bước 1 ở Bài 1, trang 13

- Lưu bài tập với tên D:\\BaitapAVR\Bai9

Bước 2: Gọi khối Calculation

- Tạo các biến

- Trong cửa sổ Properties: Calculation

Page 113: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 9 LED MA TRẬN Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 113 -

Bước 3: Gọi vòng lặp while

Bước 4: Gọi khối Calculation

Bước 5: Gọi vòng lặp While

- Nhấn 2 lần vào khối While

- Trong cửa sổ Properties: Loop

Page 114: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 9 LED MA TRẬN Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 114 -

o Loop while: dem < 8

o Nhấn OK

Bước 6: Gọi khối Output

- Nhấn 2 lần vào khối Output

- Trong cửa sổ Properties: Output chọn các thông số

Variable or value: count1

Port: Port A

Bước 7: Gọi khối Output

- Nhấn 2 lần vào khối Output

- Trong cửa sổ Properties: Output chọn các thông số

Variable or value: hthi

Port: Port D

Bước 8: Gọi khối Calculation

Page 115: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 9 LED MA TRẬN Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 115 -

Bước 9: Gọi khối Delay

- Nhấn 2 lần vào khối Delay

- Trong cửa sổ Properties: Delay

o Delay value or vairable: 2

o Chọn milliseconds

VV.. TTHHÍÍ NNGGHHIIỆỆMM

AA.. KKếếtt nnốốii pphhầầnn ccứứnngg

Từ Bước 1 tới Bước 4 giống Bài 1 – Trang 18

Bước 5: Kết nối với switch

- Kết nối Port D với khối Led ma Tran 8x8 tại H7…H0 (PD0 nối với H0)

- Kết nối Port A với khối Led ma Tran 8x8 tại D7…D0 (PA0 nối với D7)

- Kết nối hoàn chỉnh

PD

PA

Page 116: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 9 LED MA TRẬN Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 116 -

BB.. NNạạpp cchhưươơnngg ttrrììnnhh vvààoo cchhíípp

Bước 1, 2, 3, 4: Các bước thực hiện giống như các bước ở Bài 1 – Trang 21.

Bước 5: Nạp chương trình

- Chọn file cần nap D:\\BaitapAVR\bai9.hex

Bước 6: Quan sát hiện tượng

- Quan sát chữ hiển trên Led ma trận

- Nếu hiện tượng không đúng với quá trình mô phỏng thì thực hiện lại từng

bước từ phần A.

CCÂÂUU HHỎỎII –– BBÀÀII TTẬẬPP

1. Có thể hiển thị chữ có dấu trên Led ma trận?

2. Viết chương trình hiển thị số trên Led ma trận.

Page 117: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 9 LED MA TRẬN Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 117 -

- Khi kết nối phần cứng phải đảm bảo rằng nguồn đã tắt.

- Không nhấn vào các nút khác ngoài các nút: Signature, Open File,

Program. Vì có thể làm hỏng Chip

- Thao tác gắn các Jump – dây cắm trên Kit thực tập vi xử lý phải nhẹ

nhàng và cẩn thận.

- Khi tháo các Jump – dây cắm phải tháo thẳng góc.

- Khi thực tập có những vấn đề khác thường thì phải báo ngây với giáo viên

đứng lớp, không tự ý giải quyết.

- Những vấn đề không hiểu trong quá trình thực tập hãy mạnh dạng hỏi giáo

viên đứng lớp, đừng lo sợ.

Page 118: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 10 HIỂN THỊ CHUỖI “TDC”

TRÊN LED MA TRẬN Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 118 -

II.. MMỤỤCC ĐĐÍÍCCHH

- Sử dụng vi xử lý ATMEGA8515 giao tiếp với Led ma trận.

IIII.. TTRRAANNGG TTHHIIẾẾTT BBỊỊ

- Máy vi tính có cài phần mềm Flowcode AVR

- Bộ thực tập Vi Xử Lý CITA

IIIIII.. LLÝÝ TTHHUUYYẾẾTT

- Xem lại phần lý thuyết ở bài 9

Kết nối phần cứng

SSơơ đđồồ kkếếtt nnốốii pphhầầnn ccứứnngg

Page 119: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 10 HIỂN THỊ CHUỖI “TDC”

TRÊN LED MA TRẬN Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 119 -

IIVV.. TTHHỰỰCC HHÀÀNNHH

Sơ đồ giải thuật hiện chuỗi TDC trên Led ma trận

Page 120: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 10 HIỂN THỊ CHUỖI “TDC”

TRÊN LED MA TRẬN Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 120 -

Bước 1: Tạo dự án

- Thực hiện giống bước 1 ở Bài 1, trang 13

- Lưu bài tập với tên D:\\BaitapAVR\Bai10

Bước 2: Gọi khối Calculation

- Tạo các biến

- Trong cửa sổ Properties: Calculation

Page 121: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 10 HIỂN THỊ CHUỖI “TDC”

TRÊN LED MA TRẬN Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 121 -

Bước 3: Gọi khối Calculation

- Trong cửa sổ Properties: Calculation

Bước 4: Gọi khối Calculation

- Trong cửa sổ Properties: Calculation

Page 122: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 10 HIỂN THỊ CHUỖI “TDC”

TRÊN LED MA TRẬN Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 122 -

Bước 5: Gọi khối Calculation

- Trong cửa sổ Properties: Calculation

Bước 6: Gọi vòng lặp while

Bước 7: Gọi khối String

Page 123: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 10 HIỂN THỊ CHUỖI “TDC”

TRÊN LED MA TRẬN Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 123 -

- Chọn vào biểu tượng sau đó kéo – thả vảo giửa 2 khối While – Loop

- Nhấn 2 lần vào khối

- Nhấn nút lựa chọn các chức năng của khối String

Page 124: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 10 HIỂN THỊ CHUỖI “TDC”

TRÊN LED MA TRẬN Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 124 -

=

Thay đổi giá trị của biến kiểu chuỗi

Str1[20] = "Hello "

Str2[10] = "World"

TestStr[20]

TestStr = Str1 + Str2

TestStr bây giờ có giá trị là "Hello World"

+

Cộng 2 chuỗi

TestStr = Str1 + Str2

TestStr bây giờ có giá trị là "Hello World"

ToString$(value)

Thay đổi biến dạng số thành dạng chuỗi

TestStr = ToStr$(1234)

TestStr có giá trị là "1234"

ToUpper$(string)

Thay đổi các kí tự thành chữ in hoa.

TestStr = ToUpper$(Str1)

TestStr bây giờ có giá trị là "HELLO "

ToLower$(string)

Thay đổi các kí tự thành chữ thường.

Page 125: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 10 HIỂN THỊ CHUỖI “TDC”

TRÊN LED MA TRẬN Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 125 -

TestStr = ToLower$(Str1)

TestStr bây giờ có giá trị là "hello "

Length$(string)

Trả về độ dài của một chuỗi. Giá trị này không phải là kích thước của một mảng

RetVal = Length$(Str1)

RetVal is now 6

Ghi chú: Kích thước mảng Str1 là 20, nhưng giá trị hiện tại của mảng chỉ có 6 ký

tự giá trị trả về là 6.

Left$(string, size)

Lấy phần tử của một mảng từ phía trái mảng tới n phần tử cần muốn lấy.

TestStr = Left$(Str1, 3)

TestStr bây giờ có giá trị là "Hel"

Right$(string, size)

Lấy phần tử của một mảng từ phía phải mảng tới n phần tử cần muốn lấy.

TestStr = Right$(Str1, 3)

TestStr bây giờ có giá trị là "lo "

Mid$(string, start, size)

Lấy n phần tử vị trí m của mảng.

TestStr = Mid$(Str1, 2, 3)

TestStr bây giờ có giá trị là "llo"

Page 126: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 10 HIỂN THỊ CHUỖI “TDC”

TRÊN LED MA TRẬN Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 126 -

Compare$(string1, string2, compare_type)

So sánh giữa 2 chuỗi. Giá trị trả về là 1 Byte với kết quả như sau:

0 = 2 chuỗi tương ứng với nhau

1 = string1>string2

255 = string2>string1

Ví dụ:

Str1 = "ABC"

Str2 = "abc"

RetVal = Compare$(Str1, Str2, 0)

RetVal có giá trị là 255 (Str2 > Str1) (phân biết chữ in hoa và chữ thường)

RetVal = Compare$(Str1, Str2, 1)

RetVal có giá trị là 0 (không phân biết chữ in hoa và chữ thường)

Str2 = Str1

RetVal = Compare$(Str1, Str2, 0)

RetVal có giá trị là 0

Bước 8: Gọi khối Macro

- Nhấn 2 lần vào khối Macro

- Nhấn vào nút để tạo các Macro (chương trình con)

- Trong cửa sổ Create a New Macro

Page 127: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 10 HIỂN THỊ CHUỖI “TDC”

TRÊN LED MA TRẬN Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 127 -

Name of new macro: hienthi

Nhấn OK

- Trong cửa sổ Properties: Macro

Macro: hienthi

- Nhấn nút để viết chương

Page 128: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 10 HIỂN THỊ CHUỖI “TDC”

TRÊN LED MA TRẬN Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 128 -

dem = 0 dem1 = dem + dich count = 0b00000001 count1 = NOT count hthi = hang[dem1]

count = count << 1 dem = dem + 1 dem1 = dem + dich count1 = NOT count hthi = hang[dem1]

delay = delay - 1

Page 129: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 10 HIỂN THỊ CHUỖI “TDC”

TRÊN LED MA TRẬN Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 129 -

Bước 9: Gọi khối String

- Nhấn 2 lần vào khối String

- Trong cửa sổ Properties: String Manipulation

o String functions: hang = chuT + chuD

o Nhấn OK

Bước 10: Gọi khối Macro

- Nhấn 2 lần vào khối Macro

- Trong cửa sổ Properties: Macro

o Macro: hienthi

o Nhấn OK

Bước 11: Gọi khối String

- Nhấn 2 lần vào khối String

- Trong cửa sổ Properties: String Manipulation

o String functions: hang = chuD + chuC

o Nhấn OK

Bước 12: Gọi khối Macro

- Nhấn 2 lần vào khối Macro

- Trong cửa sổ Properties: Macro

o Macro: hienthi

o Nhấn OK

Bước 13: Gọi khối String

Page 130: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 10 HIỂN THỊ CHUỖI “TDC”

TRÊN LED MA TRẬN Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 130 -

- Nhấn 2 lần vào khối String

- Trong cửa sổ Properties: String Manipulation

o String functions: hang = chuC + nun

o Nhấn OK

Bước 14: Gọi khối Macro

- Nhấn 2 lần vào khối Macro

- Trong cửa sổ Properties: Macro

o Macro: hienthi

o Nhấn OK

VV.. TTHHÍÍ NNGGHHIIỆỆMM

AA.. KKếếtt nnốốii pphhầầnn ccứứnngg

Từ Bước 1 tới Bước 4 giống Bài 1 – Trang 18

Bước 5: Kết nối với switch

- Kết nối Port D với khối Led ma Tran 8x8 tại H7…H0 (PD0 nối với H0)

PD

PA

Page 131: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 10 HIỂN THỊ CHUỖI “TDC”

TRÊN LED MA TRẬN Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 131 -

- Kết nối Port A với khối Led ma Tran 8x8 tại D7…D0 (PA0 nối với D7)

- Kết nối hoàn chỉnh

BB.. NNạạpp cchhưươơnngg ttrrììnnhh vvààoo cchhíípp

Bước 1, 2, 3, 4: Các bước thực hiện giống như các bước ở Bài 1 – Trang 21.

Bước 5: Nạp chương trình

- Chọn file cần nap D:\\BaitapAVR\bai10.hex

Bước 6: Quan sát hiện tượng

- Quan sát chữ hiển trên Led ma trận

- Nếu hiện tượng không đúng với quá trình mô phỏng thì thực hiện lại từng

bước từ phần A.

CCÂÂUU HHỎỎII –– BBÀÀII TTẬẬPP

1. Viết chương trình hiển thị chuỗi: “Truong Cao Dang Cong Nghe Thu

Duc”.

Page 132: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 10 HIỂN THỊ CHUỖI “TDC”

TRÊN LED MA TRẬN Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 132 -

- Khi kết nối phần cứng phải đảm bảo rằng nguồn đã tắt.

- Không nhấn vào các nút khác ngoài các nút: Signature, Open File,

Program. Vì có thể làm hỏng Chip

- Thao tác gắn các Jump – dây cắm trên Kit thực tập vi xử lý phải nhẹ

nhàng và cẩn thận.

- Khi tháo các Jump – dây cắm phải tháo thẳng góc.

- Khi thực tập có những vấn đề khác thường thì phải báo ngây với giáo viên

đứng lớp, không tự ý giải quyết.

- Những vấn đề không hiểu trong quá trình thực tập hãy mạnh dạng hỏi giáo

viên đứng lớp, đừng lo sợ.

Page 133: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 11 GIAO TIẾP LCD Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 133 -

II.. MMỤỤCC ĐĐÍÍCCHH

- Sử dụng vi xử lý ATMEGA8515 giao tiếp với LCD.

IIII.. TTRRAANNGG TTHHIIẾẾTT BBỊỊ

- Máy vi tính có cài phần mềm Flowcode AVR

- Bộ thực tập Vi Xử Lý CITA

IIIIII.. LLÝÝ TTHHUUYYẾẾTT

Giới thiệu về LCD

Để có được hiển thị tiết kiệm năng lượng và linh hoạt, người ta sử dụng bộ hiển

thị LCD. Có nhiều loại LCD, trong số đó là các bộ hiển thị 16 x 2 và 20 x 2 (có

nghĩa là 2 hàng với 16 ký tự trên một hàng và 2 hàng với 20 ký tự trên một

hàng).

Người ta đã thiết lập chuẩn để cho phép ta có thể giao tiếp với các LCD bất chấp

hãng sản xuất với điều kiện là các LCD có sử dụng cùng IC điều khiển

HD44780.

Hình dáng và kích thước LCD

Các LCD được chế tạo từ các hãng như Densitron, Epson, Optrex, Sharp… Với

các cấu hình thông dụng là 16,20, 24, 32, hay 40 ký tự trên một hàng với màn

hình hiển thị 1, 2, hay 4 hàng . Thí dụ 20 x 2, 40 x 4…

Có loại LCD hiển thị dựa theo ký tự hay đồ họa. Các mạch lái trong các module

LCD là các chip điều khiển, ví dụ Hitachi HD44780.

Chiếu sáng trong bộ hiển thị LCD

Người ta sử dụng các kiểu sau:

Page 134: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 11 GIAO TIẾP LCD Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 134 -

Backlit (back lighting): sử dụng đèn chiếu sáng ở sau bộ hiển thị thay vì dùng

ánh sáng phản xạ

CFL (Cold Cathode Flourescent Lamp = Đèn huỳnh quang cathod lạnh): Một

loại đèn huỳnh quang đặc biệt để chiếu sáng phía trong các hiển thị LCD hiện

đại, đặc biệt trong các mảng đồ họa lớn như dùng trong các Laptop. Chúng cho

chiếu sáng rất tốt với dòng điện thấp. Được cấp diện bởi nguồn Ac cao áp và cao

tần (100-1000v, ở tần số 25-75 kHz), các yêu cầu về điện của chúng nghiêm ngặt

vá phải chính xác khớp với inverter thích hơp do nhà sản xuất đề nghị. Thí dụ

định mức cho backlit CFL của Stanley 20 character * 2 line: 230V, 2.5mA, 65

KHz.

Các chân ra của module LCD

Chân số Tên Chức năng

1 VSS Đất

2 VDD Cực + của nguồn điện

3 VEE Tương phản ( constrast)

4 RS Register select (chọn thanh ghi)

5 R/W Read/Write

6 E Enable(cho phép)

7 D0 Bit 0 của dữ liệu

8 D1 Bit 1 của dữ liệu

Page 135: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 11 GIAO TIẾP LCD Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 135 -

9 D2 Bit 2 của dữ liệu

10 D3 Bit 3 của dữ liệu

11 D4 Bit 4 của dữ liệu

12 D5 Bit 5 của dữ liệu

13 D6 Bit 6 của dữ liệu

14 D7 Bit 7 của dữ liệu

Tóm tắt tập lệnh điều khiển LCD

Nhị phân Lệnh RS RW

D7 D6 D5 D4 D3 D2 D1 D0

Hex

NOP ( không làm

gì cả )

0 0 0 0 0 0 0 0 0 0 00

Clear display (xóa

hiển thị)

0 0 0 0 0 0 0 0 0 1 01

Display & cursor

home (hiển thị và

đặt cursor ở vị trí

góc trái phía trên)

0 0 0 0 0 0 0 0 1 X 02

hoặc

03

Character Entry

mode (chế độ nhập

0 0 0 0 0 0 0 1 I/D S 04

đến

Page 136: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 11 GIAO TIẾP LCD Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 136 -

ký tự) 07

Display On/Off &

Cursor (hiển thị

tắt/mở và cursor)

0 0 0 0 0 0 1 D U B 08

đến

0F

Dislay/ Cursor

Shift (dịch hiển

thị/ cursor)

0 0 0 0 0 1 D/

C

R/

L

X X 10

đến

1F

Function set (đặt

chức năng)

0 0 0 0 1 8/4 2/1 10/

7

X X 20

đến

3F

Set CGRAM

address (đặt địa

chỉ CRRAM)

0 0 0 1 A A A A A A 40

đến

7F

Set DDRAM

address (đặt địa

chỉ DDRAM)

0 0 1 A A A A A A A 80

đến

FF

Busy Flag &Addr

(cờ bận và bộ đếm

địa chỉ)

0 1 BP Bộ đếm địa chỉ

Read Data (đọc dữ

liệu từ CGRAM

hoặc DDRAM)

1 0 Dữ liệu đọc

Page 137: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 11 GIAO TIẾP LCD Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 137 -

Write Data (ghi dữ

liệu vào CGRAM

hoặc DDRAM)

1 1 Dữ liệu ghi

Sơ đồ vùng nhớ:

1 2 3 4 ….. 11 12 13 14 15 16 17 18 19 20 Vị trí

00 01 02 03 ….. 0A 0B 0C 0D 0E 0F 10 11 12 13 Hàng 1

40 41 42 43 ….. 4A 4B 4C 4D 4E 4F 50 51 52 53 Hàng 2

14 15 16 17 ….. 1E 1F 20 21 22 23 24 25 26 27 Hàng 3

54 55 56 57 ….. 5E 5F 60 61 62 63 64 65 65 67 Hàng 4

Kết nối phần cứng

Page 138: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 11 GIAO TIẾP LCD Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 138 -

SSơơ đđồồ kkếếtt nnốốii pphhầầnn ccứứnngg

Page 139: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 11 GIAO TIẾP LCD Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 139 -

IIVV.. TTHHỰỰCC HHÀÀNNHH

Sơ đồ giải thuật hiện chữ “Hello World” và “Chao moi nguoi” trên LCD

Bước 1: Tạo dự án

- Thực hiện giống bước 1 ở Bài 1, trang 13

- Lưu bài tập với tên D:\\BaitapAVR\Bai11

Bước 2: Gọi khối mô phỏng LCD

- Nhấn vào biểu tượng

- Nhấn vào biểu tượng

Page 140: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 11 GIAO TIẾP LCD Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 140 -

o Chọn Properties…

Chọn LCD Size: 20x4

o Chọn Component Connections

Page 141: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 11 GIAO TIẾP LCD Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 141 -

Cài các thông số như hình

Bước 3: Gọi khối Component Macro

- Chọn vào biểu tượng sau đó kéo – thả vảo giửa 2 khối Begin – End

- Nhấn 2 lần vào khối

Page 142: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 11 GIAO TIẾP LCD Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 142 -

- Trong cửa sổ Properties: Component Macro

o Component: LCDDisplay(0)

o Macro: Start

o Nhấn OK

Bước 4: Gọi khối Component Macro

- Nhấn 2 lần vào khối Component Macro

- Trong cửa sổ Properties: Component Macro

o Component: LCDDisplay(0)

o Macro: PrintString

o Parameters: "Hello World"

o Nhấn OK

Bước 5: Gọi khối Component Macro

Page 143: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 11 GIAO TIẾP LCD Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 143 -

- Nhấn 2 lần vào khối Component Macro

- Trong cửa sổ Properties: Component Macro

o Component: LCDDisplay(0)

o Macro: Cursor

o Parameters: 0, 1

o Nhấn OK

Bước 6: Gọi khối Component Macro

- Nhấn 2 lần vào khối Component Macro

- Trong cửa sổ Properties: Component Macro

o Component: LCDDisplay(0)

o Macro: PrintString

o Parameters: "Chao moi nguoi"

o Nhấn OK

Chức năng khối Component Macro

Start: Khởi động LCD (phải có trước khi sử dụng các chức năng khác)

Clear: Xóa LCD

PrintASCII: Xuất ra LCD kí tự tương ứng với mã ASCII.

Command: Xuất các lệnh ra LCD

Cursor: Duy chuyển con trỏ tới vị trí x, y

PrintNumber: Xuất ra LCD tương ứng với 1 biến số

PrintString: Xuất ra LCD tương ứng với 1 biến chuỗi

Page 144: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 11 GIAO TIẾP LCD Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 144 -

Bước 7: Mô phỏng

- Nhấn vào biểu tượng

- Quan sát hiện tượng

VV.. TTHHÍÍ NNGGHHIIỆỆMM

AA.. KKếếtt nnốốii pphhầầnn ccứứnngg

Từ Bước 1 tới Bước 4 giống Bài 1 – Trang 18

Bước 5: Kết nối với switch

- Kết nối PA0, PA1,PA2, PA3 với D4, D5, D6, D7 (DATA-IN) tại khối

LCD.

- Kết nối R/W tại khối LCD vị trí LCD-CONTROL với GND tại khối

Nguồn

- Nối PA6 với RS tại khối LCD vị trí LCD-CONTROL

- Nối PAt với E tại khối LCD vị trí LCD-CONTROL

PA0

PA

Page 145: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 11 GIAO TIẾP LCD Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 145 -

- Tại khối LCD vị trai LCD ON/OFF đưa công tắc về vị trí ON (vị trí

hướng lên)

- Kết nối hoàn chỉnh

BB.. NNạạpp cchhưươơnngg ttrrììnnhh vvààoo cchhíípp

Bước 1, 2, 3, 4: Các bước thực hiện giống như các bước ở Bài 1 – Trang 21.

Bước 5: Nạp chương trình

- Chọn file cần nap D:\\BaitapAVR\bai11.hex

Bước 6: Quan sát hiện tượng

- Quan sát chữ hiển trên LCD

- Nếu hiện tượng không đúng với quá trình mô phỏng thì nhấn nút Rest

Chip tại phần mềm nạp SPI – Flash Programmer 3.7, nếu không được

nữa thì thực hiện lại từng bước từ phần A.

Page 146: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 11 GIAO TIẾP LCD Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 146 -

CCÂÂUU HHỎỎII –– BBÀÀII TTẬẬPP

1. Viết chương trình hiển thị chuỗi:

- Hàng 1: Truong Cao Dang

- Hàng 2: Cong Nghe Thu Duc

- Hàng 3: Thu Duc College

- Hàng 4: of Technology

- Dừng 1 thời gian

- Hàng 1: Khoa Dien – Dien Tu

- Hàng 2: Bo Mon Dien Tu

2. Tương tự bài 1 – Chữ hiển thị chạy từ hàng dưới lên hàng trên.

Page 147: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 11 GIAO TIẾP LCD Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 147 -

- Khi kết nối phần cứng phải đảm bảo rằng nguồn đã tắt.

- Không nhấn vào các nút khác ngoài các nút: Signature, Open File,

Program. Vì có thể làm hỏng Chip

- Thao tác gắn các Jump – dây cắm trên Kit thực tập vi xử lý phải nhẹ

nhàng và cẩn thận.

- Khi tháo các Jump – dây cắm phải tháo thẳng góc.

- Khi thực tập có những vấn đề khác thường thì phải báo ngây với giáo viên

đứng lớp, không tự ý giải quyết.

- Những vấn đề không hiểu trong quá trình thực tập hãy mạnh dạng hỏi giáo

viên đứng lớp, đừng lo sợ.

Page 148: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 12 QUÉT PHÍM Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 148 -

II.. MMỤỤCC ĐĐÍÍCCHH

- Sử dụng vi xử lý ATMEGA8515 điều khiển bàn phím ma trận 4x4.

IIII.. TTRRAANNGG TTHHIIẾẾTT BBỊỊ

- Máy vi tính có cài phần mềm Flowcode AVR

- Bộ thực tập Vi Xử Lý CITA

IIIIII.. LLÝÝ TTHHUUYYẾẾTT

Bàn phím Hex

Khi không nhấn phím thì hàng của bàn phím Hex nối với Vcc thông qua điện trở

R nên có mức logic 1. Để phân biệt được trạng thái của phím nhấn thì mức logic

khi nhấn phím phải là mức logic 0. Mà khi nhấn một phím nào đó thì tương ứng

hàng và cột của bàn phím Hex sẽ kết nối với nhau. Do đó, để thực hiện kiểm tra

một phím thì ta phải cho trước cột chứa phím tương ứng ở mức logic 0, sau

đó kiểm tra hàng của phím, nếu hàng = 0 thì có nhấn phím còn hang = 1 thì

không nhấn phím.

Ví dụ như muốn kiểm tra phím 4 thì ta cho cột chứa phím 4 ở mức logic 0 (chân

5 của J1, các cột khác = 1, nghĩa là dữ liệu tại J1 là 1000xxxxb), sau đó thực hiện

kiểm tra chân 2 của J1 (hàng của phím 4), nếu chân này = 0 thì phím 4 được nhấn

Page 149: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 12 QUÉT PHÍM Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 149 -

IIVV.. TTHHỰỰCC HHÀÀNNHH

Sơ đồ giải thuật quét phím – hiển thị ra Led 7 đoạn

Bước 1: Tạo dự án

- Thực hiện giống bước 1 ở Bài 1, trang 13

- Lưu bài tập với tên D:\\BaitapAVR\Bai11

Bước 2: Gọi khối Interrupt

- Chọn vào biểu tượng sau đó kéo – thả vảo giửa 2 khối Begin – End

Page 150: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 12 QUÉT PHÍM Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 150 -

- Nhấn 2 lần vào khối

- Chọn các thông số như hình

- Nhấn nút

Page 151: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 12 QUÉT PHÍM Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 151 -

- Name of new macro: hienthi

- Nhấn nút để viết chương trình

Page 152: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 12 QUÉT PHÍM Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 152 -

- Tạo các biến

0b00000001

0b00000000

0b00000010

0b00000000

Page 153: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 12 QUÉT PHÍM Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 153 -

Bước 3: Gọi khối Calculation

- Nhấn 2 lần vào khối Calculation

- Trong cửa sổ Properties: Calculation

o Calculations: count = 0

o Nhấn OK

Bước 4: Gọi khối Macro

- Nhấn 2 lần vào khối Macro

o Tạo các Macro

Page 154: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 12 QUÉT PHÍM Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 154 -

- Macro Giaima7doan

Page 155: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 12 QUÉT PHÍM Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 155 -

Maphim = 0b10000100

Maphim = 0b01000100

Maphim = 0b00100100

Maphim = 0b00010100

Page 156: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 12 QUÉT PHÍM Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 156 -

Maphim = 0b10000011

Maphim = 0b01000011

Maphim = 0b00100011

Maphim = 0b00010011

Page 157: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 12 QUÉT PHÍM Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 157 -

Maphim = 0b10000010

Maphim = 0b01000010

Maphim = 0b00100010

Maphim = 0b00010010

Maphim = 0b10000001

Page 158: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 12 QUÉT PHÍM Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 158 -

- Tạo macro phantich

Maphim = 0b01000010

Maphim = 0b00100001

Maphim = 0b00010001

Page 159: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 12 QUÉT PHÍM Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 159 -

- Tạo macro ma7doan

hdonvi = count MOD 10 hchuc = count / 10

Page 160: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 12 QUÉT PHÍM Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 160 -

tam = 0b00000010

tam = 0b10011110

tam = 0b00100100

tam = 0b00001100

tam = 0b10011000

Page 161: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 12 QUÉT PHÍM Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 161 -

tam = 0b01001000

tam = 0b01000000

tam = 0b00011110

tam = 0b00000000

tam = 0b00001000

Page 162: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 12 QUÉT PHÍM Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 162 -

- Tạo macro quetphim

Maquet = 0b00000001 Sodem = 4

Luu = Luu AND 0b11110000

Maphim = Luu + Sodem

Giaima7doan

Maquet = Maquet << 1 Sodem = Sodem - 1

Page 163: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 12 QUÉT PHÍM Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 163 -

- Trong cửa sổ Properties: Macro

o Macro: phantich

o Nhấn OK

Bước 5: Gọi vòng lặp While

Bước 6: Gọi khối Macro

- Nhấn 2 lần vào khối Macro

- Trong cửa sổ Properties: Macro

o Macro: quetphim

o Nhấn OK

Bước 7: Gọi khối mô phỏng Led 7 đoạn.

- Chọn Component Connections…

Page 164: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 12 QUÉT PHÍM Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 164 -

- Chọn các thông số như hình

Bước 8: Mô phỏng

- Nhấn vào biểu tượng

- Quan sát hiện tượng

VV.. TTHHÍÍ NNGGHHIIỆỆMM

AA.. KKếếtt nnốốii pphhầầnn ccứứnngg

Từ Bước 1 tới Bước 4 giống Bài 1 – Trang 18

Bước 5: Kết nối với switch

- Kết nối Port A với khối Led 7 đoạn tại 7SEG-IN (PA7 nối với A)

- Kết nối PC0, PC1, PC2, PC3 với khối Led 7 đoạn tại SELECT-LED (PC0

với Led3…).

- Kết nối Port D với khối bàn phím ma trận

- Kết nối hoàn chỉnh

PA0

PA PA

PC PD

Page 165: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 12 QUÉT PHÍM Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 165 -

BB.. NNạạpp cchhưươơnngg ttrrììnnhh vvààoo cchhíípp

Bước 1, 2, 3, 4: Các bước thực hiện giống như các bước ở Bài 1 – Trang 21.

Bước 5: Nạp chương trình

- Chọn file cần nap D:\\BaitapAVR\bai12.hex

Bước 6: Quan sát hiện tượng

- Nhấn các phím

- Quan sát trên led 7 đoạn

- Nếu hiện tượng không đúng với quá trình mô phỏng thì thực hiện lại từng

bước từ phần A.

CCÂÂUU HHỎỎII –– BBÀÀII TTẬẬPP

- Giống bài tập trên, nhưng nhấn lần lượt các phím – hiển thị từ 0 tới 15

- Nhấn số 1 hiển thị số 1, tiếp tục nhấn số 2 hiển thị số 12, tiếp tục nhấn số

3 hiển thị số 23….

Page 166: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 12 QUÉT PHÍM Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 166 -

- Khi kết nối phần cứng phải đảm bảo rằng nguồn đã tắt.

- Không nhấn vào các nút khác ngoài các nút: Signature, Open File,

Program. Vì có thể làm hỏng Chip

- Thao tác gắn các Jump – dây cắm trên Kit thực tập vi xử lý phải nhẹ

nhàng và cẩn thận.

- Khi tháo các Jump – dây cắm phải tháo thẳng góc.

- Khi thực tập có những vấn đề khác thường thì phải báo ngây với giáo viên

đứng lớp, không tự ý giải quyết.

- Những vấn đề không hiểu trong quá trình thực tập hãy mạnh dạng hỏi giáo

viên đứng lớp, đừng lo sợ.

Page 167: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 13 ĐIỀU KHIỂN ĐỘNG CƠ DC Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 167 -

II.. MMỤỤCC ĐĐÍÍCCHH

- Sử dụng vi xử lý ATMEGA8515 điều khiển động cơ DC.

IIII.. TTRRAANNGG TTHHIIẾẾTT BBỊỊ

- Máy vi tính có cài phần mềm Flowcode AVR

- Bộ thực tập Vi Xử Lý CITA

IIIIII.. LLÝÝ TTHHUUYYẾẾTT

SSơơ đđồồ pphhầầnn ccứứnngg đđiiềềuu kkhhiiểểnn đđộộnngg ccơơ DDCC

-- Cầu H điều khiển động cơ gồm 4 MOSFET được kích đối xứng nhau. 2

tín hiệu kích thuận,nghịch ở hai đầu OPTO1 và OPTO2. Động cơ hoạt

động khi tín hiệu kích MASS.

Page 168: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 13 ĐIỀU KHIỂN ĐỘNG CƠ DC Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 168 -

IIVV.. TTHHỰỰCC HHÀÀNNHH

Sơ đồ giải thuật điều khiển động cơ thuận nghịch

Page 169: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 13 ĐIỀU KHIỂN ĐỘNG CƠ DC Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 169 -

Bước 1: Tạo dự án

- Thực hiện giống bước 1 ở Bài 1, trang 13

- Lưu bài tập với tên D:\\BaitapAVR\Bai13

Bước 2: Gọi vòng lặp while

Bước 3: Gọi khối Input

- Nhấn 2 lần vào khối Iutput

- Trong cửa sổ Properties: Input

o Nhấn vào nút Variables

Cửa sổ Variable Manager

Nhấn nút Add New Variable

o Cửa sổ Create a New Variable

Name of New Variable: left

Nhấn OK

o Cửa sổ Create a New Variable

Name of New Variable: right

Nhấn OK

Variable Name chọn left Use Variable

o Variable: left

o Port: Port A

o Single bit: 0

o Nhấn OK

Page 170: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 13 ĐIỀU KHIỂN ĐỘNG CƠ DC Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 170 -

Bước 4: Gọi khối Input

- Nhấn 2 lần vào khối Iutput

- Trong cửa sổ Properties: Input

o Variable: right

o Port: Port A

o Single bit: 0

o Nhấn OK

Bước 5: Gọi khối Decision (khối rẽ nhánh)

- Nhấn 2 lần vào khối Decision

- Trong cửa sổ Properties: Decision

o If : left = 0

Bước 6: Gọi khối Output

- Nhấn 2 lần vào khối Output

- Trong cửa sổ Properties: Output

o Variable or value: 1

o Port: Port C

o Single bit: 1

o Nhấn OK

Bước 7: Gọi khối Delay

- Nhấn 2 lần vào khối Delay

- Trong cửa sổ Properties: Delay

Page 171: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 13 ĐIỀU KHIỂN ĐỘNG CƠ DC Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 171 -

o Delay value or vairable: 200

o Chọn milliseconds

Bước 8: Gọi khối Output

- Nhấn 2 lần vào khối Output

- Trong cửa sổ Properties: Output

o Variable or value: 0

o Port: Port C

o Single bit: 0

o Nhấn OK

Bước 9: Gọi khối Decision (khối rẽ nhánh)

- Nhấn 2 lần vào khối Decision

- Trong cửa sổ Properties: Decision

o If : right = 0

Bước 10: Gọi khối Output

- Nhấn 2 lần vào khối Output

- Trong cửa sổ Properties: Output

o Variable or value: 1

o Port: Port C

o Single bit: 0

o Nhấn OK

Bước 11: Gọi khối Delay

Page 172: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 13 ĐIỀU KHIỂN ĐỘNG CƠ DC Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 172 -

- Nhấn 2 lần vào khối Delay

- Trong cửa sổ Properties: Delay

o Delay value or vairable: 200

o Chọn milliseconds

Bước 12: Gọi khối Output

- Nhấn 2 lần vào khối Output

- Trong cửa sổ Properties: Output

o Variable or value:0

o Port: Port C

o Single bit:1

o Nhấn OK

Bước 13: Gọi khối mô phỏng nút nhấn

- Trong cửa sổ Properties

o Switches

Number of Switches: 2

Switch Type: Toggle

Direction: Default

Orientation: Vertical

Debounce(ms): 0

- Trong cửa sổ Component connections

Page 173: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 13 ĐIỀU KHIỂN ĐỘNG CƠ DC Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 173 -

Bước 14: Gọi khối mô phỏng led đơn

- Trong cửa sổ Properties

o LED Properties

Number of LEDs: 2

LED Colour: Green

Direction: Default

Orientation: Horizontal

- Trong cửa sổ Component connections

Page 174: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 13 ĐIỀU KHIỂN ĐỘNG CƠ DC Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 174 -

Bước 15: Mô phỏng

- Nhấn vào biểu tượng

- Quan sát hiện tượng

VV.. TTHHÍÍ NNGGHHIIỆỆMM

AA.. KKếếtt nnốốii pphhầầnn ccứứnngg

Từ Bước 1 tới Bước 4 giống Bài 1 – Trang 18

Bước 5: Kết nối với switch

Page 175: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 13 ĐIỀU KHIỂN ĐỘNG CƠ DC Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 175 -

- Kết nối PA0 và PA7 với với khối nút nhấn

- Kết nối PC0 và PC1 với khối điều khiển động cơ DC

- Kết nối hoàn chỉnh

BB.. NNạạpp cchhưươơnngg ttrrììnnhh vvààoo cchhíípp

Bước 1, 2, 3, 4: Các bước thực hiện giống như các bước ở Bài 1 – Trang 21.

Bước 5: Nạp chương trình

- Chọn file cần nap D:\\BaitapAVR\bai13.hex

PA7

PA0

PC

Page 176: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 13 ĐIỀU KHIỂN ĐỘNG CƠ DC Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 176 -

Bước 6: Quan sát hiện tượng

- Nhấn nút

- Quan sát hoạt động của động cơ

- Nếu hiện tượng không đúng với quá trình mô phỏng thì thực hiện lại từng

bước từ phần A.

CCÂÂUU HHỎỎII –– BBÀÀII TTẬẬPP

1. Giống như bài tập trên, nhưng khi đảo chiều thì động cơ dừng lại 100ms

rồi mới đảo chiều.

2. Viết chương trình điều khiển động cơ quay thuận 5s, rồi quay nghịch 5s

Page 177: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 13 ĐIỀU KHIỂN ĐỘNG CƠ DC Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 177 -

- Khi kết nối phần cứng phải đảm bảo rằng nguồn đã tắt.

- Không nhấn vào các nút khác ngoài các nút: Signature, Open File,

Program. Vì có thể làm hỏng Chip

- Thao tác gắn các Jump – dây cắm trên Kit thực tập vi xử lý phải nhẹ

nhàng và cẩn thận.

- Khi tháo các Jump – dây cắm phải tháo thẳng góc.

- Khi thực tập có những vấn đề khác thường thì phải báo ngây với giáo viên

đứng lớp, không tự ý giải quyết.

- Những vấn đề không hiểu trong quá trình thực tập hãy mạnh dạng hỏi giáo

viên đứng lớp, đừng lo sợ.

Page 178: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 14 ĐIỀU KHIỂN

ĐỘNG CƠ BƯỚC Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 178 -

II.. MMỤỤCC ĐĐÍÍCCHH

- Sử dụng vi xử lý ATMEGA8515 điều khiển động cơ bước.

IIII.. TTRRAANNGG TTHHIIẾẾTT BBỊỊ

- Máy vi tính có cài phần mềm Flowcode AVR

- Bộ thực tập Vi Xử Lý CITA

IIIIII.. LLÝÝ TTHHUUYYẾẾTT

ĐĐộộnngg ccơơ bbưướớcc

Page 179: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 14 ĐIỀU KHIỂN

ĐỘNG CƠ BƯỚC Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 179 -

- Khối công suất điều khiển động cơ bước

- Xung điều khiển động cơ như sau:

o Điều khiển một bước:

Ngược Thuận 1 2 3 4 1 2 3 4

1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 1 0 0 0

o Điều khiển nửa bước:

Ngược Thuận 1 2 3 4 1 2 3 4

1 0 0 1 1 0 0 1 1 0 0 0 0 0 0 1 1 1 0 0 0 0 1 1 0 1 0 0 0 0 1 0 0 1 1 0 0 1 1 0 0 0 1 0 0 1 0 0 0 0 1 1 1 1 0 0 0 0 0 1 1 0 0 0 1 0 0 1 1 0 0 1

Page 180: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 14 ĐIỀU KHIỂN

ĐỘNG CƠ BƯỚC Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 180 -

IIVV.. TTHHỰỰCC HHÀÀNNHH

Sơ đồ giải thuật điều khiển động cơ bước full step

Page 181: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 14 ĐIỀU KHIỂN

ĐỘNG CƠ BƯỚC Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 181 -

Bước 1: Tạo dự án

- Thực hiện giống bước 1 ở Bài 1, trang 13

- Lưu bài tập với tên D:\\BaitapAVR\Bai14

Bước 2: Gọi vòng lặp while

Bước 3: Gọi khối Calculation

- Nhấn 2 lần vào khối Calculation

o Tạo biến count

- Trong cửa sổ Properties: Calculation

o Calculations: count = 1

Bước 4: Gọi khối Output

- Nhấn 2 lần vào khối Output

- Trong cửa sổ Properties: Output chọn các thông số

Variable or value: count

Port: Port D

Bước 5: Gọi khối Delay

- Nhấn 2 lần vào khối Delay

- Trong cửa sổ Properties: Delay

o Delay value or vairable: 20

o Chọn milliseconds

Bước 6: Gọi vòng lặp while

- Trong cửa sổ Properties: Loop

Page 182: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 14 ĐIỀU KHIỂN

ĐỘNG CƠ BƯỚC Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 182 -

o Loop while: count < 5

o Nhấn OK

Bước 7: Gọi khối Calculation

- Trong cửa sổ Properties: Calculation

o Calculations: count = count << 1

o Nhấn OK

Bước 8: Gọi khối Output

- Nhấn 2 lần vào khối Output

- Trong cửa sổ Properties: Output chọn các thông số

Variable or value: count

Port: Port D

Bước 9: Gọi khối Delay

- Nhấn 2 lần vào khối Delay

- Trong cửa sổ Properties: Delay

o Delay value or vairable: 20

o Chọn milliseconds

Page 183: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 14 ĐIỀU KHIỂN

ĐỘNG CƠ BƯỚC Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 183 -

VV.. TTHHÍÍ NNGGHHIIỆỆMM

AA.. KKếếtt nnốốii pphhầầnn ccứứnngg

Từ Bước 1 tới Bước 4 giống Bài 1 – Trang 18

Bước 5: Kết nối với switch

- Kết nối PD0, PD1, PD2, PD3 với khối điều khiển động cơ bước

- Kết nối hoàn chỉnh

PD

Page 184: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 14 ĐIỀU KHIỂN

ĐỘNG CƠ BƯỚC Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 184 -

BB.. NNạạpp cchhưươơnngg ttrrììnnhh vvààoo cchhíípp

Bước 1, 2, 3, 4: Các bước thực hiện giống như các bước ở Bài 1 – Trang 21.

Bước 5: Nạp chương trình

- Chọn file cần nap D:\\BaitapAVR\bai14.hex

Bước 6: Quan sát hiện tượng

- Quan sát hoạt động của động cơ

- Nếu hiện tượng không đúng với quá trình mô phỏng thì thực hiện lại từng

bước từ phần A.

CCÂÂUU HHỎỎII –– BBÀÀII TTẬẬPP

1. Điều khiển động cơ quay 1 vòng, dừng lại 20ms rồi quay ngược lại 1 vòng

2. Điều khiển động cơ bước hoạt động half step

Page 185: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 14 ĐIỀU KHIỂN

ĐỘNG CƠ BƯỚC Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 185 -

- Khi kết nối phần cứng phải đảm bảo rằng nguồn đã tắt.

- Không nhấn vào các nút khác ngoài các nút: Signature, Open File,

Program. Vì có thể làm hỏng Chip

- Thao tác gắn các Jump – dây cắm trên Kit thực tập vi xử lý phải nhẹ

nhàng và cẩn thận.

- Khi tháo các Jump – dây cắm phải tháo thẳng góc.

- Khi thực tập có những vấn đề khác thường thì phải báo ngây với giáo viên

đứng lớp, không tự ý giải quyết.

- Những vấn đề không hiểu trong quá trình thực tập hãy mạnh dạng hỏi giáo

viên đứng lớp, đừng lo sợ.

Page 186: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 15 GIAO TIẾP MÁY TÍNH Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 186 -

II.. MMỤỤCC ĐĐÍÍCCHH

- Sử dụng vi xử lý ATMEGA8515 truyền dữ liệu nối tiếp với máy tính.

IIII.. TTRRAANNGG TTHHIIẾẾTT BBỊỊ

- Máy vi tính có cài phần mềm Flowcode AVR, Visual Basic 6.0

- Bộ thực tập Vi Xử Lý CITA

IIIIII.. LLÝÝ TTHHUUYYẾẾTT

1. Cấu trúc cổng nối tiếp

Cổng nối tiếp được sử dụng để truyền dữ liệu hai chiều giữa máy tính và ngoại

vi, có các ưu điểm sau:

- Khoảng cách truyền xa hơn truyền song song.

- Số dây kết nối ít.

- Có thể truyền không dây dùng hồng ngoại.

- Có thể ghép nối với vi điều khiển hay PLC (Programmable Logic Device).

- Cho phép nối mạng.

- Có thể tháo lắp thiết bị trong lúc máy tính đang làm việc.

- Có thể cung cấp nguồn cho các mạch điện đơn giản

Các thiết bị ghép nối chia thành 2 loại: DTE (Data Terminal Equipment)

và DCE (Data Communication Equipment). DCE là các thiết bị trung gian như

MODEM còn DTE là các thiết bị tiếp nhận hay truyền dữ liệu như máy tính,

PLC, vi điều khiển, … Việc trao đổi tín hiệu thông thường qua 2 chân RxD

(nhận) và TxD (truyền). Các tín hiệu còn lại có chức năng hỗ trợ để thiết lập

và điều khiển quá trình truyền, được gọi là các tín hiệu bắt tay

Page 187: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 15 GIAO TIẾP MÁY TÍNH Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 187 -

(handshake). Ưu điểm của quá trình truyền dùng tín hiệu bắt tay là có thể kiểm

soát đường truyền.

Tín hiệu truyền theo chuẩn RS-232 của EIA (Electronics Industry

Associations). Chuẩn RS-232 quy định mức logic 1 ứng với điện áp từ -3V đến -

25V (mark), mức logic 0 ứng với điện áp từ 3V đến 25V (space) và có khả năng

cung cấp dòng từ 10 mA đến 20 mA. Ngoài ra, tất cả các ngõ ra đều có đặc tính

chống chập mạch. Chuẩn RS-232 cho phép truyền tín hiệu với tốc độ đến 20.000

bps nhưng nếu cáp truyền đủ ngắn có thể lên đến 115.200 bps.

Các phương thức nối giữa DTE và DCE:

- Đơn công (simplex connection): dữ liệu chỉ được truyền theo 1 hướng.

- Bán song công ( half-duplex): dữ liệu truyền theo 2 hướng, nhưng mỗi

thời điểm chỉ được truyền theo 1 hướng.

- Song công (full-duplex): số liệu được truyền đồng thời theo 2 hướng.

Định dạng của khung truyền dữ liệu theo chuẩn RS-232 như sau:

Start D0 D1 D2 D3 D4 D5 D6 D7 P Stop

0 1

Khi không truyền dữ liệu, đường truyền sẽ ở trạng thái mark (điện áp -10V). Khi

bắt đầu truyền, DTE sẽ đưa ra xung Start (space: 10V) và sau đó lần lượt truyền

từ D0 đến D7 và Parity, cuối cùng là xung Stop (mark: -10V) để khôi phục trạng

thái đường truyền. Dạng tín hiệu truyền mô tả như sau (truyền ký tự A):

Page 188: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 15 GIAO TIẾP MÁY TÍNH Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 188 -

Chiều dài cable cực đại 15m Tốc độ dữ liệu cực đại 20 Kbps Điện áp ngõ ra cực đại 25V Điện áp ngõ ra có tải 5V đến 15V Trở kháng tải 3K đến 7K Điện áp ngõ vào 15V Độ nhạy ngõ vào 3V Trở kháng ngõ vào 3K đến 7K

Tín hiệu truyền của ký tự ‘A’

Các đặc tính kỹ thuật của chuẩn RS-232 như sau:

Các tốc độ truyền dữ liệu thông dụng trong cổng nối tiếp là: 1200 bps,

4800 bps, 9600 bps và 19200 bps.

Page 189: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 15 GIAO TIẾP MÁY TÍNH Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 189 -

Sơ đồ chân:

Sơ đồ chân cổng nối tiếp

Cổng COM có hai dạng: đầu nối DB25 (25 chân) và đầu nối DB9 (9 chân) mô tả

như sau:

D25 D9 Tín hiệu

Hướng truyền

Mô tả

1 - - - Protected ground: nối đất bảo vệ 2 3 TxD DTEDCE Transmitted data: dữ liệu truyền 3 2 RxD DCEDTE Received data: dữ liệu nhận 4 7 RTS DTEDCE Request to send: DTE yêu cầu truyền dữ liệu 5 8 CTS DCEDTE Clear to send: DCE sẵn sàng nhận dữ liệu 6 6 DSR DCEDTE Data set ready: DCE sẵn sàng làm việc 7 5 GND - Ground: nối đất (0V) 8 1 DCD DCEDTE Data carier detect: DCE phát hiện sóng mang 20 4 DTR DTEDCE Data terminal ready: DTE sẵn sàng làm việc 22 9 RI DCEDTE Ring indicator: báo chuông 23 - DSRD DCEDTE Data signal rate detector: dò tốc độ truyền 24 - TSET DTEDCE Transmit Signal Element Timing: tín hiệu

định thời truyền đi từ DTE

Page 190: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 15 GIAO TIẾP MÁY TÍNH Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 190 -

15 - TSET DCEDTE Transmitter Signal Element Timing: tín hiệu định thời truyền từ DCE để truyền dữ liệu

17 - RSET DCEDTE Receiver Signal Element Timing: tín hiệu định thời truyền từ DCE để truyền dữ liệu

18 - LL Local Loopback: kiểm tra cổng 21 - RL DCEDTE Remote Loopback: Tạo ra bởi DCE khi tín

hiệu nhận từ DCE lỗi 14 - STxD DTEDCE Secondary Transmitted Data 16 - SRxD DCEDTE Secondary Received Data 19 - SRTS DTEDCE Secondary Request To Send 13 - SCTS DCEDTE Secondary Clear To Send 12 - SDSRD DCEDTE Secondary Received Line Signal Detector 25 - TM Test Mode 9 - Dành riêng cho chế độ test 10 - Dành riêng cho chế độ test 11 Không dùng

2. Truyền thông giữa hai nút

Các sơ đồ khi kết nối dùng cổng nối tiếp:

Kết nối đơn giản trong truyền thông nối tiếp

Khi thực hiện kết nối như trên, quá trình truyền phải bảo đảm tốc độ ở đầu phát

và thu giống nhau. Khi có dữ liệu đến DTE, dữ liệu này sẽ được đưa vào bộ đệm

và tạo ngắt.

DTE1 DT2

TxD RxD

GND

TxD RxD GND

DTE1 DT2

TxD RxD

GND

TxD RxD GND

Page 191: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 15 GIAO TIẾP MÁY TÍNH Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 191 -

Ngoài ra, khi thực hiện kết nối giữa hai DTE, ta còn dùng sơ đồ sau:

Kết nối trong truyền thông nối tiếp dùng tín hiệu bắt tay

Khi DTE1 cần truyền dữ liệu thì cho DTR tích cực tác động lên DSR của

DTE2 cho biết sẵn sàng nhận dữ liệu và cho biết đã nhận được sóng mang của

MODEM (ảo). Sau đó, DTE1 tích cực chân RTS để tác động đến chân CTS của

DTE2 cho biết DTE1 có thể nhận dữ liệu. Khi thực hiện kết nối giữa DTE và

DCE, do tốc độ truyền khác nhau nên phải thực hiện điều khiển lưu lượng. Quá

trinh điều khiển này có thể thực hiện bằng phần mềm hay phần cứng. Quá trình

điều khiển bằng phần mềm thực hiện bằng hai ký tự Xon và Xoff. Ký tự Xon

được DCE gởi đi khi rảnh (có thể nhận dữ liệu). Nếu DCE bận thì sẽ gởi ký tự

Xoff. Quá trình điều khiển bằng phần cứng dùng hai chân RTS và CTS. Nếu

DTE muốn truyền dữ liệu thì sẽ gởi RTS để yêu cầu truyền, DCE nếu có khả

năng nhận dữ liệu (đang rảnh) thì gởi lại CTS.

3. Truy xuất trực tiếp thông qua cổng

Các cổng nối tiếp trong máy tính được đánh số là COM1, COM2, COM3, COM4

với các địa chỉ như sau:

Tên Địa chỉ Ngắt Vị trí chứa địa chỉ

COM1 3F8h 4 0000h:0400h

COM2 2F8h 3 0000h:0402h

DTE1 DTE2

TxD RxD

GND RTS CTS DSR DCD DTR

TxD RxD GND RTS CTS DSR DCD DTR

Page 192: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 15 GIAO TIẾP MÁY TÍNH Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 192 -

COM3 3E8h 4 0000h:0404h

COM4 2E8h 3 0000h:0406h

Giao tiếp nối tiếp trong máy tính sử dụng vi mạch UART với các thanh ghi cho

trong bảng sau:

Offset DLAB R/W Tên Chức năng 0 W THR Transmitter Holding Register (đệm truyền) 0 R RBR Receiver Buffer Register (đệm thu)

0

1 R/W BRDL Baud Rate Divisor Latch (số chia byte thấp) 0 R/W IER Interrupt Enable Register (cho phép ngắt)

1 1 R/W BRDH Số chia byte cao R IIR Interrupt Identification Register (nhận dạng ngắt)

2 W FCR FIFO Control Register 3 R/W LCR Line Control Register (điều khiển đường dây) 4 R/W MCR Modem Control Register (điều khiển MODEM) 5 R LSR Line Status Register (trạng thái đường dây) 6 R MSR Modem Status Register (trạng thái MODEM) 7 R/W Scratch Register (thanh ghi tạm)

Các thanh ghi này có thể truy xuất trực tiếp kết hợp với địa chỉ cổng (ví dụ như

thanh ghi cho phép ngắt của COM1 có địa chỉ là BACOM1 + 1 = 3F9h.

IIR (Interrupt Identification):

IIR xác định mức ưu tiên và nguồn gốc của yêu cầu ngắt mà UART đang chờ

phục vụ. Khi cần xử lý ngắt, CPU thực hiện đọc các bit tương ứng để xác định

nguồn gốc của ngắt. Định dạng của IIR như sau:

Page 193: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 15 GIAO TIẾP MÁY TÍNH Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 193 -

D7 D6 D5 D4 D3 D2 D1 D0

00: không có FIFO 11: cho phép FIFO

Cho phép FIFO 64 byte (trong 16750)

- 1: ngắt time-out (trong 16550)

Xác định nguồn gốc ngắt

0: có ngắt 1: không ngắt

D2 D1 Ưu

tiên Tên Nguồn D2 – D0 bị

xoá khi 0 0 4 Đường

truyền Lỗi khung, thu đè, lỗi parity, gián đoạn khi thu

Đọc LSR

0 1 3 Đệm thu Đệm thu đầy Đọc RBR 1 0 2 Đệm phát Đệm phát rỗng Đọc IIR, ghi

THR 1 1 1 Modem CTS, DSR, RI, RLSD Đọc MSR

(mức 1 ưu tiên cao nhất)

IER (Interrupt Enable Register):

IER cho phép hay cấm các nguyên nhân ngắt khác nhau (1: cho phép, 0: cầm

ngắt)

MCR (Modem Control Register):

D7 D6 D5 D4 D3 D2 D1 D0 - - - LOOP OUT2 OUT1 RTS DTR

D7 D6 D5 D4 D3 D2 D1 D0 - - POW HBR MODEM LINE TxEMPTY RxRDY

Cho phép kiểu công suất thấp

Cho phép khi lỗi modem

Cho phép khi THR rỗng

Cho phép khi RBR đầy Cho phép kiểu

nghỉ (hibernate)

Cho phép khi lỗi thu, phát

Mode loopback: kiểm tra hoạt đọng của UART

Điều khiển 2 ngõ ra OUT1, OUT2 của UART

Điều khiển tín hiệu RTS và DTR

Page 194: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 15 GIAO TIẾP MÁY TÍNH Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 194 -

MSR (Modem Status Register):

D7 D6 D5 D4 D D2 D1 D0 RLSD RI DSR CTS RLSD RI DSR CTS

LSR (Line Status Register):

FIE: FIFO Error – sai trong FIFO

TSRE: Transmitter Shift Register Empty – thanh ghi dịch rỗng (=1 khi đã phát 1

ký tự và bị xoá khi có 1 ký tự chuyển đến từ THR.

THRE: Transmitter Holding Register Empty (=1 khi có 1 ký tự đã chuyển từ

THR – TSR và bị xoá khi CPU đưa ký tự tới THR).

BI: Break Interrupt (=1 khicó sự gián đoạn khi truyền, nghĩa là tồn tại mức logic

0 trong khoảng thời gian dài hơn khoảng thời gian truyền 1 byte và bị xoá khi

CPU đọc LSR) FE: Frame Error (=1 khi có lỗi khung truyền và bị xoá khi CPU

đọc LSR)

PE: Parity Error (=1 khi có lỗi parity và bị xoá khi CPU đọc LSR)

OE: Overrun Error (=1 khi có lỗi thu đè, nghĩa là CPU không đọc kịp dữ liệu

làm cho quá trình ghi chồng lên RBR xảy ra và bị xoá khi CPU đọc LSR)

RxDR: Receiver Data Ready (=1 khi đã nhận 1 ký tự và đưa vào RBR và bị xoá

khi CPU đọc RBR).

D7 D6 D5 D4 D3 D2 D1 D0 FIE TSRE THRE BI FE PE OE RxDR

Trạng thái của CD, RI, DSR và CTS

1: nếu có thay đổi các tín hiệu so với lần đọc trước RI: = 1 nếu có xung dương tại RI

Page 195: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 15 GIAO TIẾP MÁY TÍNH Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 195 -

LCR (Line Control Register):

D7 D6 D5 D4 D3 D2 D1 D0 DLAB SBCB PS2 PS1 PS0 STB WLS1 WLS0

DLAB (Divisor Latch Access Bit) = 0: truy xuất RBR, THR, IER, = 1 cho phép

đặtbộ chia tần trong UART để cho phép đạt tốc độ truyền mong muốn.

UART dùng dao động thạch anh với tần số 1.8432 MHz đưa qua bộ chia 16

thành tần số 115,200 Hz. Khi đó, tuỳ theo giá trị trong BRDL và BRDH, ta sẽ có

tốc độ mong muốn.

Ví dụ như đường truyền có tốc độ truyền 2,400 bps có giá trị chia 115,200 /

2,400 = 48d = 0030h BRDL = 30h, BRDH = 00h.

Một số giá trị thông dụng xác định tốc độ truyền cho như sau:

Tốc độ (bps) BRDH BRDL 1,200 00h 60h 2,400 00h 30h 4,800 00h 18h 9,600 00h 0Ch 19,200 00h 06h 38,400 00h 03h 57,600 00h 02h 115,200 00h 01h

SBCB (Set Break Control Bit) =1: cho phép truyền tín hiệu Break (=0) trong

khoảng thời gian lớn hơn một khung

PS (Parity Select):

PS2 PS1 PS0 Mô tả X X 0 Không kiểm tra 0 0 1 Kiểm tra lẻ 0 1 1 Kiểm tra chẵn 1 0 1 Parity là mark 1 1 1 Parity là space

Page 196: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 15 GIAO TIẾP MÁY TÍNH Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 196 -

STB (Stop Bit) = 0: 1 bit stop, =1: 1.5 bit stop (khi dùng 5 bit dữ liệu) hay 2 bit

stop (khi dùng 6, 7, 8 bit dữ liệu).

WLS (Word Length Select):

WLS1 WLS0 Độ dài dữ liệu

0 0 5 bit

0 1 6 bit

1 0 7 bit 1 1 8 bit

4. Truyền thông nối tiếp dùng ActiveX

4.1. Mô tả

Việc truyền thông nối tiếp trên Windows được thực hiện thông qua một ActiveX

có sẵn là Microsoft Comm Control.. ActiveX này dược lưu trữ trong file

MSCOMM32.OCX. Quá trình này có hai khả năng thực hiện điều khiển trao đổi

thông tin:

- Điều khiển sự kiện:

Truyền thông điều khiển sự kiện là phương pháp tốt nhất trong quá trình điều

khiển việc trao đổi thông tin. Quá trình điều khiển thực hiện thông qua sự kiện

OnComm.

- Hỏi vòng:

Quá trinh điều khiển bằng phương pháp hỏi vòng thực hiện thông qua kiểm tra

các giá trị của thuộc tính CommEvent sau một chu kỳ nào đó để xác định xem

có sự kiện nào xảy ra hay không. Thông thường phương pháp này sử dụng cho

các chương trình nhỏ.

Page 197: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 15 GIAO TIẾP MÁY TÍNH Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 197 -

ActiveX MsComm được bổ sung vào một Visual Basic Project thông qua

menu Project > Components:

Bổ sung đối tượng MsComm vào VB

Biểu tượng của MsComm: và các thuộc tính cơ bản mô tả như sau:

Thuộc tính Mô tả

CommPort Số thứ tự cổng truyền thông Input Nhận ký tự từ bộ đệm Output Xuất ký tự ra cổng nối tiếp PortOpen Mở / đóng cổng Settings Xác định các tham số truyền

Page 198: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 15 GIAO TIẾP MÁY TÍNH Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 198 -

Các thuộc tính của đối tượng MSComm

4.2. Các thuộc tính

Settings:

Xác định các tham số cho cổng nối tiếp.

Cú pháp: MSComm1.Settings = ParamString

MSComm1: tên đối tượng

ParamString: là một chuỗi có dạng như sau: "BBBB,P,D,S" BBBB: tốc độ

truyền dữ liệu (bps) trong đó các giá trị hợp lệ là:

110 2400 38400 300 9600 (măc định) 56000 600 14400 188000 1200 19200 256000

Page 199: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 15 GIAO TIẾP MÁY TÍNH Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 199 -

P: kiểm tra chẵn lẻ, với các giá trị:

Giá trị Mô tả O Odd (kiểm tra lẻ) E Even (kiểm tra chẵn) M Mark (luôn bằng 1) S Space (luôn bằng 0) N Không kiểm tra

D: số bit dữ liệu (4, 5, 6, 7 hay 8), mặc định là 8 bit

S: số bit stop (1, 1.5, 2)

Ví dụ:

MSComm1.Settings = "9600,O,8,1" sẽ xác định tốc độ truyền 9600bps, kiểm

tra parity chẵn với 1 bit stop và 8 bit dữ liệu.

CommPort:

Xác định số thứ tự của cổng truyền thông,

Cú pháp: MSComm1.CommPort = PortNumber

PortNumber là giá trị nằm trong khoảng từ 1 đến 99, mặc định là 1.

Ví dụ:

MSComm1.CommPort = 1 xác định sử dụng COM1

PortOpen:

Đặt trạng thái hay kiểm tra trạng thái đóng / mở của cổng nối tiếp. Nếu dùng

thuộc tính này để mở cổng nối tiếp thì phải sử dụng trước 2 thuộc tính Settings

và CommPort.

Cú pháp: MSComm1.PortOpen = True | False

Page 200: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 15 GIAO TIẾP MÁY TÍNH Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 200 -

Giá trị xác định là True sẽ thực hiện mở cổng và False để đóng cổng đồng thời

xoá nội dung của các bộ đệm truyền, nhận.

Ví dụ: Mở cổng COM1 với tốc độ truyền 9600 bps

MSComm1.Settings = "9600,N,8,1"

MSComm1.CommPort = 1

MSComm1.PortOpen = True

Các thuộc tính nhận dữ liệu:

Input: nhận một chuỗi ký tự và xoá khỏi bộ đệm.

Cú pháp: InputString = MSComm1.Input

Thuộc tính này kết hợp với InputLen để xác định số ký tự đọc vào. Nếu InputLen

= 0 thì sẽ đọc toàn bộ dữ liệu có trong bộ đệm.

InBufferCount: số ký tự có trong bộ đệm nhận.

Cú pháp: Count = MSComm1.InBufferCount

Thuộc tính này cùng dược dùng để xoá bộ đệm nhận bắng cách gán giá trị 0.

MSComm1.InBufferCount = 0

InBufferSize: đặt và xác định kích thước bộ đệm nhận (tính bằng byte).

Cú pháp: MSComm1.InBufferCount = NumByte

Giá trị măc định là 1024 byte. Kích thước bộ đệm này phải đủ lớn để tránh tình

trạng mất dữ liệu.

Ví dụ: Đọc toàn bộ nội dung trong bộ đệm nhận nếu có dữ liệu

MSComm1.InputLen = 0

If MSComm1.InBufferCount <> 0 Then

Page 201: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 15 GIAO TIẾP MÁY TÍNH Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 201 -

InputString = MSComm1.Input

End If

Các thuộc tính xuất dữ liệu:

Bao gồm các thuộc tính Output, OutBufferCount và OutBufferSize, chức

năng của các thuộc tính này giống như các thuộc tính nhập.

CDTimeout:

Đặt và xác định khoảng thời gian lớn nhất (tính bằng ms) từ lúc phát hiện sóng

mang cho đến lúc có dữ liệu. Nếu quá khoảng thời gian này mà vẫn chưa có dữ

liệu thì sẽ gán thuộc tính CommEvent là CDTO (Carrier Detect Timeout Error)

và tạo sự kiện OnComm.

Cú pháp: MSComm1.CDTimeout = NumTime

DSRTimeout:

Xác định thời gian chờ tín hiệu DSR trước khi xảy ra sự kiện OnComm.

CTSTimeout:

Đặt và xác định khoảng thời gian lớn nhất (tính bằng ms) đợi tín hiệu CTS trước

khi đặt thuộc tính CommEvent là CTSTO và tạo sự kiện OnComm.

Cú pháp: MSComm1.CTSTimeout = NumTime

CTSHolding:

Xác định đã có tín hiệu CTS hay chưa, tín hiệu này dùng cho quá trình bắt tay

bằng phần cứng (cho biết DCE sẵn sàng nhận dữ liệu), trả về giá trị True hay

False.

DSRHolding:

Page 202: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 15 GIAO TIẾP MÁY TÍNH Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 202 -

Xác định trạng thái DSR (báo hiệu sự tồn tại của DCE), trả về giá trị True hay

False.

CDHolding:

Xác định trạng thái CD, trả về giá trị True hay False.

DTREnable:

Đặt hay xoá tín hiệu DTR để báo sự tồn tại của DTE.

Cú pháp: MSComm1.DTREnable = True | False

RTSEnable:

Đặt hay xoá tín hiệu RTS để yêu cầu truyền dữ liệu đến DTE.

Cú pháp: MSComm1.RTSEnable = True | False

NullDiscard:

Cho phép nhận các ký tự NULL (rỗng) hay không (= True: cấm).

Cú pháp: MSComm1.NullDiscard = True | False

SThreshold:

Số byte trong bộ đệm truyền làm phát sinh sự kiện OnComm. Nếu giá trị này

bằng 0 thì sẽ không tạo sự kiện OnComm.

Cú pháp: MSComm1.SThreshold = NumChar

HandShaking:

Chọn giao thức bắt tay khi thực hiện truyền dữ liệu.

Cú pháp: MSComm1.HandShaking = Protocol

Các giao thức truyền bao gồm:

Page 203: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 15 GIAO TIẾP MÁY TÍNH Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 203 -

Protocol Giá trị Mô tả ComNone

ComXon/Xoff

ComRTS

ComRTSXon/Xoff

0

1

2

3

Không băt tay (mặc định)

Bắt tay phần mềm (Xon/Xoff)

Bắt tay phần cứng (RTS/CTS)

Bắt tay phần cứng và phàn mềm

CommEvent:

Trả lại các lỗi truyền thonog hay sự kiện xảy ra tại cổng nối tiếp

Các sự kiện:

Sự kiện Giá trị Mô tả

ComEvSend

ComEvReceive ComEvCTS

ComEvDSR

ComEvCD

ComEvRing

ComEvEOF

1

2

3

4

5

6

7

Đã truyền ký tự

Khi có ký tự trong bộ đệm nhận

Có thay đổi trên CTS (Clear To Send)

Có thay đổi trên DSR (Data Set Ready)

Có thay đổi trên CD (Carrier Detect)

Phát hiện chuông Nhận ký tự kết thúc file

Các lỗi truyền thông:

Lỗi Giá trị Mô tả ComBreak ComCTSTO ComFrame ComOver ComCDTO ComRxOver ComRxParity ComTxFull

1001 1002 1004 1006 1007 1008 1009 1010

Nhận tín hiệu Break Carrier Detect Timeout Lỗi khung Phần cứng không đọc ký tự trước khi gởi ký tự kế Carrier Detect Timeout Tràn bộ đệm nhận Lỗi parity Tràn bộ đệm truyền

Page 204: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 15 GIAO TIẾP MÁY TÍNH Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 204 -

4.3. Sự kiện OnComm

Sự kiện OnComm xảy ra bất cứ khi nào giá trị của thuộc tính CommEvent thay

đổi. Các thuộc tính RThreshold và SThreshold = 0 sẽ cấm sự kiện OnComm khi

thực hiện nhận hay gởi dữ liệu. Thông thường, SThreshold = 0 và RThreshold =

1.

Thuộc tính cơ bản của cổng nối tiếp:

Các thuộc tính cơ bản của MSComm

5. Giao tiếp với vi điều khiển

Khi thực hiện giao tiếp với vi điều khiển, ta phải dùng thêm mạch chuyển mức

logic từ TTL 232 và ngược lại. Các vi mạch thường sử dụng là

MAX232 của Maxim hay DS275 của Dallas. Mạch chuyển mức logic mô tả

như sau:

Page 205: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 15 GIAO TIẾP MÁY TÍNH Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 205 -

Mạch chuyển mức logic TTL RS232

IIVV.. TTHHỰỰCC HHÀÀNNHH

Page 206: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 15 GIAO TIẾP MÁY TÍNH Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 206 -

Page 207: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 15 GIAO TIẾP MÁY TÍNH Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 207 -

Sơ đồ giải thuật điều khiển động cơ bước DC bằng máy tính

Page 208: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 15 GIAO TIẾP MÁY TÍNH Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 208 -

Bước 1: Tạo dự án

- Thực hiện giống bước 1 ở Bài 1, trang 13

- Lưu bài tập với tên D:\\BaitapAVR\Bai15

Bước 2: Gọi khối Calculation

- Nhấn 2 lần vào khối Calculation

o Tạo biến thuan, nghich, nhan

- Trong cửa sổ Properties: Calculation

o Calculations: thuan = 1

nghich = 1

Bước 3: Gọi khối truyền thông nối tiếp RS232

- Nhấn vào biểu tượng

Cài các thông số như hình

Bước 4: Gọi khối Component Macro

Page 209: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 15 GIAO TIẾP MÁY TÍNH Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 209 -

- Nhấn 2 lần vào khối Component Macro

- Chọn các thông số như hình

Bước 5: Gọi vòng lặp while

Bước 6: Gọi khối Connection Point (Tên điểm nối)

- Nhấn vào biểu tượng

Bước 7: Gọi khối Calculation

- Trong cửa sổ Properties: Calculation

o Calculations: Nhan =0xff

Bước 8: Gọi vòng lặp While

- Nhấn 2 lần vào khối While

- Trong cửa sổ Properties: Loop

o Loop while: Nhan =0xff

Page 210: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 15 GIAO TIẾP MÁY TÍNH Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 210 -

o Nhấn OK

Bước 9: Gọi khối Component Macro

- Nhấn 2 lần vào khối Component Macro

- Trong cửa sổ Properties: Component Macro

Bước 10: Gọi khối Decision (khối rẽ nhánh)

- Nhấn 2 lần vào khối Decision

- Trong cửa sổ Properties: Decision

o If : Nhan = 1

Bước 11: Gọi khối Calculation

- Trong cửa sổ Properties: Calculation

o Calculations: thuan = 0

Nghich = 1

Page 211: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 15 GIAO TIẾP MÁY TÍNH Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 211 -

Bước 12: Gọi khối Component Macro

- Nhấn 2 lần vào khối Component Macro

- Trong cửa sổ Properties: Component Macro

o Componet: RS232(0)

o Macro: SendRS232Char

o Parameters: 'T'

o Nhấn OK

Bước 13: Gọi khối Macro

- Nhấn 2 lần vào khối Macro

- Nhấn vào nút để tạo các Macro (chương trình con)

- Trong cửa sổ Create a New Macro

Name of new macro: Dongco

Nhấn OK

- Trong cửa sổ Properties: Macro

Macro: Dongco

- Nhấn nút để viết chương

Page 212: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 15 GIAO TIẾP MÁY TÍNH Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 212 -

Lưu đồ giải thuật điều khiển động cơ DC thuận – nghịch

Bước 14: Gọi khối Connection Point (Nhảy tới điểm nối)

- Nhấn vào biểu tượng

Bước 15: Gọi khối Decision (khối rẽ nhánh)

- Nhấn 2 lần vào khối Decision

- Trong cửa sổ Properties: Decision

o If : Nhan = 0

Bước 16: Gọi khối Calculation

- Trong cửa sổ Properties: Calculation

o Calculations: thuan = 1

Page 213: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 15 GIAO TIẾP MÁY TÍNH Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 213 -

Nghich = 0

Bước 17: Gọi khối Component Macro

- Nhấn 2 lần vào khối Component Macro

- Trong cửa sổ Properties: Component Macro

o Componet: RS232(0)

o Macro: SendRS232Char

o Parameters: 'N'

o Nhấn OK

Bước 18: Gọi khối Macro

- Nhấn 2 lần vào khối Macro

- Trong cửa sổ Properties: Macro

o Macro: Dongco

o Nhấn OK

Bước 19: Gọi khối Connection Point (Nhảy tới điểm nối)

- Nhấn vào biểu tượng

Bước 20: Gọi khối Decision (khối rẽ nhánh)

- Nhấn 2 lần vào khối Decision

- Trong cửa sổ Properties: Decision

o If : Nhan = 2

Bước 21: Gọi khối Calculation

- Trong cửa sổ Properties: Calculation

Page 214: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 15 GIAO TIẾP MÁY TÍNH Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 214 -

o Calculations: thuan = 1

Nghich = 1

Bước 22: Gọi khối Component Macro

- Nhấn 2 lần vào khối Component Macro

- Trong cửa sổ Properties: Component Macro

o Componet: RS232(0)

o Macro: SendRS232Char

o Parameters: 'D'

o Nhấn OK

Bước 23: Gọi khối Macro

- Nhấn 2 lần vào khối Macro

- Trong cửa sổ Properties: Macro

o Macro: Dongco

o Nhấn OK

Bước 24: Gọi khối Connection Point (Nhảy tới điểm nối)

- Nhấn vào biểu tượng

Bước 25: Gọi khối mô phỏng led đơn

- Trong cửa sổ Properties

o LED Properties

Number of LEDs: 2

LED Colour: Green

Page 215: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 15 GIAO TIẾP MÁY TÍNH Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 215 -

Direction: Default

Orientation: Horizontal

- Trong cửa sổ Component connections

Bước 15: Mô phỏng

- Nhấn vào biểu tượng

- Trông cửa sổ RS232(0)

- Nhấn vào nút

Page 216: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 15 GIAO TIẾP MÁY TÍNH Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 216 -

- Trong cửa sổ Add text to queue đánh số 1 rồi nhấn OK (đề chuyền ký tự)

tiếp tục lần lược các ký tự 2, 0

- Quan sát hiện tượng.

VV.. TTHHÍÍ NNGGHHIIỆỆMM

AA.. KKếếtt nnốốii pphhầầnn ccứứnngg

Từ Bước 1 tới Bước 4 giống Bài 1 – Trang 18

Bước 5: Kết nối với switch

- Kết nối cáp RS232 từ máy tính tới khối RS232 của KIT

- Kết nối PD0 với RXD và PD1 với TXD của khối RS232

- Kết nối PA0 và PA1 với khối điều khiển động cơ DC

RXD TXD

Page 217: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 15 GIAO TIẾP MÁY TÍNH Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 217 -

- Kết nối hoàn chỉnh

KKhhốốii RRSS223322

Page 218: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 15 GIAO TIẾP MÁY TÍNH Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 218 -

BB.. TTạạoo pphhầầnn mmềềmm ggiiaaoo ttiiếếpp

Bước 1: Khổi động chương trình Visual Basic 6.0

Bước 2: Tạo dự án mới

- Chọn Standard EXE

- Nhấn Open

Page 219: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 15 GIAO TIẾP MÁY TÍNH Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 219 -

Bước 3: Lưu dự án

- Trên trình đơn menu chính nhấn vào biểu tượng để lưu dự án

- Trong cửa sổ Save File: đặt tên file là Rs232 OK

- Trong cửa sổ Save Project As: đặt tên dự án là Rs232 OK

Bước 4: Thêm thành phần điểu khiển truyền thông nối tiếp

- Trên trình đơn menu chính chọn Project Components…

Page 220: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 15 GIAO TIẾP MÁY TÍNH Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 220 -

- Trong cửa sổ Components chọn Microsoft Comm Control 6.0 OK

Page 221: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 15 GIAO TIẾP MÁY TÍNH Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 221 -

Bước 5: Tạo giao diện

Label MSCOMM

Textbox CommandBox

Page 222: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 15 GIAO TIẾP MÁY TÍNH Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 222 -

- Chọn vào Form – Properties – Form1:

o Caption: Giao Tiếp

Label Textbox

CommandBox

MSCOMM

Page 223: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 15 GIAO TIẾP MÁY TÍNH Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 223 -

- Chọn vào Label – Properties – Label1 o Caption: DIEU KHIEN DONG CO CHAY THUAN - NGHICH

Page 224: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 15 GIAO TIẾP MÁY TÍNH Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 224 -

- Tương tự đặt Caption cho các nút nhấn

Bước 6: Viết code

- Nhấn 2 lần vào Form

Option Explicit

Dim buffer As Variant

Dim data As String

Dim i As Variant

Private Sub Form_Load()

MSComm1.CommPort = 1

MSComm1.Settings = "9600,n,8,1"

MSComm1.InputLen = 0

MSComm1.PortOpen = 1

MSComm1.InputMode = comInputModeText

MSComm1.RThreshold = 1

End Sub

- Nhấn 2 lần vào nút DONG CO CHAY THUAN

i = "1"

MSComm1.Output = i

- Nhấn 2 lần vào nút DONG CO CHAY NGHICH

i = "0"

MSComm1.Output = i

Page 225: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 15 GIAO TIẾP MÁY TÍNH Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 225 -

- Nhấn 2 lần vào nút DUNG DONG CO

i = "2"

MSComm1.Output = i

- Nhấn 2 lần vào biểu tượng MSCOMM

If MSComm1.CommEvent = comEvReceive Then

buffer = (MSComm1.Input)

data = Asc(buffer)

Text1.Text = Text1.Text + buffer

End If

CC.. NNạạpp cchhưươơnngg ttrrììnnhh vvààoo cchhíípp

Bước 1, 2, 3, 4: Các bước thực hiện giống như các bước ở Bài 1 – Trang 21.

Bước 5: Nạp chương trình

- Chọn file cần nap D:\\BaitapAVR\bai15.hex

Bước 6: Quan sát hiện tượng

- Nhấn vào biểu tượng trong phần mềm Visual Basic để chạy phần mềm

(để dừng phần mềm nhấn vào biểu tượng )

- Nhấn các nút trên phần mềm điều khiển

- Quan sát hoạt động của động cơ

- Nếu hiện tượng không đúng với quá trình mô phỏng thì thực hiện lại từng

bước từ phần A.

Page 226: Huong Dan Flowcode Avr

Ngày: …../…../ 200…

BÀI 15 GIAO TIẾP MÁY TÍNH Kiểm tra

Hướng dẫn thực hành vi điều khiển AVR Trang - 226 -

CCÂÂUU HHỎỎII –– BBÀÀII TTẬẬPP

1. Truyền số 0, 1, 2 xuống vi điều khiển để làm gì?

2. Làm sao nhận biết vi điều khiển đã nhận dữ liệu gì?

- Khi kết nối phần cứng phải đảm bảo rằng nguồn đã tắt.

- Không nhấn vào các nút khác ngoài các nút: Signature, Open File,

Program. Vì có thể làm hỏng Chip

- Thao tác gắn các Jump – dây cắm trên Kit thực tập vi xử lý phải nhẹ

nhàng và cẩn thận.

- Khi tháo các Jump – dây cắm phải tháo thẳng góc.

- Khi thực tập có những vấn đề khác thường thì phải báo ngây với giáo viên

đứng lớp, không tự ý giải quyết.

- Những vấn đề không hiểu trong quá trình thực tập hãy mạnh dạng hỏi giáo

viên đứng lớp, đừng lo sợ.

Page 227: Huong Dan Flowcode Avr

Tài liệu tham khảo

Hướng dẫn thực hành vi điều khiển AVR Trang - 227 -

TTÀÀII LLIIỆỆUU TTHHAAMM KKHHẢẢOO

- Trang web http://dientuvietnam.net

- A introduction to microcontroller programming – Matrix Course

- Data sheet Atmega8515

- Programming and Customizing the AVR Microcontroller

Page 228: Huong Dan Flowcode Avr

Mục lục

Hướng dẫn thực hành vi điều khiển AVR Trang - 228 -

MMỤỤCC LLỤỤCC

LỜI GIỚI THIỆU ..................................................................................Trang 2

GIỚI THIỆU FLOWCODE ............................................................................3

BBÀÀII 11:: XUẤT DỮ LIỆU RA PORT A .............................................................9

BBÀÀII 22:: ĐIỀU KHIỂN LED CHỚP TẮT ....................................................... 29

BBÀÀII 33:: ĐIỀU KHIỂN LED CHỚP TẮT 3 LẦN ...........................................38

BBÀÀII 44:: ĐIỀU KHIỂN LED SÁNG ĐUỔI ...................................................... 50

BBÀÀII 55:: NHẬP DỮ LIỆU TỪ PORT B ........................................................... 59

BBÀÀII 66:: NÚT NHẤN ........................................................................................ 70

BBÀÀII 77:: ĐIỀU KHIỂN LED 7 ĐOẠN ............................................................. 79

BBÀÀII 88:: ĐẾM LẾN 69 HIỂN THỊ RA LED 7 ĐOẠN ....................................90

BBÀÀII 99:: LED MA TRẬN ................................................................................ 106

BBÀÀII 1100:: HIỂN THỊ CHUỖI “TDC” TRÊN LED MA TRẬN .................... 117

BBÀÀII 1111:: GIAO TIẾP LCD ...........................................................................132

BBÀÀII 1122: QUÉT PHÍM .................................................................................. 147

BBÀÀII 1133:: ĐIỀU KHIỂN ĐỘNG CƠ DC ....................................................... 166

BBÀÀII 1144:: ĐIỀU KHIỂN ĐỘNG CƠ BƯỚC .................................................. 178

BBÀÀII 1155:: GIAO TIẾP MÁY TÍNH ................................................................ 186