1. Trang chủ
  2. » Giáo Dục - Đào Tạo

THỰC HÀNH lập TRÌNH cơ bản CHO vđk vận DỤNG KIẾN THỨC vào THỰC tế

39 2 0

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

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

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

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

Nội dung

Trong học phần này, nội dung công việc sinh viên cần thực hiện gồm: làm quen với côngcụ thiết kế mạch điện, thực hành lập trình phần cứng và xây dựng một số ứng dụng cơ bản với các vi mạ

Trang 2

Trong học phần này, nội dung công việc sinh viên cần thực hiện gồm: làm quen với công

cụ thiết kế mạch điện, thực hành lập trình phần cứng và xây dựng một số ứng dụng cơ bản với các vi mạch khả trình Để đảm bảo tiến độ công việc, sinh viên chúng em đã được hỗ trợ một số phương tiện cơ bản để triển khai công việc trên nền tảng xây dựng sẵn, có thể kế thừa

Trong nội dung của bài báo cáo, em chia báo cáo thành các chương như sau:

❖ CHƯƠNG 1: GIỚI THIỆU

❖ CHƯƠNG 2: CẤU HÌNH MẠCH KIT

❖ CHƯƠNG 3: THỰC HÀNH LẬP TRÌNH CƠ BẢN CHO VĐK

❖ CHƯƠNG 4: VẬN DỤNG KIẾN THỨC VÀO THỰC TẾ

Trang 3

Mục lục

Contents

Lời mở đầu 2

Mục lục 3

Danh mục hình vẽ 4

Danh mục bảng biểu 5

Chương 1: Thông tin chung 6

1 Giới thiệu tổng quan 6

2 Mạch Kit cho VĐK họ AVR 6

3 Ngôn ngữ lập trình và các công cụ phần mềm 7

Chương 2: Cấu hình mạch Kit 8

1 Cấu trúc mạch 8

2 Các thông số chính 9

3 Mạch nạp mã nguồn 9

4 Màn hình LCD và mô-đun UART-USB 10

Chương 3: Thực hành lập trình cơ bản cho VĐK 12

1 Tạo project và thử nạp mã máy cho VĐK 12

2 Điều khiển cổng ra số 14

3 Đọc trạng thái logic đầu vào số 18

4 Đo điện áp tương tự và hiển thị kết quả bằng màn hình LCD 20

Chương 4: Vận dụng kiến thức vào thực tế 23

1 Đề tài thực hiện 23

2 Giới thiệu về cẩm biến nhiệt độ LM35 23

3 Thiết kế sơ đồ nguyên lý bằng Altium Designer 24

4 Mô phỏng mạch đo nhiệt độ trên Proteus 26

5 Mạch đo nhiệt độ sử dụng LM35 30

Chương 5: Kết luận 37

Trang 5

Danh mục hình vẽ

Hình 1 1 Mạch kit phát triển và các phụ kiện 7

Hình 2 1 Cấu trúc mạch Kit 8

Hình 2 2 Mạch nạp ISP chuẩn 10 chân 10

Hình 2 3 Màn hình LCD 1602 và chuẩn kết nối 16 chân 10

Hình 2 4 Mô-đun UART-USB sử dụng chip FT232RL 11

Hình 3 1 Bước đầu tiên khi tạo Project mới 12

Hình 3 2 Bước chọn Debug platform và chọn chip khi khởi tạo Project 12

Hình 3 3 Chỉnh mức độ Optimization cho Project mới 13

Hình 3 4 Thiết lập Toolchain cho Project mới 13

Hình 3 5 Sửa Fuse bit như hình 14

Hình 3 6 Kết quả thực tế trên LCD 22

Hình 4 1 Cảm biến LM35 23

Hình 4 2 Sơ đồ nguyên lý LM35 24

Hình 4 3 Giao diện Schematic của Altium 25

Hình 4 4 Sơ đồ nguyên lý mô phỏng trên Altium 26

Hình 4 5 Giao diện màn hình của Proteus 8.7 27

Hình 4 6 Giao diện màn hình mô phỏng 27

