Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 16 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
16
Dung lượng
754 KB
Nội dung
Bài 1: Điều khiển IO (vào ra) led đơn Yêu cầu: - Khởi tạo project CodeVision - Nạp chương trình - Điều khiển led đơn KIT theo ý muốn Lý thuyết: 1.Kiến trúc vi điều khiển: AVR họ vi điều khiển bit theo công nghệ mới, với tính mạnh tích hợp chip hãng Atmel theo công nghệ RISC, mạnh ngang hàng với họ vi điều khiển bit khác PIC, Pisoc.Do đời muộn nên họ vi điều khiển AVR có nhiều tính đáp ứng tối đa nhu cầu người sử dụng, so với họ 8051 89xx có độ ổn định, khả tích hợp, mềm dẻo việc lập trình tiện lợi * Tính họ AVR: - Giao diện SPI đồng - Các đường dẫn vào/ra (I/O) lập trình - Giao tiếp I2C - Bộ biến đổi ADC 10 bit - Các kênh băm xung PWM - Các chế độ tiết kiệm lượng sleep, stand by vv - Một định thời Watchdog - Timer/Counter bit - Timer/Counter 16 bit - so sánh analog - Bộ nhớ EEPROM - Giao tiếp USART vv Giới thiệu vi điều khiển Atmega16L: Atmelga16L có đầy đủ tính họ AVR, giá thành so với loại khác giá thành vừa phải nghiên cứu làm công việc ứng dụng tới vi điều khiển Tính năng: - Bộ nhớ 16K(flash) - 512 byte (EEPROM) - K (SRAM) - Đóng vỏ 40 chân , có 32 chân vào liệu chia làm PORT A,B,C,D Các chân có chế độ pull_up resistors - Giao tiếp SPI - Giao diện I2C - Có kênh ADC 10 bit - so sánh analog - kênh PWM - timer/counter bit, timer/counter1 16 bit - định thời Watchdog - truyền nhận UART lập trình 2.1.Mô tả chân: - Vcc GND chân cấp nguồn cho vi điều khiển hoạt động - Reset chân reset cứng khởi động lại hoạt động hệ thống - chân XTAL1, XTAL2 chân tạo dao động cho vi điều khiển, chân nối với thạch anh (hay sử dụng loại 4M), tụ gốm (22p) - Chân Vref thường nối lên 5v(Vcc), sử dụng ADC chân sử dụng làm điện so sánh, chân phải cấp cho điện áp cố định, sử dụng diode zener - Chân Avcc thường nối lên Vcc sử dụng ADC chân nối qua cuộn cảm lên Vcc với mục đích ổn định điện áp cho biến đổi Phần mềm lập trình codevision(Hitech): Lựa chọn phần mềm : phần mềm sử dụng rộng dải xây dựng ngôn ngữ lập trình C, phần mềm viết chuyên nghiệp hướng tới người sử dụng đơn giản, hổ trợ cao thư viện có sẳn 3.1.Mô tả phần cứng KIT AVR 03: Các led đơn nối với cổng vào ATMEGA16L(PORTA-PORTBPORTC-PORTD) Để led sáng cần đưa mức logic chân IO AVR lên mức cao(5V), để led tắt đưa chân IO AVR xuống mức thấp 3.2.Lập trình: Thiết lập cổng vào ra: Khi xem xét đến cổng I/O AVR ta phải xét tới ghi bit DDxn,PORTxn,PINxn -Các bit DDxn để truy cập cho địa xuất nhập DDRx Bit DDxn ghi DDRx dùng để điều khiển hướng liệu chân cổng này.Khi ghi giá trị logic ‘0’ vào bit ghi trở thành lối vào,còn ghi ‘1’ vào bit trở thành lối -Các bit PORTxn để truy cập địa xuất nhập PORTx Khi PORTx ghi giá trị chân có cấu tạo cổng điện trở kéo chủ động(được nối với cổng).Ngắt điện trở kéo ra, PORTx ghi giá trị chân có dạng cổng ra.Các chân cổng trạng thái điều kiện reset tích cực chí xung đồng hồ không hoạt động -Các bit PINxn để truy cập địa xuất nhập PINx PINx cổng để đọc,các cổng đọc trạng thái logic PORTx.PINx ghi,việc đọc PINx cho phép ta đọc giá trị logic chân PORTx.chú ý PINx ghi,việc đọc PINx cho phép ta đọc giá trị logic chân PORTx Ta sử dụng CodeWizardAVR để thiết lập cho PORTx Pinx Ví dụ hình:các bit 0,1,2,4,7 PORTA làm chân có trở kéo,còn bit lại làm chân vào Khi thiết lập xong bit 0,1,2,4,7 xuất liệu bit lại nhận liệu vào Ví dụ : Ta mu on ghi du lieu giá tr logic ’0’ PORTA.0 để bật tắt Led thìPORTA.0=1; Ta muốn đọc liệu bit từ chân PORTA: Bit x; x=PINA.3; Cũng ta thiết lập PORTA làm cổng ta xuất liệu từ PORTA: PORTA=0xAA ; PORTA Còn ta thiết lập PORTA làm cổng vào giá trị thời PORTA: PORTA Thì sau câu lệnh đọc giá trị từ PORTA: x=PORTA x=0x55 Khi thiết lập PORTA làm cổng reset giá trị PORTA PORTA=0xFF; PORTA Khi thiết lập PORTA làm cổng vào reset giá trị PORTA PORTA=0x00 ; PORTA Việc thiết lập cổng vào việc quan trọng tùy theo mục đích sử dụng cổng làm cổng vào ra,thì ta phải thiết lập sử dụng được, động tác khác với họ vi điều khiển 8051- AT8951 CodeVision: Chạy CodeVision cách click chuột vào ICON CodeVision Chọn Project sau click chuột vào OK cửa sổ hỏi xem có sử dụng Code Winzard không: Chọn Yes cửa sổ CodeWinzardAVR sau: Sử dụng chíp AVR thạch anh tần số ta nhập vào tab Chip Để khởi tạo cho cổng IO ta chuyển qua tab Ports Các chân IO AVR mặc định trạng thái IN, muốn chuyển thành trạng thái OUT để đưa mức logic ta click chuột vào nút IN (mầu trắng) để chuyển thành OUT Tab Port Sau chọn File Generate, Save and Exit Được cửa sổ yêu cầu nhớ file Project Đây ví dụ IO nên ta save tên IO Sau nhớ song file : IO.c – IO.prj – IO.cwp cửa sổ sau: Chúng ta code vision khởi tạo code Trong có đầy đủ code cần thiết mà cấu hình cho cổng IO Chúng ta bắt đầu soạn code Để led nhấp nháy dùng hàm delay_ms() Do ta thêm thư viện delay.h cách tìm dòng lệnh: #include đầu chương trình viết dòng lệnh sau: #include Để led nhấp nháy cổng IO ta đưa cổng IO biến temp có giá trị tăng dần từ đến 255 Do ta khai báo thêm biến unsigned char temp dòng // Declare your global variables here sau: Khởi tạo cho cổng IO Trong hàm main có vòng while(1) Chúng ta soạn code vào sau DKS Group www.EmbestDKS.com temp=0; while (1) { // Place your code here PORTA=temp; PORTB=temp; PORTC=temp; PORTD=temp; delay_ms(1000); temp++; }; } Để dịch chương trình ấn F9 vào menu : Project Compile Được cửa sổ Information sau: Cấu hình cho mạch nạp Chương trình lỗi Nhấp OK Để nạp chương trình bạn cần cấu hình cho mạch nạp Vào menu: Settings Programmer cửa sổ bên cạnh Mạch nạp ta dùng STK 200 bạn chọn Kanda Systems STK200+/300 Nhấp OK Sau bạn chọn menu: ProjectsConfigure cửa sổ sau: Trong tab After Make bạn đánh dấu vào Program the Chip nhấp OK Nhấn tổ hợp phím Shift + F9 hình bên Cắm Jump mạch nạp vào Click vào Program Đợi nạp xong nhổ jump nạp ấn Reset để thấy led chạy [...]...Chúng ta đã được code vision khởi tạo code Trong đó có đầy đủ code cần thiết mà khi nãy chúng ta cấu hình cho cổng IO Chúng ta bắt đầu soạn code Để led nhấp nháy chúng ta dùng hàm delay_ms() Do đó ta thêm thư viện delay.h bằng cách tìm dòng lệnh: #include ngay đầu chương trình viết ngay dưới dòng lệnh sau: #include Để led nhấp nháy ở cổng IO ta đưa ra cổng IO một biến temp có giá... global variables here như sau: Khởi tạo cho các cổng IO Trong hàm main có vòng while (1) Chúng ta soạn code vào đó như sau DKS Group www.EmbestDKS.com temp=0; while (1) { // Place your code here PORTA=temp; PORTB=temp; PORTC=temp; PORTD=temp; delay_ms (10 00); temp++; }; } Để dịch chương trình ấn F9 hoặc vào menu : Project Compile Được cửa sổ Information như sau: Cấu hình cho mạch nạp Chương trình không... Trong tab After Make các bạn đánh dấu vào Program the Chip và nhấp OK Nhấn tổ hợp phím Shift + F9 được như hình bên Cắm Jump mạch nạp vào Click vào Program Đợi nạp xong nhổ jump nạp ra ấn Reset để thấy led chạy ... vi điều khiển Atmega16L: Atmelga16L có đầy đủ tính họ AVR, giá thành so với loại khác giá thành vừa phải nghiên cứu làm công việc ứng dụng tới vi điều khiển Tính năng: - Bộ nhớ 16 K(flash) - 512 ... người sử dụng đơn giản, hổ trợ cao thư viện có sẳn 3 .1. Mô tả phần cứng KIT AVR 03: Các led đơn nối với cổng vào ATMEGA16L(PORTA-PORTBPORTC-PORTD) Để led sáng cần đưa mức logic chân IO AVR lên mức... phải thiết lập sử dụng được, động tác khác với họ vi điều khiển 80 51- AT89 51 CodeVision: Chạy CodeVision cách click chuột vào ICON CodeVision Chọn Project sau click chuột vào OK cửa sổ hỏi xem