CHƯƠNG 5sơ đồ mạch thực tế và lập trình cho vi xử lý

Một phần của tài liệu tính toán điều khiển mạch LED CÔNG SUẤT (Trang 25)

5.1 sơ đồ mạch thực tế

mạch thiết kế trong capture:

tất cả các linh kiện gồm có: một Domino, 1 cầu diode, 1 tụ hóa 1000uF/50V, 1 tụ hóa 100uF/50V, 2 tụ gốm 104, 1 IC LM7805, 2 tụ gốm 22pF, 2 điện trở 4,7k,2 nút nhấn, 1 transistor C1815(E C B),1 vi xử lý Atmega8(L), 2 đèn LED, 2 trở 1k, 1 header 6 và cuối cùng là 1 header 10.

Sau khi đã có mạch nguyên lý ta bắt đầu đi thi công mạch in.

Thiết kế mạch layout: sắp xếp linh kiện sao cho hợp lý, để dễ dàng thi công mạch in.

Sau khi thi công ta được mạch in như dưới: Hình 5.1: mạch thiết kế capture

5.2 lập trình cho vi xử lý

5.2.1 chuẩn bị lập trình bằng phần mềm codevision

Mở phần mềm codevision, chọn “File” “new”, trong hộp thoại “Create New File” chọn “Project” rồi nhấn “OK” “Yes”.

Hộp thoại “codeWizardAVR” hiện ra, ta chọn “OK”.

Sau đó chọn chip là Atmega8L, chọn tần số thạch anh, chọn ngắt ngoài, chọn đầu ra các PORT.

Chọn các chân vào ra của vi xử lý:

Hình 5.4: Chọn vi xử lý và tần số hoạt động

Sau các thiết lập ban đầu cho Atmega8L xong, click “File” “ Generate, Save and Exit”.

Sau đó sẽ có 3 hộp thoại để lưu các file cần thiết. Đặt tên và lưu các file đó vào cùng một thư mục của chương trình.

Sau khi lưu xong ta sẽ thấy một ô để viết các lệnh lập trình theo ngôn ngữ C. Các dòng lệnh ta sẽ viết chương trình trong file “tên.c”.

Hình 5.7: Tạo thư mục lưu project

5.2.2 viết chương trình điều khiển

khi mới tạo ra file “ten.c” đã ghi rất nhiều dòng lệnh, do phần mềm tự tạo ra theo thiết lập ở phần “CodeWizard” vừa làm. Tuy nhiên ta không phải quan tâm nhiều, ta chỉ cần quan tâm phần ngắt ngoài và phần chương trình chính.\

5.2.2.1 các thiết lập đầu chương trình

ta phải thêm thư viện <delay.h> vào chương trình để làm chức năng trì hoãn hay tạm dừng quá trình làm việc của vi xử lý. Và khởi tạo thêm biến x (xem x như là chu kỳ sáng tắt của đèn LED).

5.2.2.2 chương trình chính

Chương trình này rất đơn giản chỉ là khi PORTB.0 có nghĩa là chân số 14 ở trạng thái 1 (+ 5V) tức là dòng sẽ dẫn qua transistor sẽ làm cho đèn LED sáng và ta chỉ cần dùng thêm hàm “delay” để trì hoãn thời gian làm việc của vi xử lý thêm (0,5s) nữa.

Và tương tự khi PORTB.0 ở trạng thái 0 (0V) tức là đèn LED sẽ tắt và ta cũng dùng hàm “delay” để trì hoãn vi xử lý thêm (0,5s) nữa.

Như vậy ta có thể làm cho đèn LED sáng tắt theo chu kỳ mong muốn. Hình 5.9: Các khai báo đầu chương trình

5.2.2.3 chương trình ngắt ngoài

Có thể hiểu đơn giản chương trình này như sau: khi mà chương trình chính đang thực hiện sáng tắt theo chu kỳ x=500 (ms), thì ta sẽ tác động ngắt ngoài thông qua một nút nhấn, sẽ có một phép so sánh logic là nếu x = 500 (ms) tức là bằng với chu kỳ đèn LED đang nhấp nháy thì phép so sánh sẽ trả về giá trị 1 sau đó chu kỳ sáng tắt sẽ thay đổi thành 3000 (ms).

Còn nếu giá trị hiện thời khác x=500 (ms) thì chu kỳ sáng tắt của LED sẽ đổi thành x=500 (ms).

Mỗi phép so sánh sẽ được thực hiện thông qua một lần nhấn nút nhấn. 5.2.2.4 Biên dịch và sữa lỗi

Sau khi đã viết xong chương trình, ta bắt đầu biên dịch nó, chọn “project” chọn “compile” để biên dịch chương trình.

Ta thấy chương trình không có lỗi. 5.2.3 Nạp chương trình cho vi xử lý

Ta sử dụng chương trình nạp là STK500 Hình 5.12: biên dịch chương trình

Ta kết nối các chân nạp của STK500 với Atmega8L qua các chân như sau.

Sau khi đã kết nối xong.

Ta kết nối STK500 qua máy tính.

Hình 5.14: Kết nối chân giữa STK500 và Atmega8L

Ta phải xem kết nối đã thành công hay chưa qua. Phải có Port (COM1) thì việc kết nối mới thành công.

Sau khi đã kết nối thành công, ta vào nơi đã viết chương trình, chọn “setting” chọn “programer” rồi kết nối như hình dưới.

Vào “setting” chọn “terminal” thiết lập lại cổng giao tiếp (Port COM1). Hình 5.16: kết nối giữa STK500 và máy tính

Sau khi thiết lập hết tốc độ truyền, bit và những thông số trên hình, ta vào “project” Chọn “configure” ta thiết lập các thông số cần thiết như sau.

Hình 5.18: Thiết lập cổng giao tiếp Port (COM1)

Trong phần “program fuse bit(s) ta phải chọn các cờ “BOOTSZO và BOOTSZ1”. Sau đó ta vào “Tools” chọn “chip programer” đọc dữ liệu

Trong mục “program fuse bit(s)” chọn 3 bit trạng thái là “BOOTSZ0, BOOTSZ1 và BOLDLEVEL” sau đó vào “progam” “ fuse bit(s)” để đọc các bit đã chọn. Chọn lại các bit trạng thái là “BOOTSZO, BOOTSZ1, BOLDLEVEL” sau đó vào “read” chọn “FLASH” để đọc các bit trạng thái

Và cuối cùng là vào “read” chọn “fuse bit(s)” để đọc trạng thái.

Để nạp chương trình ta vào “project” chọn “Build all” để đọc chương trình lên chip.

Chương trình sau khi đã nạp.

KẾT LUẬN: để đèn LED hoạt động ổn định thì cần phải cấp nguồn dòng. Nhưng trong đề tài này em chỉ đủ kỹ năng và thời gian để cấp nguồn áp cho đèn LED hoạt động. Em sẽ phát triển hoàn thiện hơn đề tài này nếu có điều kiện ở các học kỳ sau.

Tài Liệu Tham Khảo Kỹ thuật chiếu sáng Hocavr.com

datasheet

Một phần của tài liệu tính toán điều khiển mạch LED CÔNG SUẤT (Trang 25)

Tải bản đầy đủ (DOCX)

(39 trang)
w