Hình 4 7 Sơ đồ mô phỏng mạch đo nhiệt độ sử dụng LM35 28

Hình 4 8 Mô phỏng mạch 28

Hình 4 9 Kết quả mô phỏng LM35 trên Proteus 29

Hình 4 10 Kết quả mô phỏng LCD trên Proteus 30

Hình 4 11 Kết quả đo nhiệt độ thực tế 36

Trang 6

Danh mục bảng biểu

Bảng 2 1 Linh kiện quan trọng của mạch Kit và chức năng tương ứng 9

Bảng 3 1 Code kiểm tra AVR_Kit_Test 14

Bảng 3 2 Code điều khiển cổng ra số 15

Bảng 3 3 Thư viện riêng điều khiển cổng ra số 18

Bảng 3 4 Code đọc trạng thái logic đầu vào số 18

Bảng 3 5 Thư viện riêng đọc trạng thái logic đầu vào số 20

Bảng 3 6 Code đo điện áp tương tự và hiển thị LCD 20

Bảng 3 7 Thư viện riêng đo điện áp tương tự và hiển thị LCD 21

Bảng 4 1 Code đo nhiệt độ bằng LM35 30

Bảng 4 2 Thư viện riêng đo nhiệt độ bằng LM35 35

Trang 7

Chương 1: Thông tin chung

1 Giới thiệu tổng quan

Học phần đồ án II được thiết kế để củng cố và nâng cao năng lực chuyên môn cho sinh viên; giúp liên kết các kiến thức về điện tử tương tự, điện tử số, kỹ thuật vi xử lý, xử lý số tínhiệu, thông tin số, v.v nhằm hoàn thiện khả năng vận dụng kiến thức vao thực tế

Trong đồ án này bao gồm: làm quen công cụ thiết kế mạch điện, thực hành lập trình phầncứng, và xây dựng một ứng dụng cơ bản với các vi mạch khả trình Để đảm bảo tiến độ côngviêc, sinh viên được hỗ trợ một số phương tiện cơ bản để triển khai công việc trên nền tảng xây dụng sẵn, có thể kế thừa

2 Mạch Kit cho VĐK họ AVR

AVR là một dòng VĐK 8 bit khá mạnh và thông dụng tại thị trường Việt Nam Với tốc

độ xung nhịp tói 16MHz, bộ nhớ chương trình tối đa tới 256 kB, và rất nhiều chức năng ngoại vi tích hợp sẵn, VĐK họ AVR có thể đáp ứng tốt nhiều ứng dụng trong thực tế, từ đớngiản tới phức tạp

Kit phát triển được sử dụng trong đồ án II được Viện Điện tử- Viễn thông thiết kế để đảm bảo tính hiệu quả trong quá trình đào tạo Với bộ Kit này, sinh viên có thể thử nghiệm các ứng dụng cơ bản như:

 Điều khiển cổng ra số, với LED đơn và LED 7 thanh

 Đoc trạng thái logic đầu vào từ bàn phím và giắc cắm mở rộng

 Đo điện áp tương tự, với biến trờ vi chỉnh và bộ ADC 10-bit

 Điều khiển màn hình tinh thể lỏng, với màn hình LCD dạng text

 Giao tiếp với máy tính thông qua UART-USB

 Thử nghiệm các ngắt ngoài, thử khả năng điều chế độ rộng xung

 Nhiều ứng dụng điều khiển các chức năng đã tích hợp sẵn trong VĐK như: vận hành các bộ định thời (Timer) và bộ đếm (Count), đọc ghi EEPROM, lập trình các ngắt chương trình, lập trình Watchdoc, v.v

Trang 8

Hình 1 1 Mạch kit phát triển và các phụ kiện

