Mạch cứng hoạt đổng ổn định chính xác, đọc được thông tin RFID, hiển thị thông tin lên LCD, trao đổi thông tin với máy tính. Mạch nhỏ gọn bền, đẹp có khả năng phát triển ứng dụng đi vào thực tế. Phần mềm sử dụng: Chính xác, nhận thông tin và gửi lệnh cho mạch xử lý, đẹp mắt, dễ sử dụng, thuận tiện cho người dùng, giảm thiểu các công việc tay chân, có khả năng phát triển ứng dụng thực tế. Nhược điểm: Cần thêm nhiều thời gian tối ưu, và phát triển ứng dụng
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN ĐIỆN TỬ - VIỄN THÔNG
BÁO CÁO ĐỒ ÁN 2 K55
ĐỀ TÀI: THIẾT KẾ MẠCH ĐỌC THẺ RFID VÀ GIAO TIẾP
VỚI MÁY TÍNH QUA CỔNG UART
GIẢNG VIÊN HƯỚNG DẪN:
Trang 2MỤC LỤC
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI 1
MỤC LỤC 2
Phần 1: Giới thiệu đề tài, tìm hiểu MSP430 3
1.1 Nhận dạng tự động tần số vô tuyến (Radio Frequency Identification – RFID) 3
1.1.1 Giới thiệu về nhận dạng tự động tần số vô tuyến (RFID) 3
1.1.2 Module MFRC 522 và thẻ RFID 5
1.2 Tìm hiểu về MSP430 6
1.3 Lên ý tưởng cho đề tài 10
Phần 2 Triển khai thiết kế đề tài 12
2.1 Phân chia chức năng 12
2.1.1 Chip xử lý 12
2.1.2 Cảm biến RC522 13
2.1.3 Khối hiển thị LCD16x2 14
2.1.4 Board mạch 16
2.1.5 Phần mềm sử dụng 17
2.2 Lập kế hoạch 18
2.3 Thực hành 19
2.3.1 Lập trình cho vi xử lý MSP430 19
2.3.1.1 Khởi tạo project mới 19
2.3.1.2 Tạo các thư viện cần xử dụng 21
2.3.1.3 Tạo hàm main.c (kịch bản hoạt động chính cho chip xử lý) 26
2.3.1.4 Hoàn thành và kiểm tra code 27
2.3.2 Thiết kế bo mạch 29
2.3.2.1 Xây dựng sơ đồ nguyên lý 29
2.3.2.2 Xây dựng sơ đồ layout và in mạch: 32
2.3.2.3 Hàn linh kiện, hoàn thành mạch: 33
2.3.3 Thiết kế phần mềm sử dụng 34
2.3.4 Kiểm tra, hoàn thành sản phẩm 37
Trang 3Phần 3 kết quả thử nghiệm, phụ lục, hình vẽ, mã nguồn MSP, tài nguyên phần
cứng, phần mềm 38
3.1 Mã nguồn MSP, tài nguyên phần cừng, phần mềm 38
3.2 Kết quả thử nghiệm, đánh giá sản phẩm 47
3.3 Phụ lục 50
Tài liệu tham khảo 50
Trang 4Phần 1: Giới thiệu đề tài, tìm hiểu MSP430
1.1 Nhận dạng tự động tần số vô tuyến (Radio Frequency Identification – RFID )
1.1.1 Giới thiệu về nhận dạng tự động tần số vô tuyến (RFID)
Nhận dạng tự động (Automatic Identification) hay gọi ngắn gọn là "ID tự động" làmột thuật ngữ chỉ các công nghệ chủ dùng để giúp các máy nhận dạng các đối tượng Nhận dạng tự động thường được thực hiện bằng tự động thu thập dữ liệu Đó là phươngpháp các công ty dùng để nhận dạng đồ vật hay hàng hóa, thu thập thông tin về chúng
và nhập dữ liệu đưa vào máy tính mà không cần làm thủ công Mục tiêu của "ID tựđộng" là tăng tính hiệu quả, giảm lỗi dữ liệu đầu vào và sử dụng lao động dư thừa chocác chức năng giá trị gia tăng như cung cấp dịch vụ cho khách hàng Các công nghệ chủđược xếp vào nhóm "ID tự động" gồm có: mã vạch (Bar Codes), thẻ thông minh, nhậndạng tiếng nói, một số công nghệ sinh trắc học (biometric), nhận dạng đặc trưng quanghọc (Optical character Recognition - OCR) và nhận dạng tần số vô tuyến (RadioFrequency Identification - RFID)
Đó là một kỹ thuật nhận dạng sóng vô tuyến từ xa, cho phép đọc không cần tiếp xúc
dữ liệu trên một con chíp bằng sóng vô tuyến ở khoảng cách từ 50 cm tới 10 mét, tùytheo kiểu của thẻ nhãn RFID
Hệ thống RFID gồm hai thành phần: thứ nhất là những chiếc thẻ nhãn nhỏ (cỡ vàicm) có gắn chip silicon cùng ăng ten radio và thứ hai là bộ đọc cho phép giao tiếp vớithẻ nhãn và truyền dữ liệu tới hệ thống máy tính trung tâm
Bộ nhớ của con chip có thể chứa từ 96 đến 512 bit dữ liệu, nhiều gấp 64 lần so vớimột mã vạch Ưu việt hơn, thông tin được lưu giữ trên con chíp có thể được sửa đổi bởi
sự tương tác của bộ đọc Dung lượng lưu trữ cao của những thẻ nhãn RFID thông minhnày sẽ cho phép chúng cung cấp nhiều thông tin đa dạng như thời gian lưu trữ, ngày bàybán, giá và thậm chí cả nhiệt độ sản phấm
Trang 5Với công nghệ RFID, các sản phẩm ngay lập tức sẽ được nhận dạng tự động.Chip trên thẻ nhãn RFID được gắn kèm với một ăngten chuyển tín hiệu đến một máycầm tay hoặc máy đọc cố định Các máy này chuyển tín hiệu radio từ thẻ RFID sangmột mã liên quan đến việc xác định các thông tin trong một cơ sở dữ liệu máy tính do cơquan quản lý kiểm soát.
Khi một RFID được gắn vào một sản phẩm, ngay tức khắc nó sẽ phát ra các tín hiệu
vô tuyến cho biết sản phẩm ấy đang nằm ở chỗ nào, trên xe đẩy vào kho, trong kho lạnhhay trên xe đẩy của khách hàng Do thiết bị này được nối kết trong mạng vi tính của cửahàng nên nhờ vậy các nhân viên bán hàng có thể biết rõ sản phẩm ấy được sản xuất khinào, tại nhà máy nào, màu sắc và kích cỡ của sản phẩm; để bảo quản sản phẩm tốt hơnthì phải lưu trữ nó ở nhiệt độ nào
Nhờ RFID sẽ giảm được rất nhiều thời gian và chi phí quản lý, trưng bày, bán hàng Tín hiệu vô tuyến phát ra từ chiếc tem điện tử này sẽ giúp các nhân viên bán hàng khôngphải đưa đầu dò đọc lướt lên mã vạch của sản phẩm nữa; việc tính tiền sẽ nhanh lẹ hơnrất nhiều, và như vậy khách hàng sẽ không mất nhiều thời gian xếp hàng chờ thanh toánnữa
Trong các kho hàng, nhân viên sẽ thao tác nhanh chóng và chính xác hơn việc lập sổthu mua, tiêu thụ, tồn kho để theo dõi số lượng, chủng loại hàng trong kho Họ sẽ nhanhchóng biết lô hàng nào đã quá hạn không được bày bán nữa, chủng loại hàng nào đanghút khách tiêu dùng cần mua thêm Tóm lại, nhờ ứng dụng RFID, các cửa hàng bán lẻ,các siêu thị sẽ cần ít nhân viên hơn, chi phí hoạt động sẽ giảm, lợi nhuận sẽ cao hơn
Trang 6 Dòng ở chế độ chờ: 10-13mA
Dòng ở chế độ nghỉ: <80uA
Tần số sóng mang: 13.56MHz
Khoảng cách hoạt động: 0~60mm~mifare1 card~
Giao tiếp: SPI
Tốc độ truyền dữ liệu: tối đa 10Mbit/s
Các loại card RFID hỗ trợ: mifare1 S50, mifare1 S70, mifare UltraLight, mifare Pro, mifare Desfire
Trang 7Kiến trúc nguồn điện cực thấp để mở rộng tuổi thọ của Pin và giảm tiêu thụ năng lượng:
-1μAduy trì RAM
-0.8μAchế độ xung thời gian thực
-250μA/MIPS tích cực
Xử lý tín hiệu tương tự với hiệu xuất cao:
-12-bit hoặc 10-bit ADC – 200Ksps, cảm biến nhiệt, V(Ref)
-Khả năng ngắt theo véc-tơ lớn
Trong lập trình cho bộ nhớ Flash cho phép thay đổi Code một cách linh hoạt, phạm
vi rộng, bộ nhớ Flash còn có thể lưu lại được nhật ký của dữ liệu
Trang 8Hình 1.3: Cấu trúc vi điều khiển MSP430
b, MSP430 LaunchPad:
Hình 1.4: KIT MSP430 LaunchPad
On Board Emulation (Tích hợp phần mô phỏng trên kit):
Nghĩa là bạn có thể nạp chương trình và gỡ lỗi project của bạn mà không cần thêm công cụ nào khác Đặc biệt hơn là bạn có thể dùng Kit để nạp và debug cho tất cả các chip MSP430 nằm trên một mạch khác
BoosterPack-compatibility (Tương thích với các module hỗ trợ):
Trang 9Các chân của MSP430G2 được thiết kế rất thoáng Các chân này giúp cho việc cắm các module hỗ trợ khác rất dễ dàng, để thêm các tính năng như wireless, capacitive touch…
Hỗ trợ các vi điều khiển MSP430G2xx:
Kit MSP430 hỗ trợ các vi điều hiển dòng MSP430G2xx Đây là các vi điều khiển tần
số dao động có thể lên đến 16MHZ, bộ nhớ lên đên 16KB Flash, 512B RAM, có tích hợp ADC, timer và các module giao tiếp
Bộ kit MSP430 LaunchPad Rev.1.5 Full Box gồm có
- Kit Msp430 lauchpad
- 1 Chip MSP430G2553IN20 + 1 Chip MSP430G2452IN20
- Thạch anh 32.768Khz
- 2 thanh jump cái
- 1 dây cáp usb mini để kết nối MSP430 launchpad với máy tính
- Tài liệu về kit MSP430 launchpad
Hình 1.5: Bộ kit MSP430 LaunchPad Rev.1.5 Full Box
c, Chương trình biên dịch Code Composer Studio (CCStudio)
Code Composer Studio là môi trường phát triển tích hợp (IDE) cho họ vi xử lý nhúng của Texas Instrument (TI) CCStudio bao gồm bộ công cụ được dùng để phát triển và gỡ rối các ứng dụng nhúng Nó bom gồm việc biên dịch cho mỗi dòng thiết bị của TI, trình tạo mã nguồn, môi trường xây dựng project, trình gỡ rối, profile, mô
phỏng, vận hành hệ thống thời gian thực và nhiều tính năng khác
Trang 10Hình 1.6:Màn hình khởi động Code Composer Studio
1.3 Lên ý tưởng cho đề tài
Nhận dạng tự động tần số vô tuyến (RFID) thực tế có rất nhiều ứng dụng hữu ích,trong khuôn khổ thiết kế đò án 2 này, chúng em sẽ thiết kế mạch điện điện tử dùng chíp
xử lý MSP430G2553 của TI, đọc ghi thông tin thẻ RFID bằng cảm biến MFRC522, giaotiếp với MSP qua cổng SPI; và chíp xử lý này trao đổi thông tin với máy tính qua giaotiếp UART Trên máy tính có sẵn hệ cơ sở dữ liệu, được cập nhập thông tin mỗi lần thaotác với MSP
Sơ đồ khối hệ thống có thể phân tích như sau:
Mỗi người dùng, sở hữu thẻ RFID với những thông tin riêng biệt, mỗi khi thao tácvới mạch (có thế là quét thẻ), mạch nhận diện thẻ RFID, đọc và xử lý thông tin Chip xử
lý giao tiếp với máy tính qua cổng UART/USB, trên máy tính có sẵn giao diện phầnmềm ở đó, admin có thể cập nhật thông tin, gửi lệnh lại cho mạch xử lý
Trong trường hợp khác , admin hoặc người dùng cũng có thể hiển thị thông tin ngaytrên giao diện mạch xử lý
Mạch xử lý bao gồm các khối:
+Cảm biến RFID (RC522)
+Chip xử lý MSP430
+Khối hiển thị (LCD hiển thị thông tin xử lý khi có nhận diện thẻ RFID)
+Khối giao tiếp UART, SPI
+Khối cấp nguồn
Trang 11Hình 1.7: Sơ đồ ứng dụng nhận dạng tự động RFIDMục đích thiết kề mạch này là chúng em có thể tạo ra một thiết bị điện tử có khảnăng nhận diện tự động tần số vô tuyến RFID, xử lý thông tin và trao đổi thông tin vớimáy vi tính nhằm tạo ra một giao diện sử dụng đơn giản tiển lợi.
Sản phẩm đáp ứng các yêu cầu chức năng và phi chức năng:
+Chức năng: Nhận diện và đọc thông tin trên thẻ RFID, cung cấp giao diện sử dụng.+Phi chức năng: Thiết bị đơn giản, đẹp mắt, gon nhẹ, xử lý nhanh, dễ sử dụng, tiêuthụ ít năng lượng…
Đặc biệt, sản phẩm có thể đi vào thực tế với các ứng dụng khác nhau khi tiếp tụcphát triển sản phẩm về sau (Như quản lý nhân viên công ty, quản lý sinh viên, mở cửa
tự động)…
Trang 12Phần 2 Triển khai thiết kế đề tài2.1 Phân chia chức năng
Trong quá trình thiết kế, sản phẩm được chia thành các khối, cụ thể chức năng vàphân chia các khối như sau:
Hình 2.1 Sơ đồ các khối chức năng của mạch nhận diện tự động tần số vô tuyến
(RFID)
2.1.1 Chip xử lý
-Chíp xử lý MSP430 đặt trên kit MSP430
LaunchPad như hình vẽ
-Trong mạch thiết kế, chíp có nhiệm vụ: hoạt
động theo chương trình đã được lập trình sẵn do lập
trình viên (thành viên thiết kế sản phẩm) và được
nạp vào bộ nhớ chương trình của chip
(MSP430G2553 sử dụng bộ nhớ flash 16KB)
-Cụ thể chương trình hoạt động của chip thực
hiện những nhiệm vụ sau:
+Thiết lập hoạt động cho cảm biến RC522, trao
đổi thông tin qua giao tiếp SPI, đọc ghi thông tin thẻ
FRID
Trang 13+Hiển thị thông tin lên LCD
+Giao tiếp với phần mềm máy tính qua giao tiếp UART/USB
2.1.2 Cảm biến RC522
Hình 2.3 Cảm biến RC522 và sơ đồ các chân
Module RC522: Có chức năng nhận diện thẻ RFID, đọc thông tin trên thẻ giao tiếp với chip xử lý theo cổng giao tiếp SPI, RC522 đóng vai trò Slave trong giao tiếp SPI vớichíp xử lý (đóng vai trò Master)
Hình 2.4: SPI 4 chân+Chân SCK(chân số 2 cảu RC522) đóng vai trò làm xung đồng hồ được lấy ra từ xung đồng hồ của chip xử lý msp430
Trang 14+MOSI: Master Out Slave In
+MISO: Master In Slave Out
+SS: Select Slave (đóng vai trò Shift Enable)
Hình 2.5: Biểu đồ thời gian giao tiếp SPI với 1 master 1 slave
Trang 151 Vss Chân nối đất cho LCD, khi thiết kế mạch ta nối chân này với
GND của mạch điều khiển
2 VDD Chân cấp nguồn cho LCD, khi thiết kế mạch ta nối chân này với
VCC=5V của mạch điều khiển
4 RS Chân chọn thanh ghi (Register select) Nối chân RS với logic “0”
(GND) hoặc logic “1” (VCC) để chọn thanh ghi
+ Logic “0”: Bus DB0-DB7 sẽ nối với thanh ghi lệnh IR của LCD(ở chế độ “ghi” - write) hoặc nối với bộ đếm địa chỉ của LCD (ở chế độ “đọc” - read)
+ Logic “1”: Bus DB0-DB7 sẽ nối với thanh ghi dữ liệu DR bên trong LCD
5 R/W Chân chọn chế độ đọc/ghi (Read/Write) Nối chân R/W với logic
“0” để LCD hoạt động ở chế độ ghi, hoặc nối với logic “1” để LCD ở chế độ đọc
6 E Chân cho phép (Enable) Sau khi các tín hiệu được đặt lên bus
DB0-DB7, các lệnh chỉ được chấp nhận khi có 1 xung cho phép của chân E
+ Ở chế độ ghi: Dữ liệu ở bus sẽ được LCD chuyển vào(chấp nhận) thanh ghi bên trong nó khi phát hiện một xung (high-to-low transition) của tín hiệu chân E
+ Ở chế độ đọc: Dữ liệu sẽ được LCD xuất ra DB0-DB7 khi phát hiện cạnh lên (low-to-high transition) ở chân E và được LCD giữ
ở bus đến khi nào chân E xuống mức thấp
7
-14
DB0
-DB7
Tám đường của bus dữ liệu dùng để trao đổi thông tin với MPU
Có 2 chế độ sử dụng 8 đường bus này :+ Chế độ 8 bit : Dữ liệu được truyền trên cả 8 đường, với bit MSB
Trang 16Hình 2.6: Giai đoạn EX
2.1.4 Board mạch
Board mạch là nơi đặt các linh kiện, thiết bị cần thiết, kết nối tín hiệu giữa các thiết
bị, cấp nguồn cho mạch…
Để thiết kế mạch cần trải qua các bước:
+Thiết kế mạch layout từ sơ đồ nguyên lý (thiết kế trên phần mềm hỗ trợ nhưAltium, Orcard …)
+Khối điều khiển
Các khối, link kiện được bố trí hợp lý trên mạch, tạo ra sự nhỏ gọn đẹp mặt chongười sử dụng, dễ dàng kiểm tra hàn nối các link kiện
Board mạch chính tạo nên một môi trường hoạt động cho các linh kiện, để mạchchạy tốt ổn định thì chế tạo mạch cần phải chính xác tỉ mỉ
Khi hoàn thành board mạch, hàn linh kiện, có thể đánh giá được chất lượng sảnphẩm trên các phương diện:
+Tính chính xác: Mạch đã hoạt động đúng chức năng hay không
+Dộ ổn định: Trên môi trường thực tế mạch có chạy đúng không
+Tốc độ làm việc: Tốc độ nhanh đáp ứng yêu cầu sử dụng
Trang 17Hình 2.6: Sơ đồ layout mạch nhận diện RFID
2.1.5 Phần mềm sử dụng
Thực tế khi sử dụng thiết bị, chúng ta phải thao tác với một lượng lớn thông tin, mà bản thân bộ nhớ của MSP quá nhỏ không đáp ứng được, việc này có thể đáp ứng bằng cách sử dụng thêm bộ nhớ ngoài
Tuy nhiên ngoài vấn đề về lượng thông tin lớn, chúng ta cũng cần phải tạo ra được một giao diện sử dụng dễ dàng, tiện lợi Phần mềm máy tính có thế đáp ứng được yêu cầu trên
Chức năng chính việc thiết kế phần mềm sử dụng bao gồm:
+Nhận thông tin từ board mạch, trao đổi cập nhật với một hệ cơ sở dữ liệu sẵn có
Trang 18+Truyền đạt lại thông tin người sử dụng tới bo mạch xử lý
+Tạo giao diện sử dụng đơn giản, đẹp mắt cho người dùng
Hình 2.7: Giao diện phần mềm sử dụng Giao diện thiết kế sẽ bao gồm các khối chính:
+ Giao tiếp UART: nhận và truyền thông tin với board mạch
+ Giao tiếp với hệ cơ sở dữ liệu: hiển thị thông tin, cập nhật thông tin và các chức năng khác
2.2 Lập kế hoạch
Toàn bộ đề tài bao gồm các công việc:
-Tìm hiểu lý thuyết chung, cần thiết để thực hiện đề tài bao gồm: tìm hiểu vềMSP430, tìm hiểu các phương thức truyền thông SPI, UART; tìm hiểu về nhận dạng tựđộng tần số vô tuyến (RFID), module RFID-RC522; tìm hiểu LCD16x2; xây dựng khốicấp nguồn; tìm hiểu cách xây dựng board mạch (sơ đồ nguyên lý, mạch lay out, mạch
in, và hàn mạch); xây dựng phần mềm sử dụng (công cụ được chọn: visual studio C#).-Sau khi nắm được lý thuyết, đi vào thực hành với các công việc:
Trang 19+Lập trình cho vi điều khiển MSP430: Vi điều khiển được chọn là MSP430G2553,chip sẽ được lập trình và hoạt động với chức năng: giao tiếp với RC522 qua cổng SPI,điều khiển hoạt động của nó, đọc ghi thông tin của thẻ RFID, hiển thị một số thông tinlên LCD16x2, bật một led khi phát hiện thẻ RFID, và tắt nó đi trong trường hợp còn lại.Truyền thông tin lên phần mềm máy tính qua cổng UART, nhận và xử lý lệnh được gửivề.
+Xây dựng mạch:
Vẽ mạch nguyên lý bao gồm các khối: khối nguồn có led báo và công tắc nguồn;khối hiển thị gồm LCD và các led báo hiệu; khối cảm biển giao tiếp với MSP quacổng SPI; và khối giao tiếp UART với máy tính
Từ sơ đồ nguyên lý, vẽ sơ đồ layout, nối chân các thiết bị
Từ sơ đồ layout, in mạch, mua linh kiện
Chạy thử
+Thiết kế phần mềm sử dụng:
Giao tiếp với mạch qua cổng UART: nhận thông tin và gửi lệnh xuống board
Tạo hệ cơ sở dữ liệu: Cập nhật, hiển thị, trao đổi thông tin
Công cụ được sử dụng để xây dựng project là CCStudio, lập trình cho dòng vi điềukhiển do TI cung cấp
2.3.1.1 Khởi tạo project mới
Các bước đầu tiên đi vào thực hành bao giờ cũng dề dàng nhằm tạo tiền đề cho hoạtđộng sản xuất mạch diễn ra được trôi chảy, dưới đây là các bước tạo một project mớiphát triển nên ứng dụng về sau:
Khởi động giao diện CCStudio:
Trang 20Hình 2.8: Màn hình đầu tiên CCStudio khi khởi động song
Trên màn hình khởi động có các nội dung:
-Project Explorer: Chứa các project đã và đang được phát triển ứng dụng
-Màn hình chính: Triển khai code
-Cửa sổ Console: Cửa sổ hiện thị lỗi và các kết quả thao tác
-Thanh công cụ: Chứa các phím chức năng của CCStudio
Tạo CCS Project
Trên thanh công cụ trọn mục file → New → Project… tiếp đó chọn mục CCS
Project, nhấn Next; cửa sổ thiết lập project mới hiện ra như hình 2.9.
-Tại Project Name: Đặt tên cho project mới (tùy thích).
-Tại Family chọn MSP430
-Tại Variant chọn MSP430G2553 (chip đã được chọn để phát triển ứng dụng)
-Tại Connection chọn TI MSP430 USB1 [Default].
-Tại của sổ chọn loại project chọn Empty Project (with main.c).
-Nhấn Finish, project mới được hiện ra
Sau khi thiết lập song môi trường phát triển project mới, hoàn toàn có thể phát triển ứng dụng với các thao tác như thêm thư viện h c cần thiết và viết hàm main.c (Kịch bản hoạt động chính cho chip xử lý)
Trang 21Hình 2.9: Cửa sổ thiết lập project mới
2.3.1.2 Tạo các thư viện cần xử dụng
Để thực hiện các chức năng của vi xử lý trong board như đã đề ra, ta cần xây dựng các thư viện sau:
(thư viện h chưa khai báo các hàm và các biến sử dụng, thu viện c định nghĩa các hàm trong hàm main chỉ cần include thư viện h)
Thư viện SPI.H, SPI.C: chứa các hàm phục vụ cho giao tiếp SPI giữu vi sử lý
và cảm biến RC522; định nghĩa chân xử dụng cho SPI
Trang 22#ifndef SPI_H
#define SPI_H
void SPI_Init( void);
void Send_byte( int data, int time_ms);
unsigned char SPI_Xfer_byte( unsigned char data);
void setupSpiSlave();
void spiClearCs();
void spiSetCs();
unsigned char spiWriteByte( unsigned char val);
void spiTxRxSlave( int csPin, unsigned char * send_buffer, unsigned char *
receive_buffer , unsigned char length);
void uart_putc( char c);
void uart_puts( const char *s);
void uart_put_num ( unsigned long val, char dec, unsigned char neg);
char uart_data_ready();
char uart_getc();
void uart_gets( char *s);
void uart_printi( int n);
void printreg( char *name, int n);
Trang 23#define LCD_RS_PORT P2OUT
#define LCD_RS 5
#define LCD_EN_DDR P2DIR
#define LCD_EN_PORT P2OUT
#define LCD_EN 4
#define LCD_LED_DDR P1DIR
#define LCD_LED_PORT P1OUT
#define LCD_LED 5
#define LCD_DATA_DDR P2DIR
#define LCD_DATA_PORT P2OUT
#define LCD_D4 3
#define LCD_D5 0
#define LCD_D6 1
#define LCD_D7 2
#define LCD_4_DEC_CUR_SHIFT_ON() lcd_write_cmd(0x05);
#define LCD_4_DEC_CUR_SHIFT_OFF() lcd_write_cmd(0x04);
#define LCD_4_INC_CUR_SHIFT_ON() lcd_write_cmd(0x07);
#define LCD_4_INC_CUR_SHIFT_OFF() lcd_write_cmd(0x06);
#define lcd_ready _delay_cycles(3000)
unsigned char _lcd_x = 0, _lcd_y = 0, _lcd_maxx = 0;
unsigned char _base_y[4] = {0x80, 0xc0};
#define lcd_onled setb(LCD_LED_PORT, LCD_LED)
#define lcd_offled clrb(LCD_LED_PORT, LCD_LED)
void lcd_write_4bit( unsigned char rs, unsigned char dat);
void lcd_write_cmd( unsigned char dat);
void lcd_write_data( unsigned char dat);
void LCD_4_CUR_SHIFT( unsigned char direct, unsigned char step);
void lcd_printf_float( float x, unsigned char length, unsigned char coma);
void lcd_gotoxy( unsigned char x, unsigned char y);
void lcd_clear();
void lcd_cus( unsigned char on);
void lcd_putchar( unsigned char c);
void lcd_puts( char * s);
void lcd_printf( char * format, );
void lcd_putbin( unsigned char num);
void lcd_init( unsigned char lcd_columns);
#define PCD_IDLE 0x00 //NO action
#define PCD_AUTHENT 0x0E
#define PCD_RECEIVE 0x08
#define PCD_TRANSMIT 0x04
#define PCD_TRANSCEIVE 0x0C
Trang 24#define PCD_RESETPHASE 0x0F
#define PCD_CALCCRC 0x03 //CRC //Mifare_One
Trang 25// -void Write_MFRC522(uchar addr, uchar val);
uchar Read_MFRC522(uchar addr);
void SetBitMask(uchar reg, uchar mask);
void ClearBitMask(uchar reg, uchar mask);
void AntennaOn( void);
void AntennaOf( void);
void MFRC522_Reset( void);
void MFRC522_Init( void);
uchar MFRC522_Request(uchar reqMode, uchar *TagType);
uchar MFRC522_ToCard(uchar command, uchar *sendData, uchar sendLen, uchar
*backData, uint *backLen);
uchar MFRC522_Anticoll(uchar *serNum);
void CalulateCRC(uchar *pIndata, uchar len, uchar *pOutData);
uchar MFRC522_SelectTag(uchar *serNum);
uchar MFRC522_Auth(uchar authMode, uchar BlockAddr, uchar *Sectorkey, uchar
*serNum);
uchar MFRC522_Read(uchar blockAddr, uchar *recvData);
uchar MFRC522_Write(uchar blockAddr, uchar *writeData);
uchar MFRC522_Halt( void);