ƯỜ Ạ Ọ TR Ộ NG Đ I H C BÁCH KHOA HÀ N I

Ệ Ử

VI N ĐI N T  ­ VI N THÔNG

BÁO CÁO Đ  ÁN 2

ệ ộ ộ ẩ

: Đo nhi

t đ , đ   m khí ga.

ề Đ  Tài

ườ

Giao ti p qua Module Bluetooth HC05  ặ c v  đi n tho i ho c PC. Báo cho ng

i

ế ượ ề ệ ỉ

ạ ộ

ầ ­ Yêu c u Đ  Tài:  ề ữ ệ truy n d  li u đo đ ự ố ế dùng bi

t có s  c  khi có rò r  khí đ c.

ướ

ẫ : Cô Đinh Th  Nhung

Giáo viên h

ng d n

H  và tên:

Nguy n Vũ Tùng Giang    20101438     ĐTVT­08     K55

Phan Qu c Vi

t                  20102782    ĐTVT­08     K55

Nguy n H u Hi n              20101532    ĐTVT­08     K55

L I NÓI Đ U

ệ ấ ự ử ề ể ề ậ ấ ọ ỹ K  thu t vi x  lý và đi u khi n đã xu t hi n r t nhi u trong m i lĩnh v c

ọ ỹ ớ ự ẽ ủ ệ ể ệ ề ậ ạ khoa h c k  thu t hi n nay. V i s  phát tri n m nh m  c a công ngh , nhi u

ữ ử ề ể ệ ấ ớ ớ ọ h  vi x  lý và đi u khi n cùng v i nh ng tính năng m i xu t hi n ngày càng đa

ề ệ ể ọ ượ ứ ấ ộ ụ ạ d ng. Trong đó h  vi đi u khi n MSP430 hi n đang đ c  ng d ng r t r ng rãi

ự ễ ự ề trong nhi u lĩnh v c th c ti n.

ướ ụ ứ ủ ể ề ể ể ừ     Đ  t ng b ọ c làm ch  và có th  áp d ng h  vi đi u khi n này vào các  ng

ự ễ ằ ả ộ ố ụ ể ế ụ d ng th c ti n, nh m gi i quy t các bài toán c  th  trong cu c s ng, trong

ự ệ ề ể ạ ị ph m vi Project II, nhóm chúng em đã th c hi n đ  tài: “Đo và hi n th  nhi ệ ộ   t đ ,

ườ ờ ư ủ ả ồ ồ ộ ủ ộ ẩ đ   m, c a môi tr ng đ ng th i đ a ra c nh báo khi n ng đ  khí gas c a môi

ườ ượ ớ ạ ủ ầ ớ ướ tr ng v t quá gi ế i h n cho phép”. V i ý ki n đóng góp c a th y giáo h ng

ầ ự ứ ư ể ượ ẫ d n cùng tinh th n t tìm hi u, nghiên c u nhóm chúng em đã đ a ra đ ộ c m t

ự ế ạ ẩ ươ ố ầ ủ ầ ượ ư ả s n ph m ch y th c t ứ  đáp  ng t ng đ i đ y đ  các yêu c u đ c đ a ra

ề trong đ  tài.

ƯƠ

Ả Ề

CH

NG I: MÔ T  Đ  TÀI

1.1. Yêu c u ch c năng

ứ ầ

ượ ệ ộ ộ ẩ ủ ườ ­ Đo đ c nhi t đ , đ   m c a môi tr ng.

ượ ồ ộ ườ ư ả ­ Đo đ c n ng đ  khí gas trong môi tr ng và đ a ra c nh báo.

ị ượ ị ệ ộ ộ ẩ ủ ườ ể ­ Hi n th  đ c giá tr  nhi t đ , đ   m c a môi tr ng.

ứ ầ 1.2. Yêu c u phi ch c năng

ạ ộ ạ ố ườ ệ ­ M ch ho t đ ng t t ngay trong môi tr ắ ng kh c nghi t.

