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

Mạch đếm sản phẩm sử dụng PIC 18F877A

37 4,4K 27
Tài liệu đã được kiểm tra trùng lặp

Đ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 37
Dung lượng 1,27 MB

Nội dung

Các hệ thống tự động được xây dựng nhằm mục đích phục vụ cho lĩnh vực sản xuất đặc biệt là sảnxuất với số lượng lớn và ngay khi vừa mới đưa vào thử nghiệm thì nó đã chứng tỏđược ưu thế c

Trang 1

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

KHOA KĨ THUẬT ĐIỆN TỬ 1

ĐẶNG ANH QUYỀN NGUYỄN SƠN LÂM GVHD : NGUYỄN NGỌC MINH Lớp : D11XLTH

Khóa : 2011-2016

Hệ : Chính quy

Trang 2

MỤC LỤC

CHƯƠNG I: 1

GIỚI THIỆU VI ĐIỀU KHIỂN PIC 16F877A 1

1 Tổng quan về PIC 16f877a: 1

2 Vi điều khiển PIC16F877A 1

2.1 Tổ chức phần cứng : 1

2.2 Tính năng cơ bản của PIC16F877A: 2

2.3 Sơ đồ khối và tính năng các chân của PIC 16F877A 3

2.4 Tổ chức bộ nhớ 5

2.5 Các bộ định thời 11

2.6 ADC 14

CHƯƠNG II 16

GIỚI THIỆU VỀ CÁC LINH KIỆN KHÁC 16

1 IC 7447 16

1.1 Sơ đồ chân và chức năng của các chân 16

1.2 Cấu tạo và sử lý tín hiệu của IC 7447 16

2 IC 7805 19

3 Led 7 đoạn 19

4 Điện trở: 21

5 Tụ điện 23

6 IC LM358 24

7 Led hồng ngoại 24

7.1 Led phát hồng ngoại 24

7.2 Led thu hồng ngoại 25

CHƯƠNG III 26

THIẾT KẾ VÀ THI CÔNG 26

1 Sơ đồ khối 26

2 Sơ đồ nguyên lý 26

3 Mạch in 27

4 Thiết kế phần mềm 28

KẾT LUẬN 30

Tài liệu tham khảo: 30

Trang 3

LỜI NÓI ĐẦU

Ngày nay khoa học kỹ thuật đã có những bước tiến rất nhanhchóng ở các quốc gia trên toàn thế giới nói chung và Việt Nam nóiriêng Ngành tự động hóa đã, đang và sẽ tiếp tục có những đóng góp

to lớn cho tình hình phát triển chung đó Một trong những thành tựucủa ngành tự động hóa là việc cho ra đời các hệ thống sản xuất tựđộng thay thế con người Điều này đã giúp tăng hiệu suất lao động

và tăng năng suất sản xuất cho các nhà máy, xí nghiệp Các hệ thống

tự động được xây dựng nhằm mục đích phục vụ cho lĩnh vực sản xuất đặc biệt là sảnxuất với số lượng lớn và ngay khi vừa mới đưa vào thử nghiệm thì nó đã chứng tỏđược ưu thế của mình thông qua các con số thống kê về số lượng thành phẩm mà dâychuyền tự động thực hiện được so với số thành phẩm do nhân công tạo ra

Trên cơ sở đó, nhằm để có thể phát huy những kiến thức đã học cũng như tíchluỹ thêm kinh nghiệm trong thiết kế mạch chúng em đã chọn đề tài: “ Mạch đếm sảnphẩm sử dụng PIC” Mục đích chính của đồ án là thiết kế một hệ thống tự động có thểcho biết năng suất của dây chuyền sản xuất trong một nhà máy Đồ án được thực hiệndựa trên 3 yêu cầu là mạch phải đơn giản, rẻ tiền và có tính khả thi Từng công đoạnthực hiện cũng như giới thiệu về cơ sở lý thuyết để thiết kế nên mạch sẽ lần lượt đượcgiới thiệu cụ thể trong những phần sau của đồ án

Việc làm đồ án đã giúp cho chúng em có thêm được nhiều kiến thức bổ ích vềthực tế, bổ sung những kiến thức đã được học ở nhà trường

