1. Trang chủ
  2. » Luận Văn - Báo Cáo

ĐO và HIỂN THỊ KHÔI LƯỢNG cân được THEO HIỆU ỨNG LED, có CODE

55 143 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 55
Dung lượng 2,1 MB

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

Nội dung

2 ĐỒ ÁN NHÚNG 2 DÙNG PIC ĐO VÀ HIỂN THỊ KHÔI LƯỢNG CÂN ĐƯỢC THEO HIỆU ỨNG LED CÓ CODE Ở PHẦN 3.2

Trang 1

DÙNG PIC ĐO VÀ HIỂN THỊ KHÔI LƯỢNG CÂN ĐƯỢC THEO HIỆU ỨNG

LED

CÓ CODE Ở PHẦN 3.2

Trang 2

MỤC LỤC

Trang 3

1.1 .Giới thiệu đề tài 8

1.2 .Mục đích nghiên cứu 9

1.3 .Đối tượng nghiên cứu 9

1.4 .Phạm vi nghiên cứu 10

1.5 .Dự đoán kết quả 10

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 10

2.1 TỔNG QUAN VỀ PIC 16F877A 10

2.1.1 Khái niệm và 1 vài thông tin về vi điều khiển PIC16F877A 10

2.1.2 Sơ đồ khối vi điều khiển PIC16F877A 14

2.1.3 Tổ chức bộ nhớ 15

2.1.3.1 Bộ nhớ chương trình (Program memory) 16

2.1.3.2 Bộ nhớ dữ liệu (Data memory) 17

2.1.3.2.1 Thanh ghi chức năng đặc biệt SFR 19

2.1.3.2.2 Thanh ghi mục đích chung GPR 21

2.1.3.3 Stack 21

2.1.4 Các cổng xuất nhập của PIC16F877A 22

2.1.4.1 Cổng PORTA 22

2.1.4.2 Cổng PORTB 24

2.1.4.3 Cổng PORTC 26

2.1.4.4 Cổng PORTD 28

2.1.4.5 Cổng PORTE 29

2.1.5 Timer0 30

2.1.6 Timer1 32

2.1.7 Timer2 34

Trang 4

2.2 CẢM BIẾN CÂN NẶNG (LOADCELL) 36

2.2.1 Tổng quan về cảm biến cân nặng (Loadcell) 36

2.2.1.1 Cảm biến Loadcell là gì? 36

2.2.2 Mạch chuyển đổi HX711 38

2.3 THIẾT BỊ HIỂN THỊ LCD 39

2.3.1 Tổng quan về LCD 39

CHƯƠNG 3 THIẾT KẾ VÀ THI CÔNG 42

3.1 SƠ ĐỒ KHỐI CỦA HỆ THỐNG 42

3.1.1 Khối cảm biến LOADCELL 42

3.1.2 Khối nút nhấn 44

3.1.3 Khối hiển thị LCD 44

3.1.4 Khối vi điều khiển PIC16F877A 46

3.2 CHƯƠNG TRÌNH ĐIỀU KHIỂN 48

3.2.1 phần code điều khiển 48

3.2.2 phần mô phỏng proteus 51

3.2.3 phần mô hình 52

CHƯƠNG 4: GIẢI THUẬT VÀ ĐIỀU KHIỂN 53

4.1 NGUYÊN LÝ LÀM VIỆC CỦA HỆ THỐNG 53

4.2 Lưu đồ giải thuật 54

CHƯƠNG 5 : THỰC NGHIỆM 55

5.1 Các bước tiến hành thực nghiệm 55

5.2 kết quả thực nghiệm 56

CHƯƠNG 6 : KẾT LUẬN 57

6.1 Ưu điểm: 57

6.2 Nhược điểm 57

6.3 Hướng phát triển 57

Trang 5

MỤC LỤC HÌNH

Hình 2.1: Cấu trúc vi điều khiển 12

Hình 2.2 : sơ đồ khối vi điều khiển PIC16F877A 15

Hình 2.3: Bộ nhớ chương trình PIV16F877A 17

Hình 2.4: Sơ đồ bộ nhớ dữ liệu PIC16F877A 19

Hình 2.5: Sơ đồ khối của Timer0 31

Hình 2.6: Sơ đồ khối của Timer 1 33

Hình 2.7: Sơ đồ khối Timer2 35

Hình 2.8: Cấu tạo LOADCELL 37

Hình 2.9: Cấu tạo mạch HX711 39

Hình 2.10: Màn hình LCD 16x2 40

Hình 2.11: Chức năng chân của LCD 41

Hình 3.1 : Khối cảm biến Loadcell 42