ế ế ỏ ọ ể ế ắ ặ ạ ­ M ch thi ể ễ t k  nh  g n đ  có th  d  dàng ti n hành l p đ t.

ự ệ ạ ấ ­ Chi phí th c hi n m ch th p.

ụ ử ụ 1.3. Các công c  s  d ng

ạ ả ị ­ IAR Embedded Workbench: trình biên d ch so n th o code.

ề ầ ế ế ạ ạ ­ Altium Designer : ph n m m thi t k  m ch nguyên lý, m ch in.

ơ ồ ố ủ ệ ố 1.4. S  đ  kh i c a h  th ng

ƯƠ

CH

NG II: THI T K  PH N C NG – PHÂN TÍCH Đ C ĐI M,

Ệ Ố

Ố CH C NĂNG CÁC KH I TRONG H  TH NG

ơ ồ

ố ủ ệ D a vào nh ng yêu c u ch c năng, phi ch c năng cùng s  đ  kh i c a h

ư

ế ế ơ ồ

th ng, nhóm chúng em đã đ a ra b n thi

ư t k  s  đ  nguyên lý m ch nh

ể ử ụ hình v , trong đó kh i đi u khi n s  d ng KIT phát tri n LaunchPad

MSP430, ch y trên MSP430G2553.

ệ ố

ơ ồ

Hình 1: S  đ  nguyên lý h  th ng

ụ ể ơ ồ ặ ứ ủ ể Sau đây, nhóm chúng em xin trình bày c  th  s  đ , đ c đi m và ch c năng c a

ệ ố ố ừ t ng kh i trong h  th ng.

Ố Ể Ề 2.1 KH I ĐI U KHI N – KIT LAUNCHPAD MSP430

ử ụ ụ ứ ể ề ạ Trong  ng d ng này, nhóm s  d ng vi đi u khi n MSP430G2553 ch y trên KIT

ể phát tri n LaunchPad MSP430

ể Hình 2: Kit phát tri n LaunchPad MSP

ấ ồ Kit LaunchPad MSP do hãng ST cung c p, trên Kit bao g m:

ồ ử ụ ố ồ ­ Kh i ngu n s  d ng ngu n DC 5V.

ợ ẵ ạ ạ ố ườ ử ụ ể ự ế ạ ­ Kh i m ch n p tích h p s n giúp ng i s  d ng có th  tr c ti p n p và

ươ debug ch ng trình ngay trên Kit.

ế ố ớ ủ ế ề ể ắ ồ ố ­ Kh i vi đi u khi n g m đ  chíp và các jump c m k t n i v i I/O c a vi

ề ườ ử ụ ở ộ ứ ể ắ ụ ể đi u khi n giúp ng i s  d ng có th  c m bo m  r ng  ng d ng ra bên

ngoài.

ư ệ ấ ơ ­ Các linh ki n khác nh : Led đ n, nút b m …

ử ụ ể ạ ạ ươ Trong ph m vi Project II, nhóm chúng em s  d ng Kit đ  n p ch ng trình và

ứ ủ ể ế ố ớ k t n i v i các chân I/O c a MSP430G2553 ra bo ch c năng bên ngoài đ  giao

ể ả ể ề ế ề ế ả ớ ị ể ti p v i các c m bi n, đi u khi n hi n th , đi u khi n c nh báo.

Ố Ể Ị 2.2 KH I HI N TH

ị ử ụ ể ể ử ụ ể ố ị ị ệ ộ ộ ẩ Kh i hi n th  s  d ng LCD16x2, s  d ng đ  hi n th  giá tr  nhi t đ , đ   m

ườ ả ề ừ ế ủ c a môi tr ng tr  v  t ả  các c m bi n.

ố ị ể Hình 3: Kh i hi n th  LCD16x2

ể ỉ ử ụ ộ ươ ế ở ả ủ Bi n tr  VR1 10K s  d ng đ  ch nh đ  t ng ph n c a màn hình LCD16x2.

Ố Ả 2.3 KH I C NH BÁO

ố ả ử ụ ồ ộ ườ ượ Kh i c nh báo s  d ng còi chíp 5V, khi n ng đ  khí gas trong môi tr ng v t

