Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 60

Trn Vn Thnh Lp TVT K34

I HC KHOA HC HU
KHOA IN T - VIN THNG
------

BO CO MN HC:O LNG V
IU KHIN T NG
ti: iu khin ng c bc bng b KIT PIC V4

Sinh vin thc hin: Trn Vn Thnh


Gio vin hng dn: L Vn Thanh V
Lp : TVT K34

Bo co n o lng v iu khin t ng

Page 1

Trn Vn Thnh Lp TVT K34

MC LC

Chng 1: Gii thiu chung v ng c bc


1.Gii thiu chung:

ng c bc l mt loi ng c in c nguyn l v ng dng khc bit vi a


s cc ng c in thng thng
ng c bc thc cht l mt ng c ng b dng bin i cc tn hiu iu
khin di dng cc xung in ri rc k tip nhau thnh cc chuyn ng gc
quay hoc cc chuyn ng ca rotor c kh nng c nh rotor vo cc v tr cn
thit.
2.Cc c tnh c bn ca ng c bc:
ng c bc c 5 c tnh c bn sau:
- Brushless (khng chi than);
- Load Independent (c lp vi ti): quay vi tc n nh trong tm
moment ca ng c;
Bo co n o lng v iu khin t ng

Page 2

Trn Vn Thnh Lp TVT K34

- Open loop positioning (iu khin v tr vng h): thng thng ta c th


m xung kch ng c xc nh v tr nhng trong nhng ng dng i
hi tnh chnh xc cao STEP thng c s dng kt hp vi cc cm bin
v tr nh: encoder, bin tr;
- Holding Torque: c moment gi ln;
- Excellent Response (p ng tt): p ng tt khi khi ng, dng li v
o chiu mt cch d dng.
3.Phn loi ng c bc:
C 3 loi ng c bc c bn:
- ng c nam chm vnh cu: Rotor c t ha.
- ng c t tr thay i: Rotor c x rnh nh
- ng c li:Kt hp t 2 loi trn
3.1.ng c nam chm vnh cu:
Loi ny c chia thnh 2 loi nh l: ng c bc n cc v lng cc.
3.1.1.ng c n cc:
a.Cu to:

Bo co n o lng v iu khin t ng

Page 3

Trn Vn Thnh Lp TVT K34

Rotor: c cu to t nam chm vnh cu.Chia thnh cc rang N,S xen k.


Stato: c cu to bi 2 cun dy b tr trc giao vi nhau.Mi cun li c chia
thnh 2 phn b tr xuyn tm i.Gia cc cun dy ny c mt u ra ni vi
dng ngun.ng c loi ny thng c 6 u ra.u 1,2 thng c ni vi
cc dng.Cc u 1a, 2a v 2b c ln lt ni t s quyt nh chiu quay ca
ng c.
b,Hot ng:

*Phng php 1: Full step


- Mu 1 nm cc trn v di ca stator, cn mu 2 nm hai cc bn phi
v bn tri ng c. Rotor l mt nam chm vnh cu vi 6 cc, 3 Nam v 3
Bc, xp xen k trn vng trn.
Dng in i qua t u trung tm ca mu 1 n u a to ra cc Bc trong
stator trong khi cc cn li ca stator l cc Nam.
Nu in mu 1 b ngt v kch mu 2, rotor s quay 300 , hay bc 1
bc. quay ng c mt cch lin tc, chng ta ch cn p in vo hai
mu ca ng c theo dy.
Mu 1a: 100010001000
Mu 1b: 001000100010
Mu 2a: 010001000100
Mu 2b: 000100010001
=>Thi gian =>

Bo co n o lng v iu khin t ng

Page 4

Trn Vn Thnh Lp TVT K34

- Ti mi thi im ch c 1 na cun dy c in 1a hoc 1b hoc 2b hoc 2b


v vy thc hin ht 1 vng quay ng c phi di chuyn 1 bc.Nn gi
l iu khin 1 bc.
*Phng php 2:
Ti mi thi im 2 na cun dy c cp in lm tng momen ca
ng c
Mu 1a: 110011001100
Mu 1b: 001100110011
Mu 2a: 011001100110
Mu 2b: 100110011001
=>Thi gian =>
*Phng php 3: Half step

Kt hp c 2 phng php trn khi ng c di chuyn mi bc 150


Mu 1a: 11000001110000011100000111
Mu 1b: 00011100000111000001110000
Mu 2a: 01110000011100000111000001
Mu 2b: 00000111000001110000011100
=>Thi gian =>

tng phn gii ca step motor th ta tng s cc.


3.1.2.ng c lng cc:
a.Cu to:

Bo co n o lng v iu khin t ng

Page 5

Trn Vn Thnh Lp TVT K34

Bao gm 2 cun dy nhng ko c dy trung tm gia mi cun dy.V th dng


in s chy t u ny n u kia ca cun dy => Momen sinh ra ln.
b.Hot ng:
*Phng php 1:
Ti mi thi im ch c 1 cun dy ca ng c c cp in.

1a: + 0 0 + 0 0 + 0 0
1b: 0 + 0 0 + 0 0 + 0
2a: 0 + 0 0 + 0 0 + 0
2b: 0 0 + 0 0 + 0 0 +
=>Thi gian=>

phng php ny th cng sut tiu th ca ng c thp.


*Phng php 2:

1a: + + + + + +
1b: + + + + + +
2a: + + + + + +
2b: + + + + + +
=>Thi gian=>

Bo co n o lng v iu khin t ng

Page 6

Trn Vn Thnh Lp TVT K34

C 2 cun dy c cp in cng lc nn momen lc ny l cc i v cng sut


tiu th ln.
3.2.ng c c t tr thay i:
a.Cu to:

Thng c 3 cun dy c u nh trong hnh.3 cun dy c 1 u c ni


chung vi nhau v thng c ni ln cc dng ca ngun.
b.Hot ng:
cho ng c quay ta ch cn cp in cho 3 cun dy lun phin v lin tc nh
sau:
Cun 1: 100100100100
Cun 2: 010010010010
Cun 3: 001001001001
=>Thi gian=>
3.3.ng c lai.

Bo co n o lng v iu khin t ng

Page 7

Trn Vn Thnh Lp TVT K34

L loi kt hp gia STEP t thng thay i v loi nam chm vnh cu. Rotor cho
ng c STEP lai c nhiu rng, ging nh loi t thng thay i, cha li t ha
trn ng tm xoay quay trc ca n. Rng ca rotor to ng dn gip nh
hng cho t thng u tin vo trong l khng kh.
STEP lai hot ng ging nh loi n cc v lng cc.
Mch iu khin n gin:

4.ng c bc s dng trong bi: 4 pha, 5 dy iu khin.