Tuy nhiên, do còn hạn chế về kinh nghiệm thực tế, tài liệu tham khảo, thời gianthực hiện, nên đồ án không thể tránh khỏi những thiếu sót, kính mong giáo viên hướngdẫn góp ý xây dựng để đồ án được hoàn thiện hơn

Trang 4

CHƯƠNG I:

GIỚI THIỆU VI ĐIỀU KHIỂN PIC 16F877A

1 Tổng quan về PIC 16f877a:

PIC là viết tắt của “Programable Intelligent Computer”, cóthể tạm dịch là “máy tính thông minh khả trình” do hãngGenenral Instrument đặt tên cho vi điều khiển đầu tiên của họ.PIC1650 được thiết kế để dùng làm các thiết bị ngoại vi cho viđiều khiển CP1600 Vi điều khiển này sau đó được hãngMicrochip nghiên cứu phát triển thêm và từ đó hình thành nêndòng vi điều khiển PIC ngày nay

Cách phân lọai PIC theo chữ cái:

Các họ PIC xxCxxx được đưa vào một nhóm, gọi là OPT(One Time Programmable) : chúng ta chỉ có thể nạp chươngtrình cho nó một lần duy nhất Nhóm thứ hai có chữ F hoặcLF:chúng ta gọi nhóm này là nhóm Flash ,nhóm này cho phépghi xóa nhiều lần bằng các mạch điện tử thông thường

Cách phân lọai PIC theo hai con số đầu tiên của sản phẩm:

 Loại thứ nhất là dòng PIC cơ bản (Base_line), gồmcác PIC 12Cxxx, có độ dài lệnh 12 bit

 Loại thứ hai là dòng PIC 10F, 12F , 16F, gọi là dòngphổ thông (Mid Range), có độ dài lệnh là 14 bit

 Loại thứ ba là dóng PIC 18F (High End) , độ dài lệnh

là 16 bit

PIC 16F877A là dòng PIC phổ biến nhất , đủ mạnh về tính

năng, bộ nhớ đủ cho các ứng dụng thông thường

2 Vi điều khiển PIC16F877A

Trang 5

2.1 Tổ chức phần cứng :

Tổ chức phần cứng của một vi điều khiển có thể thiết kếtheo một trong hai kiến trúc: Harvard và Von Neumann.Tổchức phần cứng của PIC16F877A được thết kế theo kiến trúcHarvard

Hình 1.1: Kiến trúc Harvard và Von Neumann

Trên hình vẽ ta thấy, ở cấu trúc Von Neumann thì bộ nhớchương trình và bộ nhớ dữ liệu nằm chung trong một bộ nhớ.CPU truy cập vào hai bộ nhớ này thông qua một bus, vì vậymột thời điểm CPU chỉ có thể truy cập vào một trong hai bộnhớ

Đối với cấu trúc Harvard, bộ nhớ dữ liệu và bộ nhớ chươngtrình được tổ chức riêng Do đó, cùng một thời điểm, CPU cóthể tương tác với cả hai bộ nhớ, như vậy tốc độ xử lý của viđiều khiển sẽ nhanh hơn

Vì PIC16F877A được thiết kế với kiến trúc Harvard nên nó

có tập lệnh rút gọn RISC (reduced instruction set computer)

nên tập lệnh của PIC16F877A không có lệnh nhân, chia màphép nhân và chia thay bằng thực hiện liên tiếp nhiều phépcộng và trừ do đó chỉ cần lệnh ADD và lệnh SUBB là đủ

Trang 6

2.2 Tính năng cơ bản của PIC16F877A:

Đây là vi điều khiển thuộc họ PIC16Fxxx với tập lệnh gồm

35 lệnh có độ dài 14 bit Mỗi lệnh đều được thực thi trong mộtchu kì xung clock Tốc độ hoạt động tối đa cho phép là 20 MHzvới một chu kì lệnh là 200ns Bộ nhớ chương trình 8Kx14 bit, bộnhớ dữ liệu 368 byte RAM và bộ nhớ dữ liệu EEPROM với dunglượng 256byte Số PORT I/O là 5 với 33 pin I/O

Các đặc tính ngoại vi bao gồm các khối chức năng sau:

Timer0: bộ đếm 8 bit với bộ chia tần số 8 bit.

Timer1: bộ đếm 16 bit với bộ chia tần số, có thể thực

hiện chức năng đếm dựa vào xung clock ngoại vi ngay khi viđiều khiển hoạt động ở chế độ sleep

