175
Khảo sát họ vi điều khiển MSP430 (F2274) PHẦN A GIỚI THIỆU Đồ án tốt nghiệp Trang 1

102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Embed Size (px)

Citation preview

Page 1: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

PHÂN A

GIỚI THIỆU

Đồ án tốt nghiệp Trang 1

Page 2: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

BÔ GIAO DUC VA ĐAO TAOTRƯƠNG ĐAI HOC SƯ PHAM KY THUÂT TP.HCM

KHOA ĐIỆN - ĐIÊN TƯ

ĐỒ ÁN TỐT NGHIỆP

SVTH : ĐỖ THỊ THU

LÊ ĐỨC THÀNH CÔNG

KHẢO SÁT HỌ VI ĐIỀU KHIỂNMSP430 (F2274)

Chuyên nganh : KY THUÂT ĐIÊN – ĐIÊN TƯ Hê đao tao : ĐẠI HỌC CHUYỂN TIẾP

TP. HÔ CHI MINH 1-2010

Đồ án tốt nghiệp Trang 2

Page 3: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

ĐÔ AN TÔT NGHIÊP ĐƯƠC HOÀN THÀNH TAITRƯƠNG ĐAI HOC SƯ PHAM KY THÂT TP. HÔ CHI MINH

Can bô hương dân khoa hoc: Ths. NGUYÊN ĐÌNH PHÚ

Can bô châm phan biên: ..........................................................

Đô an tôt nghiêp đươc bao vê tai:

HÔI ĐÔNG CHÂM BAO VÊ ĐÔ AN TÔT NGHIÊP TRƯƠNG ĐAI HOC SƯ PHAM KY THUÂT TP.HCM

Ngay… thang…….năm 2010

Đồ án tốt nghiệp Trang 3

Page 4: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

BÔ GIAO DUC VA ĐAO TAO CÔNG HOA XA HÔI CHU NGHIA VIÊT NAMTRƯƠNG ĐAI HOC SƯ PHAM KY THUÂT Đôc Lâp – Tư Do – Hanh Phuc TP. HÔ CHI MINH

------------------

KHOA ĐIỆN - ĐIÊN TỬBÔ MÔN ĐIÊN TƯ CÔNG NGHIÊP

NHIỆM VỤ CỦA ĐỒ ÁN TỐT NGHIỆP

Ho tên sinh viên: Đỗ Thị Thu MSSV: 08301039 Lê Đức Thành Công MSSV: 08301005

Chuyên nganh: Ky thuât Điên – Điên Tư Ma nganh: 01Hê đao tao: Đai hoc chuyển tiếp Ma hê: 3Khoa hoc: 2008 – 2010 Lơp: 08301

I. TÊN ĐÊ TAI: KHẢO SÁT HỌ VI ĐIỀU KHIỂN MSP430 (F2274)II. NHIÊM VU VA NÔI DUNG:............................................................................................................................................................................

............................................................................................................................................................................

............................................................................................................................................................................

............................................................................................................................................................................

............................................................................................................................................................................

............................................................................................................................................................................

............................................................................................................................................................................

............................................................................................................................................................................

III. NGAY GIAO NHIÊM VU:................................................................................

IV. NGAY HOAN THANH NHIÊM VU: ..............................................................

V. HO VA TÊN CAN BÔ HƯƠNG DÂN: Ths. NGUYÊN ĐÌNH PHÚ

Ngày …. tháng …. năm 2010 Ngày …. tháng …. năm 2010

Cán bộ hương dân Chủ nhiệm bộ môn

Đồ án tốt nghiệp Trang 4

Page 5: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

LƠI CAM ƠN

Với tất cả sự kính trọng và lòng biết ơn sâu sắc. Nhom thực hiện đề tài xin chân thanh cam ơn thây Nguyên Đình Phú, thầy đa hương dân, chi bao tân tinh trong suôt qua trinh thực hiện đô an. Thông qua nhưng sư chi day của thầy, nhom thực hiện đề tài đa tiêp thu đươc nhưng kiên thưc và hướng đi cần thiết, từ đó có các kế hoạch và việc làm cụ thể để hoan thanh đô an đung vơi nhưng yêu câu đăt ra.

Nhom thực hiện đề tài cung chân thanh cam ơn tât ca cac thầy, cô trong khoa điện tử đã tạo điều kiện cho nhóm hoàn thành đề tài. Cảm ơn tất cả các ban đa nhiêt tinh đong gop nhưng y kiên,giúp đỡ đê cho đề tài hoan thiên hơn.

Cuôi cung nhom thực hiện đề tài cung xin cam ơn gia đinh đa tich cưc đông viên, khuyên khich, tao moi điêu kiên va trưc tiêp hô trơ kinh phi, tinh thần đê đề tài tốt nghiệp đươc hoan thanh đúng thời hạn.

Tp.HCM, thang 1/2010Nhom thưc hiên đề tài

ĐỖ THỊ THULÊ ĐỨC THÀNH CÔNG

Đồ án tốt nghiệp Trang 5

Page 6: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

TÓM TẮT ĐỒ ÁN TỐT NGHIỆP

Đề tài “ Khảo sát họ vi điều khiển MSP430 (F2274) ” nhắm đến mục tiêu khảo sát tìm hiểu, cách sử dụng phần mềm biên dịch và nạp chương trình họ vi điều khiển MSP430, khảo sát môđun EZ430-RF2500, hỗ trợ trong việc nghiên cứu vi điều khiển của hãng TEXAS INSTRUMENTS và thiết kế các bài tập mẫu dùng trong thực tập vi điều khiển MSP430 (F2274).

Nội dung đồ án được chia thành 3 phần chính:+ Phần đầu đi khảo sát cấu tạo, cấu trúc vi điều khiển MSP430 điển hình là

MSP430F2274, các thông số kỹ thuật, các loại bộ nhớ, thanh ghi,các giao thức giao tiếp ...

+ Phần thứ 2 đi khảo sát cấu tạo, cấu trúc, thông số kỹ thuật của môđun EZ430-RF2500. Cách cài đặt, sử dụng phần mềm biên dịch, nạp chương trình,các đặc trưng và điểm khác biệt giữa họ vi điều khiển này và các họ vi điều khiển khác.

+ Phần thứ 3 là thiết kế phần cứng mở rộng port giao tiếp giữa MSP430 (F2274) với bộ kít thí nghiệm và các bài mẫu trên kit thí nghiệm vi điều khiển, trong từng bài đều đưa ra yêu cầu thực hiện, lưu đồ giải thuật và chương trình mẫu được thiết kế trên ngôn ngữ C với các hướng dẫn chi tiết đầy đủ. Trong khuôn khổ đồ án của mình nhóm thực hiện đề tài thiết kế các chương trình mẫu theo mức độ từ dễ đến khó.

Đồ án cơ bản đã hoàn thành như các yêu cầu đề ra. Tuy nhiên đề tài cũng còn một vài điểm cần được bổ sung như thêm vào các mô đun mới có tính đa dạng để người học có nhiều phương án lựa chọn sử dụng phần cứng, bổ xung thêm nhiều bài tập mẫu, xây dựng và phát triển được giao diện điều khiển của thiết bị thực tập lập trình ...nhóm thực hiện đồ án sẽ luôn tiếp thu các đánh giá, nhận xét từ các thầy cô và các bạn để tiếp tục hoàn thiện hơn nữa đề tài của mình.

Đồ án tốt nghiệp Trang 6

Page 7: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

MUC LUC Trang PHÂN A: GIƠI THIÊU--------------------------------------------------------------------1

Trang bìa 2 Phân công cán bộ hướng dẫn -----------------------------------------------------------------3 Nhiêm vu đê tai -------------------------------------------------------------------------------- 4 Lơi cam ơn ------------------------------------------------------------------------------------5 Tóm tắt đồ án tốt nghiệp ---------------------------------------------------------------------- 6 Muc luc ------------------------------------------------------------------------------------7

PHẦN B: NỘI DUNG------------------------------------------------------------------------11

Chương 1: Dẫn nhập -------------------------------------------------------------------------12

1.1 Lý do chọn đề tài ------------------------------------------------------------------------131.2 Mục đích nghiên cứu ---------------------------------------------------------------------131.3 Đối tượng nghiên cứu và phạm vi nghiên cứu ----------------------------------------131.4 Ý nghĩa khoa học và thực tiễn của đề tài ----------------------------------------------131.5 Tình hình nghiên cứu --------------------------------------------------------------------131.6 Phương pháp nghiên cứu-----------------------------------------------------------------14

Chương 2: Khảo sát vi điều khiển MSP430 (F2274) ---------------------------------15

2.1 Vi điều khiển MSP430F2274 ----------------------------------------------------------162.1.1 Tổng quan về MSP430 -------------------------------------------------------------16

2.1.1.1 Kiểu thiết kế --------------------------------------------------------------------172.1.1.2 Sơ đồ chân của các loại MSP430 ------------------------------------------ 18

2.1.2 MSP430F2274 -------------------------------------------------------------------- 192.1.2.1 Sơ đồ khối của vi điều khiển MSP 430F2274----------------------------- 192.1.2.2 Cấu trúc của MSP430F2274 -------------------------------------------------19

2.1.3 Tìm hiểu về CPU 430F2274--------------------------------------------------------192.1.3.1 Các chế độ định địa chỉ -------------------------------------------------------212.1.3.2 Vùng địa chỉ --------------------------------------------------------------------212.1.3.3 Tổ chức bộ nhớ ----------------------------------------------------------------222.1.3.4 Chức năng các chân-----------------------------------------------------------232.1.3.5 Cấu trúc các thanh ghi --------------------------------------------------------312.1.3.6 Các thanh ghi có chức năng đặc biệt ---------------------------------------312.1.3.7 Cấu trúc xuất nhập ------------------------------------------------------------32

2.1.3.7.1 Hoạt động xuất nhập-----------------------------------------------------322.1.3.7.2 Thanh ghi Input PxIN -------------------------------------------------- 322.1.3.7.3 Thanh ghi đầu ra PxOUT -----------------------------------------------322.1.3.7.4 Thanh ghi định hướng PxDIR ----------------------------------------- 322.1.3.7.5 Thanh ghi cho phép điện trở kéo --------------------------------------322.1.3.7.6 Thanh ghi lựa chọn chức năng PxSEL và PxSEL2------------------322.1.3.7.7 Các ngắt P1 và P2 --------------------------------------------------------33

Đồ án tốt nghiệp Trang 7

Page 8: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

2.1.3.7.8 Địa chỉ các thanh ghi xuất/nhập số ------------------------------------332.1.4 Bộ định thời --------------------------------------------------------------------------35

2.1.4.1 Timer_A ------------------------------------------------------------------------352.1.4.1.1 Đặc tính của Timer_A --------------------------------------------------352.1.4.1.2 Timer hoạt động ở chế độ Counter 16 Bit ----------------------------362.1.4.1.3 Lựa chọn nguồn xung và bộ chia xung --------------------------------362.1.4.1.4 Kích hoạt Timer --------------------------------------------------------- 362.1.4.1.5 Các chế độ hoạt động của Timer ---------------------------------------362.1.4.1.6 Các ngắt của Timer_A ------------------------------------------------- 362.1.4.1.7 Thanh ghi điều khiển Timer_A-----------------------------------------37

2.1.4.2 Timer_B----------------------------------------------------------------382.1.4.2.1 Đặc tính của Timer_B --------------------------------------------------382.1.4.2.2 Những điểm giống và khác nhau giữu Timer_A và Timer_B ------392.1.4.2.3 Hoạt động của Timer_B -------------------------------------------------392.1.4.2.4 Kích hoạt timer -----------------------------------------------------------402.1.4.2.5 Các chế độ hoạt động của Timer--------------------------------------- 402.1.4.2.6 Các ngắt của Timer_B -------------------------------------------------- 402.1.4.2.7 Các thanh ghi của Timer_B -------------------------------------------- 41

2.1.5 Bộ khuếch đại thuật toán OA-------------------------------------------------------422.1.6 Các kênh chuyển đổi ADC ---------------------------------------------------------43

2.1.6.1 Kênh chuyển đổi ADC10------------------------------------------------------432.1.6.1.1 Hoạt động của bộ chuyển đổi ADC10 ---------------------------------442.1.6.1.2 Lựa chọn nguồn xung clock ADC10CLK ----------------------------442.1.6.1.3 Lựa chọn kênh tương tự -------------------------------------------------442.1.6.1.4 Điện áp tham chiếu ------------------------------------------------------452.1.6.1.5 Đặc tính công suất thấp của điện áp tham chiếu nội -----------------452.1.6.1.6 Thời gian lấy mẫu và chuyển đổi --------------------------------------452.1.6.1.7 Tính toán thời gian lấy mẫu ---------------------------------------------452.1.6.1.8 Chế độ chuyển đổi ------------------------------------------------------462.1.6.1.9 Ngắt của ADC10 ---------------------------------------------------------462.1.6.1.10 Các thanh ghi của ADC10 ---------------------------------------------47

2.1.6.2 Kênh chuyển đổi ADC12------------------------------------------------------492.1.6.2.1 Lựa chọn nguồn xung ---------------------------------------------------502.1.6.2.2 Điện áp tham chiếu ------------------------------------------------------512.1.6.2.3 Ngắt ADC12 --------------------------------------------------------------512.1.6.2.4 Các thanh ghi điều khiển ADC12 --------------------------------------52

2.1.7 Kênh chuyển đổi số sang tương tự DAC12 ------------------------------------- 532.1.7.1 Hoạt động của kênh chuyển đổi DAC12 ----------------------------------- 542.1.7.2 Điện áp tham chiếu của kênh DAC12--------------------------------------- 542.1.7.3 Ngắt của DAC12 --------------------------------------------------------------542.1.7.4 Các thanh ghi DAC12--------------------------------------------------------- 54

2.1.8 Hệ thống xung clock và bộ phát xung ------------------------------------------- 572.1.8.1 Thanh ghi điều khiển DCOCTL ---------------------------------------------572.1.8.2 Thanh ghi điều khiển hệ thống xung BCSCTL1---------------------------572.1.8.3 Thanh ghi điều khiển BCSCTL2 --------------------------------------------582.1.8.4 Thanh ghi cho phép ngắt IE1-------------------------------------------------592.1.8.5 Thanh ghi cờ ngắt -------------------------------------------------------------59

2.2 Mođun eZ430-RF2500 -------------------------------------------------------------------60

Đồ án tốt nghiệp Trang 8

Page 9: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

2.2.1 Công cụ phát triển eZ430-RF2500 ------------------------------------------------602.2.1.1 eZ430-RF2500 -----------------------------------------------------------------602.2.1.2 Chức năng các chân -----------------------------------------------------------612.2.1.3 Thông số kỹ thuật ------------------------------------------------------------- 63

2.2.1.3.1 MSP430F2274 ------------------------------------------------------------632.2.1.3.2 CC2500 --------------------------------------------------------------------63

2.2.1.4 Sơ đồ mạch eZ430-RF2500---------------------------------------------------652.2.1.5 Chip CC2500-------------------------------------------------------------------68

2.2.1.5.1 Giới thiệu ------------------------------------------------------------------682.2.1.5.2 Cấu tạo của chíp----------------------------------------------------------702.2.1.5.3 Nguyên lý hoạt động-----------------------------------------------------71

2.2.2 Phần mềm biên dịch và nạp chương trình (The IAR Embedded Workbench IDE) 73

2.2.2.1 Cách cài đặt phần mềm--------------------------------------------------------732.2.2.2 Cài đặt thiết bị------------------------------------------------------------------762.2.2.3 Hướng dẫn sử dụng phần mềm(IAR Embedded Workbench IDE)------81

2.2.2.3.1 Giới thiệu ------------------------------------------------------------------812.2.2.3.2 Hướng dẫn tạo New Project --------------------------------------------822.2.2.3.3 Thiết lập các thông số cho Project -------------------------------------852.2.2.3.4 Biên dịch và kiểm tra ----------------------------------------------------872.2.2.3.5 Thêm Project vào Workspace ------------------------------------------88

2.2.3 Tập lệnh C sử dụng lập trình ------------------------------------------------------892.2.3.1 Các kiểu dữ liệu cơ bản -------------------------------------------------------892.2.3.2 Toán tử quan hệ và logic ------------------------------------------------------892.2.3.3 Tập lệnh ngôn ngữ C ----------------------------------------------------------902.2.3.4 Chỉ thị tiền xử lý----------------------------------------------------------------912.2.3.5 Các hàm xử lý số --------------------------------------------------------------922.2.3.6 Các hàm hỗ trợ đặc biệt -----------------------------------------------------92

Chương 3: Thiết kế phần cứng mở rộng Port và các bài thực tập lập trình

3.1 Vấn đề đặt ra ------------------------------------------------------------------------------953.2 Các IC sử dụng trong việc mở rộng Port ----------------------------------------------95

3.2.1 IC 74HC595 -------------------------------------------------------------------------953.2.1.1 Giới thiệu -----------------------------------------------------------------------953.2.1.2 Sơ đồ chân ----------------------------------------------------------------------953.2.1.3 Cấu tạo và nguyên tắc hoạt động --------------------------------------------96

3.2.1.3.1 Cấu tạo --------------------------------------------------------------------963.2.1.3.2 Nguyên tắc hoạt động ---------------------------------------------------97

3.2.2 IC 2803 -------------------------------------------------------------------------------993.2.2.1 Giới thiệu -----------------------------------------------------------------------993.2.2.2 Sơ đồ chân ----------------------------------------------------------------------993.2.2.3 Nguyên lý hoạt động ---------------------------------------------------------100

3.3 Phương pháp mở rộng Port ------------------------------------------------------------1013.3.1 Sơ đồ nguyên lý ----------------------------------------------------------------1013.3.2 Nguyên lý hoạt động -----------------------------------------------------------1023.3.3 Sơ đồ mạch in -------------------------------------------------------------------1023.3.4 Mạch hoàn chỉnh ---------------------------------------------------------------103

Đồ án tốt nghiệp Trang 9

Page 10: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

3.3.5 Giới thiệu bộ Kit thí nghiệm --------------------------------------------------1043.4 Các bài tập ứng dụng -------------------------------------------------------------------105

3.4.1 Quy ước chung ---------------------------------------------------------------------1053.4.2 Các lưu ý trước khi sử dụng-------------------------------------------------------105

3.4.2.1 Cách truy xuất bit trong C ---------------------------------------------------1053.4.2.2 Cách mở rộng Port------------------------------------------------------------106

3.4.3 Các bài tập về Led đơn------------------------------------------------------------108Bài 1: Điều khiển 16 led chớp tắt ---------------------------------------------------108Bài 2: Điều khiển điểm sáng chạy 16 Led đơn ------------------------------------111Bài 3: Điều khiển điểm sáng chạy 32 Led đơn ------------------------------------114Bài 4: Điều khiển 32 Led đơn sáng dần --------------------------------------------118

3.4.4 Các bài tập về Led 7 đoạn---------------------------------------------------------122Bài 1: Đếm từ 0 – 999 hiển thị Led 7 đoạn ----------------------------------------122Bài 2: Đồng hồ số hiển thị Led 7 đoạn --------------------------------------------126

3.4.5 Các bài tập về LCD----------------------------------------------------------------131Bài 1: Hiển thị chữ “Thí nghiệm VDK MSP 430”trên 2 dòng dùng liệt kê----131Bài 2: Hiển thị chữ“MSP 430 SPKT TPHCM”trên 2 dòng dùng mảng--------135

3.4.6 Các bài tập về Led ma trận -------------------------------------------------------139Bài 1: Hiện chữ “ A” bằng phương pháp liệt kê ----------------------------------139Bài 2: Hiện chữ “ A” bằng phương pháp mảng -----------------------------------143Bài 3: Hiện chữ “ THANH CONG “ chạy từ phải sang trái --------------------147

3.4.7 Các bài tập về nút nhấn ----------------------------------------------------------151Bài 1: Dùng P2.2 làm nút nhấn. Khi nhấn nút nhấn thì Led ở P1.0 sáng-------151 Bài 2: Tạo 3 nút nhấn Up, Down, Reset biến. Hiển thị Led 7 đoạn ------ --- 153

3.4.8 Các bài tập về Timer --------------------------------------------------------------158Bài 1: Sử dụng ngắt Timer_A, sau chu kỳ 50000 thì chớp tắt Led P1.0 ------158Bài 2: Sử dụng ngắt Timer_B, sau chu kỳ 50000 thì chớp tắt Led P1.1 -------160

3.4.9 Các bài tập về ADC10 ------------------------------------------------------------162Bài 1: Dùng ADC10 chuyển từ tương tự sang số xuất ra 10 Led đơn ---------162Bài 2: Dùng ADC10 chuyển nhiệt độ sang độ C Led 7 đoạn --------------------165

Chương 4: Kết quả nghiên cứu kết luận và hướng phát trển

4.1 Kết quả nghiên cứu----------------------------------------------------------------------1714.2 Kết luận ---------------------------------------------------------------------------------1714.3 Hướng phát triển-------------------------------------------------------------------------171

TÀI LIỆU THAM KHẢO

Tài liệu tham khảo----------------------------------------------------------------------------172

Đồ án tốt nghiệp Trang 10

Page 11: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

PHÂN B

NÔI DUNG

Đồ án tốt nghiệp Trang 11

Page 12: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

Chương 1

DÂN NHÂP

Đồ án tốt nghiệp Trang 12

Page 13: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

1.1 Lý do chọn đề tài :

Cùng với sự phát triển nhanh chóng của khoa học kỹ thuật thì các thế hệ vi mạch luôn luôn biến đổi cho phù hợp với từng thời kỳ, mặc dù vi xử lý và vi điều khiển đã ra đời hơn 30 năm nay nhưng nó vẫn không ngừng phát triển và thêm các tính năng mới, ngày càng có nhiều họ vi điều khiển xuất hiện với tính năng vô cùng hấp dẫn và phong phú, tìm hiểu và làm chủ một loại vi điều khiển mới luôn là sự thách thức và mong muốn của các sinh viên ngành điện tử, để có thể thực hiện được điều đó cần nhiều các yếu tố như phần mềm lập trình, card nạp , các kiến thức liên quan và một điều cũng rất quan trọng là có được các đối tượng điều khiển để có thể tìm hiểu hết được các tính năng của vi điều khiển.

Xuất phát từ các nhận định trên nhóm thực hiện chọn đề tài “Khảo sát họ vi điều khiển MSP430 (F2274)” làm đồ án tốt nghiệp của mình.

1.2 Mục đích nghiên cứu :

Mục đích khảo sát tìm hiểu, cách sử dụng phần mềm biên dịch và nạp chương trình họ vi điều khiển MSP430, khảo sát môđun EZ430-RF2500, hỗ trợ trong việc nghiên cứu vi điều khiển của hãng TEXAS INSTRUMENTS và thiết kế các bài tập mẫu dùng trong thực tập vi điều khiển MSP430 (F2274).

1.3 Đối tượng nghiên cứu và phạm vi nghiên cứu :

+ Đối tượng nghiên cứu:Là các lọai vi điều khiển của TEXAS INSTRUMENTS, đại diện là con vi điều

khiển MSP430F2274. + Phạm vi nghiên cứu của đề tài:

Tìm hiểu, cài đặt, cách sử dụng phần mềm biên dịch và nạp chưong trình cho vi điều khiển MSP430. Thiết kế phần cứng mở rộng Port giao tiếp giữa MSP430F2274 với bộ Kit thí nghiệm,các bài lập trình, ứng dụng hiển thị như led đơn, led 7 đoạn, led ma trận, LCD, ADC, DAC, Timer, các mô đun giao tiếp nút nhấn, bằng ngôn ngữ C.

1.4 Ý nghĩa khoa học và thực tiễn của đề tài :

Về mặt khoa học đề tài tập trung vào khảo sát, nghiên cứu, thiết kế phần cứng và xây dựng các bài tập mẫu dùng trong thực tập vi điều khiển, dưới sự trợ giúp thiết kế mạch Orcad và mô phỏng bằng phần mềm Proteus 7.

Về mặt thực tiễn của đề tài: Khảo sát, nghiêm cứu bài tập mẫu giúp cho người học có được một kiến thức cơ bản khi tìm hiểu về một họ vi điều khiển, từ đó sẽ giúp họ có thể tự tìm hiểu thêm về các tính năng cao hơn, tạo ra các ứng dụng có giá trị trong thực tiễn.

1.5 Tình hình nghiên cứu:

Trong nước: Vì đây là 1 họ vi điều khiển hoàn toàn mới, mới gia nhập vào thị trường vi điều khiển của nước ta, nên các chương trình cũng như đề tài nghiên cứu về nó còn hạn chế, nói chung chỉ ở mức độ biết về nó chưa đi nghiên cứu sâu, tìm hiểu về cách cấu trúc, cũng như các phần mềm hỗ trợ về biên dịch và nạp chưong trình.

Đồ án tốt nghiệp Trang 13

Page 14: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

Ngoài nước: Đã phát triển trên nhiều quốc gia, và được sử dụng rộng rãi với các tính năng đặc biệt như truyền nhận tín hiệu từ xa với sự hỗ trợ của mô đun EZ430-RF2500, đo nhiệt độ, áp suất… Chúng ta cũng có thể tham khảo thêm ở trang web: www.ti.com

1.6 Phương pháp nghiên cứu:

Hai phương pháp nghiên cứu chính được sử dụng để nghiên cứu đề tài này là phương pháp nghiên cứu tài liệu và phương pháp thực nghiệm:

+ Nghiên cứu tài liệu: hướng nghiên cứu của đề tài dần dần nảy sinh từ việc thu thập tài liệu và xử lí (phân tích, tổng hợp) các tài lệu thu thập chủ yếu qua các nguồn tài liệu thầy cô và tìm tài liệu trên mạng internet .