Mặt khác, bằng việc kết nối các mô-đun mở rộng, sinh viên có thể thử nghiệm các ứng dụng phức tạp hơn như:

 Đo tham số môi trường cơ bản: nhiệt độ, độ ẩm, ánh sáng, v.v

 Điều khiển tải cơ bản: đèn báo, van điện trở, động cơ DC, động cơ bước, v.v

 Điều khiển hiện thị cơ bản: LED ma trận, LCD ma trận, màn cảm ứng, v.v

 Giao tiếp I2C và SPI: IC thời gian thực, IC EEPROM, cảm biến gia tốc, v.v

 Ứng dụng tổng hợp: đo và duy trì sự ổn định của tham số môi trường; số hóa

và xử lý tín hiệu âm thanh; điều khiển robot và xe tự hành, v.v

3 Ngôn ngữ lập trình và các công cụ phần mềm

Để học tập và làm việc với VĐK AVR, sinh viên có thể sử dụng ngôn ngữ C hoặc

Assembly, viết trên 1 số môi trường phát triển khác nhau Các bài thực hành trong đồ án này được xây dụng với ngôn ngữ C; trên môi trường soạn thảo và biên dịch là sự kết hợp của AVR studio 4 với WinAVR Phần mềm nạp mã máy PROGISP Phần mềm thu nhận

dữ liệu từ cổng USB hay COM ảo là Terminal

Trang 9

Chương 2: Cấu hình mạch Kit

1 Cấu trúc mạch

Để thực hiện được nhiều chức năng ngoại vi với phần cứng tối thiểu, mach Kit được thiết

kể như với cấu trúc như Hình 2.1 và chức năng của linh kiện được nêu rõ như Bảng 2.1

Sơ đồ nguyên lý và layout chi tiết được thể hiện trong phụ lục kèm theo

Hình 2 1 Cấu trúc mạch Kit

STT Tên linh kiện Chức năng

1 Giắc cắm nguồn Nhận nguồn điện 9-12VDC cấp cho mạch Kit

2 IC ổn áp 7805 Hạ 9-12VDC xuống 5VDC và giữ ổn định mức điện áp

này để cấp cho toàn mạch

3 LED báo nguồn Báo nguồn( sáng: có nguồn 5VDC; ngắt: mất nguồn)

4 VĐK họ AVR Điều khiển toàn mạch theo mã nguồn do người dùng lập

trình và nạp xuống

Trang 10

5 Thạch anh Quyết định tần số xung nhịp cấp cho VĐK

6 Nút ấn RESET Khởi động lại VĐK

7 Giắc ISP Kết nối mạch nạp để nạp nguồn cho VĐK

8 Nhóm 4 phím ấn Nhận lệnh điều khiển từ người sử dụng

9 Giắc cắm 8 chân Nối 8 chân vào/ra đa chức năng( ứng với Port-A) của VĐK

10 Giắc cắm 8 chân Nối 8 chân vào/ra đa chức năng( ứng với Port-B) của VĐK

11 Giắc cắm 8 chân Nối 8 chân vào/ra đa chức năng( ứng với Port-C) của VĐK

12 Giắc cắm 8 chân Nối 8 chân vào/ra đa chức năng( ứng với Port-D) của VĐK

13 Dãy LED đơn Báo trạng thái logic của 8 chan Port-D( sáng:mức logic0,

tắt: mức logic 1)

14 Jumper dãy LED đơn Cho phép hoặc vô hiệu hóa dãy LED đơn

15 LED 7 thanh Hiện thị từ 0-9 và 1 vài ký tự do người dùng định nghĩa

16 Jumper LED 7 thanh Cho phép hoặc vô hiệu hóa LED 7 thanh

17 Giắc cắm LCD Kết nối màn hình LCD dạng text

18 Biến trở vi chỉnh Điều chỉnh trơn và liên tục, từ 0-5VDC, mức điện áp tại

đầu vào ADC0 của bộ ADC(chân PA0)

19 Giắc UART Kết nối mô đun chuyển đổi UART-USB

Bảng 2 1 Linh kiện quan trọng của mạch Kit và chức năng tương ứng

o Khi không có mô đun mở rộng, toàn bộ LED chỉ thị I/O tắt: 18mA

o Khi có LCD và mô đun USB, các LED chỉ thị I/O bị vô hiệu hóa: 22mA

