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

BÀI TẬP LỚN VI XỬ LÝ đề tài Hãy thiết kế sơ đồ ghép nối 2 Led 7 đoạn với Pic16f877A và một nút nhấn

19 18 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

Tiêu đề Hãy thiết kế sơ đồ ghép nối 2 Led 7 đoạn với Pic16f877A và một nút nhấn
Tác giả Đặng Văn Huỳnh
Người hướng dẫn TS.VÕ THIỆN LĨNH
Trường học Trường Đại học Giao thông vận tải
Chuyên ngành Kỹ thuật điều khiển và tự động hóa
Thể loại Bài tập lớn
Năm xuất bản 2022
Thành phố TPHCM
Định dạng
Số trang 19
Dung lượng 735,33 KB

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

Nội dung

- Ngay những ngày khai sinh công nghệ vi điều khiển nói riêng và ngành điện tử nói chung đã tạo ra nhiều bước đột phá mới mẽ cho các ngành kinh tế khác và còn đảm bảo được yêu cầu của ng

Trang 1

- Hiển thị đếm lên 0→50, mỗi 0,3 giây tăng 1 đơn vị Khi đếm đến 50 thì đếm lùi từ 50→0 mỗi 1 gây giảm 1 đơn vị→Lặp lại quá trình này vô tận

Khi nhấn nút nhấn thì sau 0.5s Led đơn sáng, khi nhả phím thì tắt.

BỘ GIÁO DỤC VÀ ĐÀO TẠO

TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬNTẢI

KHOA ĐIỆN – ĐIỆN TỬ

- BÀI TẬP LỚN VI XỬ LÝ

ĐỀ TÀI : Hãy thiết kế sơ đồ ghép nối 2 Led 7 đoạn với

Pic16f877A và một nút nhấn Viết chương trình thực hiện

đồng thời 2 nhiệm vụ sau:

- Hiển thị đếm lên 0→50, mỗi 0,3 giây tăng 1 đơn vị Khi đếm đến 50 thì đếm lùi từ 50→0 mỗi 1 gây giảm 1 đơn vị→Lặp lại quá trình này vô tận

- Khi nhấn nút nhấn thì sau 0.5s Led đơn sáng, khi nhả phím thì tắt.

Giảng viên hướng dẫn : TS.VÕ THIỆN LĨNH

Trang 2

Sinh viên thực hiện:

Đặng Văn Huỳnh MSSV: 6151030048

Lớp : Kỹ thuật điều khiển và tự động hóa

Khóa: 61

TPHCM, ngày 23 tháng 11 năm 2022

BỘ GIÁO DỤC VÀ ĐÀO TẠO

TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬNTẢI

KHOA ĐIỆN – ĐIỆN TỬ

BÀI TẬP LỚN VI XỬ LÝ

- ĐỀ TÀI : : Hãy thiết kế sơ đồ ghép nối 2 Led 7 đoạn với Pic16f877A và một nút nhấn Viết chương trình thực hiện đồng thời 2 nhiệm vụ sau:

- Hiển thị đếm lên 0→50, mỗi 0,3 giây tăng 1 đơn vị Khi đếm đến 50 thì đếm lùi từ 50→0 mỗi 1 gây giảm 1 đơn vị→Lặp lại quá trình này vô tận

- Khi nhấn nút nhấn thì sau 0.5s Led đơn sáng, khi nhả phím thì

tắt

Trang 3

Giảng viên hướng dẫn : TS.VÕ THIỆN LĨNH

Sinh viên thực hiện:

Đặng Văn Huỳnh MSSV: 6151030048

Lớp : Kỹ thuật điều khiển và tự động hóa

TPHCM, ngày 23 tháng 11 năm 2022

MỤC LỤC

LỜI MỞ ĐẦU……….1 CHƯƠNG I GIỚI THIỆU ĐỀ TÀI………3 1.1 CHỨC NĂNG CỦA MẠCH ĐIỆN

1.2 MÔ TẢ MẠCH ĐIỆN

CHƯƠNG II: CÁC LINH KIỆN BÀI TẬP……… 4 2.1 Vi điều khiển

2.2.TỔNG QUAN PIC 16F877A

2.3.1.Đặc điểm nổi bật PIC 16F877A

2.3.2.Các cổng vào ra và chức năng các chân

2.3.4.Các loại ngắt trong PIC 16F877A

2.3.5 Bộ định thời trong PIC 16F877A

2.3.6 Tổ chức bộ nhớ

2.3.7 PORT A (RA)

2.3.8 PORT B (RB)

