Tài liệu thực hànhnhúng 23042024

104 0 0
Tài liệu đã được kiểm tra trùng lặp
Tài liệu thực hànhnhúng 23042024

Đ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

TÀI LIỆU THỰC HÀNH ----------------------------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- -------------------------------------------------------------------------------

Trang 1

TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP

KHOA ĐIỆN TỬ

Bộ môn : Công nghệ Thông tin

TÀI LIỆU HƯỚNG DẪN THỰC HÀNH

Giáo viên hướng dẫn thực hành :

Giáo viên giảng dạy : …………

Kỳ - Năm học : ………… ………… u

Trang 2

Đánh giá kết quả quá trình

Trang 3

QUY ĐỊNH THỰC HIỆN VỚI MỖI BÀI THỰC HÀNH

Yêu cầu:

thuyết khi kết thúc thực hành

Các bước cần chuẩn bị:

trả lời hết tất các câu hỏi trong tài liệu Yêu cầu chép tay phần trả lời

Bước 2: Xin chữ ký xác nhận đã hoàn thành phần tự chuyển bị ở nhà của Giảng

viên hướng dẫn thực hành trước khi vào phòng thực hành

Bước 3: Đọc kỹ và thực hiện đúng quy trình thực hành đã in và dán trên mỗi Kit

thực hành

Bước 4: Thực hiện theo đúng tài liệu hướng dẫn đối với mỗi bài thực hành

Bước 5: Báo cáo kết quả bài thực hành theo yêu của của Giảng viên và yêu cầu

Giảng viên chấm điểm

Bước 6: Ký nhận vào sổ Thực hành thực hành.

Trang 6

số sử dụng IC dịch 74HC595

1.1.2 Trình tự thực hành

A Kết nối mạch thực hành

1) Kết nối mạch PIC16F877A và mạch LED

Sử dụng 2 module PIC16F877A và module LED, cắm jack kết nối các chân trên module LED với module PIC16F877A theo thứ tự tương ứng với 2 cột ở bảng sau:

Trang 7

2) Kết nối nguồn:

Sử dụng module nguồn tích hợp để cấp nguồn cho kit thực hành Module nguồn hỗ trợ các dải điện áp: 3,3V, 5V, 12V

Trang 8

Kết nối nguồn 5V với kit vi điều khiển và các module thành phần theo sơ đồ: Module nguồn ATX Module vi điều khiển Module LED

Kiểm tra kỹ chân kết nối trước khi thực hiện thao tác bật nguồn cho hệ thống Gạt công tắc sang trạng thái ON để cấp nguồn

3) Cài đặt Kit LED làm việc ở chức năng LED đơn

Module LED là module kết hợp giữa LED 7 thanh và LED đơn nên khi sử dụng cần gạt switch Bit để lựa chọn chức năng cần dùng

Trang 9

Khi sử dụng module với LED đơn cần gạt các switch ở vị trí: 4  8 lên trạng thái ON và các switch 1  3 trạng thái OFF

Chiều gạt lên là ON và ngược lại

Trang 10

4) Sơ đồ nguyên lý phần kết nối PIC16F877A và led đơn:

B Lập trình mẫu

1) Mục đích của chương trình

chiều mong muốn

2) Mô tả thuật toán chương trình

a) Thuật toán điều khiển IC dịch 74HC595

 Nguyên lý làm việc của IC 595:

Thanh ghi dịch 74HC595 thường được sử dụng với bộ vi điều khiển hoặc bộ vi xử lý để mở rộng các chân ra số GIPO 74HC595 chỉ yêu cầu 3 chân kết nối với MCU, đó là Clock, Data và Latch 74HC595 có điện áp hoạt động rộng từ 2V đến 6V và có thể ghép nối tiếp để mở rộng không giới hạn số lượng đầu ra về mặt lý thuyết Dưới đây là một mạch ứng dụng của IC tạo ra 8 đầu ra điều khiển LED đơn

Sơ đồ ghép nối mở rộng điều khiển 8 led đơn:

Trang 11

(Nguồn ảnh tham khảo internet)

Sơ đồ ghép nối mở rộng điều khiển 16 led đơn sử dụng 2 IC 74HC595 Theo nguyên lý trên ta có thể mở rộng tuỳ ý số lượng OUTPUT thông qua việc ghép nối tiếp chuỗi n IC 74HC595 lại với nhau

(Nguồn ảnh tham khảo internet)

 Ý nghĩa các chân IC74HC595

1 bit

Trang 12

 Q0  Q7 (output): (15, 1, 2, 3, 4, 5, 6, 7) Xuất dữ liệu khi chân 13 tích cực ở mức thấp và có một xung tích cực ở sườn âm tại chân chốt 12.

tất cả các đầu ra của 74HC595 trở về trạng thái cao trở, không có đầu ra nào được cho phép

nhau thì chân này đưa vào đầu vào của IC tiếp theo khi đã dịch đủ 8bit.

dương (từ 0 lên 1) thì 1bit được dịch vào IC.

sườn dương thì cho phép xuất dữ liệu trên các chân output (chú ý chiều dịch dữ liệu từ Q0Q7)

 Nguyên lý làm việc mô tả minh họa như hình dưới:

Thuật toán điều khiển hiển thị 8 led đơn

 Định nghĩa (đặt tên) các chân điều khiển chính để tiện sử dụng trong chương trình Sinh viên có thể không cần các lệnh này nếu sử dụng các tên PIN_X có sẵn Với X là pin muốn

#Define DS_PIN PIN_B0 #define SHCP_PIN PIN_B1

Trang 13

#define STCP_PIN PIN_B2

 Đưa 8 bit dữ liệu nối tiếp ở đầu vào chân DS vào thanh ghi đệm trong IC

Input: data => là tham số kiểu nguyên 8 bit, là dữ liệu cần đưa vào thanh ghi đệm của IC

void Init_74hc595(int data) // {

 Xuất dữ liệu trong thanh ghi đệm của IC ra 8 cổng ra Q0Q7 của IC

void OUTPUT_74HC595() // tạo xung dương để chốt dữ liệu

b) Thuật toán chương trình chính

Chương trình chính sẽ thực hiện 2 chương trình con sáng dần và tắt dần tuần tự

Trang 14

c) Thuật toán chương trình điều khiển LED sáng từ trái qua phải với thời gian trễ T

Với module LED sử dụng bao gồm 2 IC 74HC595 và 16 LED được gán lần lượt theo 2 IC 74HC595, thuật toán điều khiển LED sáng dần với thời gian trễ T:

Trang 15

for(int i = 0; i < 16 ; i++) //Lặp 16 lần tương ứng với số LED

Khi số LED nhỏ hơn 8 hay chỉ những LED trên IC 74HC595 số 1 được sáng, các LED trên IC 74HC595 số 2 tắt hết Theo quy luật tràn của IC 74HC595 thì dữ liệu gửi đi sẽ lần lượt từ IC xa nhất rồi giảm dần, vậy cần gửi dữ liệu tắt LED đến IC 74HC595 2 trước rồi đến IC 74HC595 1

Init_74hc595(0); //dữ liệu tắt LED đến IC 74HC595 số 2 Init_74hc595(Data_LED[i]); //dữ liệu LED sáng lần lượt đến IC 74HC595 số 1

OUTPUT_74HC595(); //Xuất giá trị ra OUTPUT delay_ms(toc_do); //delay T giây

Tương tự khi số LED lớn hơn 8 hay số LED trên IC 74HC595 số 1 đã sáng hết

Init_74hc595(Data_LED[i - 8]); //dữ liệu LED sáng lần lượt đến IC 74HC595 số 2

Init_74hc595(0xFF); //dữ liệu bật toàn bộ LED đến IC 74HC595 số 1

OUTPUT_74HC595(); //Xuất giá trị ra OUTPUT delay_ms(toc_do); //delay T giây