+ Thực nghiệm: Đối với những người thực hiện đề tài thì các nội dung lí thuyết thu thập được nói chung là mới mẻ, chính sự thực nghiệm giúp kiểm chứng và hiểu rõ hơn về các nội dung này, từ đó nhóm có thể giải quyết được những vấn đề hiện tại cũng như các khó khăn sau này.Hai phương pháp trên được sử dụng thường xuyên, đan xen và bổ trợ cho nhau trong suốt quá trình thực hiện đề tài.

Đồ án tốt nghiệp Trang 14

Page 15: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

Chương 2

KHẢO SÁT VI ĐIỀU KHIỂNMSP 430 (F2274)

Đồ án tốt nghiệp Trang 15

Page 16: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

2.1 VI ĐIỀU KHIỂN MSP430F2274:

2.1.1 Tổng quan về MSP430:

MSP 430 là họ vi điều khiển cấu trúc RISC RISC (viết tắt của Reduced Instructions Set Computer - Máy tính với tập lệnh đơn giản hóa) là một phương pháp thiết kế các bộ vi xử lý (VXL) theo hướng đơn giản hóa tập lệnh, trong đó thời gian thực thi tất cả các lênh đều như nhau. 16-bit được sản xuất bởi công ty Texas Instruments.

MSP là chữ viết tắt của “MIXED SIGNAL MICROCONTROLLER”. Là dòng vi điều khiển siêu tiết kiệm năng lượng, sử dụng nguồn thấp, khoảng điện áp nguồn cấp từ 1.8V – 3.6V.

MSP 430 kết hợp các đặc tính của một CPU hiện đại và tích hợp sẵn các module ngoại vi. Đặc biệt Chíp MSP 430 là giải pháp thích hợp cho những ứng dụng yêu cầu trộn tín hiệu.

Những đặc tính của dòng MSP 430 bao gồm:• Điện áp nguồn: 1.8V – 3.6 V.• Mức tiêu thụ năng lượng cực thấp:

- Chế độ hoạt động: 270 μA tại 1MHz, 2,2 V.- Chế độ chờ: 0.7 μA.- Chế độ tắt (RAM vẫn được duy trì): 0.1 μA.

• Thời gian đánh thức từ chế độ Standby nhỏ hơn 1μs.• Cấu trúc RISC-16 bit, Thời gian một chu kỳ lệnh là 62.5 ns• Cấu hình các module Clock cơ bản:

- Tần số nội lên tới 16 MHz với 4 hiệu chỉnh tần số +- 1%.- Thạch anh 32 KHz.- Tần số làm việc lên tới 16 MHz.- Bộ cộng hưởng.- Nguồn tạo xung nhịp bên ngoài.- Điện trở bên ngoài.

• Timer_A 16 bit với 3 thanh ghi hình, 3 thanh ghi so sánh độ rộng 16 bit• Timer_B 16 bit với 3 thanh ghi hình, 3 thanh ghi so sánh độ rộng 16 bit• Giao diện truyền thông nối tiếp:

- Hỗ trợ truyền thông nối tiếp nâng cao UART, tự động dò tìm tốc độ Baud.

- Bộ mã hóa và giải mã IrDA (Infrared Data Associatio).- Chuẩn giao tiếp động bộ SPI.- Chuẩn giao tiếp I2C.

• Bộ chuyển đổi ADC 10 bit, 200 ksps với điện áp tham chiếu nội, Lấy mẫu và chốt. Tự động quét kênh, điều khiển chuyển đổi dữ liệu.

• Hai bộ khuếch đại thuật toán (hoạt động) có thể định cấu hình (Đối với MSP 430x22x4).

• Bảo vệ sụt áp.• Bộ nạp chương trình.• Module mô phỏng trên chip.• Các thành viên của dòng MSP 430 bao gồm:

- MSP430F2232: 8KB + 256B Flash Memory 512B RAM.

Đồ án tốt nghiệp Trang 16

Page 17: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

- MSP430F2252: 16KB + 256B Flash Memory 512B RAM.- MSP430F2272: 32KB + 256B Flash Memory 1KB RAM.- MSP430F2234: 8KB + 256B Flash Memory 512B RAM.- MSP430F2254: 16KB + 256B Flash Memory 512B RAM.- MSP430F2274: 32KB + 256B Flash Memory 1KB RAM.

MSP430 được sử dụng và biết đến đặc biệt trong những ứng dụng về thiết bị đo có sử dụng hoặc không sử dụng LCD với chế độ nguồn nuôi rất thấp. Với chế độ nguồn nuôi từ khoảng 1,8 đến 3,6v và 5 chế độ bảo vệ nguồn.

Với sự tiêu thụ dòng rất thấp trong chế độ tích cực thì dòng tiêu thụ là 200uA, 1Mhz, 2.2v; với chế độ standby thì dòng tiêu thụ là 0.7uA. Và chế độ tắt chỉ duy trì bộ nhớ Ram thì dòng tiêu thụ rất nhỏ 0.1uA.

MSP430 có ưu thế về chế độ nguồn nuôi. Thời gian chuyển chế độ từ chế độ standby sang chế độ tích cực rất nhỏ (< 6us). Và có tích hợp 96 kiểu hình cho hiển thị LCD. 16 bit thanh ghi, 16 bit RISC CPU.

Có một đặc điểm của họ nhà MSP là khi MCU không có tín hiệu dao động ngoại, thì MSP sẽ tự động chuyển sang hoạt động ở chế độ dao động nội.

2.1.1.1 Kiểu thiết kế:

TA

PACKAGED DEVICES

PLASTIC 38-PIN TSSOP(DA)

PLASTIC40-PINQFN(RHA)

-- 4 0°C to 85°C

MSP430F2232IDAMSP430F2252IDAMSP430F2272IDAMSP430F2234IDAMSP430F2254IDAMSP430F2274IDA

MSP430F2232IRHAMSP430F2252IRHAMSP430F2272IRHAMSP430F2234IRHAMSP430F2254IRHAMSP430F2274IRHA

-- 4 0°C to 105°C

MSP430F2232TDAwMSP430F2252TDAwMSP430F2272TDAwMSP430F2234TDAMSP430F2254TDAMSP430F2274TDA

MSP430F2232TRHAwMSP430F2252TRHAwMSP430F2272TRHAwMSP430F2234TRHAMSP430F2254TRHAMSP430F2274TRHA

Bảng 1: Kiểu thiết kế MSP430

Đồ án tốt nghiệp Trang 17

Page 18: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

2.1.1.2 Sơ đồ chân của các loại MSP 430:

Hình 1: Các kiểu chân của MSP430.

Đồ án tốt nghiệp Trang 18

Page 19: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

2.1.2 MSP430F2274:2.1.2.1 Sơ đồ khối của vi điều khiển MSP 430F2274:

Hình 2: Sơ đồ khối của MSP 430F2274

2.1.2.2 Cấu trúc chung của MSP430:

Hình 3: Cấu trúc chung của MSP430

2.1.3 Tìm hiểu về CPU của MSP430F2274:CPU có kiến trúc RISC (Reduced Intruction Set Computer) là một kiến

trúc vi xử lý theo hướng đơn giản hóa tập lệnh. Các lệnh được xây dựng để có thể thực hiện với chỉ 1 chu kỳ máy. Mặt khác bus dữ liệu và bus địa chỉ (có độ rộng

Đồ án tốt nghiệp Trang 19

Page 20: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

16 bít) tách dời nhau điều này giúp cho quá trình đọc dữ liệu và mã lệnh có thể diễn ra đồng thời do đó nâng cao hiệu suất làm việc của vi xử lý.

CPU gồm 16 thanh ghi 16 bit. R0-15 có các chức năng đặc biệt. Các thanh ghi còn lại được sử dụng với mục đích chung. CPU có sơ đồ khối như sau:

Hình 4: kiến trúc RISC của CPU

Đồ án tốt nghiệp Trang 20

Page 21: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

2.1.3.1 Các chế độ định địa chỉ: MSP 430 có 7 chế độ định địa chỉ: + Chế độ thanh ghi. + Chế độ chỉ số. + Chế độ định địa chỉ ký hiệu. + Chê độ định địa chỉ tuyệt đối. + Chế độ định địa chỉ thanh ghi gián tiếp. + Chế độ định địa chỉ tăng tự động. + Chê độ định địa chỉ tức thời.

2.1.3.2 Vùng địa chỉ:Vùng nhớ có thể định địa chỉ có dung lượng là 128 KB.

Hình 5: Sơ đồ vùng nhớ chương trình và dữ liệu

a. Bộ nhớ chương trình và dữ liệu Flash/ ROM: Địa chỉ bắt đầu của bộ nhớ chương trình và dữ liệu Flash/ ROM phụ thuộc vào dung lượng hiện thời và sự thay đổi của thiết bị, địa chỉ kết thúc là 0x1FFFF.

b. RAM: Vùng nhớ RAM bắt đầu từ địa chỉ 0200h, địa chỉ kết thúc phụ thuộc vào dung lượng hiện thời và sự thay đổi của thiết bị. RAM có thể sử dụng cho cả hai mã và dữ liệu

c. Các module ngoại vi: Vùng địa chỉ từ 0100h – 01FFh là vùng địa chỉ của các module ngoại vi 16 bít. Vùng địa chỉ từ 010h – 01Fh được đăng ký cho các module ngoại vi 8 bít.

d. Vùng địa chỉ của các thanh ghi đặc biệt (SFRs): Một vài thiết bị ngoại vi được hỗ trở bởi các thanh ghi có chức năng đặc biệt, được định địa chỉ byte và bao gồm 16 byte thấp của vùng địa chỉ.

Đồ án tốt nghiệp Trang 21

Page 22: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

2.1.3.3 Tổ chức bộ nhớ:

Hình 6: Tổ chức bộ nhớ

Byte có thể nằm ở vùng địa chỉ chẵn hoặc lẻ. Word chỉ nằm ở vùng địa chỉ chẵn, khi sử dụng cấu trúc word chỉ có vùng địa chỉ chẵn được sử dụng. Byte thấp của 1 word luôn là vùng địa chỉ chẵn. Byte cao của word nằm ở địa chỉ lẻ tiếp theo.

Bộ nhớ có thể được mở rộng thậm chí vượt quá số địa chỉ có thể định địa chỉ trực tiếp, đây là một ưu điểm của bộ nhớ có cấu trúc kiểu RISC. Bộ nhớ được chia thành các Bank, tại một thời điểm chỉ có một Bank được truy xuất.

Đồ án tốt nghiệp Trang 22

Page 23: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

2.1.3.4 Chức năng các chân:

Đồ án tốt nghiệp Trang 23

Page 24: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

Bảng 2: Bảng chức năng các chân.• Chân P1.0/TACLK/ADC10CLK (29):

Chân xuất / nhập số. Ngõ vào xung clock TACLK của Timer A. Bộ chuyển đổi xung của ADC10

• Chân P1.1/TA0 (30): Chân xuất / nhập số. Timer_A: Ngõ vào CCI0A chế độ capture, ngõ ra OUT0 chế độ so

sánh.• Chân P1.1/TA0 (31):

Chân xuất / nhập số. Timer_A: Ngõ vào CCI1A chế độ capture, ngõ ra OUT1 chế độ so

sánh.• Chân P1.3/TA0 (32):

Chân xuất / nhập số. Timer_A: Ngõ vào CCI2A chế độ capture, ngõ ra OUT2 chế độ so

sánh.• Chân P1.4/SMCLK/TCK (33):

Chân xuất / nhập số.

Đồ án tốt nghiệp Trang 24

Page 25: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

Ngõ ra SMCLK (Sub-Main clock) của khối tạo dao động nội. Ngõ vào kiểm tra xung clock TCK .

• Chân P1.5/TA0/TMS (34): Chân xuất / nhập số Ngõ ra OUT0 củaTimer_A chế độ so sánh. TSM: Ngõ vào lựa chọn chế độ kiểm tra.

• Chân P1.6/TA1/TDI/TCLK (35): Chân xuất / nhập số TA1: ngõ ra OUT1của Timer A ở chế độ so sánh. TDI: Ngõ vào kiểm tra dữ liệu. TCLK: Ngõ vào kiểm tra xung clock.

• Chân P1.7/TA2/TDO/TDI (36): Chân xuất / nhập số TA2: ngõ ra OUT2 của Timer A ở chế độ so sánh:. TDI: Ngõ vào kiểm tra dữ liệu. TDO: Ngõ ra kiểm tra dữ liệu.

• Chân P2.0/ACLK/OA0I0 (6): Chân xuất / nhập số. Ngõ ra xung clock ACLK. Ngõ vào tương tự A0 của kênh ADC10.

• Chân P2.1/TAINCLK/SMCLK/A1/OA0O (7): Chân xuất / nhập số. Timer_A. Kênh ADC10: Ngõ vào kênh tương tự A1, ngõ ra kênh tương tự

OA0. Xung clock INCLK của Timer_A Xung clock chủ SMCLK

• Chân P2.2/TAINCLK/SMCLK/A1/OA0O (8): Chân xuất / nhập số. Ngõ vào tương tự A1 kênh ADC10 Ngõ vào CCI0B của Timer_A chế độ capture. Ngõ ra OUT0 của kênh ADC10 chế độ so sánh. Ngõ vào tương tự A2

• Chân P2.3/TA1/A3/VREF-/VeREF-/OA1I1/OA1O (27): Chân xuất / nhập số. Ngõ vào CCI1 của Timer_A. Ngõ ra OUT1 kênh ADC10 chế độ so sánh Ngõ vào tương tự A3 của kênh ADC10. Điện áp tham chiếu âm VREF-/ VeREF-

• Chân P2.4/TA2/A4/VREF+/VeREF+/OA1I0 (28): Chân xuất / nhập số. Ngõ vào tương tự A4 của kênh ADC10 Ngõ ra OUT2 của Timer_A chế độ so sánh. Điện áp tham chiếu dương VREF+/ VeREF+

• Chân P2.5/ROSC (40):

Đồ án tốt nghiệp Trang 25

Page 26: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

Chân xuất / nhập số. Ngõ vào điện trở ngoài để định nghĩa tần số DCO.

• Chân XIN/ P2.6 (3): Ngõ vào kết nối với dao động thạch anh. Chân xuất/ nhập số.

• Chân XUOT/P2.7 (2): Ngõ vào kết nối với dao động thạch anh. Chân xuất/nhập số.

• Chân P3.0/UCB0STE/UC0CLK/A5 (9): Chân xuất / nhập số. Chân cho phép truyền dữ liệu USCI_B0 khi hoạt động ở chế độ tớ. Ngõ vào tương tự A5 của kênh ADC10

• Chân P3.1/UCB0SIMO/UCB0SDA (10): Chân xuất / nhập số. Ngõ vào USCI_B0 khi hoạt động ở chế độ slave, ngõ ra khi hoạt

động ở chế độ master trong chế độ SPI. Chân dữ liệu SDA I2C trong chế độ I2C.

• Chân P3.2/UCB01SOMI/UCB0SCL (11): Chân xuất / nhập số. Ngõ ra USCI_B0 khi hoạt động ở chế độ tớ, ngõ vào khi hoạt động

ở chế độ chủ trong chế độ SPI. Xung clock SCL I2C trong chế độ I2C.

• Chân P3.3/UCB0CLK/UCA0STE (12): Chân xuất / nhập số. Xung clock USCI_B0 Cho phép truyền dữ liệu USCI_A0 trong chế độ tớ.

• Chân P3.4/UCA0TXD/UCA0SIMO (23): Chân xuất / nhập số. Chân truyền dữ liệu nối tiếp USCI_A0 trong chế độ UART. Ngõ vào chế độ tớ, ngõ ra chế độ chủ trong chế độ SPI.

• Chân P3.5 UCA0RXD/UCA0SOMI (24): Chân xuất / nhập số. Ngõ vào nhận dữ liệu USCI_A0 trong chế độ UART. Ngõ ra chế độ tớ/ ngõ vào chế độ chủ trong chế độ SPI.

• Chân P3.6 / A6/OA0I2 (25): Chân xuất / nhập số. Ngõ vào tương tự A6 của kênh chuyển đổi ADC10. Ngõ vào tương tự OA0I2 của kênh OA0.

• Chân P3.7 / A7/OA1I2 (26): Chân xuất / nhập số. Ngõ vào tương tự A7 của kênh chuyển đổi ADC10. Ngõ vào tương tự OA1I2 của kênh OA1.

• Chân P4.0/TB0 (15): Chân xuất / nhập số.

Đồ án tốt nghiệp Trang 26

Page 27: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

Ngõ vào CCI0A của Timer_B chế độ capture, ngõ ra OUT0 chế độ so sánh.

• Chân P4.1/TB1 (16): Chân xuất / nhập số. Ngõ vào CCI1A của Timer_B chế độ capture. Ngõ ra OUT1 chế độ

so sánh.• Chân P4.2/TB2 (17):

Chân xuất / nhập số. Ngõ vào CCI2A của Timer_B chế độ capture. Ngõ ra OUT2 chế độ

so sánh.• Chân P4.3/TB0/A12/OA0O (18):

Chân xuất / nhập số. Ngõ vào CCI0B của Timer_B chế độ capture. Ngõ ra OUT0 chế độ

so sánh. Ngõ vào tương tự A12 của kênh chuyển đổi ADC10.

• Chân P4.4/TB1/A13/OA1O (19): Chân xuất / nhập số. Timer_B: Ngõ vào CCI1B chế độ capture. Ngõ ra OUT1 chế độ so

sánh. Ngõ vào tương tự A13 của kênh chuyển đổi ADC10.

• Chân P4.5/TB2/A14/OA0I3 (20): Chân xuất / nhập số. Timer_B: Ngõ ra OUT0 chế độ so sánh. Ngõ vào tương tự A14 của kênh chuyển đổi ADC10.

• Chân P4.6/TBOUTH/A15/OA1I3 (21): Chân xuất / nhập số. Timer_B. Ngõ vào tương tự A15 của kênh chuyển đổi ADC10.

• Chân P4.7/TBCLK (22): Chân xuất / nhập số. Ngõ vào nhận xung TBCLK của timer_B.

• Chân RST/NMI/SBWTDIO (5): Chân Reset tác động ở mức thấp hoặc cấm ngắt.

• Chân TEST/SBWTCK (37):• Chân DVCC (38,39), AVCC (14): Chân cấp nguồn VCC

• Chân DVSS (1,4), AVSS (13): Chân cấp mass• Chân P1.0/TACLK/ADC10/CLK (29):

Chân xuất / nhập số. TACLK: Ngõ vào nhận xung clock cho Timer A. ADC10: Ngõ vào tương tự A10. CLK: Ngõ vào bộ chuyển đổi xung clock từ nguồn xung ngoài.

• Chân P1.1/TA0 (30): Chân xuất / nhập số. Timer_A, lưu trữ: Ngõ vào CCI0A, so sánh: Ngõ ra OUT0.

• Chân P1.1/TA0 (31): Chân xuất / nhập số.

Đồ án tốt nghiệp Trang 27

Page 28: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

Timer_A, lưu trữ: Ngõ vào CCI1A, so sánh: Ngõ ra OUT1.• Chân P1.3/TA0 (32):

Chân xuất / nhập số. Timer_A, lưu trữ: Ngõ vào CCI2A, so sánh: Ngõ ra OUT2.

• Chân P1.4/SMCLK/TCK (33): Chân xuất / nhập số. SMCLK (Sub-Main clock): Ngõ ra của khối tạo dao động nội, cung

cấp cho các module ngoại vi. TCK: Ngõ vào kiểm tra xung clock cho việc lập trình.

• Chân P1.5/TA0/TMS (34): Chân xuất / nhập số TA0: Timer_A chế độ so sánh, ngõ ra OUT0. TSM: Ngõ vào lựa chọn chế độ kiển tra.

• Chân P1.6/TA1/TDI/TCLK (35): Chân xuất / nhập số TA1: Timer A,chế độ so sánh: ngõ ra OUT1. TDI: Ngõ vào kiểm tra dữ liệu. TCLK: Ngõ vào kiểm tra xung clock.

• Chân P1.7/TA2/TDO/TDI (36): Chân xuất / nhập số TA2: Timer A,chế độ so sánh: ngõ ra OUT2. TDI: Ngõ vào kiểm tra dữ liệu. TDO: Ngõ ra kiểm tra xung clock.

• Chân P2.0/ACLK/OA0I0 (6): Chân xuất / nhập số. Ngõ ra hệ thống xung clock ACLK, ADC10. Ngõ vào kênh tương tự A0/OA0. Ngõ vào kênh tương tự I0.

• Chân P2.1/TAINCLK/SMCLK/A1/OA0O (7): Chân xuất / nhập số. Timer_A. Kênh ADC10: Ngõ vào kênh tương tự A1, ngõ ra kênh tương tự

OA0.• Chân P2.2/TAINCLK/SMCLK/A1/OA0O (8):

Chân xuất / nhập số. Timer_A. Lưu trữ ngõ vào CCI0B, nhận BLS. Ngõ ra OUT0 của kênh ADC10 chế độ so sánh. Ngõ vào kênh tương tự A2/OA0. Ngõ vào kênh tương tự I1.

• Chân P2.3/TA1/A3/VREF-/VeREF-/OA1I1/OA1O (27): Chân xuất / nhập số. Timer_A. Ngõ vào CCI1 chế độ lưu trữ. Chế độ so sánh: ngõ ra OUT1 kênh ADC10. Ngõ vào kênh tương tự A3.

Đồ án tốt nghiệp Trang 28

Page 29: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

Ngõ vào điện áp tham chiếu âm.• Chân P2.4/TA2/A4/VREF+/VeREF+/OA1I0 (28):

Chân xuất / nhập số. Điện áp tham chiếu dương .

• Chân P2.5/ROSC (40): Chân xuất / nhập số. Ngõ vào điện trở ngoài để định nghĩa tần số DCO.

• Chân XIN/ P2.6 (3): Ngõ vào kết nối với dao động thạch anh. Chân xuất/ nhập số.

• Chân XUOT/P2.7 (2): Ngõ vào kết nối với dao động thạch anh. Chân xuất/nhập số.

• Chân P3.0/UCB0STE/UC0CLK/A5 (9): Chân xuất / nhập số. Chân cho phép truyền dữ liệu khi ở chế độ USCI_B0. Ngõ vào nhận xung của USCI_A0. Ngõ ra kênh ADC10. Ngõ vào kênh tương tự A5.

• Chân P3.1/UCB0SIMO/UCB0SDA (10): Chân xuất / nhập số. Ngõ vào chế độ tớ USCI_B0. Ngõ vào chế độ chủ trong chế độ SPI. Dữ liệu SDA I2C trong chế độ I2C.

• Chân P3.2/UCB01SOMI/UCB0SCL (11): Chân xuất / nhập số. Ngõ ra chế độ tớ USCI_B0. Ngõ vào chế độ chủ trong chế độ SPI. Xung clock SCL I2C trong chế độ I2C.

• Chân P3.3/UCB0CLK/UCA0STE (12): Chân xuất / nhập số. Cho phép truyền dữ liệu trong chế độ tớ USCI_A0.

• Chân P3.4/UCA0TXD/UCA0SIMO (23): Chân xuất / nhập số. Chân truyền dữ liệu nối tiếp USCI_A0 trong chế độ UART. Ngõ vào chế độ tớ, ngõ ra chế độ chủ trong chế độ SPI.

• Chân P3.5 UCA0RXD/UCA0SOMI (24): Chân xuất / nhập số. Ngõ vào nhận dữ liệu USCI_A0 trong chế độ UART. Ngõ ra chế độ tớ/ ngõ vào chế độ chủ trong chế độ SPI.

• Chân P3.6 / A6/OA0I2 (25): Chân xuất / nhập số. Ngõ vào tương tự A6 của kênh chuyển đổi ADC10. Ngõ vào tương tự I2 của kênh OA0.

• Chân P3.7 / A7/OA1I2 (26): Chân xuất / nhập số. Ngõ vào tương tự A7 của kênh chuyển đổi ADC10.

Đồ án tốt nghiệp Trang 29

Page 30: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

Ngõ vào tương tự I2 của kênh OA1.• Chân P4.0/TB0 (15):

Chân xuất / nhập số. Timer_B, chế độ lưu trữ: Ngõ vào CCI0A, chế độ so sánh: Ngõ ra

OUT0.• Chân P4.1/TB1 (16):

Chân xuất / nhập số. Timer_B, chế độ lưu trữ: Ngõ vào CCI1A, chế độ so sánh: Ngõ ra

OUT1.• Chân P4.2/TB2 (17):

Chân xuất / nhập số. Timer_B, chế độ lưu trữ: Ngõ vào CCI2A, chế độ so sánh: Ngõ ra

OUT2.• Chân P4.3/TB0/A12/OA0O (18):

Chân xuất / nhập số. Timer_B, chế độ lưu trữ: Ngõ vào CCI0B, chế độ so sánh: Ngõ ra

OUT0. Ngõ vào tương tự A12 của kênh chuyển đổi ADC10, ngõ ra tương

tự OA0.• Chân P4.4/TB1/A13/OA1O (19):

Chân xuất / nhập số. Timer_B, chế độ lưu trữ: Ngõ vào CCI1B, chế độ so sánh: Ngõ ra

OUT1. Ngõ vào tương tự A13 của kênh chuyển đổi ADC10, ngõ ra tương

tự OA1.• Chân P4.5/TB2/A14/OA0I3 (20):

Chân xuất / nhập số. Timer_B, chế độ so sánh: Ngõ ra OUT0. Ngõ vào tương tự A14 của kênh chuyển đổi ADC10, ngõ vào tương

tự I3 củaOA0.• Chân P4.6/TBOUTH/A15/OA1I3 (21):