Hình 3.2 : Sơ đồ chân của LCD 45

Hình 3.3: Vi điều khiển PIC 16F877A 46

Hình 4.1 : LCD hiển thị thông tin 53

Hình 4.2 : Lưu đồ giải thuật 54

Hình 5.1: Mô hình 56

Trang 6

CHƯƠNG 1: TỔNG QUAN ĐỀ TÀI1.1 Giới thiệu đề tài

Ngày nay với những ứng dụng của khoa học kĩ thuật tiên tiến, thế giới của chúng ta đã và đang ngày một thay đổi, văn minh và hiện đại hơn Trong đó sự phát triển của kĩ thuật tự động hóa đã đóng góp vai trò quan trọng, tạo ra hàng loạt những thiết bị với các đặc điểm nổi bật như: sự chính xác, an toàn, tốc độ nhanh, gọn nhẹ Ý tưởng đề tài xuất phát từ bài toán thực tế là thiết kế hệ thống đo cân nặng, từ đó dựa vào thực tế để có những giá trị chính xác về cân nặng

Trong các máy móc thiết bị sử dụng trong cuộc sống hằng ngày đa phần có

sử dụng liên quan đến cân nặng như cân thực phẩm thức ăn mỗi ngày cho đến cân nặng của các giá trị khác, nếu sử dụng những loại cân không chính xác hay cân bị lệch dẫn đến ảnh hưởng người tiêu dung và bị thiệt hại về kinh tế gia đình và cũng như của xã hội Vì vậy ta cần thiết kế cân để kiểm tra cân nặng của vật mình mong muốn thật chính xác, thiết bị vận hành bền bỉ Để đáp ứng nhu cầu trên nên em

quyết định chọn đề tài “Đo và hiển thị khối lượng theo hiệu ứng LED” là đề tài

cho đồ án nhúng

Em đã kết hợp nhiều mạch điện tử cơ bản và và những phần tử trong chương trình giảng dạy, vận dụng nhiều kiến thức lý thuyết và kỹ năng thực hành của nhiều môn cơ sở để thiết kế mạch điện đo cân nặng và hiển thị theo LED

1.2 Mục đích nghiên cứu

- Dựa trên những kiến thức đã học lập trình PIC, tiến hành nghiên cứu cách sử dụng và

Trang 7

LED để thiết lập 1 hệ thống có thể ứng dụng vào đời sống hằng ngày cũng như trong công nghiệp ,…

1.3 Đối tượng nghiên cứu

- Nghiên cứu nguyên lý hoạt động và phướng pháp điều khiển PIC 16F877A

- Nghiên cứu phương pháp của bộ cảm biến cân nặng (LOADCELL, HX711)

- Nghiên cứu phương pháp đo và hiển thị giá trị nhiệt độ trên LCD và LED

- Phần mềm lập trình CCS

- Phần mềm mô phỏng PROTERUS

1.4 Phạm vi nghiên cứu

Ở góc độ là đồ án nhúng, hạn chế về mặt thời gian và kinh phí thực hiện nên phạm

vi nghiên cứu giới hạn ở việc lập trình PIC và mô phỏng hoạt động của mạch trong phần mềm trên máy tính với mô hình đơn giản

1.5 Dự đoán kết quả

Phần code đã cho kết quả hoạt động hiển thị chính xác kết quả trọng lượng

do cảm biến HX711 đo được và phần đọc kết quả cũng được thực hiện trên các thaotác do người dùng điều khiển

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT

Trang 8

2.1 TỔNG QUAN VỀ PIC 16F877A

2.1.1 Khái niệm và 1 vài thông tin về vi điều khiển PIC16F877A

Các dòng PIC

- PIC12xxxx: độ dài lệnh là 12 bit

- PIC16xxxx: độ dài lệnh là 14 bit

- PIC18xxxx: độ dài lệnh là 16 bit

C: PIC có bộ nhớ EEPROM

F: PIC có bộ nhớ flash

LF,LV: PIC có bộ nhớ flash hoạt động ở điện áp thấp

Nhưng điển hình có một số vi điều khiển có kí hiệu xxFxxx là EPROM nhưng nếu có thêm chữ A ở cuối thì nó là flash điển hình là PIC 16F877A

Trong khi lựa chọn các vi điều khiển chúng ta nên lựa chọn một cách phù hợp với nhu cầu của mình

- Đầu tiên là số chân PIC

- Thứ 2 nên chọn PIC có bộ nhớ flash để có thể nạp xóa chương trình được nhiều lần

- Thứ 3 chú ý đến các khối chức năng được tích hợp sẵn trong vi điều khiển, các chuẩn giao tiếp bên trong