d) Thuật toán chương trình điều khiển LED sang từ phải qua trái với thời gian trễ T Ngược với bài toán trên ta chỉ việc đảo ngược thuật toán như sau:

Trang 16

Init_74hc595(Data_LED[i - 8]);//dữ liệu LED 2 tắt lần lượt ngược với bật lần lượt

Init_74hc595(0xFF);//dữ liệu LED 1 sáng hết OUTPUT_74HC595(); //Xuất giá trị ra OUTPUT delay_ms(toc_do); //delay T giây

3) Mã chương trình mẫu hoàn chỉnh

Code mẫu tham khảo trên link:

https://github.com/manhtuan07081998/he_thong_nhung/blob/main/led_don_595.c

#include <16F877A.h> #device ADC=10

#use delay(crystal=12MHz) #define DS_PIN PIN_B0 #define SHCP_PIN PIN_B1 #define STCP_PIN PIN_B2

unsigned char Data_LED[] = {0x01, 0x03, 0x07, 0x0F, 0x1F, 0x3F, 0x7F, 0xFF};

void Init_74hc595(int data); void OUTPUT_74HC595();

void LED_sang_dan_trai_qua_phai(int16 toc_do); void LED_tat_dan_phai_qua_trai(int16 toc_do);

Trang 18

Thực hiện tạo project trên phần mềm CCS và viết lại chương trình trên Thực hiện biên dịch và hiệu chỉnh lỗi nếu có Sau khi hoàn tất, gắn chip và nạp chương trình Cấp nguồn cho KIT và kiểm tra kết quả chạy thực Thay đổi giá trị tốc độ và kiểm tra kết quả

1.1.3 Bài tập

1 Bật lần lượt 2 LED từ trái qua phải sau mỗi t giây 2 Tắt lần lượt 2 LED từ phải qua trái sau mỗi t giây

3 Bật các LED chẵn tắt các LED lẻ và đổi trạng thái sau t giây

1.2 Lập trình LED 7 đoạn 1.2.1 Mục đích

sử dụng kit mạch thực

ra số sử dụng IC dịch 74HC595

1.2.2 Trình tự thực hành

A Kết nối mạch thực hành

1) Kết nối mạch PIC16F877A và mạch LED

Sử dụng 2 module PIC16F877A và module LED, cắm jack kết nối các chân trên module LED với module PIC16F877A theo thứ tự tương ứng với 2 cột ở bảng sau:

Trang 20

Kết nối nguồn 5V với kit vi điều khiển và các module thành phần theo sơ đồ: Module nguồn ATX Module vi điều khiển Module LED

Kiểm tra kỹ chân kết nối trước khi thực hiện thao tác bật nguồn cho hệ thống Gạt công tắc sang trạng thái ON để cấp nguồn

3) Cài đặt Kit LED làm việc ở chức năng LED đơn

Module LED là module kết hợp giữa LED 7 thanh và LED đơn nên khi sử dụng cần gạt switch Bit để lựa chọn chức năng cần dùng

Trang 21

Khi sử dụng module với LED đơn cần gạt các switch ở vị trí: 4  8 lên trạng thái ON và các switch 1  3 trạng thái OFF

Chiều gạt lên là ON và ngược lại

Trang 22

4) Sơ đồ nguyên lý phần kết nối PIC16F877A và led đơn:

B Lập trình mẫu

1) Mục đích của chương trình

2) Mô tả thuật toán chương trình

a) Thuật toán điều khiển LED 7 đoạn sử dụng IC74HC595

 Nguyên lý làm việc của LED 7 đoạn:

LED 7 đoạn là một thiết bị hiển thị điện tử được sử dụng để hiển thị số Nó bao gồm 7 đoạn LED, được sắp xếp thành hình chữ nhật đứng Mỗi đoạn LED có thể được bật hoặc tắt để tạo ra các ký tự và số

Có hai loại LED 7 đoạn chính là:

được nối chung lại với nhau Để bật một đoạn LED, cần cấp điện áp dương cho anode của đoạn LED đó