2.3.9 PORT C (RC)

2.3.10 PORT D (RD)

2.3.11 PORT E (RE)

2.4 Giao tiếp UART PIC 16F877A

CHƯƠNG III : THIẾT KẾ MẠCH TRÊN PROTEUS……… 9

3 M ẠCH MÔ PHỎNG

PHỤ LỤC……… 1 2 1.CÁC PHẦN MỀM TRONG BÀI TẬP LỚN

Trang 4

2.CODE CHƯƠNG TRÌNH CHO VI ĐIỀU KHIỂN

CHƯƠNG 5: KẾT QUẢ VÀ HƯỚNG PHÁT TRIỂN……… 14 5.1.KẾT QUẢ ĐẠT ĐƯỢC

5.2.CHƯA ĐẠT ĐƯỢC

5.3.THUẬN LỢI

5.4.KHÓ KHĂN

5.5.HƯỚNG PHÁT TRIỂN

Trang 5

LỜI MỞ ĐẦU

- Việt nam là một nước đang trên con đường phát triển và đang hòa nhập vào sự phát triển của “WTO” tạo ra thay đổi về mặt kinh tế xã hội của nước ta Tạo cơ hội cho học sinh – sinh viên chúng em tiếp cận và nắm bắt được nhiều thành tựu vĩ của thế giới, đặc biệt là về các lĩnh vực khoa học kỹ thuật nói chung và ngành điện tử nói riêng

- Ngay những ngày khai sinh công nghệ vi điều khiển nói riêng và ngành điện tử nói chung đã tạo ra nhiều bước đột phá mới mẽ cho các ngành kinh tế khác và còn đảm bảo được yêu cầu của người dùng cả về chất lượng và dịch vụ Đồng thời kiến thức

về kĩ thuật là không thể thiếu đến với mỗi sinh viên, nhất là sinh viên ngành điện tử

- Thế hệ trẻ chúng em không tự mình phấn đấu học hỏi thì chúng em sẽ sớm lạc hậu

và nhanh chống bị đẩy lùi Nhìn thấy được điều đó trường: “ĐẠI HỌC GTVT PHÂN HIỆU TẠI TP.HCM” đã sớm chủ trương hình thức đào tạo sâu rộng, từ

thấp đến cao Để tăng chất lượng học tập của sinh viên nhà trường nói chung và trung tâm điện tử nói riêng đã tổ chức cho sinh viên làm đồ án môn học nhằm tạo nền tảng vửng chắc cho sinh viên khi ra trường, đáp ứng nhu cầu tuyển dụng việc làm Chính vì vậy chúng em đã chọn đề tài: “đề tài: : Hãy thiết kế sơ đồ ghép nối 2 Led 7 đoạn với Pic16f877A và một nút nhấn Viết chương trình thực hiện đồng thời 2 nhiệm vụ sau:

- Hiển thị đếm lên 0→50, mỗi 0,3 giây tăng 1 đơn vị Khi đếm đến 50 thì đếm lùi từ 50→0 mỗi 1 gây giảm 1 đơn vị→Lặp lại quá trình này vô tận

- Khi nhấn nút nhấn thì sau 0.5s Led đơn sáng, khi nhả phím thì tắt

- Chọn một mạch ứng dụng bất kỳ của Pic16F877A để mô phỏng + thi công

- Dưới sự hướng dẫn của thầy VÕ THIỆN LĨNH, em đã thực hiện đề tài trên

- Sau thời gian nổ lực nghiêng cứu, được sự chỉ dẫn của thầy VÕ THIỆN LĨNH nhóm

em đã hoàn thành đề tài đã giao Dưới đây là bài tiểu luận báo cáo kết quả nghiêng

Trang 6

cứu của nhóm em, tuy dã nổ lực hết sức nhưng trong quá trình làm còn nhiều sai sót thực hiện đề tài, do trình độ hiểu biết còn hạn chế nên đề tài còn nhiều sai sót, nhóm chúng em rất mong được sự giúp đỡ của thầy để em hoàn thành quá trình học tốt hơn

Trang 7

CHƯƠNG I GIỚI THIỆU ĐỀ TÀI

1.1 Chức năng của mạch điện

1.1.1 Yêu cầu 1:

- Hiển thị đếm lên 0→50, mỗi 0,3 giây tăng 1 đơn vị Khi đếm đến 50 thì đếm lùi từ 50→0 mỗi 1 gây giảm 1 đơn vị→Lặp lại quá trình này vô tận

- Khi nhấn nút nhấn thì sau 0.5s Led đơn sáng, khi nhả phím thì tắt