Trang 9

Hình 2.1: Cấu trúc vi điều khiển Thông số bên ngoài:

- Có 35 chân I/O cho phép lựa chọn hướng độc lập:

+ Mỗi ngõ ra có thể nhận/cấp dòng lớn khoảng 25mA nên có thể trực tiếp điều khiển led

+ Có các port báo ngắt khi có thay đổi mức logic

+ Có các port có điện trở kéo lên bên trong có thể lập trình

+ Có ngõ vào báo thức khỏi chế độ công suất cực thấp

- Có module so sánh tương tự:

+ Có 2 bộ so sánh điện áp tương tự

Trang 10

+ Có module nguồn điện áp tham chiếu có thể lập trình

+ Có nguồn điện áp tham chiếu cố định có giá trị bằng 0,6V

+ Có các ngõ vào và các ngõ ra của bộ so sánh điện áp

+ Có bộ dao động công suất thấp có tần số 32kHz

- Có timer2: 8 bit hoạt động định thời với thanh ghi chu kỳ, có bộ chia trước

và chia sau

- Có module capture, compare và điều chế xung PWM+ nâng cao

+ Có bộ capture 16 bit có thể đếm được xung với độ phân giải cao nhất là 12,5ns + Có bộ điều chế xung PWM với số kênh ngõ ra là 1, 2 hoặc 4, có thể lập trình với tần số lớn nhất là 20kHz

+ Có ngõ ra PWM điều khiển lái

- Có module capture, compare và điều chế xung PWM

+ Có bộ capture 16 bit có thể đếm được xung với chu kỳ cao nhất là 12,5ns + Có

bộ so sánh 16 bit có thể so sánh xung đếm với chu kỳ lớn nhất là 200ns + Có bộ điều chế xung PWM có thể lập trình với tần số lớn nhất là 20kHz

Trang 11

- Có module truyền dữ liệu nối tiếp đồng bộ MSSP hổ trợ chuẩn truyền 3 dây SPI, chuẩn I2C ở 2 chế độ

2.1.2 Sơ đồ khối vi điều khiển PIC16F877A

Sơ đồ khối PIC16F877A:

Hình 2.2 : sơ đồ khối vi điều khiển PIC16F877A

- Có thanh ghi trạng thái (status register) cho biết trạng thái sau khi tính toán của khối ALU

- Có thanh ghi FSR

- Có khối ALU cùng với thanh ghi working hay thanh ghi A để xử lý dữ liệu

Trang 12

- Có khối giải mã lệnh và điều khiển (Instruction Decode and Control)

- Có khối dao động nội (Internal Oscillator Block)

- Có khối dao động kết nối với 2 ngõ vào OSC1 và OSC2 để tạo dao động

- Có khối các bộ định thời khi cấp điện PUT, có bộ định thời chờ dao động ổn định, có mạch reset khi có điện, có bộ định thời giám sát watchdog, có mạch reset khi phát hiện sụt giảm nguồn

- Có khối bộ dao động cho timer1 có tần số 32kHz kết nối với 2 ngõ vào T1OSI và T1OSO

- Có khối CCP2 và ECCP

- Có khối mạch gỡ rối (In-Circuit Debugger IDC)

- Có khối timer0 với ngõ vào xung đếm từ bên ngoài là T0CKI

- Có khối truyền dữ liệu đồng bộ/bất đồng bộ nâng cao

- Có khối truyền dữ liệu đồng bộ MSSP cho SPI và I2C

- Có khối bộ nhớ Eeprom 256 byte và thanh ghi quản lý địa chỉ EEADDR và thanh ghi dữ liệu EEDATA

- Có khối chuyển đổi tín hiệu tương tự sang số ADC

- Có khối 2 bộ so sánh với nhiều ngõ vào ra và điện áp tham chiếu

- Có khối các port A, B, C, E và D

2.1.3 Tổ chức bộ nhớ

Cấu trúc bộ nhớ vi điều khiển PIC16F877A bao gồm bộ nhớ chương trình (Programmemory) và bộ nhớ dữ liệu (Data Memmory)

Trang 13

2.1.3.1 Bộ nhớ chương trình (Program memory)

Bộ nhớ chương trình của vi điều khiển PIC16F877A là bộ nhớ flash, dung lượng bộ nhớ 8K word (1 word = 14 bit) và được phân thanh nhiều trang (từ page 0 đến page 3) Như vậy bộ nhớ chương trình có khả năng chứa được 8x1024 = 8192 lệnh (vì một lệnh sau khi mã hóa sẽ có dung lượng 1 word = 14 bit)