nối chung lại với nhau Để bật một đoạn LED, cần cấp điện áp âm cho cathode của đoạn LED đó

Trang 23

Theo sơ đồ trên ta có thể thấy cấu tạo LED 7 đoạn được cấu thành từ 7 LED đơn xếp thành 1 hình chữ nhật và 1 dấu “.”

Quy định các chân LED được kí hiệu từ a  f, chân COM là chân chung sẽ được cấp GND nếu LED chung cathode và cấp VCC nếu LED chung anode, chân DP là vị trí dấu

Trang 24

“.” Từ đó ta có thể xây dựng mô hình hiển thị các giá trị số và chữ thông qua bật/tắt các LED tương ứng theo hình sau

Trang 25

Xây dựng bản giá trị đầu ra tương ứng với 2 loại LED Từ mô hình sử dụng 1 LED ứng dụng phát triển trên LED 7 thanh có 4 chữ số

Trang 26

Dựa trên nguyên lý IC74HC595 đã ứng dụng tại bài thực hành LED

Thanh ghi dịch 74HC595 thường được sử dụng với bộ vi điều khiển hoặc bộ vi xử lý để mở rộng các chân ra số GIPO 74HC595 chỉ yêu cầu 3 chân kết nối với MCU, đó là Clock, Data và Latch 74HC595 có điện áp hoạt động rộng từ 2V đến 6V và có thể ghép nối tiếp để mở rộng không giới hạn số lượng đầu ra về mặt lý thuyết Dưới đây là một mạch ứng dụng của IC tạo ra 8 đầu ra điều khiển LED đơn

Sơ đồ ghép nối mở rộng điều khiển 8 led đơn:

(Nguồn ảnh tham khảo internet)

Sơ đồ ghép nối mở rộng điều khiển 16 led đơn sử dụng 2 IC 74HC595 Theo nguyên lý trên ta có thể mở rộng tuỳ ý số lượng OUTPUT thông qua việc ghép nối tiếp chuỗi n IC 74HC595 lại với nhau

Trang 27

(Nguồn ảnh tham khảo internet)

 Ý nghĩa các chân IC74HC595

1 bit

mức thấp và có một xung tích cực ở sườn âm tại chân chốt 12.

tất cả các đầu ra của 74HC595 trở về trạng thái cao trở, không có đầu ra nào được cho phép

nhau thì chân này đưa vào đầu vào của IC tiếp theo khi đã dịch đủ 8bit.

dương (từ 0 lên 1) thì 1bit được dịch vào IC.

sườn dương thì cho phép xuất dữ liệu trên các chân output (chú ý chiều dịch dữ liệu từ Q0Q7)

3) Mã chương trình mẫu hoàn chỉnh

Code mẫu hiển thị 1 số có 8 chữ số bất kì lên màn hình LED 7 thanh thông qua hàm

hien_thi_led([số cần hiển thị]);

Trang 28

const unsigned char Code7Seg[] = {0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90}; //mã LED 7 thanh với từng số dạng hex: 0  9

const unsigned char CodeNumber[] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80}; //mã quét LED với 8 LED

void Init_74hc595(unsigned int data); //Hàm xuất dữ liệu đến IC 74HC595

void OUTPUT_74HC595(); // Hàm gửi dữ liệu xác nhận IC 74HC595 xuất dữ liệu đầu ra

void hien_thi_led(int32 so_hien_thi); //Hàm hiển thị số đã

hien_thi_led(12345678); //kiểm tra hiển thị số “12345678” lên LED 7 thanh

Trang 29

void OUTPUT_74HC595() //// Hàm gửi dữ liệu xác nhận IC 74HC595 xuất dữ liệu đầu ra

Thực hiện thao tác tạo project trên phần mềm ccs và nạp code chạy thử với giá trị ngày tháng năm sinh dưới dạng: dd/mm/yyyy ví dụ 23/11/1996

Chương trình ứng dụng làm đồng hồ bấm giờ sử dụng timer:

#include <16F877A.h>

#use delay(crystal=12MHz) #define DS_PIN PIN_B0

