You are on page 1of 26

TRƯỜNG ĐẠI HỌC CẦN THƠ

KHOA CÔNG NGHỆ


BỘ MÔN TỰ ĐỘNG HÓA
-----  -----

ĐỒ ÁN VI ĐIỀU KHIỂN
ĐỀ TÀI: TÌM HIỂU CẤU TRÚC GPIO CỦA MSP430-THIẾT
KẾ MẠCH TẠO HIỆU ỨNG TRÊN 16 LED ĐƠN.
NHÓM 5

Cán bộ hướng dẫn: Nhóm sinh viên thực hiên:


Nguyễn Khắc Nguyên Nguyễn Hữu Cảnh B1709064
Trương Văn Cường B1709065
Trần Vũ Luân B1709091
MỤC LỤC
I.GIỚI THIỆU ĐỀ TÀI ................................................................................................................................. 3
a. Nội dung .............................................................................................................................................. 3
b.Các tính năng ....................................................................................................................................... 3
c.Phương pháp thực hiện ....................................................................................................................... 3
II.GPIO ..................................................................................................................................................... 3
III.THỰC HIỆN .......................................................................................................................................... 4
a.Mô hình hệ thống................................................................................................................................. 4
i. Mô tả sơ lược hệ thống:................................................................................................................... 4
ii. Sơ đồ khối hệ thống mạch điện ...................................................................................................... 4
b. Thiết kế phần cứng mạch điện: .......................................................................................................... 5
i. Sơ lược hoạt động của mạch điện: .................................................................................................. 5
ii. Mạch điện mô phỏng phần cứng: ................................................................................................... 5
iii. Thiết kế chi tiết ............................................................................................................................... 6
c. Thiết kế phần mềm điểu khiển............................................................................................................ 6
i. Chức năng phần mềm: ..................................................................................................................... 6
ii. Sơ đồ chính:..................................................................................................................................... 7
............................................................................................................................................................ 7
iii. Sơ đồ chương trình con:................................................................................................................. 8
iv. Đoạn code chương trình .............................................................................................................. 15
3.kết quả thực hiện ............................................................................................................................... 22
a. Mô hình thực tế ............................................................................................................................ 22
b. phần cứng mạch điện ................................................................................................................... 22
c. Kết quả .......................................................................................................................................... 23
d. Ưu nhược điểm của hệ thống ....................................................................................................... 24
e. Các hướng phát triển .................................................................................................................... 24
4. Tài liệu tham khảo ............................................................................................................................. 24
5. Phụ lục............................................................................................................................................... 24
a. Quá trình thực hiện đề tại ............................................................................................................. 24
b. Danh sách các thành viên và bảng phân chia công việc ............................................................... 24

2
I.GIỚI THIỆU ĐỀ TÀI
a. Nội dung
 Đề tài: Tìm hiểu cấu trúc GPIO của MSP430-thiết kế mạch tạo
hiệu ứng trên 16 led đơn.
 Mục tiêu: Hiểu được chức năng, cách sử dụng GPIO và thiết kế
mạch tạo hiệu ứng trên 16 led đơn (6 hiệu ứng).
b.Các tính năng
Xử lí phím nhấn tạo 6 hiệu ứng trên 16 led đơn:
 Khi nhấn phím 1: chớp tắt.
 Khi nhấn phím 2: một led tắt dịch.
 Khi nhấn phím 3: dịch sáng 2 led.
 Khi nhấn phím 4: dịch 2 led xen kẻ.
 Khi nhấn phím 5: chớp tắt 8 led xen kẻ.
 Khi nhấn phím 6: các led sang dần tắt dần.
c.Phương pháp thực hiện
-Lập trình chức năng GPIO cho chip MSP430 sử dụng button, để điều
khiển trạng thái hoạt động của 16 LED đơn,thông qua 2 IC 74HC595.
-Sử dụng 3 chân P1.0,P1.1,P1.2 của chip MSP430G2553 kết nối với 3
chân SCK,CLK,DATA của IC 74HC595,ghép 2 IC 74HC595 với nhau
để kết nối với 16 LED đơn. Sử dụng 6 chân P2.0-P2.5 của chip
MSP430G2553 nhận dữ liệu vào, kết nối với button.
II.GPIO
 Giới thiệu:
-GPIO là viết tắt General Purpose Input Output
( Cổng đầu vào, ra với mục đích cơ bản) nó là các chân đầu ra, đầu
vào đa chức năng.
-Số Port tùy thuộc vào loại MCU: 1- 12 Port.
-Mỗi bit của port(port pin) có thể điều khiển độc lập.
-Pin vào có thể tạo ra tín hiệu ngắt(Ext interupt).
 Một số thanh ghi thường được sử dụng:
 Thanh ghi cấu hình vào/ra cho port pin
PxDIR.y = 0: bit thứ y của Px là INPUT
PxDIR.y = 1: bit thứ y của Px là OUTPUT

3
 Thanh ghi điều khiển port pin:
PxOUT.y = 0: bit thứ y của Px là 0
PxOUT.y = 1: bit thứ y của Px là 1
 Thanh ghi PxIN: đọc trạng thái port pin:
PxIN: chứa trạng thái logic đọc vào của Px
 Thanh ghi PxREN: thiết lập điện trợ kéo nội bên trong MCU cho các pin
Input:
PxREN.y = 1: bật điện trở kéo tại pin y
PxREN.y = 0: tắt điện trở kéo tại pin y
 Thanh ghi PxIE: cho phép ngắt port pin (đối với chân là Input):
PxIE.y = 1: cho phép ngắt tại pin y của Px
PxIE.y = 0: không phép ngắt tại pin y của Px
 Thanh ghi PxIES: thiết lập cạnh ngắt của tín hiệu( cạnh lênh hoặc cạnh
xuống):
PxIES.y = 1: cho phép ngắt cạnh xuống
PxIES.y = 0: cho phép ngắt cạnh lên
 Thanh ghi PxIFG: chứa cờ ngắt (trạng thái tác động của tín hiệu):
PxIFG.y = 1: một ngắt đang chờ xử lý tại pin thứ y
PxIFG.y = 0: không có ngắt (không có tín hiệu tác động)
III.THỰC HIỆN
a.Mô hình hệ thống
i. Mô tả sơ lược hệ thống:
- 16 led đơn
- 6 nút nhấn
- Dây bus
- 2 IC74HC595
ii. Sơ đồ khối hệ thống mạch điện

4
b. Thiết kế phần cứng mạch điện:
i. Sơ lược hoạt động của mạch điện:
Cấp nguồn cho mạch và nạp dữ liệu vào MSP430G2553. Nối chân port 1 ra IC
ghi dịch 74HC595 kết nối các ngõ ra của IC ra 16 led. Nối Port 2 với 6 nút ấn,
sau đó tác động vào nút ấn điều khiển trạng thái led.
ii. Mạch điện mô phỏng phần cứng:

5
iii. Thiết kế chi tiết
1. Khối xử lí trung tâm
 Xử lý tín hiệu thông qua IC ghi dịch.
 Thông số mạch điện: Nguồn, ngõ/ra vào IC, nhận tính hiệu từ nút
nhấn.
 Kết nối:
+ Chân P1.0,P1.1,P1.2 kết nối với 3 chân CK, Data, Latch.
+ Q0 đến Q7 của IC kết nối với led.
+ Mách nối tiếp 2 IC (Q7’ nối DS).
2. Khối hiển thị:
 Hiển thị hiệu ứng.
 Nhận tính hiểu ngõ ra của IC.
 Kết nối:
+ Đầu dương nối điện trở ra IC.
+ Đầu âm nối GND.
3. Khối điều khiển:
 Tác động bằng nút nhấn.
 Ngõ vào tác động vào các Port của MSP.
 Kết nối với PORT 2 từ bit 0 đến bit 5.
c. Thiết kế phần mềm điểu khiển
i. Chức năng phần mềm:
Viết code lập trình cho MSP430 bằng phần mềm IAR.

6
ii. Sơ đồ chính:

7
iii. Sơ đồ chương trình con:
 Hiệu ứng 1: Chóp tắt

8
 Hiệu ứng 2: Dịch tắt 1 led

9
 Hiệu ứng 3: Dịch sáng 2 led

10
 Hiệu ứng 4:Dịch sáng 2 led xen kẻ

11
 Hiệu ứng 5: 8 Led sáng tắt xen kẻ

12
Hiệu ứng 6: Led sáng dần tắt dần

13
 Tạo xung CK:

 Tạo xung chốt:

 Lear bit:

14
iv. Đoạn code chương trình
#include "msp430g2553.h"
// khai bao IO
#define CK BIT0 //khai bao CK =P1.0
#define DATA BIT1 // DATA=P1.1
#define LATCH BIT2 // LATCH=P1.2

15
#define K1 BIT0 // K1=P2.0
#define K2 BIT1 // K2=P2.1
#define K3 BIT2 // K3=P2.2
#define K4 BIT3 // K4=P2.3
#define K5 BIT4 // K5=P2.4
#define K6 BIT5 // K6=P2.5
/*--------chuong trinh con dieu khien 74hc595*/
void xung_ck();
void chot();
void xoa();
/*--------chuong trinh con dieu khien LED--------*/
void chop_tat();
void mot_led_tat_dich();
void dich2led();
void dich2();
void chop_tat_8led_xen_ke();
void sang_dan_tat_dan();
// dinh nghia chuong trinh chinh
void main (void) {
WDTCTL =WDTPW +WDTHOLD; // tat watchdog
P1DIR |= 0xff; // khai bao p1 la output
//-----------------------khai báo PORT2--------------------
P2DIR &=~ 0x3f; // khai bao chan p2.0-p2.5 nhan tac dong
cua phim nhan
P2OUT |= 0x3f; // keo dien tro len cho cac port p2.0-p2.5
P2REN |= 0x3f; // bat dienn tro keo cho port p2.0-p2.5
//-----------------khai bao ngat port 2---------------------
P2IE |= 0x3f; // cho phep ngat tai P2.0-P2.5
P2IES |= 0x3f; // ngat canh xuong

16
P2IFG |= 0x3f; // xoa co ngat truoc khi vao vong lap
chuong trinh
_BIS_SR(GIE); // cho phep ngat toan cuc GIE
// vong lap chuong trinh chinh
while(1)
{
} // end while
} // end main
// dinh nghia vector ngat
#pragma vector = PORT2_VECTOR
__interrupt void Port2(void)
{
if ((P2IN & K1)==0) // co phim an code xu li
{
chop_tat();
}
if((P2IN & K2)==0)
{
mot_led_tat_dich();
}
if((P2IN & K3)==0 )
{
dich2led();
}
if( (P2IN & K4)==0 )
{
dich2();
}
if( (P2IN & K5)==0)
{

17
chop_tat_8led_xen_ke();
}
if( (P2IN & K6)==0 )
{
sang_dan_tat_dan();
}
}
void chot()
{
P1OUT|=LATCH; //Set P1.2=1
__delay_cycles(15000);
P1OUT&=~LATCH; // clear P1.2=0
__delay_cycles(15000);
}
void xung_ck()
{
P1OUT|=CK; // Set P1.0=1
__delay_cycles(15000);
P1OUT&=~CK; // clear P1.0=0
__delay_cycles(15000);
}
void xoa()
{ P1OUT&=~DATA; // clear p1.1=0
for (int i =0;i<17;i++)
{
xung_ck(); // du lieu xung 1, 0 se duoc dua vao IC
}
chot(); // du lieu xung 1, 0 dua ra ngo ra IC
}

18
// cac hieu ung
// HIEU UNG 1
void chop_tat() {
for(int i=0;i<4;i++) {
for(int i=0;i<17;i++) {
xung_ck();
P1OUT|=DATA;
}
chot();
for(int i=0;i<17;i++) {
xung_ck();
P1OUT&=~DATA;
}
chot();
}
}
// HIEU UNG 2
void mot_led_tat_dich() {
P1OUT|=DATA;
for(int i=0;i<17;i++){
xung_ck();
}
chot();
for(int i=0;i<4;i++){
P1OUT&=~DATA;
xung_ck();
chot();

for(int i=0;i<17;i++){
P1OUT|=DATA;
19
xung_ck();
chot();
}}}
// HIEU UNG 3
void dich2led() {
for(int i=0;i<4;i++) {
P1OUT|=DATA;
for(int i=0;i<2;i++)
{
xung_ck();
}
chot();
for(int i=0;i<9;i++) {
P1OUT&=~DATA;
for(int i=0;i<2;i++) {
xung_ck();
}
chot();
}}}
// HIEU UNG 4
void dich2() {
for(int i=0;i<8;i++) {
P1OUT|=DATA;
for(int i=0;i<2;i++) {
xung_ck();
}
chot();
P1OUT&=~DATA;
for(int i=0;i<2;i++) {
xung_ck();
20
}
chot();
}
xoa();
}
// HIEU UNG 5
void chop_tat_8led_xen_ke(){
for (int i=0;i<4;i++){
P1OUT|=DATA;
for (int i=0;i<9;i++){
xung_ck();
}
chot();
P1OUT&=~DATA;
for(int i=0;i<9;i++){
xung_ck();
}
chot();
xoa();
}
}
// HIEU UNG 6
void sang_dan_tat_dan(){
for(int i=0;i<4;i++){
for (int i=0;i<17;i++){
P1OUT|=DATA;
xung_ck();
chot();
}
for(int i=0;i<17;i++){
21
P1OUT&=~ DATA;
xung_ck();
chot();
}
}
}