Để mã hóa được địa chỉ của 8K word bộ nhớ chương trình có dung lượng 3 bit (PC<12:0>)

Khi vi điều khiển được reset, bộ đếm chương trình sẽ chỉ đến địa chỉ 0000h (Reset vector) Khi có ngắt xảy ra, bộ đếm chương trình sẽ chỉ đến địa chỉ 0004h (Interrupt vector)

Bộ nhớ chương trình không bao gồm bộ nhớ stack và không được địa chỉ hóa bởi bộ đếm chương trình

Trang 14

Hình 2.3: Bộ nhớ chương trình PIV16F877A

2.1.3.2 Bộ nhớ dữ liệu (Data memory)

Bộ nhớ dữ liệu của PIC là bộ nhớ EEPROM được chia ra làm nhiều bank Đối với PIC16F877A bộ nhớ dữ liệu được chia ra làm 4 bank Mỗi bank có dung lượng 28 byte, bao gồm các thanh ghi có chức năng đặc biệt SFR (Special Function Register) nằm ở các vùng địa chỉ thấp và các thanh ghi mục đích chung GPR

(General Purpose Register) nằm ở vùng địa chỉ còn lại trong bank Các thanh ghi

Trang 15

SFR thường xuyên được sử dụng (ví dụ thanh ghi STATUS) sẽ được đặt ở tất cả cácbank của bộ nhớ dữ liệu giúp thuận tiện trong quá trình truy xuất và làm giảm bớt lệnh của chương trình Sơ đồ cụ thể của bộ nhớ dữ liệu PIC16F877A như sau:

Trang 16

Hình 2.4: Sơ đồ bộ nhớ dữ liệu PIC16F877A

2.1.3.2.1 Thanh ghi chức năng đặc biệt SFR

Đây là các thanh ghi được sử dụng bởi CPU hoặc được dùng để thiết lập và điều khiển các khối chức năng được tích hợp bên trong vi điều khiển Có thể phân thanh ghi SFR thành 2 loại: thanh ghi SFR liên quan đến các chức năng bên trong (CPU) và thanh ghi SFR dùng để thiết lập và điều khiển các khối chức năng bên ngoài (ADC, PWM, )

Thanh ghi STATUS (03h, 83h, 103h, 183h): thanh ghi chứa kết quả thực hiện phép toán của khối ALU, trạng thái reset và các bit chọn bank cần truy xuất trong bộ nhớ dữ liệu

Thanh ghi OPTION_REG (81h, 181h): thanh ghi này cho phép đọc và ghi, cho phép điều khiển chức năng pull-up của các chân trong PORTB, xác lập các tham số về xung tác động, cạnh tác động của ngắt ngoại vi và bộ đếm Timer0

Thanh ghi INTCON (0Bh, 8Bh, 10Bh,18Bh): thanh ghi cho phép đọc và ghi,chứa các bit điều khiển và các bit cờ hiệu khi Timer0 bị tràn, ngắt ngoại vi

RB0/INT và ngắt interrupt-on-change tại các chân của PORTB

Trang 17

Thanh ghi PIE1 (8Ch): chứa các bit điều khiển chi tiết các ngắt của các khối chức năng ngoại vi

Thanh ghi PIR1 (0Ch): chứa cờ ngắt của các khối chức năng ngoại vi, các ngắt này được cho phép bởi các bit điều khiển chứa trong thanh ghi PIE1

Thanh ghi PIE2 (8Dh): chứa các bit điều khiển ngắt của các khối chức năng CCP2, SSP bus, ngắt của bộ so sánh và ngắt ghi vào bộ nhớ EEPROM

Thanh ghi PIR2 (0Dh): chứa các cờ ngắt của các khối chức năng ngoại vi, các ngắt này được cho phép bởi các bit điều khiển chứa trong thanh ghi PIE2

Thanh ghi PCON (8Eh): chứa các cờ hiệu cho biết trạng thái các chế độ resetcủa vi điều khiển

2.1.3.2.2 Thanh ghi mục đích chung GPR

Trang 18

Các thanh ghi này có thể được truy xuất trực tiếp hoặc gián tiếp thông qua thanh ghi FSR (File Select Register) Đây là các thanh ghi dữ liệu thông thường, người sử dụng có thể tùy theo mục đích chương trình mà có thể dùng các thanh ghi này để chứa các biến số, hằng số, kết quả hoặc các tham số phục vụ cho chương trình

2.1.3.3 Stack

Stack không nằm trong bộ nhớ chương trình hay bộ dữ liệu mà là một vùng nhớ đặc biệt không cho phép đọc hay ghi Khi lệnh CALL được thực hiện hay khi một ngắt xảy ra làm chương trình bị rẽ nhánh, giá trị của bộ đếm chương trình PC