o Khi có LCD và mô đun USB,toàn bộ LED chỉ thị I/O sáng 80mA

 Mạch có khả năng tự bảo vệ khi bị lắp ngược cực tính nguồn

 Mức logic các cổng I/O: TTL(5V)

 Điện áp tương tự vào các chân ADC: từ 0-5V

 Loại VĐK được hỗ trợ: Atmega 16 , Atmega32, và tương đương

 Cổng I/O mở rộng: 4 giắc cắm( loại 8 chân) ứng với 4-Port( 8 bit mỗi Port)

 Hỗ trợ màn hình LCD: dạng text, giao tiếp 8 bit hoặc 4 bit

 Hỗ trợ mô đun USB: UART-USB hay COM-USB( mức 5 VDC)

 Xung nhịp tích hợp sẵn: thạch anh 8MHz

Trang 11

3 Mạch nạp mã nguồn

Mạch nạp mã nguồn cho VDK trong Kit là loại mạch nạp ISP thông dụng

Hình 2 2 Mạch nạp ISP chuẩn 10 chân

Trang 12

Hình 2 4 Mô-đun UART-USB sử dụng chip FT232RL

Trang 13

Chương 3: Thực hành lập trình cơ bản cho VĐK

1 Tạo project và thử nạp mã máy cho VĐK

Các bước thực hiện:

Hình 3 1 Bước đầu tiên khi tạo Project mới

Trang 14

Hình 3 2 Bước chọn Debug platform và chọn chip khi khởi tạo Project

Hình 3 3 Chỉnh mức độ Optimization cho Project mới

Trang 15

Hình 3 4 Thiết lập Toolchain cho Project mới

Bảng 3 1 Code kiểm tra AVR_Kit_Test

 Dịch đoạn chương trình trên sang mã máy bằng cách vào: Build > Build hoặc click

vào biểu tượng có hình tương ứng trên menu Nếu không có lỗi xảy ra, file mã máy

AVR_Kit_Test.hex sẽ được tạo trong thư mục Default của Project

 Sử dụng phần mềm PROGISP để chỉnh cấu hình Fuse bit cho VĐK rồi nạp

AVR_Kit_Test.hex xuống VĐK.

Trang 16

Hình 3 5 Sửa Fuse bit như hình

Kết quả thu được: dãy 8 LED trên mạch kit sáng tắt xen kẽ nhau và LED 7 thanh sẽ hiện

Trang 17

// khai bao cac nguyen mau ham

void INIT();

void PORT();

void LED_7_OUT(unsigned char num);

void DELAY_MS(unsigned int mili_count);

/*Khai bao cac bien se dung toi trong ham nay*/

//Bien Led_shift de dieu khien cac LEd don

//Gia tri dau la 255= 0xFF= 0b11111111 -> tat ca cac LED deu tat unsigned char led_shift = 255;

//Bien dem cho LED 7 thanh, gia tri dau la 0

unsigned char led_7_count = 0;

//Vong for giup cac LED sang tat theo quy luat lap di lap lai

for(;;)

{

/*Doan ma dieu khien cac led don*/

//Cac LED sang/tat theo 8 bit cua bien led_shift PORTD = led_shift;

//thay doi bien led_shift if(led_shift != 0) //neu led_shift khac 0

Trang 18

led_shift=led_shift << 1; //Dich trai 1 bit else

led_shift= 255; //tro lai gia tri 255 /*Doan ma dieu khien LED 7 thanh*/

//Xuat gia tri dem ra LEd 7 thanh LED7_OUT(led_7_count);

//Dao trang thai PC3 de nhap nhay dau cham tren LED 7 thanh PORTC ^= (1<<PC3);

//Tang dan gia tri dem led_7_count = led_7_count +1;

//khi vuot qua 9, gia tri dem reset ve 0 if(led_7_count >9)

//Khai bao bien Temp luu trang thai cua PORTC

unsigned char temp= PORTC;

//Cac chan vi dieu khien ung voi thanh LED

case 0: temp |= 0B10000000; break;

case 1: temp |= 0B11100011; break;

case 2: temp |= 0B01000100; break;

Trang 19

case 3: temp |= 0B01000001; break;

case 4: temp |= 0B00100011; break;

case 5: temp |= 0B00010001; break;

case 6: temp |= 0B00010000; break;

case 7: temp |= 0B11000011; break;

case 8: temp |= 0B00000000; break;

case 9: temp |= 0B00000001; break;

//khai bao hai bien chay 2 vong lap for

unsigned int i,j;

//xung nhip cua he thong cang cao,so vong lap cang tang

mili_count=mili_count* FRE;

//Cac vong For gay Tre

for( i=0; i< mili_count; i++)

for( j=0; j<53; j++);

}