3.kết quả thực hiện


a. Mô hình thực tế

b. phần cứng mạch điện


 MSP430G2553: bộ phận xử lý trung tâm nhận tính hiệu từ nút nhấn tạo ra
hiệu ứng

22
 IC 74hc595: Tăng thêm ngõ ra của MSP

 Led và nút nhấn: Tác động vào MSP và led sáng tắt theo hiệu ứng

c. Kết quả
Chương trình thực hiện được với các hiệu ứng đã đặt ra:

23
 Khi nhấn phím 1: chớp tắt.
 Khi nhấn phím 2: một led tắt dịch.
 Khi nhấn phím 3: dịch sáng 2 led.
 Khi nhấn phím 4: dịch 2 led xen kẻ.
 Khi nhấn phím 5: chớp tắt 8 led xen kẻ.
 Khi nhấn phím 6: các led sáng dần tắt dần.
d. Ưu nhược điểm của hệ thống
 Ưu điểm: chương trình hoạt động tốt , đáp ứng được các yêu cầu đề ra.
 Nhược điểm: các led còn bị nhiễu do cấp nguồn.
e. Các hướng phát triển
Tạo ra nhiều hiệu ứng bắt mắt. Làm bảng quảng cáo bằng led đơn. Trang trí nhà
cửa và làm biểu báo.
4. Tài liệu tham khảo
https://mlab.vn/index.php?_route_=4900-hoc-msp430-voi-kit-msp430-
launchpad-bai-2-gpio-va-clock-phan-1.html
http://vimach.net/threads/gpio-xuat-nhap-i-o-trong-msp430.64/
https://huynhgiaublog.com/kienthucdientu-chipdieukhienmsp430-chucnangio-
dieukhien8leddon/
5. Phụ lục
a. Quá trình thực hiện đề tại
i. Kế hoạch thời gian: khoảng 2 tuần
ii. Những khó khăn và thuận lợi trong quá trình thực hiện
đề tài và kiến nghị:
 Khó khăn: hư nhiều ic, led khi mô phỏng thực
tế.
 Thuận lợi: các thành viên có mặt đủ đóng góp ý
kiến xây dựng đề tại.
b. Danh sách các thành viên và bảng phân chia công việc
 Nguyễn Hữu Cảnh: Làm mạch thực tế.
 Trương Văn Cường: Viết code mô phỏng.
 Trần Vũ Luân: Tìm tài liệu soạn file word.
6.Trả lời câu hỏi
a.Nguyễn Hữu Cảnh
Câu hỏi: cách kết nối mở rộng port ra 16 led đơn.

24
Trả lời: Dùng 2 ic 74hc595 để mở rộng port : Sử dụng 3 chân P1.0,P1.1,P1.2
của chip MSP430G2553 kết nối với 3 chân SCK,CLK,DATA của IC.

b. Trương Văn Cường


Câu hỏi:chỉ ra chương trình đưa dữ liệu ra ngoài led đơn
Trả lời : code tạo xung để đưa dữ liệu vào ic

code dưa dữ liệu ra led đơn

c. Trần Vũ Luân
Câu hỏi: chỉ ra đoạn code thực hiện phím nhấn và 1 hiệu ứng bất kì.

25
Trả lời: sử dụng phương pháp dung ngắt để đọc phím nhấn tác động thấp.
Code xử lí phím nhấn.

Code xử lí hiệu ứng chớp tắt:

26

You might also like