1. Trang chủ
  2. » Tất cả

Xemtailieu-thiet-ke-he-thong-dieu-khien-den-thong-minh-dung-cam-bien-hong-ngoai

82 17 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 82
Dung lượng 1,98 MB

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

Nội dung

+ ALU là bộ phận thao tác trên các dữ liệu + Bộ giải mã lệnh và điều khiển, xác định các thao tác mà CPU cần thựchiện + Thanh ghi lệnh IR, lưu giữ opcode của lệnh được thực thi +Thanh gh

Trang 1

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI

KHOA ĐIỆN TỬ -

ĐỒ ÁN TỐT NGHIỆP Chuyên ngành: Công nghệ kỹ thuật điện tử truyền thông

Đề tài: THIẾT KẾ HỆ THỐNG ĐIỀU KHIỂN ĐÈN THÔNG MINH

DÙNG CẢM BIẾN HỒNG NGOẠI

Hà Nội - 2018

Trang 2

Hà Nội, ngày tháng năm

Giảng viên

Trang 3

LỜI CẢM ƠN

Em xin gửi lời cảm ơn chân thành đến quý thầy cô của trường Đại họcCông Nghiệp Hà Nội nói chung cũng như thầy cô ở khoa công nghệ điện tửtruyền thông nói riêng, đã tận tình truyền đạt kiến thức trong những năm emhọc tập Với vốn kiến thức được tiếp thu trong quá trình học không chỉ là nềntảng cho quá trình nghiên cứu khóa luận mà còn là hành trang quí báu để embước vào đời một cách vững chắc và tự tin

Đặc biệt, em xin chân thành cảm ơn thầy Ths Bồ Quốc Bảo và Ths Trần Quang Việt đã tận tâm hướng dẫn chúng em qua từng buổi học trên lớp

cũng như những buổi nói chuyện, thảo luận về lĩnh vực sáng tạo trong nghiêncứu khoa học Nếu không có những lời hướng dẫn, dạy bảo của thầy thì emnghĩ bài thu hoạch này của em rất khó có thể hoàn thiện được

Em xin cảm ơn bạn bè và người thân trong gia đình đã giúp đỡ, đónggóp ý kiến và động viên em để có thể hoàn thành đề tài và đúng như kế hoạch

đã đề ra

Vì kiến thức bản thân còn hạn chế, trong quá trình thực tập, hoàn thiệnchuyên đề này em không tránh khỏi những sai sót, kính mong nhận đượcnhững ý kiến đóng góp từ thầy, cô

Cuối cùng em xin gửi lời chúc đến quý thầy, cô cùng các bạn sinh viêncủa trường được dồi dào sức khỏe và thành công trong công việc Em xinchân thành cảm ơn!

Hà Nội, ngày tháng năm Sinh viên thực hiện

Trang 4

Với đề tài” Thiết kế hệ thống điều khiển đèn thông minh dùng cảm biến hồng ngoại” dùng vi điều khiển, nhằm ứng dụng vào thực tế giúp sử

dụng nguồn sáng từ bóng đèn một cách hiệu quả Qua đó tiết kiệm điện và tối

ưu hóa hiệu suất cùng thời gian sử dụng của bóng đèn Đề tài chỉ là một phầnứng dụng nhỏ của vi điều khiển Nó chỉ dừng lại ở mức độ tìm hiểu chưanghiên cứu sâu và còn nhiều sai sót mong thầy cô và các bạn đóng góp đểcuốn đồ án hoàn thiện hơn

Cấu trúc đồ án: Đồ án gồm 2 chương

- Chương 1: Tổng quan về vi điều khiển và Pic 18f4520

Giới thiệu tổng quan về vi điều khiển và Pic 18f4520

- Chương 2: Thiết kế hệ thống điều khiển đèn thông minh dùng cảm biến hồng ngoại

Thiết kế mạch, thực nghiệm thiết bị, đánh giá và định hướng phát triển

Trang 5

MỤC LỤC

LỜI CẢM ƠN 1

LỜI MỞ ĐẦU 2

MỤC LỤC 3

DANH MỤC HÌNH 5

DANH MỤC BẢNG 6

CHƯƠNG I: TỔNG QUAN VỀ VI ĐIỀU KHIỂN VÀ PIC 18F4520 7

1.1 Giới thiệu khái quát về vi điều khiển 7

1.2 Phân loại 8

1.3 Cấu trúc tổng quan của vi điều khiển 9

1.4 Giới Thiệu về PIC 10

1.5 Kiến trúc phần cứng của PIC 18F4520 13

1.6 Ngôn ngữ lập trình và trình dịch 40

1.7 Ngắt (Interrupts) 41

CHƯƠNG II: THIẾT KẾ HỆ THỐNG ĐIỀU KHIỂN ĐÈN THÔNG MINH DÙNG CẢM BIẾN HỒNG NGOẠI 54

2.1 Phân tích bài toán 54

2.2 Lựa chọn giải pháp 54

2.3 Thiết kế mạch 55

2.4 Linh Kiện sử dụng trong mạch 60

2.5 Lưu đồ thuật toán 66

Kết Luận và hướng phát triển đề tài 69

Tài liệu tham khảo 71

Phụ Lục 72

Trang 6

DANH MỤC HÌNH

Hình 1.1 Bộ nạp mplap ICD2 và ICD3 12

Hình 1.2 Sơ đồ khối pic 18f4520 14

Hình 1.3 Sơ đồ chân pic 18f4520 dạng pdip 17

Hình 1.4 Sơ đồ tổ chức bộ nhớ chương trình và ngăn xếp 22

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

Hình 1.6 Phân bổ địa chỉ của các thanh ghi chức năng đặc biệt SFR 24

Hình 1.7 Chế độ dao động EC 28

Hình 1.8 Chế độ dao động ECIO 28

Hình 1.9 Chế độ dao động RC 29

Hình 1.10 Chế độ dao động RCIO 30

Hình 1.11 Logic ngắt của Pic 18f4520 42

Hình 2.1 Sơ đồ khối 55

Hình 2.2 Sơ đồ khối nguồn 56

Hình 2.3 Sơ đồ khối cảm biến 57

Hình 2.4 Sơ đồ khối xử lý 58

Hình 2.5 Sơ đồ khối hiển thị 59

Hình 2.6 Sơ đồ khối thực thi 59

Hình 2.7 Sơ đồ nguyên lý 60

Hình 2.8 Sơ đồ mạch in 60

Hình 2.9 Mạch in 3D 61

Hình 2.10 Text LCD 16x2 62

Hình 2.11 Sơ đồ chân LCD 64

Hình 2.12 Một số loại tụ điện 65

Hình 2.13 Một số loại điện trở 66

Hình 2.14 Sơ đồ module thu phát hồng ngoại MH-IR01 66

Hình 2.15 Lưu đồ thuật toán 68

Trang 7

DANH MỤC BẢNG

Bảng 1.1 Các thanh ghi liên quan đến portA 36

Bảng 1.2 Các thanh ghi liên quan đến portB 37

Bảng 1.3 Các thanh ghi liên quan đến portC 38