Timer2: bộ đếm 8 bit với bộ chia tần số, bộ postcaler.

Hai bộ Capture/so sánh/điều chế độ rông xung

Các chuẩn giao tiếp nối tiếp SSP (Synchronous SerialPort), SPI và I2C

Chuẩn giao tiếp nối tiếp USART với 9 bit địa chỉ

Cổng giao tiếp song song PSP (Parallel Slave Port) với cácchân điều khiển RD, WR, CS ở bên ngoài

Bộ nhớ flash với khả năng ghi xóa được 100.000 lần

Bộ nhớ EEPROM với khả năng ghi xóa được 1.000.000lần

Dữ liệu bộ nhớ EEPROM có thể lưu trữ trên 40 năm

Khả năng tự nạp chương trình với sự điều khiển của phầnmềm

Trang 7

Nạp được chương trình ngay trên mạch điện ICSP (InCircuit Serial Programming) thông qua 2 chân.

Watchdog Timer với bộ dao động trong

Chức năng bảo mật mã chương trình

Chế độ Sleep

Có thể hoạt động với nhiều dạng Oscillator khác nhau

2.3 Sơ đồ khối và tính năng các chân của PIC 16F877A 2.3.1 Sơ đồ khối

Hình 1.2: Sơ đồ khối PIC 16F877A

Như đã nói ở trên , vi điều khiển PIC có kiến trúc Harvard,trong đó CPU truy cập chương trình và dữ liệu được trên haibus riêng biệt, nên làm tăng đáng kể băng thông so với kiếntrúc Von Neumann trong đó CPU truy cập chương trình và dữ

Trang 8

liệu trên cùng một bus Việc tách riêng bộ nhớ chương trình

và bộ nhớ dữ liệu cho phép số bit của từ lệnh có thể khác với

số bit của dữ liệu Ở PIC 16F877A, từ lệnh dài 14 bit, từ dữliệu 8 bit

PIC 16F877A chứa một bộ ALU 8 bit và thanh ghi làm việc

WR (working register) ALU là đơn vị tính toán số học vàlogic, nó thực hiên các phép tình số và đại số Boole trênthanh ghi làm việc WR và các thanh ghi dữ liệu ALU có thểthực hiện các phép cộng, trừ, dịch bit và các phép toán logic

2.3.2 Sơ đồ chân và tính năng các chân

Hình 1.3: Sơ đồ chân PIC 16F877A

Chức năng của các ports:

RA0-5 : Cổng giao tiếp 2 chiều A

RB1-7 : Cổng giao tiếp 2 chiều B

RB0/INT : Cổng giao tiếp 2 chiều Chân ngắt ngoài ( External InterrupPin)

RC0-7 : Cổng giao tiếp 2 chiều C

Trang 9

RD0-7 : Cổng giao tiếp 2 chiều D.

RE0-2 : Cổng giao tiếp 2 chiều E

AN0-7 : Cổng giao tiếp tương tự