Chân xuất / nhập số. Timer_B. Ngõ vào tương tự A15 của kênh chuyển đổi ADC10, ngõ vào tương

tự OA0.• Chân P4.7/TBCLK (22):

Chân xuất / nhập số. Ngõ vào nhận xung TBCLK của timer_B.

• Chân RST/NMI/SBWTDIO (5): Chân Reset tác động ở mức thấp hoặc cấm ngắt.

• Chân TEST/SBWTCK (37):• Chân DVCC (38,39), AVCC (14): Chân cấp nguồn VCC

• Chân DVSS (1,4), AVSS (13): Chân cấp mass

Đồ án tốt nghiệp Trang 30

Page 31: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

2.1.3.5 Cấu trúc các thanh ghi:Bốn thanh ghi đầu tiên từ R0 – R3 được chỉ định làm thanh ghi bộ đếm

chương trình, con trỏ ngăn xếp, thanh ghi trạng thái, constant Generator. Các thanh ghi còn lại là những thanh ghi sử dụng mục đích chung.

Các thiết bị ngoại vi được kết nối tới CPU sử dụng dữ liệu, địa chỉ, bus điều khiển.

Hình 8: Cấu trúc thanh ghi2.1.3.6 Các thanh ghi có chức năng đặc biệt:

Tất cả các ngắt và module cho phép truy xuất BIT đều được tập trung ở vùng địa chỉ thấp nhất. Các bít của các thanh ghi chức năng đặc biệt không được cho phép tới một mục đích chức năng vật lý của thiết bị. Phần mềm đơn giản được cung cấp với sắp xếp này.

Thanh ghi cho phép ngắt 1 và 2:Trong đó:

Đồ án tốt nghiệp Trang 31

Page 32: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

- WDTIE Cho phép ngắt Whatchdog Timer: Không hoạt động:\ nếu chế độ whatchdog được lựa chọn. Hoạt động nếu chế độ timer được lựa chọn.- OFIE : Cho phép dừng bộ phát xung.- NMIIE : Cấm không cho phép ngắt được.

2.1.3.7 Cấu trúc xuất nhập: Chíp MSP 430F2274 có thể lên tới 8 port xuất nhập từ P1 – P7. Mỗi port có 8

chân. Mỗi chân đều có những chức năng đặc biệt có thể định hướng làm đầu vào hoặc đầu ra, có thể đọc truy suất hoặc điều khiển.

Ports P1 và P2 có khả năng ngắt. Mỗi ngắt được cấu hình riêng theo cạnh lên hoặc cạnh xuống của sườn xung hoặc theo tín hiệu vào tương ứng với các vector ngắt.

Đặc tính xuất nhập bao gồm:+ Chức năng đặc biệt của các chân không phụ thuộc vào việc lập

trình.+ Có thể lựa chọn làm OUTPUT hoặc INPUT.+ P1 và P2 được cấu hình riêng cho tín hiệu ngắt.+ Không phụ thuộc thanh ghi output hay input.+ Cấu hình có điện trở kéo.

2.1.3.7.1 Hoạt động xuất nhập:Hoạt động xuất nhập dữ liệu được lập trình bằng phần mềm.

2.1.3.7.2 Thanh ghi Input PxIN: Khi được lựa chọn làm đầu vào. Giá trị mỗi bít của thanh ghi tương ứng với

tín hiệu.Bit = 0 đầu vào ở mức thấp.Bit = 1 tín hiệu ở mức cao.

2.1.3.7.3 Thanh ghi đầu ra PxOUT:Khi không sử dụng điện trở kéo, và được định hướng làm đầu ra. Giá trị các

bít của thanh ghi tương ứng:Bit =0 đầu ra ở mức thấp.Bit = 1 đầu ra ở mức cao.

Nếu cho phép điện trở kéo, giá trị của bít tương ứng với điện trở được lựa chọn:

Bit = 0 khi điện trở kéo xuống.Bít = 1 khi điện trở kéo lên.

2.1.3.7.4 Thanh ghi định hướng PxDIR:Các chân của mỗi port được định hướng làm đầu ra hoặc đầu vào phục thuộc

vào giá trị các bít của thanh ghi PxDIR:Nếu bit = 0 chân được định hướng làm đầu vào.Nếu bit = 1 chân được định hướng làm đầu ra.

Đồ án tốt nghiệp Trang 32

Page 33: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

2.1.3.7.5 Thanh ghi cho phép điện trở kéo:Mối bít của thanh ghi PxREN cho phép hoặc không cho phép điện trở kéo:

Bit = 1 điện trỏ kéo lên. Bit = 0 điện trở kéo xuốNg.

2.1.3.7.6 Thanh ghi lựa chọn chức năng PxSEL và PxSEL2:Các chân của mỗi port đều có nhiều chức năng tương ứng với các module

ngoại vi khác nhau. Mỗi bít của thanh ghi PxSEL và PxSEL2 được sử dụng để lựa chọn chức năng là các port xuất nhập hoặc chức năng đặc biệt.

PxSEL2 PXSEL Chức năng của chân0 0 Chức năng xuất nhập0 1 Module đầu tiên được lựa chọn1 0 Đăng ký trước 1 1 Module ngoại vi thứ 2 được lựa chọn

Chú ý: Khi PxSEL =1 các ngắt của P1, P2 bị cấm. Khi bất kỳ bit nào của thanh ghi P1SELx hoặc P2SELx được set, các ngắt tương ứng với các chân này sẽ bị cấm.

2.1.3.7.7 Các ngắt P1 và P2:Mỗi chân của port P1 và P2 đều có khả năng ngắt. Các ngắt được cấu hình bởi

các thanh ghi PxIFG, PxIE VÀ PxIES. Tất cả các chân của port P1 một nguyên nhân tương ứng với một vector ngắt. Tất cả các chân của port 2 có nhiều hơn một nguyên nhân khác nhau tương ứng với 1 vector. Có thể sử dụng thanh ghi PxIFG để xác định nguyên nhân các ngắt port P1 và P2.

a) Thanh ghi cờ ngắt P1IFG và P2IFG:- Mỗi bit của thanh ghi PxIFGx là một cờ ngắt tương ứng với chân xuất/

nhập và khi có cạnh xung tín hiệu tại các chân. Tất cả các cờ ngắt của thanh ghi PxIFGx đòi hỏi một ngắt tương ứng với các bit PxIE và GIE được set. Mỗi cờ ngắt đòi hỏi phải reset bằng phần mềm. Phần mềm cũng có thể set cờ ngắt:

+ Bit =0 Không có ngắt nào đang chờ.+ Bit =1 Có 1 ngắt đang chờ được phục vụ.

Chú ý: Khi thay đổi thanh ghi PxOUT và PxDIP có nghĩa là bạn đang set cờ ngắt tương ứng.

b) Thanh ghi lựa chọn ngắt theo sườn xung P1IES, P2IES: - Mỗi bit của thanh ghi PxIES lựa chọn ngắt theo cạnh lên hay cạnh

xuống tương ứng với mỗi chân xuất/ nhập:+ Bit = 0 Cờ ngắt được set khi có cạnh lên của xung.+ Bit = 1 Cò ngắt được set khi có cạnh xuống của xung.

c) Thanh ghi cho phép ngắt P1IE và P2IE:- Mỗi bít PxIE cho phép hay cấm ngắt và liên quan đến cờ ngắt tương

ứng:+ Bit = 0: Cấm ngắt.+ Bit = 1: Cho phép ngắt.

2.1.3.7.8 Địa chỉ các thanh ghi xuất/nhập số:

Đồ án tốt nghiệp Trang 33

Page 34: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

MSP 430 được cấu hình để làm việc với BYTE, điều này sẽ gây khó khăn cho người lập quen làm việc với BIT. Để có thể làm việc với BIT ta phải định nghĩa lại địa chỉ của thanh ghi điều khiển PORT.

Đồ án tốt nghiệp Trang 34

Page 35: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

Bảng 3: Địa chỉ thanh ghi xuất nhập

2.1.4 Bộ định thời:MSP 340 có hai bộ định thời 16 Bit là Timer_A và Timer_B nó cũng đồng

thời đóng vai trò là bộ đếm.

2.1.4.1 Timer_A:2.1.4.1.1 Đặc tính của Timer_A:

Là một bộ Timer/Counter 16 bit. Với ba thanh ghi lưu trữ và 3 thanh ghi so sánh. Là một Timer đa chức năng. Đếm thời gian, so sánh, PWM . Timer_A cũng có khả năng ngắt khi counter đếm tràn hoặc mỗi thanh ghi đếm tràn. Các đặc tính chính của Timer_A bao gồm:

+ Là một Timer/counter 16 Bit không đồng bộ với 4 chế độ hoạt động.+ Có thể lựa chọn và cấu hình nguồn xung+ Hai tới 3 thanh ghi có thể cấu hình capture/compare+ Cấu hình đầu ra với chế độ PWM+ Chốt ngõ vào và ngõ ra không đồng bộ

Đồ án tốt nghiệp Trang 35

Page 36: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

Hình 9: Sơ đồ khối của Timer_A

2.1.4.1.2 Timer hoạt động ở chế độ Counter 16 Bit:Ở chế độ Counter giá trị thanh ghi TAR tăng hoặc giảm theo cạnh lên của xung

clock (tùy thuộc vào chế độ hoạt động). Giá trị của thanh ghi TAR có thể được ghi hoặc đọc bởi phần mềm. Nó có khả năng tạo ra một ngắt khi đếm tràn.

Thanh ghi TAR có thể bị xóa khi set bit TACLR. Việc set bit TACLR đồng thời cũng xóa giá trị lựa chọn cho bộ chia xung hoặc chế độ đếm lên hay đếm xuống.

2.1.4.1.3 Lựa chọn nguồn xung và bộ chia xung:Timer có thể lựa chọn nguồn từ xung từ ACLK, SMCLK hoặc sử dụng nguồn

xung ngoài thông qua TACLK hoặc INCLK. Nguồn xung được lựa chọn nhờ bít TASSELx. Các nguồn xung được chọn có thể đã được chia 2, 4 hoặc 8. Bộ chia xung được reset khi set bit TACLR.

2.1.4.1.4 Kích hoạt Timer:Timer có thể được kích hoạt hoặc kích hoạt lại bằng các cách sau đây:

Đồ án tốt nghiệp Trang 36

Page 37: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

+ Timer đếm khi MCx > 0 và nguồn xung đã được kích hoạt.+ Khi timer đang hoạt động ở chế độ đếm lên hoặc đếm xuống. Có thể

dừng timer bằng cách ghi TACCR0 = 0. Timer sẽ kích hoạt trở lại khi giá trị ghi vào TACCR0 khác 0. Giá trị đếm lên sẽ bắt đầu từ 0.

2.1.4.1.5 Các chế độ hoạt động của Timer:Timer hoạt động ở 4 chế độ: Chế độ dừng, chế độ đếm lên, chế độ tiếp tục, chế

độ đếm lên/xuống. Các chế độ này được lựa chọn bằng bit MCx.

MCx Mode Hoạt động00 Stop Timer được tạm dừng01 Up Timer đếm từ 0 tới giá trị đỉnh của TACCR010 Continuous Timer đếm từ 0 tới 0FFFFh11 Up/down Timer đếm từ 0 đến giá trị đỉnh của TACCR0 rồi

đếm về 0

2.1.4.1.6 Các ngắt của Timer_A:Có hai ngắt được tạo ra do Timer_A:

+ Vector ngắt TACCR0 cho TRCCR0 CCIFG.+ Vector ngắt TAIV cho tất cả các cờ ngắt CCIFG khác và TAIFG.

Trong chế độ lưu trữ CCIFG được set khi giá trị của timer được lưu trữ do thanh ghi TACCRx. Trong chế độ so sánh bất kỳ cờ CCIFG được set nếu TAR đếm tới giá trị TACCRx. Có thể sử dụng phần mềm để set hoặc xóa bất kỳ cờ ngắt CCIFG nào. Tất cả các cờ ngắt CCIFG yêu cầu một ngắt khi bit CCIE và GIE được set.

Ngắt TACCR0 CCIFG là ngắt của Timer_A có mức ưu tiên cao nhất. Cờ ngắt TACCR0 CCIFG tự động reset khi ngắt TACCR0 được phục vụ.

Hình 10: Cờ ngắt chế độ trong chế độ so sánh và lưu trữ

2.1.4.1.7 Thanh ghi điều khiển Timer_A:

Đồ án tốt nghiệp Trang 37

Page 38: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

Bảng 4: Bảng liệt kê các thanh ghi điều khiển Timer_A

Thanh ghi điều khiển TACTL:

+ Bit 15-10: Không sử dụng.+ TASSELx Bit 9-8: Lựa chọn nguồn xung clock:

00 TACLK01 ACLK10 SMCLK11 INCLK

+ Idx Bit 7-6: Lựa chọn bộ chia trước:00 /101 /210 /411 /8

+ MCx Bit 5-4: Lựa chọn chế độ hoạt động:0 Dừng chế độ1 Chế độ lên10 Tiếp tục chế độ11 Chế độ lên/xuống

+ TACLR Bit 2: Xóa Timer_A. Khi bit này được set, giá trị đếm, giá trị bộ chia trước đều được reset.

+ TAIE Bit 1: Cho phép ngắt. Khi bit =1 cho phép ngắt, bit = 0 cấm ngắt.+ TAIFG Bit 0: Cờ ngắt của Timer_A:

Bit = 0 Không có ngắt nào đang chờBit = 1 Có ngắt đang chờ phục vụ

Các thanh ghi còn lại các bạn có thể tham khảo trong datasheet.

2.1.4.2 Timer_B:Timer_B là bộ định thời 16 bít có thể hoạt động ở 2 chế độ Timer và counter.

Timer_B đáp ứng đa chức năng capture/ so sánh, PWM. Timer_B cũng có khả năng tạo ra ngắt khi nó đếm tràn, hoặc các thanh ghi capture/ so sánh.

2.1.4.2.1 Các đặc tính của Timer_B:+ Là một Timer/counter 16 Bit không đồng bộ với 4 chế độ hoạt động.+ Có thể lựa chọn và cấu hình nguồn xung.+ Có từ 3 tới 7 thanh ghi có thể cấu hình capture/compare.+ Cấu hình đầu ra với chế độ PWM.+ Chốt ngõ vào và ngõ ra không đồng bộ.

Đồ án tốt nghiệp Trang 38

Page 39: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

Hình 11: Sơ đồ khối của Timer_B

Đồ án tốt nghiệp Trang 39

Page 40: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

2.1.4.2.2 Những điểm giống và khác nhau giữu Timer_A và Timer_B:Timer_B mang đầy đủ đặc điểm của Timer_A ngoài ra Timer_B có các đặc

tính đặc biệt sau:+ Kích thước của Timer có thể lập trình được có độ dài 8, 10, 12 hoặc 16

Bit.+ Thanh ghi TBCCRx là 2 bộ đệm có thể được nhóm lại.+ Tất cả các đầu ra của Timer_B đều có thể đặt ở trạng thái tổng trở cao.+ Chức năng của bit SCCI không được thực hiện trong Timer_B.

2.1.4.2.3 Hoạt động của Timer_B:Timer hoạt động ở chế độ Counter: Khi hoạt động ở chế độ đếm giá trị thanh

ghi TBR tăng hoặc giảm (tùy thuộc vào chế độ hoạt động) theo cạnh lên của xung clock. Thanh ghi TBR có thể ghi hoặc đọc. Timer_B có thể tạo ra ngắt khi đếm tràn.

Thanh ghi TBR cũng có thể được xóa bằng cách set bit TBCLR. Khi bít này được set đồng thời cũng reset lại giá trị của bộ chia và giá trị đếm.

Chú ý: Bạn nên dừng hoạt động của Timer trước khi muốn chỉnh sửa. Những thay đổi ghi vào TRB sẽ được thực thi ngay lập tức vì vậy nếu thay đổi giá trị khi timer đang hoạt động có thể hoạt động của nó không còn chính xác. Có thể đọc giá trị của Timer khi nó đang hoạt động.

Độ dài thanh ghi TBR:Xung cấp cho Timer có thể lấy từ nguồn xung ACLK hoặc SMCLK hoặc từ nguồn xung ngoài TBCLK. Nguồn xung được lựa chọn nhờ bit TBSSELx, nguồn xung được lựa chọn có thể đã được chi trước 2, 4, hoặc 8. Giá trị của bộ chia bị reset khi set bit TBCLR.

2.1.4.2.4 Kích hoạt timer:Timer có thể được khởi động hoặc khởi động lại bằng các cách sau:

+ Timer đếm khi MCx >0 và nguồn xung clock hoạt động.+ Khi timer hoạt động ở một trong hai chế độ up, up/down. Có thể dừng

hoạt động của timer bằng cách đặt TBCL0=0. Timer được kích hoạt trở lại khi giá trị này khác 0. Khi kích hoạt trở lại giá trị của timer bắt đầu từ 0.

2.1.4.2.5 Các chế độ hoạt động của Timer:Timer_B hoạt động ở 4 chế độ, các chế được lựa chọn nhờ bit MCx.

MCx Mode Hoạt động00 Stop Tạm dừng Timer01 Up Timer đếm từ 0 tới giá trị đỉnh của TBCL010 Continuous Timer đếm từ 0 tới giá trị được lựa chọn bởi bít

CNTLx11 Up/down Timer đếm từ 0 đến giá trị đỉnh của TBCL0 rồi

đếm xuống về 0

2.1.4.2.6 Các ngắt của Timer_B:Timer_B có thể tạo ra 2 ngắt:

+ Vector ngắt TBCCR0 cho TBCCR0 CCIFG.+ Vector ngắt TBIV cho các cờ ngắt CCIFG và TBIFG.

Đồ án tốt nghiệp Trang 40

Page 41: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

Vector ngắt TBCCR0:Vector ngắt TBCCR0 là ngắt có mức độ ưu tiên cao nhất do Timer_B tạo ra. Cờ ngắt TBCCR0 CCIFG tự động reset khi ngắt TBCCR0 được phục vụ.

Hình 12: Cờ ngắt TBCCR0

2.1.4.2.7 Các thanh ghi của Timer_B:

Bảng 5: Thanh ghi của Timer_B

Đồ án tốt nghiệp Trang 41

Page 42: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

Thanh ghi điều khiển TBCTL:+ Bit 15: không sử dụng + CNTLx Bit 12-11: Độ dài của bộ đếm:

0 16-bit,TBR(max) = 0FFFFh1 12-bit,TBR(max) = 0FFFh10 10-bit,TBR(max) = 03FFh11 8-bit,TBR(max) = 0FFh

+ TBSSELx bit 9-8: Lựa chọn nguồn xung clock:00 TBCLK01 ACLK10 SMCLK11 Đảo TBCLK

+ IDx Bit 7-6: lựa chọn bộ chia xung:00 /101 /210 /411 /8

+ MCx Bit 5-4: Lựa chọn chế độ điều khiển:00 Dừng chế độ01 Chế độ lên10 Tiếp tục chế độ11 Chế độ lên/xuống

+ TBCLR : Xóa Timer_B Khi bit này được set, giá trị bộ đếm, bộ chia xung đều được xóa về 0.

+ TBIE Bit 1: Cho phép ngắt Timer_B. Bit =1 cho phép ngắt, bit = 0 cấm ngắt.

+ TBIFG Bit 0: Cờ ngắt. Bit = 0 không có ngắt nào chờ, bit = 1 có ngắt đang chờ phục vụ. Khi ngắt đã được phục vụ Bit tự động được xóa về 0.

2.1.5 Bộ khuếch đại thuật toán OA:MSP 430 có 2 bộ khuếch đại thuật toán với nhiều kênh khác nhau.Đặc tính của các bộ khuếch đại thuật toán:

+ Nguồn đơn, hoạt động ở chế độ dòng thấp.+ Có thể lựa chọn cấu hình bằng phần mềm.+ Phần mềm có thể lựa chọn điện trở bậc thang phản hồi cho PGA

Đồ án tốt nghiệp Trang 42

Page 43: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

Hình 13: Sơ đồ khối của OA

2.1.6 Các kênh chuyển đổi ADC:MSP 430 có 2 kênh chuyển đổi ADC 10 bit, ADC10 và ADC12.

2.1.6.1 Kênh chuyển đổi ADC10:Các đặc tính của kênh chuyển đổi ADC10:

+ Tốc độ chuyển đổi lớn nhất lớn hơn 200ksps.+ Bộ chuyển đổi 10 bit đơn không bị lỗi mã.+ Lấy mẫu và chốt với thời gian lấy mẫu được lập trình.+ Quá trình chuyển đổi được khởi tạo bằng phần mềm hoặc Timer_A.+ Có thể sử dụng phần mềm để lựa chọn điện áp tham chiếu (1.5V hoặc 2.5V).+ Có thể lựa chọn điện áp tham chiếu nội hoặc điện áp tham chiếu ngoài.+ Có 8 kênh đầu vào tương tự, riêng với MSP 340x22xx có tới 12 kênh đầu

vào tương tự.

Đồ án tốt nghiệp Trang 43

Page 44: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

+ Các kênh chuyển đổi cho cảm biến nhiệt độ bên trong, Vcc, và điện áp tham chiếu ngoài.

+ Lựa chọn nguồn xung clock.+ Tự động điều khiển quá trình huyển đổi dữ liệu và lưu kết quả chuyển đổi .

Hình 14: Sơ đồ khối của ADC10

2.1.6.1.1 Hoạt động của bộ chuyển đổi ADC10:Kênh ADC10 chuyển đổi một tín hiệu tương tự sang tín hiệu số có độ dài 10

bit, kết quả chuyển đổi được lưu vào thanh ghi ADC10MEM. Sử dụng điện áp tham chiếu VR+ và VR- để xác định giới hạn trên và giới hạn dưới của bộ chuyển đổi. Kết quả chuyển đổi số có giá trị NADC = 03FFh khi đó Vinput > = VR+ (khi đầy) hoặc NADC = 0 khi Vinput< = VR-. Kết quả chuyển đổi được tính bằng công thức như sau:

Bộ chuyển đổi ADC10 được điều khiển bởi 2 thanh ghi ADC10CTL0 và ADC10CTL1. ADC10ON là bit cho phép chuyển đổi. Khi bạn muốn thay đổi các giá trị điều khiển chuyển đổi bạn phải đặt ENC = 0. Khi điều chỉnh xong lưu ý set bit ENC = 1 để quá trình chuyển đổi bắt đầu.

Đồ án tốt nghiệp Trang 44

Page 45: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

2.1.6.1.2 Lựa chọn nguồn xung clock ADC10CLK:Để lựa chọn nguồn xung điều khiển ta sử dụng bit ADC10SSELx. Có thể sử

dụng bộ chia trước bắng bit ADC10DIVx. ADC10CLK có thể lấy xung từ các nguồn SMCLK, MCLK, ACLK hoặc sử dụng bội xung nội ADC10OSC phục vụ riêng cho nó.

Tần số chuyển đổi có thể lên tới 5-MHz, nhung giá trị này cũng tùy thuộc vào nguồn cấp, nhiệt độ và thay đổi do lập trình. Phải luôn cấp xung clock trong quá trình chuyển đổi, nếu ngắt nguồn xung bộ chuyển đổi không hoạt động hoặc kết quả chuyển đổi không chính xác.

Hình 15: Bộ đa hợp ngõ vào ADC10

Kênh chuyển đổi ADC10 có tất cả 12 ngõ vào tương tự, 8 ngõ vào tương tự ngoài và 4 ngõ vào nội, các ngõ vào được lựa chọn chuyển đổi bằng bộ đa hợp.

2.1.6.1.3 Lựa chọn kênh tương tự:Các ngõ vào tương tự Ax, VeREF+, and VREF− + động thời cũng là các chân

xuất/nhập. Các chân này là dạng cổng CMOS, khi được lựa chọn làm ngõ vào chuyển đổi có thể tạo ra dòng điện ký sinh có giá trị rất nhỏ từ Vcc về GND. Có thể cấm khuếch đại dòng ký sinh này bằng cách sử dụng bit ADC10Aex.

Đồ án tốt nghiệp Trang 45

Page 46: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

2.1.6.1.4 Điện áp tham chiếu: Ta có thể lựa chọn điện áp tham chiếu nội bằng cách set bit REFON = 1, khi

REFON = 0 lựa chọn điện áp tham chiếu ngoài VRFE+. Bit RFE2_5V lựa chọn giá trị điện áp tham chiếu nội. Khi REF2_5V = 1điện áp tham chiếu nội là 2.5 V. Khi REF2_5V = 0 điện áp tham chiếu nội là 1.5 V.

2.1.6.1.5 Đặc tính công suất thấp của điện áp tham chiếu nội:Mọi thiết kế của MSP 430 đếu hướng tới tiêu chí tiết kiệm năng lượng. Kênh

ADC10 tự chuyển sang chế độ tiết kiệm năng lượng khi điện áp tương tự ngõ vào không đổi, nó kích hoạt trở lại khi cần thiết. Khi không có nguồn xung clock dòng chuyển đổi bằng 0.

2.1.6.1.6 Thời gian lấy mẫu và chuyển đổi:Bit SHTx được sử dụng để lựa chọn thời gian lấy mẫu, thời gian lấy mẫu có

thể là 4, 8, 16 hoặc 64 chu kỳ xung, thời gian chuyển đổi là 13 chu kỳ xung.

Hình 16: Thời gian lấy mẫu

2.1.6.1.7 Tính toán thời gian lấy mẫu:Khi SAMPCON = 0 tất cả các ngõ vào tương tự Ax đều ở trạng thái tổng trở

cao. Khi SAMPCON = 1 tín hiệu tương tự ngõ vào được đưa qua một mạch lọc thông thấp RC. Sơ đồ tương đương như sau:

Nội trở của nguồn Rs và Ri ảnh hưởng đến thời gian lấy mẫu. Thời gian lấy mẫu tối thiểu có thể được tính theo phương trình sau đây:

Với giá trị lớn nhất Ri =2 kΩ, Ci = 27 pF phương trình trên tương đương với:

Đồ án tốt nghiệp Trang 46

Page 47: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

Nếu Rs = 10kΩ thì thời gian lấy mẫu lớn hơn 2.47 µs.Khi sử dụng bộ đệm tham chiếu trong chế độ burst thì thời gian lấy mẫu phải

lớn hơn thời gian tính toán ở trên và thời gian thiết lập của bộ đệm.

Ví dụ, nếu điện áp tham chiếu ngoài VRef =1.5V, RS = 10 kΩ, tsample lớn hơn than 2.47µs, khi ADC10SR = 0, hoặc 2.5 µs khi ADC10SR = 1. Khi đó thời gian thiết lập của bộ đệm được tính toán như sau:

Trong đó SR: là tốc độ quét của bộ đệm.

2.1.6.1.8 Chế độ chuyển đổi:Bộ chuyển đổi tương tự sang số ADC10 có 4 chế độ hoạt động được lựa chọn

bằng bít CONSEQx.

2.1.6.1.9 Ngắt của ADC10: Một ngắt được tạo ra do kênh ADC10, ADC10IFG được set khi bắt đầu quá

trình chuển đổi, kết quả chuyển đổi được lưu vào ADC10MEM. Khi qua trình chuyển đổi hoàn thành cờ ngắt ADC10IFG sẽ tạo ra một ngắt, cờ ngắt tự động reset khi ngắt đã được phục vụ.

Hình 17: Ngắt ADC10

Đồ án tốt nghiệp Trang 47

Page 48: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

2.1.6.1.1 0 Các thanh ghi của ADC10:

Bảng 6: Thanh ghi ADC10

a) Thanh ghi điều khiển ADC10CTL0: Là thanh ghi 16 bit có sơ đồ như sau:

+ Trong đó SREFx 15-13 lựa chọn điện áp tham chiếu:

+ SHTx là bit lựa chọn thời gian lấy mẫu và giữ:

+ ADC10SR Bit 10 là bít lựa chọn tốc độ lấy mẫu:Bit = 1 tốc độ ~ 50 kspsBit = 0 tốc độ ~200 ksps

+ REFOUT Bit 9 Ngõ ra tham chiếu: Bit = 0 Ngõ ra tham chiếu off

Đồ án tốt nghiệp Trang 48

Page 49: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

Bit = 1 Ngõ ra tham chiếu on+ REF2_5V Bit 6 Lựa chọn điện áp tham chiếu:

Bit = 0 Vref = 1.5 VBit = 1 Vref = 2.5 V

+ ADC10ON Bit 4: Bit = 0 ADC10 offBit = 1 ADC10 on

+ ADC10IE Bit 3 Cho phép ngắt ADC10:Bit = 0 cấm ngătBit = 1 cho phép ngắt

+ ADC10IFG Bit 2 Cờ ngắt:Bit =0 báo không có ngắt nào đợi phục vụBit = 1 Báo có ngắt đợi phục vụ

+ ENC Bit 1 Bít cho phép chuyển đổi:Bit = 0 cấm chuyển đổiBit =1 cho phép chuyển đổi

b)Thanh ghi điều khiển ADC10CTL1:

+ INCHx Bit 15- 12 : Lựa chọn ngõ vào:

+ ADC10DIVx Bit 7-5 Lựa chọn nguồn bộ chia xung:

Đồ án tốt nghiệp Trang 49

Page 50: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

+ SSELx Bit 4-3 Lựa chọn nguồn xung clock

c)Thanh ghi lưu kết quả chuyển đổi ADC10MEM:

Kết quả 10 bit chuyển đổi được lưu trữ bên phải. Bit 9 là MSB. Bit 10-15 luôn luôn là 0.

2.1.6.2 Kênh chuyển đổi ADC12:ADC12 là kênh chuyển đổi 12 bít có các đặc tính như sau:

+ Tốc độ chuyển đổi lớn hơn 200-ksps.+ Bộ chuyển đổi 12 bit đơn không bị lỗi mã.+ Lấy mẫu và chốt với thời gian lấy mẫu được lập trình.+ Quá trình chuyển đổi được khởi tạo bằng phần mềm hoặc Timer_A,

Timer_B.+ Có thể sử dụng phần mềm để lựa chọn điện áp tham chiếu (1.5V hoặc

2.5V).+ Có thể lựa chọn điện áp tham chiếu nội hoặc điện áp tham chiếu ngoài.+ Có 8 kênh đầu vào tương tự, riêng với MSP 340x22xx có tới 12 kênh đầu

vào tương tự.+ Các kênh chuyển đổi cho cảm biến nhiệt độ bên trong, Vcc, và điện áp

tham chiếu ngoài.+ Lựa chọn nguồn xung clock.+ Tự động điều khiển quá trình huyển đổi dữ liệu và lưu kết quả chuyển

đổi, thanh ghi lưu kết quả chuyển đổi là thanh ghi 16 bit.+ 18 ngắt ADC12.

Đồ án tốt nghiệp Trang 50

Page 51: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

Hình 18: Sơ đồ khối của kênh chuyển đổi tương tự sang số ADC12Tính toán kết quả chuyển đổi sử dụng công thức:

2.1.6.2.1 Lựa chọn nguồn xung: Để lựa chọn nguồn xung điều khiển ta sử dụng bit ADC12SSELx. Có thể sử

dụng bộ chia trước bắng bit ADC12DIVx. ADC12CLK có thể lấy xung từ các nguồn SMCLK, MCLK, ACLK hoặc sử dụng bội xung nội ADC12OSC phục vụ riêng cho nó.

Tần số chuyển đổi có thể lên tới 5-MHz, nhung giá trị này cũng tùy thuộc vào nguồn cấp, nhiệt độ và thay đổi do lập trình. Phải luôn cấp xung clock trong quá trình chuyển đổi, nếu ngắt nguồn xung bộ chuyển đổi không hoạt động hoặc kết quả chuyển đổi không chính xác.

Đồ án tốt nghiệp Trang 51

Page 52: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

Hình 19: Bộ đa hợp ngõ vào ADC12Kênh chuyển đổi ADC12 có tất cả 12 ngõ vào tương tự, 8 ngõ vào tương tự

ngoài và 4 ngõ vào nội, các ngõ vào được lựa chọn chuyển đổi bằng bộ đa hợp.

2.1.6.2.2 Điện áp tham chiếu:Ta có thể lựa chọn điện áp tham chiếu nội bằng cách set bit REFON = 1, khi

REFON = 0 lựa chọn điện áp tham chiếu ngoài VRFE+. Bit RFE2_5V lựa chọn giá trị điện áp tham chiếu nội. Khi REF2_5V = 1điện áp tham chiếu nội là 2.5 V. Khi REF2_5V = 0 điện áp tham chiếu nội là 1.5 V.2.1.6.2.3 Ngắt ADC12:

Kênh ADC12 có 18 nguồn ngắt bao gồm:+ ADC12IFG0-ADC12IFG15.+ Tràn ADC12IFG0-ADC12IFG15.+ Tràn thời gian chuyển đổi ADC12TOV, ADC12.

Khi quá trình chuyển đổi hoàn thành bít ADC12IFGx được set và kết quả chuyển đổi được lưu vào thanh ghi ADC12IFGx. Khi đó một ngắt được tạo ra.

Đồ án tốt nghiệp Trang 52

Page 53: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

2.1.6.2.3 Các thanh ghi điều khiển ADC12:

Bảng 7: Thanh ghi điều khiển ADC 12

Đồ án tốt nghiệp Trang 53

Page 54: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

Thanh ghi điều khiển ADC12CTL0:

\

2.1.7 Kênh chuyển đổi số sang tương tự DAC12:Là kênh chuyển đổi 12 bit. Tuy nhiêu nó có thể được cấu hình 8 bit hoặc 12

bit.Những đặc tính của kênh chuyển đổi DAC12 bao gồm:

+ Có thể sử dụng điện áp tham chiếu nội và điện áp tham chiếu ngoài.+ Độ phân giải 8 hoặc 12 bit.+ Lập trình thời gian và công suất nguồn.+ Khả năng cập nhật dữ liệu đồng bộ cho nhiều kênh DAC.

Hình 20: Sơ đồ khối của kênh chuyển đổi DAC12

Đồ án tốt nghiệp Trang 54

Page 55: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

2.1.7.1 Hoạt động của kênh chuyển đổi DAC12: Kênh chuyển đổi số sang tương tự DAC12 có thể cấu hình để hoạt động ở chế

độ 8 bit hoặc 12 bit bằng cách sử dụng bit DAC12RESx. Bit DAC12IR lựa chọn điện áp tham chiếu. Bít DAC12 cho phép người sử dụng lựa chọn dữ liệu kiểu nhị phân tiêu chuẩn hay 2s-compliment.

Khi sử dụng kiểu định dạng dữ liệu kiểu nhị phân tiêu chuẩn, điện áp đầu ra được tính như sau:

Trong chế độ 8 bit, giá trị lớn nhất của DAC12_xDAT là 0FFh. Trong chế độ 12 bit giá trị tối đa của DAC12_xDAT là 0FFFh.

2.1.7.2 Điện áp tham chiếu của kênh DAC12:Có thể lựa chọn điện áp tham chiếu ngoài hoặc điện áp tham chiếu nội với 2

mức điện áp tham chiếu 1.5 V và 2.5 V. Điện áp tham chiếu được lựa chọn bằng bit DAC12SREFx. Khi DAC12SREFx = 0,1 sử dụng điện áp tham chiếu VREF+

DAC12SREFx = 2,3 sử dụng điện áp VeREF+ .

2.1.7.3 Ngắt của DAC12:Vector ngắt của DAC 12 được chia sẻ với bộ điều khiển DMA, vì vậy để xác

định nguyên nhân gây ra ngắt bạn phải kiểm tra cờ ngắt DAC12IFG và DMAIFG.Bit DAC12IFG được set khi DAC12LSELx > 0 và dữ liệu DAC12 được chốt.

Khi DAC12LSELx = 0 Bit DAC12IFG không được set.Việc set bit DAC12IFG chỉ định rằng DAC12 sẵn sàng cho quá trình chuyển

đổi mới. Nếu cả 2 bít DAC12IFG và GIE được set sẽ tạo ra một tín hiệu ngắt. Cờ ngắt DAC12IFG không tự động reset bạn phải đặt lại nó bằng phần mềm.

2.1.7.4 Các thanh ghi DAC12:

Bảng 8: Thanh ghi DAC12

Đồ án tốt nghiệp Trang 55

Page 56: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

a)Thanh ghi điều khiển DAC12_xCTL:

+ DAC12OPS Bit 15 lựa chọn ngõ ra DAC12: Bit = 0 ngõ ra DAC12_0 là chân P6.6, ngõ ra DAC12_1 là chân P6.7.Bit = 1 ngõ ra DAC12_0 là chân VeREF+, ngõ ra DAC12_1 là chân

P6.5.+ SREFx Bít 14-13: Lựa chọn điện áp tham chiếu:

00 VREF+

01 VREF+

10 VeREF+

10 VeREF+

+ RES Bit 12: Lựa chọn độ phân giải:Bit = 0 : Độ phân giải 12 bitBit = 1 : Độ phân giải 8 bit

+ CALON Bit 9: Bit hiệu chỉnh trên:Bit = 0: Không hiệu chỉnhBit = 1: Tiến hành hiệu chỉnh

+ DAC12IR Bit 8: Bit dùng để set điện áp tham chiếu ngõ vào và phạm vi điện áp ra:

Bit = 0: Nhân 3 điện áp tham chiếuBit = 1: Giữ nguyên giá trị điện áp tham chiếu

+ DAC12 Bit 7-5 Cài đặt các thông số của bộ khuếch đại:

Đồ án tốt nghiệp Trang 56

Page 57: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

+ DAC12DF Bit4: Định dạng dữ liệu DAC12:Bit = 0 Dữ liệu kiểu nhị phânBit = 1 Dữ liệu kiểu bù 2 (2’s complement)

+ DAC12IE Bit3: Cho phép ngắt DAC12:Bit = 0 Cấm ngắtBit = 1 cho phép ngắt

+ DAC12IFG Bit 2: Cờ ngắt DAC12:Bit = 0 Không có ngắt nào chờBit = 1 Có ngắt đang chờ phục vụ

+ DAC12ENC Bit 1: Cho phép chuyển đổi DAC12, khi bit DAC12ENC > 0 cho phép chuyển đổi, khi DAC12ENC = 0 không cho phép chuyển đổi.

b)Thanh ghi dữ liệu DAC12_xDAT:

+ DAC12_xDAT là thanh ghi 16 bit. Trong đó Bit 15-12 không sử dụng những bit này luôn bằng 0.

+ DAC12Data Bit 11-0 là bit dữ liệu.

Đồ án tốt nghiệp Trang 57

Page 58: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

2.1.8 Hệ thống xung clock và bộ phát xung: Hệ thống xung clock của MSP 430f2274 được chia thành nhiều khối khác

nhau, mối module sẽ cung cấp xung clock cho các khối ngoại vi ứng dụng tương ứng.

MSP 430 được thiết kế để đáp ứng yêu cầu tiết kiệm năng lượng nên thạch anh ngoài được sử dụng có tần số 32768 HZ. Nhưng chúng ta có thể thay đổi tần số hoạt động bằng bộ điều khiển tần số dao động DCO(DCO_digitally-controlled oscillator).

Trong đó MCLK: Là xung clock sử dụng cho CPU.SMCLK: Hệ thống xung clock sử dụng cho các module ngoại vi.

2.1.8.1 Thanh ghi điều khiển DCOCTL:

DCOx : Bit 7-5 là bít lựa chọn tần số xung. Có 8 giá trị xung khác nhau được định nghĩa nhơ thanh ghi RSELx <Trang 299_slau144>

MODx : Bit 4-0 BIT lựa chọn bộ điều chế. Những bit này thường được định nghĩa để sử dụng tần số fDCO+1 trong khoảng thời gian là 32 chu kỳ. Khoảng thời gian còn lại (32-MDO) tần số fDCO được sử dụng. Không thể sử dụng các bít này khi DCOx=7.

2.1.8.2 Thanh ghi điều khiển hệ thống xung BCSCTL1:

+ XT2OFF Bit 7: Bit điều khiển bộ phát xung XT2:Bit =0 XT2 onBit = 1 XT2 off. Nếu nó không được sử dụng cho MCLK hoặc SMCLK

+ XTSBit 6: Là bít lựa chọn chế độ:

Đồ án tốt nghiệp Trang 58

Page 59: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

Bit = 0 lựa chọn chế độ tần số thấpBit = 1 lựa chọn chế độ tần số cao

+ DIVAx Bit 5-4: Các bít lựa chọn bộ chia cho ACLK00 /101 /210 /411 /8

+ RSELx Bit 3-0 Lựa chọn dải tần số. Có sẵn 16 dải tần số khác nhau. Giá trị dải tần số thấp nhất được lựa chọn khi RSELx = 0. Bít RSEL3 được bỏ qua khi DCOR=1.

2.1.8.3 Thanh ghi điều khiển BCSCTL2:

+ SELMx Bit 7-6 Bít lựa chọn nguồn xung cho MCLK:0 DCOCLK1 DCOCLK

10 2CLK khi bộ phát xung XT2 có sẵn trên chíp. LFXT1CLK hoặc VLOCLK khi bộ phát xung XT2 không có sắn trên chíp.

11 FXT1CLK hoặc VLOCLK+ DIVMx Bit 5-4Bít lựa chọn bộ chia cho MCLK:

00 /101 /210 /411 /8

+ SELS Bit3 Bit lựa chọn nguồn SMCLK:Bit =0 DCOCLKBit = 1 XT2 khi bộ phát xung XT2 có sẵn trên chíp. LFXT1CLK hoặc

VLOCLK khi bộ phát xung XT2 không có sẵn trên chíp+ DIVSx Bit 2-1Bít lựa chọn bộ chia cho SMCLK :

00 /1 01 /2 10 /4 11 /8

+ DCOR Bit 0 Bít lựa chọn điện trở DCO:Bit = 0 Điện trở nộiBit = 1 Điện trở ngoài

Đồ án tốt nghiệp Trang 59

Page 60: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

2.1.8.4 Thanh ghi cho phép ngắt IE1:

OFIF BIT 1 Bit =1 Cho phép ngắtBit =0 Không cho phép ngắt

Các bít còn lại được sử dụng cho module khác.

2.1.8.5 Thanh ghi cờ ngắt:

OFIFG Bit 1 Bit =0 Không có ngắt nào đang được phục phụBit =1 Có ngắt đang được phục vụ

Các bít còn lại có thể được sử dụng bởi các module khác.

Đồ án tốt nghiệp Trang 60

Page 61: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

2.2 Mođun eZ430-RF2500:2.2.1 Công cụ phát triển eZ430-RF2500:2.2.1.1 eZ430-RF2500:

eZ430-RF2500 Là một thẻ giao tiếp USB và truyền nhận dữ liệu không dây. eZ430-RF2500 được phát triển dựa trên MSP 430F2274 kết hợp với chíp CC2500 truyền nhận tín hiệu tần số RF 2.4 GHz, tích hợp sẵn cảm biến nhiệt độ. Do đặc điểm dòng MSP 430 có những ưu thế về năng lượng nên đáp ứng được những nhu cầu trong thiết bị di động. MSP430 dùng nguồn 3.6V nên trong thiết kế này có thể sử dụng pin Lithiun 3.7 V.

Bộ eZ430-RF2500T là một sản phẩm có thể làm việc với đầu cắm USB như một hệ thống độc lập với cảm biến bên ngoài. Hoặc sử dụng thiết kế mở rộng với những module ngoại vi. Với Giao diện gỡ lỗi USB cho phép sản phẩm có thể truyền và nhận dữ liệu từ xa từ máy tính cá nhân sử dụng truyền nhận nhận nối tiếp UART

Đặc tính của eZ430-RF2500:+ Giao diện lập trình và gỡ lỗi.+ Có sẵn 21 chân.+ Mật độ tích hợp cao, MSP 430 có nguồn cực thấp siêu tiết kiệm năng

lượng. + Hai chân xuất/ nhập kết nối với hai led xanh và đỏ cho phép người lập

trình mô phỏng trực quan.+ Một nút nhấn dùng để mô phỏng trực quan.

Hình 21: Board eZ430-RF2500 USB

Đồ án tốt nghiệp Trang 61

Page 62: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

Hình 22: Board eZ430-RF2500 dùng PIN

2.2.1.2 Chức năng các chân:Những đặc tính đặc biệt của MSP 430 bạn có thể tham khảo trong phần giới

thiệu chi tiết ở trên. MSP 430 được sử dụng để xây dựng board eZ430-RF2500. Ngoài ứng dụng truyền nhận tín hiệu từ xa, board còn lấy ra 18 chân cho người lập trình thực hành và phát triển những ứng dụng riêng của mình.

Đồ án tốt nghiệp Trang 62

Page 63: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

Hình 23: Sơ đồ chân board eZ430-RF250

Chức năng các chân board eZ430-RF2500Pin Chức năng Mô tả1 GND Mass2 Vcc Chân nguồn Vcc 1.8V - 3.6V3 P2.0 / ACLK / A0 / OA0I0 Chân xuất/nhập số, ngõ ra xung clock

ACLK, ngõ vào tương tự A0 kênh ADC104 P2.1 / TAINCLK / SMCLK

/ A1 /A0OChân xuất/nhập số, ngõ vào analog A1 kênh ADC10, xung clock INCLK của Timer_A, xung clock chủ SMCLK

5 P2.2 / TA0 / A2 / OA0I1 Xuất/nhập, ngõ vào tương tự A2 của kênh ADC10, ngõ vào CCI0B của Timer_A chế độ capture, ngõ ra OUT0 chế độ so sánh.

6 P2.3 / TA1 / A3 / VREF – / VeREF – OA1I1 / OA1O

Xuất/nhập, ngõ vào tương tự A3 kênh ADC10, điện áp tham chiếu âm VREF – / VeREF –, ngõ vào CCI1B của Timer_A, ngõ ra OUT1 chế độ so sánh.

7 P2.4 / TA2 / A4 / VREF+ / VeREF+/ OA1I0

Chân xuất/nhập số, ngõ vào tương tự A4 kênh ADC10, ngõ ra OUT2 Timer_A chế độ so sánh, ngõ vào/ra điện áp tham chiếu.

8 P4.3 / TB0 / A12 / OA0O Chân xuất/nhập số, ngõ vào tương tự A12 kênh ADC10, ngõ vào CCI0B Timer_B chế độ capture, ngõ ra OUT0 chế độ so sánh

9 P4.4 / TB1 / A13 / OA1O Chân xuất/nhập số, ngõ vào tương tự A13 kênh ADC10, ngõ vào CCI1B Timer_B chế độ capture, ngõ ra OUT1 chế độ so sánh

10 P4.5 / TB2 / A14 / OA0I3 Chân xuất/nhập số, ngõ vào tương tự A14 kênh ADC10, ngõ ra OUT0 của Timer_B chế độ so sánh

11 P4.6 / TBOUTH / A15 / OA1I3

Chân xuất/nhập số, ngõ vào tương tự A15 kênh ADC10, chuyển mạch từ TB0 sang TB3 ngõ ra tổng trở cao.

12 GND Mass13 P2.6 / XIN (GDO0) Chân xuất/nhập số, kết nối thạch anh14 P2.7 / XOUT (GDO2) Chân xuất/nhập số, kết nối thạch anh15 P3.2 / UCB0SOMI /

UCB0SCLChân xuất/nhập số, ngõ ra chế độ tớ, ngõ vào chế độ chủ USCI_B0 trong chế độ SPI, nguồn xung clock SCLI2C trong I2C mode

16 P3.3 / UCB0CLK / UCA0STE

Chân xuất/nhập số, ngõ vào xung clock USCI_B0, ngõ ra cho phép truyền dữ liệu USCI_A0 trong chế độ tớ

17 P3.0 / UCB0STE / UCA0CLK / A5

Chân xuất/nhập số, ngõ vào tương tự A5 kênh ADC10, xung USCI_A0, chân cho

Đồ án tốt nghiệp Trang 63

Page 64: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

phép truyền tín hiệu USCI_B0 trong chế độ tớ

18 P3.1 / UCB0SIMO / UCB0SDA

Chân xuất/ nhập số, , ngõ ra chế độ tớ, ngõ vào chế độ chủ USCI_B0 trong chế độ SPI, dữ liệu SDAI2C trong I2C mode

Bảng 9: Chức năng các chân board eZ430-RF2500

Đồ án tốt nghiệp Trang 64

Page 65: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

Chức năng các chân Battery Board

PIN Chức năng Mô tả1 P3.4 / UCA0TXD /

UCA0SIMOChân xuất/nhập số, chân truyền dữ liệu USCI_A0 trong chế độ UART, ngõ vào chế độ tớ, ngõ ra chế độ chủ trong chế độ SPI

2 GND Mass

3 RST / SBWTDIO Chân reset tích cực mức thấp

4 TEST / SBWTCK Lựa chọn chế độ kiểm tra cho chân JTAG của port 1.

5 VCC (3.6V) Nguồn Vcc 3.6V

6 P3.5 / UCA0RXD / UCA0SOMI

Chân xuất/nhập số, chân nhận dữ liệu USCI_A0 trong chế độ UART, ngõ vào chế độ tớ, ngõ ra chế độ chủ trong chế độ SPI

Bảng 10 : Chức năng các chân Battery Board

2.2.1.3 Thông số kỹ thuật:2.2.1.3.1 MSP430F2274:

Thông số MIN TYP MAX UNITĐiều kiện làm việcĐiện áp 1.8 3.6 VNhiệt độ -40 85 oCDòng tiêu thụChế độ hoạt động tại 1MHz, 2.2V 270 390 μAChế độ nghỉ 0.7 1.4 μAChế độ tắt duy trì RAM 0.1 0.5 μATần số làm việcVcc ≥ 3.3V 16 MHz

Bảng 11: Các thông số kỹ thuật của MSP430F2274

Đồ án tốt nghiệp Trang 65

Page 66: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

2.2.1.3.2 CC2500: + Tần số: 2.4 GHz.+ Tốc độ: 500 kbps.+ Dòng tiêu thụ thấp.

Thông số Điều kiện MIN TYP MAX UNITĐiều kiện làm việcĐiện áp 1.8 3.6 VDòng tiêu thụTín hiệu vào RX 250 kbps

Dòng tối ưu 16.6 mA

Optimized sensitivity

18.8 mA

Tín hiệu vào RX 30 dB 250 kbps

Dòng tối ưu 13.3 mAOptimized sensitivity

15.7 mA

Dòng tiêu thụ TX (0 dBm)

21.2 mA

Dòng tiêu thụ TX (-12 dBm)

11.1 mA

Đặc tính tần sốTần số 2400 2483.

5MHz

Dữ liệu 1.2 500 kbpsCông suất ngõ ra -30 0 dBm

Độ nhạy 10 kbps Dòng tối ưu , 2-FSK, 230-kHz

-99 dBm

Lọc thông dải RX, 1% PER

101 dBm

Độ nhạy 250 kbps Độ nhạy tối ưu -87 dBmDòng tối ưu, 500-kHz RX

-89 dBm

Bảng 12: Các thông số kỹ thuật của CC2500

Đồ án tốt nghiệp Trang 66

Page 67: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

2.2.1.4 Sơ đồ mạch eZ430-RF2500:

Hình 24: Sơ đồ nguyên lý của USB

