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

Mạch tự động trả lời điện thoại ứng dụng vi điều khiển PIC

112 569 0
Tài liệu được quét OCR, nội dung có thể không chính xác
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 112
Dung lượng 3,89 MB

Nội dung

Mạch tự động trả lời điện thoại ứng dụng vi điều khiển PIC

Trang 1

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

TRƯỜNG ĐH DL KỸ THUẬT CÔNG NGHỆ TP.HCM

KHOA ĐIỆN - ĐIỆN TỬ

NGÀNH ĐIỆN TỬ VIÊN THÔNG

LUẬN VĂN TỐT NGHIỆP

ĐỀ TÀI:

MẠCH TỰ ĐỘNG TRA LOI DIEN THOẠI ỨNG DỤNG VI ĐIỀU KHIỂN PIC

Trang 2

MỤC LỤC

Trang

ời mở đầu 3

TÓM TẮT ĐỀ TÀI 4

PHẦN I : CƠ SỞ LÝ THUYẾT 5

'HƯƠNG I : GIỚI THIỆU TỔNG QUAN HỌ VI ĐIỀU KHIỂN PIC 6

I.1 Lịch sử phát triển 6

1.2 Cac dic điểm 6

1.3 Phân loại 7

HƯƠNG II : KIẾN TRÚC PHẦN CỨNG PIC 16F84A 8

IL1 Giới thiệu PIC16F84A 8

II2 Sơ đỗ bố trí chân 10

II3 Sơ đô khối 11

11.4 Cau tao b6 dao dong 14

II.5 Hoat d6ng RESET 17

I6 Tổ chức bộ nhớ 19 s* Bộ đếm chương trình ( PC ) 32 % Ngăn xếp ( STACK) 32 +» Chế độ địa chỉ 34 I.7.Cấu trúc cổng LO 36 II.8 Bộ định thời (TMR0) 45

II.9 Watchdog Timer 48

11.10 Ngat 48

'HƯƠNG II : TỔNG ĐÀI ĐIỆN THOẠI 51

III.1 So ludc vé su phat triển của tổng đài 51

IIL2 Giới thiệu 52

IH.2.1 Đinh nghĩa 52

III2.2 Phân loại 52

IIL3 Sơ đồ khối tổng đài điện thoại 54

II.3.1 Khối chuyển mạch 55

Trang 3

II3.3 Khối điều khiển 56 TIII.3.4 ngoại vi thuê bao và trung kế 57

II.4 Báo hiệu trong tổng đài - 58 CŒHƯƠNG IV : KHÁI QUÁT CHUNG VÉ MÁY ĐIỆN THOẠI 63

IV.1 Nguyên tắc cấu tạo máy điện thoại 63 IV.2 Chức năng tổng quát của máy điện thoại 63 IV.3 Phân loại các kiểu điện thoại 64

IV.4 Yêu cầu về mạch điện máy điện thoại 65

(HUONG V : UNG DUNG PIC 16F84A THIET KE VA THI CONG

MẠCH GHI ÂM ĐIỆN THOAI 66

V.1 Sơ đồ khối và nguyên lý hoạt động của hệ thống 66

V.2 Giới thiệu các IC sử dụng trong mạch 69

PHAN 2: TINH TOAN VA THI CONG T1

CHƯƠNG VI : THIẾT KẾ CHI TIẾT 78

VI.1 Mạch nguồn 78 VI.2 Mạch cảm biến chuông 78

VI.3 Mach diéu khién Relay 80

VI.4 Mạch tạo tải giả 81

VI.5 Mach Hybrid va Mach loc 83

VI.6 Mach phat hién Busy Tone 87

VI.7 Mach thu & phát tiếng nói 90

VI.8 Mạch khuếch đại công suất âm tần 92

VI.9 Mạch điều khiển trung tâm 92

CHUONG VII : LƯU ĐỒ GIẢI THUẬT 93

KẾT LUẬN 109

HƯỚNG PHÁT TRIỂN ĐỀ TÀI 110

Trang 4

Mạch Tự Động Trả Lời Điện Thoại Ứng Dung Ho Vi Điều Khiển PIC

Lời mở đầu

Từ giữa những năm 80 đến nay công nghệ chế tạo linh kiện bán dẫn có những phát triễn đậm nét để hỗ trợ cho sự phát triễn của công nghệ thông tin, và sự tự

động hóa trong công nghiệp, Với độ tích hợp ngày càng cao, công suất tiêu tán bé hơn, thơng minh hơn nó đã làm thay đổi hấn cấu trúc của nên công nghiệp hiện tại

Bước vào đầu thế ky 21 kỹ thuật điện tử vi điện tử sẽ là “Chiếc chìa khóa kỹ

thuật“ cho các nước trên thế giới bước vào kỷ nguyên mới_ kỷ nguyên của công

nghệ thông tin

Tuy chỉ mới thâm nhập vào nước ta nhưng công nghệ thông tin đã phát triễn rất nhanh và ngày càng giữ vai trò quan trọng trong nền công nghiệp nước nhà Hệ thống viễn thông, dịch vụ khách hàng, thông tin di động, nhắn tin càng phát triễn với tính hiện đại và tự động hóa ngày càng cao

Trong quyển luận văn này em muốn trình bày loại “Mạch Tự Động Trả Lời

Điện Thoại“, đây là loại mạch có rất nhiều ứng dụng trong thực tế và đã được các hãng điện tử lớn sản xuất và tung ra thị trường

Do kiến thức còn non kém, kinh nghiệm ít ỏi và thời gian có hạn, chắc chắn

rằng tập luận văn này ít nhiều không thể tránh khỏi thiếu sót, kính mong q thầy

cơ và bạn bè vui lòng bổ qua và đóng góp ý kiến để tập luận văn ngày càng hoàn thiện hơn

Cuối cùng em xin chân thành cám ơn thầy Phạm Hùng Kim Khánh người đã nhiệt tình hướng dẫn và giúp đỡ em trong suốt thời gian làm để tài để luận văn của em được hoàn thành với thời gian sớm nhất và hoàn chỉnh nhất

Trang 5

-3-Mạch Tự Động Trả Lời Điện Thoại Ứng Dụng Họ Vi Điều Khién PIC

TÓM TẮT ĐỀ TÀI

Đề tài khảo sát Chip vi điều khiển mới họ PIC Cụ thể là chip PIC16F84A, và ứng dụng vào thiết kế, thi công mạch ghi âm điện thoại

Đề tài này được chia thành 7 chương với nội dung chính như sau : Chương 1: Giới thiệu tổng quan họ vi điều khiển PIC

Chương 2: Kiến trúc phần cứng của PIC16F84A Chương 3: Tổng đài điện thoai

Chương 4: Khái quát chung về máy điện thoại

Chương 5: Ứng dụng PIC16F84A thiết kế và thi công mạch ghi âm

điện thoại

Chương 6 : Thiết kế chỉ tiết Chương 7 : Lưu đồ giải thuật

Trang 6

-4-Mạch Tự Động Trả Lời Điện Thoại Ung Dung Ho Vi Diéu Khién PIC

PHAN 1:

CO SO LY THUYET

Trang 7

Mạch Tự Động Trả Lời Điện Thoại Ứng Dụng Họ Vi Điều Khién PIC

CHUONG I : GIGI THIEU TONG QUAN

HO VI DIEU KHIEN PIC

I.1 Lịch sử phát triển

Họ vi điều khiển PIC là tên viết tắt cia Programmable Intelligent Computer

— “Máy tính thơng minh khả trình “ do hãng General Instrument sản xuất và con vi

điều khiển đầu tiên là PIC1650 Con vi điểu khiển này là mẹ đẻ của tất cả các vi

điều khiển họ PIC sau này

Về sau họ vi điểu khiển này được hãng Microchip tiếp tục phát triển và hiện nay các sản phẩm vi điểu khiển PIC đã có gần 100 loại sản phẩm từ họ 10Fxxx đến các họ 12Cxxx, 12Fxxx, 16Cxx, 17Cxx, l6Fxx, 16Fxxx, 16FxxxA, 16LFxxxA,

18Fxxx, 18LFxxx, 18Fxxxx, 18LFxxxx

1.2 Các đặc điểm

PIC là họ vi điều khiển có rất nhiều chủng loại, từ các đòng sản phẩm cơ ban

thích hợp với những ứng dụng nhỏ đến các dòng sản phẩm phổ thông và cao cấp, các sản phẩm này có nhiễu chân xuấtnhập hơn các dong cơ bản và nó tích hợp nhiều thiết bị ngoại vi như : bộ chuyển đổi tín hiệu tương tự sang số ( ADC : Analog-To-Digital Converter ), truyền nối tiếp với hai chuẩn là MSSP ( Master

Synchronous Serial Port ) và USART ( Universal Synchronous Asynchronous

Receiver Transmitter ), truyền song song với PSP ( Parallel Slave Port ) Mặc dù có nhiều loại nhưng chúng đều có những đặc tính chung sau :

e_ Có thể giao tiếp với thiết bị ngoại vi thông qua các chân xuất/nhập e Có thể điểu khiển các chân xuất nhập mà không làm ảnh hưởng tới

sự hoạt động của bộ vi xử lý

e St dung công nghệ CMOS làm giảm dòng tiêu thụ, thời gian chuyển

mạch nhanh

e_ Có tính ổn định cao

Bộ nhớ chương trình : dùng để lưu trữ mã chương trình, tuỳ từng loại FLASH : gồm các sản phẩm xxFxxx

_ OTP : gồm các sản phẩm 14000, 16Cxxx, I6HV540

ROM/ROMIess : gồm các sẵn phẩm 16CRxxx, 18C601, 18C801

SVTH: Lê Nguyễn Hoàng Trinh | -6-

Trang 8

Mạch Tự Động Trả Lời Điện Thoại Ung Dung Ho Vi Điều Khién PIC

Kích thước bộ nhớ chương trình (Bytes): tuỳ từng loại mà có kích thước bộ nhớ khác nhau từ 0,5K đến 256K

1.3 Phân loại

Dựa vào độ dài của từ lệnh, họ vi điều khiển PIC này có thể chia thành 3 loại sau:

e Dong PIC co ban ( Base — Line )

gồm cdc PIC 12Cxxx Các PIC thuộc loại này có độ dài lệnh là 12 bit

e Dòng PIC phổ thông ( Mid - Range )

gồm các dòng PIC 10F, 12F va 16, loại này có độ dài lệnh 1a 14 bit

e Dòng PIC High- End

gồm các dòng PIC 18, loại này có độ dài lệnh là 16 bit

Trang 9

Mạch Tự Động Trả Lời Điện Thoại Ứng Dung Ho Vi Diéu Khién PIC

CHƯƠNG II : KIẾN TRÚC PHẦN CỨNG PIC16F84A

I1 Giới thiệu PIC16F84A

PIC16F84A là một vi điều khiển 8 bit sử dụng cấu trúc RISC ( Reduced Instruction Set Computer = Máy tính có tập lệnh rút ngọn ) Các bus dữ liệu và lệnh riêng biệt theo cấu trúc Harvard cho phép từ lệnh có độ dài 14 bít trong khi một từ dữ liệu có độ dài 8 bit Vùng ngăn xếp có độ sâu 8 mức và độc lập với bộ nhớ RAM

Các đặc điểm + Có 35 lệnh đơn

+ Mỗi lệnh được thực hiện trong một chu kỳ máy ( ngoại trừ các lệnh rẽ nhánh được thực hiện trong hai chu kỳ máy )

+ Bộ nhớ chương trình : 1024 từ, mỗi từ có độ dài 14 bit

+ Bộ nhớ dữ liệu RAM : 68 byte, mỗi byte có độ dài 8 bit

+ Bộ nhớ dữ liệu EEPROM : 64 byte, mỗi byte có độ đài § bit

+ 16 thanh ghi có chức năng đặc biệt

+ 13 chân xuất/nhập được chia thành 2 port Port A có 5 chân, port B có 8 chân

+ Có 4 nguồn ngắt

e Ngắt ngoài trên chan RBO/INT

e Hoan thành việc ghi dữ liệu vào EEPROM

e Ngắt tràn của bộ định thời TMRO

e Port B thay d6i trạng thái trên các chân RB< 7:4 >

Các tính năng

+ PIC16F84A có thể giao tiếp và điểu khiển thiết bị ngoại vi thông qua các chân xuất/nhập

+ Có thể đáp ứng các mạch đòi hỏi thời gian thực

+ Sử dụng công nghệ CMOS nên dòng sử dụng thấp 20mA + Có thể lựa chọn bộ dao động

+ Reset

Trang 10

Mạch Tự Động Trả Lời Điện Thoại Ung Dung Ho Vi Dieu Khién PIC

Chức năng Reset PIC trong khi nguồn cung cấp chưa ổn định Khi bật nguồn thì bộ dao động thạch anh lúc đầu chưa ổn định do đó ở thời gian đầu cần

phải Reset PIC cho đến khi bộ dao động thạch anh ổn định Có hai bộ định thời làm trễ lúc bật điện, một là bộ định thời khởi động bộ dao động, hai là

Power-up Timer (PWRT) cung cấp khoảng trễ cố định là 72 ms chỉ khi bật

điện

e Power-on Reset (POR)

e Power-up Timer (PWRT)

se Bộ định thời khởi động bộ dao động

+ Ngắt |

+ Watchdog Timer (WDT)

Chế độ Watchdog Timer chỉ được chọn hoặc tắt thông qua các bit cấu hình

Chức năng này dùng để Reset PIC hay đánh thức PIC ( khi ở chế độ SLEEP)

sau một khoảng thời gian + Chế độ SLEEP

Khi chế độ này được thực hiện nó làm cho PIC ngưng xử lý chương trình ứng

dụng Chế độ này đưa PIC vào trạng thái nghỉ tạm thời với một dòng tiêu thụ

rất thấp Có thể cho PIC hoạt động trở lại bằng 3 cách : reset tại chân MCLR

, cho bộ Watchdog timer hoạt động, dùng ngắt ngoài + Sự bảo vệ mã

+ Chế độ lập trình nối tiếp ICSP ( In-Cicuit Serial Programming )

11.2 So đồ bố trí chân

PIC16F84A có tất cả 18 chân thường được tìm thấy là loại DỊP 18 nhưng cũng có thể tìm thấy loại SMD, loại này có kích thước nhỏ hon DIP DIP 1a ti viết tắt của Dual In Package, SMD là từ viết tắt của Surface Mount Devices

Trang 11

-9-Mạch Tự Động Trả Lời Điện Thoại Ứng Dụng Họ Vi Điều Khién PIC q RA2 +—+ [7] # TB]+—+ RAI

RAI +—o [7 iT] +—» RAO

RA4/TOCKI 4——> [1T = l§]+— OSC1/CLKIN

NILR —>+[d oO iB] —> OSC2/CLKOUT ¥ss —+ [BE] = IBỊx~—— Yoo

RBũ/IMT «—» GB] 2 3] ——» RB?