tự động được vi điều khiển cất vào trong stack Khi một trong các lệnh RETURN, RETLW hay RETFIE được thực thi, giá trị PC sẽ tự động được lấy ra từ trong stack, vi điều khiển sẽ thực hiện tiếp chương trình theo đúng quy trình định trước

Bộ nhớ stack trong vi điều khiển PIC họ 16Fxxxx có khả năng chứa được 8 địa chỉ và hoạt động theo cơ chế xoay vòng Nghĩa là giá trị cất vào bộ nhớ stack lần thứ 9 sẽ ghi đè lên giá trị cất vào stack lần đầu tiên và giá trị cất vào stack lần thứ 10 sẽ ghi đè lên giá trị cất vào stack lần thứ 2

Cần chú ý là không có cờ hiệu nào cho biết trạng thái stack, do đó ta không biết được khi nào stack tràn Bên cạnh đó tập lệnh của vi điều khiển dòng PIC cũng không có lệnh POP hay PUSH, các thao tác với bộ nhớ stack sẽ hoàn toàn được điều khiển bởi CPU

Trang 19

2.1.4 Các cổng xuất nhập của PIC16F877A

Cổng xuất nhập (I/O port) chính là phương tiện mà vi điều khiển dung để tương tác với thế giới bên ngoài Sự tương tác này rất đa dạng và thông qua quá trình tương tác đó thì chức năng vi điều khiển được thể hiện rõ ràng

Một cổng xuất nhập của vi điều khiển bao gồm nhiều chân I/O pin, tùy theo cách bố trí và chức năng của vi điều khiển mà số lượng cổng xuất nhập và số lượng chân của mỗi cổng có thể khác nhau Chức năng của từng chân xuất nhập hoàn toàn

có thể được xác lập và điều khiển thông qua thanh ghi SFR liên quan đến chân xuất nhập đó

Vi điều khiển PIC16F877A có 5 cổng xuất nhập, bao gồm PORTA, PORTB,PORTC, PORTD, PORTE Cấu trúc và chức năng của từng cổng xuất nhập cụ thểnhư sau:

2.1.4.1 Cổng PORTA

PORTA (RPA) gồm 6 I/O pin Đây là các chân “hai chiều” (bidirectional pin), nghĩa là có thể xuất và nhập được Chức năng I/O này được điều khiển bởi thanh ghi TRISA (địa chỉ 85h) Muốn xác lập chức năng của một chân trong

PORTA là input, ta “set” bit điều khiển tương ứng với chân đó trong thanh ghi TRISA và ngược lại, muốn xác lập chức năng của một chân trong PORTA là

output, ta “clear” bit điều khiển tương ứng với chân đó trong thanh ghi TRISA Thao tác này hoàn toàn tương đối với các PORT và các thanh ghi điều khiển tương ứng TRIS ( đối với PORTA là TRISA, PORTB là TRISB, PORTC là TRISC, ) Bên cạnh đó PORTA còn là ngõ ra của bộ ADC, bộ so 10 sánh, ngõ vào analog ngõvào xung clock của Timer0 và ngõ vào của bộ giao tiếp MSSP (Master

Synchronous Serial Port)

Trang 20

Các thanh ghi SFR liên quan đến PORTA gồm:

- PORTA: chứa giá trị các pin trong PORTA

- TRISA: điều khiển xuất nhập

- CMCON: thanh ghi điều khiển bộ so sánh

- CVRCON: thanh ghi điều khiển bộ so sánh điện áp

- ADCON1: thanh ghi điều khiển bộ ADC

• Chân RA0/AN0/ULPWU/C12IN0- (2): có 4 chức năng:

+ RA0: xuất/ nhập số – bit thứ 0 của port A

+ AN0: ngõ vào tương tự của kênh thứ 0

• Chân RA1/AN1/C12IN1- (3): có 3 chức năng:

+ RA1: xuất/nhập số – bit thứ 1 của port A

+ AN1: ngõ vào tương tự của kênh thứ 1

• Chân RA2/AN2/VREF-/CVREF/C2IN+ (4): có 5 chức năng:

+ RA2: xuất/nhập số – bit thứ 2 của port A

+ AN2: ngõ vào tương tự của kênh thứ 2

+ VREF-: ngõ vào điện áp chuẩn (thấp) của bộ ADC

+ CVREF: điện áp tham chiếu VREF ngõ vào bộ so sánh

• Chân RA3/AN3/VREF+/C1IN+ (5): có 4 chức năng:

+ RA3: xuất/nhập số – bit thứ 3 của port A

+ AN3: ngõ vào tương tự kênh thứ 3

Trang 21

+ C1IN+: ngõ vào dương của bộ so sánh C1

+ Chân RA4/TOCKI/C1OUT (6): có 3 chức năng:

• RA4: xuất/nhập số – bit thứ 4 của port A

+ TOCKI: ngõ vào xung clock từ bên ngoài cho Timer0

+ C1OUT: ngõ ra bộ so sánh 1

+ Chân RA5/AN4/ SS / C2OUT (7): có 4 chức năng:

+ RA5: xuất/nhập số – bit thứ 5 của port A

+ AN4: ngõ vào tương tự kênh thứ 4

+ SS : ngõ vào chọn lựa SPI tớ (Slave SPI device)

+ C2OUT: ngõ ra bộ so sánh 2

• Chân RA6/OSC2/CLKOUT (14): có 3 chức năng:

+ RA6: xuất/nhập số – bit thứ 6 của port A

+ OSC2: ngõ ra dao động thạch anh Kết nối đến thạch anh hoặc bộ cộng hưởng

• Chân RA7/OSC1/CLKIN (13): có 3 chức năng

+ RA7: xuất/nhập số – bit thứ 7 của port A

+ OSC1: ngõ vào dao động thạch anh hoặc ngõ vào nguồn xung ở bên ngoài

2.1.4.2 Cổng PORTB

PORTB (RPB) gồm 8 pin I/O Thanh ghi điều khiển xuất nhập tương ứng là TRISB Bên cạnh đó một số chân của PORTB còn được sử dụng trong quá trình nạp chương trình cho vi điều khiển với các chế độ nạp khác nhau PORTB còn liên quan đến ngắt ngoại vi và bộ Timer0 PORTB còn được tích hợp chức năng điện trởkéo lên được điều khiển bởi chương trình Các thanh ghi SFR liên quan đến

PORTB gồm:

- PORTB: chứa giá trị các pin trong PORTB

Trang 22

- TRISB: điều khiển xuất nhập

- OPTION_REG: điều khiển ngắt ngoại vi và bộ Timer0

• Chân RB0/AN12/INT (33): có 3 chức năng:

+ RB0: xuất/nhập số – bit thứ 0 của port B

+ AN12: ngõ vào tương tự kênh thứ 12

+ INT: ngõ vào nhận tín hiệu ngắt ngoài

+ Chân RB1/AN10/C12IN3- (34): có 3 chức năng:

• RB1: xuất/nhập số – bit thứ 1 của port B

+ AN10: ngõ vào tương tự kênh thứ 10

+ C12IN3-: ngõ vào âm thứ 3 của bộ so sánh C1 hoặc C2

+ Chân RB2/AN8 (35): có 2 chức năng:

• RB2: xuất/nhập số – bit thứ 2 của port B

+ AN8: ngõ vào tương tự kênh thứ 8

+ Chân RB3/AN9/PGM/C12IN2 (36): có 4 chức năng:

• RB3: xuất/nhập số – bit thứ 3 của port B

+ AN9: ngõ vào tương tự kênh thứ 9

+ PGM: Chân cho phép lập trình điện áp thấp ICSP +

C12IN1-: ngõ vào âm thứ 2 của bộ so sánh C1 hoặc C2 + Chân

RB4/AN11 (37): có 2 chức năng: • RB4: xuất/nhập số –

bit thứ 4 của port B

+ AN11: ngõ vào tương tự kênh thứ 11

+ Chân RB5/ AN13/T1G (38): có 3 chức năng:

• RB5: xuất/nhập số – bit thứ 5 của port B

Trang 23

+ T1G (Timer1 gate input): ngõ vào Gate cho phép time1 đếm dùng để đếm độ rộngxung

+ Chân RB6/ICSPCLK (39): có 2 chức năng:

• RB6: xuất/nhập số

+ ICSPCLK: xung clock lập trình nối tiếp

+ Chân RB7/ICSPDAT (40): có 2 chức năng:

• RB7: xuất/nhập số

+ ICSPDAT: ngõ xuất nhập dữ liệu lập trình nối tiếp

2.1.4.3 Cổng PORTC

PORTC (RPC) gồm 8 pin I/O Thanh ghi điều khiển xuất nhập tƯơng ứng là

TRISC Bên cạnh đó PORTC còn chứa các chân chức năng của bộ so sánh, bộ Timer1, bộ PWM và các chuẩn giao tiếp nối tiếp I2C, SPI, SSP, USART Các thanhghi điều khiển liên quan đến PORTC:

- PORTC (địa chỉ 07h): chứa giá trị các pin trong PORTC

- TRISC (địa chỉ 87h): điều khiển xuất nhập

• Chân RC0/T1OSO/T1CKI (15): có 3 chức năng:

+ RC0: xuất/nhập số – bit thứ 0 của port C

+ T1OSO: ngõ ra của bộ dao động Timer1

+ T1CKI: ngõ vào xung clock từ bên ngoài Timer1

• Chân RC1/T1OSI/CCP2 (16): có 3 chức năng:

+ RC1: xuất/nhập số – bit thứ 1 của port C

+ T1OSI: ngõ vào của bộ dao động Timer1

Trang 24

+ CCP2: ngõ vào Capture2, ngõ ra compare2, ngõ ra PWM2

• Chân RC2 /P1A/CCP1 (17): có 3 chức năng:

+ RC2: xuất/nhập số – bit thứ 2 của port C + P1A:

ngõ ra PWM

+ CCP1: ngõ vào Capture1, ngõ ra compare1, ngõ ra PWM1

• Chân RC3/SCK/SCL (18): có 3 chức năng: + RC3: xuất/nhập số – bit thứ 3 của port C

+ SCK: ngõ vào xung clock nối tiếp đồng bộ/ngõ ra của chế độ SPI

+ SCL: ngõ vào xung clock nối tiếp đồng bộ/ngõ ra của chế độ I2C

• Chân RC4/SDI/SDA (23): có 3 chức năng:

+ RC4: xuất/nhập số – bit thứ 4 của port C

+ SDI: ngõ vào dữ liệu trong truyền dữ liệu kiểu SPI

+ SDA: xuất/nhập dữ liệu I2C

• Chân RC5/SDO (24): có 2 chức năng:

+ RC5: xuất/nhập số – bit thứ 5 của port C

+ SDO: ngõ xuất dữ liệu trong truyền dữ liệu kiểu SPI

• Chân RC6/TX/CK (25): có 3 chức năng:

+ RC6: xuất/nhập số – bit thứ 6 của port C

+ TX: ngõ ra phát dữ liệu trong chế độ truyền bất đồng bộ USART

+ CK: ngõ ra cấp xung clock trong chế độ truyền đồng bộ USART

• Chân RC7/RX/DT (26): có 3 chức năng:

+ RC7: xuất/nhập số – bit thứ 7 của port C

+ RX: ngõ vào nhận dữ liệu trong chế độ truyền bất đồng bộ EUSART

+ DT: ngõ phát và nhận dữ liệu ở chế độ truyền đồng bộ EUSART

Trang 25

2.1.4.4 Cổng PORTD

PORTD (RPD) gồm 8 chân I/O, thanh ghi điều khiển xuất nhập tương ứng làTRISD PORTD còn là cổng xuất dữ liệu của chuẩn giao tiếp PSP (Parallel Slave Port) Các thanh ghi liên quan đến PORTD gồm:

- Thanh ghi PORTD: chứa giá trị các pin trong PORTD

- Thanh ghi TRISD : điều khiển xuất nhập

- Thanh ghi TRISE: điều khiển xuất nhập PORTE và chuẩn giao tiếp PSP

Trang 26

- PORTE: chứa giá trị các chân trong PORTE

- TRISE: điều khiển xuất nhập và xác lập các thông số cho chuẩn giao tiếp PSP

- SDCON1: thanh ghi điều khiển khối ADC

• Chân RE0/AN5 (8): có 2 chức năng:

+ RE0: xuất/nhập số

+ AN5: ngõ vào tương tự 5

• Chân RE1/AN6 (9): có 2 chức năng:

+ RE1: xuất/nhập số

+ AN6: ngõ vào tương tự kênh thứ 6

• Chân RE2/AN7 (10): có 2 chức năng:

+ RE2: xuất/nhập số

+ AN7: ngõ vào tương tự kênh thứ 7

• Chân RE3/ MCLR /VPP (1): có 3 chức năng:

+ RE3: xuất/nhập số – bit thứ 3 của port E

Trang 27

+ VPP: ngõ vào nhận điện áp khi ghi dữ liệu vào bộ nhớ nội flash + Chân

Đây là một trong ba bộ đếm hoặc bộ định thời của vi điều khiển

PIC16F877A Timer0 là bộ đếm 8 bit được kết nối với bộ chia tần số (prescaler) 8 bit Cấu trúc của Timer0 cho phép ta lựa chọn xung clock tác động và cạnh tích cực của xung clock Ngắt Timer0 sẽ xuất hiện khi Timer0 bị tràn Bit TMR0IE