Bo co n o lng v iu khin t ng

Page 8

Trn Vn Thnh Lp TVT K34

4.1.Cu trc v nguyn l hot ng:


Do u chung ngun nn khi t mc in p 0V (mc logic 0) th s c dng chy
qua cc cun dy v ngc li khi t mc in p 5V (mc logic 1) th khng c
dng qua cc cun dy.
Khi cp 1 xung in p ln 1 cun dy stato (phn ng) th roto (phn cm) ca
ng c s quay i 1 gc nht nh, gc y l 1 bc quay ca ng c. Vy
iu khin ng c quay lin tc th chng ta ch vic cp xung ln lt cho cc
cun dy.
C 2 cch iu khin ng c bc l:
iu khin Full bc;
iu khin Na bc.
4.1.1.iu khin Full bc:
iu khin FULL bc c ngha l mi ln cp in p cho cc cun dy, ng c
s quay 1 bc (5.625 ), th t cp xung iu khin nh sau (th t t tri
sang phi: cun 1 -> cun 2 -> cun 3 -> cun 4):
Bc 1: 0110
Bo co n o lng v iu khin t ng

Page 9

Trn Vn Thnh Lp TVT K34

Bc 2: 1100
Bc 3: 1001
Bc 4: 0011
4.1.2.iu khin Na bc:
iu khin ng c quay na bc, th t cc xung cp vo cc cun dy nh
sau (th t t tri sang phi: cun 1 ->...-> cun 4 cun 1 ->...-> cun 4)):
Bc 1: 0110 1110
Bc 2: 1100 1101
Bc 3: 1001 1011
Bc 4: 0011 0111
Khi iu khin na bc, ng c s chy mt hn so vi khi chy FULL bc.
4.2.S v nguyn l hot ng ca ng bc trn KIT:
4.2.1.S :

4.2.2.Nguyn l hot ng c bn ca mch:


- B x l (dng PIC 16F877A) lm nhim v nhn tn hiu iu khin bn ngoi
nh s bc,tc ,hin th thng s trn mn hnh LCD,iu khin cho ng c

Bo co n o lng v iu khin t ng

Page 10

Trn Vn Thnh Lp TVT K34

quay theo thng s nhp vo.Nh vy i vi PIC 16F877A,y l vi iu khin


40 chn vi 5 cng vo ra.N c 8K flash ROM v 368 byte RAM.
- Cc thng s nh s bc,tc quay,chiu quay c np vo bng phm bm
v chuyn n b vi x l qua PORT B.Da vo cc thng s ny iu khin
v hin th trn LCD qua cc chn RC0 RC4.ng thi xut d liu qua cc chn
RD4 RD7.D liu iu khin ny thng qua ULN203 iu khin motor quay theo
thng s nhp vo.
4.2.3.Cc khi lin quan khc:
- Khi LCD: dng loi 2 dng 16 k t LCD 1602.S dng ngun nui thp t
2,5 5V.c th hot ng 2 ch 4 v 8bit.
- Khi iu khin ngoi: nhp cc thng s nh tc ,s bc,chiu quay
cho ng c. y s dng cc phm nhn c kiu nh sau.

- Khi IC ULN2003:

Bo co n o lng v iu khin t ng

Page 11

Trn Vn Thnh Lp TVT K34

i vi mi cun dy ng c dn dng c mch nh hn 500mA,mch


darlington h ULN200x s dn ng cho cun dy hoc cc ti cm ng
khc trc tip t tn hiu vo logic.
in tr trn transitor darlington phi thch hp vi tn hiu ra TTL
lng cc chu n.cc pht ca mi darlington NPN c ni vi chn
8,l chn ni t.Mi transitor c bo v bng 2 diode,mt ni gia
cc pht v cc thu bo v transitor khi in p ngc.Nu chn 9
ni vi ngun ca ng c th diode ny s bo v transitor khi nh
nhn ca t cm.
Vi cc ng c ln c dng > 0.5A cc IC hULN khng p ng c
ta c th dng cc Tranzitor trng(IRF).Mt sloi IRF thng dng:
Bo co n o lng v iu khin t ng

Page 12

Trn Vn Thnh Lp TVT K34

IRF540 tranzitor ngc c th chu dng n 20AIRF640 tranzitor ngc


c th chu dng n 18A ng ct no iu khinc nh rle,
transitor cng sut... Tn hiu iu khin c th c a rat b iu
khin nh vi mch chuyn dng, m IRF250 tranzitor ngc cth chu
dng n 30A.
Chc nng cc chn ca ULN 2003:
IC ULN2003 c u vo 8 chn t 1 7 c chc nng nhn tn hiu dng
vo cn khuch i
IC ULN2003 c u ra 8 chn t 9 16,tn hiu ra cc chn c
khuch i theo yu cu v lm nhim v ni vi cc thit b h tr dng.
Chn 8 thng ni t,chn 9,10 thng dng ni ngun 5v.
Chip ULN2803 cng ging nh chip ULN2003 m t trn nhng n c
18 chn v 8 darlington cho php mt chip c th dn ng cho mt
cp ng c t tr bin thin hoc nam chm vnh cu n cc.
4.3.Code iu khin ng c bc:
#include <main.h>

//static uint8_t QUAY_THUAN_FULL[4]={0x0C,0x24,0x30,0x18}; // Xung cap


cho che do FULL buoc
static uint8_t
QUAY_THUAN_HALF[8]={0x0C,0x04,0x24,0x20,0x30,0x10,0x18,0x08}; //
Xung cap cho che do nua buoc
void main()
{
uint8_t i;
DDRB = 0x00;
while(TRUE)
Bo co n o lng v iu khin t ng

Page 13

Trn Vn Thnh Lp TVT K34

{
/*
Che do FULL buoc: i<4
Che do Nua buoc: i<8
*/
for(i=0;i<8;i++)
{
//DONGCO=QUAY_THUAN_FULL[i]; // Che do Full buoc
DONGCO=QUAY_THUAN_HALF[i]; // Che do nua buoc
delay_ms(5);
}
}
}

Chng II: iu khin ng c DC bng b KIT PIC V4


1.Gii thiu chung v KIT PIC V4:

Bo co n o lng v iu khin t ng

Page 14

Trn Vn Thnh Lp TVT K34

Kit PIC V4 h tr c dng 16F, 18F 40 Chn.Phin bn ny MHG cp nhp


thm tnh nng USB Ngoi ra, phin bn ny h tr c mch np MH-Pro
M t v KIT PIC V4
- H tr mch np
PIC KIT2
H tr mch np MH-Pro

Tnh nng hc tp:


1. iu Khin Led n
2. iu Khin Led 7 Thanh
Bo co n o lng v iu khin t ng

Page 15

Trn Vn Thnh Lp TVT K34

3. LCD1602
4. Giao Tip IR
5. Nhit DS18B20
6. ADC
7. Led Matrix
8. UART
9. DS1307 ( Thi Gian Thc)
10. EEPROM 24C02
11. o Tn S 555
12. KeyBoard 4x4
13. Relay
14. Ci Chip
15. CAN MCP2510
16. iu Khin ng C Bc

2.Chc nng cc khi c bn s dng trong bi lin quan ti KIT PIC V4


2.1.IC 74LS138.
2.1.1.Gii thiu v IC 74LS138:
Bo co n o lng v iu khin t ng

Page 16

Trn Vn Thnh Lp TVT K34

- 74LC138 l IC MSI gii m 3 ng sang 8 ng hay tch knh 1 ng sang


8 ng thng dng v c hot ng logic tiu biu, n cn c dng nh mch
gii m a ch trong cc mch iu khin v trong my tnh.
- S chn v k hiu logic:

Trong :
-

A0, A1, A2 l 3 ng a ch ng vo.


E1, E2 l cc ng vo cho php (tc ng mc thp).
E3 l ng vo cho php tc ng mc cao.
O0 n O7 l 8 ng ra (tc ng mc thp).

2.1.2.Hot ng ca IC 74LC138:
- a d liu nh phn 3bit vo C, B, A(LSB), ly d liu ra cc ng O0 n
O7; ng cho php E2 v E3 t mc thp, ng cho php E1 t mc cao.
Chng hn khi CBA l 001 th ng O1 xung thp cn cc ng cn li mc cao.

2.2. LED (4 con LED):


LED 7 thanh 4 s thc cht l 4 con led 7 thanh n ghp vi nhau. Cc thanh
A,B,C,..,H ca 4 led c ni chung vi nhau. LED 7 thanh 4 s cng c 2 kiu l
Bo co n o lng v iu khin t ng

Page 17

Trn Vn Thnh Lp TVT K34

anot chung v catot chung.Led chn bi l led anode chung mc tn hiu vo


mc cao.
2.2.1.S LED:

2.2.2.Cch qut LED:


Nh bit mt ca chng ta sau khi nhn thy mt hnh nh phi mt khong
40ms x l (tng ng 24 hnh trn 1s). Vy nu chng ta cho mt LED sng
tt lin tc vi khong thi gian gia 2 ln thay i trng thi b hn 40ms th mt
chng ta s khng th nhn ra c s thay i v ta vn ngh LED ang sng.
Tuy nhin, khi s dng phng php qut LED th s lng LED c s dng s
khng nhiu (khong 20 LED), l do y l nu s lng LED qu nhiu th thi
gian sng trung bnh cho cc LED s gim xung (LED b m i).
Cc hm cn s dng qut LED:
- LED7_ChuyenDoi(unsigned long int number): hm ny tch ln lt cc
ch s hng trm nghn, chc nghn hng n v hin th ln LED 7
thanh.
- LED7_OnLed(unsigned char addr): hm ny xc nh v tr LED 7 cn hin
th v d liu c hin th.
- LED7_Display(unsigned long int number): hm ny a s cn hin th ln
mn hnh LED 7 thanh 4 s.
Bo co n o lng v iu khin t ng

Page 18

Trn Vn Thnh Lp TVT K34

2.3.PIC 16F877A:
2.3.1.Gii thiu:
PIC 16F877A l loi vi iu khin 8bit tm trung ca hng microchip.
- PIC 16F877A c kin trc Havard, s dng tp lnh kiu RISC (Reduced
Instruction Set Computer) vi ch 35 lnh c bn.
- Tt c cc lnh c thc hin trong mt chu k lnh ngoi tr cc lnh r nhnh.
- S chn vi chip loi cm 40 chn:

2.3.2. Cc chc nng c bn:

Bo co n o lng v iu khin t ng

Page 19

Trn Vn Thnh Lp TVT K34

2.3.3.S khi vi iu khin PIC16F877A:


Bo co n o lng v iu khin t ng

Page 20

Trn Vn Thnh Lp TVT K34

2.4.Mch ma trn phm 3x3:


Bo co n o lng v iu khin t ng

Page 21

Trn Vn Thnh Lp TVT K34

2.4.1.S mch:

2.4.2.Nguyn l lm vic:
- Ma trn phm gm 9 phm bm nn ta c 9 trng hp bm phm n gin ha
ta bm t SW1-SW9. Lc mch ma trn phm hot ng theo nguyn l sau.
Nhn SW1: chn RB0 = 0 chn RB0 c kch hot nhng do c in tr R1 nn
gi tr nhn vo s mc thp, ngc li RB5 = 1, cc chn RB1,2 = 1, RB3,4 = 1.
Gn gi tr sau khi nhn l X th X s bng X1 = 011001YY (Trong YY l 2
chn RB6,7 gn gi tr xut qua LED).
Nhn SW2: tng t ta c chn RB0 = 0 , chn RB4 = 1, cc chn RB1,2 = 1,
RB3,5 = 0. V X2 = 011010YY
Nhn SW3: tng t ta c gi tr X3= 011100YY
Nhn SW4: X4= 101001YY
Nhn SW5:X5 = 101010YY
Nhn SW6:X6= 101100YY
Nhn SW7:X7= 110001YY
Nhn SW8:X8= 110010YY
Nhn SW9:X9= 110100YY
Bo co n o lng v iu khin t ng

Page 22

Trn Vn Thnh Lp TVT K34

Cc gi tr t X1-X9 c nhp vo con PIC 16F877A thng qua con PIC


iu khin hin th LED.

3.Gii thiu v phn mm m phng Protues:

Phn mm Proteus l phn mm cho php m phng hot ng ca mch in t


bao gm phn thit k mch v vit chng trnh iu khin cho cc h vi iu
khin nh MCS-51, PIC, AVR, Proteus l phn mm m phng mch in t
ca Lancenter Electronics, m phng cho hu ht cc linh kin in t thng dng,
c bit h tr cho c cc MCU nh PIC, 8051, AVR, Motorola.

Bo co n o lng v iu khin t ng

Page 23

Trn Vn Thnh Lp TVT K34

Phn mm bao gm 2 chng trnh: ISIS cho php m phng mch v ARES dng
v mch in. Proteus l cng c m phng cho cc loi Vi iu Khin kh tt, n
h tr cc dng VK 8051, AVR, PIC, dsPIC, ARM ... cc giao tip I2C, SPI,
CAN, USB, Ethenet,... ngai ra cn m phng cc mch s, mch tng t mt
cch hiu qu.