Bảng 1.4 Các thanh ghi liên quan đến portD 38

Bảng 1.5 Các thanh ghi liên quan đến portE 39

Bảng 2.1 Chức năng chân của LCD 62

Trang 8

CHƯƠNG I: TỔNG QUAN VỀ VI ĐIỀU KHIỂN VÀ PIC

18F4520

1.1 GIỚI THIỆU KHÁI QUÁT VỀ VI ĐIỀU KHIỂN

Bộ Vi xử lý có khả năng vượt bậc so với các hệ thống khác về khả năngtính toán, xử lý, và thay đổi chương trình linh hoạt theo mục đích người dùng,đặc biệt hiệu quả đối với các bài toán và hệ thống lớn Tuy nhiên đối với cácứng dụng nhỏ, tầm tính toán không đòi hỏi khả năng tính toán lớn thì việc ứngdụng vi xử lý cần cân nhắc Bởi vì hệ thống dù lớn hay nhỏ, nếu dùng vi xử lýthì cũng đòi hỏi các khối mạch điện giao tiếp phức tạp như nhau Các khốinày bao gồm bộ nhớ để chứa dữ liệu và chương trình thực hiện, các mạchđiện giao tiếp ngoại vi để xuất nhập và điều khiển trở lại, các khối này cùngliên kết với vi xử lý thì mới thực hiện được công việc Để kết nối các khối nàyđòi hỏi người thiết kế phải hiểu biết tinh tường về các thành phần vi xử lý, bộnhớ, các thiết bị ngoại vi Hệ thống được tạo ra khá phức tạp, chiếm nhiềukhông gian, mạch in phức tạp và vấn đề chính là trình độ người thiết kế Kếtquả là giá thành sản phẩm cuối cùng rất cao, không phù hợp để áp dụng chocác hệ thống nhỏ

Vì một số nhược điểm trên nên các nhà chế tạo tích hợp một ít bộ nhớ vàmột số mạch giao tiếp ngoại vi cùng với vi xử lý vào một IC duy nhất đượcgọi là Microcontroller-Vi điều khiển

Một số đặc điểm khác nhau giữa vi xử lí và vi điều khiển:

Về phần cứng: VXL cần được ghép thêm các thiết bị ngoại vi bên ngoàinhư bộ nhớ, và các thiết bị ngoại vi khác, … để có thể tạo thành một bảnmạch hoàn chỉnh Đối với VĐK thì bản thân nó đã là một hệ máy tính hoànchỉnh với CPU, bộ nhớ, các mạch giao tiếp, các bộ định thời và mạch điềukhiển ngắt được tích hợp bên trong mạch

Về các đặc trưng của tập lệnh: Do ứng dụng khác nhau nên các bộ VXL

và VĐK cũng có những yêu cầu khác nhau đối với tập lệnh của chúng Tậplệnh của các VXL thường mạnh về các kiểu định địa chỉ với các lệnh cung

Trang 9

cấp các hoạt động trên các lượng dữ liệu lớn như 1byte, ½ byte, word, doubleword Ở các bộ VĐK, các tập lệnh rất mạnh trong việc xử lý các kiêu dữ liệunhỏ như bit hoặc một vài bit

Do VĐK cấu tạo về phần cứng và khả năng xử lí thấp hơn nhiều so vớiVXL nên giá thành của VXL cũng rẻ hơn nhiều Tuy nhiên nó vẫn đủ khảnăng đáp ứng được tất cả các yêu cầu của người dùng

Vi điều khiển được ứng dụng trong các dây chuyền tự động loại nhỏ, cácrobot có chức năng đơn giản, trong máy giặt, ôtô v.v

1.2 PHÂN LOẠI

1.2.1 Độ dài thanh ghi

Dựa vào độ dài của các thanh ghi và các lệnh của VĐK mà người ta chia

ra các loại VĐK 8bit, 16bit, hay 32bit Các loại VĐK 16bit do có độ dàilệnh lớn hơn nên các tập lệnh cũng nhiều hơn, phong phú hơn Tuy nhiên bất

cứ chương trình nào viết bằng VĐK 16bit chúng ta đều có thể viết trên VDK8bit với chương trình thích hợp

1 2.2 Kiến trúc CISC và RISC

VXL hoặc VDK CISC là VDK có tập lệnh phức tạp Các VDK này cómột số lượng lớn các lệnh nên giúp cho người lập trình có thể linh hoạt và dễdàng hơn khi viết chương trình VDK RISC là VDK có tập lệnh đơn giản.Chúng có một số lượng nhỏ các lệnh đơn giản Do đó, chúng đòi hỏi phầncứng ít hơn, giá thành thấp hơn, và nhanh hơn so với CISC Tuy nhiên nó đòihỏi người lập trình phải viết các chương trình phức tạp hơn, nhiều lệnh hơn

1.2.3 Kiến trúc Harvard và kiến trúc Vonneumann

Kiến trúc Harvard sử dụng bộ nhớ riêng biệt cho chương trình và dữliệu Bus địa chỉ và bus dữ liệu độc lập với nhau nên quá trình truyền nhận dữliệu đơn giản hơn

Kiến trúc Vonneumann sử dụng chung bộ nhớ cho chương trình và dữliệu Điều này làm cho VĐK gọn nhẹ hơn, giá thành nhẹ hơn

Một số loại VDK có trên thị trường:

Trang 10

+ ALU là bộ phận thao tác trên các dữ liệu

+ Bộ giải mã lệnh và điều khiển, xác định các thao tác mà CPU cần thựchiện

+ Thanh ghi lệnh IR, lưu giữ opcode của lệnh được thực thi

+Thanh ghi PC, lưu giữ địa chỉ của lệnh kế tiếp cần thực thi

+ Một tập các thanh ghi dùng để lưu thông tin tạm thời

1.3.2 ROM:

ROM là bộ nhớ dùng để lưu giữ chương trình ROM còn dùng để chứa

số liệu các bảng, các tham số hệ thống, các số liệu cố định của hệ thống.Trong quá trình hoạt động nội dung ROM là cố định, không thể thay đổi, nội

dung ROM chỉ thay đổi khi ROM ở chế độ xóa hoặc nạp chương trình

Trang 11

1.4 GIỚI THIỆU VỀ PIC

1.4.1 Pic là gi?

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ãng Genenral 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 nghiên cứuphát triển thêm và từ đó hình thành nên dòng vi điều khiển PIC ngày nay

1.4.2 Tại sao là pic mà không là các họ vi điều khiển khác?

Hiện nay trên thị trường có rất nhiều họ vi điều khiển như 8051,Motorola 68HC, AVR, ARM, Ngoài họ 8051 được hướng dẫn một cách cănbản ở môi trường đại học, bản thân người viết đã chọn họ vi điều khiển PIC

để mở rộng vốn kiến thức và phát triển các ứng dụng trên công cụ này vì cácnguyên nhân sau:

Họ vi điều khiển này có thể tìm mua dễ dàng tại thị trường Việt Nam

Giá thành không quá đắt

Có đầy đủ các tính năng của một vi điều khiển khi hoạt động độc lập