1.1.2 Yêu cầu 2:

Chọn một mạch ứng dụng bất kỳ của Pic16F877A để mô phỏng + thi công

1.2 MÔ TẢ MẠCH ĐIỆN

- VIRTUAL TERMINAL

- Vi điều khiển được dùng là PIC 16F877A

- Dùng thạch anh 4MHz để tạo dao động cho PIC

Trang 8

CHƯƠNG II: CÁC LINH KIỆN BÀI TẬP

2.1 Vi ĐIỀU KHIỂN

Vi điều khiển là một máy tính được tích hợp trên một chip, nó thường được sử dụng để điều khiển các thiết bị điện tử Vi điều khiển, thực chất, là một hệ thống bao gồm một vi xử lý có hiệu suất đủ dùng và giá thành thấp (khác với các bộ vi xử lý

đa năng dùng trong máy tính) kết hợp với các khối ngoại vi như bộ nhớ, các module vào/ra, các module biến đổi số sang tương tự và tương tự sang số, Ở máy tính thì các module thường được xây dựng bởi các chip và mạch ngoài.

2.2.Tổng quan PIC 16F877A

Hình 2.2 : Sơ đồ chân của PIC16F877a

2.2.1.Đặc điểm nổi bật PIC 16F877A

- Tập lệnh gồm 35 lệnh có độ dài 14 bit

- Tốc độ hoạt động tối đa 20 MHZ với một chu kì lệnh là 200ns

- Bộ nhớ chương trình 8Kx14 bit, bộ nhớ dữ liệu 368x8 byte RAM, bộ nhớ EPPROM

là 258x8 byte

Trang 9

- Số port I/O là 5 với 33 PIN I/O

- Có 15 ngắt

- 3 bộ timer ( timer 0, timer 1, timer 2)

- 2 bộ capture/ so sánh/ điều chế độ rộng xung

- Chuẩn giao tiếp I2C, SSP, SPI, UART

- 8 kênh chuyển đổi ADC 10 bit

- Hai bộ so sánh

2.2.2.Các cổng vào ra và chức năng các chân

- 5 cổng vào ra

+ PORT A ( RA0-RA5) : 6 chân

+ PORT B ( RB0-RB7) : 8 chân

+ PORT C ( RC0-RC7) : 8 chân

+ PORT D (RD0-RD7) : 8 chân

+ PORT E ( RE0-RE2) : 3 chân

+ 4 chân cấp nguồn : AVDD, AVSS, VDD, VSS

- Chức năng các chân:

o + OSC1/CLKI (13) và OSC2/CLKO (14) dùng mắc thạch anh cho mạch, tạo xung nhịp cho vi điều khiển PIC16F877A

o + Chân MCLR/VPP (1) là chân Reset hoặc làm chân đặt điện áp Vpp cho vi điều khiển PIC16F877A

o + Các chân (2,3,4,5,7,8,9,10) được sử dụng làm chân IN/OUT tín hiệu số hoặc INPUT tín hiệu tương tự Ngoài ra các chân (4) và (5) còn có thể sử dụng làm chân điện áp tham chiếu của bộ A/D Chân (4), (6) và (7) còn được

sử dụng cho bộ so sánh

o + Chân (12) và chân (31) được dùng để cung cấp điện áp Vss=0 cho vi mạch PIC16F877A và điện áp Vss=0 cho các chân I/O

o + Chân (11) và chân (32) được dùng để cung cấp điện áp Vdd=5V cho vi mạch PIC16F877A và điện áp Vdd=5V cho các chân I/O

Trang 10

o + Chân (15),(16) có thể làm chân I/O tín hiệu số hoặc chân T1OSO/T1CKI ngõ vào bộ dao động, xung clock Timer1

o +Chân (16) có thể làm chân Capture2 input/Compare2 output/PWM2 output

o + Chân (17) dùng làm chân I/O tín hiệu số hoặc làm chân Capture1

- input/Compare1 output/PWM1 output

o + Chân (18) và (23), (24) dùng làm chân I/O tín hiệu số và truyền thông SPI, I2C

o + Chân (25),(26) dùng làm chân I/O tín hiệu số hoặc UART

o + Chân (19),(20) dùng làm chân I/O tín hiệu số hoặc Master/Slaver

o + Chân (21,22,27,28,29,30) dùng làm chân I/O tín hiệu số hoặc

Master/Slaver.Cấp nguồn cho PIC 16F877A

- Không cấp nguồn xung, chỉ cấp nguồn tuyến tính