RB! +—+[T 7> lm+ «R88

Ra2 +» Ti} «—» RBS

RB3Ầ +—+ [8] I]+—> RB4 TOP VIEW

Hinh 1 : Sơ đồ bố trí chân PIC16F84A

Ý nghĩa các chân :

Chân 1: RA2 Chân thứ hai của port A, là chân nhập/xuất

Chân 2: RA3 Chân thứ ba của port A, là chân nhập/xuất

Chân 3: RA4/T0CKT Chân thứ tư của port A, là chân nhập/xuất TOCKI chọn

ngõ vào Clock tới bộ định thời TMRO

Chân 4: MCLR Ngõ vào Reset vi điều khiển, tích cực mức thấp và còn dùng để lập trình cho vi điểu khiển với điện áp lập trình

là 12V

Chân 5: Vss Chân nối mass

Chân 6: RB0/INT Chân thứ 0 của port B, là chân xuất/nhập, ngoài ra cịn có chức năng là chân ngắt ngoài

Chân 7:RB1 Chân thứ nhất của port B, là chân nhập/xuất

Chân 8:RB2 Chân thứ hai của port B, là chân nhập/xuất

Chân 9:RB3 Chân thứ ba của port B, là chân nhập/xuất

Chân 10:RB4 Chân thứ tư của port B, là chân nhập/xuất Chân 11:RB5 Chân thứ năm của port B, là chân nhập/xuất

Chân 12:RB6 Chân thứ sáu của port B, là chân nhập/xuất Khi lập trình nó là đường “clock'

Chân 13:RB7 Chân thứ bảy của port B, là chân nhập/xuất Khi lập

trình nó là đường dữ liệu Chân 14:Vpp Chân cung cấp nguồn +5V Chân 15:OSC2/CLKOUT Chân nối tới bộ dao động

Chân 16:OSC1/CLKOUT Chân nối tới bộ dao động

Chân 17:RA0 Chân thứ 0 của port A, là chân xuất/nhập

Chân 18:RA1 Chân thứ nhất của port A, là chân xuất/nhập

SVTH: Lê Nguyễn Hoàng Trinh - 10-

Trang 12

Mạch Tự Động Trả Lời Điện Thoại Ứng Dụng Họ Vi Điều Khién PIC

I3 SƠ ĐỒ KHỐI

Power-up instruction Povver-oa Reset o oo : hy MCLR - Vao.Vss ORGtGLKN

Hình 2 : Sơ đồ khối PIC16F84A e_ Đơn vi xử lý trung tâm ( Central Processing Unit) CPU

Don vị xử lý trung tâm ( CPU ) là bộ não của vi điều khiển, nó có nhiệm vụ

phát hiện và tìm nạp thứ tự lệnh cần để thực hiện, mã hoá lệnh đó và cuối

cùng nó cho lệnh này thực hiện

Trang 13

Mạch Tự Động Trả Lời Điện Thoại Ứng Dung Ho Vi Diéu Khién PIC Data Bus ox Xm h RAM File Registers (f) a

RAM Address Bus 7

L Rais

Direct Adressing if Í[ indirect

Adressing FSR reg F—= | |

| Hình 2.1 : Sơ đỗ khối CPU

CPU kết nối với tất cả các bộ phận của vi điều khiển tạo thành một khối

thống nhất Chức năng quan trọng nhất của CPU là đọc và giải mã các lệnh chương trình Khi ta viết một chương trình, chương trình này bao gồm các dòng lệnh ví dụ MOVLW 0x20 Tuy nhiên, vi điều khiển sẽ không hiểu các

ký tự này mà nó chỉ làm việc với các trạng thái “0° và “1”, vì vậy ta cần một

chương trình biên dịch các dòng lệnh này thành dãy “0° và “1' như là chương

trình biên dịch hợp ngữ Như vậy khi nạp vào bộ nhớ chương trình nó sẽ được CPU giải mã thành các lệnh Khi các lệnh này chỉ định sự chuyển tiếp dữ liệu từ bộ nhớ này đến bộ nhớ khác, từ bộ nhớ lên các port hoặc một vài sự

tính tốn khác, CPU phải được kết nối với tất cả các bộ phận của vi điểu

khiển, sự kết nối này được thực hiện qua bus dữ liệu và bus địa chỉ

e Don vi sé học — logic ( Arithmetic Logic Unit) ALU

ALU thực hiện các thao tác như cộng, trừ, di chuyển ( trái hay phải trong một thanh ghi ) và các phép logic cơ bản PIC16F84A bao gồm một ALU 8 bit và thanh ghi W § bit

SVTH: Lê Nguyễn Hoàng Trinh -12-

Trang 14

Mạch Tự Động Trả Lời Điện Thoại Ứng Dụng Họ Vi Điều Khién PIC

STATUS | B = 7 2 Lad 1 Say MUX U7 J] {| NEY — 2 và ^ < "

Hình 2.2 : Sơ đồ khối ALU

Ở các lệnh có hai tốn hạn, thơng thường 1 toán hạn là thanh ghi W và toán

hạn kia có thể là một hằng số hoặc là một trong các thanh ghi GPR hay SER

GPR- General Purposes Registers là các thanh ghi mục đích chung và SER-

Special Function Registers 14 c4c thanh ghi cé chifc nang đặc biệt

Ở các lệnh có một toán hạn, toán hạn này có thể là thanh ghi W hoặc một

thanh ghi khác Khi một phép cộng trong hoạt động số học và logic, ALU điểu khiển các bit trạng thái ( các bit này trong thanh ghi trạng thái “STATUS)) Sự thực hiện của một vài lệnh sẽ ảnh hưởng đến các bit trạng thái Sự ảnh hưởng này phụ thuộc vào kết quả của lệnh đó, ALU có thể ảnh