Đồ án tốt nghiệp Trang 67

Page 68: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

Hình 25: Sơ đồ nguyên lý của USB

Đồ án tốt nghiệp Trang 68

Page 69: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

Hình 25: Sơ đồ nguyên lý của board eZ430-RF2500T

Đồ án tốt nghiệp Trang 69

Page 70: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

2.2.1.5 Chip CC2500:2.2.1.5.1 Giới thiệu:

CC2500 là chíp thu phát sóng vô tuyến RF tần số 2.4 GHz. Chip sử dụng nguồn thấp tiết kiệm năng lượng có thể sử dụng pin. Thích hợp với những thiết bị di động điều khiển bằng công nghệ không dây, thiết bị điện tử dân dụng, điều khiển đồ chơi, chuột và bàn phím không dây, các ứng dụng điều khiển từ xa khác.

Bộ thu phát được tích hợp với cấu hình modem dải gốc cao. Modem hỗ trợ nhiều hình thức điều chế tín hiệu khác nhau trong đó cấu hình dữ liệu lên tới 500 Kbaud.

CC2500 hỗ trợ phần cứng cho việc xử gói dữ liệu. Tích hợp cảm biến nhiệt độ.Thường CC2500 kết hợp với một chip vi xử lý và các linh kiện thụ động khác

để thực hiện chức năng điều khiển.Phần cứng bao gồm 20 chân:

Hình 26: Sơ đồ chân của CC2500+ Chân 4, 9, 11, 14, 15, 18: Là các chân nguồn nối lên Vcc.+ Chân 16, 19 nối GND.+ Chân 8, 10 nối vơi thạch anh.

Chức năng chi tiết các chân còn lại như sau:

Đồ án tốt nghiệp Trang 70

Page 71: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

Bảng 13: Chức năng các chân CC2500+ Chân 1: SCLK chân đầu vào số, chân đầu vào nhận xung clock và giao

diện cấu hình nối tiếp+ Chân 2: Đầu ra số. Giao diện cấu hình nối tiếp. Khi CSn ở mức cao thì

chân có chức năng của một chân thông thường.+ Chân 3: GDO2: Đầu ra số. Là chân đầu ra cho mục đích sử dụng chung

Đồ án tốt nghiệp Trang 71

Page 72: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

- Kiểm tra tín hiệu.- Trạng thái tín hiệu FIFO.- Xóa chân được chỉ định.- Chân đầu ra của xung clock sau khi đã được chia xung từ XOSC.- Chân truyền dữ liệu nối tiếp RX.

+ Chân 4: Chân nguồn DVDD. Sử dụng nguồn từ 1.8 tới 3.6V+ Chân 5: DCOPUL: Chân nguồn 1.6-2V. Chân này chỉ sử dụng cấp nguồn

+ riêng cho CC2500 không sử dụng chung cho các thiết bị khác.+ Chân 6: GDO0:Chân vào ra số. Ngoài các chức năng như chân 3 nó còn

có vai trò là chân truyền nhận nối tiếp RX và TX. + Chân 7: CSn: Là chân đầu vào lựa chọn.+ Chân 8, 10: XOSC_Q1, XOSC_Q2: Chân nối thạch anh.+ Chân 9, 11, 14, 15: Chân nguồn cấp nguồn 1.8-3.6V cho khối Analog.+ Chân 12 RF_P: Là chân truyền nhận tín hiệu RF. Là chân đầu vào trong

chế độ truyền, chân đầu ra trong chế độ nhận.+ Chân 13 RF_N: Có chức năng như chân 12 nhưng tín hiệu bị đảo.+ Chân 16, 19: GND.+ Chân 17 RBIAS: Chân vào ra tương tự.+ Chân 20 SI: Chân ngõ vào số. Giao diện cấu hình nối tiếp.

2.2.1.5.2 Cấu tạo của chíp:

Hình 27: Cấu tạo CC2500

Đồ án tốt nghiệp Trang 72

Page 73: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

2.2.1.5.3 Nguyên lý hoạt động: CC2500 đóng vai trò là bộ nhận. Tín hiệu được khuếch đại bởi bộ khuếch đại

LNA và bộ đổi pha vuông góc giảm tín hiệu xuống tần xuống tần số trung bình (IF) sau đó tín hiệu được số hóa bởi các bộ chuyển đổi ADC. Tín hiệu đưa tới mạch tự động điều chỉnh độ lợi (AGC).

Những linh kiện sử dụng trong mạch điện ứng dụng:S

Bảng 14: Những linh kiện sử dụng trong mạch điện

Sơ đồ mạch điện cụ thể như sau:

Hình 28: Sơ đồ mạch điện

Đồ án tốt nghiệp Trang 73

Page 74: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

Giá trị điển hình của các linh liện được sử dụng trong mạch:

Bảng 15: Giá trị của các linh liện được sử dụng trong mạch

Đồ án tốt nghiệp Trang 74

Page 75: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

2.2.2 Phần mềm biên dịch và nạp chương trình (The IAR Embedded Workbench IDE):

Đối với MSP430 chúng ta có 2 phần mềm biên dịch và nạp chương trình là:+ The IAR Embedded Workbench IDE.+ CCE.

Sử dụng 2 ngôn ngữ Assembly và C/C++. Ở đây nhóm nghiêm cứu chỉ giới thiệu phần mềm The IAR Embedded Workbench IDE.

2.2.2.1 Cách cài đặt phần mềm:Trong mỗi bộ thí nghiệm MSP430 có một đĩa CD giới thiệu cho ta 2 phần

mềm The IAR Embedded Workbench IDE và CCE. Cách cài đặt và một chương trình demo đo nhiệt độ môi trường từ xa.

Sau khi bỏ đĩa vào máy, ta vào ổ đĩa CD; F:\Software nhấp đúp vào file FET_R511.exe bắt đầu quá trình cài đặt. Sau khi nhấp vào ta thấy màn hình có:

Nhấp vô chữ Setup phần mềm bắt đầu được cài đặt. Sau đó màn hình sẽ xuất hiện như sau và bấm Next, sau đó bấm Accept:

Đồ án tốt nghiệp Trang 75

Page 76: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

Chọn thư mục cài đặt phần mềm (ta nên để nguyên),sau đó bấm Next:

Chọn Full rồi bấm Next sẽ ra màn hình như sau rồi bấm Next:

Đồ án tốt nghiệp Trang 76

Page 77: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

Sau đó bấm Next, cài đặt phần mềm vào máy:

Cuối cùng bấm Finish, hoàn tất quá trình cài đặt. Ngoài màn hình Destop vô: Start/ All Programs / IAR Systems / IAR

Embedded Workbench Kickstart for MSP430 V4.10E nhấp đúp vô IAR Embedded Workbench bắt đầu chạy chương trình IAR Embedded Workbench.

Sau khi đã cài đặt xong phần mềm, chúng ta bắt đầu cài đặt thiết bị (Chú ý: Phải cài đặt xong phần mềm rồi mới cài đặt thiết bị).

Đồ án tốt nghiệp Trang 77

Page 78: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

2.2.2.2 Cài đặt thiết bị:Cắm eZ430-RF2500 vào cổng USB của máy tính. Góc bên phải ở phía dưới

destop sẽ xuất hiện:

Máy tính đã xác nhận có 1 ổ cứng mới. Sau đó sẽ xuất hiện:

Máy tính đã xác nhận chip của MSP430 theo chuẩn UART. Sau đó màn hình sẽ xuất hiện:

Đồ án tốt nghiệp Trang 78

Page 79: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

Máy tính tự động tìm ổ đĩa mới. Chọn No, not this time rồi nhấp Next. Màn hình sẽ xuất hiện:

Chọn Install the software automatically (Recommended) rồi tiếp tục bấm Next (Chỉ thực hiện được lệnh này khi đã cài đặt phần mềm IAR Embedded Workbench Kickstart for MSP430 V4.10E). Màn hình sẽ xuất hiện:

Bấm Continue Anyway để cho máy tính tiếp tục tìm ổ cứng mới. Khi quá trình này xong, máy tính đã nhận được thiết bị eZ430 – RF2500.

Để kiểm tra coi máy tính đúng đã nhận thiết bị eZ430 – RF2500 ta tiếp tục làm theo cách sau. Ở màn hình Destop vô: Start / My Computer.

Đồ án tốt nghiệp Trang 79

Page 80: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

Nhấp chuột phải ta chọn Manage. Màn hình sẽ xuất hiện:

Đồ án tốt nghiệp Trang 80

Page 81: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

Sau đó chọn vào Device Manager. Màn hình sẽ xuất hiện:

Màn hình phía bên phải ta mở tab: Port (COM & LPT). Khi đó màn hình sẽ xuất hiện:

Đồ án tốt nghiệp Trang 81

Page 82: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

Ta thấy trong tab: Port (Com & LPT) có dòng MSP430 Application UART (COM 5). Cho biết rằng máy tính đã nhận thiết bị eZ430 – RF2500. Ở đây COM 5 chỉ là nơi cắm thiết bị, có nghĩa máy tính nhận thiết bị eZ430 – RF2500 ở cổng USB số 5.

Ta đã xong phần cài đặt thiết bị, phần tiếp theo là làm theo sử dụng phần mềm, cách tạo 1 Project mới và cách thêm vào 1 Project đã có.

Đồ án tốt nghiệp Trang 82

Page 83: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

2.2.2.3 Hướng dẫn sử dụng phần mềm (The IAR Embedded Workbench IDE):

2.2.2.3.1 Giới thiệu: IAR Embedded Workbench IDE là phần mềm hỗ trợ đầy đủ các công cụ lập

trình cho dòng sản phẩm MSP 430. Ở khuôn khổ một tài liệu hướng dẫn sử dụng xin được giới thiệu tới các bạn một vài đặc tính của phần mềm như sau:

+ Trình biên dịch cấp cao được tối ưu hóa MSP430 IAR C/C++.+ Hỗ trợ trình biên dịch MSP430 IAR Assembler.+ Công cụ gỡ lỗi mạnh IAR C-SPY® debugger.

Sau khi cài đặt xong click vào đường link thì màn hình sẽ xuất hiện biểu tượng sau:

Hình 29: Cửa sổ khởi động IAR Embedded Workbench IDE

Đồ án tốt nghiệp Trang 83

Page 84: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

Click vào biểu tượng ta có màn hình soạn thảo như sau:

Hình 30: Màn hình của IAR Embedded Workbench IDE

Giới thiệu cửa sổ soạn thảo của chương trình:

Hình 31: Thanh công cụ soạn thảoIAR Embedded Workbench IDE

2.2.2.3.2 Hướng dẫn tạo New Project:Tắt cửa sổ Startup . Để tạo một Project trước tiên bạn phải đóng hết các

Workspace và Project có sẵn . Chọn File / close Workspake. Sau đó bạn vào Window / close All Editor Tabs .

Đồ án tốt nghiệp Trang 84

Page 85: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

Hình 32: Đóng Workspace có sẵn

Hình 33: Đóng tất cả Editor TabsĐể tạo một Project ta chọn Project / Create New Project. Hộp thoại xuất

hiện:

Hình 34: Cửa sổ tạo project mới

Kiểm tra Tool chain chọn MSP430 sau đó lick OK. Một cửa sổ mới hiện ra bạn đặt tên File rồi Save để hoàn thành các bước tạo một Project mới. Bạn nên tạo sẵn một thư mục mới trong ổ đĩa cứng để lưu những Project của mình.

Đồ án tốt nghiệp Trang 85

Page 86: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

Hình 35: Cửa sổ Save chương trình

Project sẽ xuất hiện trong vùng làm việc .

Hình 36: Cửa sổ vùng làm việcBạn phải Save vùng làm việc một lần nữa. Chọn File / Save Workspace, một

hộp thoại xuất hiện yêu cầu bạn chọn nơi lưu vùng làm việc. Bạn nên chọn Save vào cùng thư mục với Project đã tạo.

Hình 37: Hộp thoại New Workspake

Đồ án tốt nghiệp Trang 86

Page 87: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

Bạn đã tạo một Workspace, bạn có thể tạo nhiều Project khác nhau trong cùng một vùng làm việc. Như vậy bạn đã tạo thành công một Project mới, bạn có thể bắt đầu lập trình trong vùng soạn thảo.

Hình 38: Cửa sổ soạn thảo

2.2.2.3.3 Thiết lập các thông số cho Project:Để thiết lập các thông số cho Project bạn Click Baitap1-Debug trên cửa sổ

Workspace sau đó vào Project / Options .Tùy chọn Target trong category General Options được hiển thị . Cửa sổ

Device cho chúng ta chọn loại chip cần lập trình , bạn hãy chọn MSP 430F2274.

Hình 39: Cài đặt các tùy chọn

Đồ án tốt nghiệp Trang 87

Page 88: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

Chọn C/C++Compiler trong Category để hiển thị trang tùy chọn biên dịch, chọn ngôn ngữ lập trình C .

Hình 40: Setting compiler optionsChọn Debugger trong Category. Trong cửa sổ Driver chọn FET Debugger

để chọn tính năng gỡ lỗi và nạp xuống cho vi điều khiển sau đó click OK.

Hình 41: Debugger

Đồ án tốt nghiệp Trang 88

Page 89: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

2.2.2.3.4 Biên dịch và kiểm tra:Sau khi đã soạn thảo chương trình bước tiếp theo là biên dịch và kiểm tra lỗi.

Để biên dịch chương trình bạn chọn Project / Compile, chương trình biên dịch thành công sẽ hiện lên cửa sổ như sau:

Hình 45: Biên dịch và kiểm tra thành côngĐể nạp chương trình cho vi điều khiển Bạn chọn Project / Debug, sau khi đã

nạp thành công bạn chọn Debug / Go. Cửa sổ này chỉ hiện ra khi bạn đã nạp thành công, bạn có thể tạm dừng hoặc thoát bằng tác lệnh Break và Stop Debugging.

Hình 46: Nạp chưong trình

Đồ án tốt nghiệp Trang 89

Page 90: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

2.2.2.3.5 Thêm Project vào Workspace:Như đã giới thiệu ở trên bạn có thể tạo nhiều project trong cùng một

Workspace hoặc add các project đã có sẵn trong thư viện vào vùng làm việc của bạn. Bạn có thể sử dụng các ngôn ngữ lập trình khác nhau cho các project trong cùng một vùng làm việc, đây là một trong những tính năng ưu việt của IAR Embedded Workbench IDE giúp người lập trình so sánh và lựa chọn giải pháp lập trình tối ưu.

Để add files bạn Chọn Project-> Add Files, hộp thoại hiện ra yêu cầu bạn chọn file cần thêm vào, chọn file sau đó click OK để hoàn tất. Bạn có thể Add một hoặc nhiều files kết quả ta được một vùng làm việc với nhiều projet mới như sau:

Hình 47: Thêm Project vào Workspace

Hình 48: Thêm vào thành công

Đồ án tốt nghiệp Trang 90

Page 91: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

2.2.3 Tập lệnh C sử dụng lập trình:Tập lệnh C được viết dựa trên help của phần mềm IAR Embedded

Wowkbench. Bạn có thể sử dụng tất cả các lệnh và hàm C cơ bản, ngoài ra IAR Embedded Wowkbench còn hỗ trợ một số hàm chức năng đặc biệt.2.2.3.1 Các kiểu dữ liệu cơ bản:

Khi lập trình bạn phải lưu ý tới các phép toán có thể tràn số, tính toán với số âm hoặc ép kiểu dữ liệu. Bạn có thể khai báo một biến cục bộ hoặc biến toàn cục. Biến toàn cục ảnh hưởng tới toàn bộ chương trình còn biến cục bộ chỉ có giá trị trong hàm hoặc khối lệnh mà bạn khai báo nó. Sau đây là các kiểu dữ liệu cơ bản.

Kiểu dữ liệu Kích thước(Byte)

char 1Unsigned char 1signed char 1int 2unsigned int 2signed int 2short int 2unsigned short int 2signed short int 2long int 4signed long int 4unsigned long int 4float 4double 8long double 10

Trong chương trình đôi khi ta còn gặp các từ khóa đặc biệt.const: là từ khóa khai báo hằng số, có nghĩa là giá trị của biến không thay đổi.volatile: khai báo trước tên biến là một loại biến không bị thay đổi bởi phần

mềm, bản thân biến giúp tối ưu hóa lại cơ cấu chương trình.shifts: dịch chuyển bit.

Đồ án tốt nghiệp Trang 91

Page 92: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

2.2.3.2 Toán tử quan hệ và logic: Toán tử quan hệ dùng để kiểm tra mối quan hệ giữa hai biến hay giữa một biến

và một hằng.Toán tử quan hệ.

Toán tử Ý nghĩa

> Lớn hơn

>= Lớn hơn hoặc bằng

< Nhỏ hơn

<= Nhỏ hơn hoặc bằng

== Bằng

!= Không bằng

Toán tử logic

Toán tử Ý nghĩa

&& AND: Kết quả là True khi cả 2 điều kiện đều đúng

|| OR : Kết quả là True khi chỉ một trong hai điều kiện là đúng

! NOT: Tác động trên các giá trị riêng lẻ, chuyển đổi True thành False và ngược lại.

Toán tử xử lý bit: Toán tử chỉ được xử lý khi là các bit nhị phân

Toán tử Mô tả

AND( x & y)

Mỗi vị trí của bit trả về kết quả là 1 nếu bit của hai toán hạng là 1.

OR( x | y)

Mỗi vị trí của bit trả về kết quả là 1 nếu bit của một trong hai toán hạng là 1.

NOT( ~ x)

Ðảo ngược giá trị của toán hạng (1 thành 0 và ngược lại).

XOR( x ^ y)

Mỗi vị trí của bit chỉ trả về kết quả là 1 nếu bit của một trong hai toán hạng là 1 mà không không phải cả hai toán hạng cùng là 1.

>> Dịch phải bit

<< Dịch trái bit.

Đồ án tốt nghiệp Trang 92

Page 93: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

2.2.3.3 Tập lệnh ngôn ngữ C: Để viết chương trình cho vi điều khiển yêu cầu người lập trình cần có kiến

thức lập trình cơ bản, nhóm thực hiện để tài chỉ xin liệt kê cấu trúc các lệnh thường dùng để thuận tiện cho người học:

• if (biểu thức luận lý)khối lệnh;

• if (biểu thức luận lý) khối lệnh 1; else khối lệnh 2;• if (biểu thức luận lý 1) khối lệnh 1;

else if (biểu thức luận lý 2)khối lệnh 2;

…………. else khối lệnh n;• switch (biểu thức)

case giá trị 1: lệnh 1; break; case giá trị 2: lệnh 2; break; case giá trị n: lệnh n; break;

• switch (biểu thức)case giá trị 1: lệnh 1; break; case giá trị 2: lệnh 2; break; case giá trị n: lệnh n; default : lệnh; [ break;]

• for (biểu thức 1; biểu thức 2; biểu thức 3)khối lệnh;

• while (biểu thức)khối lệnh;

• do khối lệnh;while (biểu thức);

2.2.3.4 Chỉ thị tiền xử lý:a. #include

Cú pháp: #include <filename> hoặc # include “filename”. Tên file có thể (.h) hoặc (.c).

Ví dụ: #include "msp430x22x4.h"Ta đã khai báo thư viện cho vi điều khiển MSP430x22x4.

Đồ án tốt nghiệp Trang 93

Page 94: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

b. # defineDùng để định nghĩa biến hoặc giá trị trong header file.Ví dụ: Từ tần số tham chiếu 32KHz, ta có thể thiết lập các giá trị tần số

khác nhau (ACLK = LFXT1/8 = 32768/8, MCLK = SMCLK = target DCO).#define DELTA_1MHZ 244 // 244 x 4096Hz = 999.4Hz#define DELTA_8MHZ 1953 // 1953 x 4096Hz = 7.99MHz#define DELTA_12MHZ 2930 // 2930 x 4096Hz = 12.00MHz#define DELTA_16MHZ 3906 // 3906 x 4096Hz = 15.99MHzSử dụng các BIT đã được định nghĩa trong header file:#define LED1 BIT3#define LED2 BIT4

c. #ifdef ,#en dif: Bổ xung các dòng code cho chương trình kiểm tra.

d. #pragma basic_template_matching Sử dụng trước một hàm mẫu để khai báo sử dụng các thuộc tính đầy đủ

của bộ nhớ MSP430 IAR C/C++ Compiler Reference Guide. Ví dụ: # pragma basic_template_matching template<typename T> void fun(T *); fun((int __data16 *) 0); /* Template parameter T becomes int __data16 */

e. # warning message Sử dụng chỉ thị tiền xử lý này để nhận được các tin nhắn cảnh báo lỗi.

2.2.3.5 Các hàm xử lý số:Các hàm xử lý số được giới thiệu trong help, người học có thể tìm hiểu để biết

chi tiết, sau đây là một số hàm cơ bản:• abs() : Hàm lấy giá trị tuyệt đối.• asin(), acos(), atan() : là các hàm arcsin, arccos, arctan.• sin(), cos(), tan() : các hàm lượng giác cơ bản.• pow(): hàm tính lũy thừa.• sqrt(): hàm tính căn bậc 2.• exp(): hàm mũ ex.• rand(): lấy giá trị ngẫu nhiên.

2.2.3.6 Các hàm hỗ trợ đặc biệt:1) __cc_version1

Ví dụ: __cc_version1 int func(int arg1, double arg2)Chức năng: Gọi chương trình con trong C.

2) __set_R4_registerVí dụ: void __set_R4_register(unsigned short);Chức năng: Ghi giá trị đặc biệt vào thanh ghi R4, chức năng này chỉ sử dụng

khi R4 bị khóa.3) __set_SP_register

Ví dụ: void __set_SP_register(unsigned short);Chức năng: Ghi một giá trị đặc biệt vào con trỏ ngăn xếp SP.

4) __swap_bytesVí dụ: unsigned short __swap_bytes(unsigned short);Chức năng: Trèn vào một giá trị và đảo ngược giá trị phần trên và phần dưới:

Đồ án tốt nghiệp Trang 94

Page 95: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

__swap_bytes(0x1234) returns 0x3412

5) __set_interrupt_stateCú pháp: void __set_interrupt_state(__istate_t);Chức năng: Phục hồi trạng thái ngắt bằng cách thiết lập giá trị trả về bằng

hàm __get_interrupt_state.6) __interrupt

Ví dụ: #pragma vector=0x14__interrupt void my_interrupt_handler(void);Là hàm dùng chỉ thị tới một hoặc nhiều ngắt. Khai báo bằng chỉ thị tiền xử lý #

pragma vetor= (địa chỉ của các véc tơ ngắt).7) __no_operation

Cú pháp: void __no_operation(void);Chức năng: Trèn một lệnh NOP.

8) __low_power_mode_nCú pháp: void __low_power_mode_n(void);Chức năng: Sử dụng chế độ nguồn thấp của MSP430, n có giá trị 0-4.

9) __get_R4_registerCú pháp: unsigned short __get_R4_register(void);Chức năng: Trả về giá trị của thanh ghi R4.

10) __get_SP_registerCú pháp: unsigned short __get_SP_register(void);Chức năng: Trả về giá trị của con trỏ ngăn xếp SP.

11) __get_SR_registerCú pháp: unsigned short __get_SR_register(void);Chức năng: Trả về giá trị của thanh ghi trạng thái xử lý SR

12) __get_interrupt_stateCú pháp: __istate_t __get_interrupt_state(void);Chức năng: Trở về trạng thái ngắt toàn cụcVí dụ: __istate_t s = __get_interrupt_state(); __disable_interrupt(); /* Do something */ __set_interrupt_state(s);

13) __delay_cyclesCú pháp: void __delay_cycles(unsigned long cycles);Chức năng: Trèn một chương trình tạo trễ với thời gian được chỉ định.

14) __enable_interruptCú pháp: void __enable_interrupt(void);Chức năng: Cho phép ngắt bằng cách trèn vào lệnh EI.

14) __disable_interruptCú pháp: void __disable_interrupt(void);Chức năng: Cấm ngắt bằng cách trèn vào lệnh DI.

15) __bis_SR_registerCú pháp: void __bis_SR_register(unsigned short);Chức năng: Set các bit trong thanh ghi trạng thái.

16) __bis_SR_register_on_exitCú pháp: void __bis_SR_register_on_exit(unsigned short);

Đồ án tốt nghiệp Trang 95

Page 96: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

Chức năng: Set các bit trong thanh ghi trạng thái xử lý khi trỏ về từ chương trình phục vụ ngắt.17) __bic_SR_register

Cú pháp: void __bic_SR_register(unsigned short);Chức năng: Xóa bit trong thanh ghi trạng thái xử lý

18) __bic_SR_register_on_exitCú pháp: void __bic_SR_register_on_exit(unsigned short);Chức năng: Xóa các bít thanh ghi trạng thái xử lý khi trở về từ một ngắt.

Đồ án tốt nghiệp Trang 96

Page 97: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

CHƯƠNG 3

THIẾT KẾ PHẦN CỨNG MỞ RỘNG PORT VÀ CÁC BÀI THỰC

TẬP LẬP TRÌNH

3.1 Vấn đề đặt ra:

Đồ án tốt nghiệp Trang 97

Page 98: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

Như đuợc giới thiệu ở trên bộ thí nghiệm eZ430-RF2500 cho ta 18 chân bên ngoài để sử dụng điều khiển những thiết bị khác . Do kết cấu của quy cách đóng gói ta không sử dụng được 4 chân (chân số 1-4), một chân mass (chân số 12), hai chân đuơc sử dụng để điều khiển tụ thạch anh cho ch IC CC2500 (chân số 13 và 14). Cuối cùng ta còn lại 11 chân, với 11 chân ta chỉ có thể điều khiển những thiết bị đơn giản. Một yêu cầu được đề ra là làm sao để có thể điều khiển những thiết bị cần nhiều chân điều khiển (Một ví dụ đơn giản là điều khiển 32 led đơn sáng). Từ vấn đề trên nhóm đã quyết định sử dụng IC 74HC595 để mở rộng Port.