Bảng 3 3 Thư viện riêng điều khiển cổng ra số

Kết quả thu được:

 Dãy 8 LED trên mạch Kit sẽ lần lướt sáng tắt theo thứ tự

 LED 7 thanh sẽ hiện đếm tăng dâng từ 0 đến 9 rồi về 0

3 Đọc trạng thái logic đầu vào số

Trang 20

#define FRE 8

//Khai bao push_button la bien toan cuc, luu so thu tu phim duoc an

unsigned char push_button = 0;

//Khai bao file thu vien rieng

case 3:PORTD = 0b11001111; break;

Trang 21

case 4:PORTD = 0b00111111; break;

//push_button = 0, tat tat ca cac LED default: PORTD = 0xFF;

} }

chan tuong ung cua VDK duov treo len muc logic 1 nho cac tro keo co san,

Phim 1: noi PB0,phim 2-Pb1,phim 3-Pb2,phim 4-Pb3

Bảng 3 5 Thư viện riêng đọc trạng thái logic đầu vào số

Kết quả thu được:

 Khi ấn và giữ các nút đầu vào (1,2,3,4) thì trên LED 7 thanh sẽ hiện tương ứng, khi thả tay không giữ LED hiện về 0

 Khi thay đổi return 0 thành return push_button trong hàm PB_CHECK() thì sau khi ấn nút, thả tay, LED vẫn hiện kết quả tương ứng nút( không trả về 0 như trên)

Trang 22

4 Đo điện áp tương tự và hiển thị kết quả bằng màn hình LCD

Bảng 3 6 Code đo điện áp tương tự và hiển thị LCD

*File hunget_adc.h: lấy trong thư viện do giáo viên cấp

*File hunget_lcd.h: lấy trong thu viện do giáo viên cấp

Trang 23

Bảng 3 7 Thư viện riêng đo điện áp tương tự và hiển thị LCD

Kết quả thu được: Trên LCD hiện 2 dòng text

TEST ADC & LCD

ADC0: 0432/1024

Trang 24

Hình 3 6 Kết quả thực tế trên LCD

Trang 25

Chương 4: Vận dụng kiến thức vào thực tế

1 Đề tài thực hiện

 Đề tài: Thiết kế và chế tạo mạch đo nhiệt độ sử dụng cảm biến tương tự

 Yêu cầu công việc: chế tạo 1 mạch điện có khả năng đo nhiệt độ trong dải

0-100oC sử dụng cảm biến tương tự Kết quả đo được hiển thị bằng màn hình LCD với độ phân giải tối thiểu là 0.25oC

 Gợi ý cách thực hiện: Thiết kế 1 mô đun đo sử dụng LM35 kết nối tới mạch Kit

để số hóa, xử lý và hiển thị kết quả

2 Giới thiệu về cẩm biến nhiệt độ LM35

Cảm biến LM35 là bộ cảm biến nhiệt mạch tích hợp chính xác cao mà điện áp đầu ra của nó tỷ lệ tuyến tính với nhiệt độ theo thang độ Celsius Chúng cũng không yêu cầu cân chỉnh ngoài vì vốn chúng đã được cân chỉnh

Đặc điểm chính của cảm biến LM35:

 Điện áp đầu vào từ 4V đến 30V

 Độ phân giải điện áp đầu ra là 10mV/oC

 Độ chính xác cao ở 25 C là 0.5 C

 Trở kháng đầu ra thấp 0.1 cho 1mA tải