hưởng đến giá trị của các bit C (Carry), DC (Digit Carry), Z (Zero) trong thanh ghi trạng thái (STATUS)

e Thanh ghi chi lénh ( Instruction Register)

Thanh ghi này chứa mã lệnh đọc từ bộ nhớ chương trình Khi thực hiện việc

ghi mã lệnh từ bộ nhớ chương trình tới thanh ghi chỉ lệnh thì địa chỉ của mã

lệnh này được đọc từ bộ đếm chương trình

e_ Giải mã và điều khiển lệnh (Instruction Decode & Control)

Khối này có nhiệm vụ giải mã nội dung của thanh ghi chỉ lệnh thành lệnh và

nó thi hành theo nội dung của lệnh đó e Thanh ghi W ( W reg)

Trang 15

-13-Mạch Tự Động Trả Lời Điện Thoại Ứng Dụng Họ Vi Điều Khiển PIC

Đây là thanh ghi làm việc, nó dùng để lưu trữ tạm thời nội dung của ALU Thanh ghi W cần thiết cho các hoạt động tính tốn Nội dung của thanh ghi này có thể được chuyển đến các thanh ghi khác và ngược lại, nó cũng được sử dụng để điều khiển cổng I/O

II.4 Cấu tạo bộ dao động

Mạch dao động dùng để cung cấp cho vi điểu khiển một dao động xung clock Nó cần thiết cho vi điều khiển có thể thực hiện một chương trình hay một lệnh của

chương trình

Các loại đao động

PICI6F84A có thể làm việc với 4 cấu hình dao động khác nhau Người lập trình có thể chọn cấu hình dao động khi lập trình PIC hoặc chọn bằng 2 bit cấu hình

FOSC1 va FOSCO

e LP tinh thể nguồn thấp

e XT tinh thể/cộng hưởng

e HS tinh thể tốc độ cao/cộng hưởng

e RC điện trở/ tụ điện

Bộ dao động tỉnh thể / hộp cộng hưởng bằng gốm :

Trong kiểu XT, LP hoặc HS một tinh thể thạch anh gồm có hai chân thường được giữ trong vỏ bọc bằng kim loại được nối tới các chân OSC1/CLKIN và

OSC2/CLKOUT theo kiểu song song Hai tụ loại ceramic có trị số bằng nhau một chân được nối mass chan con lại nối với tỉnh thể được trình bày như hình sau

|| + 16 SC1/CLKIN ct Cy 7" PIC16F84A ih 1 Sbsc2/cLKOUT 0 C2

Hình 3 : Sơ đồ kết nối bộ đao động tỉnh thể

Bộ dao động tỉnh thể và tụ điện có thể gộp chung trong một vỏ bọc bằng

gốm với 3 chân, được gọi là hộp cộng hưởng Chân ở giữa được nối mass, hai chân còn lại được nối đến chân OSC1 và OSC2 của vi điều khiển Khi thiết kế một thiết bị, theo nguyên tắc là phải đặt bộ tạo dao động gần con vi điều khiển để tránh

nhiễu trên đường mạch khi con vi mạch đang nhận clock

Trang 16

Mạch Tự Động Trả Lời Điện Thoại Ứng Dụng Họ Vi Điều Khién PIC

Hình 4 : Kết nối bộ cộng hưởng tới vi điều khiển

Ngoài ra trong các kiểu XT, LP hoặc HS, thiết bị có thể sử dụng một nguồn clock

ngoài để điều khiển chân OSC1/CLKIN

Clock from O8C1

#1 Systam PICIGEXX Open ~4-——-| OSC2

Hình 5 : Kết nối với nguồn xung clock bên ngoài

Bảng lựa chọn tụ cho bộ dao động tinh thể

Kiểu | Tầnsố | OSCI1/CI OSC2/C2 LP 32kHz | 68-100pF | 68-100 pF 200 kHZ | 15-33 pF 15-33 pF XT | 100kHz | 100-150 pF | 100-150 pF 2 MHz 15-33 pF 15-33 pF 4 MHz 15-33 pF 15-33 pF HS 4 MHz 15-33 pF 15-33 pF 20 MHz | 15-33 pF 15-33 pF

Khi điện dung cao hơn sẽ làm tăng thêm sự vững vàng của bộ dao động nhưng thời gian khởi động cũng tăng

Trang 17

Mạch Tự Động Trả Lời Điện Thoại Ứng Dụng Họ Vi Điều Khién PIC

Bộ tạo dao động RC

Bộ dao động RC thường được dùng trong những ứng dụng không cần thời

gian chính xác Tần số cộng hưởng của bộ dao động RC được quyết định bởi mức

điện áp nguồn, điện trở R, tụ điện C và nhiệt độ hoạt động

Von ft pgs {fe C PICS rad we+ - OSCZALKOUT Cload4a

Note: This pin can be configurad as inputoulput pin

Hình 6 : Cấu tạo bộ dao động RC

Hình 6 biểu diễn cách nối bộ dao động RC với PIC16F84A Với giá trị của

điện trở R dưới 2,2K bộ dao động có thể bắt đầu không ổn định, hoặc nó có thể ngưng dao động Với giá trị rất cao của điện trở R ( ví dụ 1M) bộ dao động rất dễ bị

hỏng bởi tạp nhiễu và độ ẩm Điện trở R nên chọn giá trị nằm trong khoảng 3K đến

100K Mặc dù bộ dao động làm việc khơng có một tụ điện bên ngoài, nhưng để tránh tạp nhiễu và cho mạch ổn định nên mắc một tụ 20pE hoặc lớn hơn Một clock

của bộ dao động được phân biệt bởi 4 chu kỳ Bộ dao động clock phân biệt bởi 4

chu kỳ cũng có thể thu được ở chân OSC2/CLKOUT, và cũng có thể dùng để thử hay đồng bộ các mạch logic

Các chu kỳ máy

Một chu kỳ máy của PIC16F84A gồm có 4 trạng thái được đánh số từ Q1

đến Q4 mỗi trạng thái chiếm 1 chu kỳ của bộ dao động Như vậy một chu kỳ máy

chiếm 4 chu kỳ của bộ dao động hay 1 ¿s nếu tân số của bộ dao động là 4MHz

Q1: 02; G3: 04:01: G2; 3; 04; a1; 02: G3; 04;

Tev 4 Tev2 Teva |

Hình 7 : Mối quan hệ giữa nguồn clock và chu kỳ lệnh

Sau khi cấp nguồn, bộ dao động bắt đầu dao động Ở chu kỳ đầu tiên sự dao

động không ổn định nhưng sau đó vài chu kỳ nó bắt đầu hoạt động bình thường

Trang 18

Mạch Tự Động Trả Lời Điện Thoại Ứng Dụng Họ Vi Điều Khién PIC

+5V Voltage av

Crystal start up time

Hình 8 : Tín hiệu của bộ dao động sau khi cấp nguồn

Để ngăn chặn bộ dao động hoạt động khơng chính xác khi cấp nguồn có thể

ảnh hưởng đến sự thực hiện chương trình của vi điều khiển, nên reset vi điều khiển

trong suốt thời gian làm ổn định bộ dao động

IL5 Hoạt động RESET

PIC16F84A có các nguồn RESET sau :

e Reset trong thdi gian md nguén Power — On Reset ( POR)

e Reset trong thời gian thao tác bình thường bằng cách tác động mức 0° tới

chân MCLR cia vi diéu khién

e Reset 6 chan MCLR trong thời gian thực hién ché d6 SLEEP e Reset khi Watchdog Timer (WDT) tran ở chế độ bình thường

e Reset khi WDT tran 6 ché 46 SLEEP

Chân MCLR thường được nối qua một điện trở tới Vpp, điện trở này có giá tri trong

khoảng 5 đến 10k khi mang một mức ‘0’ téi chan nay thi PIC sẽ được Reset

Điều kiện Reset cho bộ đếm chương trình ( PC ) và thanh ghi STA TUS

Điều kiện PC | Thanh ghi

STATUS

POR 000h_ | 0001 1xxx

MCLR Reset ở thời gian thao tác bình thường 000h | 000u uuuu

MCLR Reset khi dang 6 ché d6 SLEEP 000h | 0001 0uuu

Reset bằng WDT (ở thời gian hoạt động bình thường ) | 000h_ | 0000 luuu

WDT Wake-up PC + I | uuuO0 Ouuu

Ngắt ngoài ở thời gian thực hiện chế độ SLEEP PC +1 | uuul Ouuu

Chú thích: u: không thay đổi

x : không biết

Trang 19

-17-Mạch Tự Động Trả Lời Điện Thoại Ứng Dụng Họ Vi Điều Khién PIC

Khi dùng ngắt ngoài ở thời gian thực hiện chế độ SLEEP nếu bit GIE được

set thì PC được nạp với địa chỉ 004h

Điều kiện Reset các thanh ghi

Thanh ghi Địa Power-on | MCLR Reset trong : | Wake-up từ chỉ Reset - Hoạt động bình SLEEP :

thudng - Thơng qua

- Chế độ SLEEP ngắt ngoài

WDT Reset trong - Thông qua thời gian thao tác tràn WDT bình thường

W - XXXX XXXX UUUU uuuu UUUU Uuuuu

INDF 00h | — | -— —- we eee

TMRO 01h | xxxx xxxx UUUU uuuu uuuu uuuu

PCL 02h | 0000 0000 0000 0000 PC + 19 STATUS 03h | 0001 1xxx 000q quuu uuug quuu

FSR 04h XXXX XXXX UUUU uuuu UUUU uuuu

PORTA 05h -~-X XXXX ~-~U uuuu -u uuuu

PORTB 06h | XxXxx Xxxx UUUU uuuu uuuu uuuu

EEDATA O8h XXXX XXXX uuuu uuuu UUUU UUUU

EEADR 09h XXXX XXXX UUUU uuuu UUUU uuuu

PCLATH OAh -0 0000 -0 0000 ~==U Uuuu

INTCON 0Bh | 0000 000x 0000 000u uuuu uuuu?)