Trang 30

#define SHCP_PIN PIN_B1 #define STCP_PIN PIN_B2

Trang 31

void Init_74hc595(unsigned int data)

Trang 32

2 Vẽ lại sơ đồ kết nối các chân giữa module PIC1F877A và Module LED 3 Vẽ lại sơ đồ kết nối các chân giữa module PIC1F877A và Module LED với

6 Trình bày nguyên lý làm việc của IC595 7 Trình bày nguyên lý làm việc của LED 7 đoạn

Trang 38

Bài 2: Lập trình đọc tín hiệu Analog và hiển thị LCD 16x2 2.1 Lập trình hiển thị LCD

2.1.1 Mục đích

sử dụng kit mạch thực

truyền thông I2C

2.1.2 Trình tự thực hành

A Giới thiệu màn hình LCD 2004

LCD 20x4 là loại màn hình tinh thể lỏng nhỏ dùng để hiển thị chữ hoặc số trong bảng mã ASCII Mỗi ô của Text LCD bao gồm các chấm tinh thể lỏng, các chấm này kết hợp với nhau theo trình tự “ẩn” hoặc “hiện” sẽ tạo nên các kí tự cần hiển thị và mỗi ô chỉ hiển thị được một kí tự duy nhất

LCD 20x4 nghĩa là loại LCD có 4 dòng và mỗi dòng có thể hiển thị được 20 kí tự Đây là loại màn hình được sử dụng rất phổ biến trong các loại mạch điện Cấu trúc hiển thị của màn hình như sau:

Trang 39

*Lưu ý:

sử dụng và bài toán lựa chọn phương pháp phù hợp

tăng giảm đến khi có được độ sáng mong muốn

Sử dụng màn hình LCD với I2C:

Trang 40

B Giới thiệu về chuẩn truyền thông I2C:

I2C kết hợp các tính năng tốt nhất của SPI và UART Với I2C, bạn có thể kết nối nhiều slave với một master duy nhất (như SPI) và bạn có thể có nhiều master điều khiển một hoặc nhiều slave Điều này thực sự hữu ích khi bạn muốn có nhiều hơn một vi điều khiển ghi dữ liệu vào một thẻ nhớ duy nhất hoặc hiển thị văn bản trên một màn hình LCD

Giống như giao tiếp UART, I2C chỉ sử dụng hai dây để truyền dữ liệu giữa các thiết bị:

dọc theo một đường duy nhất (đường SDA)

Giống như SPI, I2C là đồng bộ, do đó đầu ra của các bit được đồng bộ hóa với việc lấy mẫu các bit bởi một tín hiệu xung nhịp được chia sẻ giữa master và slave Tín hiệu xung nhịp luôn được điều khiển bởi master

Cách hoạt động của I2C:

Với I2C, dữ liệu được truyền trong các tin nhắn Tin nhắn được chia thành các khung dữ liệu Mỗi tin nhắn có một khung địa chỉ chứa địa chỉ nhị phân của địa chỉ slave và một hoặc nhiều khung dữ liệu chứa dữ liệu đang được truyền Thông điệp cũng bao gồm điều

Trang 41

kiện khởi động và điều kiện dừng, các bit đọc / ghi và các bit ACK / NACK giữa mỗi khung dữ liệu:

Điều kiện khởi động: Đường SDA chuyển từ mức điện áp cao xuống mức điện áp thấp trước khi đường SCL chuyển từ mức cao xuống mức thấp

Điều kiện dừng: Đường SDA chuyển từ mức điện áp thấp sang mức điện áp cao sau khi đường SCL chuyển từ mức thấp lên mức cao

Khung địa chỉ: Một chuỗi 7 hoặc 10 bit duy nhất cho mỗi slave để xác định slave khi master muốn giao tiếp với nó

Bit Đọc / Ghi: Một bit duy nhất chỉ định master đang gửi dữ liệu đến slave (mức điện áp thấp) hay yêu cầu dữ liệu từ nó (mức điện áp cao)