Bo co n o lng v iu khin t ng

Page 24

Trn Vn Thnh Lp TVT K34

4.Code chy m phng v hnh nh thc t:

4.1.Code
4.1.2.Code ma trn phm:

#include "key3x3/key3x3.h"
.................... * Ten Tep

key3x3.h

.................... * Tom Tat

Khai bao cac ham dieu khien ma tran phim 3x3.

....................
******************************************************************
************
.................... #define

KEY3X3_COL1

PINB_0

.................... #define

KEY3X3_COL2

PINB_1

.................... #define

KEY3X3_COL3

PINB_2

.................... #define

KEY3X3_ROW1

PORTB_4

.................... #define

KEY3X3_ROW2

PORTB_5

.................... #define

KEY3X3_ROW3

PORTB_6

....................
******************************************************************
************
.................... **/
....................
.................... #ifndef __KEY_3X3_H
Bo co n o lng v iu khin t ng

Page 25

Trn Vn Thnh Lp TVT K34

.................... #define __KEY_3X3_H


.................... #include "main.h"
.................... /**
4.1. 2.Code 74LS138:
.................... #include "74ls138/74ls138.h"
.................... /**
....................
******************************************************************
************
.................... * Ten Tep

74ls138.h

.................... * Tom Tat

Khai bao cac ham dieu khien 74ls138

.................... #ifndef __74LS138_H


.................... #define __74LS138_H
....................
/******************************************************************
*************
.................... Noi Dung : Xuat tin hieu ra LS138.
.................... Tham Bien : Point : Vi tri tin hieu xuat 0-7.
.................... Tra Ve

: Khong.

....................
******************************************************************
**************/
.................... void LS138_Out(uint8_t Point);
.................... #endif
Bo co n o lng v iu khin t ng

Page 26

Trn Vn Thnh Lp TVT K34

4.1.3.Code qut led:


#include <16F877A.h>
#device *=16
#use delay(clock = 20M)
#FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT,
NOLVP, NOCPD, NOWRT

#use fast_io(b)
#byte portb=0x6
#use fast_io(d)
#byte portd=0x8

Void hien_thi();

int8 font[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x9 0};


int8 ch,dv,tr,ng;
int16 i,k;
void main ()
{
set_tris_b(0);
set_tris_d(0);
portd=0x00;
Bo co n o lng v iu khin t ng

Page 27

Trn Vn Thnh Lp TVT K34

while(1)
{
for(i=0;i<=9999;i++)
{
for(k=0;k<=50;k++)
{
hien_thi();
}
}
}
}

Void hien_thi()
{
ng= i/1000;
tr= (i%1000)/100;
ch= (i%100)/10;
dv= i%10 ;

portb=(font[dv]);
portd=(0x01);
delay_us(1000);
portd=(0x00);
Bo co n o lng v iu khin t ng

Page 28

Trn Vn Thnh Lp TVT K34

portb=(font[ch]);
portd=(0X02);
delay_us(1000);
portd=(0x00);
portb=(font[tr]);
portd=(0x04);
delay_us(1000);
portd=(0x00);
portb=(font[ng]);
portd=(0X08);
delay_us(1000);
portd=(0x00);
}
4.1.4.Code khai bo PIC 16F877A:
.................... #include <16F877A.h>
.................... //////// Standard Header file for the PIC16F877A device ////////////////
.................... #device PIC16F877A
.................... #list
....................
.................... #device*=16 adc=10
....................
.................... #FUSES NOWDT

Bo co n o lng v iu khin t ng

//No Watch Dog Timer

Page 29

Trn Vn Thnh Lp TVT K34

.................... #FUSES HS
(>10mhz for PCD)

//High speed Osc (> 4mhz for PCM/PCH)

.................... #FUSES NOPUT


.................... #FUSES NOBROWNOUT

//No Power Up Timer


//No brownout reset

.................... #FUSES NOLVP


or B5(PIC18) used for I/O

//No low voltage prgming, B3(PIC16)

.................... #FUSES NOCPD

//No EE protection

.................... #FUSES NOWRT

//Program memory not write protected

.................... #FUSES NODEBUG


.................... #FUSES NOPROTECT

//No Debug mode for ICD


//Code not protected from reading

.................... #use delay(clock=F_OSC)


*
00AE: MOVLW 39
00AF: MOVWF 04
00B0: BCF 03.7
00B1: MOVF 00,W
00B2: BTFSC 03.2
00B3: GOTO 0C1
00B4: MOVLW 06
00B5: MOVWF 78
00B6: CLRF 77
00B7: DECFSZ 77,F
00B8: GOTO 0B7
Bo co n o lng v iu khin t ng

Page 30

Trn Vn Thnh Lp TVT K34

00B9: DECFSZ 78,F


00BA: GOTO 0B6
00BB: MOVLW 7B
00BC: MOVWF 77
00BD: DECFSZ 77,F
00BE: GOTO 0BD
00BF: DECFSZ 00,F
00C0: GOTO 0B4
....................
.................... /* Kieu So Nguyen Co Dau */
.................... typedef int1

bit;

.................... typedef signed int

int8_t;

.................... typedef signed long

int16_t;

.................... typedef signed long long

int32_t;

....................
.................... /* Kieu So Nguyen Khong Dau */
.................... typedef unsigned

int uint8_t;

.................... typedef unsigned

long uint16_t;

.................... typedef unsigned long long uint32_t;


.................... /* Kieu So Thuc */
.................... typedef float

float32_t;

....................
.................... #include "DEF_16F877A.h"
Bo co n o lng v iu khin t ng

Page 31

Trn Vn Thnh Lp TVT K34

.................... /**
....................
******************************************************************
************
Khai bao, dinh nghia mot so thah ghi cho PIC16F877A

.................... #ifndef __DEF_16F877A_H


.................... #define __DEF_16F877A_H
.................... #byte PORTA

= 0x05

.................... #byte PORTB

= 0x06

.................... #byte PORTC

= 0x07

.................... #byte PORTD

= 0x08

.................... #byte PORTE

= 0x09

.................... #byte PINA

= 0x05

.................... #byte PINB

= 0x06

.................... #byte PINC

= 0x07

.................... #byte PIND

= 0x08

.................... #byte PINE

= 0x09

.................... //Thanh Ghi Huong


.................... #byte DDRA

= 0x85

.................... #byte DDRB

= 0x86

.................... #byte DDRC

= 0x87

.................... #byte DDRD

= 0x88

Bo co n o lng v iu khin t ng

Page 32

Trn Vn Thnh Lp TVT K34

.................... #byte DDRE

= 0x89

.................... /*********************PORTA**********************/
.................... #bit PORTA_5