INDF 80h | — freee reef wee eee

OPTION_REG | 81h 1111 1111 1111 1111 uuuu uuuu PCL 82h | 0000 0000 0000 0000 PC + 12 STATUS 83h | 0001 1xxx 000g quuu uuug quuu

FSR 84h | XXXX XXxx UUUU uuuu UUUU uuUU

TRISA 85h -1 1111 -11111 -U Uuuuu

TRISB 86h 11111111, 1111 1111 uuuu uuuu

EECONI 88h -0 x000 -0 q000 -0 uuuu

EECON2 89h | | ———— | —————-

PCLATH 8Ah -0 0000 -0 0000 ~=-ủ UUUU

INTCON 8Bh | 0000 000u 0000 000u uuuu uuuu®)

Ghi chú : u= không thay đổi x = không biết

- = bit không dùng đọc như “0°

q = giá trị được quyết định trên điều kiện

Trang 20

-Mạch Tự Động Trả Lời Điện Thoại Ứng Dụng Họ Vi Điều Khién PIC

Chú ý : (1) một hay nhiều bit trong thanh ghi INTCON sẽ bị ảnh hưởng ( do thực hiện Wake-up)

(2) khi WAKE-up được thực hiện bằng ngắt ngoài và bit GIE được set thì PC

được nạp với vecto ngắt 004h II.6 Tổ chức bộ nhớ

PIC16F84A c6 hai khối nhớ riêng biệt, đó là bộ nhớ dữ liệu và bộ nhớ

chương trình , bộ nhớ EEPROM với các thanh ghi GPR và SFR trong bộ nhớ RAM

nằm trong khối nhớ dữ liệu, bộ nhớ FLASH nằm trong khối nhớ chương trình

——* EEDATA _ a

48 Addres EEPROM for

Stack level 1 con data 6¢xd

Stack level 2 or a ; Oo - < : : th ‘ rai uUl TL—T—T—T—T—~] ä StaEk,level B Program ——~^._n Address _ counter 4

Bus | Data Bua P€z12:0>