- Cấp nguồn cho tất cả các chân Vss/Vdd của PIC Mỗi cặp chân Vss/Vdd gắn thêm 1

tụ 104 pF sát chân Vss/Vdd đó để chống nhiễu

2.2.4.Các loại ngắt trong PIC 16F877A

- Ngắt chung

- Chuyển đổi ADC

- Nút bấm

- Có capture hay compare trên CCP1 và CCP2

- Ngắt ngoài

- …

2.2.5 Bộ định thời trong PIC 16F877A

- Timer 0 ( 8 bit) : có thể chọn chức năng định thời/ đếm bằng phần mềm, có thể đọc hoặc ghi, nguồn clock có thể là nội hoặc ngoại, xảy ra ngắt khi tràn

- Timer 1 (16 bit) : gồm 2 thanh ghi 8 bit ( TMR1H, TMR1L ) có thể đọc và ghi được, ngắt TMR1 được phát sinh khi xảy ra tràn và được chốt ở TMR1IF, có thể kích hoạt/xóa bằng cách set/reset bit điều khiển TMR1ON

- Timer 2 : bộ định thời 8 bit và có hai bộ chia tần số là Prescaler và Postscaler, nó có thể được sử dụng như là PWM cho chế độ PWM của chế độ CCP, thanh ghi TMR2 có thể đọc, ghi và xóa khi Reset

Trang 11

2.2.6 Tổ chức bộ nhớ

- Gồm 3 phần:

+ Bộ nhớ chương trình

+ Bộ nhớ dữ liệu RAM

+ Bộ nhớ dữ liệu EEPROM

2.2.7 PORT A (RA)

- Là cổng 6 bit, có thể set là input hoặc output tùy vào thanh ghi TRISA

- Ngõ vào của đầu vào analog

- RA4 – ngõ vào xung clock của timer 0

- Đầu vào của các điện áp Vref cho các bộ chuyển đổi A/D và bộ so sánh

2.2.8 PORT B (RB)

- PORTB là cổng có 8 bit input hoặc output

- PORTB-RB là chân tín hiệu vào của ngắt ngoài RB0/INT

2.2.9 PORT C (RC)

- PORTC là cổng có 8 bit input hoặc output

- PORTC-RC là chân chức năng của các bộ so sánh, Timer1, bộ điều

chế độ rộng xung PWM các chuẩn giao tiếp truyền thông I2C, SPI, SSP, USART

2.2.10 PORT D (RD)

- PORTD là cổng có 8 bit input hoặc output

- PORTD-RD có thể được cấu hình là cổng song song 8 bit của vi điều

- khiển bằng cách đặt chế độ PSPMODE

2.2.11 PORT E (RE)

- PORTE là cổng có 3 bit input hoặc output

Trang 12

- PORTE-RE được sử dụng để cấu hình cho cổng PORTD hoạt động trong chế độ PSPMODE

2.4 Giao tiếp UART PIC 16F877A

UART là viết tắt của Universal Asynchronous Receiver – Transmitter Thường là một mạch tích hợp được sử dụng trong việc truyền dẫn dữ liệu nối tiếp giữa máy tính và các thiết bị ngoại vi Rất nhiều vi điều khiển hiện nay đã được tích hợp UART, vì vấn

đề tốc độ và độ điện dụng của UART không thể so sánh với các giao tiếp mới hiện nay nên các dòng PC & Laptop đời mới không còn tích hợp cổng UART Như các bạn đã biết giao tiếp SPI và I2C có 1 dây truyền dữ liệu và 1 dây được sử dụng để truyền xung clock (SCL) để đồng bộ trong giao tiếp Với UART thì không có dây SCL, vấn đề được giải quyết khi mà việc truyền UART được dùng giữa 2 vi xử lý với nhau, đồng nghĩa với việc mỗi vi xử lý có thể tự tạo ra xung clock cho chính nó xử dụng

Để bắt đầu cho việc truyền dữ liệu bằng UART, một START bit được gửi đi, sau đó

là các bit dữ liệu và kết thúc quá trình truyền là STOP bit

Như hình các bạn có thể thấy Khi ở trạng thái chờ mức điện thế ở mức 1 (high) Khi bắt đầu truyền START bit sẻ chuyển từ 1 xuống 0 để báo hiệu cho bộ nhận là quá trình truyền dữ liệu sắp xảy ra Sau START bit là đến các bit dữ liệu D0-D7 (Theo hình vẽ các bit này có thể ở mức High or Low tùy theo dữ liệu) Sau khi truyền hết