Và trong qúa trình làm thực nghiệm 1 vấn đề nữa cũng đã nảy sinh . Vì vi điều khiển MSP430 là loại tiết kiệm năng lượng nên mức logic 1 của nó chỉ ở 3.6V (Đó là lý thuyết) còn trong thực nghiệm khi đo chỉ được khoảng 3.2V . Gây khó khăn trong việc xử lý cũng như điều khiển các thiết bị khác, vì với 3.2V các loại thiết bị khác không hiểu được đó là mức logic 1 hay 0. Chính vì lý do đó nhóm đã sử dụng thêm IC 2803, một IC đệm đảo điện áp.

Với 2 vấn đề trên nhóm đã sử dụng 2 IC 74HC595 và 2803 để giải quyết,và chúng ta sẽ nói qua về 2 IC này.

3.2 Các IC sử dụng trong việc mở rộng Port:3.2.1 IC 74HC595:3.2.1.1 Giới thiệu:

IC 74HC595 có các đặc điểm sau:+ IC có 16 chân.+ 8 bit nối tiếp ở ngõ vào.+ 8 bít nối tiếp hoặc song song ở ngõ ra.+ Chốt thanh ghi dịch với 3 trạng thái ở ngõ ra.+ Tần số nhịp xung clock là 100MHz.

3.2.1.2 Sơ đồ chân:

Hình 49: Sơ đồ chân IC 74HC595

Chức năng từng chân:

Đồ án tốt nghiệp Trang 98

Page 99: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

+ Chân 15: Ngõ ra dữ liệu song song bit 0.+ Chân 1 - 7: Ngõ ra dữ liệu song song bit 1 – 7.+ Chân 8: Nối Mass.+ Chân 9: Ngõ ra dữ liệu nối tiếp.+ Chân 10: Reset (Hoạt động mức thấp).+ Chân 11: Nhận xung clock.+ Chân 12: Chốt dữ liệu ngõ ra.+ Chân 13: Cho phép ngõ ra (Hoạt động mức thấp).+ Chân 14: Ngõ vào dữ liệu nối tiếp.+ Chân 16: Cấp nguồn (5V).

3.2.1.3 Cấu tạo và nguyên tắc hoạt động:3.2.1.3.1 Cấu tạo:

Hình 50: Cấu tạo IC 74HC5959

Bên trong gồm 8 con FlipFlop D mắc nối tiếp . Từ tầng 0 - 7 cho ngõ ra từ Q0 - Q7 .

3.2.1.3.2 Nguyên tắc hoạt động:Bảng sự thật:

Đồ án tốt nghiệp Trang 99

Page 100: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

Bảng 16: Bảng sự thật IC 74HC595

Trong đó:+ H: Mức điện áp cao.+ L: Mức điện áp thấp.+ ↑: Chuyển đổi điện áp từ thấp lên cao.+ ↓: Chuyển đổi điện áp từ cao xuống thấp.+ n.c.: Không thay đổi.+X : Không quan tâm.

Đồ án tốt nghiệp Trang 100

Page 101: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

Dạng sóng điều khiển:

Hình 51: Dạng sóng điều khiển IC 74HC595Nguyên lý hoạt động:

Hình 52: Nguyên lý hoạt động

Đồ án tốt nghiệp Trang 101

Page 102: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

Để IC hoạt động ta phải nối chân số 10 lên nguồn 5V (không tác động Reset) và nối chân số 13 xuống Mass ( cho phép ngõ ra ). Với dữ liệu 8 bit dữ liệu được đưa vào chân 14 của IC, cứ sau mỗi xung clock được đưa vào chân số 11 của IC thì bit thứ 1 của dữ liệu đầu vào được đưa ra ở ngõ ra. Vậy sau 8 xung clock cung cấp cho chân số 11 thì 8 bit dữ liệu đầu vào sẽ được đưa ra ở ngõ ra từ Q0 – Q7. Khi 8 bit dữ liệu được đưa ra ở ngõ ra như vậy, chúng ta cần 1 xung clock cung cấp cho chân số 12 của IC để chốt dữ liệu đầu ra (Dù có thêm xung clock cung cấp cho chân số 11 thì đầu ra vẫn không thay đổi). Lúc này ta sẽ có 8 bit dữ liệu đầu ra từ Q0 - Q7 trùng khớp với 8 bit dữ liệu được đưa ở đầu vào. Muốn dịch bao nhiêu bit thì ta cần bấy nhiêu xung clock rồi đưa 1 xung chốt để đẩy dữ liệu ra ngoài.

Ở đây nếu muốn dịch số bit lớn hơn 8 thì ta cần nối tiếp thêm IC 74HC595. Nếu là 16 bit thì cần 2 IC, 24 bit thì 3 IC, 32 bit thì 4 IC …. Ta dùng chân số 9 của con thứ nhất nối tiếp vào chân dữ liệu đầu vào của con thứ 2 (chân số 14) và dùng chân số 9 của con thứ 2 nối tiếp vào chân dữ liệu đầu vào của con thứ 3, cứ thế tiếp tục. Muốn dịch bao nhiêu bit thì cần bấy nhiêu xung clock và 1 xung chốt để đẩy dữ liệu ra ngoài. Ở đồ án này, nhóm chỉ cần dịch 16 bit dùng 2 IC 74HC595 nối tiếp. Dùng 3 tầng như thế để có dịch được 48 bit.

3.2.2 IC 2803:3.2.2.1 Giới thiệu:

IC 74HC595 có các đặc điểm sau:+ IC có 18 chân.+ Vi mạch gồm 8 cổng đệm đảo, đầu ra cực thu hở.+ Dòng ngõ ra lên tới 500mA.+ Điện áp ngõ ra lên tới 95V.

3.2.2.2 Sơ đồ chân:

Hình 53: Sơ đồ chân IC 2803

Chức năng từng chân:

Đồ án tốt nghiệp Trang 102

Page 103: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

+ Chân 1 - 8: Điện áp ngõ vào.+ Chân 9: Nối Mass.+ Chân 10: Nối nguồn chuyển đổi (5V,12V).+Chân 11 – 18: Điện áp đảo ngõ ra.

3.2.2.3 Nguyên lý hoạt động:

Hình 54: Nguyên lý hoạt động của IC 2803

Vì mạch chỉ cần dùng điện áp 5V, nên ở đây nối chân 10 của IC2803 lên điện áp 5V (muốn dùng điện áp bao nhiêu thì nối chân số 10 với điện áp đó). Khi có điện áp ngõ vào là 0V IC sẽ đệm lên thành 5V và khi điện áp ngõ vào nhỏ hơn 5V IC sẽ đệm xuống thành 0V. Như thế sẽ cho ra 2 mức logic 1 và 0 để chúng ta có thể sử dụng trong các mạch điều khiển khác.

3.3 Phưong pháp mở rộng Port:

Đồ án tốt nghiệp Trang 103

Page 104: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

3.3.1 Sơ đồ nguyên lý:

Hình 55: Sơ đồ nguyên lý mở rộng Port3.3.2 Nguyên lý hoạt động:

Đồ án tốt nghiệp Trang 104

Page 105: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

Ở đây ta dùng 3 tầng thanh ghi dịch, mỗi tầng sử dụng dịch 16 bit, vậy tổng cộng ta có thể sử dụng 48 bit ghi dịch. Dùng các chân vi điều khiển MSP430F2274 qua IC 2803 để điều khiển các thanh ghi dịch. Chân số 9 của IC 74HC595 thứ 1 nối với chân số 14 của IC 74HC595 thứ 2 tạo thành tầng thứ nhất 16 bit. Chân số 9 của IC 74HC595 thứ 3 nối với chân số 14 của IC 74HC595 thứ 4 tạo thành tầng thứ hai 16 bit. Chân số 9 của IC 74HC595 thứ 5 nối với chân số 14 của IC 74HC595 thứ 6 tạo thành tầng thứ ba 16 bit.

3.3.3 Sơ đồ mạch in:

Hình 56: Sơ đồ mạch in mở rộng Port3.3.4 Mạch hoàn chỉnh:

Đồ án tốt nghiệp Trang 105

Page 106: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

Hình 57: Mạch hoàn chỉnh

3.3.5 Giới thiệu bộ Kit thí nghiệm:

Đồ án tốt nghiệp Trang 106

Page 107: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

Bộ Kit thí nghiệm bao gồm:+ Nguồn cung cấp 12V.+ 32 Led đơn có chung Vcc.+ 8 Led 7 đoạn ANot chung, theo kiểu quét Led. Điều khiển với mức logic

0.+ 1 LCD 16x2, với 8 đường dữ liệu, 3 đường điều khiển.+ 1 Led ma trận 8x8, với 2x8 đường điều khiển cột ( màu xanh hoặc đỏ) và

8 đường điều khiển hàng. Điều khiển với mức logic 1.+ 1 ma trận phím 4x4 với 8 đường điều khiển.

Hình 58: Kit thí nghiệm

3.4 Các bài tập ứng dụng:

Đồ án tốt nghiệp Trang 107

Page 108: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

3.4.1 Quy ước chung:+ Chân 7 của eZ430-RF2500T là chân xung clock của 3 tầng ghi dịch.+ Chân 12 của eZ430-RF2500T là chân Mass chung.+ Chân 18 của eZ430-RF2500T là chân dữ liệu vào của tầng thứ nhất thanh ghi

dịch.+ Chân 16 của eZ430-RF2500T là chân điều khiển xung chốt của tầng thứ nhất

thanh ghi dịch.+ Chân 15 của eZ430-RF2500T là chân dữ liệu vào của tầng thứ hai thanh ghi

dịch.+ Chân 17 của eZ430-RF2500T là chân điều khiển xung chốt của tầng thứ hai

thanh ghi dịch.+ Chân 9 của eZ430-RF2500T là chân dữ liệu vào của tầng thứ ba thanh ghi

dịch.+ Chân 11 của eZ430-RF2500T là chân điều khiển xung chốt của tầng thứ ba

thanh ghi dịch.+ Chân 5, 6, 8, 10 của của eZ430-RF2500T được nối qua IC 2803 dùng để

điều khiển tuỳ ý.+ Chân 13,14 không sử dụng được.

3.4.2 Các lưu ý trước khi sử dụng:3.4.2.1 Cách truy xuất bit trong C:

Như đã nghiêm cứu ở trên, vi điểu khiển MSP430 thường truy xuất Byte, muốn truy xuất bit ta phải định nghĩa lại vùng nhớ của nó.

Một cách truy xuất bit được sử dụng là:

union reg // Khai báo 1 byte với 8 bit struct bit // Khai báo bit trong 1 byte unsigned char b0:1; // Khai báo bit thứ 1 unsigned char b1:1; // Khai báo bit thứ 2 unsigned char b2:1; // Khai báo bit thứ 3 unsigned char b3:1; // Khai báo bit thứ 4 unsigned char b4:1; // Khai báo bit thứ 5 unsigned char b5:1; // Khai báo bit thứ 6 unsigned char b6:1; // Khai báo bit thứ 7 unsigned char b7:1; // Khai báo bit thứ 8 _BIT; // Tên của bit trong byte unsigned char _BYTE; // Tên của byte;

Ví dụ: Để khai báo chân xuất / nhập của Port 2 là:union reg* _P2_DIRECT = (union reg*)0x2A ; // Định nghĩa vùng nhớ

0x2A là _P2_DIRECT, dùng điều khiển Port 2 là xuất hay nhập.union reg* _P2_OUT = (union reg*)0x29 ; // Định nghĩa vùng

nhớ 0x29 là _P2_OUT, dùng điều khiển các bit xuất của Port 2. union reg* _P2_IN = (union reg*)0x28 ; // Định nghĩa vùng

nhớ 0x28 là _P2_IN, dùng điều khiển các bit nhập của Port 2.

3.4.2.2 Cách mở rộng Port:

Đồ án tốt nghiệp Trang 108

Page 109: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

Ví dụ: Đưa dữ liệu 0xA4BC ra tầng thứ hai của thanh ghi dịch:

Lưu đồ:

Kết nối phần cứng:+ Nối chân 7 của eZ430-RF2500T làm chân xung clock tầng ghi dịch.+ Nối chân 15 của eZ430-RF2500T làm chân dữ liệu vào của tầng thứ hai

thanh ghi dịch.+ Nối chân 17 của eZ430-RF2500T làm chân điều khiển xung chốt của tầng

thứ hai thanh ghi dịch.+ Nối chân 12 của eZ430-RF2500T làm chân Mass chung.Chương trình:

Đồ án tốt nghiệp Trang 109

Page 110: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

void MoRongP2(unsigned int q); // Khai báo hàm mở rộng tầng thứ haiunion reg // Khai báo 1 byte 8 bit struct bit unsigned char b0:1; unsigned char b1:1; unsigned char b2:1; unsigned char b3:1; unsigned char b4:1; unsigned char b5:1; unsigned char b6:1; unsigned char b7:1; _BIT; unsigned char _BYTE;;

union reg* _P3_DIRECT = (union reg*)0x1A ; // Định nghĩa vùng nhớ 0x1Aunion reg* _P3_OUT = (union reg*)0x19 ; // Định nghĩa vùng nhớ 0x19union reg* _P2_DIRECT = (union reg*)0x2A ; // Định nghĩa vùng nhớ 0x2Aunion reg* _P2_OUT = (union reg*)0x29 ; // Định nghĩa vùng nhớ 0x29

int main(void) // Chương trình chính WDTCTL = WDTPW + WDTHOLD; // Dừng ngắt _P3_DIRECT->_BYTE = 0xff; // Định nghĩa Port 3 là xuất _P2_DIRECT->_BYTE = 0xff; // Định nghĩa Port 2 là xuất volatile unsigned int a; // Biến khai báo trong RAM a=0xA4BC; // Gán a = A4BC MoRongP2(a); // Mở rộng tầng 2 với 16 bit của a void MoRongP2(unsigned int e) // Hàm mở rộng tầng thứ 2 volatile unsigned int f,g,h; // Biến khai báo trong RAM f=0x8000; // Gán f=8000 g=16; // Cho g=16 while(g>0) // Trong khi g>0 thì thực hiện h = e&f; // h = e and f if ( h == f) // Nếu h=f _P3_OUT->_BIT.b2=1; // bit 2 port 3 là mức 1 Else // ngược lại h không =f _P3_OUT->_BIT.b2=0; // bit 2 port 3 mức 0

Đồ án tốt nghiệp Trang 110

Page 111: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

_P2_OUT->_BIT.b4=0; // bit 4 port 2 mức 1(xung clock) _P2_OUT->_BIT.b4=1; // bit 4 port 2 mức 0 f=f>>1; // Xoay phải f g--; // Giảm g đi 1 _P3_OUT->_BIT.b0=0; // bit 04 port 3 mức 1(xung chốt) _P3_OUT->_BIT.b0=1; // bit 04 port 3 mức 1

3.4.3 Các bài tập về Led đơn:Bài 1: Điều khiển 16 led chớp tắt.

Lưu đồ:

Kết nối phần cứng:+ Nối 16 bit của tầng mở rộng thứ 2 với 16 Led đơn.Chương trình:

Đồ án tốt nghiệp Trang 111

Page 112: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

#include "msp430x22x4.h" // Khai báo chipvoid Delay(unsigned int Value); // Khai báo hàm Delayvoid MoRongP2(unsigned int e); // Khai báo hàm mở rộng tầng 2union reg // Khai báo 1 byte 8 bit struct bit unsigned char b0:1; unsigned char b1:1; unsigned char b2:1; unsigned char b3:1; unsigned char b4:1; unsigned char b5:1; unsigned char b6:1; unsigned char b7:1; _BIT; unsigned char _BYTE;;union reg* _P3_DIRECT = (union reg*)0x1A ;union reg* _P3_OUT = (union reg*)0x19 ;union reg* _P2_DIRECT = (union reg*)0x2A ;union reg* _P2_OUT = (union reg*)0x29 ;

int main(void) // Chương trình chính WDTCTL = WDTPW + WDTHOLD; // Dừng ngắt _P3_DIRECT->_BYTE = 0xff; _P2_DIRECT->_BYTE = 0xff; volatile unsigned int n; // Bien khai báo trong RAM for(;;) // Vòng lặp vô định n=0xffff; // 16 Led sáng MoRongP2(n); // Gọi hàm mở rộng tầng 2 với giá trị n Delay(10000); // Gọi hàm delay với giá trị 10000 n=0x0000; // 16 Led tắt MoRongP2(n); Delay(10000); void MoRongP2(unsigned int e) // Hàm mở rộng tầng 2 volatile unsigned int f,g,h; f=0x8000; g=16; while(g>0) h = e&f;

Đồ án tốt nghiệp Trang 112

Page 113: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

if ( h == f) _P3_OUT->_BIT.b2=1; else _P3_OUT->_BIT.b2=0; _P2_OUT->_BIT.b4=0; _P2_OUT->_BIT.b4=1; f=f>>1; g--; _P3_OUT->_BIT.b0=0; _P3_OUT->_BIT.b0=1; void Delay(unsigned int Value) // Hàm delay volatile unsigned int l = 0; for(l=Value; l>0; l--);

Bài 2: Điều khiển điểm sáng chạy 16 Led đơn:

Đồ án tốt nghiệp Trang 113

Page 114: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

Lưu đồ:

Kết nối phần cứng:+ Nối 16 bit của tầng mở rộng thứ 2 với 16 Led đơn.Chương trình:

Đồ án tốt nghiệp Trang 114

Page 115: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

#include "msp430x22x4.h" // Khai báo chipvoid Delay(unsigned int Value); // Khai báo hàm Delayvoid MoRongP2(unsigned int e); // Khai báo hàm mở rộng tầng 2union reg // Khai báo 1 byte 8 bit struct bit unsigned char b0:1; unsigned char b1:1; unsigned char b2:1; unsigned char b3:1; unsigned char b4:1; unsigned char b5:1; unsigned char b6:1; unsigned char b7:1; _BIT; unsigned char _BYTE;;union reg* _P3_DIRECT = (union reg*)0x1A ;union reg* _P3_OUT = (union reg*)0x19 ;union reg* _P2_DIRECT = (union reg*)0x2A ;union reg* _P2_OUT = (union reg*)0x29 ;

int main(void) // Chương trình chính WDTCTL = WDTPW + WDTHOLD; // Dừng ngắt _P3_DIRECT->_BYTE = 0xff; _P2_DIRECT->_BYTE = 0xff; volatile unsigned int n,p; // Bien khai báo trong RAM for(;;) // Vòng lặp vô định n=0x0001; // Gán n = 0001; p=16; // Cho p =16; while(p>0) // Trong khi p>0 thì MoRongP2(n); // Gọi hàm mở rộng tầng 2 với giá trị n Delay(10000); // Gọi hàm Delay với giá trị 10000

n=n<<1; // Xoay trái n p--; // Giảm p đi 1

void MoRongP2(unsigned int e) // Hàm mở rộng tầng 2 volatile unsigned int f,g,h; f=0x8000; g=16; while(g>0)

Đồ án tốt nghiệp Trang 115

Page 116: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

h = e&f; if ( h == f) _P3_OUT->_BIT.b2=1; else _P3_OUT->_BIT.b2=0; _P2_OUT->_BIT.b4=0; _P2_OUT->_BIT.b4=1; f=f>>1; g--; _P3_OUT->_BIT.b0=0; _P3_OUT->_BIT.b0=1; void Delay(unsigned int Value) // Hàm delay volatile unsigned int l = 0; for(l=Value; l>0; l--);

Bài 3: Điều khiển điểm sáng chạy 32 Led đơn:

Đồ án tốt nghiệp Trang 116

Page 117: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

Lưu đồ:

Kết nối phần cứng:+ Nối 16 bit của tầng mở rộng thứ 2 với 16 Led đơn.+ Nối 16 bit của tầng mở rộng thứ 3 với 16 Led đơn còn lại.Chương trình:

Đồ án tốt nghiệp Trang 117

Page 118: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

#include "msp430x22x4.h" // Khai báo chipvoid Delay(unsigned int Value); // Khai báo hàm Delayvoid MoRongP2(unsigned int e); // Khai báo hàm mở rộng tầng 2void MoRongP3(unsigned int i); // Khai báo hàm mở rộng tầng 3union reg // Khai báo 1 byte 8 bit struct bit unsigned char b0:1; unsigned char b1:1; unsigned char b2:1; unsigned char b3:1; unsigned char b4:1; unsigned char b5:1; unsigned char b6:1; unsigned char b7:1; _BIT; unsigned char _BYTE;;union reg* _P4_DIRECT = (union reg*)0x1E ;union reg* _P4_OUT = (union reg*)0x1D ;union reg* _P3_DIRECT = (union reg*)0x1A ;union reg* _P3_OUT = (union reg*)0x19 ;union reg* _P2_DIRECT = (union reg*)0x2A ;union reg* _P2_OUT = (union reg*)0x29 ;int main(void) // Chương trình chính WDTCTL = WDTPW + WDTHOLD; // Dừng ngắt _P4_DIRECT->_BYTE = 0xff; _P3_DIRECT->_BYTE = 0xff; _P2_DIRECT->_BYTE = 0xff; volatile unsigned int n,m,q,p; // Bien khai báo trong RAM for(;;) // Vòng lặp vô định n=0x0001; p=16; while(p>0) MoRongP2(n); Delay(10000);

n=n<<1; p--; MoRongP2(n); q=0x0001; m=17; while(m>0) MoRongP3(n);

Đồ án tốt nghiệp Trang 118

Page 119: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

Delay(10000); q=q<<1;

m--;MoRongP3(q);

void MoRongP2(unsigned int e) // Hàm mở rộng tầng 2 volatile unsigned int f,g,h; f=0x8000; g=16; while(g>0) h = e&f; if ( h == f) _P3_OUT->_BIT.b2=1; else _P3_OUT->_BIT.b2=0; _P2_OUT->_BIT.b4=0; _P2_OUT->_BIT.b4=1; f=f>>1; g--; _P3_OUT->_BIT.b0=0; _P3_OUT->_BIT.b0=1; void MoRongP3(unsigned int i) // Hàm mở rộng tầng 3 volatile unsigned int j,k,l; j=0x8000; k=16; while(k>0) l = i&j; if ( l == j) _P4_OUT->_BIT.b4=1; else _P4_OUT->_BIT.b4=0; _P2_OUT->_BIT.b4=0;

Đồ án tốt nghiệp Trang 119

Page 120: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

_P2_OUT->_BIT.b4=1; j=j>>1; k--; _P4_OUT->_BIT.b6=0; _P4_OUT->_BIT.b6=1; void Delay(unsigned int Value) // Hàm delay volatile unsigned int l = 0; for(l=Value; l>0; l--);

Bài 4: Điều khiển 32 Led đơn sáng dần:

Đồ án tốt nghiệp Trang 120

Page 121: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

Lưu đồ:

Kết nối phần cứng:+ Nối 16 bit của tầng mở rộng thứ 2 với 16 Led đơn.+ Nối 16 bit của tầng mở rộng thứ 3 với 16 Led đơn còn lại.Chương trình:

#include "msp430x22x4.h"

Đồ án tốt nghiệp Trang 121

Page 122: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

void MoRongP2(unsigned int e);void MoRongP3(unsigned int i);void Delay(unsigned int Value);union reg struct bit unsigned char b0:1; unsigned char b1:1; unsigned char b2:1; unsigned char b3:1; unsigned char b4:1; unsigned char b5:1; unsigned char b6:1; unsigned char b7:1; _BIT; unsigned char _BYTE;;

union reg* _P4_DIRECT = (union reg*)0x1E ;union reg* _P4_OUT = (union reg*)0x1D ;union reg* _P3_DIRECT = (union reg*)0x1A ;union reg* _P3_OUT = (union reg*)0x19 ;union reg* _P2_DIRECT = (union reg*)0x2A ;union reg* _P2_OUT = (union reg*)0x29 ;

int main(void) // Chương trình chính WDTCTL = WDTPW + WDTHOLD; _P4_DIRECT->_BYTE = 0xff; _P3_DIRECT->_BYTE = 0xff; _P2_DIRECT->_BYTE = 0xff; volatile unsigned int o,n,q,m,p,t,s; for(;;) n=0x0000; m=0x0001; q=16; while (q>0) n=n|m; MoRongP2(n)

Delay(10000);; m=m<<1; q--; MoRongP2(n); p=0x0000; t=0x0001; s=16;

Đồ án tốt nghiệp Trang 122

Page 123: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

while (s>0) p=p|t; MoRongP3(p); Delay(10000); t=t<<1; s--; MoRongP3(0x0000); void MoRongP2(unsigned int e) // Hàm mở rộng tầng 2 volatile unsigned int f,g,h; f=0x8000; g=16; while(g>0) h = e&f; if ( h == f) _P3_OUT->_BIT.b2=1; else _P3_OUT->_BIT.b2=0; _P2_OUT->_BIT.b4=0; _P2_OUT->_BIT.b4=1; f=f>>1; g--; _P3_OUT->_BIT.b0=0; _P3_OUT->_BIT.b0=1; void MoRongP3(unsigned int i) // Hàm mở rộng tầng 3 volatile unsigned int j,k,l; j=0x8000; k=16; while(k>0) l = i&j; if ( l == j) _P4_OUT->_BIT.b4=1; else

Đồ án tốt nghiệp Trang 123

Page 124: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