= PORTA.5

.................... #bit PORTA_4

= PORTA.4

.................... #bit PORTA_3

= PORTA.3

.................... #bit PORTA_2

= PORTA.2

.................... #bit PORTA_1

= PORTA.1

.................... #bit PORTA_0

= PORTA.0

.................... #bit PINA_0

= PINA.0

.................... #bit PINA_1

= PINA.1

.................... #bit PINA_2

= PINA.2

.................... #bit PINA_3

= PINA.3

.................... #bit PINA_4

= PINA.4

.................... #bit PINA_5

= PINA.5

.................... #bit DDRA_0

= DDRA.0

.................... #bit DDRA_1

= DDRA.1

.................... #bit DDRA_2

= DDRA.2

.................... #bit DDRA_3

= DDRA.3

.................... #bit DDRA_4

= DDRA.4

.................... /*********************PORTB**********************/
.................... #bit PORTB_7

= PORTB.7

.................... #bit PORTB_6

= PORTB.6

.................... #bit PORTB_5

= PORTB.5

Bo co n o lng v iu khin t ng

Page 33

Trn Vn Thnh Lp TVT K34

.................... #bit PORTB_4

= PORTB.4

.................... #bit PORTB_3

= PORTB.3

.................... #bit PORTB_2

= PORTB.2

.................... #bit PORTB_1

= PORTB.1

.................... #bit PORTB_0

= PORTB.0

.................... #bit PINB_7

= PINB.7

.................... #bit PINB_6

= PINB.6

.................... #bit PINB_5

= PINB.5

.................... #bit PINB_4

= PINB.4

.................... #bit PINB_3

= PINB.3

.................... #bit PINB_2

= PINB.2

.................... #bit PINB_1

= PINB.1

.................... #bit PINB_0

= PINB.0

.................... #bit DDRB_0

= DDRB.0

.................... #bit DDRB_1

= DDRB.1

.................... #bit DDRB_2

= DDRB.2

.................... #bit DDRB_3

= DDRB.3

.................... #bit DDRB_4

= DDRB.4

.................... #bit DDRB_5

= DDRB.5

.................... #bit DDRB_6

= DDRB.6

.................... #bit DDRB_7

= DDRB.7

.................... /*********************PORTC**********************/
.................... #bit PORTC_7

= PORTC.7

Bo co n o lng v iu khin t ng

Page 34

Trn Vn Thnh Lp TVT K34

.................... #bit PORTC_6

= PORTC.6

.................... #bit PORTC_5

= PORTC.5

.................... #bit PORTC_4

= PORTC.4

.................... #bit PORTC_3

= PORTC.3

.................... #bit PORTC_2

= PORTC.2

.................... #bit PORTC_1

= PORTC.1

.................... #bit PORTC_0

= PORTC.0

.................... #bit PINC_7

= PINC.7

.................... #bit PINC_6

= PINC.6

.................... #bit PINC_5

= PINC.5

.................... #bit PINC_4

= PINC.4

.................... #bit PINC_3

= PINC.3

.................... #bit PINC_2

= PINC.2

.................... #bit PINC_1

= PINC.1

.................... #bit PINC_0

= PINC.0

.................... #bit DDRC_0

= DDRC.0

.................... #bit DDRC_1

= DDRC.1

.................... #bit DDRC_2

= DDRC.2

.................... #bit DDRC_3

= DDRC.3

.................... #bit DDRC_4

= DDRC.4

.................... #bit DDRC_5

= DDRC.5

.................... #bit DDRC_6

= DDRC.6

.................... #bit DDRC_7

= DDRC.7

Bo co n o lng v iu khin t ng

Page 35

Trn Vn Thnh Lp TVT K34

.................... /*********************PORTD**********************/
.................... #bit PORTD_7

= PORTD.7

.................... #bit PORTD_6

= PORTD.6

.................... #bit PORTD_5

= PORTD.5

.................... #bit PORTD_4

= PORTD.4

.................... #bit PORTD_3

= PORTD.3

.................... #bit PORTD_2

= PORTD.2

.................... #bit PORTD_1

= PORTD.1

.................... #bit PORTD_0

= PORTD.0

.................... #bit PIND_7

= PIND.7

.................... #bit PIND_6

= PIND.6

.................... #bit PIND_5

= PIND.5

.................... #bit PIND_4

= PIND.4

.................... #bit PIND_3

= PIND.3

.................... #bit PIND_2

= PIND.2

.................... #bit PIND_1

= PIND.1

.................... #bit PIND_0

= PIND.0

.................... #bit DDRD_0

= DDRD.0

.................... #bit DDRD_1

= DDRD.1

.................... #bit DDRD_2

= DDRD.2

.................... #bit DDRD_3

= DDRD.3

.................... #bit DDRD_4

= DDRD.4

.................... #bit DDRD_5

= DDRD.5

Bo co n o lng v iu khin t ng

Page 36

Trn Vn Thnh Lp TVT K34

.................... #bit DDRD_6

= DDRD.6

.................... #bit DDRD_7

= DDRD.7

.................... /*********************PORTE**********************/
.................... #bit PORTE_2

= PORTE.2

.................... #bit PORTE_1

= PORTE.1

.................... #bit PORTE_0

= PORTE.0

.................... #bit PINE_2

= PINE.2

.................... #bit PINE_1

= PINE.1

.................... #bit PINE_0

= PINE.0

.................... #bit DDRE_0

= DDRE.0

.................... #bit DDRE_1

= DDRE.1

.................... #bit DDRE_2

= DDRE.2

.................... #ifndef DDR_OUT


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

#define DDR_OUT

.................... #endif
.................... #ifndef DDR_IN
....................

#define DDR_IN

.................... #endif
.................... #endif

Bo co n o lng v iu khin t ng

Page 37

Trn Vn Thnh Lp TVT K34

4.2.Hnh nh qua m phng:

Bo co n o lng v iu khin t ng

Page 38

Trn Vn Thnh Lp TVT K34

Tun 3: Tip tc vic np code v m phng vn cha hon chnh c .

Bo co n o lng v iu khin t ng

Page 39

Trn Vn Thnh Lp TVT K34

Tun 4: Chy led hin th t 0000-9999.