ớ ạ ể ẽ ể ế ề ệ ề ố ố quá gi i h n cho phép, kh i đi u khi n s  phát tín hi u đi u khi n đ n kh i

ẽ ằ ộ ồ ớ ạ ả c nh báo và còi chíp s  kêu. Khi n ng đ  khí gas n m trong gi i h n an toàn,

ể ẽ ể ắ ề ề ệ ố kh i đi u khi n s  phát tín hi u đi u khi n t t còi chíp.

ố ả Hình 4: Kh i c nh báo

Ế Ố Ả 2.4 KH I C M BI N

ể ượ ệ ộ ộ ẩ ộ ồ ườ Đ  đo đ c nhi t đ , đ   m và n ng đ  khí gas trong môi tr ng, nhóm chúng

ạ ả ử ụ ế em s  d ng 2 lo i c m bi n:

ế ả ệ ộ ­ C m bi n nhi ộ ẩ t đ  và đ   m DHT11.

ế ả ­ C m bi n khí gas MQ2.

ắ ạ ượ ế ế ể ễ ế ố ớ ả Trên bo m ch, các jump c m đ c thi t k  đ  d  dàng k t n i v i các c m

bi n.ế

ế ố ả ế Hình 5: Jump k t n i c m bi n

ế ả ệ ộ 2.4.1 C m bi n nhi ộ ẩ t đ  và đ   m DHT11

ế ệ ộ ả Hình 6: C m bi n nhi ộ ẩ t đ  và đ   m DHT11

ế ả ồ C m bi n DHT11 g m 4 chân:

ạ ộ ế ả ấ ồ ­ VCC: C p ngu n 5V cho c m bi n ho t đ ng.

ố ấ ­ GND: Chân n i đ t.

ữ ệ ể ả ế ể ề ế ớ ­ DATA: Chân d  li u đ  c m bi n giao ti p v i vi đi u khi n.

ế ố ­ NC: chân không k t n i.

ộ ố ố ỹ ậ M t s  thông s  k  thu t:

­ Đo đ   m: 20%­95%.

ộ ẩ

­ Nhi

ệ ộ t đ : 0­50ºC.

ố ộ ẩ ­ Sai s  đ   m ±5%.

­ Sai s  nhi

ố ệ ộ t đ : ±2ºC.

ạ ộ Nguyên lý ho t đ ng:

ơ ồ ế ố ử ­ S  đ  k t n i vi x  lý:

ơ ồ ế ố ể ề ớ Hình 7: S  đ  k t n i DHT11 v i vi đi u khi n

ạ ộ ­ Nguyên lý ho t đ ng:

ử ự ể ệ ế ể ẩ ớ Đ  có th  giao ti p v i DHT11 theo chu n 1 chân vi x  lý th c hi n theo 2

b c:ướ

 G i tin hi u mu n đo (Start) t

ử ệ ố ớ ậ ạ i DHT11, sau đó DHT11 xác nh n l i.

 Khi đã giao ti p đ

ế ượ ớ ế ẽ ử ạ ữ ệ ả c v i DHT11, C m bi n s  g i l i 5 byte d  li u và

ệ ộ ượ nhi t đ  đo đ c.

ướ ệ ử  B c 1: g i tín hi u Start

ử ừ ể ề ệ Hình 8: Tín hi u START g i t vi đi u khi n

(cid:0) MCU thi

ế ậ ố t l p chân DATA là Output, kéo chân DATA xu ng 0 trong

ả ờ kho ng th i gian >18ms.

(cid:0) MCU đ a chân DATA lên 1, sau đó thi

ư ầ ế ậ ạ t l p l i là chân đ u vào.

(cid:0) ẽ ế ả ấ ố Sau kho ng 20­40us, DHT11 s  kéo chân DATA xu ng th p. N u >40us

ượ ế ượ ớ ấ ố mà chân DATA ko đ c kéo xu ng th p nghĩa là ko giao ti p đ c v i

DHT11.