_P4_OUT->_BIT.b4=0; _P2_OUT->_BIT.b4=0; _P2_OUT->_BIT.b4=1; j=j>>1; k--; _P4_OUT->_BIT.b6=0; _P4_OUT->_BIT.b6=1; void Delay(unsigned int Value) // Hàm DeLay volatile unsigned int l = 0; for(l=Value; l>0; l--);

3.4.4 Các bài tập về Led 7 đoạn:Bài 1: Đếm từ 0 – 999 hiển thị Led 7 đoạn:

Đồ án tốt nghiệp Trang 124

Page 125: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

Lưu đồ:

Kết nối phần cứng:+ Kết nối 8 bit đầu của kênh mở rộng thứ 2 với 7 đoạn và dấu chấm thập phân

của Led 7 đoạn.+ Kết nối 8 bit đầu của kênh mở rộng thứ 3 với 8 transistor điều khiển quét

Led.Chương trình:

Đồ án tốt nghiệp Trang 125

Page 126: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

#include "msp430x22x4.h" void Delay(unsigned int Value);void MoRongP2(volatile unsigned int e);void MoRongP3(volatile unsigned int i);void Hex_BCD(); // Khai báo hàm chuyển đổi Hex - BCDvoid HienThi(); // Khai báo hàm HienThiunion reg struct bit unsigned char b0:1; unsigned char b1:1; unsigned char b2:1; unsigned char b3:1; unsigned char b4:1; unsigned char b5:1; unsigned char b6:1; unsigned char b7:1; _BIT; unsigned char _BYTE;;

union reg* _P4_DIRECT = (union reg*)0x1E ;union reg* _P4_OUT = (union reg*)0x1D ;union reg* _P3_DIRECT = (union reg*)0x1A ;union reg* _P3_OUT = (union reg*)0x19 ;union reg* _P2_DIRECT = (union reg*)0x2A ;union reg* _P2_OUT = (union reg*)0x29 ;volatile unsigned char baydoan[10]=0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90; // Khai báo mã Led 7 đoạnvolatile unsigned int nghin,tram,chuc,dvi,bien,n;

int main(void) // Chương trình chính WDTCTL = WDTPW + WDTHOLD; _P4_DIRECT->_BYTE = 0xff; _P3_DIRECT->_BYTE = 0xff; _P2_DIRECT->_BYTE = 0xff; for(;;) bien=0; for(bien=0;bien<1000;bien++) // Cho bien chạy từ 0 - 1000 n=bien; Hex_BCD(); HienThi();

Đồ án tốt nghiệp Trang 126

Page 127: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

void Hex_BCD() tram=n/100; // Lấy số hàng trăm n=n%100; chuc=n/10; // Lấy số hàng chục n=n%10; dvi=n%10; // Lấy số hàng đơn vị void HienThi() // Hàm HienThi volatile unsigned int v; v=0; while(v<2) // Thời gian đáp ứng MoRongP3(0xFF); // Chống lem MoRongP2(baydoan[dvi]); // Lấy mã 7 đoạn hàng đơn vị MoRongP3(0xFE); // Cho phép Led hàng đơn vị sáng Delay(750); // Thời gian quét Led MoRongP3(0xFF); MoRongP2(baydoan[chuc]); // Lấy mã 7 đoạn hàng chục MoRongP3(0xFD); // Cho phép Led hàng chục sáng Delay(750); MoRongP3(0xFF); MoRongP2(baydoan[tram]); // Lấy mã 7 đoạn hàng trăm MoRongP3(0xFB); // Cho phép Led hàng trăm sáng Delay(750); MoRongP2(0xFF); v++; void Delay(unsigned int Value) // Hàm Delay volatile unsigned int l = 0; for(l=Value; l>0; l--); void MoRongP2(unsigned int e) // Hàm mở rộng tầng 2 volatile unsigned int f,g,h; f=0x80; g=8; while(g>0) h = e&f; if ( h == f) _P3_OUT->_BIT.b2=0;

Đồ án tốt nghiệp Trang 127

Page 128: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

else _P3_OUT->_BIT.b2=1; _P2_OUT->_BIT.b4=0; _P2_OUT->_BIT.b4=1; f=f>>1; g--; _P3_OUT->_BIT.b0=0; _P3_OUT->_BIT.b0=1; void MoRongP3(unsigned int i) // Hàm mở rộng tầng 3 volatile unsigned int j,k,l; j=0x80; k=8; while(k>0) l = i&j; if ( l == j) _P4_OUT->_BIT.b4=0; else _P4_OUT->_BIT.b4=1; _P2_OUT->_BIT.b4=0; _P2_OUT->_BIT.b4=1; j=j>>1; k--; _P4_OUT->_BIT.b6=0; _P4_OUT->_BIT.b6=1;

Bài 2: Đồng hồ số hiển thị Led 7 đoạn:

Đồ án tốt nghiệp Trang 128

Page 129: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

Lưu đồ:

Kết nối phần cứng:+ Kết nối 8 bit đầu của kênh mở rộng thứ 2 với 7 đoạn và dấu chấm thập phân

của Led 7 đoạn.+ Kết nối 8 bit đầu của kênh mở rộng thứ 3 với 8 transistor điều khiển quét

Led.Chương trình:

Đồ án tốt nghiệp Trang 129

Page 130: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

#include "msp430x22x4.h" void Delay(unsigned int Value);void MoRongP2(volatile unsigned int e);void MoRongP3(volatile unsigned int i);void Hex_BCD();void HienThi();union reg struct bit unsigned char b0:1; unsigned char b1:1; unsigned char b2:1; unsigned char b3:1; unsigned char b4:1; unsigned char b5:1; unsigned char b6:1; unsigned char b7:1; _BIT; unsigned char _BYTE;;

union reg* _P4_DIRECT = (union reg*)0x1E ;union reg* _P4_OUT = (union reg*)0x1D ;union reg* _P3_DIRECT = (union reg*)0x1A ;union reg* _P3_OUT = (union reg*)0x19 ;union reg* _P2_DIRECT = (union reg*)0x2A ;union reg* _P2_OUT = (union reg*)0x29 ;volatile unsigned char

baydoan[10]=0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90;volatile unsigned int CHGio,DVGio,CHPhut,DVPhut,CHGiay,DVGiay;volatile unsigned long bien;

int main(void) // Chương trình chính WDTCTL = WDTPW + WDTHOLD _P4_DIRECT->_BYTE = 0xff; _P3_DIRECT->_BYTE = 0xff; _P2_DIRECT->_BYTE = 0xff; for(;;) CHGio=0;DVGio=0;CHPhut=0;DVPhut=0;CHGiay=0;DVGiay=0; for(bien=0;bien<86400;bien++) // cho bien chạy từ 0 - 86400 if(DVGiay==10) // Nếu đơn vị giây bằng 10 DVGiay=0; // Đơn vị giây =0 CHGiay=CHGiay+1; // Chục giây cộng thêm 1 if(CHGiay==6)

Đồ án tốt nghiệp Trang 130

Page 131: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

CHGiay=0; DVPhut=DVPhut+1; if(DVPhut==10) DVPhut=0; CHPhut=CHPhut+1; if(CHPhut==6) CHPhut=0; DVGio=DVGio+1; if(DVGio==10) DVGio=0; CHGio=CHGio+1; if((CHGio==2) && (DVGio==4)) CHGio=0; DVGio=0; HienThi(); DVGiay++; void HienThi() // Hàm hiển thị volatile unsigned int v; v=0; while(v<1) // Thời gian đáp ứng MoRongP3(0xFF); // Chống lem MoRongP2(baydoan[DVGiay]); // Lấy mã 7 đoạn đơn vị giây MoRongP3(0xFE); // Cho phép đơn vị giây sáng Delay(50); // Thời gian quét Led MoRongP3(0xFF); MoRongP2(baydoan[CHGiay]); // Lấy mã 7 đoạn chục giây MoRongP3(0xFD); // Cho phép chục giây sáng Delay(50); MoRongP3(0xFF); MoRongP2(0xBF); // Sáng gạch nối MoRongP3(0xFB); Delay(50); MoRongP3(0xFF);

Đồ án tốt nghiệp Trang 131

Page 132: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

MoRongP2(baydoan[DVPhut]); // Lấy mã 7 đoạn đơn vị phút MoRongP3(0xF7); // Cho phép đơn vị phút sáng Delay(50); MoRongP3(0xFF); MoRongP2(baydoan[CHPhut]); // Lấy mã 7 đoạn chục phút MoRongP3(0xEF); // Cho phép chục phút sáng Delay(50); MoRongP3(0xFF); MoRongP2(0xBF); // Sáng gạch nối MoRongP3(0xDF); Delay(50); MoRongP3(0xFF); MoRongP2(baydoan[DVGio]); // Lấy mã 7 đoạn đơn vị giờ MoRongP3(0xBF); // Cho phép đơn vị giờ sáng Delay(50); MoRongP3(0xFF); MoRongP2(baydoan[CHGio]); // Lấy mã 7 đoạn chục giờ MoRongP3(0x7F); // Cho phép chục giờ sáng Delay(50); MoRongP3(0xFF); v++; void Delay(unsigned int Value) // Hàm Delay volatile unsigned int l = 0; for(l=Value; l>0; l--); void MoRongP2(unsigned int e) // Hàm mở rộng tầng 2 volatile unsigned int f,g,h; f=0x80; g=8; while(g>0) h = e&f; if ( h == f) _P3_OUT->_BIT.b2=0; else _P3_OUT->_BIT.b2=1; _P2_OUT->_BIT.b4=0; _P2_OUT->_BIT.b4=1; f=f>>1; g--;

Đồ án tốt nghiệp Trang 132

Page 133: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

_P3_OUT->_BIT.b0=0; _P3_OUT->_BIT.b0=1; void MoRongP3(unsigned int i) // Hàm mở rộng tầng 3 volatile unsigned int j,k,l; j=0x80; k=8; while(k>0) l = i&j; if ( l == j) _P4_OUT->_BIT.b4=0; else _P4_OUT->_BIT.b4=1; _P2_OUT->_BIT.b4=0; _P2_OUT->_BIT.b4=1; j=j>>1; k--; _P4_OUT->_BIT.b6=0; _P4_OUT->_BIT.b6=1;

3.4.5 Các bài tập về LCD:

Đồ án tốt nghiệp Trang 133

Page 134: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

Bài 1: Hiển thị chữ “Thí nghiệm VDK MSP 430” trên 2 dòng bằng cách liệt kê.

Lưu đồ:

Kết nối phần cứng:+ Nối chân 10 eZ430-RF2500T điều khiển chân E của LCD.+ Nối chân 8 của eZ430-RF2500T điều khiển chân RW của LCD.+ Nối chân 6 của eZ430-RF2500T điều khiển chân RS của LCD.+ Kết nối 8 bit sau của tầng mở rộng thứ nhất với 8 đường dữ liệu LCD.Chương trình:

Đồ án tốt nghiệp Trang 134

Page 135: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

#include "msp430x22x4.h" void Delay(unsigned int Value);void MoRongP1(volatile unsigned int a);void DKLCD(); // Khai báo hàm điều khiển LCDvoid DLLCD(); // Khai báo hàm ghi dữ liệu LCDunion reg struct bit unsigned char b0:1; unsigned char b1:1; unsigned char b2:1; unsigned char b3:1; unsigned char b4:1; unsigned char b5:1; unsigned char b6:1; unsigned char b7:1; _BIT; unsigned char _BYTE;;

union reg* _P4_DIRECT = (union reg*)0x1E ;union reg* _P4_OUT = (union reg*)0x1D ;union reg* _P3_DIRECT = (union reg*)0x1A ;union reg* _P3_OUT = (union reg*)0x19 ;union reg* _P2_DIRECT = (union reg*)0x2A ;union reg* _P2_OUT = (union reg*)0x29 ;

int main(void) // Chương trình chính WDTCTL = WDTPW + WDTHOLD; _P4_DIRECT->_BYTE = 0xff; _P3_DIRECT->_BYTE = 0xff; _P2_DIRECT->_BYTE = 0xff; MoRongP1(0x00); Delay(500); MoRongP1(0x01); // Lệnh xoá màn hình DKLCD(); MoRongP1(0x38); // Cho phép hiện ở 2 dòng DKLCD(); MoRongP1(0x0C); // Tắt con trỏ DKLCD(); MoRongP1(0x83); // Hiện chữ “Thi Nghiem” dòng 1 cột 3 DKLCD(); MoRongP1('T'); DLLCD(); MoRongP1('h'); DLLCD(); MoRongP1('i'); DLLCD();

Đồ án tốt nghiệp Trang 135

Page 136: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

MoRongP1(' '); DLLCD(); MoRongP1('N'); DLLCD(); MoRongP1('g'); DLLCD(); MoRongP1('h'); DLLCD(); MoRongP1('i'); DLLCD(); MoRongP1('e'); DLLCD(); MoRongP1('m'); DLLCD(); MoRongP1(0xC2); // Hiện chữ “VDK MSP430” dòng 2 cột 2 DKLCD(); MoRongP1('V'); DLLCD(); MoRongP1('D'); DLLCD(); MoRongP1('K'); DLLCD(); MoRongP1(' '); DLLCD(); MoRongP1('M'); DLLCD(); MoRongP1('S'); DLLCD(); MoRongP1('P'); DLLCD(); MoRongP1('4'); DLLCD(); MoRongP1('3'); DLLCD(); MoRongP1('0'); DLLCD(); void DKLCD() // Hàm điều khiển LCD _P2_OUT->_BIT.b3=1; // _P4_OUT->_BIT.b3=1; _P4_OUT->_BIT.b5=0; Delay(50); _P4_OUT->_BIT.b5=1; Delay(5); void DLLCD() // Hàm ghi dữ liệu LCD

Đồ án tốt nghiệp Trang 136

Page 137: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

_P2_OUT->_BIT.b3=0; _P4_OUT->_BIT.b3=1; _P4_OUT->_BIT.b5=0; Delay(50); _P4_OUT->_BIT.b5=1; Delay(5); void MoRongP1(unsigned int a) // Hàm mở rộng tầng thứ 1 volatile unsigned int b,c,d; b=0x8000; c=16; while(c>0) d = a&b; if ( d == b) _P3_OUT->_BIT.b1=0; else _P3_OUT->_BIT.b1=1; _P2_OUT->_BIT.b4=0; _P2_OUT->_BIT.b4=1; b=b>>1; c--; _P3_OUT->_BIT.b3=0; _P3_OUT->_BIT.b3=1; void Delay(unsigned int Value) // Hàm Delay volatile unsigned int l = 0; for(l=Value; l>0; l--);

Bài 2: Hiển thị chữ “MSP 430 SPKT TPHCM” trên 2 dòng bằng cách dùng mảng:

Đồ án tốt nghiệp Trang 137

Page 138: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

Lưu đồ:

Kết nối phần cứng:+ Nối chân 10 eZ430-RF2500T điều khiển chân E của LCD.+ Nối chân 8 của eZ430-RF2500T điều khiển chân RW của LCD.+ Nối chân 6 của eZ430-RF2500T điều khiển chân RS của LCD.+ Kết nối 8 bit sau của tầng mở rộng thứ nhất với 8 đường dữ liệu LCD.Chương trình:

Đồ án tốt nghiệp Trang 138

Page 139: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

#include "msp430x22x4.hvoid Delay(unsigned int Value);void MoRongP1(volatile unsigned int a);void DKLCD(); // Khai báo hàm điều khiển LCDvoid DLLCD(); // Khai báo hàm ghi dữ liệu LCDunion reg struct bit unsigned char b0:1; unsigned char b1:1; unsigned char b2:1; unsigned char b3:1; unsigned char b4:1; unsigned char b5:1; unsigned char b6:1; unsigned char b7:1; _BIT; unsigned char _BYTE;;

union reg* _P4_DIRECT = (union reg*)0x1E ;union reg* _P4_OUT = (union reg*)0x1D ;union reg* _P3_DIRECT = (union reg*)0x1A ;union reg* _P3_OUT = (union reg*)0x19 ;union reg* _P2_DIRECT = (union reg*)0x2A ;union reg* _P2_OUT = (union reg*)0x29 ;volatile unsigned char ChuLCD1[]='M','C','U',' ','4','3','0'; // Mảng chữ

dòng 1volatile unsigned char ChuLCD2[]='S','P','K','T',' ','T','P','H','C','M'; //

Mảng chữ dòng 2volatile unsigned int n,m;

int main(void) // Chưong trình chính WDTCTL = WDTPW + WDTHOLD; _P4_DIRECT->_BYTE = 0xff; _P3_DIRECT->_BYTE = 0xff; _P2_DIRECT->_BYTE = 0xff; MoRongP1(0x00); Delay(500); MoRongP1(0x01);// Lệnh xoá màn hình DKLCD(); MoRongP1(0x38);// Cho phép hiện ở 2 dòng DKLCD(); MoRongP1(0x0C); // Tắt con trỏ DKLCD(); MoRongP1(0x84);// Hiện “MCU 430” dòng 1 cột 4 DKLCD(); for(n=0;n<7;n++)

Đồ án tốt nghiệp Trang 139

Page 140: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

MoRongP1(ChuLCD1[n]); DLLCD(); MoRongP1(0xC1); // Hiện “MCU 430” dòng 2 cột 1 DKLCD(); Delay(250); for(m=0;m<10;m++) MoRongP1(ChuLCD2[m]); DLLCD(); void DKLCD() // Hàm điều khiển LCD _P2_OUT->_BIT.b3=1; _P4_OUT->_BIT.b3=1; _P4_OUT->_BIT.b5=0; Delay(50); _P4_OUT->_BIT.b5=1; Delay(5); void DLLCD() // Hàm ghi dữ liệu LCD _P2_OUT->_BIT.b3=0; _P4_OUT->_BIT.b3=1; _P4_OUT->_BIT.b5=0; Delay(50); _P4_OUT->_BIT.b5=1; Delay(5); void MoRongP1(unsigned int a) // Hàm mở rộng tầng thứ 1 volatile unsigned int b,c,d; b=0x8000; c=16; while(c>0) d = a&b; if ( d == b) _P3_OUT->_BIT.b1=0; else _P3_OUT->_BIT.b1=1; _P2_OUT->_BIT.b4=0;

Đồ án tốt nghiệp Trang 140

Page 141: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

_P2_OUT->_BIT.b4=1; b=b>>1; c--; _P3_OUT->_BIT.b3=0; _P3_OUT->_BIT.b3=1; void Delay(unsigned int Value) // Hàm Delay volatile unsigned int l = 0; for(l=Value; l>0; l--);

3.4.6 Các bài tập về Led ma trận:

Đồ án tốt nghiệp Trang 141

Page 142: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

Bài 1: Hiện chữ “ A” bằng phương pháp liệt kệ

Lưu đồ:

Kết nối phần cứng:+ Kết nối 8 bit sau của kênh mở rộng thứ 2 với 8 hàng của Led ma trận.+ kết nối 8 bit sau của kênh mở rộng thứ 3 với 8 transitor điều khiển cột. Chương trình:

Đồ án tốt nghiệp Trang 142

Page 143: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

#include "msp430x22x4.h" void Delay(unsigned int Value);void MoRongP2(volatile unsigned int e);void MoRongP3(volatile unsigned int i);union reg struct bit unsigned char b0:1; unsigned char b1:1; unsigned char b2:1; unsigned char b3:1; unsigned char b4:1; unsigned char b5:1; unsigned char b6:1; unsigned char b7:1; _BIT; unsigned char _BYTE;;

union reg* _P4_DIRECT = (union reg*)0x1E ;union reg* _P4_OUT = (union reg*)0x1D ;union reg* _P3_DIRECT = (union reg*)0x1A ;union reg* _P3_OUT = (union reg*)0x19 ;union reg* _P2_DIRECT = (union reg*)0x2A ;union reg* _P2_OUT = (union reg*)0x29 ;

int main(void) // Chương trình chính WDTCTL = WDTPW + WDTHOLD; _P4_DIRECT->_BYTE = 0xff; _P3_DIRECT->_BYTE = 0xff; _P2_DIRECT->_BYTE = 0xff; for(;;) MoRongP3(0x00); // Chống lem MoRongP2(0xC1); // Đưa mã vào cột thứ nhất MoRongP3(0x01); // Cho phép sáng cột thứ nhất Delay(100); // Thời gian quét Led MoRongP3(0x00); MoRongP2(0xB7); // Đưa mã vào cột thứ hai MoRongP3(0x02); // Cho phép sáng cột thứ hai Delay(100); MoRongP3(0x00); MoRongP2(0x77); // Đưa mã vào cột thứ ba MoRongP3(0x04); // Cho phép sáng cột thứ ba Delay(100); MoRongP3(0x00); MoRongP2(0xB7); // Đưa mã vào cột thứ tư MoRongP3(0x08); // Cho phép sáng cột thứ tư

Đồ án tốt nghiệp Trang 143

Page 144: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

Delay(100); MoRongP3(0x00); MoRongP2(0xC1); // Đưa mã vào cột thứ năm MoRongP3(0x10); // Đưa mã vào cột thứ năm Delay(100); MoRongP3(0x00); void MoRongP2(unsigned int e) // Hàm mở rộng tầng 2 volatile unsigned int f,g,h; f=0x8000; g=16; while(g>0) h = e&f; if ( h == f) _P3_OUT->_BIT.b2=0; else _P3_OUT->_BIT.b2=1; _P2_OUT->_BIT.b4=0; _P2_OUT->_BIT.b4=1; f=f>>1; g--; _P3_OUT->_BIT.b0=0; _P3_OUT->_BIT.b0=1; void MoRongP3(unsigned int i) // Hàm mở rộng tầng 3 volatile unsigned int j,k,l; j=0x8000; k=16; while(k>0) l = i&j; if ( l == j) _P4_OUT->_BIT.b4=0; else _P4_OUT->_BIT.b4=1; _P2_OUT->_BIT.b4=0;

Đồ án tốt nghiệp Trang 144

Page 145: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

_P2_OUT->_BIT.b4=1; j=j>>1; k--; _P4_OUT->_BIT.b6=0; _P4_OUT->_BIT.b6=1; void Delay(unsigned int Value) // Hàm Delay volatile unsigned int l = 0; for(l=Value; l>0; l--);

Bài 2: Hiện chữ “ A” bằng phương pháp mảng

Đồ án tốt nghiệp Trang 145

Page 146: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

Lưu đồ:

Kết nối phần cứng:+ Kết nối 8 bit sau của kênh mở rộng thứ 2 với 8 hàng của Led ma trận.+ kết nối 8 bit sau của kênh mở rộng thứ 3 với 8 transitor điều khiển cột.Chương trình:

Đồ án tốt nghiệp Trang 146

Page 147: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

#include "msp430x22x4.h" void Delay(unsigned int Value);void MoRongP2(volatile unsigned int e);void MoRongP3(volatile unsigned int i);void HienThi();union reg struct bit unsigned char b0:1; unsigned char b1:1; unsigned char b2:1; unsigned char b3:1; unsigned char b4:1; unsigned char b5:1; unsigned char b6:1; unsigned char b7:1; _BIT; unsigned char _BYTE;;union reg* _P4_DIRECT = (union reg*)0x1E ;union reg* _P4_OUT = (union reg*)0x1D ;union reg* _P3_DIRECT = (union reg*)0x1A ;union reg* _P3_OUT = (union reg*)0x19 ;union reg* _P2_DIRECT = (union reg*)0x2A ;union reg* _P2_OUT = (union reg*)0x29 ;volatile unsigned char matran[]=0xC1,0xB7,0x77,0xB7,0xC1; // Mã ma trận chữ A

int main(void) // Chương trình chính WDTCTL = WDTPW + WDTHOLD; _P4_DIRECT->_BYTE = 0xff; _P3_DIRECT->_BYTE = 0xff; _P2_DIRECT->_BYTE = 0xff; for(;;) bien=0; m=0x0001; while(bien<5) // Số cột của chữ A MoRongP3(0x00); // Chống lem

MoRongP2(matran[bien]); // Lấy mã ma trận chữ A với giá trị bien MoRongP3(m); // Cho phép sáng cột với giá trị m Delay(10); // Thời gian quét Led bien++; m=m<<1;

Đồ án tốt nghiệp Trang 147

Page 148: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

void MoRongP2(unsigned int e) // Hàm mở rộng port tầng 2 volatile unsigned int f,g,h; f=0x8000; g=16; while(g>0) h = e&f; if ( h == f) _P3_OUT->_BIT.b2=0; else _P3_OUT->_BIT.b2=1; _P2_OUT->_BIT.b4=0; _P2_OUT->_BIT.b4=1; f=f>>1; g--; _P3_OUT->_BIT.b0=0; _P3_OUT->_BIT.b0=1; void MoRongP3(unsigned int i) // Hàm mở rộng port tầng 3 volatile unsigned int j,k,l; j=0x8000; k=16; while(k>0) l = i&j; if ( l == j) _P4_OUT->_BIT.b4=0; else _P4_OUT->_BIT.b4=1; _P2_OUT->_BIT.b4=0; _P2_OUT->_BIT.b4=1; j=j>>1; k--; _P4_OUT->_BIT.b6=0;

Đồ án tốt nghiệp Trang 148

Page 149: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

_P4_OUT->_BIT.b6=1; void Delay(unsigned int Value) // Hàm DeLay volatile unsigned int l = 0; for(l=Value; l>0; l--);

Bài 3: Hiện chữ “ THANH CONG “ chạy từ phải sang trái

Đồ án tốt nghiệp Trang 149

Page 150: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

Lưu đồ:

Kết nối phần cứng:+ Kết nối 8 bit sau của kênh mở rộng thứ 2 với 8 hàng của Led ma trận.+ kết nối 8 bit sau của kênh mở rộng thứ 3 với 8 transitor điều khiển cột.Chương trình:

Đồ án tốt nghiệp Trang 150

Page 151: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