[| i J Address Address Ravat addres ñ0Dũ0h 00h NBF— NO 80h

Oth TMRO OPTION 81h

02h PCL PCL 82h

03h STATUS STATUS 83h

lraarrupl waco address ñDñ4h 04h FER FER Bah

05h PORTA THEA 85h Accessing

OGh PORTS TRISA 86h these 07h locations

Program memory ~ O8h EEDATA EECON1 das the 102414 —— 09h EEADR EECGND = same resuit

OAh PGLATH PCLATH regardizss - ph INTCON INTEON of the bank

: fram which

i : we are

i 68 bytes RAM memor' : making an

: vi Ya : access

registers :

¡ÁP chị

sun Doh Unimplemen ted -— memory focations, by reading them we aways 1FFFh 7Fh FFh get 0" Bankd Bank LÚ ———— Ị OT - JJRmn JJmo||- |- |- [- |- ] STATUS register 4 2 A 4 ° ged ~f

Hình 9 : Tổ chức bộ nhớ của vi điều khiển PIC16F84A

Trang 21

-19-Mạch Tự Động Trả Lời Điện Thoại Ứng Dung Ho Vi Diéu Khién PIC

II.6.1 Khối nhớ chương trình

oo00h

I004h

Hình 10 : Tổ chức bộ nhớ chương trình

Bộ nhớ chương trình dùng cơng nghệ FLASH, đặc điểm của bộ nhớ FLASH

là dữ liệu trong bộ nhớ sẽ không bị mất đi khi tắt nguồn và nó cho phép ghi lại nhiều lần nhưng số lần ghi lại được giới hạn là 1000 lần

Bộ nhớ FLASH được dùng để lưu chương trình, khơng gian sử dụng bộ nhớ là 1024 từ, 1 từ có chiều dài là 14 bit (1024 Word x 14 bit) Địa chỉ của bộ nhớ FLASH từ O000h đến 03FFh

Địa chỉ 0000h : vectơ Reset ( Reset Vector ) Khi có một diéu kién Reset xảy

ra do mở nguồn, bằng WDT (Watchdog timer) hay một vài nguồn Reset khác, chương trình sẽ bắt đầu từ địa chỉ này

Địa chỉ 0004h : vectơ ngắt (Interrupt Vector) Khi có một điểu kiện ngắt xảy ra do thanh ghi TMRO tràn khi cho phép ngắt tràn của bộ định thời hoặc do một

nguồn ngắt ngồi, chương trình sẽ thực hiện lệnh tại địa chỉ này

Như vậy không gian sử dụng chương trình sẽ bắt đầu từ địa chỉ 0005h đến

03FFh

Địa chỉ 0400h đến 1FFFh : không gian bộ nhớ này không được sử dung Địa chỉ 2007h : địa chỉ này chứa những bit cấu hình

Những bit cấu hình

Những bit cấu hình có thể được lập trình (đọc như “0') hoặc khơng được lập

trình (đọc như “1') để chọn lựa các cấu hình thiết bị như các bit cho phép Power-up

Timer và WD'T cũng như các bit chọn bộ dao động Những bit này được ánh xạ đến

SVTH: Lê Nguyễn Hoàng Trinh - 20 -

Trang 22

Mạch Tự Động Trả Lời Điện Thoại Ứng Dụng Họ Vi Diéu Khién PIC

ô nhớ 2007h Địa chỉ 2007h ở bên ngoài phạm vi sử dụng bộ nhớ chương trình và nó

thuộc về trường hợp đặc biệt / cấu hình của không gian bộ nhé (2000h — 3FFFh)

Không gian này chỉ có thể truy cập trong thời gian lập trình

CP PWRTE | WDTE | FOSC1 | FOSCO

Bit13 4 3 bit 0

Bit 13-4: CP: Code Protection 1 = không được mã bảo vệ

0 = tất cả bộ nhớ chương trình được mã bảo vệ Bit 3 : PWRTE Power-up Timer Enable bit

1 = không cho phép Power-up Timer 0 = cho phép Power-up Timer

Bit 2 : WDTE : Watchdog Timer Enable bit = cho phép chifc nang Watchdog Timer

0 = không cho phép chức năng Watchdog Timer

Bit1-0 : FOSC1-FOSCO Oscillator Selection bits 11 = dao động RC 10 = dao động HS 01 = dao động XT 00 = dao động LP

IL6.2 Khối nhớ dữ liệu

Khối nhớ dữ liệu bao gồm bộ nhớ dữ liệu và bộ nhớ EEPROM

| TRUONG BHDL-KTCN

THƯ VIÊN n

\SỐ_4Q4U9/042 _ | ae

Trang 23

Mạch Tự Động Trả Lời Điện Thoại Ứng Dụng Họ Vi Điều Khién PIC

H.6.2.a Bộ nhớ dữ liệu

File Address File Address

00h | indirect addr} | Indireeteddrf? | gon

01h TMRO OPTION _REG | 8th

02h PCL PCL 82h

03h STATUS STATUS gân 04h FSR FSR 84h 05h PORTA TRISA @Sh 08h | PORTB - TRISB 89h 7n oo ae em 08h EEDATA EECONI 88h | 09h EEADR | EECON2Đ 89h |

QOAh PCLATH PCLATH 8Ah

OBh INTCON INTCON 8Bh

Och 8Ch 68 general Mapped (accesses) Regeters in Bank 0 4Fh | —_ - _ CFh 50h Do ôn DOh BankQ - Bank 1

[J Unimplemented data memory location; read as ‘0’,

Note 1: Nota physical register

Hình 11 : Tổ chức bộ nhớ dữ liệu

Bộ nhớ dữ liệu gồm các thanh ghi file RAM (Random Access Memory-bộ

nhớ truy xuất ngẫu nhiên), đữ liệu trong các thanh ghi này sẽ bị mất khi tắt nguồn

Trang 24

-22-Mạch Tự Động Trả Lời Điện Thoại Ứng Dụng Họ Vi Điều Khiến PIC

Bộ nhớ dữ liệu có tất cả là 256 byte (00h đến FFh) được chia thành 2 bank,

mỗi bank có 128 byte Bank 0 ở dia chỉ 00h đến 7Fh trong đó các byte có địa chỉ từ

50h đến 7Fh và byte ở địa chỉ 07h không được sử dụng và nó đọc như “0° Bank 1 ở địa chỉ 80h đến FFh trong đó các byte có địa chỉ từ D0h đến FFh và byte ở địa chỉ

87h không được sử dụng và nó đọc như “0° Khi muốn truy xuất đến một thanh ghi

trong bộ nhớ dữ liệu thì trước tiên phải chọn bank chứa thanh ghi đó, việc chọn bank này được qui định trong thanh ghi STATUS ở địa chỉ 03h và 83h Các thanh

ghi trong bộ nhớ đữ liệu có thể được truy xuất trực tiếp bằng địa chỉ tuyệt đối của

mỗi thanh ghi hoặc gián tiếp qua thanh ghi FSR (File Select Register) Địa chỉ gián

tiếp sử dụng giá trị hiện thời của bit RPO trong thanh ghi STATUS để truy xuất vào trong vùng bank của bộ nhớ dữ liệu

Bộ nhớ dữ liệu được phân thành 2 phần :

e _ Phần 1 gồm 12 byte đầu tiên của mỗi bank được gọi là SFR ( Special

Funstion Registers — các thanh ghi chức năng đặc biệt ) và được dùng

để ghi lại trạng thái hoạt động của PIC như là điều khiển chọn chế độ

cổng ngõ vào hay ngõ ra Có 16 thanh ghi khác nhau trong SFR (11

thanh ghi trong bank 0 và 5 thanh ghi trong bank 1 ) Nội dung của

mỗi thanh ghi được quản lý bởi PIC Mặc dù có tổng cộng là 24 thanh

ghi nhưng một vài thanh ghi nằm trong cả 2 bank Khi viết chương trình cần quan tâm đến việc chọn bank nhớ khi truy xuất đến các

thanh ghi này

e _ Phần 2 gồm 68 byte từ địa chỉ 0Ch đến 4Fh được gọi là GPR ( General

Purpose Registers — Các thanh ghi mục đích chung ) dùng để lưu trữ

kết quả và điều kiện trong khi chương trình đang chạy Nội dung của

GPR trong 2 bank là như nhau, vì thế khi truy xuất đến các thanh ghi

này không cần thực hiện việc chọn bank nhớ, tổng dung lượng của

RAM là 68 byte Nội dung của GPR bị mất khi tắt nguồn và khơng có

giới hạn số lần ghi dữ liệu

Trang 25

Mạch Tự Động Trả Lời Điện Thoại Ứng Dung Họ Vi Điều Khién PIC

Nội dung các thanh ghỉ có chức năng đặc biệt SEFR

Địa | Tên |Bit7|Bi6 |Bit5 | Biu4 | B3 | B2 | Bí BitO | Value on

chi Power-on

RESET

Bank 0

00h | INDE Sử dụng nội dung của SFR tới địa chỉbộnhớdữlệu | -

01h | TMRO 8-bit Real-Time Clock/Counter XXXX XXXX

02h | PCL Đặt 8 bịt thấp của bộ đếm chương trình (PC)

03h | STATUS | IRP | RP1 | RPO | 7O | PD Z DC C 0001 1xxx

04h FSR Dia chỉ bộ nhớ dữ liệu gián tiếp pointer 0 XXXX XXXX

05h | PORTA | - | - |RA4 | RA3 | RA2 | RAI RAO = X XXXX TOCKI

06h | PORTB | RB7| RB6 | RBS | RB4 | RB3 | RB2 | RBI | RBO/INT | xxxxxxxx

Ø7h - Đọc như “0” - 08h | EEDATA Thanh ghi dit ligu EEPROM XXXX XXXX

09h | EEADR Thanh ghi địa chỉ EEPROM XXXX XXXX

OAh | PCLATH | - - - Bộ đệm ghi cho 5 bit trén PC -0 0000

OBh | INTCON | GIE | EEIE | TOIE | INTE | RBIE | TOIF | INTF | RBIF_ | 00000000

Bank 1

80h | INDE Sử dụng nội dung của FSR làm địa chỉ bộ nhớ dữlệu | -— 81h | OPTION | RB | INT | TOCS | T0SE | PSA | PS2 | PSI PSO 11111111

_REG | PU |EDG

82h | PCL Đặt 8 bit thấp của bộ đếm chương trình (PC) 0000 0000 83h | STATUS | IRP | RPI | RP0 | 7O | Pp Z DC C 0001 1xxx

84h FSR Địa chỉ bộ nhớ dif liéu gidn tiép pointer 0 XXXX XXXX

85h | TRISA | - | - [| - | Thanh ghi gián tiếp dữ liệu PORTB -—-1 1111

86h | TRISB Thanh ghi gián tiếp dữ liệu PORTB 11111111

87h - Đọc như “0° -

88h | EECON1| - | - | - | BEIF | WRERR| WREN| WR | RD -0 x000 89h | EECON2 Thanh ghi2diéukhién EEPROM | — - OAh| PCLATH| - | - = Bộ đệm ghi cho 5 bit trén PC -0 0000

0Bh | TNTCON | GIE | EEIE | T0IE | INTE | RBIE | TOIE | INTF | RBIF |0000000x

“* Thanh Ghỉ Trạng Thái (STATUS )

R/W-0 R/W-0 R/W-O0 R-1 R-1 R/W-x R/W-x R/W-x

IRP | RPI | RPO TO PD Z DC C

bit 7 bít 0

Ghi chú : R : bit có thể đọc W: bit có thể ghi

-n : giá trị khi Reset nguồn (-x : chưa biết )

Cấu trúc thanh ghi trạng thái ở địa chỉ 03h và 83h

Trang 26

Mạch Tự Động Trả Lời Điện Thoại Ứng Dụng Họ Vi Điều Khién PIC

BitO C (Carry )

1 = lay ra bit quan trong nhat tir két qua

0 = không lấy ra bit quan trọng nhất của kết quả

Bit 1 DC ( Digit Carry )

1 = lấy bit thấp thứ tư của kết quả

0 = không lấy bit thấp thứ tư của kết quả

Bit2 Z (Zero bit )

1 = kết quả của phép tính số học hoặc logic là zero 0 = kết quả của phép tính số học hoặc logic khác zero

Bit3 PD :bit tét ngudn

1 = sau khi bật nguồn hoặc dùng lệnh CLRWDT 0 = khi dùng lệnh SLEEP

Bit4 70 : Time-out bit

1 = sau khi mở nguồn, khi thực hiện lệnh CLRWDT hoặc lệnh SLEEP 0= khi WDT tràn

Bit 6:5 RP1:RP0 ( Register Bank Select bit ) bit chọn bank thanh ghi

01 = Bank 1 ( 80h - FFh) 00 = Bank 0 (00h — 7Fh) Bit 7 IRP

Đối với con PIC16F84A thì bit này khơng dùng và nó được duy trì 6 mifc ‘0’

Đối với các đòng vi điêu khiển PIC cao hơn ( loại có 4 bank thanh ghi ) thì nó

dùng để chọn bank thanh ghi

1 =bank 2 và 3 0 = bank 0 va 1

Thanh ghi trạng thái chứa các trạng thái số học của ALU ( C, DC, Z), trạng thái Reset ( 70, PD ) và những bit chọn bank nhớ (TRP, RP1, RP0)

% ghỉ tiy chon (OPTION_REG)

R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-l R/W-I

RBPU |INTEDG | TOCS TOSE PSA PS2 PS1 PSO

bit 7 bit O

Ghi chú : R : bit có thể doc

W : bit c6 thé ghi

-n : giá trị khi Reset nguồn (-x : chưa biết ) Cấu trúc thanh ghi tuỳ chọn ở địa chỉ 81h

Trang 27

Mạch Tự Động Trả Lời Điện Thoại Ứng Dụng Họ Vi Điều Khiển PIC

Thanh ghi tuỳ chọn là thanh ghi có thể đọc và ghi được nó bao gồm những bit

điều khiển khác nhau như là định cấu hình Prescaler tới TMRO/WDT, ngắt ngoài

INT, TMRO, chế độ “ Pull-up' trên PORTB

Bit 0:2 PSO, PS1, PS2 : bit chon tốc độ Prescaler

3 bit này dùng để định tốc độ Prescaler (xem bảng đưới) Việc định tốc độ Prescaler có thể ảnh hưởng đến sự làm việc của vi điều khiển, điểu này sẽ

được đề cập rõ hơn ở phần TMRO

Gia tri bit Mức TMRO Mức WDT

000 1:2 1:1 001 1:4 1:2 010 1:8 1:4 011 1:16 1:8 100 1:32 1:16 101 1:64 1:32 110 1:128 1:64 111 1:256 1:128

Bit 3 PSA ( Prescaler Assignment bit )

Bit chi dinh Prescaler téi TMRO hay Watchdog

1 = Prescaler được chỉ định tới Watchdog 0 = Prescaler được chỉ định tới môđun TMRO

Bit4 T0SE ( TMRO Source Edge Select bit) : bit chon canh nguén TMRO

Nếu chọn môđun TMRO ở chế độ đếm bằng nguồn xung ở chân

RA4/T0CKI thì bit này xác định cạnh lên hay cạnh xuống của tín hiệu

1 = kích cạnh xuống

O = kích cạnh lên

BitŠ5 TOCS ( TMRO Clock Source Select bit )

Bit lựa chọn nguồn xung TMRO

Bit này cho phép bộ đếm TMRO tăng bằng nguồn dao động bên trong

ở mỗi 1⁄4 dao động xung clock hay nguồn xung bên ngoài ở chân

RA4/TOCKI

1 = từ nguồn xung bên ngoài

0 = 1/4 dao động xung clock bên trong

Bit6 INTEDG ( Interrupt Edge Select bit ) : bit chọn cạnh ngắt

Trang 28

Mạch Tự Động Trả Lời Điện Thoại Ứng Dụng Họ Vi Điều Khiển PIC

Nếu ngắt ngoài trên chân RB0/INT được cho phép thì bit này sẽ xác

định cạnh ngắt tại RB0/INT

1 =ngắt bằng cạnh lên 0 = ngắt bằng cạnh xuống

Bit 7 RBPU ( PORTB Pull-up Enable bit)

Bit nay ding để mở hoặc tắt các chân của PORTB có điện trở bên

trong kéo lên nguồn Vpp 1 =tấắt

0 =mở

s* Thanh ghi INTCON

R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-x

GIE EEIE | TOIE INTE RBIE TOIF INTF RBIF

bit 7 bit 0

Ghi chú : R : bit có thể đọc

W : bit có thể ghi

-n : giá trị khi Reset nguồn (-x : chưa biết )

Cấu trúc thanh ghi INTCON ở địa chỉ 0Bh và 8Bh

Bit 0 RBIF ( RB Port Change Interrupt Flag bit )

Bit cờ ngắt thay đổi port RB

1 =ít nhất 1 trong các chân RB4 : RB7 thay đổi trạng thái

0 = khơng có chân nào trong các chân RB4 : RB7 thay đối trạng thái Bit 1 INTF ( INT Enternal Interrupt Flag bit )

Bit cờ ngắt ngoài 6 chan RBO/INT 1 = xảy ra ngắt ngồi

0O = khơng xảy ra ngắt ngoài

Bit 2 TOIF ( TMRO Overflow Interrupt Flag bit) bit cờ ngắt trần TMRO

1 = bộ đếm thay đổi trạng thái từ FFh tới 00h 0 = tràn không xảy ra

Bit 3 RBIE (RB Port Change Interrupt Enable bit )

Cho phép ngắt xảy ra khi thay đổi trạng thái trên các chân 4,5,6 và 7 của Port B

1 = cho phép ngắt khi thay đối trạng thái

0 = không cho phép ngắt khi thay đổi trạng thái

Bit 4 INTE ( INT External Interrupt Enable bit )

Trang 29

Mạch Tự Động Trả Lời Điện Thoại Ứng Dụng Họ Vi Điều Khién PIC

Bit cho phép ngắt ngoài tại chân RB0/INT 1 = cho phép ngắt ngồi

0 = khơng cho phép ngắt ngoài

Bit 5 T0IE ( TMRO Overflow Interrupt Enable bit )

Bit cho phép ngắt khi bộ đếm TMRO tran 1 = cho phép ngắt

0 = không cho phép ngắt

Nếu bit T0IE và T0IF được set đồng thời thì ngắt xẩy ra

Bit6 EEIE ( EEPROM Write Complete Interrupt Enable bịt) :

Bit này cho phép ngắt xảy ra khi kết thúc việc ghi thông thường tới

EEPROM

1 = cho phép ngắt

0 = không cho phép ngắt

Nếu bit EEIE và EEIF ( bit EEIF nằm trong thanh ghi EECONI) được set thì ngắt xây ra

Bit7 GIE ( Global Interrupt Enable bit ) bit cho phép ngắt tổng thể 1 = cho phép tất cả các ngắt

0 = đóng tất cả các ngắt

H.6.2.b Bộ nhớ EEPROM

Bộ nhớ dữ liệu EEPROM có thé đọc và ghi trong điểu kiện hoạt động bình

thường (Vpp phải đủ) Bộ nhớ này khơng có bản đồ trực tiếp trong không gian file thanh ghi Thay vào đó nó được định vị gián tiếp qua các thanh ghi có chức năng

đặc biệt Có 4 thanh ghi trong SEFR được sử dụng để đọc và ghi bộ nhớ EEPROM Những thanh ghi này là:

- EBECONI

- EECON2 (không phải là một thanh ghi về mặt vật lý được thực hiện)

EEDATA EEADR

EEDATA chứa 8 bít dữ liệu cho đọc/ghi, và EEADR chứa địa chỉ của vị trí

EEPROM duy trì địa chỉ của vị trí EEPROM được truy cập Vi mạch PIC16F84A có

64 byte của dữ liệu EEPROM với phạm vi địa chỉ từ 00h đến 3Fh

Bộ nhớ dữ liệu EEPROM cho phép đọc và ghi từng byte Khi ghi một byte thì

dữ liệu trước đó tại vị trí ghi sẽ được xoá tự động trước khi dữ liệu mới được ghi

vào Bộ nhớ dữ liệu EEPROM có số lần ghi xóa lớn Thời gian ghi được điều khiển

bởi timer trên vi mạch Thời gian ghi sẽ thay đổi theo điện áp và nhiệt độ cũng như từ mạch đến mạch

Trang 30

-28-Mạch Tự Động Trả Lời Điện Thoại Ung Dụng Ho Vi Diéu Khién PIC

Khi vi mạch được bảo vệ, thì CPU có thể tiếp tục đọc/ghi dữ liệu bộ nhớ EEPROM Tuy nhiên bộ lập trình cho vi mạch không thể truy xuất vào bộ nhớ này

U0 U-0 U:0 R/W-0 R/W-x R/W-0 R/S-0 R/S-0

Ý | | |BBIE |WRERR|WREN|WR |RD

bit 7 bit 0

Cấu trúc thanh ghỉ EECONI (địa chỉ 88h)

bit 7-5: Duy tri 6 mifc ‘0’

bit4 : EEIF: EEPROM ghi hoat động của bit cờ ngắt

1= ghi sự hoạt động được hoàn thành (phải được clear trong

phần mềm)

O= ghi sự hoạt động khơng được hồn thành hoặc không bắt đầu

bt23 : WRERR: bit cd hiệu của EEPROM bị lỗi

1= đọc sự hoạt động đuợc kết thúc sớm

0= đọc sự hoạt động hoàn thành

bit2 : WREN: bit ma EEPROM cho phép ghi 1= cho phép ghi chu trinh

0= không phép ghi tới EEPROM

bitl : WR: bít điều khiển đọc

1= chu trình ghi bị cấm, khi hoàn thành một lần đọc thì bit đó

được clear bởi phần cứng Bit WR có thể chỉ được set (không clear) trong phần mềm

0= hoàn thành chu trình ghi tới EEPROM

bitO : RD: bit diéu khiển đọc

1= cấm EEPROM đọc RD được clear trong phần cứng Bit RD có thể chỉ được set (không clear) trong phần mềm

0=không cấm EEPROM đọc

se Đọc bộ nhớ dữ liệu EEPROM

Để đọc 1 vị trí của bộ nhớ dữ liệu người lập trình phải ghi địa chỉ lên thanh

ghi EEADR và sau đó tạo bit điều khiển RD (EECONI <0>) Dữ liệu đuợc

chuyển vào thanh ghi EEDATA trong các chu kỳ kế tiếp Do đó dữ liệu có

thể được đọc trong những chu kỳ tiếp theo EEDATA sẽ giữ giá trị đữ liệu

cho đến lần đọc khác hoặc lần ghi dữ liệu

Trang 31

-29-Mạch Tự Động Trả Lời Điện Thoại Ung Dung Ho Vi Diéu Khién PIC

Ví dụ : Đọc dữ liệu EEPROM

BCF STATUS, RPO ; Bank 0 MOVLW CONFIG ADDR _ ;

MOVWE EEADR ; Address to read BSF STATUS, RPO ; Bank 1

BSF EECONI, RD ; EE Read BCF STATUS, RPO ; Bank 0

MOVF EEDATA, W ; W=EEDATA

Ghỉ tới bộ nhớ dữ liệu EEPROM

Để ghi một vị trí đữ liệu EEPROM người lập trình trước hết phải ghi địa chỉ

đến thanh ghỉ EEADR và dữ liệu đến thanh ghi EEDATA Sau đó người sử dụng phải theo một sự nối tiếp đặc biệt để bắt đầu viết cho mỗi byte

Vi dụ : ghi dữ liệu vào EEPROM

BSF STATUS, RPO ;Bank 1

BCF INTCON, GIE ;Disable INTs

BSF EECONI, WREN ;Enable Write

MOVLW 55h ›

MOVWF EECON2 ;Write 55h

MOVLW AAh ;

MOVWF _ EECON2 ;Write Aah

BSF EECON1, WR _ ;Set WR bit begin write BSF INTCON, GIE ;Enable INTs

Ghi sẽ không khởi đầu nếu quá trình trên chưa được đi theo chính xác (ghi 55h đến EECON2, ghi AAh đến EECON2, lúc đó set bit WR) cho mỗi byte

Ngắt sẽ không thể tác động trong khi thực hiện đoạn mã trên

Đồng thời bi: WREN trong EECONI phải được tạo ra để cho phép ghi Cơ

chế này nhằm ngăn ngừa sự ghi dữ liệu EEPROM thình lình bởi sự thực hiện không đúng mã (i.e., mất chương trình) Ngườilập trình cần phải giữ bit WREN trống ở tất cả thời gian, trừ khi nào điều chỉnh EEPROM Bit WREN khơng được xóa bởi phần cứng

Trang 32

-Mạch Tự Động Trả Lời Điện Thoại Ứng Dụng Họ Vi Điều Khién PIC

Sau khi quá trình ghi bắt đầu, xóa bit WREN sẽ không ảnh hưởng đến chu trình ghi này Bit WR sẽ không được thiết lập trừ khi bit WREN được thiết

lập

Lúc hoàn thành chu trình viết bit WR được xoá bằng phần cứng và bit EEIF

được thiết lập Người lập trình có thể cho phép mỗi ngắt này hoặc kiểm tra bit này EEIF phải được xoá bởi phần mềm

e Kiểm tra quá trình ghi:

Phụ thuộc vào ứng dụng, thực hành lập trình tốt có thể đọc chính tả giá trị đó

được viết cho dữ liệu EEPROM cần phải được xác minh tới giá trị mong

muốn sẽ được viết Cái này phải được sử dụng trong những ứng dụng ở nơi |

mà 1 bit EEPROM sẽ được nhấn mạnh gần giới hạn thiết minh |

Nói chung viết EEPROM thất bại sẽ là một bit mà được viết như là '0°,

nhưng đọc lùi nhu ‘1’

Ví dụ :

BCF STATUS, RPO |; chon Bank0O

: ; Any code

: ; can go here

MOVF EEDATA, W ; Must be in bank 0 BSF STATUS, RPO |; Bank 1

READ

BSF EECONI, RD ; YES, read the ; value written BCF STATUS, RPO |; Bank0O

; Is the value written

; (in W reg) and ; read (in EEDATA) ; the same?

SUBWF EEDATA, W ;

BTFSS STATUS, Z ; IS difference 0? GOTO WRITE_ERR ; NO, Write error

Trang 33

-31-Mạch Tự Động Trả Lời Điện Thoại Ứng Dụng Họ Vi Điều Khién PIC

Các thanh ghi / Các bit kết hợp với dữ liệu EEPROM:

Địa | Tên bit | bit | bit | bit | bit3 | bit2 | bit1 | bit | Giá trị khi | Giá trị chi 7 6 5 4 0 reset của các

nguồn nguồn

reset khác

08h | EEDATA | Thanh ghi dữ liệu EEPROM | xxxx xxxx | uuuu uuuu

09h | EEADR Thanh ghi địa chỉ EEPROM XXXX XXXX | uuuu uuuu

88h | EECONI | - | - | - | EE | WRE | WRE | WR RD | -0x000 | -0 q000 IF | RR N

89h | EECON2 | Thanh ghi2 diéukhién EEPROM 2s wwe wens wee =

Ghi chú: x = không biết u = không thay đổi

- = không dùng, đọc như ‘0’

q = tuỳ thuộc vào giá trị trên trạng thái

[ - | không được sử dụng bởi dữ liệu EEPROM

s» Bộ đếm chương trình (Program Counter)

Bộ đếm chương trình (PC) chứa địa chỉ của lệnh tiếp theo mà chương trình sẽ

thực hiện PC dài 13 bit 8 bit thấp được gọi là thanh ghi PCL, thanh ghi này có thể đọc và ghi được 5 bit cao được gọi là thanh ghi PCLATH, thanh ghi này không thể

đọc hoặc ghi trực tiếp PC sẽ tăng một giá trị mỗi lần một lệnh được thực hiện và vị

trí của lệnh tiếp theo được thể hiện trong PC Nhưng khi thực hiện một lệnh yêu cầu

nhảy thì bộ đếm này được ghi lại địa chỉ nơi mà chương trình nhảy đến s* Ngăn xếp (Stack)

Ngăn xếp dùng để lưu trữ địa chỉ để trở về chương trình khi chương trình thực

hiện lệnh nhảy đến chương trình khác như khi thực hiện lệnh CALL hoặc khi có một

điều kiện ngắt xảy ra Địa chỉ lưu trên ngăn xếp sẽ được lấy ra khi gặp lệnh

RETURN, RETLW hay RETFIE

Ví dụ : nếu một chương trình xử lý một việc được thực hiện nhiều lân thì thường

sử dụng một chương trình con để thực hiện riêng tác vụ đó Lệnh CALL được dùng

để nhảy đến chương trình con và để kết thúc chương trình con thì cần thực hiện lệnh

RETURN Khi chương trình gặp lệnh CALL, địa chỉ của lệnh sau lệnh CALL được lưu ở đỉnh ngăn xếp, hoạt động này gọi là PUSH Lệnh RETURN được thực hiện để |báo kết thúc một chương trình con và địa chỉ ở đỉnh ngăn xếp được đặt vào PC và

chương trình tiếp tục thực hiện tại địa chỉ này, hoạt động này gọi là POP

Trang 34

Mạch Tự Động Trả Lời Điện Thoại Ứng Dụng Họ Vi Điều Khiến PIC

Ngăn xếp gồm có 8 thanh ghi, mỗi thanh ghi dài 13 bit Bộ nhớ của ngăn xếp

không nằm trong bộ nhớ chương trình hay bộ nhớ dữ liệu và các thanh ghi trong ngăn xếp không thể đọc hoặc ghi

Ngăn xếp có chiều sâu 8 mức (8 thanh ghi), điểu này có nghĩa là ta có thể thực hiện tuần tự 8 chương trình con (bao gồm cả ngắt) liên tiếp

Cách hoạt động của ngăn xếp được thể hiện như giải thuật sau :

% Instruction | Instruction | dUMP/ r7 Instruction | | JU Instruction | I nstr uet ian | Instruction a

Hình 12 : Cách lưu địa chỉ lệnh vào ngăn xếp

Khi chương trình đang chạy nếu bắt gặp lệnh CALL hay điều kiện ngắt xảy

ra thì địa chỉ của lệnh sau nó sẽ được lưu vào đỉnh của ngăn xếp và các địa chỉ trước

đó trong ngăn xếp sẽ giảm xuống 1 mức trong ngăn xếp Khi lấy địa chỉ từ ngăn xếp | ra sẽ lấy từ đỉnh của ngăn xếp và các địa chỉ phía dưới trong ngăn xếp sẽ được đẩy |

lén 1 mifc

Ở hình 12 khi chương trình chính thực hiện đến lệnh CALL SUBI thì địa chỉ

của lệnh sau nó là XI được lưu vào đỉnh của ngăn xếp Ở chương trình con SUBI, khi gặp lệnh CALL SUB2 thì địa chỉ của lệnh sau nó là X2 được lưu vào đỉnh của

ngăn xếp và vị trí của X1 bị giảm xuống 1 mức Cứ tiếp tục như vậy, ở chương trình

con SUB7 khi gặp lệnh CALL SUB8 thì địa chỉ của lệnh sau nó là X8§ được lưu vào

đỉnh của ngăn xếp

Như vậy lúc này ngăn xếp đã đầy, nếu trong chương trình con SUB8 có lệnh

CALL thì địa chỉ của lệnh sau nó ví dụ là X9 sẽ được lưu vào đỉnh ngăn xếp và địa

chỉ X1 sẽ bị mất đi Như vậy lúc này PC sẽ gửi đến chương trình chính địa chỉ khơng

đúng

Trang 35

Mạch Tự Động Trả Lời Điện Thoại Ứng Dụng Họ Vi Điều Khién PIC

+ Chế độ địa chỉ

Địa chỉ vật lý bộ nhớ RAM có thể được truy xuất trực tiếp hay gián tiếp

e Định địa chỉ trực tiếp

_ Định địa chỉ trực tiếp được thực hiện qua 9 bit địa chỉ Địa chỉ này thu được bằng cách nối 7 bit địa chỉ trực tiếp của một lệnh với hai bit RP0, RP1 ( bit 5 và 6 của thanh ghi STATUS ) được biểu diễn như hình 13 Ví dụ của định địa

chỉ trực tiếp là việc truy xuất tới các thanh ghi SFR

BSF STATUS, RPO schon bank 1

MOVLW_ OxFF ;w=0xFF

MOVWF_ TRISA địa chỉ của thanh ghi

;TRISA được lấy từ lệnh

sMOVWEF

St and Biri bits of

STATUS

regisior \ Seven bits from instructions

RP1 RP2 ae ¬ ˆˆ ỐốỐ i Selectsd bank 00 Ot 7 00 Selected location 0B ac Bank0 222 Hình 13 : Định địa chỉ trực tiếp

e Định địa chỉ gián tiếp

Định địa chỉ gián tiếp không giống với định địa chỉ trực tiếp là không lấy địa chỉ từ lệnh mà lấy địa chỉ từ bit IRP ( bit 7 của thanh ghi STATUS ) và thanh

ghi FSR ( thanh ghi FSR là một con trỏ nó chứa địa chỉ của các thanh ghi ) Địa chỉ INDF xác định các thanh ghi mà địa chỉ của chúng nằm trong thanh

ghi FSR

Trang 36

Mạch Tự Động Trả Lời Điện Thoại Ứng Đụng Họ Vi Điều Khiển PIC

Ví dụ : Giả sử một thanh ghi mục đích chung (GPR) ở địa chỉ 0Fh chứa giá trị là 20, bằng việc ghi giá trị 0Fh vào thanh ghi FSR sẽ có được một thanh ghi

báo ở địa chỉ 0Eh và khi đọc từ thanh ghi INDF sẽ cho một giá trị là 20 Điều

này có nghĩa là ta khơng có truy suất trực tiếp giá trị của thanh ghi ở địa chỉ

OFh mà truy suất gián tiếp qua thanh ghi FSR và INDE

Seventh bit of STATUS register N IRP ? 0 L] +[LTTTTTT]rs= PT FT 7C, Tu gg gAÀAỢA t 1 Selected 00 end, 0B 7 Bank Banki Indirect addressing

Hình 14 : Định địa chỉ gián tiếp

Như vậy định địa chỉ gián tiếp không thuận lợi hơn định địa chỉ trực tiếp

nhưng nó rất thuận tiện trong vài trường hợp ví dụ như khi thao tác trên một dải các thanh ghi GPR, trong trường hợp này chỉ cần ghi vào thanh ghi FSR

địa chỉ đầu tiên của dải và lúc này đữ liệu có thể được truy xuất bằng cách

tăng thanh ghi FSR

Ví dụ : đoạn chương trình sau dùng xóa RAM ở địa chỉ 0Fh dén 1Fh

MOVLW_ 0Fh MOVWF _ FSR LOOP CLRF INDF INCF FSR BTFSS FSR, 5 GOTOLOOP CONTINUE

Trang 37

Mạch Tự Động Trả Lời Điện Thoại Ứng Dụng Họ Vi Điều Khiển PIC

Đọc gián tiếp dữ liệu thanh ghi INDE khi nội dung của thanh ghi FSR là 0 sẽ cho giá trị 00h Việc ghi gián tiếp lên thanh ghi INDF không hoạt động

II.7 Cấu trúc cổng I/O

Cổng IL/O được dùng để PIC giao tiếp với các thiết bị, vi mạch bên ngồi

PIC 16F84A có 13 chân I/O, được chia thành 2 port gọi là Port A và Port B Port A

gồm 5 chân tương ứng với thanh ghi PORTA, port B gồm 8 chân tương ứng với thanh ghi PORTB Mỗi thanh ghi gồm 8 bit, mỗi bit tương ứng với một chân Thanh -

ghi PORTA có 5 bit được sử dụng (bit 0 đến bit 4 ) và 3bit không sử dụng (bit 5, bít

6, bit 7) Thanh ghi PORTB có 8 bit được sử dụng tất cả

Việc chọn chế độ ngõ vào/ra của mỗi chân thông qua thanh ghi TRISA cho port A và thanh ghi TRISB cho port B

Địa | Thanh | Bit7 Bit6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Giá trị Giá trị ở

chỉ ghi reset cdc reset

| nguồn khác

05H |PORTA — — — RA4/ RA3 | RA2 RAI RA0 | -xXxxx | ¬-u uuuu TOCKI :

85H | TRISA — — —_ |TRISA4JTRISA3|TRISA2|TRISAI |TRISAO[ -1 1111 | -1 111 06H |PORTB} RB7 RB6 RB5 RB4 RB3 RB2 RBI RBO/ | xxxxxxxx | uuuuuuuu

INT

§6H | TRISB |TRISB7 | TRISB6 | TRISBS | TRISB4 | TRISB3 | TRISB2 | TRISB1 | TRISBO | 11111111] 11111111

Ghi chú: — : bit không sử dụng

x : giá trị không xác định được

u :giá trị không thay đổi

Nếu set bit n (bit n = “1”: n = 0 đến 7) trong thanh ghi TRISx (x là A hoặc B) thì chân tương ứng với bit n trong thanh ghi PORTx được chọn ở chế độ ngõ vào, ngược lại nếu clear bit n (bit n = “0”) trong thanh ghi TRISx thì chân tương ứng với

bit n trong thanh ghi PORTx được chọn ở chế độ ngõ ra Để dễ nhớ người viết có

thể xem “0” là O - Output và “1”là I— Input

Ví dụ : Nếu muốn thiết lập chân RAO ở chế độ ngõ vào, RAI1 ở chế độ ngõ ra của thanh ghi port A thì người lập trình chỉ cần set bit TRISAO và clear bit TRISA1 của thanh ghi TRISA Về chương trình khởi tạo, truy xuất các port sẽ được

đề cập chỉ tiết ở phân lập trình PIC

Ngồi ra port A và port B cịn có các chức năng khác trên các chân đặc biệt Ở port A, chân RA4/T0CKI có thể sử dụng là ngõ vào xung clock của môđun TMRO Ở port B, chân RBO có chức năng tạo ngắt ngoài, các chân RB4 đến RB7 có chức

năng nhận biết sự thay đổi tín hiệu ngõ vào để tạo ra ngắt Các chức năng này cần phải được thiết lập (xem cách thiết lập và hoạt động ở phần môđun TIMERO và Ngắo

Trang 38

Mạch Tự Động Trả Lời Điện Thoại Ứng Dung Họ Vi Điều Khiến PIC

H.7.1/ PORTA

II.7.1.a Cấu trúc chân RA0 - RA3

QUT Data Latch

YO Data Bus Do D

TRIS Latch 1/0 Pin

Dũ WR TRIS >|w AND ! ¥55 _| 4 IN Data Latch RD TRIS 1 7 EN RD PORT

Hình 15 : So dé mach chan RAO — RA3

Mạch ngõ ra đữ liệu gồm có thanh ghi chốt dữ liệu OUT ( dùng Flip — Flop

loại D kích cạnh xuống ) và mạch điều khiển đầu ra dùng công nghệ CMOS (Complementary-Metal Oxide Semiconductor)

Mạch ngõ vào gồm thanh ghi chốt dữ liệu IN ( dùng Flip — Flop loại D ) va

các cổng đệm

Ngoài ra cịn có thanh ghi chốt TRIS ( ding Flip — Flop loai D ) ding chét dit

liệu thanh ghi TRISA

e Hoạt động của mạch điêu khiển ngõ ra

P-FET P-FET tt we x N-FET ' N-FET L—]|L ,Xn— ` Ỳ

Hình 16 : Hoạt động của P-FET và N-FET

Trang 39

Mạch Tự Động Trả Lời Điện Thoại Ung Dung Ho Vi Diéu Khién PIC

Ngõ ra dùng CMOS là mạch phối hợp giữa MOSFET kênh N ( N-FET ) và MOSFET kénh P ( P-FET )

Ở loại P-FET, khi cực G là mức L (mức “0”) nó trở thành điều kiện ON và khi mức H (mức “1”) nó trở thành điều kiện OFE Đối với loại N-EET thì khi cực G

là mức L thì nó trở thành diéu kiện OFF và khi mức H nó trở thành điểu kiện ON

Dữ liệu trong thanh ghi PORTA được chốt bởi thanh ghi chốt dữ liệu OUT Chế

độ của mỗi chân được chọn bởi thanh ghi TRISA Giá trị đặt trong thanh phi TRISA

được đưa lên bus đữ liệu và được chốt bởi thanh ghi chốt TRIS Ngõ ra đảo O của thanh ghi chốt dữ liệu OUT và ngõ ra Q của thanh ghi chốt TRIS là ngõ vào mạch cổng OR dùng để điều khiển P-FET Ngõ ra đảo Q của thanh ghi chốt dữ liệu OUT và ngõ ra Q của thanh ghi chốt TRIS là ngõ vào mạch cổng AND ding dé diéu khiển N-FET

se Hoạt động của mạch ở chế độ ngõ ra

OUT Data Latch

D6 OD —| HAL cK 8 H/L L OR P-FET TRIS Latch —— D Q H/L ce L H_J AND pe rer

Hình 17 : Hoạt động của mạch điều khiện ngõ ra ở chế độ ngõ ra

Để thiết lập chế độ ngõ ra cho bit tương ứng với chân cân thiết lập trong

thanh ghi TRISA ở mức “0” Như vậy ngõ ra Q của thanh ghi chốt TRIS là mức L và ngõ ra đảo Q là mức H Lúc này ngõ ra của chân được thiết lập là mức H hay mức L sẽ phụ thuộc vào ngõ ra đảo Q của thanh ghi chốt dữ liệu OUT Khi ngõ ra đảo Q của thanh ghi chốt dữ liệu OUT là mức H thì ngõ ra cổng OR là mức H và

ngõ ra cổng AND là mức H, điều này dẫn đến P-FET ở điều kiện OFF và N-FET ở

điều kiện ON tức là ngõ ra chân I/O có mức L Khi ngõ ra đảo Q của thanh ghi

chốt dữ liệu OUT là mức L thì ngõ ra cổng OR là mức L và ngõ ra cổng AND là

mức L, điều này dẫn đến P-FET ở điều kiện ON và N-FET ở điều kiện OFF tức là ngõ ra chan I/O có mức H

Sự chuyển giao của đầu vào dữ liệu tới ngõ ra thanh ghi chốt đữ liệu OUT,

sự thiết lập dữ liệu tới thanh ghi chốt TRIS và dữ liệu từ chân I/O tới thanh ghi chốt

đữ liệu IN được làm thông qua BUS dữ liệu Bus dữ liệu có 8 đường và sự chuyển

Trang 40

-Mạch Tự Động Trả Lời Điện Thoại Ứng Dụng Họ Vi Điều Khién PIC

giao dữ liệu với các chân là song song Bởi vì bus dữ liệu được dùng phổ biến, sự

chuyển giao thông tin được điều khiển bởi xung tín hiệu tới mỗi thanh ghi

Data Bus | | ñ H WR PORT | | L 1 Data Latch „ fo

Hình 18 : Xung tín hiệu điều khiển chốt đữ liệu ngõ ra _

Khi muốn xuất ra nội dung của thanh ghi PORTA, đầu tiên dữ liệu của thanh

ghi PORTA được đặt tới bus dữ liệu, tiếp đến tín hiệu điều khiển WR PORT của

thanh ghi chốt dữ liệu OUT thay đổi từ mức H xuống mức L( kích cạnh xuống ) và

dữ liệu trên bus được ghi tới thanh ghi chốt dữ liệu OUT Sau đó dữ liệu được chốt

bởi thanh ghi chốt dữ liệu OUT và nó sẽ không thay đổi cho tới khi có một cạnh

xuống tiếp theo của tín hiệu điều khiển WR PORT

Tương tự cho thanh ghi chốt TRIS, đầu tiên nội dung của thanh ghi TRISA được lên bus dữ liệu, sau đó tín hiệu điểu khiển WR TRIS của thanh ghi chốt TRIS

có cạnh xuống, đữ liệu sẽ được ghi và chốt tại ngõ ra của thanh ghi chốt TRIS Một

cổng đảo được dùng để đọc nội dung của thanh ghi chốt TRIS và đưa lên bus đữ liệu khi tín hiệu RD TRIS có mức “1”

e Hoat động của mạch ở chế độ ngõ vào

OUT Data Latch

D C 0 TRIS Latch 0p ñ ck oO

Hình 19 : Hoạt động của mạch điều khiển ngõ ra ở chế độ ngõ vào

Ngõ ra Q của thanh ghi chốt TRIS là mức H do đó ngõ ra cổng OR luôn là

mức H vì thế P-FET ln ở điều kiện OFF, tương tự ngõ ra đảo Q của thanh ghi

chốt TRIS là mức L do đó ngõ ra của cổng AND luôn là mức L vì thế N-FET luôn ở

điều kiện OFF Như vậy trong trường hợp này P-FET và N-FET luôn ở điều kiện

Ngày đăng: 25/04/2013, 15:41

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w