(cid:0) Chân DATA s

ẽ ở ứ ấ ượ m c th p 80us sau đó nó đ c DHT11 kéo nên cao trong

ể ế ượ ệ ằ ế 80us. B ng vi c giám sát chân DATA, MCU có th  bi t đ c có giao ti p

ượ ớ ệ ế ượ đ c v i DHT11 ko. N u tín hi u đo đ c DHT11 lên cao, khi đó hoàn

ế ủ ệ ớ thi n quá trình giao ti p c a MCU v i DHT.

 B c 2: đ c giá tr  trên DHT11

ướ ọ ị

ị ệ ộ ề ướ ạ ẽ ả DHT11 s  tr  giá tr  nhi ộ ẩ t đ  và đ   m v  d i d ng 5 byte. Trong đó:

(cid:0) Byte 1: giá tr  ph n nguyên c a đ   m (RH%)

ủ ộ ẩ ầ ị

(cid:0) Byte 2: giá tr  ph n th p phân c a đ   m (RH%) ậ

ủ ộ ẩ ầ ị

(cid:0) Byte 3: giá tr  ph n nguyên c a nhi ầ

ủ ị ệ ộ t đ  (TC)

(cid:0) Byte 4 : giá tr  ph n th p phân c a nhi ầ

ủ ậ ị ệ ộ t đ  (TC)

(cid:0) Byte 5 : ki m tra t ng. ể

ị ộ ẩ ế N u Byte 5 = (8 bit) (Byte1 +Byte2 +Byte3 + Byte4) thì giá tr  đ   m và nhi ệ   t

ế ế ả ộ đ  là chính xác, n u sai thì k t qu  đo không có nghĩa.

 Đ c d  li u: Sau khi giao ti p đ

ọ ữ ệ ế ượ ớ ẽ ử ế c v i DHT11, DHT11 s  g i liên ti p

ề ặ ươ ứ ả ủ ế ệ 40 bit 0 ho c 1 v  MCU, t ng  ng chia thành 5 byte k t qu  c a Nhi t

(cid:0) Bit 0:

(cid:0) Bit 1:

ộ ẩ ộ đ  và đ   m.

ệ ượ ư ề ủ ợ ượ Sau khi tín hi u đ c đ a v  0, ta đ i chân DATA c a MCU đ c DHT11 kéo

ế ồ ạ ế ả lên 1. N u chân DATA là 1 trong kho ng 26­28 us thì là 0, còn n u t n t i 70us

ắ ườ ậ ủ là 1. Do đó trong l p trình ta b t s n lên c a chân DATA, sau đó delay 50us.

ế ị ượ ọ ượ ế ị ượ N u giá tr  đo đ c là 0 thì ta đ c đ c bit 0, n u giá tr  đo đ ị c là 1 thì giá tr

ượ ứ ư ế ế ọ đo đ c là 1. C  nh  th  ta đ c các bit ti p theo.

Ố Ả Ế 2.4.2 KH I C M BI N KHÍ GAS MQ2

ệ ể ế ể ả ượ ấ c c u ­ MQ2 là c m bi n khí, dùng đ  phát hi n các khí có th  gây cháy. Nó đ

ạ ả ẫ ấ ấ ạ ớ ạ ừ ấ t o t ộ  ch t bán d n SnO2. Ch t này có đ  nh y c m th p v i không khí s ch.

ư ườ ộ ẫ ủ ấ ổ Nh ng khi trong môi tr ng có ch t ngây cháy, đ  d n c a nó thay đ i ngay.

ờ ặ ể ườ ể ế ạ Chính nh  đ c đi m này ng ơ i ta thêm vào m ch đ n gian đ  bi n đ i t ổ ừ ộ  đ

ệ ạ nh y này sang đi n áp.

ườ ủ ả ị ệ ệ ế ạ ầ ấ ầ ­ Khi môi tr ng s ch đi n áp đ u ra c a c m bi n th p, giá tr  đi n áp đ u ra

ồ ộ càng tăng khi n ng đ  khí gây cháy xung quang MQ2 càng cao.