#include "msp430x22x4.h" void Delay(unsigned int Value);void MoRongP2(volatile unsigned int e);void MoRongP3(volatile unsigned int i);void HienThi();union reg struct bit unsigned char b0:1; unsigned char b1:1; unsigned char b2:1; unsigned char b3:1; unsigned char b4:1; unsigned char b5:1; unsigned char b6:1; unsigned char b7:1; _BIT; unsigned char _BYTE;;

union reg* _P4_DIRECT = (union reg*)0x1E ;union reg* _P4_OUT = (union reg*)0x1D ;union reg* _P3_DIRECT = (union reg*)0x1A ;union reg* _P3_OUT = (union reg*)0x19 ;union reg* _P2_DIRECT = (union reg*)0x2A ;union reg* _P2_OUT = (union reg*)0x29 ;volatile unsigned char matran[]=0x7F,0x7F,0x01,0x7F,0x7F,0x01,0xEF,0xEF,0xEF,0x01,0xC1,0xB7,0x77,0xB7,0xC1,0x01,0xBF,0xDF,0xEF,0x01,0x01,0xEF,0xEF,0xEF,0x01,0xFF,0xFF,0x83,0X7D,0X7D,0X7D,0XBB,0x83,0X7D,0X7D,0X7D,0X83,0x01,0xBF,0xDF,0xEF,0x01,0x83,0x7D,0x65,0x6D,0xA3,0xFF,0xFF,0x7F,0x7F,0x01,0x7F,0x7F,0x01,0xEF; //Mã ma trận“THANHCONG”volatile unsigned int n,p,m;

int main(void) // Chương trình chính WDTCTL = WDTPW + WDTHOLD; _P4_DIRECT->_BYTE = 0xff; _P3_DIRECT->_BYTE = 0xff; _P2_DIRECT->_BYTE = 0xff; for(;;) n=0; while(n<49) // Tổng số cột trong ma trận “ THANHCONG” bien=n; m=0x01; for(p=0;p<100;p++)

Đồ án tốt nghiệp Trang 151

Page 152: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

MoRongP3(0x00); // Chống lem if(m==256) m=0x01; bien=n;

MoRongP2(matran[bien]); // Lấy mã chữ THANHCONG với giá trị bien

MoRongP3(m); // Cho phép sáng cột với giá m Delay(10); // Thời gian quét Led bien++; m=m<<1; n++; void MoRongP2(unsigned int e) // Hàm mở rộng Port tầng 2 volatile unsigned int f,g,h; f=0x8000; g=16; while(g>0) h = e&f; if ( h == f) _P3_OUT->_BIT.b2=0; else _P3_OUT->_BIT.b2=1; _P2_OUT->_BIT.b4=0; _P2_OUT->_BIT.b4=1; f=f>>1; g--; _P3_OUT->_BIT.b0=0; _P3_OUT->_BIT.b0=1; void MoRongP3(unsigned int i) // Hàm mở rộng Port tầng 3 volatile unsigned int j,k,l; j=0x8000; k=16; while(k>0)

Đồ án tốt nghiệp Trang 152

Page 153: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

l = i&j; if ( l == j) _P4_OUT->_BIT.b4=0; else _P4_OUT->_BIT.b4=1; _P2_OUT->_BIT.b4=0; _P2_OUT->_BIT.b4=1; j=j>>1; k--; _P4_OUT->_BIT.b6=0; _P4_OUT->_BIT.b6=1; void Delay(unsigned int Value) //Hàm Delay volatile unsigned int l = 0; for(l=Value; l>0; l--);

3.4.7 Các bài tập về nút nhấn:

Đồ án tốt nghiệp Trang 153

Page 154: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

Bài 1: Dùng P2.2 làm nút nhấn. Khi nhấn nút nhấn thì Led ở P1.0 sáng, không nhấn thì Led P1.0 tắt. Dùng P2.3 là nguồn 3.5V của vi điều khiển.

Lưu đồ:

Chương trình:

Đồ án tốt nghiệp Trang 154

Page 155: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

#include "msp430x22x4.h"union reg struct bit unsigned char b0:1; unsigned char b1:1; unsigned char b2:1; unsigned char b3:1; unsigned char b4:1; unsigned char b5:1; unsigned char b6:1; unsigned char b7:1; _BIT; unsigned char _BYTE;;

union reg* _P2_DIRECT = (union reg*)0x2A ;union reg* _P2_OUT = (union reg*)0x29 ;union reg* _P2_IN = (union reg*)0x28 ;union reg* _P1_DIRECT = (union reg*)0x22 ;union reg* _P1_IN = (union reg*)0x20 ;

void main(void) // Chương trình chính WDTCTL = WDTPW + WDTHOLD; _P1_DIRECT->_BIT.b0 = 1; _P2_DIRECT->_BIT.b3 = 1; _P2_DIRECT->_BIT.b2 = 0; // Định nghĩa P2.2 là ngõ vào while (1) _P2_OUT->_BIT.b3 = 1; // Set P2.3 lên 1 if (1 & _P2_IN->_BIT.b2) // Kiểm tra P2.2 nếu = 1 _P1_OUT->_BIT.b0 = 1; // Set P1.0 = 1 else _P1_OUT->_BIT.b0 = 0; // Ngược lại P1.0 = 0

Đồ án tốt nghiệp Trang 155

Page 156: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

Bài 2: Tạo 3 nút nhấn, Up, Down, ReSet. Nhấn Up thì biến tăng lên 1 và Led P1.0 sáng, nhấn Down thì biến giảm đi 1 và Led P1.1 sáng, nhấn Reset biến về 0. Dùng P2.3 làm nút nhấn Up, dùng P2.2 làm nút nhấn Down, dùng P4.3 làm nút nhấn Reset, dùng P4.5 là nguồn 3.5V của vi điều khiển. Hiển thị trên 2 Led 7 đoạn.

Lưu đồ:

Kết nối phần cứng:+ Kết nối 8 bit đầu của kênh mở rộng thứ 2 với 7 đoạn và dấu chấm thập phân

của Led 7 đoạn.

Đồ án tốt nghiệp Trang 156

Page 157: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

+ Kết nối 8 bit đầu của kênh mở rộng thứ 3 với 8 transistor điều khiển quét Led.

Chương trình:

#include "msp430x22x4.h"void MoRongP2(unsigned int e);void MoRongP3(unsigned int i);void HienThi();void Delay(unsigned int Value);union reg struct bit unsigned char b0:1; unsigned char b1:1; unsigned char b2:1; unsigned char b3:1; unsigned char b4:1; unsigned char b5:1; unsigned char b6:1; unsigned char b7:1; _BIT; unsigned char _BYTE;;

union reg* _P4_DIRECT = (union reg*)0x1E ;union reg* _P4_OUT = (union reg*)0x1D ;union reg* _P4_IN = (union reg*)0x1C ;union reg* _P3_DIRECT = (union reg*)0x1A ;union reg* _P3_OUT = (union reg*)0x19 ;union reg* _P3_IN = (union reg*)0x18 ;union reg* _P2_DIRECT = (union reg*)0x2A ;union reg* _P2_OUT = (union reg*)0x29 ;union reg* _P2_IN = (union reg*)0x28 ;union reg* _P1_DIRECT = (union reg*)0x22 ;union reg* _P1_OUT = (union reg*)0x21 ;union reg* _P1_IN = (union reg*)0x20 ;volatile unsigned char baydoan[10]=0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90;volatile unsigned int DV,CH;

void main(void) // Chương trình chính WDTCTL = WDTPW + WDTHOLD; _P1_DIRECT->_BIT.b0 = 1; _P1_DIRECT->_BIT.b1 = 1; _P4_DIRECT->_BYTE = 0xff; _P3_DIRECT->_BYTE = 0xff; _P2_DIRECT->_BIT.b4 = 1; _P2_DIRECT->_BIT.b2 = 0; // Định nghĩa P2.2 là ngõ vào

Đồ án tốt nghiệp Trang 157

Page 158: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

_P2_DIRECT->_BIT.b3 = 0; // Định nghĩa P2.3 là ngõ vào _P4_DIRECT->_BIT.b3 = 0; // Định nghĩa P4.3 là ngõ vào DV=0; CH=0; _P4_OUT->_BIT.b5 = 1;for(;;) if (1 & _P2_IN->_BIT.b3) // Kiểm tra P2.3, nếu = 1 _P1_OUT->_BIT.b0 = 1; // Thì P1.0 = 1 DV++; // DV thêm 1 if (DV==10) DV=0; CH++; if (CH==10) CH=0; else _P1_OUT->_BIT.b0 = 0; // Ngược lại P1.0 = 0 if (1 & _P2_IN->_BIT.b2) // Kiểm tra P2.2, nếu = 1 _P1_OUT->_BIT.b1 = 1; // Thì P1.1 = 1 DV--; // DV trừ 1 if (DV==-1) DV=9; CH--; if (CH==-1) CH=9; else _P1_OUT->_BIT.b1 = 0; // Ngược lại P1.1 = 0 if (1 & _P4_IN->_BIT.b3) // Kiểm tra P4.3, nếu = 1 DV=0; // DV = 0 CH=0; // CH = 0

Đồ án tốt nghiệp Trang 158

Page 159: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

HienThi();void HienThi() // Hàm HienThi volatile unsigned int v; v=0; while(v<30) // Thời gian đáp ứng, chống rung MoRongP3(0xFF); MoRongP2(baydoan[DV]); MoRongP3(0xFE); Delay(500); MoRongP3(0xFF); MoRongP2(baydoan[CH]); MoRongP3(0xFD); Delay(500); MoRongP3(0xFF); v++; void Delay(unsigned int Value) // Hàm delay volatile unsigned int l = 0; for(l=Value; l>0; l--); void MoRongP2(unsigned int e) // Hàm mở rộng tầng 2 volatile unsigned int f,g,h; f=0x80; g=8; while(g>0) h = e&f; if ( h == f) _P3_OUT->_BIT.b2=0; else _P3_OUT->_BIT.b2=1; _P2_OUT->_BIT.b4=0; _P2_OUT->_BIT.b4=1; f=f>>1; g--; _P3_OUT->_BIT.b0=0;

Đồ án tốt nghiệp Trang 159

Page 160: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

_P3_OUT->_BIT.b0=1; void MoRongP3(unsigned int i) // Hàm mở rộng tầng 3 volatile unsigned int j,k,l; j=0x80; k=8; while(k>0) l = i&j; if ( l == j) _P4_OUT->_BIT.b4=0; else _P4_OUT->_BIT.b4=1; _P2_OUT->_BIT.b4=0; _P2_OUT->_BIT.b4=1; j=j>>1; k--; _P4_OUT->_BIT.b6=0; _P4_OUT->_BIT.b6=1;

Đồ án tốt nghiệp Trang 160

Page 161: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

3.4.8 Các bài tập về Timer:Bài 1: Sử dụng ngắt Timer_A, sau chu kỳ 50000 thì chớp tắt Led P1.0:

Lưu đồ:

Đồ án tốt nghiệp Trang 161

Page 162: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

Chương trình:

include "msp430x22x4.h" union reg struct bit unsigned char b0:1; unsigned char b1:1; unsigned char b2:1; unsigned char b3:1; unsigned char b4:1; unsigned char b5:1; unsigned char b6:1; unsigned char b7:1; _BIT; unsigned char _BYTE;;

union reg* _P1_DIRECT = (union reg*)0x22 ;union reg* _P1_OUT = (union reg*)0x21 ;

int main(void) WDTCTL = WDTPW + WDTHOLD; _P1_DIRECT->_BYTE = 0x01; // Định nghĩa P1.0 là ngõ ra TACCTL0 = CCIE; // Cho phép ngắt Timer_A TACCR0 = 50000; // Cho chu kỳ là 50000 TACTL = TASSEL_2 + MC_2; // Sử dụng xung clock SMCLK, chế độ tiếp tục

__bis_SR_register(LPM0_bits + GIE); // Cho phép ngắt LPM0

#pragma vector=TIMERA0_VECTOR // Sử dụng ngắt Timer_A trong suốt quá trình__interrupt void Timer_A (void) // Hàm ngắt Timer_A _P1_OUT->_BIT.b0 ^= 1; // P1.0 Xor 1 TACCR0 = TACCR0 + 50000; // Thiết lập chu kỳ mới là 50000

Đồ án tốt nghiệp Trang 162

Page 163: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

Bài 2: Sử dụng ngắt Timer_B, sau chu kỳ 50000 thì chớp tắt Led P1.1:

Lưu đồ:

Đồ án tốt nghiệp Trang 163

Page 164: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

Chương trình:

include "msp430x22x4.h" union reg struct bit unsigned char b0:1; unsigned char b1:1; unsigned char b2:1; unsigned char b3:1; unsigned char b4:1; unsigned char b5:1; unsigned char b6:1; unsigned char b7:1; _BIT; unsigned char _BYTE;;

union reg* _P1_DIRECT = (union reg*)0x22 ;union reg* _P1_OUT = (union reg*)0x21 ;

int main(void) WDTCTL = WDTPW + WDTHOLD; _P1_DIRECT->_BYTE = 0x02; // Định nghĩa P1.1 là ngõ ra TBCCTL0 = CCIE; // Cho phép ngắt Timer_B TBCCR0 = 50000; // Cho chu kỳ là 50000 TBCTL = TBSSEL_2 + MC_2; // Sử dụng xung clock SMCLK, chế độ tiếp tục

__bis_SR_register(LPM0_bits + GIE); // Cho phép ngắt LPM0

#pragma vector=TIMERB0_VECTOR // Sử dụng ngắt Timer_B trong suốt quá trình__interrupt void Timer_B (void) // Hàm ngắt Timer_B _P1_OUT->_BIT.b1 ^= 1; // P1.1 Xor 1 TBCCR0 = TBCCR0 + 50000; // Thiết lập chu kỳ mới là 50000

Đồ án tốt nghiệp Trang 164

Page 165: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

3.4.7 Các bài tập về ADC10:Bài 1: Dùng cảm biến nhiệt độ có sẵn trong board, đo nhiệt độ. Rồi dùng

ADC10 chuyển nhiệt độ từ tương tự sang số xuất ra 10 Led đơn. Khi chuyển đổi xong, Led P1.0 sáng.

Lưu đồ:

Đồ án tốt nghiệp Trang 165

Page 166: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

Kết nối phần cứng:+ Nối 16 bit của tầng mở rộng thứ 2 với 16 Led đơn.Chương trình:

#include "msp430x22x4.h" void Delay(unsigned int Value);void MoRongP2(volatile unsigned int e);union reg struct bit unsigned char b0:1; unsigned char b1:1; unsigned char b2:1; unsigned char b3:1; unsigned char b4:1; unsigned char b5:1; unsigned char b6:1; unsigned char b7:1; _BIT; unsigned char _BYTE;;union reg* _P4_DIRECT = (union reg*)0x1E ;union reg* _P4_OUT = (union reg*)0x1D ;union reg* _P3_DIRECT = (union reg*)0x1A ;union reg* _P3_OUT = (union reg*)0x19 ;union reg* _P2_DIRECT = (union reg*)0x2A ;union reg* _P2_OUT = (union reg*)0x29 ;union reg* _P1_DIRECT = (union reg*)0x22 ;union reg* _P1_OUT = (union reg*)0x21 ;int degC,temp;

void main(void) // Chương trình chính WDTCTL = WDTPW + WDTHOLD; _P4_DIRECT->_BYTE = 0xff; _P3_DIRECT->_BYTE = 0xff; _P2_DIRECT->_BYTE = 0xff; _P1_DIRECT->_BYTE = 0x01; ADC10CTL1 = INCH_10 + ADC10DIV_4; // Định dạng thanh ghi ADC10CTL1: Dùng cảm biến,clock ADC10 bằng xung nội chia 5 ADC10CTL0 = SREF_1 + ADC10SHT_3 + REFON + ADC10ON + ADC10IE + ADC10SR; // Định dạng thanh ghi ADC10CTL0 for( degC = 240; degC > 0; degC-- ); // delay cho phép lưu định dạng while(1) ADC10CTL0 |= ENC + ADC10SC; // Lấy mẫu vào bắt đầu chuyển đổi, lưu vào thanh ghi ADC10MEM

Đồ án tốt nghiệp Trang 166

Page 167: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

__bis_SR_register(CPUOFF + GIE); // Cho phép ngắt LPM0 temp = ADC10MEM; MoRongP2(temp); // Mở rộng tầng 2 với giá trị temp _P1_OUT->_BIT.b0=1; // Set P1.0 = 1 #pragma vector=ADC10_VECTOR // Sử dụng ngắt ADC10 trng suốt qúa trình

__interrupt void ADC10_ISR(void) // Hàm ngắt ADC10 __bic_SR_register_on_exit(CPUOFF); // xoá bit CPUOFF void MoRongP2(unsigned int e) // Hàm mở rộng tầng 2

volatile unsigned int f,g,h; f=0x8000; g=16; while(g>0) h = e&f; if ( h == f) _P3_OUT->_BIT.b2=1; else _P3_OUT->_BIT.b2=0; _P2_OUT->_BIT.b4=0; _P2_OUT->_BIT.b4=1; f=f>>1; g--; _P3_OUT->_BIT.b0=0; _P3_OUT->_BIT.b0=1;

Đồ án tốt nghiệp Trang 167

Page 168: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

Bài 2: Dùng cảm biến nhiệt độ có sẵn trong board, đo nhiệt độ. Rồi dùng ADC10 chuyển nhiệt độ từ tương tự sang số, sau đó chuyển đổi sang độ C, hiển thị ra Led 7 đoạn. Khi chuyển đổi xong, Led P1.0 sáng.

Lưu đồ:

Kết nối phần cứng:

Đồ án tốt nghiệp Trang 168

Page 169: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

+ Kết nối 8 bit đầu của kênh mở rộng thứ 2 với 7 đoạn và dấu chấm thập phân của Led 7 đoạn.

+ Kết nối 8 bit đầu của kênh mở rộng thứ 3 với 8 transistor điều khiển quét Led.

Chương trình:

#include "msp430x22x4.h" void Delay(unsigned int Value);void MoRongP2(volatile unsigned int e);void MoRongP3(volatile unsigned int i);void Hex_BCD();void HienThi();union reg struct bit unsigned char b0:1; unsigned char b1:1; unsigned char b2:1; unsigned char b3:1; unsigned char b4:1; unsigned char b5:1; unsigned char b6:1; unsigned char b7:1; _BIT; unsigned char _BYTE;;

union reg* _P4_DIRECT = (union reg*)0x1E ;union reg* _P4_OUT = (union reg*)0x1D ;union reg* _P3_DIRECT = (union reg*)0x1A ;union reg* _P3_OUT = (union reg*)0x19 ;union reg* _P2_DIRECT = (union reg*)0x2A ;union reg* _P2_OUT = (union reg*)0x29 ;union reg* _P1_DIRECT = (union reg*)0x22 ;union reg* _P1_OUT = (union reg*)0x21 ;volatile unsigned char baydoan[10]=0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90;volatile unsigned int temp,degC,tram,chuc,dvi,n;

int main(void) // chương trình chính WDTCTL = WDTPW + WDTHOLD; _P4_DIRECT->_BYTE = 0xff; _P3_DIRECT->_BYTE = 0xff; _P2_DIRECT->_BYTE = 0xff; _P1_DIRECT->_BYTE = 0x01; ADC10CTL1 = INCH_10 + ADC10DIV_4; // Định dạng thanh ghi ADC10CTL1: Dùng cảm biến,clock ADC10 bằng xung nội chia 5

Đồ án tốt nghiệp Trang 169

Page 170: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

ADC10CTL0 = SREF_1 + ADC10SHT_3 + REFON + ADC10ON + ADC10IE + ADC10SR; // Định dạng thanh ghi ADC10CTL0 for( degC = 240; degC > 0; degC-- ); // delay cho phép lưu định dạng

for(;;) ADC10CTL0 |= ENC + ADC10SC; // Lấy mẫu vào bắt đầu chuyển đổi, lưu vào thanh ghi ADC10MEM temp = ADC10MEM; n = ((temp - 673) * 423) / 1024; // Công thức chuyển sang độ C _P1_OUT->_BIT.b0=1; // Set P1.0 Hex_BCD(); HienThi(); void Hex_BCD() // Hàm chuyển đổi Hex_BCD tram=n/100; n=n%100; chuc=n/10; n=n%10; dvi=n%10; void HienThi() // Hàm Hienthi volatile unsigned int v; v=0; while(v<5) MoRongP3(0xFF); MoRongP2(0xC6); // Hiển thị chữ “ C” MoRongP3(0xFE); Delay(500); MoRongP3(0xFF); MoRongP2(0x9C); // Hiển thị dấu độ 0

MoRongP3(0xFD); Delay(500); MoRongP3(0xFF); MoRongP2(baydoan[dvi]); MoRongP3(0xFB); Delay(500); MoRongP3(0xFF); MoRongP2(baydoan[chuc]); MoRongP3(0xF7); Delay(500); MoRongP3(0xFF); v++;

Đồ án tốt nghiệp Trang 170

Page 171: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

void Delay(unsigned int Value) // Hàm Delay volatile unsigned int l = 0; for(l=Value; l>0; l--); void MoRongP2(unsigned int e) // Hàm mở rộng tầng 2 volatile unsigned int f,g,h; f=0x80; g=8; while(g>0) h = e&f; if ( h == f) _P3_OUT->_BIT.b2=0; else _P3_OUT->_BIT.b2=1; _P2_OUT->_BIT.b4=0; _P2_OUT->_BIT.b4=1; f=f>>1; g--; _P3_OUT->_BIT.b0=0; _P3_OUT->_BIT.b0=1; void MoRongP3(unsigned int i) // Hàm mở rộng tầng 3 volatile unsigned int j,k,l; j=0x80; k=8; while(k>0) l = i&j; if ( l == j) _P4_OUT->_BIT.b4=0; else _P4_OUT->_BIT.b4=1; _P2_OUT->_BIT.b4=0;

Đồ án tốt nghiệp Trang 171

Page 172: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

_P2_OUT->_BIT.b4=1; j=j>>1; k--; _P4_OUT->_BIT.b6=0; _P4_OUT->_BIT.b6=1;

Đồ án tốt nghiệp Trang 172

Page 173: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

Chương 4

KẾT QUẢ NGHIÊN CỨU KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

Đồ án tốt nghiệp Trang 173

Page 174: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

4 .1 Kết quả nghiên cứu: Sau một thời gian nghiên cứu, thử nghiệm và thi công đề tài “Khảo sát họ vi điều khiển MSP430” đã được hoàn thành với một số nội dung chính sau:

+ Tìm hiểu về cấu tạo, nguyên lý, các đặc tính của vi điều khiển MSP430, đại điện là IC MSP430F2274.

+ Tìm hiểu về cấu tạo, nguyên lý hoạt động, các đặc tính của bộ mođun eZ430-RF2500. Cách cài đặt phần cứng vào máy tính.+ Tìm hiểu về phần mềm IAR Embedded Workbench: cách cài đặt, cách sử dụng, chương trình biên dịch, nạp cho vi xử lý.

+ Tìm hiểu về cách lập trình C trong IAR Embedded Workbench cho vi điều khiển MSP430 (MSP430F2274).+ Thiết kế mođun phần cứng mở rộng port sử dụng cho vi điều khiển MSP430 (MSP430F2274).

+ Thiết kế các bài tập cho vi điều khiển MSP430 (MSP430F2274) trên bộ Kit thí nghiệm:

Các bài tập về Led đơn. Các bài tập về Led 7 đoạn. Các bài tập về LCD. Các bài tập về Led ma trận. Các bài tập về nút nhấn. Các bài tập về Timer. Các bài tập về ADC

4.2 Kết luận : Đề tài cơ bản đã hoàn thành theo đúng ý đồ của nhóm thực hiện. Tuy vậy trong

quá trình hoàn thiện đề tài cũng còn một số thiếu sót và khó khăn nhất định như có một số ý kiến không thống nhất giữa các thành viên, thời gian và kinh phí cũng là vấn đề cần quan tâm. Do vậy ở một chừng mực nhất định những hạn chế khách quan và chủ quan nên có một số nôi dụng chưa được quan tâm thỏa đáng vì vậy đề tài không tránh khỏi có những sai sót.

Nhưng với sự đánh giá khách quan của các thầy cô cũng như sự góp ý chân thành ở bạn bè sẽ giúp nhóm thực hiện đề tài tìm các biện pháp khắc phục những mặt còn hạn chế trong đồ án của mình.

4.3 Hướng phát triển : Sẽ tăng cường, bổ sung thêm cho thiết bị thực tập lập trình các mô đun mới

như mô đun truyền dữ liệu không dây, mô đun mở rộng bộ nhớ.Hoàn thành các bài mẫu cho dòng vi điều khiển MSP trên ngôn ngữ hợp ngữ.

Thiết kế được một giao diện điều khiển cho thiết bị thực tập lập trình, trong đó có nhúng vào môi trường soạn thảo tích hợp, các phần mềm nạp chương trình đa năng.

Đồ án tốt nghiệp Trang 174

Page 175: 102725121 Nhung Kien Thuc Co Ban Ve MSP 430

Khảo sát họ vi điều khiển MSP430 (F2274)

TÀI LIỆU THAM KHẢO

1. Help phần mềm IAR Embedded Workbech IDE2. Datasheet MSP 430F22473. Trang web chính của Texas Instruments www.ti.com4. User’s Guide5. www.ti.com/automotive6. www.ti.com/broadband7. www.ti.com/digitalcontrol8. www.ti.com/medical9. www.ti.com/military10. www.ti.com/opticalnetwork11. www.ti.com/security12. www.ti.com/telephony13. www.ti.com/video14. www.ti.com/wireless

Đồ án tốt nghiệp Trang 175