Hình 4 1 Cảm biến LM35

Trang 26

Hình 4 2 Sơ đồ nguyên lý LM35

3 Thiết kế sơ đồ nguyên lý bằng Altium Designer

Altium Designer trước kia có tên gọi quen thuộc là Protel DXP, là một trong những công cụ vẽ mạch điện tử mạnh nhất hiện nay Được phát triển bởi hãng Altium Limited Altium designer là một phần mềm chuyên nghành được sử dụng trong thiết kế mạch điện tử.Altium Designer có một số đặc trưng sau:

- Giao diện thiết kế, quản lý và chỉnh sửa thân thiện, dễ dàng biên dịch, quản lý file, quản lý phiên bản cho các tài liệu thiết kế

- Hỗ trợ mạnh mẽ cho việc thiết kế tự động, đi dây tự động theo thuật toán tối ưu, phân tích lắp ráp linh kiện Hỗ trợ việc tìm các giải pháp thiết kế hoặc chỉnh sửa mạch, linh kiện, netlist có sẵn từ trước theo các tham số mới

- Mở, xem và in các file thiết kế mạch dễ dàng với đầy đủ các thông tin linh kiện, netlist, dữ liệu bản vẽ, kích thước, số lượng…

Trang 27

- Hệ thống các thư viện linh kiện phong phú, chi tiết và hoàn chỉnh bao gồm tất cả các linh kiện nhúng, số, tương tự…

- Đặt và sửa đối tượng trên các lớp cơ khí, định nghĩa các luật thiết kế, tùy chỉnh các lớp mạch in, chuyển từ schematic sang PCB, đặt vị trí linh kiện trên PCB

- Mô phỏng mạch PCB 3D, đem lại hình ảnh mạch điện trung thực trong không gian 3 chiều

Trong phạm vi môn học, để thực hiện vẽ sơ đồ nguyên lý, thư viện chung được sử dụng

để vẽ là thư viện: “syhaunguyen” và 2 thư viện mặc định sẵn có của phần mềm

Để mở một Project mới ta thực hiện: File >> New >> Project

Để tạo một bản vẽ sơ đồ nguyên lý, ta thực hiện: File >> New >> Schematic, ta được một dao diện:

Hình 4 3 Giao diện Schematic của Altium

Để lấy linh kiện từ thư viện ta chọn mục Library ( thường ở thanh công cụ bên phải củacửa sổ) sau đó lấy linh kiện cần tìm

Sau khi chọn được linh kiện cần theo bảng 2.1 ở trên và thực hiện vẽ, sơ đồ nguyên lý của mạch Kit như sau:

Trang 28

Hình 4 4 Sơ đồ nguyên lý mô phỏng trên Altium

4 Mô phỏng mạch đo nhiệt độ trên Proteus

Proteus là phần mềm cho phép mô phỏng hoạt động của mạch điện tử bao gồm phầnthiết kế mạch và viết chương trình điều khiển cho các họ vi điều khiển như MCS-51, PIC, AVR, …

Proteus là phần mềm mô phỏng mạch điện tử của Lancenter Electronics, mô phỏng cho hầu hết các linh kiện điện tử thông dụng, đặc biệt hỗ trợ cho cả các MCU như PIC,

8051, AVR, Motorola

Phần mềm bao gồm 2 chương trình: ISIS cho phép mô phỏng mạch và ARES dùng để

vẽ mạch in Proteus là công cụ mô phỏng cho các loại Vi Điều Khiển khá tốt, nó hỗ trợ các dòng VĐK PIC, 8051, PIC, dsPIC, AVR, HC11, MSP430, ARM7/LPC2000 các giao tiếp I2C, SPI, CAN, USB, Ethenet, ngoài ra còn mô phỏng các mạch số, mạch tương tự một cách hiệu quả Proteus là bộ công cụ chuyên về mô phỏng mạch điện tử

Ngày đăng: 03/08/2022, 15:40

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

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

w