Là một sự bổ sung rất tốt về kiến thức cũng như về ứng dụng cho họ viđiều khiển mang tính truyền thống: họ vi điều khiển 8051

Số lượng người sử dụng họ vi điều khiển PIC Hiện nay tại Việt Namcũng như trên thế giới, họ vi điều khiển này được sử dụng khá rộng rãi Điềunày tạo nhiều thuận lợi trong quá trình tìm hiểu và phát triển các ứng dụngnhư: số lượng tài liệu, số lượng các ứng dụng mở đã được phát triển thànhcông, dễ dàng trao đổi, học tập, dễ dàng tìm được sự chỉ dẫn khi gặp khó

Trang 12

1.4.3 Ngôn ngữ lập trình cho pic

Ngôn ngữ lập trình cho PIC rất đa dạng Ngôn ngữ lập trình cấp thấp cóMPLAB (được cungcấp miễn phí bởi nhà sản xuất Microchip), các ngôn ngữlập trình cấp cao hơn bao gồm C, Basic, Pascal, … Ngoài ra còn có một sốngôn ngữ lập trình được phát triển dành riêng cho PIC như PICBasic,MikroBasic…

Một số tính năng của MPLAP ICD2:

 Giao tiếp USB (Full speed 2M bits/s) và RS-232

 Gỡ nối tiếp theo thời gian thực

 Bảo vệ quá áp/dòng

 Nguồn cung cấp từ 2 đến 6 VDC

 Hiển thị chức năng báo nguồn, bận, lỗi bằng led

 Đọc /ghi/xóa Flash, EEPROM

Trang 13

Hình 1.1 Bộ nạp MPLAP ICD2 và ICD3

Một số tính năng của MPLAP ICD3:

 Giao tiếp USB (Full speed 2M bits/s) và RS-232

 Gỡ nối tiếp theo thời gian thực

 Bảo vệ quá áp/dòng

 Nguồn cung cấp từ 2 đến 6 VDC

 Hiển thị chức năng báo nguồn, bận, lỗi bằng led

 Đọc /ghi/xóa Flash, EEPROM

 Xóa phần trống của bộ nhớ

Ngoài ra do tính năng cho phép nhiều chế độ nạp khác nhau, còn có rấtnhiều mạch nạp được thiết kế dành cho vi điều khiển PIC Có thể sơ lược một

số mạch nạp cho PIC như sau:

JDM programmer: mạch nạp này dùng chương trình nạp Icprog chophép nạp các vi điều khiển PIC có hỗ trợ tính năng nạp chương trình điện ápthấp ICSP (In Circuit Serial Programming) Hầu hết các mạch nạp đều hỗ trợtính năng nạp chương trình này

WARP-13A và MCP-USB: hai mạch nạp này giống với mạch nạpPICSTART PLUS do nhà sản xuất Microchip cung cấp, tương thích với trìnhbiên dịch MPLAB, nghĩa là ta có thể trực tiếp dùng chương trình MPLAB đểnạp cho vi điều khiển PIC mà không cần sử dụng một chương trình nạp khác,chẳng hạn như ICprog

P16PRO40: mạch nạp này do Nigel thiết kế và cũng khá nổi tiếng Ông

Trang 14

còn thiết kế cả chương trình nạp, tuy nhiên ta cũng có thể sử dụng chươngtrình nạp Icprog.

Mạch nạp Universal của Williem: đây không phải là mạch nạp chuyêndụng dành cho PIC như P16PRO40

Các mạch nạp kể trên có ưu điểm rất lớn là đơn giản, rẻ tiền, hoàn toàn

có thể tự lắp ráp một cách dễ dàng, và mọi thông tin về sơ đồ mạch nạp, cáchthiết kế, thi công, kiểm tra và chương trình nạp đều dễ dàng tìm được vàdownload miễn phí thông qua mạng Internet Tuy nhiên các mạch nạp trên cónhược điểm là hạn chế về số vi điều khiển được hỗ trợ, bên cạnh đó mỗi mạchnạp cần được sử dụng với một chương trình nạp thích hợp

1.5 KIẾN TRÚC PHẦN CỨNG CỦA PIC 18F4520

1.5.1 Sơ Đồ khối

Các khối chính trên PIC 18f4520 gồm:

Bộ xử lý trung tâm CPU (central Processing Unit):

Tần số làm việc tối đa 40MHz, sản xuất bằng công nghệ Nano Watt

Thiết kế theo cấu trúc Havard, tập lệnh RISC

Sử dụng kĩ thuật đường ống lệnh (Intruction Pipelining)

Đơn vị logic học (ALU: Arithmetic Logical Unit)

Thanh ghi làm việc (WREG: work regster)

Bộ nhân bằng phần cứng (8x8 Multiply), kết quả được chứa trong cặpthanh ghi (PRODH, PRODL)

Thanh ghi đếm chương trình (PC: Program Counter), có 21 bit thanhghi PCL (PC-Low) chứa các bit từ 7-0, thanh ghi PCH (PC- High) chứa cácbit từ 15-8, thanh ghi CPU (PC-Upper) chứa các bit từ 20-16

Thanh ghi con trỏ ngăn xếp STKPTR (Stack Pointer)

31 mức ngăn xếp (31 level stack)

Thanh ghi lựa chon băng (BSR: Bank select Register)

Trang 15

Thanh ghi con trỏ dữ liệu dán tiếp FSR (Indirect Datamemory AddressPointer).

Trang 16

Bộ phát Xung hệ thống (Oscillator): Nguồn xung từ bên ngoài hoặc

từ bộ phát xung hệ thống sẽ đi qua bộ nhân hoặc chia tần số để lựa chọn lấytần số thích hợp để làm xung hê thống

Nguồn xung chính được đưa vào chip qua chân OSC1 va OSC 2

Nguồn xung phụ được đưa vào chíp qua chân T1OSI, T1OSO

Bộ phát xung nội INTRC tần số 31 kHz

Bộ phát xung nội trên chip tần số 8 MHz

Watchdog Timer (WDT): WDT là một bộ timer có chức năng đặc

biệt Nếu được “cho phép” WDT sẽ và khi tràn sẽ khởi động lại hệ thống.Thời gian khởi động lại hệ thống có thể lựa chọn từ 4ms đến 131,072s WDT

sẽ được khởi tạo ở đầu chương trình, trong thân chương trình sẽ đươc “chèn”các lệnh reset WDT sao cho khi MC thực hiện đúng tuần tự các lệnh, WDTchưa bị tràn Mục đích chính của việc sử dụng WDT là tránh cho vi điềukhiển thực hiện phải một vòng lặp chết (dead loop) mà không thoát ra được.Khi đó, do không thực hiện được các lệnh reset WDT nên MC tràn, tựn độngreset, thoát khỏi tình trạng “bị treo” trong vòng lặp chết Ngoài ra, do có thểhoạt động trong khi MC “ngủ” (sleep Mode) nên WDT còn được sử dụngtrong các ứng dụng tiết kiệm năng lượng