(INTCIN) là bit điều khiển của Timer0 TMR0IE=1 cho phép ngắt Timer0 tác động,TMR0IF=0 không cho phép ngắt Timer0 tác động Sơ đồ khối của Timer0 như sau:

Hình 2.5: Sơ đồ khối của Timer0

Muốn Timer0 hoạt động ở chế độ Timer ta clear bit TOSC

Ngày đăng: 23/04/2022, 23:12

HÌNH ẢNH LIÊN QUAN

Hình 2.1: Cấu trúc vi điều khiển Thông số bên ngoài: - ĐO và HIỂN THỊ KHÔI LƯỢNG cân được THEO HIỆU ỨNG LED, có CODE
Hình 2.1 Cấu trúc vi điều khiển Thông số bên ngoài: (Trang 9)
Hình 2.3: Bộ nhớ chương trình PIV16F877A - ĐO và HIỂN THỊ KHÔI LƯỢNG cân được THEO HIỆU ỨNG LED, có CODE
Hình 2.3 Bộ nhớ chương trình PIV16F877A (Trang 14)
Hình 2.5: Sơ đồ khối của Timer0 - ĐO và HIỂN THỊ KHÔI LƯỢNG cân được THEO HIỆU ỨNG LED, có CODE
Hình 2.5 Sơ đồ khối của Timer0 (Trang 27)
Hình 2.6: Sơ đồ khối của Timer1. - ĐO và HIỂN THỊ KHÔI LƯỢNG cân được THEO HIỆU ỨNG LED, có CODE
Hình 2.6 Sơ đồ khối của Timer1 (Trang 29)
Hình 2.7: Sơ đồ khối Timer2 - ĐO và HIỂN THỊ KHÔI LƯỢNG cân được THEO HIỆU ỨNG LED, có CODE
Hình 2.7 Sơ đồ khối Timer2 (Trang 31)
Hình 2.8: Cấu tạo LOADCELL - ĐO và HIỂN THỊ KHÔI LƯỢNG cân được THEO HIỆU ỨNG LED, có CODE
Hình 2.8 Cấu tạo LOADCELL (Trang 33)
Hình 2.9: Cấu tạo mạch HX711 - ĐO và HIỂN THỊ KHÔI LƯỢNG cân được THEO HIỆU ỨNG LED, có CODE
Hình 2.9 Cấu tạo mạch HX711 (Trang 36)
Có rất nhiều loại LCD với nhiều hình dáng và kích thước khác nhau, dưới đây là loại LCD thông dụng: - ĐO và HIỂN THỊ KHÔI LƯỢNG cân được THEO HIỆU ỨNG LED, có CODE
r ất nhiều loại LCD với nhiều hình dáng và kích thước khác nhau, dưới đây là loại LCD thông dụng: (Trang 37)
Hình 2.11: Chức năng chân của LCD - ĐO và HIỂN THỊ KHÔI LƯỢNG cân được THEO HIỆU ỨNG LED, có CODE
Hình 2.11 Chức năng chân của LCD (Trang 39)
Hình 3. 2: Sơ đồ chân của LCD  Thông số kỹ thuật - ĐO và HIỂN THỊ KHÔI LƯỢNG cân được THEO HIỆU ỨNG LED, có CODE
Hình 3. 2: Sơ đồ chân của LCD Thông số kỹ thuật (Trang 43)
Hình 3.3: Vi điều khiển PIC16F877A - ĐO và HIỂN THỊ KHÔI LƯỢNG cân được THEO HIỆU ỨNG LED, có CODE
Hình 3.3 Vi điều khiển PIC16F877A (Trang 44)
Hình 3. 4: Mô phỏng proteus - ĐO và HIỂN THỊ KHÔI LƯỢNG cân được THEO HIỆU ỨNG LED, có CODE
Hình 3. 4: Mô phỏng proteus (Trang 49)
Hình 3. 5: Mô hình - ĐO và HIỂN THỊ KHÔI LƯỢNG cân được THEO HIỆU ỨNG LED, có CODE
Hình 3. 5: Mô hình (Trang 50)
Kết quả sẽ báo qua màn hình LCD và LED - ĐO và HIỂN THỊ KHÔI LƯỢNG cân được THEO HIỆU ỨNG LED, có CODE
t quả sẽ báo qua màn hình LCD và LED (Trang 51)
Hình 4. 2: Lưu đồ giải thuật - ĐO và HIỂN THỊ KHÔI LƯỢNG cân được THEO HIỆU ỨNG LED, có CODE
Hình 4. 2: Lưu đồ giải thuật (Trang 52)

TỪ KHÓA LIÊN QUAN

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

w