S ki n OnComm đ c phát sinh vào b t c khi nào giá tr c a thu c tính CommEvent thay đ i . Cú pháp s ki n :
Private Sub [form.]Mscomm1_OnComm()
Thu c tính CommEvent ch a mã s c a l i hay s ki n phát sinh b i s ki n OnComm. N u đ t các thu c tính Rthreshold ho c SThreshold b ng 0 s vơ hi u b y s ki n Receive và Send .
3.2.5 H i vịng c ng RS-232 :
Th ng khi làm vi c v i đi u khi n Mscomm1, ta dùng ph ng pháp đi u khi n theo s ki n. Nh ng ta c ng cĩ th s d ng k thu t h i vịng đ thơng tin qua c ng RS-232. Ch ng trình ví d sau đây s d ng COM2 đ g i thơng báo “Hello” và sau đĩ ch chu i nh n. K thu t này quy đnh là s nh n đ c
đáp ng b ng cách ki m tra liên t c s các ký t nh n đ c trong b đ m nh n (InBufferCount). Khi cĩ nhi u h n m t ký t trong b đ m l i vào thì ký t này s đ c đ c. Ch ng trình nh sau :
Private Sub Form_Load()
Dim Str as String ‘chu i đ ch a d li u nh p
Mscomm11.ComPort =2 ‘dùng COM2
Mscomm11.Settings=”9600 ,N ,8 ,1
Mscomm11.InputLen=0 ‘đ c h t b đ m l i vào khi Input đã đ c dùng
Mscomm11.PortOpen=True ‘m c ng
Text1.text=”Sending : Hello”
Mscomm11.Output=”Hello” ‘g i thơng báo
Do ‘ch đáp ng t c ng
NGUY N KH C H I-20762051 Page 53
Loop Until Mscomm11.InBufferCount>=2 Str = Mscomm11.Input ‘đ c b đ m Input
Text2.Text=”Received:” +Str
Mscomm11.PortOpen=False ‘đĩng c ng n i ti p
NGUY N KH C H I-20762051 Page 54
CH NG 4: CHU N GIAO TI P RS232 4.1 Gi i thi u v chu n RS232:
Chu n RS-232 quy đnh m c logic 1 ng v i đi n áp t -3V đ n -25V (mark), m c logic 0 ng v i đi n áp t 3V đ n 25V (space) và cĩ kh n ng cung c p dịng t 10 mA đ n 20 mA.
Chu n RS-232 cho phép truy n tín hi u v i t c đ đ n 20.000 bps nh ng n u cáp truy n đ ng n cĩ th lên đ n 115.200 bps.
Ü Các ph ng th c n i gi a DTE v DCE:
- n cơng (simplex connection): d li u ch đ c truy n theo 1 h ng.
- Bán song cơng ( half-duplex): d li u truy n theo 2 h ng, nh ng m i th i đi m ch đ c truy n theo 1 h ng.
- Song cơng (full-duplex): s li u đ c truy n đ ng th i theo 2 h ng.
Ü nh d ng c a khung truy n d li u theo chu n RS-232 nh sau:
Khi khơng truy n d li u, đ ng truy n s tr ng thái mark (đi n p -10V). Khi b t đ u truy n, DTE s đ a ra xung Start (space: 10V) và sau đĩ l n l t truy n t D0 đ n D7 v Parity, cu i cùng là xung Stop (mark: -10V) đ khơi ph c tr ng thái đ ng truy n. D ng tín hi u truy n m t nh sau (truy n ký t A):
Hình 4. : Tín hi u truy n c a ký t ‘A’
NGUY N KH C H I-20762051 Page 55
- Chi u dài cable c c đ i 15m - T c đ d li u 20 Kbps - i n áp ngõ ra c c đ i ± 25V - i n áp ngõ ra cĩ t i ± 5V đ n ± 15V - Tr kháng t i 3K đ n 7K - i n áp ngõ vào ± 15V - nh y ngõ vào ± 3V - Tr kháng ngõ vào 3K đ n 7K
Các t c đ truy n d li u thơng d ng trong c ng n i ti p l: 1200 bps, 4800 bps, 9600 bps v 19200 bps.
C ng COM cĩ hai d ng: đ u n i DB25 (25 chân) và đ u n i DB9 (9 chân). DB9 nh hình sau, và ý ngh a c a các chân mơ t nh sau:
Hình 4.2: đ u n i DB9
+ chân 1 : Data Carrier Detect (DCD) : Phát tín hi u mang d li u + chân2:Receive Data (RxD) : Nh n d li u
+ chân 3 : Transmit Data (TxD) : Truy n d li u
+ chân 4 : Data Termial Ready (DTR) : u cu i d li u s n sàng đ c kích ho t b i b ph n khi mu n truy n d li u
+ chân 5 : Singal Ground ( SG) : Mass c a tín hi u
+ chân 6 : Data Set Ready (DSR) : D li u s n sàng, đ c kích ho t b i b truy n khi nĩ s n sàng nh n d li u
NGUY N KH C H I-20762051 Page 56
khi s n sang truy n d li u
+ chân 8 : Clear To Send (CTS) : Xĩa đ g i ,bơ nh n đ t đ ng này lên m c kích ho t đ ng đ thơng báo cho b truy n là nĩ s n sàng nh n tín hi u
+ chân 9 : Ring Indicate (RI) : Báo chu ng cho bi t là b nh n đang nh n tín hi u rung chuơng
4.2 Truy n thơng gi a hai nút:
S đ k t n i:
Hình 4.3 – K t n i đ n gi n trong truy n th ng n i ti p
Khi th c hi n k t n i nh trên, quá trình truy n ph i b o đ m t c đ đ u phát và thu gi ng nhau. Khi cĩ d li u đ n DTE, d li u này s đ c đ a vào b đ m và t o ng t.
Ngồi ra, khi th c hi n k t n i gi a hai DTE, ta cịn dng s đ sau:
Hình 4.4 – K t n i trong truy n th ng n i ti p d ng tín hi u b t tay
Khi DTE1 c n truy n d li u thì cho DTR tích c c tác đ ng lên DSR c a DTE2 cho bi t s n sng nh n d li u và cho bi t đã nh n đ c sĩng mang c a MODEM
NGUY N KH C H I-20762051 Page 57
( o). Sau đĩ, DTE1 tích c c chân RTS đ tác đ ng đ n chân CTS c a DTE2 cho bi t DTE1 cĩ th nh n d li u. Khi th c hi n k t n i gi a DTE v DCE, do t c đ truy n khác nhau nên ph i th c hi n đi u khi n l u l ng. Quá trinh đi u khi n này cĩ th th c hi n b ng ph n m m hay ph n c ng. Quá trình đi u khi n b ng ph n m m th c hi n b ng hai ký t Xon v Xoff. Ký t Xon đ c DCE g i đi khi r nh (cĩ th nh n d li u). N u DCE b n thì s g i ký t Xoff. Qua trình đi u khi n b ng ph n c ng dùng hai chân RTS v CTS. N u DTE mu n truy n d li u thì s g i RTS đ yêu c u truy n, DCE n u cĩ kh n ng nh n d li u (đang r nh) thì g i l i CTS.
Ü Quá trình truy n d li u:
Truy n d li u qua c ng n i ti p RS232 đ c th c hi n khơng đ ng b . Do v y nên t i m t th i đi m ch cĩ m t bit đ c truy n (1 kí t ). B truy n g i m t bit b t đ u (bit start) đ thơng báo cho b nh n bi t m t kí t s đ c g i đ n trong l n truy n bit ti p theo . Bit này luơn b t đ u b ng m c 0.. Ti p theo đĩ là các bit d li u (bits data) đ c g i d i d ng mã ASCII( cĩ th l 5,6,7 hay 8 bit d li u) Sau đĩ là m t Parity bit ( Ki m tra bit ch n, l hay khơng) và cu i cùng l bit d ng - bit stop cĩ th l 1, 1,5 hay 2 bit d ng.
Ü T c đ Baud:
ây là m t tham s đ c tr ng c a RS232. Tham s này chính là đ c tr ng cho quá trình truy n d li u qua c ng n i ti p RS232 l t c đ truy n nh n d li u hay cịn g i l t c đ bit. T c đ bit đ c đnh ngh a l s bit truy n đ c trong th i gian 1 giy hay s bit truy n đ c trong th i gian 1 giây. T c đ bit này ph i đ c thi t l p bên phát v bên nh n đ u ph i cĩ t c đ nh nhau ( T c đ gi a vi đi u khi n vá máy tính ph i chung nhau 1 t c đ truy n bit).
Ngồi t c đ bit cịn m t tham s đ mơ t t c đ truy n l t c đ Baud. T c đ Baud liên quan đ n t c đ mã ph n t mã hĩa d li u đ c s d ng đ di n t bit đ c truy n cịn t c đ bit thì ph n ánh t c đ th c t mà các bit đ c truy n.Vì m t ph n t báo hi u s mã hĩa m t bit nên khi đĩ hai t c đ bit v t c đ baud l ph i đ ng nh t.
NGUY N KH C H I-20762051 Page 58
M t s t c đ Baud th ng dùng: 50, 75, 110, 150, 300, 600, 1200, 2400, 4800, 9600, 19200, 28800, 38400, 56000, 115200 … Trong thi t b h th ng dng t c đ l 19200.
Khi s d ng chu n n i ti p RS232 thì yêu c u khi s d ng chu n l th i gian chuy n m c logic khơng v t quá 4% th i gian truy n 1 bit. Do v y, n u t c đ bit càng cao thì th i gian truy n 1 bit càng nh thì th i gian chuy n m c logic càng ph i nh . i u này làm gi i h n t c Baud và kho ng cách truy n.
Ü Bit ch n l hay Parity bit:
ây là bit ki m tra l i trên đ ng truy n. Th c ch t c a quá trình ki m tra l i khi truy n d li u l b xung thêm d li u đ c truy n đ tìm ra ho c s a m t s l i trong quá trình truy n . Do đĩ trong chu n RS232 s d ng m t k thu t ki m tra ch n l .
M t bit ch n l đ c b sung vào d li u đ c truy n đ cho th y s l ng các bit "1" đ c g i trong m t khung truy n l ch n hay l .
M t Parity bit ch cĩ th tìm ra m t s l các l i ch h n nh 1,3,,5,7,9... N u nh m t bit ch n đ c m c l i thì Parity bit s trang giá tr v i tr ng h p khơng m c l i vì th khơng phát hi n ra l i. Do đĩ trong k thu t mã hĩa l i này khơng đ c s d ng trong tr ng h p cĩ kh n ng m t vài bit b m c l i.
NGUY N KH C H I-20762051 Page 59 CH NG 5: THI T K PH N C NG H TH NG 5.1 S KH I H TH NG: MÁY TÍNH i u khi n B ng tay RS232 LCD VI I U KHI N NHI T
THI T B 1 THI T B 2 THI T B 3 THI T B 4
Hình 5.1: S đ kh i h th ng Ch c n ng t ng kh i trong h th ng: Ch c n ng t ng kh i trong h th ng:
- Kh i máy tính: cĩ nhi m v nh n tín hi u nhi t đ đ c truy n t vi đi u khi n và xu t ra màn hình máy tính đ ng th i truy n tín hi u đi u khi n ng c tr v vi đi u khi n đ đi u khi n các thi t b .
- Kh i Vi i u Khi n:cĩ ch c n ng x lý tín hi u nh n t máy tính và kh i đo nhi t đ và truy n d li u đi u khi n xu ng các thi t b và g i tín hi u ra LCD. Kh i này là kh i trung tâm cĩ ch c n ng giao ti p v i t t c các kh i cịn l i trong h th ng.
- Kh i Nhi t đ : cĩ nhi m v đo nhi t đ mơi tr ng xung quanh và g i tín hi u v vi đi u khi n.
NGUY N KH C H I-20762051 Page 60
- Kh i đi u khi n b ng tay: đi u khi n các thi t b tr c ti p khơng c n qua máy tính. Tín hi u s g i v vi đi u khi n sau đĩ vi đi u khi n s g i tín hi u đi u khi n các thi t b .
- Kh i LCD: cĩ nhi m v hi n th thơng tin nh n t vi đi u khi n truy n đ n. - Kh i thi t b : ch ho t đ ng khi nh n đ c tín hi u t vi đi u khi n.
Quá trình ho t đ ng:
Khi máy tính truy n tín hi u xu ng vi đi u khi n thì tín hi u đ c mã hĩa thành nh ng tín hi u khác nhau đ phân bi t. Vi đi u khi n nh n đ c tín s truy n tín hi u xu ng thi t b đ đi u khi n các thi t b d ng hay ho t đ ng.Ngồi ra ta cịn cĩ th đi u khi n các thi t b b ng h th ng đi u khi n b ng tay ko c n thơng qua máy tính.
Nhi t đ đo đ c s đ c g i v vi đi u khi n,sau đĩ vi đi u khi n s mã hĩa g i v máy tính và xu t ra màn hình LCD.Ta s bi t nhi t đ ho t đ ng trên màn hình máy tính và LCD đ cĩ th đi u khi n thi t b nh ý mu n.
NGUY N KH C H I-20762051 Page 61
5.2 KH I VI I U KHI N PIC 16F877A
Hình 5.2: Kh i vi đi u khi n PIC 16F877A
5.2.1 B dao đ ng c a PIC 16F877A:
PIC16F877A cĩ kh n ng s d ng m t trong 4 lo i oscillator, đĩ là: - LP: (Low Power Crystal).
- XT: Th ch anh bình th ng. - HS: (High-Speed Crystal).
- RC: (Resistor/Capacitor) dao đ ng do m ch RC t o ra.
Thơng th ng, ngu n xung s d ng cho vi đi u khi n nĩi chung và PIC nĩi riêng là th ch anh v i các u đi m giá thành khơng cao, khá n đnh và r t thu n ti n trong vi c tính tốn, thi t k m ch ng d ng và ch ng trình cho vi đi u khi n. Trong bài này, ta
NGUY N KH C H I-20762051 Page 62
c ng s d ng th ch anh làm ngu n xung cho vi đi u khi n.
M i th ch anh cĩ m t t n s dao đ ng c đnh, ta g i t n s đĩ là f0, thơng th ng f0 cĩ các t n s 4 MHz, 10 MHz, 20 MHz, ... Tùy theo m i lo i vi đi u khi n mà yêu c u đ i v i f0 cĩ th khác nhau. i v i vi đi u khi n PIC16F877A, t n s dao đ ng f0 ph i nh h n ho c b ng 20 MHz, đây c ng là t n s ho t đ ng t i đa mà đa s các vi đi u khi n PIC thu c dịng mid∫range cĩ kh n ng đáp ng đ c. Chu kì dao đ ng c a th ch anh ta g i là t0 và đ c tính theo cơng th c:
t0 = 1/f0 (1)
th c thi xong m t l nh, vi đi u khi n PIC c n đ n 4 chu kì xung clock. Nh v y th i gian th c thi xong m t l nh s đ c tính:
ti = 4t0 (2)
Thay cơng th c (1) vào cơng th c (2) ta cĩ đ c cơng th c tính th i gian c a m t l nh (m t chu kì l nh) nh sau:
ti = 4/f0 (3)
Ví d : n u ta s d ng th ch anh lo i 4 MHz thì th i gian th c thi m t l nh c a vi đi u khi n là:
ti = 4/(4×106) = 1 s
thu n ti n cho vi c tính tốn và thi t k ch ng trình delay, ta s s d ng lo i th ch anh 4 MHz cho m ch ng d ng, vì v y th i gian th c thi m t l nh c a vi đi u khi n lúc dĩ là 1 s.
5.2.2 Ch đ reset c a PIC 16F877A:
Cĩ nhi u ch đ reset vi đi u khi n, bao g m:
- Power-on Reset POR (Reset khi c p ngu n ho t đ ng cho vi đi u khi n). - reset trong quá trình ho t đ ng.
- reset t ch đ sleep.
- WDT reset (reset do kh i WDT t o ra trong quá trình ho t đ ng). - WDT wake up t ch đ sleep.
- Brown-out reset (BOR).
đây em ch s d ng nên e s khơng nêu các ch đ reset khác.
reset: Khi pin m c logic th p, vi đi u khi n s đ c reset. Tín hi u reset đ c cung c p b i m t m ch ngo i vi v i các yêu c u c th sau:
NGUY N KH C H I-20762051 Page 63
- Khơng n i pin tr c ti p lên ngu n VDD.
- R1 ph i nh h n 40K đ đ m b o các đ c tính đi n c a vi đi u khi n.
Hình 5.3 M ch reset qua pin
- R2 ph i l n h n 1K đ h n dịng đi vào vi đi u khi n. reset cịn đ c ch ng nhi u b i m t b l c đ tránh các tín hi u nh tác đ ng lên pin .
NGUY N KH C H I-20762051 Page 64
5.3Kh i hi n th LCD:
Hình 5.4: Kh i hi n th LCD - Chân Vss và Vee đ c n i đ t.
- Chân Vdd đ c n i lên ngu n.
- Chân RS,RW,E l n l t đ c n i vào các chân RE0,RE1,RE2 c a PIC.
- Các chân t D0 đ n D7 s k t n i v i Port D c a PIC. Các chân này nh n d li u t PIC và s xu t ra màn hình.
NGUY N KH C H I-20762051 Page 65
5.4Kh i k t n i PIC và máy tính:
Hình 5.5: Kh i k t n i máy tính và PIC