Bit ACK / NACK: Mỗi khung trong một tin nhắn được theo sau bởi một bit xác nhận / không xác nhận Nếu một khung địa chỉ hoặc khung dữ liệu được nhận thành công, một bit ACK sẽ được trả lại cho thiết bị gửi từ thiết bị nhận

Địa chỉ:

slave biết rằng dữ liệu đang được gửi đến slave này chứ không phải slave khác Nó thực hiện điều này bằng cách định địa chỉ Khung địa chỉ luôn là khung đầu tiên sau bit khởi động trong một tin nhắn mới

nó Sau đó, mỗi slave sẽ so sánh địa chỉ được gửi từ master với địa chỉ của chính nó Nếu địa chỉ phù hợp, nó sẽ gửi lại một bit ACK điện áp thấp cho master Nếu địa chỉ không khớp, slave không làm gì cả và đường SDA vẫn ở mức cao

ghi dữ liệu vào nó hay nhận dữ liệu từ nó Nếu master muốn gửi dữ liệu đến slave,

Trang 42

bit đọc / ghi ở mức điện áp thấp Nếu master đang yêu cầu dữ liệu từ slave, thì bit ở mức điện áp cao

Khung dữ liệu:

Sau khi master phát hiện bit ACK từ slave, khung dữ liệu đầu tiên đã sẵn sàng được gửi

Khung dữ liệu luôn có độ dài 8 bit và được gửi với bit quan trọng nhất trước Mỗi khung dữ liệu ngay sau đó là một bit ACK / NACK để xác minh rằng khung đã được nhận thành công Bit ACK phải được nhận bởi master hoặc slave (tùy thuộc vào cái nào đang gửi dữ liệu) trước khi khung dữ liệu tiếp theo có thể được gửi

Sau khi tất cả các khung dữ liệu đã được gửi, master có thể gửi một điều kiện dừng cho slave để tạm dừng quá trình truyền Điều kiện dừng là sự chuyển đổi điện áp từ thấp lên cao trên đường SDA sau khi chuyển tiếp từ thấp lên cao trên đường SCL , với đường SCL vẫn ở mức cao

Các bước truyền dữ liệu I2C:

Master gửi điều kiện khởi động đến mọi slave được kết nối bằng cách chuyển đường SDA từ mức điện áp cao sang mức điện áp thấp trước khi chuyển đường SCL từ mức cao xuống mức thấp

Master gửi cho mỗi slave địa chỉ 7 hoặc 10 bit của slave mà nó muốn giao tiếp, cùng với bit đọc / ghi

Mỗi slave sẽ so sánh địa chỉ được gửi từ master với địa chỉ của chính nó Nếu địa chỉ trùng khớp, slave sẽ trả về một bit ACK bằng cách kéo dòng SDA xuống thấp cho một bit Nếu địa chỉ từ master không khớp với địa chỉ của slave, slave rời khỏi đường SDA cao Master gửi hoặc nhận khung dữ liệu

Sau khi mỗi khung dữ liệu được chuyển, thiết bị nhận trả về một bit ACK khác cho thiết bị gửi để xác nhận đã nhận thành công khung

Để dừng truyền dữ liệu, master gửi điều kiện dừng đến slave bằng cách chuyển đổi mức cao SCL trước khi chuyển mức cao SDA

Một master với nhiều slave:

Vì I2C sử dụng định địa chỉ nên nhiều slave có thể được điều khiển từ một master duy nhất Với địa chỉ 7 bit sẽ có 128 (2 mũ 7) địa chỉ duy nhất Việc sử dụng địa chỉ 10 bit không phổ biến, nhưng nó cung cấp 1.024 (2 mũ 10) địa chỉ duy nhất Để kết nối nhiều slave đến một master duy nhất, bạn có thể đấu dây như thế này, với điện trở kéo lên 4,7K Ohm kết nối đường SDA và SCL với Vcc:

Ngày đăng: 04/05/2024, 16:05

Tài liệu cùng người dùng

Tài liệu liên quan