Chy th chng trnh m s t 0000-9999 vi code nh bn di,
#include <16f877a.h>
#fuses hs,nolvp,nowdt,put
#use delay(clock=20000000)
#use fast_io(d)
#use fast_io(C)
int8 gian,i,j,dem,nghin,tram,chuc,dv;
unsigned char MA7DOAN[] = {0x3F,0x06,0x5B,0x4F,0x66,0x6D,
0x7D,0x07,0x7F,0x6F};
void main ()
{
set_tris_c(0x00);
set_tris_d(0x00);
while (1)
{
for(dem=0;dem<=9999;dem++)
{
gian=dem;
nghin=dem/1000;
dem=dem%1000;
tram=dem/100;
dem=dem%100;
Bo co n o lng v iu khin t ng

Page 40

Trn Vn Thnh Lp TVT K34

chuc=dem/10;
dv=dem%10;
for(j=0;j<=100;j++)
{
output_d(0xbf);
output_c(MA7DOAN[dv]);
delay_us(1000);
output_d(0xdf);
output_c(MA7DOAN[chuc]);
delay_us(1000);
output_d(0xef);
output_c(MA7DOAN[tram]);
delay_us(1000);
output_d(0Xf7);
output_c(MA7DOAN[nghin]);
delay_us(1000);
}
dem=gian;
}
}
}

Bo co n o lng v iu khin t ng

Page 41

Trn Vn Thnh Lp TVT K34

Bo co n o lng v iu khin t ng

Page 42

Trn Vn Thnh Lp TVT K34

Chng III: Giao tip vi PC


1.Gii thiu chung v Visual studio 2010:

1.1.Khi qut v Visual studio 2010:


Microsof visual studio: L mi trng tch hp chnh (Integrated Development
Environment - IDE) c pht trin t Microsoft. y l mt sn ph m phn
mm my tnh c cng dng gip cc lp trnh vin trong vic pht trin phn
mm.
Cc mi trng pht trin hp nht thng bao gm:
- Mt trnh son tho m (source code editor): dng vit m.
- Trnh bin dch (compiler) v/hoc trnh thng dch (interpreter).
- Cng c xy dng t ng: khi s dng s bin dch (hoc thng dch) m
ngun, thc hin lin kt v c th chy chng trnh mt cch t ng.
- Trnh g li (debugger): h tr d tm li.
- Ngoi ra, cn c th bao gm h thng qun l phin bn v cc cng c
nhm n gin ha cng vic xy dng giao din ngi dng ha (GUI).
1.2.Lch s ra i:
Bo co n o lng v iu khin t ng

Page 43

Trn Vn Thnh Lp TVT K34

Microsoft ln u ra mt Visual Studio vo nm 1997.


VISUAL STUDIO 6.0 (98) L mt phin bn tip (version 6.0) ra i vo
thng 6 nm 1998 ci thin thm cho Visual Studio 97. y cng l phin
bn cui cng chy trn nn tng Win9x.
VISUAL STUDIO .NET (2002) Microsoft pht hnh Visual Studio .NET
VISUAL STUDIO .NET 2003 Vo thng 4 nm 2003.
VISUAL STUDIO 2005 Visual Studio 2005, c tn m l Whidbey, c
pht hnh vo thng 10 nm 2005. Cng vi NET Framework, c nng
cp ln thnh version 2.0. y cng l phin bn cui cng thch hp cho
Windows 2000.
V ln lt cc nm 2008, 2010, 2012 cho ra cc phin bn VISUAL
STUDIO tng ng.
Trong khung chng trnh bo co chng ta s dng VISUAL STUDIO 2010.
2.Ngn ng C# v Visual Basic(VB):
*C# v VB l:
Mt phn ca visual studio;
Thun hng i tng;
C ch dch nn.
*So snh vi C v C++ :
- Cc con tr ch c th c s dng trong ch khng an ton. Hu ht cc
i tng c tham chiu an ton, v cc php tnh u c kim tra trn
b m.
- Cc i tng khng th c gii phng tng minh.
- Ch c n k tha, nhng c th ci t nhiu interface tru tng (abstract
interfaces )
- C# th an-ton-kiu (typesafe) hn C++.
- C php khai bo mng khc nhau("int[] a = new int[5]" thay v "int a[5]").
- Kiu th t c thay th bng tn min khng gian (namespace).
- C thm Properties, cc phng php c th gi cc Properties truy cp
d liu.

Bo co n o lng v iu khin t ng

Page 44

Trn Vn Thnh Lp TVT K34

3.USB v giao din HID:


3.1.Gii thiu v USB:

USB (Universal Serial Bus) l mt chu n kt ni tun t a dng trong my tnh.


USB s dng kt ni cc thit b ngoi vi vi my tnh, chng thng c thit
k di dng cc u cm cho cc thit b tun theo chu n cm-l-chy m vi tnh
nng cm nng thit b (ni v ngt cc thit b khng cn phi khi ng li h
thng).
USB c nhng c trng sau y:
- Cho php m rng 127 thit b kt ni cng vo mt my tnh thng qua mt
cng USB duy nht (bao gm cc hub USB);
- Nhng si cp USB ring l c th di ti 5 mt; vi nhng hub, c th ko
di ti 30 mt (6 si cp ni tip nhau thng qua cc hub) tnh t u cm
trn my tnh.
- Vi USB 2.0 chu n tc cao, ng truyn t tc ti a n 480
Mbps.
- Cp USB gm hai si ngun (+5V v dy chung GND) cng mt cp gm
hai si dy xon mang d liu.
- Trn si ngun, my tnh c th cp ngun ln ti 500mA in p 5V mt
chiu (DC).
Bo co n o lng v iu khin t ng

Page 45

Trn Vn Thnh Lp TVT K34

- Nhng thit b tiu th cng sut thp (v d: chut, bn phm, loa my tnh
cng sut thp...) c cung cp in nng cho hot ng trc tip t cc
cng USB m khng cn c s cung cp ngun ring (thm ch cc thit b
gii tr s nh SmartPhone, PocketPC ngy nay s dng cc cng USB
sc pin). Vi cc thit b cn s dng ngun cng sut ln (nh my in, my
qut...) khng s dng ngun in t ng truyn USB nh ngun chnh
ca chng, lc ny ng truyn ngun ch c tc dng nh mt s so snh
mc in th ca tn hiu. Hub c th c ngun cp in ring cp in
thm cho cc thit b s dng giao tip USB cm vo n bi mi cng USB
ch cung cp mt cng sut nht nh.
- Nhng thit b USB c c tnh cm nng, iu ny c ngha cc thit b c
th c kt ni (cm vo) hoc ngt kt ni (rt ra) trong mi thi im m
ngi s dng cn m khng cn phi khi ng li h thng.
- Nhiu thit b USB c th c chuyn v trng thi tm ngng hot ng
khi my tnh chuyn sang ch tit kim in.
3.2.Cu to ca USB:
3.2.1. u cm USB:

USB truyn tn hiu v ngun qua mt cp 4 si

Vbus: in p cung cp cho thit b.


Tn hiu D+.
Tn hiu D-.
Dy t GND.

Bo co n o lng v iu khin t ng