dữ liệu thì đến Bit Parity để bộ nhận kiểm tra tính đúng đắn của dữ liệu truyền (vấn

đề này mình sẽ giải thích rõ hơn trong tài liệu CRC trong thời gian tới) Cuối cùng là STOP bit là 1 báo cho thiết bị rằng các bit đã được gửi xong Thiết bị nhận sẽ tiến hành kiểm tra khung truyền nhằm đảm báo tính đúng đắn của dữ liệu

Các thông số cơ bản trong truyền nhận UART:

- Frame (khung truyền ): Khung truyền quy định về số bit trong mỗi lần truyền

một gói dữ liệu sắp đc truyền đến Bit bắt buộc

đến bit MSB

Trang 13

- Parity bit : kiểm tra dữ liệu truyền có đúng không

nhận sẽ tiến hành kiểm tra khung truyền nhằm đảm bảo tính đúng đắn của dữ liệu Bit bắt buộc

Trang 14

CHƯƠNG III : THIẾT KẾ MẠCH TRÊN PROTEUS

3 MẠCH MÔ PHỎNG

Hình 3 :Mạch mô phỏng

Trang 15

PHỤ LỤC

1.Các phần mềm trong bài tập lớn

Protues 8.0 Professional

PIC-C Compiler (CCS)

2.Code chương trình cho vi điều khiển

#include <Hai_led.h>

void main() // chuong trinh chinh

{

so_dem=0;

set_timer1(-62500); //0.2*62500*8 = 100ms

setup_timer_1(T1_INTERNAL|T1_DIV_BY_8);

enable_interrupts(INT_TIMER1);

enable_interrupts(GLOBAL);

while(TRUE) // vong lap vo han

{

output_b(ma7doan[so_dem/10%10]&cham); // xuât ma LED 7 doan hang chuc ra port B output_c(ma7doan[so_dem%10]); // xuât ma LED 7 doan hang don vi ra port C

if(input(pin_d1)==0)

Trang 16

{

if(bat_led==0)

{

bat_led=1;

dem_bat_led=0;

}

}

else

{

bat_led=0;

output_low(pin_d0);

}

}

}

//========================================

int8 ngat=0;

#int_timer1 // 0.2*62500*8 = 100ms

void ngat_timer1()

{

set_timer1(-62499); //(0.2us)

if(bat_led==1)

{

if(dem_bat_led<5)

{

Trang 17

dem_bat_led++;

}

else

{

output_high(pin_d0);

}

}

ngat++;

if(giam_tang==1)

{

if(ngat>2)

{

ngat=0;

so_dem++;

if(so_dem>=50) // neu so dem > 99

{

giam_tang=0;

}

}

}

else

{

if(ngat>9)

{

ngat=0;

Trang 18

so_dem ;

if(so_dem==0) // neu so dem > 99

{

giam_tang=1;

}

}

}

}

CHƯƠNG 5: KẾT QUẢ VÀ HƯỚNG PHÁT TRIỂN

5.1 Kết quả đạt được

Trong suốt khoảng thời gian nghiên cứu và thực hiện bài tập lớn, nhóm đã cố gắng làm hết khả năng của mình và vì thời gian làm có hạn nên kết quả đạt được vẫn còn nhiều hạn chế nhưng nhóm đã học hỏi được khá nhiều kiến thức mới mẻ cũng như là các con linh kiện và lập trình dựa trên CCS và mô phỏng dựa trên phần mềm protues

5.2 Chưa đạt được

Chưa thi công được mạch thực tế

5.3 Thuận lợi

- Chúng em đã phân tích dự án dựa trên những thông tin thu thập được và bám sát vào yêu cầu của bài toàn

- Chương trình đã đảm bảo những lưu trữ thông tin cần thiết của

hệ thống

- Đọc và hiểu được các thứ có sẵn trên PIC16F877A

- Được học hỏi và tìm tò những thứ chưa gặp và tiếp xúc

5.4 Khó khăn

- Lần đầu thi công làm mạch

- Thiếu các thiết bị hổ trợ thi công mạch

5.5.Hướng phát triển

- Cần cải thiện và nâng cấp phần mềm lập trình để đạt tới năng suất tốt nhất

Trang 19

- Tiếp tục phát triển hoàn thiện hệ thống giúp cho người dùng có thể sử dụng tốt hơn

và đảm bảo được sự an toàn tuyệt đối

- Thi công thiết kế nhiều mạch khác nhau

-HẾT -

Ngày đăng: 11/12/2022, 09:40

TỪ KHÓA LIÊN QUAN

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