8192 lệnh (vì một lệnh sau khi mã hóa sẽ có dung lượng 1word (14 bit)

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ộ đếmchươ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 11

Hình 1.4: Bộ nhớ chương trình PIC16F877A

2.4.2 Bộ nhớ dữ liệu

Bộ nhớ dữ liệu được chia thành 4 bank, mỗi bank có dunglượng 128 byte RAM tĩnh Mỗi bank bao gồm các thanh ghi có

chức năng đặc biệt SFR (Special Function Register) nằm ở

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ỉ cao Các

thanh ghi SFR thường xuyên được sử dụng như STATUS,INTCON, FSR được bố trí trên tất cả các bank giúp thuận tiệntrong quá trình truy xuất

Trang 12

Hình 1.5: Sơ đồ tổ chức bộ nhớ dữ liệu PIC16F877A

* Stack

Stack không nằm trong bộ nhớ chương trình hay bộnhớ dữ liệu mà là một vùng nhớ đặc biệt không cho phépđọc hay ghi

Trang 13

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ộ đếmchương trình PC tự động được vi điều khiển cất vào trongstack Khi một trong các lệnh RETURN, RETLW hat RETFIEđược thực thi, giá trị PC sẽ tự động được lấy ra từ trongstack, vi điều khiển sẽ thực hiện tiếp chương trình theođúng qui trình định trước

Bộ nhớ Stack trong vi điều khiển PIC họ 16F87xA 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 bộ nhớ Stack lần thứ 10 sẽ ghi đè lên giá trị cất

Vi điều khiển PIC16F877A có 5 cổng xuất nhập, bao gồmPORTA, PORTB, PORTC, PORTD và PORTE

Trang 14

Hình 1.6 Cấu trúc cơ bản của chân port.

Port A.

PORTA bao gồm 6 I/O pin ( RA0 –RA5) Đâ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 trongPORTA 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ăngcủa một chân trong PORTA là output, ta “clear” bit điều khiểntương ứng với chân đó trong thanh ghi TRISA

Chân RA4 dùng chung với lối vào xung nhịp cho timer0khi dùng bộ đếm xung từ bên ngoài

Các chân khác của cổng A được ghép lối vào của các bộ sosánh tương tự và bộ biến đổi ADC 8 kênh

Port B.

PORTB (RPB) gồm 8 pin I/O (RB0 – RB7) Thanh ghi điềukhiể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ạpchươ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

Trang 15

PORTB còn được tích hợp chức năng điện trở kéo lên (20kohm) được điều khiển bởi chương trình.

Chân RB0 có thể lựa chọn là lối vào của ngắt ngoài Extint

Có 3 chân của cổng B được ghép lối với chức năng ICSP làRB6, RB7, RB3 tương ứng với lối vào PGC, PGD, LVP khi nạptrình.Lối vào RB4 và RB7 làm phát sinh ngắt RBIF khi thay đổitrạng thái khi các chân này định nghĩa là các lối vào Trạngthái hiện tại của lối vào này được so sánh với trạng thái đượcchốt lại tại lần đọc trước đó Khi có sự khác nhau thì cờ ngắtRBIF được lập

Port C.

PORTC (RPC) gồm 8 pin I/O (RC0 – RC7) Thanh ghi điềukhiển xuất nhập tương ứng là TRISC Bên cạnh đó PORTC cònchứ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

2.5 Các bộ định thời

2.5.1 Timer 0.

•Bộ đếm 8 bit

Trang 16

•Ghi/đọc được.

•Có bộ chia 8 bit lập trình được

•Chọn xung nhịp bên ngoài hoặc bên trong

•Sinh ngắt TOIF khi tràn chuyền từ FFh→ 00h

•Chọn sườn xung khi lấy xung nhịp từ bên ngoài

Timer0 dùng làm bộ đếm xung nhịp của vi điều khiển vểtạo ra một bộ đếm thời gian Chế độ đếm thời gian được chọnbằng cách đặt bit T0CS = 0 (bit OPTION<5>) Trong các chế

độ đếm thời gian, thanh ghi TMR0 tăng một đơn vị sau mỗichu kỳ máy Thanh ghỉ TMR0 có thể được ghi đọc trongchương trình để xác lập hoặc lấy giá trị hiện thời của timer0

Hình 1.7 : Sơ đồ khối Timer0.

Timer0 dùng để đếm các xung từ bên ngoài cấp vào chânRA4 Chế độ đếm xung được chọn bằng cách đặt T0CS = 1.Trong chế độ này thanh ghi Timer0 tăng một đơn vị sau mỗisườn lên hoặc sườn xuống tùy thuộc vào trạng thái của bitT0SE

Trang 17

Bộ chia trước được dùng chung cho hai khối watchdog vàTimer0 Việc gắn bộ chia trước cho khối nào được chọn bằng bítPSA(OPTION<3>) Hệ số chia phụ thuộc giá trị của bitPS2:PS1:PS0 của thanh ghi OPTION.

Ngắt timer0 xảy ra khi thanh ghi TMR0 tràn, chuyển từFFh→00h Sự tràn này sẽ đặt bít T0IF = 1 Ngắt T0IF có thể chebằng bit T0IE Cờ T0IF phải được xóa bằng phần mềm

Hình 1.8 :Sơ đồ khối của Timer1

Trang 18

2.5.3 Timer 2.

Timer2 là bộ định thời 8 bit và được hỗ trợ bởi hai bộ chiatần số prescaler và postscaler Thanh ghi chứa giá trị đếmcủa Timer2 là TMR2 Bit cho phép ngắt Timer2 tác động làTMR2ON (T2CON<2>) Cờ ngắt của Timer2 là bit TMR2IF(PIR1<1>) Xung ngõ vào (tần số bằng ¼ tần số oscillator)được đưa qua bộ chia tần số prescaler 4 bit (với các tỉ số chiatần số là 1:1, 1:4 hoặc 1:16 và được điều khiển bởi các bitT2CKPS1:T2CKPS0 (T2CON<1:0>))

Ngoài ra ngõ ra của Timer2 còn được kết nối với khối SSP,

do đó Timer2 còn đóng vai trò tạo ra xung clock đồng bộ chokhối giao tiếp SSP

Timer0 và Timer2 là bộ đếm 8 bit (giá trị đếm tối đa làFFh), trong khi Timer1 là bộ đếm 16 bit (giá trị đếm tối đa làFFFFh) Timer0, Timer1 và Timer2 đều có hai chế độ hoạtđộng là timer và counter Xung clock có tần số bằng ¼ tần sốcủa oscillator Xung tác động lên Timer0 được hỗ trợ bởiprescaler và có thể được thiết lập ở nhiều chế độ khác nhau(tần số tác động, cạnh tác động) trong khi các thông số củaxung tác động lên Timer1 là cố định Timer2 được hỗ trợ bởihai bộ chia tần số prescaler và postcaler độc lập, tuy nhiêncạnh tác động vẫn được cố định là cạnh lên Timer1 có quan

hệ với khối CCP, trong khi Timer2 được kết nối với khối SSP

Trang 19

Hình 1.9 Sơ đồ khối của Timer 2

ADC (Analog to Digital Converter) là bộ chuyển đổi tín hiệugiữa hai dạng tương tự và số PIC16F877A có 8 ngõ vào analog(RA4:RA0 và RE2:RE0) Hiệu điện thế chuẩn VREF có thể đượclựa chọn là VDD, VSS hay hiệu điện thể chuẩn được xác lập trênhai chân RA2 và RA3 Kết quả chuyển đổi từ tín tiệu tương tựsang tín hiệu số là 10 bit số tương ứng và được lưu trong haithanh ghi ADRESH:ADRESL

Các thanh ghi liên quan đến bộ chuyển đổi ADC bao gồm:-INTCON (địa chỉ 0Bh, 8Bh, 10Bh, 18Bh): cho phép các ngắt(các bit GIE, PEIE)

-PIR1 (địa chỉ 0Ch): chứa cờ ngắt AD (bit ADIF)

-PIE1 (địa chỉ 8Ch): chứa bit điều khiển AD (ADIE)

-ADRESH (địa chỉ 1Eh) và ADRESL (địa chỉ 9Eh): các thanhghi chứa kết quả chuyển đổi

-ADCON0 (địa chỉ 1Fh) và ADCON1 (địa chỉ 9Fh): xác lập cácthông số cho bộ chuyển đổi

-PORTA (địa chỉ 05h) và TRISA (địa chỉ 85h): liên quan đếncác ngõ vào analog ở PORTA

-PORTE (địa chỉ 09h) và TRISE (địa chỉ 89h): liên quan đếncác ngõ vào analog ở PORTE

Trang 20

Hình 1.10 Sơ đồ khối ADC

CHƯƠNG II GIỚI THIỆU VỀ CÁC LINH KIỆN KHÁC

1 IC 7447

1.1 Sơ đồ chân và chức năng của các chân.

Chân 1,2,6,7 tín hiệu ngõ vào

Chân 3 hiển thị số 0

Trang 21

Chân 4 kiểm tra led 7 đoạn.

Chân 5 chốt trạng thái trước đó

Chân 8 nối nguồn GND

Chân 9,10,11,12,13,14,15 là mức logic ngõ ra

Chân 16 nối nguồn dương VCC

 Sơ đồ chân của IC 7447 như sau :

Hình 2.1 Sơ đồ chân IC 7447

1.2 Cấu tạo và sử lý tín hiệu của IC 7447

IC 7447 là IC giải mã led 7 đoạn.IC này thuộc họ TTL.Nó nhận tính hiệu BCD từ ngõ ra QA,QB,QC,QD của IC 7490 để giải

mã ra led 7 đoạn

Cấu tạo của IC 7447 như sau :

Ngày đăng: 12/10/2015, 10:33

TỪ KHÓA LIÊN QUAN

w