ấ ố ườ ấ ỏ ạ ộ ­ MQ2 ho t đ ng r t t t trong môi tr ng khí hóa l ng LPG, H2, và các ch t khí

ượ ử ụ ụ ệ ộ gây cháy khác. Nó đ c s  d ng r ng rãi trong công nghi p và dân d ng do

ả ấ ạ ơ m ch đ n gi n và chi phí th p.

ơ ồ ế ả Hình 9: S  đ  chân c m bi n MQ2

 Chân 1,3 là A

 Chân 2,5 là B

 Chân 4,6 là C

­ Trong đó:

ơ ồ ế ố ­ S  đ  k t n i MQ2

ơ ồ Hình 10: S  đ  module MQ2

ạ ầ ­ Trong m ch có 2 chân đ u ra là Aout và Dout. Trong đó:

 Aout: đi n áp ra t

ệ ươ ự ạ ừ ụ ộ ồ ng t . Nó ch y t ộ  0.3 ­ 4.5V, ph  thu c vào n ng đ

khí xung quanh MQ2.

 Dout: đi n áp ra s , giá tr  0,1 ph  thu c vào đi n áp tham chi u và n ng

ụ ệ ế ệ ố ộ ồ ị

ượ ộ đ  khí mà MQ2 đo đ c.

 Vi c có chân ra s  Dout r t ti n cho các  ng d ng đ n gi n, không c n

ấ ệ ụ ứ ệ ả ầ ố ơ

ị ế ỉ ầ ở ớ ề ể ỉ ị ồ ế đ n vi đi u khi n. Khi đó ta ch  c n ch nh giá tr  bi n tr  t i giá tr  n ng

ố ả ộ ồ ượ ấ ơ ộ đ  ta mu n c nh báo. Khi n ng đ  MQ2 đo đ ứ c th p h n m c cho phép

ắ ồ ộ ượ ớ ơ thì Dout = 1. Đèn Led t t. Khi n ng đ  khí đo đ ồ c l n h n n ng khí cho

phép, Dout =0, đèn led sáng.

ử ụ ể ả ủ ề Trong đ  tài này, nhóm chúng em s  d ng chân Dout c a module đ  c nh báo

ồ ộ ườ ẽ ượ ế ố ớ ầ khi có n ng đ  khí gas trong môi tr ng. Chân Dout s  đ c k t n i v i 1 đ u

ọ ề ứ ủ ắ ệ in c a MSP430G2553, khi tín hi u đ c v  là m c logic 1 thì cho t t còi chíp, khi

ọ ề ể ả ệ tín hi u đ c v  là 0 thì cho còi chíp kêu đ  c nh báo.

ế ế ơ ồ ẽ ạ ế ể Sau khi thi t k  s  đ  nguyên lý, nhóm đã ti n hành đi dây và v  m ch in đ  có

ể ượ ằ ạ th  làm đ c m ch in b ng tay:

ủ ệ ố ơ ồ ạ Hình 11: S  đ  m ch in c a h  th ng

ƯƠ

CH

NG II: L P TRÌNH PH N M M

ươ ủ ệ ố ế ị Ch ng trình c a h  th ng vi t trên trình biên d ch IAR Embedded Workbench,

ể ề ạ ch y trên vi đi u khi n MSP430G2553.

ồ Code g m các file:

ứ ươ ủ ề ậ ­ Main.c:Ch a ch ng trình chính, nêu rõ thu t toán c a đ  tài.

ư ệ ứ ế ị ­ Main.h: Ch a các khai báo th  vi n, đ nh nghĩa các chân I/O giao ti p.

ươ ­ Các file driver: dht11, lcd16x2,…đây là các file nêu rõ ph ứ ng th c giao

ữ ể ề ế ớ ti p gi a vi đi u khi n v i các driver.

#include "main.h"

void Buzz_On()

{

P2OUT |= SPEAK;

}

void Buzz_Off()

{

P2OUT &= ~SPEAK;

}

void  main(void)

