ĐỒ ÁN CHUYÊN NGÀNH ĐIỆN TỬ VIỄN THÔNG ĐỀ TÀI Thiết kế khóa điện tử dùng PIC18F4520 hiển thị lên LCD Bằng cách sử dụng PIC18F4520 và các linh kiện. Ta có thể tạo ra thiết bị khóa điện tử. Đối với trong việc bảo vệ tài sản là hết sức cần thiết, thiết bị có thể chủ động mở khoá nếu mật mã đúng và ngược lại.
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA ĐIỆN TỬ - -
ĐỒ ÁN CHUYÊN NGÀNH ĐIỆN TỬ VIỄN THÔNG
ĐỀ TÀI Thiết kế khóa điện tử dùng PIC18F4520 hiển thị lên LCD
GVHD:
Nhóm:
Sinh viên:
Hà Nội - 2022NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
………
………
………
Trang 2……….…………
………
………
………
………
………
………
… ………
… ………
………
………
………
………
………
………
………
………
… ………
………
………
………
………
Hà Nội, ngày… tháng… năm 2022 Giáo viên hướng dẫn
Trang 3Nguyễn Thị Thu Hà
Trang 4LỜI CẢM ƠN
Trong thời gian làm đồ án chuyên ngành điện tử viễn thông, nhóm chúng em đãnhận được nhiều sự giúp đỡ, đóng góp ý kiến và chỉ bảo nhiệt tình của thầy cô vàbạn bè
Nhóm chúng em xin gửi lời cảm ơn chân thành đến cô Nguyễn Thị Thu Hà, người
đã tận tình hướng dẫn, chỉ bảo nhóm chúng em trong suốt quá trình làm đồ án.Nhóm chúng em cũng xin chân thành cảm ơn các thầy cô giáo trong trường ĐạiHọc Công Nghiệp Hà Nội nói chung, các thầy cô trong Khoa điện tử nói riêng đãdạy dỗ cho chúng em kiến thức về các môn đại cương cũng như các môn chuyênngành, điều đó giúp chúng em có được cơ sở lý thuyết vững vàng và tạo điều kiệntốt cho nhóm trong suốt quá trình học tập
Với điều kiện thời gian cũng như kinh nghiệm còn hạn chế của sinh viên,
đồ án này không thể tránh được những thiếu sót Nhóm chúng em rất mong nhậnđược sự chỉ bảo, đóng góp ý kiến của các thầy cô để nhóm có điều kiện bổ sung,nâng cao kiến thức, phục vụ tốt hơn cho môn học tiếp theo và công việc sau này.Nhóm 16 xin chân thành cảm ơn!
Hà Nội, ngày 5 tháng 11 năm 2022
Sinh viên
Nhóm 03
Trang 5Đồ án trình bày về việc vận dụng những kiến thức đã học, để có thêm nhiều kiến thức áp dụng vào thực tế, môn học Đồ án chuyên ngành điện tử viễn thông là môn học quan trọng góp phần củng cố kiến thức về mạch điện tử, giúp cho sinh viên đánh giá được năng lực của bản thân, từ đó trau dồi thêm
kỹ năng cần thiết để vận dụng vào việc thiết kế mạch điện tử có tính ứng dụng thực tiễn Đồ án nhóm chúng em nhận là: “THIẾT KẾ KHÓA ĐIỆN TỬ DÙNG PIC18F4520 HIỂN THỊ LÊN LCD” Chúng em nhận đề tài và xác định những thông tin quan trọng cần tìm hiểu để hoàn thành công việc được giao Dưới sự hướng dẫn tận tình của giáo viên hướng dẫn cùng với sự cố gắng nỗ lực của bản thân, chúng em đã vận dụng kiến thức để thực hiện đúng
đề tài được phân công
Đồ án gồm những nội dung sau:
Trang 6MỤC LỤC
TÓM TẮT ĐỒ ÁN 0
MỤC LỤC 1
DANH MỤC HÌNH ẢNH 3
DANH MỤC BẢNG BIỂU 4
MỞ ĐẦU 5
PHẦN 1 TỔNG QUAN VỀ KHÓA 7
1.1 Sự ra đời của khóa điện tử 7
1.2 Chức năng và tiện ích của khóa cửa thông minh 7
1.3 Những tiện ích của khóa cửa điện tử thông minh 7
1.4 Nội dung nghiên cứu 8
1.5 Kết luận chương 9
PHẦN 2 LẬP TRÌNH VI ĐIỀU KHIỂN VỚI LCD VÀ BÀN PHÍM 4X4 9
2.1 Khối vi điều khiển PIC18F4520 và công cụ lập trình 9
2.1.1 Giới thiệu PIC18F4520 9
2.1.2 Các thanh ghi của EEPROM 12
2.1.3 Các thanh ghi của bộ phát xung 14
2.1.4 Các thanh ghi của hoạt động Reset 17
2.1.5 Hoạt động vào/ra 19
2.1.6 Lệnh điều khiển vào/ra theo byte hoặc theo bit 21
2.2 Lập trình với LCD VÀ MA TRẬN PHÍM 23
2.2.1 Đặc điểm LCD 23
Trang 72.2.2 Lập trình với LCD 25
2.2.3 Bàn phím 4x4 27
PHẦN 3 THIẾT KẾ KHÓA ĐIỆN TỬ 29
3.1 Thiết kế phần cứng 29
3.1.1 Sơ đồ 29
3.1.1.1 Sơ đồ khối sản phẩm 29
3.1.1.2 Sơ đồ chi tiết 29
3.1.2 Mạch nguyên lý 33
3.1.3 Mạch in 34
3.1.4 Mạch in 3D 35
3.2 Mô phỏng trên phần mềm 35
3.3 Lưu đồ thuật toán 37
PHẦN 4 KẾT LUẬN 39
TÀI LIỆU THAM KHẢO 40
PHẦN 5 PHỤ LỤC 41
Hướng dẫn sử dụng 41
Cảnh báo về an toàn 41
Các thông tin hướng dẫn 41
Các thao tác sử dụng mô hình sản phẩm 42
Chương trình 43
Trang 8DANH MỤC HÌNH ẢNH
Hình 2.1.1.2: Phân bổ địa chỉ của các thanh ghi chức năng đặc biệt SFR 8
Hình 2.1.1.1: Sơ đồ chân PIC18F4520 8
Hình 2.1.1.3: Tổ chức bộ nhớ chương trình và ngăn xếp 9
Hình 2.1.6.1: Công cụ lập trình MPLAB IDE 19
Hình 2.1.6.2: PICkit và phần mềm MPLAB ICD 20
Hình 2.1.6.3: Kết nối mạch nạp PIC KIT 2 20
Hình 2.2.1.1: Sơ đồ chân LCD 21
Hình 2.2.3.1:Ma trận phím 4x4 24
Hình 3.1.1.1: Sơ đồ khối sản phẩm 26
Hình 3.1.2.1: Mạch nguyên lý 27
Hình 3.1.3.1: Mạch in 28
Hình 3.1.4.1: Mạch in 3D 29
Hình 3.2.1: Mô phỏng trên phần mềm Proteus 29
Hình 3.3.1: Lưu đô chương trình chính 30
Hình 3.3.2: Lưu đồ chương trình mở khóa 31
Hình 3.3.3: Lưu đồ chương trình đổi mật khẩu 31
Trang 9DANH MỤC BẢNG BIỂU
Bảng 2.1.1.0.1: Thông số kĩ thuật PIC18F4520 11
Bảng 2.1.2.0.1: Thanh ghi điều khiển EEPROM 1 : EECON1 11
Bảng 2.1.1.2: Ghi chú của thanh ghi EECON1 12
Bảng 2.1.3.1: Thanh ghi chuyển chế độ bộ phát xung: OSCTUNE 13
Bảng 2.1.3.2: Ghi chú của thanh ghi OSCTUNE 13
Bảng 2.1.3.3: Thanh ghi điều khiển bộ phát xung: OSCCON 14
Bảng 2.1.3.4: Thanh ghi cấu hình 1 byte cao:CONFIG1H 15
Bảng 2.1.5.1: Các thanh ghi liên quan đến PORTA 18
Bảng 2.1.5.2: Các thanh ghi liên quan đến PORTB 18
Bảng 2.1.5.3: Các thanh ghi liên quan đến PORTC 19
Bảng 2.1.5.4: Các thanh ghi liên quan đến PORTD. 19
Bảng 2.1.5.5: Các thanh ghi liên quan đến PORTE 19
Bảng 2.2.1.1: Chức năng các chân LCD 23
Bảng 2.2.2.1: Bảng mã lệnh 24
Trang 10MỞ ĐẦU
Lý do chọn đề tài
Ngày nay, sự phát triển của khoa học công nghệ luôn gắn liền với sự phát triển của kinh tế, xã hội Trong đó, ngành điện tử viễn thông luôn giữ vững tốc độ phát triển cao và ngày càng đi sâu vào trong đời sống và lĩnh vực bảo mật là mảng lớn luôn được mọi người quan tâm Vì vậy để làm quen với việc thiết kế mạch nhóm em đã chọn đề tài “ Thiết kế khóa điện tử dùng PIC18F4520 hiển thị lên LCD ” để nghiên cứu và thực hiện.
Mục đích thực hiện đề tài
Bằng cách sử dụng PIC18F4520 và các linh kiện Ta có thể tạo ra thiết
bị khóa điện tử Đối với trong việc bảo vệ tài sản là hết sức cần thiết, thiết bị
có thể chủ động mở khoá nếu mật mã đúng và ngược lại.
Nhiệm vụ đề tài
Thiết kế khóa số điện tử Sử dụng PIC18F4520 và ma trận phím để nhập mật mã và xuất dữ liệu ra LCD.
Tính ứng dụng
- Ứng dụng vào mỗi gia đình.
- Giữ an toàn cho những ngôi nhà , tài sản , tài liệu mật, giấy tờ.
Phương pháp nghiên cứu
- Phương pháp thiết kế và mô phỏng dựa trên phần mềm Proteus và thiết
kế mạch điện trên Altium.
Cấu trúc của báo cáo
Trong chương này, đồ án đã trình bày cơ sở lý thuyết cho các nội dung nghiên cứu của luận án bao gồm các nội dung về khóa điện tử Ở cuối chương
Trang 11trình bày hướng nghiên cứu của đồ án và thảo luận một số kết quả nghiên cứu liên quan từ đó làm rõ hơn nội dung nghiên cứu của đồ án.
Trang 12PHẦN 1 TỔNG QUAN VỀ KHÓA 1.1 Sự ra đời của khóa điện tử
Cuộc cách mạng về khóa cửa chỉ thực sự bắt đầu khi bùng nổ cuộc cách mạng công nghiệp Cùng với sự xuất hiện của các loại máy móc Sự ra đời của lò xo, ổ bi, các khớp ren Công nghệ tiện, đục, đúc kim loại,… Thì
độ tinh vi của khóa cửa được đưa tới một tầm cao mới Khóa cửa trở nên khó mở hơn bao giờ hết, nhỏ gọn hơn bao giờ hết Cùng với nền công nghiệp sản xuất hàng hóa lớn, khóa cửa trở thành một loại hàng hóa phổ cập Một mặt hàng thiết yếu mà nhà nhà đều có Loại khóa truyền thống này vẫn tiếp tục tồn tại cho đến ngày nay.
Khoảng hai thập kỷ trở lại đây, thế giới chứng kiến một cuộc cách mạng điện tử, tự động hóa rầm rộ trên tất cả mọi lĩnh vực Và khóa cửa cũng không phải là ngoại lệ Khóa cửa – một sản phẩm có khả năng bảo vệ tài sản không thể nằm ngoài luồng chảy này, liên tục được cập nhật, phát triển để có thể theo kịp thời đại, nâng cao độ tin cậy đối với người dùng Với ưu thế về
độ tiện dụng và an toàn cao, khóa cửa điện tử chính thức xuất hiện Thay vì dùng chìa như khóa truyền thống, khóa cửa điện tử dùng mã số, thẻ từ hoặc vân tay để mở khóa.
1.2 Chức năng và tiện ích của khóa cửa thông minh
Khóa cửa thông minh có nhiều chức năng và tiện ích được nhà sản xuất phát minh và ứng dụng một cách hiệu quả như: đèn led để sử dụng trong bóng tối, quét mã vân tay, quét võng mạc, tích hợp chuông báo động,
1.3 Những tiện ích của khóa cửa điện tử thông minh
- Tiện ích dễ dàng thấy được nhất chính là tránh được việc làm mất chìa khóa, chìa khóa thường tương đối nhỏ gọn nhưng cũng vì thế nên dễ bị rơi mất, với khóa thông minh, bạn không cần lo mất chìa khóa, cũng không cần loay hoay tìm kiếm chìa khóa mỗi khi muốn mở cửa.
Trang 13- Người dùng không cần mất thời gian và tiền bạc làm thêm bản sao chìa khóa, những gì cần làm là chia sẻ mã khóa qua điện thoại hay email.
- Khóa thông minh được làm bằng vật liệu chắc chắn và có khả năng chịu sự ăn mòn tốt Độ bền của khóa cũng cao hơn khóa truyền thống bởi không cần phải tác động vật lý nhiều.
- Tự động khóa khi cửa đóng.
- Hoạt động với nguồn điện riêng.
- Một vài loại khóa thông minh giúp người dùng có thể kiểm soát, xem được hình ảnh và lưu trữ dữ liệu về người ra vào nên có thể kiểm soát được tình trạng an ninh có không gian.
- Khóa cửa thông minh có thiết kế sang trọng, đa dạng, phù hợp với nhiều phong cách kiến trúc khác nhau.
- Dễ dàng thiết lập, cài đặt loại mã khóa phù hợp nhất.
1.4 Nội dung nghiên cứu
Yêu cầu:
- Yêu cầu, tính năng sản phẩm.
- Sử dụng vi điều khiển PIC18F4520.
- Khóa cửa bằng mật khẩu sử dụng bàn phím 4x4.
- Nhập mật khẩu và hiển thị trên màn hình LCD16x2.
- Cài đặt được mật khẩu và khi nhập đúng mật khẩu thì cho phép mở khóa, khi nhập sai mật khẩu thì báo lỗi.
- Chức năng: Khóa cửa và bảo vệ ngôi nhà.
- Đầu vào: Nhập mật khẩu trên ma trận phím 4x4.
- Đầu ra: Hiển thị thông báo trên màn hình LCD16x2.
Yêu cầu ràng buộc
- Nguồn cấp điện cho mạch 12V xoay chiều, hạ áp và ổn áp 5V
Trang 14- Kích thước mạch điện (dài x rộng): không quá 30x30 cm.
- Trọng lượng: không quá 2 kg.
1.5 Kết luận chương
Trong chương này, báo cáo đã trình bày cơ sở lý thuyết cho các nội dung nghiên cứu của báo cáo bao gồm các nội dung về sự ra đời của khóa điện tử, các chức năng và tiện ích của khóa điện tử đem lại cho chúng ta.
PHẦN 2 LẬP TRÌNH VI ĐIỀU KHIỂN VỚI LCD VÀ BÀN PHÍM 4X4 2.1 Khối vi điều khiển PIC18F4520 và công cụ lập trình
2.1.1 Giới thiệu PIC18F4520
PIC18F4520 là một chip vi điều khiển được sản xuất bởi hãng Microchip thuộc họ PIC PIC18F4520 là một bộ vi điều khiển 8 bit dựa trên kiến trúc RISC bộ nhớ chương trình 32KB ISP flash có thể ghi xóa hàng nghìn lần, 256B EEPROM, một bộ nhớ RAM vô cùng lớn trong thế giới vi xử
lý 8 bit (2KB SRAM).
Với 33 chân có thể sử dụng cho các kết nối vào hoặc ra I/O, 32 thanh ghi, 3 bộ timer/ counter có thể lập trình, có các gắt nội và ngoại (2 lệnh trên một vector ngắt), giao thức truyền thông nối tiếp USART, SPI, I2C Ngoài ra
có thể sử dụng bộ biến đổi số tương tự 10 bit (ADC/DAC) mở rộng tới 12 kênh, khả năng lập trình được watchdog timer, hoạt động với 5 chế độ nguồn,
có thể sử dụng tới 2 kênh điều chế độ rộng xung (PWM)……
Trang 16Tổ chức bộ nhớ
- Thông số cơ bản của Chip
Hình 2.1.1.3: Tổ chức bộ nhớ chương trình và ngăn xếp
Trang 17Nhà sản xuất Microchip
Kích thước bộ nhớ chương trình 32KB (16K x 16)
Nhiệt độ làm việc tối thiểu -40 oC
Nhiệt độ làm việc tối đa +85 oC
Loại bộ nhớ chương trình Flash
Bảng 2.1.1.0.1: Thông số kĩ thuật PIC18F4520
2.1.2 Các thanh ghi của EEPROM
- Thanh ghi điều khiển EEPROM 1 : EECON1
Bảng 2.1.2.0.2: Thanh ghi điều khiển EEPROM 1 : EECON1
Trang 18‘1’ = Được thiết lập ‘0’ = Được xóa -x = Reset không xác định
Bảng 2.1.1.3: Ghi chú của thanh ghi EECON1
Bit 7 EEPGD: Bit lựa chọn bộ nhớ dữ liệu EEPROM hay bộ nhớ chương trình
Flash
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
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
0 = Chỉ thực hiện ghi
Bit 3 WRERR: Bit cờ lỗi bộ nhớ chương trình Flash/ bộ nhớ dữ liệu EEPROM
1 = Lỗi hoạt động ghi (hoạt động ghi bị kết thúc trước)
0 = Ghi hoàn thành
Bit 2 WREN: Bit cho phép ghi bộ nhớ chương trình Flash / Dữ liệu EEPROM
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ươngtrình
hoặc ghi bộ nhớ chương trình (Được xóa bằng phần cứng khi việc ghi hoàn thành.Thiết lập được bằng phần mềm nhưng không được xó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
Trang 19xó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 BitRD
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ệc ghi 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 đọc ghi bằng phầnmề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 của bộ nhớ dữ liệu EEPROM 8 bit củathanh ghi EEADR được sử dụng để địa chỉ hóa 256 ô nhớ của EEPROM từ 00h đếnFFh
2.1.3 Các thanh ghi của bộ phát xung
- Thanh ghi chuyển chế độ bộ phát xung: OSCTUNE
Bảng 2.1.3.4: Thanh ghi chuyển chế độ bộ phát xung: OSCTUNE
Bảng 2.1.3.5: Ghi chú của thanh ghi OSCTUNE
Bit 7 INTSRC: Bit lựa chọn nguồn xung nội tần số thấp
Trang 201 = Chọn tần số 31.25 kHz từ bộ chia tần Postscaler (8 MHz INTOSC chia 256)
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ố 4MHz
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
Bảng 2.1.3.6: 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
10
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)
110 = 4 MHz
101 = 2 MHz
100 = 1 MHz (tần số mặc định khi Reset)
011 = 500 kHz
Trang 21010 = 250 kHz
001 = 125 kHz
000 = 31 kHz (xung từ INTOSC/256 hoặc trực tiếp từ INTRC)
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
Bảng 2.1.3.7: 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ân RA6101x = Chế độ phát xung RC ngoài, chức năng phát xung CLKO trên chân RA6
1001 = Chế độ phát xung nội, chức năng phát xung CLKO trên chân RA6, vào/ratrên
Trang 22châ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
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ân RA6
0010 = Chế độ HS
0001 = Chế độ XT
0000 = Chế độ LP
2.1.4 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ắt BOR)
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)
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
Trang 23Bit 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 resetPOR)
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 ra resetBOR)
- 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 2410 = BOR hoạt động ở chế độ phần cứng và chạy ở chế độ Run và Idle, không sửdụng
Tên Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
PORTA RA7 RA6 RA5 RA4 RA3 RA2 RA1 RA0 LATA LATA7 LATA6 Thanh ghi chốt
dữ liệu PORTA TRISA TRISA7 TRISA6
Thanh ghi hướng dữ liệu PORTA
ADCON
1 — — VCFG1 VCFG0
PCFG 3
PCFG 2
PCFG 1
PCFG 0 CMCON C2OUT C1OUT C2INV C1INV CIS CM2 CM1 CM0 CVRCO
N CVREN CVROE CVRR CVRSS CVR3 CVR2 CVR1
CVR 0
Bảng 2.1.5.8: Các thanh ghi liên quan đến PORTA
Tên Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit
0
PORTB RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 LATB
INTCON GIE/GIEH PEIE/
GIEL TMR0IE INT0IE RBIE
TMR0I F
INT0I
F RBIF
Trang 252 RBPU INTEDG0
INTEDG 1
INTEDG
TMR0I
P — RBIPINTCON
3 INT2IP INT1IP — INT2IE
INT1I
INT2I F
INT1 IF ADCON
1 — — VCFG1 VCFG0
PCFG
3 PCFG2
PCFG 1
PCF G0
Bảng 2.1.5.9: Các thanh ghi liên quan đến PORTB
Trang 26Tên Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit
0
PORTC RC7 RC6 RC5 RC4 RC3 RC2 RC1 RC0 LATC
Thanh ghi chốt dữ liệu
của PORTC (Chốt dữ liệu
đọc ghi)
TRISC Thanh ghi chọn hướng
dữ liệu của PORTC
Bảng 2.1.5.10: Các thanh ghi liên quan đến PORTC
Tên Bit 7 Bit
6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
PORTD RD7 RD6 RD5 RD4 RD3 RD2 RD1 RD0
LATD
Thanh ghi chốt dữ liệu của PORTD (Chốt dữ liệu đọc ghi)
TRISD
Thanh ghi chọn hướng dữ liệu của PORTD TRISE(1) IBF OBF IBOV PSPMOD
E — TRISE2 TRISE1
TRISE 0 CCP1CON P1M1 P1M
0
DC1B
1 DC1B0
CCP1M 3
CCP1M 2
CCP1M 1
CCP1 M0
Bảng 2.1.5.11: Các thanh ghi liên quan đến PORTD.
Tên Bit
7
Bit
6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
PORTE — — — — RE3 RE2 RE1 RE0
Trang 27LATE(2) — — — — —
Thanh ghi xuất dữ liệu LATE
TRISE IBF OBF IBOV PSPMODE — TRISE2 TRISE1 TRISE
0 ADCON
1 — — VCFG1 VCFG0 PCFG3 PCFG2 PCFG1
PCFG 0
Bảng 2.1.5.12: Các thanh ghi liên quan đến PORTE
2.1.6 Lệnh điều khiển vào/ra theo byte hoặc theo bit
- 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
Trang 28Mạch nạp chương trình cho PIC
Microchip cung cấp các dòng sản phẩm bao gồm: MPLAB ICE2, MPLAB ICE3,MPLAB REAL ICE, PICKIT 2, PIC KIT 3
Hình 2.1.6.5: PICkit và phần mềm MPLAB ICD
Hình 2.1.6.4: Công cụ lập trình MPLAB IDE
Trang 29Hình 2.1.6.6: Kết nối mạch nạp PIC KIT 2
2.2 Lập trình với LCD VÀ MA TRẬN PHÍM
2.2.1 Đặc điểm LCD
Giới thiệu LCD
LCD 16×2 được sử dụng để hiển thị trạng thái hoặc các thông số
LCD 16×2 có 16 chân trong đó 8 chân dữ liệu (D0 – D7) và 3 chân điều khiển (RS,
RW, EN)
5 chân còn lại dùng để cấp nguồn và đèn nền cho LCD 16×2
Các chân điều khiển giúp ta dễ dàng cấu hình LCD ở chế độ lệnh hoặc chế độ dữliệu
Sơ đồ chân và các chức năng
Chúng còn giúp ta cấu hình ở chế độ đọc hoặc ghi
Trang 30Hình 2.2.1.7: Sơ đồ chân LCD