Page 46

Trn Vn Thnh Lp TVT K34

3.2.2.IC giao tip:


1. u cm USB
2. IC giao tip.
4. Chip nh (Flash)
5. Thch anh 12Mz.

- Ic iu khin l mt dng vi x l chuyn dng, iu khin vic kt ni, truyn


nhn v lu tr d liu.
- Cc lai IC giao tip thng dng l: iCreat, Alcor, Phison, Oti, Profilic, SSSSolid State System, Netac, Ameco, Chipsbank, Skymedia, USBest
- Bn trong cc chip iu khin ny c mt on chng trnh m ta gi l
firmware. a phn li ca UFD u t ci firmware ny m ra.
c im v tc truyn:

USB tc cao (USB high-speed): 480Mb/s.


USB ton tc (USB full-speed): 12Mb/s.

Bo co n o lng v iu khin t ng

Page 47

Trn Vn Thnh Lp TVT K34

USB tc thp (USB low-speed): 1.2Mb/s.

3.3.Giao din HID:


T giao din ngi s dng trong tn gi ca lp HID ch ra s tng tc
trc tip gia con ngi vi thit b thuc lp ny. V d mt con chut c th
pht hin vic chng ta di chuyn hay nhn chut gi thng tin ln my ch
v my ch s dng thng tin ny em li cc p ng m ngi s dng
ang mong i trong mt ng dng c th no .
- Tt c d liu c trao i di cng mt dng cu trc c gi l bo
co (report). nh dng bo co l kh linh hot v n c th p dng cho rt
nhiu dng ca d liu song i vi mi mt bo co c nh ngha th
kch c ca n l xc nh.
- Mt giao din HID phi c mt im cui ngt vo (interrupt Inenpoint)
gi d liu ln my ch.
- Tc trao i d liu l hn ch, c bit l khi truyn tc thp hoc
ton tc. im cui ngt tc thp khng th vt qu 800 bytes/sec, vi
cc im cui ton tc th tc ti a l 64 KB/s cn im cui ngt tc
cao th tc ti a vo khong 24 MB/s .
- im cui ngt vo cho php HID gi thng tin ln my ch nhng thi
im m khng h bit trc.

Bo co n o lng v iu khin t ng

Page 48

Trn Vn Thnh Lp TVT K34

3.4.Th vin lin kt ng:


3.4.1.File .DLL:
Cha m lnh nh phn ca cc hm th vin.
c ti vo b nhkhi ng dng gi hm th vin.
Cn c khi thc hin ng dng.
M lnh ca cc hm s khng c nhng vo trong file chng trnh ca
ng dng.
- ng dng ch cn lu thng tin ca hm th vin, v khi cn, H iu hnh
s ti cc hm th vin vo b nh.
-

3.4.2. Gi hm c bn trong DLL t C#:


gi mt hm trong DLL t C#, chng ta phi lm 3 bc:
- Import file DLL.
- Khai bo mt nguyn mu hm s gi.
- Gi hm.
3.4.3. Cc hm c bn trong USB.DLL:
- findTargetDevice() : Phng thc ny tm kim cho thit b USB da trn
VID v PID c cung cp khi i tng c to ra.
- readMultipleReportsFromDevice() : c d liu ln t USB.
- readSingleReportFromDevice() : c d liu nh t USB.
- registerForDeviceNotifications() : ng k thng bo thay i thit b.
- writeRawReportToDevice() : Gi d liu n USB.
- onUsbEvent() : Pht hin c s kin USB hay khng?
- isDeviceAttached() : Pht hin c USB cha?

Bo co n o lng v iu khin t ng

Page 49

Trn Vn Thnh Lp TVT K34

4.iu khin ng c giao tip my tnh:


4.1.Phn mm iu khin trn my tnh:

4.2.Code giao tip v iu khin ng c DC bng my tnh:


#include <16f877a.h>
#fuses hs,nowdt,noprotect,nolvp,put // cau hinh cho Pc
#use delay (clock=4000000)
#use RS232(baud = 9600,parity=N,xmit=PIN_C6,rcv=PIN_C7)
#use fast_io(b)
#use fast_io(c)
#use fast_io(d)
#use fast_io(e)
#byte portb = 0x6
#byte portc = 0x7
#byte portd = 0x8
#byte porte = 0x9
#byte timer11 = 0xE
#byte timer1h = 0xF
#byte t1con = 0x10
#byte intcon =0x0b
#bit congat=intcon.2
#bit p0 = t1con.0
Bo co n o lng v iu khin t ng

Page 50

Trn Vn Thnh Lp TVT K34