{

uint8_t temp=2;

uint8_t humi=12;

uint8_t str[16];

WDTCTL = WDTPW + WDTHOLD;

// Stop watchdog timer, Tan so Clock 1MHz

Hàm main.c:

P1DIR = 0xff;

// Cau hinh PORT1 là Output

P1OUT = 0x00;

P2DIR |= BIT0|BIT1;

// Cau hinh PORT2.0, PORT2.1 là Output

P2DIR &= ~BIT2;

// Cau hinh PORT2.2 là Input

P2REN &= ~BIT2;

// Cau hinh khong tro treo cho PORT2.2

Buzz_Off();

LCD_Init ();

LCD_Gotoxy(0,0);

sprintf(str,"   PROJECT II   ");

LCD_Puts(str);

_delay_cycles(2000000);

// 2s

LCD_Clear();

while(1)

{

if(DHT_GetTemHumi (&temp,&humi))

{

sprintf(str,"Temp: %d%cC",temp,'\xdf');

LCD_Gotoxy(0,0);

LCD_Puts(str);

sprintf(str,"Humi: %d%c",humi,'%');

LCD_Gotoxy(0,1);

LCD_Puts(str);

}

if(P2IN & MQ2)Buzz_On();

else Buzz_Off();

}

}

#ifndef MAIN_H_

#define MAIN_H_

/*    Kieu So Nguyen Co Dau    */

typedef   signed          char int8_t;

Hàm main.h:

typedef   signed           int int16_t;

typedef   signed long      int int32_t;

/*   Kieu So Nguyen Khong Dau */

typedef   unsigned         char uint8_t;

typedef   unsigned           int  uint16_t;

typedef   unsigned long    int  uint32_t;

/*   Kieu So Thuc */

typedef   float            float32_t;

#include 

#include 

#include 

#include 

#include 

// Khai bao chan cho LCD16x2 ­ PORT1

#define LCD_RS

BIT0

#define LCD_RW

BIT1

#define LCD_EN

BIT2

// Khai bao cho DHT11 ­ PORT2

#define DHT_DDR_DATABIT0

#define DHT_DATA_OUT BIT0

#define DHT_DATA_IN

BIT0

// Khai bao Speak ­ PORT2

#define SPEAK

BIT1

// Khai bao MQ2 ­ PORT2

#define MQ2

BIT2

#define DHT_ER

0

#define DHT_OK

1

#endif /*MAIN_H_*/

/*********************************** VI DU ************************************

uint8_t dht_nhiet_do,dht_do_am,dht_Ok;

dht_Ok = DHT_GetTemHumi(&dht_nhiet_do,&dht_do_am);

*******************************************************************************/

#include "main.h"

/*******************************************************************************

Noi Dung    :   MCU gui yeu cau chuyen doi den DHT11.

Tham Bien   :   Khong.

Tra Ve      :   Khong.

********************************************************************************/

uint8_t DHT_GetTemHumi (uint8_t *tem,uint8_t *humi)

{

uint8_t buffer[5]={0,0,0,0,0};

uint8_t ii,i,checksum;

P2DIR |= DHT_DDR_DATA;

P2OUT |= DHT_DATA_OUT;

//delay_us(60);

_delay_cycles(60);

P2OUT &= ~DHT_DATA_OUT;

//delay_ms(25); // it nhat 18ms

_delay_cycles(25000);

P2OUT |= DHT_DATA_OUT;

P2DIR &= ~DHT_DDR_DATA;

//delay_us(60);

_delay_cycles(60);

if(P2IN & DHT_DATA_IN)return DHT_ER ;

else while(!(P2IN & DHT_DATA_IN));

//Doi DaTa len 1

//delay_us(60);

_delay_cycles(60);

if(!(P2IN & DHT_DATA_IN))return DHT_ER;

else while(P2IN & DHT_DATA_IN);

//Doi Data ve 0

//Bat dau doc du lieu

Driver dht11.c:

for(i=0;i<5;i++)

{

for(ii=0;ii<8;ii++)

{

while(!(P2IN & DHT_DATA_IN));//Doi Data len 1

//delay_us(50);

_delay_cycles(50);

if(P2IN & DHT_DATA_IN)

{

buffer[i]|=(1<<(7­ii));

while(P2IN & DHT_DATA_IN);//Doi Data xuong 0

}

}

}

//Tinh toan check sum

checksum=buffer[0]+buffer[1]+buffer[2]+buffer[3];

//Kiem tra check sum

if((checksum)!=buffer[4])return DHT_ER;

//Lay du lieu

*tem  =   buffer[2];

*humi =   buffer[0];

return DHT_OK;

}