Bộ nạp chương trình: Bộ nạp chương trình nối tiếp trên chip

(Single-Supply In-Circuit Serial Programming) sẽ giúp nạp chương trình từ mạnh nạpvào bộ nhớ ROM qua các chân PGM, PGC và PGD

Bộ Debuger (In-Circuit Debugger): Mạch Debugger trên chip sẽ giúp

người lập trình kiểm soát lỗi chương trình bằng cách cho vi điều khiển hoạtđộng ở chế độ chạy từng lệnh, nhóm lệnh hay toàn bộ chương trình

Khối phát hiện tín hiệu reset: Mạch tín hiệu reset có khả năng phát

hiện 03 nguồn reset:

 Reset từ chân MCLR

 Reset khi bật nguồn (POR: Power-on Reset)

 Reset khi nguồn yếu (BOR: Brown-out Reset)

Trang 17

Khối quản lý lỗi bộ phát xung (Fail-Safe Clock Monitor): Khối này

được sử dụng để quản lý an toàn bộ phát xung hệ thống

Khối định thời khởi động bộ phát xung (Oscillator Start Up-Timer):

khối này sử dụng để tạo thời gian trễ chờ cho bộ phát xung ổn định

Thiết bị ngoại vi (Peripheral):PIC 18f4520 được tích hợp các thiết bị

ngoại vi sau:

Bộ phát hiện điện áp cao/thấp HLVD (High/low - Voltage detect)

Bộ nhớ lưu dữ liệu khi tắt nguồn EEPROM

04 bộ đếm, định thời 16 bit: Timer0, Timer1, Timer2 và Timer3

01 bộ so sánh tín hiệu tương tự (comparator)

13 kênh biến đổi tương tự - số (ADC) độ phân giải 10 bit

Khối giao tiếp vào/ra số:

Vi điều khiển PIC18F4520 có 5 cổng vào ra A, B, C, D và E mỗi cổng

có một thanh ghi đệm dữ liệu tương ứng là PORTA, PORTB, PORTC,PORTD và PORTE, các thanh ghi này được định địa theo địa chỉ byte theobit

PORTA: RA7-RA0

PORTB: RB7-RB0

PORTC: RC7-RC0

Trang 18

PORTE: RE3-RE0.

1.5.2 Sơ đồ chân

Sơ đồ chân dạng PDIP (Lead Plastic Dual In-Line Package) hai hàngchân cắm 2 bên

Hình 1.3 Sơ đồ chân PIC 18F4520 dạng PDIP

Sau đây là giới thiệu cấu tạo chân loại 40 chân (40 Pin PDIP):

• Chân 1(MCLR /VPP/RE3):

- MCLR là đầu vào Master Clear (reset) hoạt động ở mức thấp dể resettoàn bộ thiết bị

- VPP dùng để thay đổi điện áp đầu vào

- RE3 đầu vào số

Các chân thuộc cổng vào ra Port A

Trang 19

• Chân 2(RA0/AN0): với RA0 là cổng vào ra số, AN0 là đầu vào tương

• Chân 5(RA3/AN3/VREF+): RA3 là cổng vào ra số, AN3 là đầu vàotương tự Input3 VREF+ đầu vào tương tự chuyển đổi A/D điện áp tham chiếu(mức cao)

• Chân 6 (RA4/T0CKI/C1OUT): RA4 là đầu vào ra số, T0CKI đầu vàoxung bên ngoài của Timer0, C1OUT là đầu ra bộ so sánh 1

• Chân 7(RA5/AN4/ /HLVDIN/C2OUT): trong đó RA5 là cổng vào ra

số, AN4 là đầu vào tương tự Input 4, chọn đầu vào phụ thuộc SPI,HLVDIN đầu vào tương tự để dò điện áp, C2OUT đầu ra bộ so sánh 2

• Chân 13(OSC1/CLKI/RA7): với OSC1 là đầu vào bộ dao động thạchanh hoặc là đầu vào nguồn xung từ bên ngoài, khi ta nối dây với các thiết bịtương tự thì đầu vào này dạng ST (Schmitt Trigger input ưith CMOS levels).CLKI là đầu vào CMOS cho nguồn xung bên ngoài và luôn được ghép nốivới chân OSC1 Còn RA7 là chân vào ra sử dụng chung

• Chân 14(OSC2/CLKO/RA6): OSC2 là đầu ra bộ dao động thạch anhđược nối với thạch anh hoặc bộ cộng hưởng để lựa chọn dạng bộ dao độngthạch anh CLK0 có tần số bằng ¼ t ần số của OSC1 độ rộng chu kì lệnh,RA6 là đầu vào ra chung Các chân cổng vào ra hai chiều Port B Port B cóthể lập trình bằng phần mềm khi cho kéo đầu vào bên trong yếu lên trên toàn

bộ đầu vào

• Chân 33(RB0/INT0/FLT0/AN12): Với RB0 là cổng vào ra số, INT0 làđầu vào ngắt ngoài Interrup 0, FLT0 là đầu vào báo lỗi PWM được tăngcường CCP1, AN12 đầu vào tương tự Input 12

Trang 20

• Chân 34(RB1/INT1/AN10): RB1 là đầu vào ra số, INT1 đầu vào ngắtngoài Interrup1, AN10 đầu tương tự Input 10

• Chân 35(RB2/INT2/AN8): RB2 là đầu vào ra số, INT2 đầu vào nắtngoài Interrup2, AN8 đầu tương tự Input 8

• Chân 36 (RB3/AN9/ccp2): RB3 là đầu vào ra số, AN9 đầu tương tựInput 9, CCP2 (Capture 2 input/Compare 2 output/PWM2 output.)

• Chân 37(RB4/KBI0/AN11): RB4 là đầu vào ra số, KBI0 thay đổi mởngắt, AN11 đầu tương tự Input 9

• Chân 38(RB5/KBI1/PGM): RB5 đầu vào ra số, KBI1 thay đổi mởngắt, PGM cho phép có thể lập trình ISCPTM ở điện áp thấp

• Chân 39(RB6/KBI2/PGC): RB6 là đầu vào ra số, KBI2 thay đổi mởngắt, PGC chân dùng trong mạch chạy và xung lập trình ICSP

• Chân 40(RB7/KBI3/PGD): RB7 đầu vào ra số, KBI3 thay đổi mởngắt, PGD chân dùng trong mạch chạy và xung lập trình ICSP

• Chân 23(RC4/SDI/SDA): RC4 là đầu vào ra số, SDI đầu vào dữ liệuAPI, SDA đầ u vào ra dữ liệu cho I2C

• Chân 24(RC5/SDO): RC5 đầu vào ra số, SDO đầu ra dữ liệu SPI

• Chân 25(RC6/TX/CK): RC6 đầu vào ra số, TX đầu ra chuyển đổi dị

bộ EUSARRT, CK đầu vào ra xung đồng bộ EUSART

Trang 21

• Chân 26(RC7/RX/DT): RC7 đầu vào ra số, RX đầu vào nhận dị bộEUSART, DT đầu vào ra dữ liệu đồng bộ EUSART.