#bit p1 = t1con.1
#bit p2 = t1con.2
#bit p3 = t1con.3
#bit p4 = t1con.4
#bit p5 = t1con.5
#bit b0 = portb.0
#bit b1 = portb.1
#bit b2 = portb.2
#bit b3 = portb.3
#bit b4 = portb.4
#bit b5 = portb.5
#bit c0 = portc.0
#bit c1 = portc.1
#bit c2 = portc.2
#bit c3 = portc.3
#bit c4 = portc.4
#bit c5 = portc.5
#bit d1 = portd.1
#bit d2 = portd.2
#bit d3 = portd.3
#bit d4 = portd.4
#bit d5 = portd.5
#bit e1 = porte.1
#bit e2 = porte.2
Int16 value,speed; //KHAI BIEN TOAN CUC
Int8 sansang,Hngan,Htram,Hchuc,HDonVi,x,data,tam,i;
char z;
#Int_rda //data nhan tu rs232 san sang
void ngat1()
{
z = getc();//nhan du lieu z
if(z!='a' && z!='b' && z!='c' && z!='d' && z!='e' && z!='f') // z khac a,b,c..
Bo co n o lng v iu khin t ng

Page 51

Trn Vn Thnh Lp TVT K34

{
data= z;
if(c3 == 0 && e1 ==0)//kiem tra quay thuan va quay nghich
{
c3 = 1;
e1= 0;
setup_ccp2(ccp_pwm); // xuat xung pwm2 ra chan c1
set_pwm2_duty(x);//x=m,Th=m*gia tri chia tan
setup_ccp1(ccp_pwm);
set_pwm1_duty(0);// cho chan c2 ve muc thap( dong co quay thuan)
setup_timer_2(t2_div_by_4,255,1);
}
if(c3 == 1 && e1 ==0)//kiem tra nut nhan
{
setup_ccp2(ccp_pwm);
set_pwm2_duty(x);
setup_ccp1(ccp_pwm);
set_pwm1_duty(0);
setup_timer_2(t2_div_by_4,255,1);
while(true);
}
if(c3 == 0 && e1 == 1)
{
setup_ccp1(ccp_pwm);
set_pwm1_duty(x);
setup_ccp2(ccp_pwm);
set_pwm2_duty(0);
setup_timer_2(t2_div_by_4,255,1);
while(true);
}
}
else
{
if(z = 'f')
Bo co n o lng v iu khin t ng

Page 52

Trn Vn Thnh Lp TVT K34

{
z=0;
sansang = !sansang;
if(sansang ==1)
e2 = 1;
else
{
e2 = 0;
c3 = e1 = 0;
setup_ccp2(ccp_pwm);
set_pwm2_duty(0);
setup_ccp1(ccp_pwm);
set_pwm1_duty(0);
setup_timer_2(t2_div_by_4,255,1);
x = 10;
while(true);
}
}
}
}
#INT_TIMER0 //ngat timer 0
void ngat()
{
value = (timer1h*256)+(timer11%256);
set_timer0(15280);
timer11 = 0;
timer1h = 0;
p1 = 1;
p2 = 0;
p3 = 0;
p4 = 0;
p5 = 0;
p0 = 1;// ON
congat = 0;
Bo co n o lng v iu khin t ng

Page 53

Trn Vn Thnh Lp TVT K34

}
Void hienthi();
Void main()
{
enable_interrupts(INT_RDA);
enable_interrupts(INT_TIMER0);
enable_interrupts(GLOBAL);
ext_int_edge(L_TO_H);//chon cach lay xung canh len
set_tris_b(0b111111);
set_tris_c(0b10000001);
set_tris_d(0);
set_tris_e(0b00);
portb=portc=portd=porte=0;
setup_timer_0(RTCC_DIV_256| RTCC_INTERNAL);//
set_timer0(15280);// delay 50ms
timer11 = 0;
timer1h = 0;
p1 = 1;
p2 = 0;
p3 = 0;
p4 = 0;
p5 = 0;
p0 = 1; // On
value = 0;
sansang = 0;
tam = 1;
speed = 20;
data = 20;
x = 120;
while(1)
{
speed = (value*20)/400;
Bo co n o lng v iu khin t ng

Page 54

Trn Vn Thnh Lp TVT K34

Hchuc = speed/10;
HDonVi = speed%10;
putc(Hchuc+48);
putc(HDonVi+480);
hienthi();
if(b0==0)
{
do
{}
while(b0==0);
putc('#');
putc('4');
sansang=!sansang;
if(sansang==1)
e2=1;
else
{
e2=0;
c3 = e1 = 0;
setup_ccp2(ccp_pwm);
set_pwm2_duty(0);
setup_ccp1(ccp_pwm);
set_pwm1_duty(0);
setup_timer_2(t2_div_by_4,255,1);
x =10;
while(true);
}
}
if(sansang==1)
{
if(b1==0 || z=='a')
{
setup_ccp2(ccp_pwm);
set_pwm2_duty(0);
Bo co n o lng v iu khin t ng

Page 55

Trn Vn Thnh Lp TVT K34

setup_ccp1(ccp_pwm);
set_pwm1_duty(0);
setup_timer_2(t2_div_by_4,255,1);
x =10;
while(true);
delay_ms(500);
z=0;
c3=1;
e1=0;
setup_ccp2(ccp_pwm);
set_pwm2_duty(x);
setup_ccp1(ccp_pwm);
set_pwm1_duty(0);
setup_timer_2(t2_div_by_4,255,1);
while(true);
putc('#');
putc('1');
}
if(b2=0 || z=='b')
{
setup_ccp2(ccp_pwm);
set_pwm2_duty(0);
setup_ccp1(ccp_pwm);
set_pwm1_duty(0);
setup_timer_2(t2_div_by_4,255,1);
x =10;
while(true);
delay_ms(500);
z=0;
c3=0;
e1=1;
setup_ccp2(ccp_pwm);
set_pwm2_duty(0);
Bo co n o lng v iu khin t ng

Page 56

Trn Vn Thnh Lp TVT K34

setup_ccp1(ccp_pwm);
set_pwm1_duty(0);
setup_timer_2(t2_div_by_4,255,1);
while(true);
putc('#');
putc('2');
}
if(b3==0 ||z=='c')
{
z=0;
c3=e1=0;
setup_ccp2(ccp_pwm);
set_pwm2_duty(0);
setup_ccp1(ccp_pwm);
set_pwm1_duty(0);
setup_timer_2(t2_div_by_4,255,1);
while(true);
putc('#');
putc('3');
x =10;
}
if(b4==0 ||z=='d')
{
do
{
}
while(b4==0);
delay_ms(500);
if(data>=2)
data=data-1;
z= 0;
}
if(b5==0 || z=='e')
Bo co n o lng v iu khin t ng

Page 57

Trn Vn Thnh Lp TVT K34

{
do
{
}
while(b5==0);
delay_ms(50);
x =10;
if(data<=34)
data=data+1;
z =0;
}
if(speed>data && x>=1)
{
x=x-1;
if(c3==1 && e1==0)
{
setup_ccp2(ccp_pwm);
set_pwm2_duty(x);
setup_ccp1(ccp_pwm);
set_pwm1_duty(0);
setup_timer_2(t2_div_by_4,255,1);
while(true);
}
if(c3==0 && e1==1)
{
setup_ccp2(ccp_pwm);
set_pwm2_duty(0);
setup_ccp1(ccp_pwm);
set_pwm1_duty(x);
setup_timer_2(t2_div_by_4,255,1);
while(true);
}
}
if(speed<data && x<=254)
Bo co n o lng v iu khin t ng

Page 58

Trn Vn Thnh Lp TVT K34

{
x=x+1;
if(c3 ==1 &&e1 ==0)
{
setup_ccp2(ccp_pwm);
set_pwm2_duty(x);
setup_ccp1(ccp_pwm);
set_pwm1_duty(0);
setup_timer_2(t2_div_by_4,255,1);
while(true);
}
if(c3 ==0 && e1 ==1)
{
setup_ccp2(ccp_pwm);
set_pwm2_duty(0);
setup_ccp1(ccp_pwm);
set_pwm1_duty(x);
setup_timer_2(t2_div_by_4,255,1);
while(true);
}
}
}
}
}
Void hienthi()
{
For(i=0;i<=2;i++)
{
Int ht[10]={192,249,164,176,153,146,130,248,128,144};
portd=ht[Hchuc];
c5=0;
c4=1;
delay_ms(10);
Bo co n o lng v iu khin t ng

Page 59

Trn Vn Thnh Lp TVT K34

portd=ht[HDonVi];
c5=1;
c4=0;
delay_ms(10);
}
}

Bo co n o lng v iu khin t ng

Page 60

You might also like