#include "lcd16x2\lcd_16x2.h"

void LCD_Enable(void)

{

P1OUT |= LCD_EN;

//delay_us(3);

_delay_cycles(3);

P1OUT &= ~LCD_EN;

//delay_us(50);

_delay_cycles(50);

}

Driver lcd16x2.c:

//Ham Gui 4 Bit Du Lieu Ra LCD

void LCD_Send4Bit( uint8_t  Data )

{

P1OUT &= 0x0F;

P1OUT |= ((Data<<4)&0xF0);

}

// Ham Gui 1 Lenh Cho LCD

void LCD_SendCommand (uint8_t  command )

{

LCD_Send4Bit  ( command >>4 );   /* Gui 4 bit cao */

LCD_Enable () ;

LCD_Send4Bit  ( command  );      /* Gui 4 bit thap*/

LCD_Enable () ;

}

// Ham Khoi Tao LCD

void LCD_Init ( void )

{

LCD_Send4Bit(0x00);

//delay_ms(20);

_delay_cycles(20000);

P1OUT &= ~LCD_RS;

P1OUT &= ~LCD_RW;

LCD_Send4Bit(0x03);

LCD_Enable();

//delay_ms(5);

_delay_cycles(5000);

LCD_Enable();

//delay_us(100);

_delay_cycles(100);

LCD_Enable();

LCD_Send4Bit(0x02);

LCD_Enable();

LCD_SendCommand( 0x28 );         // giao thuc 4 bit, hien thi 2 hang, ki tu 5x8

LCD_SendCommand( 0x0c);          // cho phep hien thi man hinh

LCD_SendCommand( 0x06 );         // tang ID, khong dich khung hinh

LCD_Clear();                     // xoa toan bo khung hinh

}

//Ham Thiet lap vi tri con tro

void LCD_Gotoxy(uint8_t  x, uint8_t  y)

{

uint8_t  address;

if(!y)

address = (0x80+x);

else

address = (0xC0+x);

delay_ms(1);

LCD_SendCommand(address);

//delay_ms(5);

_delay_cycles(5000);

}

// Ham Xoa Man Hinh LCD

void LCD_Clear()

{

LCD_SendCommand(0x01);

//delay_ms(5);

_delay_cycles(5000);

}

// Ham Gui 1 Ki Tu Len LCD

void LCD_PutChar ( uint8_t  Data )

{

P1OUT |= LCD_RS;

LCD_SendCommand( Data );

P1OUT &= ~LCD_RS;

}

//Ham Gui Mot Chuoi Ki Tu Len LCD

void LCD_Puts (uint8_t *s)

{

while (*s)

{

LCD_PutChar(*s);

s++;

}

}

ẩ ạ ậ ả ả Hình  nh s n ph m m ch th t:

ƯƠ

CH

Ế NG III: K T LU N

ị ễ ả

ể ồ

ờ ự ế ả ế ậ ệ ệ ả ơ Qua Project II, nhóm chúng em xin c m  n Vi n Đi n T  ­ Vi n Thông cùng cô  ự ễ ơ ộ ệ Đinh Th  Nhung đã giúp chúng em có c  h i th c ti n, tăng kh  năng làm vi c  ộ ấ ứ ự  tìm hi u nghiên c u m t v n đ  m i, đ ng th i giúp  theo nhóm, kh  năng t ự ự ế ữ chúng em ti p c n nh ng khó khăn th c t ề ớ  khi th c hành ngoài th c t …