Các chân cổng Port D (Port D có thể vào ra hai hướng hoặc cổng song

song phụ thuộc(PSP) cho giao diện vi xử lý và khi đó các đầu vào phải làTTL…

• Chân 19(RD0/PSP0): RD0 đầu vào ra số, PSP0 cổng dữ liệu songsong phụ thuộc

• Chân 20(RD1/PSP1): RD1 đầu vào ra số, PSP1 cổng dữ liệu songsong phụ thuộc

• Chân 21(RD2/PSP2): RD2 đầu vào ra số, PSP2 cổng dữ liệu songsong phụ thuộc

• Chân 22(RD3/PSP3): RD3 đầu vào ra số, PSP3 cổng dữ liệu songsong phụ thuộc

• Chân 27(RD4/PSP4): RD4 đầu vào ra số, PSP4 cổng dữ liệu songsong phụ thuộc

• Chân 28(RD5/PSP5/P1B): RD5 đầu vào ra số, PSP5 cổng dữ liệu songsong phụ thuộc, P1B đầu ra được tăng cường CCP1

• Chân 29(RD6/PSP6/P1C): RD6 đầu vào ra số, PSP6 cổng dữ liệu songsong phụ thuộc, P1C đầu ra được tăng cường CCP1

• Chân 30(RD7/PSP7/P1D): RD7 đầu vào ra số, PSP7 cổng dữ liệu songsong phụ thuộc, P1D đầu ra được tăng cường CCP1

Trang 22

Các chân khác

• Chân 12,31(VSS): nối đất chuẩn cho I/O và logic

• Chân 11,32(VDD): cung cấp nguồn dương cho I/O và logic

Loại 44 chân có thêm một số chân phụ khác khi cần thiết ta có thể dễdàng tra trong DataSheet Chi tiết hơn chúng ta có thể thấy qua sơ đồ khối củaPic18F4420/4520 trong tài liệu do microchip cung cấp sẽ có hoàn toàn đầy đủthông tin đặc điểm cấu tạo

1.5.3 Tố chức bộ nhớ

Bộ nhớ vi điều khiển PIC 18f4520 bao gồm 3 loại:

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

 Bộ nhớ dữ liệu RAM (Data RAM)

Bộ nhớ vi điều khiển PIC 18F4520 được thiết kế theo kiến trúc Havard,

bộ nhớ chương trình và bộ nhớ dữ liệu được thiết kế riêng đường Bus, chophép CPU truy cập cùng lúc tới bộ nhớ chương trình và bộ nhớ dữ liệu Bộnhớ dữ liệu EEPROM được sử dụng để lưu trữ dữ liệu khi mất điện, nó coinhư là một ngoại vi của PIC 18F4520 bởi việc truy cập bộ nhớ này thông quacác thanh ghi điều khiển

Bộ nhớ chương trình

Thanh ghi đếm chương trinh PC (Program Counter) của PIC 18F4520 có

21 bit nên có thể địa chỉ hóa 2 Mbyte bộ nhớ chương trình Bộ nhớ Flash củaPIC 18F4520 có dung lượng 32 Kbyte nên chứa được 16384 lệnh từ đơn(Single – Word intructions), với dải địa chỉ từ 0000h đến 7FFFh Nếu đọc ởvùng nhớ ngoài 32 Kbyte của PIC 18f4520 và trong khoảng 2 Mbyte mà nó

có thể quản lý thì dữ liệu sẽ trả về là “0” Pic 18f4520 có 31 mức ngăn xếp

Vector Reset của PIC 18f4520 được đặt ở địa chỉ 0000h, khi reset nộidung của thanh ghi đếm chương trình PC sẽ được xóa về “0” Các thanh ghicủa PIC 18f4520 sẽ được tải lại giá trị mặc định

Trang 23

Vector ngắt ưu tiên cao (High – Priority Interrup Vector) được đặt ở địachỉ 0008h, vector ngắt ưu tiên thấp (Low – Priority Interrup Vector) được đặt

ở địa chỉ 0018h khi xảy ra ngắt thì thanh ghi đếm chương trình PC sẽ đượcgắn địa chỉ theo ngắt tương ứng để gọi chương trình con phục vụ ngắt

Hình 1.4 Sơ đồ tổ chức bộ nhớ chương trình và ngăn xếp

Thanh ghi đếm chương trình PC 21 bit chứa trong 3 thanh ghi 8 bitriêng biệt, 8 bit thấp chứa trong thanh ghi PCL, 8 bit tiếp theo chứa trongthanh ghi PCH, 5 bit cao chứa trong thanh ghi PCU Thanh ghi PCH và PCUkhông cho phép truy cập trực tiếp mà phải truy cập thông qua 2 thanh ghiPCLATH và PCLATU tương ứng Thanh ghi đếm chương trình PC được sửdụng để chứa địa chỉ của lệnh cần thực hiện PIC 18f4520 được thiết kế theo

kĩ thuật đường ống lệnh nên việc thực hiện lệnh PC-2 và đọc mã lệnh PC

Trang 24

được diễn ra tại cùng một thời điểm Mỗi lệnh chiếm 2 byte bộ nhớ chươngtrình nên thanh ghi đếm chương trình sẽ được cộng thêm 2 sau mỗi lệnh.

Bộ nhớ dữ liệu RAM

Bộ nhớ dữ liệu RAM 1536 byte (SRAM) được chia thành 2 vùng chứcnăng riêng biệt, vùng RAM đa dụng GPR (General Purpose Registers) sửdụng để chứa dữ liệu, vùng các thanh ghi chức năng đặc biệt SFR (SpecialFunction Registers) chứa thanh ghi chức năng điều khiển ngoại vi và CPU

Bộ nhớ dữ liệu RAM được chia thành 16 Bank từ Bank 0 đến Bank 15, vùngRAM đa dụng nằm từ Bank 0 đến Bank 2, các thanh ghi SFR nằm ở Bank 15.Vùng địa chỉ từ 300h đến EFFh không được sử dụng Đọc ở vùng này sẽ trả

về giá trị 00h Bốn bit thấp của thanh ghi lựa chọn băng BSR (Bank SelectRegister) được sử dụng để lựa chọn truy cập băng

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

Trang 25

Hình 1.6 Phân bổ địa chỉ của các thanh ghi chức năng đặc biệt SFR

Bộ nhớ dữ liệu EEPROM

Bộ nhớ dữ liệu EEPROM của PIC 18f4520 là bộ nhớ mảng không bị mất

dữ liệu khi mất điện, độc lập với bộ nhớ chương trình và bộ nhớ dữ liệuRAM, được sử dụng để lưu trữ dữ liệu lâu dài Nó có thể ghi/đọc dữ liệu1.000.000 lần, dữ liệu có thể lưu trữ trong bộ nhớ 100 năm Điều khiển vàđọc/ghi bộ nhớ dữ liệu EEPROM không truy cập trực tiếp vào tập thanh ghihay khoảng trống bộ nhớ chương trình mà được truy cập, điều khiển gián tiếpqua các thanh ghi chức năng SFR

Trang 26

Bốn thanh ghi SFR được sử dụng để ghi/đọc bộ nhớ dữ liệu EEPROMlà:

EECON1 – thanh ghi điều khiển EEPROM 1

EECON2 – thanh ghi điều khiển EEPROM 2

EEDATA – thanh ghi dữ liệu EEPROM

EEADR – thanh ghi địa chỉ EEPROM

Bộ nhớ dữ liệu EEPROM cho phép đọc/ghi dữ liệu theo byte Thanh ghiEEDATA được sử dụng để chứa dữ liệu, thanh ghi EEADR sử dụng để chứađịa chỉ truy cập vào các ô nhớ của EEPROM Bộ nhớ dữ liệu EEPROM códung lượng 256 byte, 8 bit của thanh ghi địa chỉ EEADR sẽ đia chỉ hóa cácbyte của bộ nhớ từ địa chỉ 00h đến FFh Một byte dữ liệu ghi vào bộ nhớEEPROM sẽ tự động xóa đi dữ liệu trước đó

-Các thanh ghi của EEPROM

Thanh ghi điều khiển EEPROM1:EECON1

1 = Truy cập bộ nhớ chương trình Flash

0 = Truy cập bộ nhớ dữ liệu EEPROM

bit 6: CFGS: Bit lựa chọn cấu hình hoặc bộ nhớ chương trình Flash/dữ liệu

EEPROM

1 = truy cập thanh ghi cấu hình

Trang 27

0 = Truy cập bộ nhớ chương trình Flash hoặc dữ liệu EEPROM

bit 5: Không sử dụng, đọc trả về giá trị ‘0’

bit 4: FREE: Bit cho phép xóa hàng bộ nhớ Flash

1 = Xóa hàng bộ nhớ chương trình được thiết lập, địa chỉ chứa trong thanh ghiTBLPTR, được xóa từ lệnh WR kế tiếp

1 = Cho phép ghi vào bộ nhớ chương trình Flash /dữ liệu EEPROM

0 = Không cho phép ghi

bit 1: WR: Bit điều khiển ghi

1 = Khởi tạo quá trình xóa/ghi bộ nhớ dữ liệu EEPROM hoặc xóa bộ nhớchương trình hoặc ghi bộ nhớ chương trình (Được xóa bằng phần cứng khiviệc ghi hoàn thành Thiết lập được bằng phần mềm nhưng không đượcxóa)

0 = Quá trình ghi hoàn thanh

bit 0: RD: Bit điều khiển đọc

1 = Khởi tạo quá trình đọc bộ nhớ EEPROM (Đọc mất một chu kỳ máy Bit

RD được xóa bằng phần cứng Thiết lập được bằng phần mềm nhưng khôngđược xóa Bit RD không được thiết lập khi EEPGD = 1 hoặc CFGS = 1.)

0 = Không khởi tạo quá trình đọc EEPROM

Thanh ghi điều khiển EEPROM 2: EECON2

Thanh ghi EECON2 không phải là thanh vật lý, nó được dành riêng cho việcghi và xóa bộ nhớ Đọc EECON2 sẽ được ‘0’

Thanh ghi dữ liệu EEPROM: EEDATA

Thanh ghi EEDATA có 8 bit, là thanh ghi đệm dữ liệu cho bộ nhớ dữ liệuEEPROM, được sử dụng để truy cập vào dữ liệu của bộ nhớ (Cho phép đọcghi bằng phần mềm, mỗi ô nhớ của EEPROM có 8 bit)

Thanh ghi địa chỉ EEPROM: EEADR: Thanh ghi EEADR có 8 bit, là thanh

ghi địa chỉ của bộ nhớ dữ liệu EEPROM 8 bit của thanh ghi EEADR được sửdụng để địa chỉ hóa 256 ô nhớ của EEPROM từ 00h đến FFh

Trang 28

1.5.4 Khối tạo dao động

PIC 18f4520 có thể hoạt động ở một trong 10 chế độ tạo dao động khácnhau Việc lựa chọn các chế độ dao động nhờ các bit FOSC3:FOSC0 trongthanh ghi CONFIG1H

-Các chế độ dao động:

LP (Low – Power Crystal) nguồn xung thạch anh ngoài, nguồn thấp

XT (Crystal/Resonator) thạch anh/bộ cộng hưởng bên ngoài

HS (High – Speed Crystal/Resonator) thạch anh/bộ cộng hưởng bênngoài tốc độ cao

HSPLL nhân 4 lần tần số HS bằng vòng khóa pha (Phase LockedLoop)

RC (External Crystal/Resonator) tạo dao động bằng mạch RC bênngoài, phát xung FOSC/4 ra chân RA6

RCIO tạo dao động bằng mạch RC ngoài, vào /ra trên chân RA6

INTIO1 bộ tạo dao động nội, phát xung FOSC/4 ra chân RA6, vào/ratrên chân RA7

INTIO2 bộ tạo dao động nội, vào/ra trên chân RA6 và RA7

EC bộ phát xung ngoài, phát xung FOSC/4 ra chân RA6

ECIO bộ phát xung ngoài, vào/ra trên chân RA6

-Tạo dao động bằng thạch ang ngoài (Crystal/Ceramic Resonator)

Trong chế độ tạo dao động LP, XT, HZ, HSPLL sử dụng thạch anh(Crystal) chưa có tụ điện hoặc mạch cộng hưởng thạch anh bọc gốm đã có tụđiện (Ceramic Resonator) Ở các chế độ này bộ tạo dao động kết nối với viđiều khiển PIC 18F4520 qua hai chân OSC1 và OSC2

-Nguồn xung ngoài (External Clock)

Chế độ EC và ECIO sử dụng nguồn xung ngoài làm làm xung hệ thống

và được nối qua cổng NOT trước khi đưa vào chân OSC1/CLKI

Trang 29

Hình 1.7 Chế độ dao động EC

Chế độ nguồn xung ngoài EC (External Clock), nguồn xung được lấy

từ bên ngoài nối qua cổng NOT trước khi đưa vào chân OSC1/CLKI và chânOSC2/CLKO phát ra tần số bằng 1/4 tần số đầu vào

Chế độ nguồn xung ngoài ECIO (External Clock Input Output), nguồnxung được lấy từ bên ngoài nối qua cổng NOT trước khi đưa vào OSC1/CLKI

và chân OSC2/CLKO là chân vào/ra RA6

Hình 1.8 Chế độ dao động ECIO

-Tạo dao động bằng mạch RC ngoài

Chế độ tạo dao động RC và RCIO của PIC 18f4520 sử dụng mạch tạodao động RC (một điện trở REXT và một tụ điện CEXT) để tạo dao động.Chế độ RC và RCIO được sử dụng cho các ứng dụng không nhạy cảm vớithời gian để tiết kiệm chi phí thiết kế

Tần số của bộ dao động phụ thuộc vào các yếu tố sau:

Sư biến thể của linh kiện khi sản xuất

Sai số của điện trở REXT tụ điện CEXT

Trang 30

Sự khác biệt điện dung giữa các kiểu đóng gói tụ điện.

Chế độ phát xung RC (Resistor Capacitor), với nguồn xung từ bộ phátxung RC bên ngoài đưa vào chân OSC1, chân OSC2 phát xung với tần sốbằng 1/4 tần số đầu vào, tần số này sử dụng với mục đích kiểm tra và đồngbộ

Hình 1.9 Chế độ dao động RC

Chế độ phát xung RCIO (Resistor Capacutor Input Output), với nguồn xung

từ bộ phát xung RC bên ngoài đưa vào chân OSC1, chân OSC2 được sử dụng

là chân vào/ra RA6

Hình 1.10 Chế độ dao động RCIO

Giá trị linh kiện: 3K < REXT < 100K; CEXT > 20pF

Khối phát xung nội

Trang 31

Vi điều khiển PIC 18F4520 có hai bộ phát xung nội, một bộ INTOSC 8MHz và một bộ dao động INTRC 31 KHz, cả hai có thể được thiết lập làmxung hệ thống Sử dụng nguồn xung nội sẽ tiếp kiệm được chi phí sử dụng bộdao động bên ngoài, hai chân OSC1/RA7 và OSC1/RA6 có thể sử dụng làmchân vào/ra Để lựa chọn sử dụng nguồn xung nội thì phải thiết lập cho khốiphát xung hệ thống hoạt động ở chế độ INTIO1 và INTIO2.

Nguồn xung nội:

Bộ dao động nội INTOSC 8 MHz sẽ đưa qua bộ chia tần (Postscaler)

để tạo ra dải tần số từ 31 KHz đến 8 MHz Sử dụng các bit OSCCON<6:4> đểlựa chọn tần số phù hợp cho hệ thống

Bộ dao động RC nội INTRC 31 KHz không những có thể làm xung cho

hệ thống mà nó còn làm nguồn xung cho bộ định thời gian bật nguồn (Power– up Timer), bộ đảm bảo an toàn nguồn xung (Fail-Safe Clock Minitor), bộđịnh thời gian Reset hệ thống (Watchdog timer) và bộ tăng tốc khởi động(Two-speed Start-up)

Chế độ INTIO:

Chế độ INTIO sử dụng nguồn xung nội INTOSC hoặc INTrc làm xung

hệ thống, chế độ INTIO được chia thành hai chế dộ INTIO1 và INTIO2

Với chế độ INTIO1, chân OSC2 phát cung FOSC/4 còn chân OSC1 làvào ra số RA7

Với chế độ INTIO2, cả hai chân OSC2/RA6 và OSC1/RA7 đều là haichân vào/ra số

1.5.5 Các thanh ghi của bộ phát xung

Thanh ghi chuyến chế độ bộ phát xung: OSCTUNE

Ghi chú:

R = Cho phép đọc

Trang 32

bit 7: INTSRC: Bit lựa chọn nguồn xung nội tần số thấp

1 = Chọn tần số 31.25 kHz từ bộ chia tần Postscaler (8 MHz INTOSC chia256)

0 = Chọn tần số 31 kHz từ bộ dao động nội INTRC

bit 6: PLLEN: Bit lựa chọn bộ nhân PLL cho chế độ INTOSC

1 = Cho phép xung từ INTOSC qua bộ nhân tần số PLL (chỉ sử dụng với tần

số 4 MHz và 8 MHz)

0 = Không cho phép PLL

bit 5: Không sử dụng: Đọc được ‘0’

bit 4-0: TUN4:TUN0: Bit chuyển chế độ tần số

Thanh ghi điều khiển bộ phát xung OSCCON

bit 7: IDLEN: Bit cho phép chế độ Idle

1 = Chuyển sang chế độ Idle bằng lệnh SLEEP

0 = Chuyển sang chế độ Sleep bằng lệnh SLEEP

bit 6-4: IRCF2:IRCF0: Các bit lựa chọn hệ số chia bộ phát cung nội INTOSC

111 = 8 MHz (xung trực tiếp từ INTOSC)

Trang 33

bit 3: OSTS: Bit trạng thái bộ bộ định thời khởi động (Oscillator Start-up

Timer)

1 = Kết thúc thời gian chờ khởi động từ bộ OST; bộ phát xung chính hoạtđộng

0 = Đang đếm thời gian khởi động; bộ phát xung chính chưa hoạt động

bit 2: IOFS: Bit báo sự ổn định tín hiệu bộ phát xung nội INTOSC

1 = Bộ phát xung nội INTOSC ở trạng thái ổn định

0 = Bộ phát xung nội INTOSC chưa ổn định

bit 1-0: SCS1:SCS0: Bit lựa chọn nguồn xung cho hệ thống

1x = Nguồn hệ thống từ bộ dao động nội

01 = Nguồn xung phụ, nối qua các chân của Timer1(Secondary oscillator)

00 = Nguồn xung chính qua các chân OSC1, OSC2 (Primary oscillator)

Thanh ghi cấu hình 1 byte cao: CONFIG1H

bit 7: IESO: Bit cho phép luân phiên bộ phát xung nội/ngoại

bit 5-4: không sử dụng: đọc sẽ được ‘0’

bit 3-0: FOSC3:FOSC0: Bit lựa chọn bộ phát xung

11xx = Chế độ phát xung RC ngoài, chức năng phát xung CLKO trên chânRA6

101x = Chế độ phát xung RC ngoài, chức năng phát xung CLKO trên chânRA6

1001 = Chế độ phát xung nội, chức năng phát xung CLKO trên chân RA6,vào/ra trên

chân RA7

1000 = Chế độ phát xung nội, vào/ra trên chân RA6 và RA7

0111 = Chế độ dao động RC ngoài, vào/ra trên chân RA6

0110 = Chế độ HS, cho phép PLL (xung hệ thống được nhân 4)

0101 = Chế độ EC, vào/ra trên chân RA6

Trang 34

0100 = Chế độ EC, phát xung trên chân RA6

0011 = Chế độ phát xung RC ngoài, chức năng phát xung CLKO trên chânRA6

0010 = Chế độ HS

0001 = Chế độ XT

0000 = Chế độ LP

1.5.6 Các thanh ghi của hoạt động Reset

Thanh ghi điều khiển Reset: RCON

bit 7: IPEN: Bit cho phép ưu tiên ngắt

1 = Cho phép ưu tiên ngắt

0 = Không cho phép ưu tiên ngắt

bit 6: SBOREN: Bit cho phép reset BOR bằng phần mềm

Nếu BOREN1:BOREN0 = 01:

1 = Cho phép reset BOR

0 = Không cho phép reset BOR

Nếu BOREN1:BOREN0 = 00, 10 or 11:

Không được sử dụng, đọc sẽ được ‘0’

bit 5: Không được sử dụng: Đọc sẽ được ‘0’

bit 4: RI: Bit cờ lệnh RESET

1 = Lệnh RESET không được thực hiện

0 = Lệnh RESET được thực hiện (phải được thiết lập sau khi xảy ra ngắtBOR)

bit 3: TO: Bit cờ báo Watchdog Time-out (thời gian đặt cho bộ WDT)

1 = Thiết lâp khi bật nguồn (power-up), lệnh CLRWDT hoặc lệnh SLEEP

0 = Xảy ra sự kiện WDT (yêu cầu reset hệ thống bằng WDT)

Trang 35

bit 2: PD: Bit cờ phát hiện ngắt nguồn

1 = Thiết lập khi bật nguồn (power-up) hoặc lệnh CLRWDT

0 = Khi thực hiện lệnh SLEEP

bit 1: POR: Bit trạng thái reset bật nguồn POR (Power-on Reset)

1 = Không xảy ra hiện tượng bật nguồn

0 = Xảy ra hiện tượng bật nguồn (phải được đặt bằng ‘1’ sau ngắt khi xảy

ra reset POR)

bit 0 BOR: Bit trạng thái reset sụt nguồn BOR (Brown-out Reset)

1 = Không xảy ra hiện tượng sụt nguồn

0 = Xảy ra hiện tượng sụt nguồn (phải được đặt bằng ‘1’ sau ngắt khi xảy rareset BOR)

Thanh ghi cầu hình 3 byte cao: CONFIG3H

bit 7 MCLRE: Bit cho phép reset trên chân MCLR/RE3

1 = Là chân reset MCLR

0 = Là chân vào/ra RE3

bit 6-3 Không được sử dụng: Đọc sẽ được ‘0’

bit 2 LPT1OSC: Bit cho phép bộ phát xung LPT1(Low-Power Timer1)

1 = Cấu hình Timer1 hoạt động ở điện áp thấp (Low-Power)

0 = Cấu hình Timer1 hoạt động ở điện áp cao (higher power)

bit 1 PBADEN: Bit cho phép A/D PORTB

(Ảnh hưởng đến thanh ghi ADCON1 khi Reset)

1 = Các chân PORTB<4:0> được cấu hình là vào/ra tương tự khi Reset

0 = Các chân PORTB<4:0> được cấu hình là vào/ra số khi Reset

bit 0 CCP2MX: Bit MUX CCP2

1 = CCP2 nối với RC1

0 = CCP2 nối với RB3

Thanh ghi cầu hình 2 byte thấp: CONFIG2L

bit 7-5 Unimplemented: Đọc được ‘0’

bit 4-3 BORV1:BORV0: Bit chọn điện áp Reset BOR (Brown-out Reset)

Trang 36

Bảng 1.1 Các thanh ghi liên quan đến PORTA.

- PORTA(RPA) bao 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ềukhiển tương ứng với chân đó trong thanh ghi TRISA và ngược lại, muốn xáclập chức năng củ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

- Thao tác này hoàn toàn tương tự đối với cácPORT và các thanh ghiđiều khiển tương ứng TRIS (đối với PORTA là TRISA, đối với

- PORTB là TRISB, đối với PORTC là TRISC, đối với PORTD làTRISD vàđối với PORTE là TRISE)

- Các thanh ghi SFR liên quan đến PORTA bao gồm: PORTA (địa chỉ05h): chứa giá trị các pin trong PORTA TRISA (địa chỉ 85h): điều khiển xuất

Trang 37

nhập CMCON (địa chỉ 9Ch): thanh ghi điều khiển bộ so sánh CVRCON(địa chỉ 9Dh): thanh ghi điều khiển bộ so sánh điện áp ADCON1 (địa chỉ9Fh): thanh ghi điều khiển bộ ADC.

* PORTB

Bảng 1.2 Các thanh ghi liên quan đến PORTB

- Ứ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ạpkhác nhau PORTB (RPB) gồm 8 pin I/O Thanh ghi điều khiển xuất nhậptương

- 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 bao gồm: PORTB (địa chỉ06h,106h) : chứa giá trị các pin trong PORTB TRISB (địa chỉ 86h,186h) :điều khiển xuất nhập OPTION_REG (địa chỉ 81h,181h) : điều khiển ngắtngoại vi và bộ Timer0

* PORTC

Bảng 1.3 Các thanh ghi liên quan đến PORTC.

Trang 38

- 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 thanh ghi điều khiển liên quan đến PORTC: PORTC (địa chỉ 07h): chứagiá trị các pin trong PORTC TRISC (địa chỉ 87h): điều khiển xuất nhập

* PORTD

Bảng 1.4 Các thanh ghi liên quan đến 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(ParallelSlavePort)

- Các thanh ghi liên quan đến PORTD bao 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

* PORTE

Bảng 1.5 Các thanh ghi liên quan đến PORTE

Trang 39

- PORTE (RPE) gồm 3 chân I/O Thanh ghi điều khiển xuất nhập tươngứng là TRISE Các chân của PORTE có ngõ vào analog Bên cạnh đó PORTEcòn là các chân điều khiển của chuẩn giao tiếp PSP.

+ Các thanh ghi liên quan đến PORTE bao gồm: PORTE: chứa giá trị cácchâ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

+ ADCON1: thanh ghi điều khiển khối ADC

- Lệnh điều khiển vào/ra theo byte hoặc theo bit

#define LED PORTCbits.RC2 // định nghĩa RC2 = LED- Lệnh điều khiển đọc

dữ liệu theo byte

x = PORTD; // x là một biến kiểu byte

- Lệnh điều khiển ghi dữ theo byte

PORTD = x; // x là một biến kiểu byte

- Lệnh điều khiển đọc dữ liệu theo bit

x = PORTDbits.RD0; // x là một biến kiểu bit

Hoặc:

#define SW PORTBbits.RB2 // định nghĩa RB2 = SW

x = SW; // lệnh đọc

- Lệnh điều khiển ghi dữ theo bit

PORTDbits.RD0 = x; // x là một biến kiểu bit

Hoặc:

LED = x; // lệnh xuất

1.6 NGÔN NGỮ LẬP TRÌNH VÀ TRÌNH DỊCH

1.6.1 Khung một chương trình viết cho vi điều khiển

//khai báo các thư viện, ví dụ:

#include <P18f4520.h>

#include <delays.h>

//Cấu hình cho vi điều khiển, ví dụ:

#pragma config OSC = HS

Trang 40

#pragma config MCLRE = ON

#pragma config WDT = OFF

/* khai báo biến số, hằng số, cấu trúc, chương trình con, ví dụ: */

int x;

char m[10];

void high_isr (void);

//viết các chương trình con, ví dụ:

void high_isr (void)

const unsigned int c = 100;

const unsigned char tens[]={ 1, 10, 100, 1000 };

Hằng số trong ROM được định nghĩa bởi từ khoá rom:

unsigned char rom coolant_temp = 0x02;

Một mảng các giá trị nằm trong ROM có thể được địng nghĩa như sau:

unsigned char rom anh_so[]=

Có tất cả mười thanh ghi sử dụng dể điều khiển hoạt dộng ngắt gồm:

• RCON –Thanh ghi điều khiển Reset

• INTCON –Thanh ghi điều khiển ngắt

• INTCON2 –Thanh ghi điều khiển ngắt 2

• INTCON3 –Thanh ghi điều khiển ngắt 3

Ngày đăng: 29/03/2021, 23:03

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