Upload
kienboquachan
View
220
Download
1
Embed Size (px)
Citation preview
8/2/2019 Khoa So Dung Msp430
1/26
Trang 1
KHA S IN T
I MC TIU
- Thit k kha s in t bng mt khu (6 s) s dng chip vi x l h msp430.
- Dng bn phm hex (16 phm) thc hin chc nng giao tip.- Dng ng c mt chiu ng m kha bng cch iu khin o chiu ng
c.
- Mt khu c th thay i c.
- Bo ng ra loa v treo h thng khi mt khu nhp sai 3 ln.
II PHNG PHP GII QUYT
- Lp s khi.
- Thit k m hnh phn cng.- Lp s gii thut.
- Tm hiu nguyn tc hot ng ca bn phm hex.
- Thit k khi iu khin o chiu ng c ng mca.
- Thit k khi bo ng.
- Tm hiu chip x l v cc linh kin c s dng.
- Vit chng trnh theo s gii thut.
- Lin kt cc khi.- Rp mch kim tra v chy th.
III NI DUNG
1. S KHI
Hnh 1: S khi h thng
KHI X LKHI
BN PHM
KHIIU KHIN
NG C
KHIBO NG
KHIHIN TH
8/2/2019 Khoa So Dung Msp430
2/26
8/2/2019 Khoa So Dung Msp430
3/26
Trang 3
Hnh 3: S gii thut cho chng trnh con Change
8/2/2019 Khoa So Dung Msp430
4/26
Trang 4
3. TM HIU CHIP MSP430G2x52
Hnh 4: S chn ca MSP430G2x52
Hnh 5: S khi chc nng ca MSP430G2x52
8/2/2019 Khoa So Dung Msp430
5/26
Trang 5
4. BN PHM HEX
4.1. CU TO
Bn phm Hex cu to gm16 phm xp thnh ma trn 4 hng v 4 ct (Nh
hnh 6).
P0
P1
P2
P3
P4
P5
P6
P7
Hnh 6: Cu to bn phm Hex
4.2. NGUYN TC HOT NG CA BN PHM HEX
Khi mt phm no c nhn th tng ng hng v ct ca bn phm Hex
s kt ni vi nhau.
thc hin kim tra mt phm th ta phi cho trc hng (hoc ct) cha
phm tng ng mc logic 0, sau kim tra ct (hoc hng) ca phm, nu ct
(hoc hng) = 0 th c nhn phm ngc li th khng nhn phm.
Nh vy nhn bit phm no c nhn ta phi ln lc qut cc ct, c
nh hng hoc qut cc hng, c nh ct.
8/2/2019 Khoa So Dung Msp430
6/26
Trang 6
4.3. S BN PHM HON CHNH
P1.0
P1.1
P1.2
P1.3
P1.4
P1.5
P1.6
P1.7
1 2 3
4 5 6
7 8 9
EXIT 0 CLEAR
OPEN
CLOSE
CHANGE
OK
R133k
R233k
R333k
R433k
Hnh 7: Bn phm Hex Hon Chnh
Cc hng v ct ca bn phm kt ni vi Port 1. Bit 0,1,2,3 ca Port 1 s lm
ng ra v kt ni vi cc hng ca bn phm. Cn cc bit 4,5,6,7 lm ng ng vo
kt ni vi cc ct ca bn phm.
4.4. CHNG DI CHO BN PHM
Do thi gian di ca phm vo khong 20ms nn chng di ta s chng
di bng phn mm phn cng c n gin.
on chng trnh chng di:
n=0;while ( n==0 )
{if ((P1IN&COTX) == 0) //Nt ang nhn gi.
n=0;else //Nt nh ra.
n=1;
}Ngoi ra gia cc ln chn hng (hoc ct) qut phm ta thm on delay:
__delay_cycles(5000);
8/2/2019 Khoa So Dung Msp430
7/26
Trang 7
5. KHI IU KHIN NG C
5.1. S MCH IU KHIN O CHIU NG C NG M
CA
RL1 RL2
Q1C828
Q2C828
R1
330R
R2
330R
D110BQ040 D2
10BQ040
3V
3V 3V
Px Py
Hnh 8: S mch iu khin ng c.
Hai ng vo Px, Py dng iu khin o chiu ng c.
5.2. IU KHIN TC NG C
iu khin tc ng c theo ch PWM (Pluse Width ModulationBin
iu rng xung).
on chng trnh iu khin:
n=0;while ( n
8/2/2019 Khoa So Dung Msp430
8/26
Trang 8
6. S MCH BO NG
Q2C828
Q1C828
C1
1u
C2
1u
RC1180R
RB21k5
RB11k5
RC2180R
3V
R5
330R
Q4C828
Q5C828
C1
10u
C2
10u
Q6C828
RC1820R
RB28k2
RB18k2
RC2820RR10
330R
C5
10u LS1
SPEAKER
Pz
Q3A1015 Ngo ra
Hnh 9: Mch bo ng.
Khi hai khi hot ng ring l ta c:
- Tn hiu ng ra khi 1 s nh hnh 11 vi chu k T:5
1 B2 2 B1T = (C R + C R )Ln2 = 2.8200.10 Ln2 = 0.1148S
Hnh 11: Tn hiu ng ra khi 1.
- Tn hiu ng ra khi 2 s nh hnh 12 vi chu k T:
61 B2 2 B1T = (C R + C R )Ln2 = 2.1500.10 Ln2 = 0.0021S
Hnh 12: Tn hiu ng ra khi 2.
Khi 1 Khi 2
8/2/2019 Khoa So Dung Msp430
9/26
Trang 9
Khi kt hp hai khi li cung hot ng th tn hiu ng ra cp cho loa s
nh hnh 13:
Hnh 13: Tn hiu ng ra cp cho loa.
7. S MCH HON CHNH
R74k7
C610u
P2.5/CA53
RST/NMI7
TEST1
P2.4/TA2/CA112
P2.3/TA1/CA011 P2.2/CAOUT/TA0/CA4
10P2.1/INCLK/CA3
9P2.0/ACLK/CA2
8
P1.2/TA1
15P1.1/TA0
14P1.0/TACLK
13
P1.3/TA216
P1.4/SMCLK/TCK17
P1.7/TA2/TDO/TDI20
P1.6/TA1/TDI/TCLK19
P1.5/TA0/TMS18
XIN/P2.6/CA66
XOUT/P2.7/CA75
U1
MSP430G2452
3V
1 2 4 5 6
7 8 9
EXIT 0 CLOSE
OPEN
CLOSE
CHANGE
OK
R133k
R233k
R333k
R433k
3V
RL1RL2
Q13C828
Q12C828
R5330R
R6330R
D110
D210
3V 3V
Px Py
Q2C828
Q1C828
C3
1u
C4
1u
RC3180R
RB41k5
RB31k5
RC4180R
3V
R15
330R
Q4C828
Q5C828
C1
10u
C2
10u
Q6C828
RC1820R
RB28k2
RB18k2
RC2820R
R10330R
C5
10u LS1
SPEAKER
Pz
Q3A1015
Ngo ra
Q7C828
Q8C828
Q9C828
R8330R
R9330R
R11330R
R12100R
R13100R
R14100R
D3LED-RED
D4LED-RED
D5LED-RED
3V
1 32
3V
Hnh 14: S mch hon chnh.
8/2/2019 Khoa So Dung Msp430
10/26
Trang 10
8. MT S ON CHNG TRNH
8.1. NH NGHA BIT
#define COT0 BIT0#define COT1 BIT1
#define COT2 BIT2#define COT3 BIT3#define COT4 BIT4#define COT5 BIT5#define COT6 BIT6#define COT7 BIT7
8.2. ON QUT PHM
i=0;While(i
8/2/2019 Khoa So Dung Msp430
11/26
Trang 11
8.3. ON SO SNH PASSWORD
if (*i==0){ if(nhappass[*i] == a)
{
*i = *i+1;if(nhappass[*i] == b){*i = *i+1;if(nhappass[*i] == c)
{*i = *i+1;if(nhappass[*i] == d)
{*i = *i+1;if(nhappass[*i] == e)
{ *i = *i+1;if(nhappass[*i] == h)
*i = *i+1; } } } } } }else
*i = 7;
8.4. ON TREO H THNG
int j;P2OUT |= COT3;
j=0;while (j
8/2/2019 Khoa So Dung Msp430
12/26
Trang 12
9. PHNG HNG PHT TRIN
- C th m bo gi password thay i khi b mt in hay khi reset h thng.
- Hin th chng trnh ln LCD ngi dng d s dng.
- Thit k phn cng gn hn.10. ON CHNG TRNH CHNH
/**/
/*_ _ _ _ _ _ _ _ _ _Nguyn tc hot ng ca chng trnh_ _ _ _ _ _ _ _ _ _*/
- Khi mi bt u, chng trnh thc hin qut phm s v phm close (phm close
ch c tc dng nu ta cha nhn mt phm s no). y, chng trnh yu cu
nhp password (6 s). Ngoi ra, ta c th dng phm clear xa s va nhp sai.Khi nhn mt phm chng trnh s bo hiu (n sng) mt ln.
- Khi nhp password xong ta nhn ok:
+ Nu password sai th bo ng v cho nhp li, khi nhp sai 3 ln, h thng
treo trong 1 pht sau tr v chng trinh ban u v cho nhp tip.
+ Nupassword ng s bo hiu (n chp), sau chng trnh thc hin n
on qut phm chc nng.
- on chng trnh qut phm chc nng:+ Nu nhn open th ra lnh iu khin m ri tr v on qut phm chc nng.
+ Nu nhn close th ra lnh ng v tr v chng trinh ban u.
+ Nu nhn change thay i password sau tr vchng trinh ban u.
- Sau khi nhn phm change, ta cn thc hin nhp password hai ln (cch nhp
pass tng t nh u chng trnh, tc l sau khi nhp 6 s ta cn nhn
phm ok), chng trnh s ra bo hiu gia hai ln nhp.
+ Nu password gia hai ln nhp khng ging nhau th ra bo ng sau cho
nhp tip. Nu sai 3 ln h thng b treo trong 1 pht ri tr v chng trnh ban
u.
+ Nu password gia hai ln nhp ging nhau, chng trnh s lu v thay ipassword sau tr v chng trnh ban u.
8/2/2019 Khoa So Dung Msp430
13/26
Trang 13
Ngoai ra, ta c th nhn Exit tr v chng trnh ban u khi khng mun thay
i password na.
/**/
#include "io430.h"#include "intrinsics.h"#define COT0 BIT0#define COT1 BIT1#define COT2 BIT2#define COT3 BIT3#define COT4 BIT4#define COT5 BIT5#define COT6 BIT6
#define COT7 BIT7__intrinsic void __delay_cycles(unsigned long __cycles);/*........................Doan quet phim so va nhap pass......................*/void quetphim (int *nhappass,int *p){
int i=0,n=0;while(i < 6){
P1OUT = 0x0E; /*.................Chon hang thu 1................*/__delay_cycles(5000);
if ((P1IN&COT4) == 0) //Nhap so 1{P2OUT |= COT3;nhappass[i] = 1;i++;n=0;while ( n==0 )
{if ((P1IN&COT4) == 0)
n=0;else
n=1;}
}else if ((P1IN&COT5) == 0) //Nhap so 2{P2OUT |= COT3;nhappass[i] = 2;
8/2/2019 Khoa So Dung Msp430
14/26
Trang 14
i++;n=0;while ( n==0 )
{if ((P1IN&COT5) == 0)
n=0;else
n=1;}
}else if ((P1IN&COT6) == 0) //Nhap so 3
{P2OUT |= COT3;nhappass[i] = 3;i++;
n=0;while ( n==0 ){if ((P1IN&COT6) == 0)
n=0;else
n=1;}
}else //Khong nhap
P2OUT &= ~COT3;P1OUT = 0x0D; /*.................Chon hang thu 2................*/__delay_cycles(5000);if ((P1IN&COT4) == 0) //Nhap so 4{P2OUT |= COT3;nhappass[i] = 4;i++;n=0;while ( n==0 )
{if ((P1IN&COT4) == 0)
n=0;else
n=1;}
}else if ((P1IN&COT5) == 0) //Nhap so 5
8/2/2019 Khoa So Dung Msp430
15/26
Trang 15
{P2OUT |= COT3;nhappass[i] = 5;i++;n=0;
while ( n==0 ){if ((P1IN&COT5) == 0)
n=0;else
n=1;}
}else if ((P1IN&COT6) == 0) //Nhap so 6
{
P2OUT |= COT3;nhappass[i] = 6;i++;n=0;while ( n==0 ){if ((P1IN&COT6) == 0)
n=0;else
n=1;
}}else if ((P1IN&COT7) == 0) //Nhan close.
{if (*p==1)
{if (i==0)
{P2OUT |= COT3;n=0;while ( n==0 )
{if ((P1IN&COT7) == 0)
n=0;else
{P2OUT &= ~COT3;n=0;
8/2/2019 Khoa So Dung Msp430
16/26
Trang 16
while ( n
8/2/2019 Khoa So Dung Msp430
17/26
Trang 17
elsen=1;
}}
else if ((P1IN&COT6) == 0) //Nhap so 9
{P2OUT |= COT3;nhappass[i] = 9;i++;n=0;while ( n==0 ){if ((P1IN&COT6) == 0)
n=0;else
n=1;}}
else //Khong nhapP2OUT &= ~COT3;
P1OUT = 0x07; /*.................Chon hang thu 4................*/__delay_cycles(5000);if (*p==0)
{if ((P1IN&COT4) == 0) //Nhan nut Exit
{P2OUT |= COT3;n=0;while ( n==0 )
{if ((P1IN&COT4) == 0)
n=0;else
{n=1;i=7;*p = *p+1;P2OUT &= ~COT3;}
}}
}if ((P1IN&COT5) == 0) //Nhap so 0
8/2/2019 Khoa So Dung Msp430
18/26
Trang 18
{P2OUT |= COT3;nhappass[i] = 0;i++;n=0;
while ( n==0 ){if ((P1IN&COT5) == 0)
n=0;else
{n=1;P2OUT &= ~COT3;}
}
}else if ((P1IN&COT6) == 0) //Xoa so vua nhap{if ( i >0 ) //Neu bang i = 1 khong xoa
{i--;P2OUT |= COT3;}
n=0;while ( n==0 )
{if ((P1IN&COT6) == 0)n=0;
elsen=1;
}}
else //Khong nhapP2OUT &= ~COT3;
/*......................Chon nhan ok hay exit hoac clear......................*/while (i==6) //Xoa so vua nhap khi i = 5.
{P1OUT = 0x07; //chon hang thu 4if ((P1IN&COT7) == 0) //Nhan ok
{P2OUT |= COT3;i++;n=0;
8/2/2019 Khoa So Dung Msp430
19/26
Trang 19
while ( n==0 ){if ((P1IN&COT7) == 0)
n=0;else
{n=1;P2OUT &= ~COT3;}
}}
else if ((P1IN&COT6) == 0) //Xoa so vua nhap{if ( i > 0 ) //Neu bang i = 0 khong xoa
{
i--;P2OUT |= COT3;}
n=0;while ( n==0 )
{if ((P1IN&COT6) == 0)
n=0;else
n=1;
}}else if (*p==0)
{if ((P1IN&COT4) == 0) //Nhan nut Exit
{P2OUT |= COT3;n=0;while ( n==0 )
{if ((P1IN&COT4) == 0)
n=0;else
{n=1;i=7;*p = *p+1;P2OUT &= ~COT3;
8/2/2019 Khoa So Dung Msp430
20/26
Trang 20
}}
}}
else //Khong nhap
P2OUT &= ~COT3;}
/*................Ket thuc doan cho nhan ok hay exit hoac clear...............*/}
}/*.....................Ket thuc doan quet phim so va nhap pass................*//*...........................Doan so sanh pass................................*/void sosanh (int nhappass[6],int *i,int a,int b,int c,int d,int e,int h){
if (*i==0)
{if(nhappass[*i] == a){*i = *i+1;if(nhappass[*i] == b){*i = *i+1;if(nhappass[*i] == c)
{*i = *i+1;
if(nhappass[*i] == d){*i = *i+1;if(nhappass[*i] == e)
{*i = *i+1;if(nhappass[*i] == h)
*i = *i+1;}
}}
}}
}else
*i = 7;}
/*.........................Ket thuc doan so sanh pass.........................*/
8/2/2019 Khoa So Dung Msp430
21/26
Trang 21
/*............................Doan treo he thong..............................*/void treohethong (void){
int j;P2OUT |= COT3;
j=0;while (j
8/2/2019 Khoa So Dung Msp430
22/26
Trang 22
BCSCTL1 = CALBC1_1MHZ;DCOCTL = CALDCO_1MHZ;P2DIR = 0xFF;P2OUT = 0x00;P1DIR = 0x0F; //port 1.0,1.1,1.2,1.3 ngo ra,port 1.4,1.5,1.6,1.7 ngo vao.
while(1){P2OUT = 0x00;p=1;quetphim(nhappass,&p);i=0;sosanh(nhappass,&i,a,b,c,d,e,h);
/*...............Doan kiem tra ket qua so sanh pass..............*/k=0;while (k==0)
{ if ( i == 6 )//Nhap pass dung.{denchop ();m=0; //Cho phep vong lap quet phim chuc nang hoat dong.
j=0; //Gan j=0 de dem so lan nhap pass sai trong lan nhap moi.k=1; //Gan k=1 de thoat khoi vong lap so sanh pass.}
else //Nhap sai pass mot lan.{
j++;if (j==3)//So sanh da sai du 3 lan chua.{loakeu();treohethong ();
j=0; //Gan j=0 dem so lan nhap pass sai trong lan nhap moi.k=1; //Gan k=1 de thoat khoi vong lap so sanh pass.m=1;}
else //Nhap sai chua qua 3 lan.{loakeu();k=1; //Gan k=1 thoat khoi doan sanh pass de nhap tiep khi j
8/2/2019 Khoa So Dung Msp430
23/26
8/2/2019 Khoa So Dung Msp430
24/26
Trang 24
P2OUT &= ~COT3;n=0;while ( n
8/2/2019 Khoa So Dung Msp430
25/26
Trang 25
}else
m=1;if (p==0)
{
k=0;while (k
8/2/2019 Khoa So Dung Msp430
26/26
}}
}/*.......................Ket thuc doan quet phim chuc nang....................*/
}
/*..................Ket thuc doan kiem tra ket qua so sanh pass...............*/}