thesis đồ án môn học điện cơ

135
LÔØI NOÙI ÑAÀU Ñeà taøi thöïc hieän trong luaän vaên toát nghieäp naøy laø thieát keá “ Heä thoáng thu thaäp döõ lieäu vaø ñieàu khieån ”. Heä thoáng naøy seõ thu thaäp döõ lieäu töø caùc keânh chuyeån ñoåi Analog sang Digital, ñieàu khieån heä thoáng baèng tín hieäu ñieän aùp ñöôïc xuaát ra, thieát bò hieån thò laø maøn hình tinh theå loûng (LCD). Heä thoáng ñöôïc keát noái vôùi maùy tính qua coång noái tieáp, giao dieän ñieàu khieån ñöôïc vieát baèng ngoân ngöõ Visual Basic. Ñeã coù theå hoaøn thaønh ñeà taøi naøy em xin chaân thaønh caùm ôn thaày höôùng daãn HUYØNH HÖÕU PHÖÔNG, toaøn boä caùc anh trong coâng ty Control noùi chung vaø phoøng Ñieän töû noùi rieâng ñaõ chæ baûo taän tình vaø taïo ñieàu kieän toát nhaát cho em trong quaù trình thöïc hieän luaän vaên. Ngaøy 10 thaùng 1 naêm 2002 Sinh vieân Nguyeãn hoaøng Huy

Upload: vuphuocbk185

Post on 10-Nov-2015

13 views

Category:

Documents


0 download

DESCRIPTION

Thesis đồ án môn học điện cơ

TRANSCRIPT

LUAN VAN

LI NOI AU

e tai thc hien trong luan van tot nghiep nay la thiet ke He thong thu thap d lieu va ieu khien . He thong nay se thu thap d lieu t cac kenh chuyen oi Analog sang Digital, ieu khien he thong bang tn hieu ien ap c xuat ra, thiet b hien th la man hnh tinh the long (LCD). He thong c ket noi vi may tnh qua cong noi tiep, giao dien ieu khien c viet bang ngon ng Visual Basic.

e co the hoan thanh e tai nay em xin chan thanh cam n thay hng dan HUYNH HU PHNG, toan bo cac anh trong cong ty Control noi chung va phong ien t noi rieng a ch bao tan tnh va tao ieu kien tot nhat cho em trong qua trnh thc hien luan van.

Ngay 10 thang 1 nam 2002

Sinh vien

Nguyen hoang Huy

MUC LUC

Trang

I/ Chuyen oi AD dung ADS7841

A/ S lc ve ADS7841

1/ Gii thieu1

2/ Mo ta chan2 -3

3/ Ky thuat ieu khien3 - 12

B/ Ap dung vao luan van

1/ Ket noi phan cng13

2/ Phan mem ieu khien14 - 16

II/ Chuyen oi DA dung DAC7611

A/ S lc ve DAC7611

1/ Gii thieu17 -18

2/ Mo ta chan18 - 20

3/ Hoat ong20 - 23

B/ Ap dung vao luan van

1/ Ket noi phan cng 23 - 24

2/ Phan mem ieu khien24 - 26

III/ Truyen thong noi tiep vi Visual Basic

A/ S lc ve truyen thong noi tiep27 - 28

B/ Cac ac tnh cua MSComm28 - 39

C/ S kien OnComm39 - 40

D/ Thong bao loi40 - 41

E/ Hoi vong cong RS-23241 - 42

IV/ Man hnh tinh the long LCD

A/ Chc nang cac chan43 - 44

B/ Nguon cung cap va hoat ong 44 - 45

C/ Tap lenh ieu khien45 - 48

D/ Ap dung vao luan van

1/ S o ket noi48

2/ Phan mem nap cho 895149

V/ Hoat ong port noi tiep cua 8951

A/ Gii thieu 50 - 51

B/ Thanh ghi ieu khien port noi tiep51 - 52

C/ Cac che o hoat ong52 - 56

D/ Khi ong va truy xuat cac thanh ghi cong noi tiep57 - 58

E/ Toc o baud port noi tiep59 - 61

VI/ He thong thu thap so lieu va ieu khien

A/ Gii thieu62

B/ Ket noi phan cng va phan mem ieu khien62 - 71

C/ Giao dien ieu khien77

1/ Chuyen oi AD80 - 84

2/ Chuyen oi DA84 - 87

3/ Hien th tren LCD87 - 89

4/ Cac nut lenh khac90

VII/ Cac hop ieu khien ActiveX

A/ Hop ieu khien chuyen oi AD91 - 94

B/ Hop ieu khien chuyen oi DA94 - 95

C/ Hop ieu khien LCD95 - 100

CHUYEN OI AD DUNG ADS7841

Chuyen oi t Analog sang Digital (ADC) la qua trnh khong the thieu trong cac he thong ieu khien t ong. Ngoai IC ADC0809 quen thuoc tren th trng co rat nhieu IC thc hien viec chuyen oi AD, ADC0809 co mot so nhc iem la o chnh xac khong cao (chuyen oi 8 bit), thi gian chuyen oi cao (khoang 120 (s) va giao tiep d lieu dang song song ch thch hp cho cac he thong can o chnh xac khong cao va ton nhieu chan port hoac phai giao tiep d lieu qua data bus.

Trong e tai thc hien trong luan van nay ta thc hien viec bien oi AD bang IC ADS7841 cua hang BURR-BROWN. ADS7841 co mot so ac tnh noi troi so vi ADC0809 o la o chnh xac tng oi cao (chuyen oi 12 bit), toc o chuyen oi cao co the at ti toc o 5(s. Va ac biet la giao tiep d lieu dang noi tiep do o ton t chan port cua vi x l (co the ch can ton 3 chan port).

Ngoai ra oi vi ADS7841 ta con co the s dung che o chuyen oi 8 bit e tang toc o chuyen oi d lieu oi vi cac he thong khong can o chnh xac cao. Trc khi ap dung vao he thong ta gii thieu s lc ve ADS7841.

A/ S LC VE ADS7841

1/ GII THIEU :

ADS7841 la IC chuyen oi tn hieu analog sang tn hieu so 12 bit bang giao tiep noi tiep do cong ty BURR-BROWN san xuat . ADS7841 gom 4 kenh chuyen oi va cho phep ta lap trnh e chon chuyen oi AD 12 bit hoac 8 bit tuy theo nhu cau s dung. Cong suat tieu thu khoang 2mw , nguon cung cap n VCC =+5V , ap chuan VREF c cung cap trong khoang t 100mV en VCC . Tam ien ap ngo vao can o trong khoang t 0V en VREF.

S o chan cua ADS7841

Tieu thu nang lng thap , lam viec toc o cao va co kha nang phan kenh de dang nen ADS7841 c dung rat hu dung trong cac he thong o lng va ieu khien cong nghiep , kiem tra va o lng cac nguon nang lng vi o chnh xac cao . Ngoai ra do s dung giao tiep d lieu dang noi tiep nen ADS7841 thuan li trong viec trao oi d lieu t xa . ADS7841 bao gom 16 chan co s o chan c ve hnh tren . Nha san xuat bao am hoat ong tot trong tam nhiet o moi trng t-400C en +850C .

2/MO TA CHAN :

_1- +VCC:Chan cung cap nguon t 2.7V en 5V

_2- CH0:Ngo vao kenh 0

_3- CH1:Ngo vao kenh 1

_4- CH2:Ngo vao kenh 2

_5- CH3:Ngo vao kenh 3

_6- COM:Ground cua ngo vao analog , noi vi GND

che o n cc , che o visai noi vi

cc (

_7- SHDN :Khi tch cc (mc 0) IC se che o ngh ,

tieu thu rat t nang lng

_8- VREF:Ngo vao ap chuan

_9- +VCC:Chan cung cap nguon t 2.7V en 5V

_10- GND:Ground

_11- MODE:Chon che o chuyen oi , khi mc thap

luon la chuyen oi 12 bit , khi mc cao

che o chuyen oi c quyet nh bi

bit mode trong byte ieu khien (se noi

phan sau).

_12- DOUT:Ngo ra cua d lieu noi tiep , d lieu c

dch ra da tren xung clock DCLK. Ngo ra

nay se dang tong tr cao khi chan CS

mc 1.

_13- BUSY:Ngo ra nay se dang tong tr cao khi

chan CS mc 1.

_14- DIN:Ngo vao d lieu noi tiep , d lieu c a

vao da tren xung clock chan DCLK .

_15- CS:Tn hieu chon chip

_16- DCLK:Ngo vao xung clock, xung clock nay e

nhan biet d lieu c a vao (chan DIN)

hoac a ra(chan DOUT).

3/ KY THUAT IEU KHIEN :

Hnh tren la mot cach ket noi phan cng c ban cua ADS7841. Trong trng hp nay cac kenh chuyen oi luon dang n cc nen ta noi thang chan COM vi GND. ADS7841 c cung cap nguon n cc +5V, tu 0.1(F c dung e loc nguon cung cap . Chan SHDN luon c at mc 1 (noi vi VCC). Ap chuan cung cap cho chan VREF lay bang nguon VCC . Chan MODE c at mc 0 e chon che o chuyen oi 12 bit . Chan BUSY khog can s dung ti , cac chan DCLK, CS, DIN, DOUT c noi ti cac chan cua vi x l .

ADS7841 can c cung cap xung clock t ben ngoai thong qua chan DCLK, va mot ap chuan t ben ngoai vao chan VREF , ap chuan nay co the dao ong t +100mV en +VCC , nguon cung cap VCC t +2.7V ti +5.25V . Gia tr ap chuan se trc tiep at tam ngo vao cua bo bien oi . Dong ien chuan ngo vao phu thuoc vao toc o chuyen oi cua ADS7841 .

Ngo vao analog cua tn hieu can chuyen oi co the dang n cc hoac vi sai va c a vao mot trong bon kenh (CH0, CH1, CH2, CH3). ien ap nay phai nam trong tam t ien ap chuan VREF en ap cua chan COM(trong trng hp nay la at) hoac trong trng hp ap vi sai ta s dung hai trong bon kenh (CH0, CH1, CH2, CH3).

NGO VAO ANALOG:

Hnh tren la s o khoi cua khoi phan kenh ngo vao cua ADS7841. Ngo vao cua bo bien oi la ap cua mot trong bon kenh so vi chan COM hoac hai trong bon kenh nay . Hai bang sau se ch moi quan he gia cac bit A2, A1, A0 va bit ieu khien SGL/DIF trong viec phan kenh ngo vao analog .

ien ap n cc (trng hp bit SGL/DIF mc cao)

A2A1A0CH0CH1CH2CH3COM

001+IN

-IN

101

+IN

-IN

010

+IN

-IN

110

+IN-IN

ien ap vi sai (trng hp bit SGL/DIF mc thap)

A2A1A0CH0CH1CH2CH3COM

001+IN-IN

101-IN+IN

010

+IN-IN

110

-IN+IN

Nhng bit ieu khien nay c a tuan t thong qua chan DIN. Ta se thay giao tiep noi tiep nay mot cach chi tiet hn phan sau. Khi bo bien oi nhap vao che o lam viec , sai lech ien ap gia chan +IN va IN se c bao ve bi day tu ien co san trong ADS7841. ien ap ngo vao IN c gii han trong khoan t 0.2V en 1.25V. Ngo vao +IN co tam t 0.2V en VCC + 0.2V . Dong ien ngo vao cua tn hieu analog phu thuoc toc o chuyen oi cua ADS7841. Suot qua trnh lay mau nguon phai nap ien cho cac tu ien lay mau nam trong ADS7841 (khoang 25pF), sau khi tu ien nay c nap ien ay u no se giai phong ra mot dong ien ngo vao. Toc o nap t nguon analog ti bo chuyen oi th phu thuoc vao toc o chuyen oi.

NGO VAO AP CHUAN :

Nguon chuan ben ngoai a vao se at tam cho ngo vao can chuyen oi . ADS7841 se ieu khien ien ap chuan nay trong tam t 100mV en +VCC . Phai gi sai lech ien ap analog cua 2 chan ngo vao can chuyen oi +IN va IN trong khoang cho phep . V du nh trong che o n cc vi ien ap chuan la 1.25V , va vi chan COM c noi at th kenh ngo vao c chon ( CH0, CH1, CH2, CH3 ) phai nam trong tam t 0V en 1.25V . Neu chan COMc ket noi vi 0.5V th tam ap vao cua kenh c chon se t 0.5V en 1.75V.

Co mot vai van e ve cach nh chuan ap ngo vao. Khi ap chuan c cung cap khong phai la c so cua 4096 ( 212) th vi cung lng ien ap ngo vao analog can o , gia tr cua ngo ra (dang so) se b giam xuong . ieu nay rat thng xay ra bit co trong so thap nhat (LSB). Do o khi s dung ap chuan la nhng con so nay ta phai bu lai lng a mat i. V du nh khi s dung ap chuan la 2.5V th ta phai bu lai 2LSBs ( tc phai cong 2 vao gia tr (dang so) ngo ra cua bo bien oi. Khi s dung ap chuan la 0.5V th ta phai bu lai 10LSBs.

Trong moi trng hp nay gia tr bu lai khoang 1.22mV. nhng trng hp khong can thiet phai dung ap chuan nho ta nen s dung ap chuan la 4.095mV, ieu nay se lam giam sai so cua qua trnh chuyen oi ong thi giup ta de dang tnh c gia tr ap ngo vao can o (1 LSB bang 1mV).

Tng t nh tren th nhieu cua ngo ra se tang khi gia tr cua mot LSB thap. Vi ien ap chuan la 100 mV th gia tr cua moi LSB se la 24(V. ay la mc thap so vi cac loai nhieu co trong thiet b. Ket qua la ngo ra (dang so) se khong on nh va se thay oi xung quanh mot gia tr chnh bang mot so LSBs. Vi ap chuan thap ta can phai mac mot tu bypass e loc nguon , ap chuan cung cap phai t nhieu, tn hieu ngo vao can o phai t nhieu.

ien ap chuan a vao chan VREF se khong c em ma trc tiep lai cac tu ien co chc nang bien oi AD cua ADS7841, cu the la dong ien i vao la 13(A ng vi ap chuan 2.5V. Dong chuan nay se trc tiep lam giam toc o chuyen oi lan ien ap chuan.

X L GIAO TIEP SO

tACQ

CS

1

8 1

8 1

8

DCLK

1 2 3 4 5 6 7 8

DIN

BUSY

1110 9 8 76 5 4 3 2 1 0

(MSB)

(LSB)

DOUT

Gian o thi gian cua mot s chuyen oi trong 24 chu ky xung clock

Hnh tren ch ra cach ieu khien c ban cua viec x l so cua ADS7841. Gian o tren mo phong nguon cua tn hieu so la cac chan Port cua mot vi ieu khien hoac mot bo x l tn hieu so vi giao tiep noi tiep c ban ( chu y rang tn hieu so i vao khong c vt qua 5.5V). Trong moi lan giao tiep gia vi x l va bo ieu khien bao gom tam chu ky xung clock. Mot chuyen oi c hoan tat co the bao gom ba lan giao tiep noi tiep , trong tong 24 chu ky xung clock tren ngo vao DCLK. Tam xung clock au tien c s dung e cung cap byte ieu khien c a vao chan DIN. Khi bo chuyen oi co u thong tin cho qua trnh chuyen oi sap ti e at kenh ngo vao , che o chuyen oi. Sau khi byte ieu khien c hoan thanh th 12 xung clock ke tiep se la ket qua chuyen oi analog sang digital, xung clock th 13 cho bit cuoi cung cua ket qua chuyen oi . Ba xung clock ke tiep can thiet e hoan thanh byte cuoi cung (DOUT se mc thap). Nhng xung clock nay se c bo chuyen oi bo qua.

BYTE IEU KHIEN:

Phan tren ta a biet viec chon cac thong so cho bo chuyen oi c thong qua byte ieu khien, ta se xem xet chi tiet ve cac chc nang cua tng bit trong byte ieu khien nay. Bit au tien la S bit (start bit) phai luon mc cao va bao hieu cho s bat au cua byte ieu khien . ADS7841 se bo qua nhng gia tr ngo vao tren chan DIN cho en khi bit S c xac lap. Ba bit ke tiep (A2 en A0) e chon kenh ngo vao can chuyen oi . Cac thong tin chi tiet ve ba bit nay a c trnh bay phan tren.

MODE bit va chan MODE co quan he vi nhau e at so bit cho mot lan chuyen oi . Neu chan MODE mc thap th bo chuyen oi luon lam viec che o 12 bits ma khong phu thuoc vao trang thai cua bit MODE trong byte ieu khien . Neu chan MODE mc cao th bit MODE se quyet nh so lng bit trong moi lan chuyen oi , cu the la khi bit MODE bang 0 tng ng la chuyen oi 12 bits , bang 1 tng ng la chuyen oi 8 bits.

Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0

S A2 A1 A0 Mode Sgl/Dif PD1 PD0

(MSB)

(LSB)

Th t cua nhng bit ieu khien trong byte ieu khien

Bit Sgl/Dif la bit chon che o ngo vao can o, cu the la khi mc cao la chon che o ngo vao n cc , mc thap la chon che o vi sai , che o n cc kenh ngo vao c chon la chenh lech ap so vi chan COM., che o vi sai hai ngo vao vi sai c cho bi hai trong bon kenh (CH0 en CH4) tuy thuoc vao cac bit A2, A2, A0 nh a noi phan tren.

Hai bit cuoi cung PD1 va PD0 chon che do s dung cong suat nguon , bang di ay ch ra chi tiet ve hai bit nay. Neu ca hai bit mc cao th dung cu luon tieu thu cong suat , neu ca hai bit mc thap th dung cu se khong tieu thu cong suat gia hai lan chuyen oi . Khi mot chuyen oi mi c bat au , dung cu se lay lai trang thai hoat ong bnh thng, khong can thiet phai tr hoan e cho phep dung cu bat nguon va ngay lan chuyen oi au tien se co hieu lc.

PD1PD2

Mieu ta

00

Cong suat se tat gia hai lan chuyen oi , sau

moi lan chuyen oi ket thuc , bo bien oi se

nhap vao che o cong suat thap, lan chuyen

oi ke tiep thiet b se t nap lai nguon ay u.

01

Danh cho lan s dung sau

10

Danh cho lan s dung sau

11

Khong tat cong suat nguon gia hai lan chuyen

oi , dung cu luon tieu thu cong suat.

Phan tren ta a xem xet chuyen oi AD trong 24 chu ky xung clock, o la chuyen oi c ban. Nham lam tang toc o chuyen oi cua ADS7841 ta se xet chuyen oi trong 16 chu ky xung clock.

CHUYEN OI TRONG 16 CHU KY XUNG CLOCK :

Nhng bit ieu khien chuyen oi th n+1 co the c a vao trong chuyen oi th n trong moi 16 chu ky xung clock, gian o thi gian di se ch ro ieu nay. Gian o cung ch ra cach giao tiep noi tiep vi vi x l moi byte c dch ra gia viec x l va chuyen oi.

Cac thong so thi gian ac biet :

Ky hieu

Min

Max

n v

tACQ

900

ns

tDS

50

ns

tDH

10

ns

tDO

100

ns

tDV

70

ns

tCSS

50

ns

tCSH

0

ns

tCH

150

ns

tCL

150

ns

tBD

100

ns

tBDV

70

ns

tBTR

70

ns

Gian o thi gian cho chuyen oi 16 chu ky xung clock

CS

1

8 1

8 1

8

DCLK

S Control bit

S Control bit

DIN

BUSY

1110 9 8 7 654 3 2 1 0

DOUT

Nh vay thi gian toi thieu cho mot chu k lay mau la:

TMIN24 = 50 + 24*(150+150) + 70 = 7320 ns

TMIN16 = 50 + 16*(150+150) + 70 = 5000 ns

Gian o thi gian chi tiet

CS

tCSS

tCH tCL

tCSH

tDS tDH DCLK

DIN

tBDV

tBD

tBTR

BUSY

tDV

11 10 ---

DOUT

NH DANG D LIEU :

D lieu ngo ra cua ADS7841 c nh dang bang so nh phan nh hnh sau :

D lieu ngo ra

11. . .111

11. . .110

11. . .101

00. . .010

00. . .001

00. . .000

ap ngo vao

0V

VREF

1LSB = VREF/4096 CHUYEN OI 8-BIT:

Ngoai che o chuyen oi AD 12 bit ADS7841 con cung cap cho ngi s dung che o chuyen oi 8 bit . Che o nay can thiet khi ngi s dung muon tang toc o chuyen oi va ket qua d lieu ngo ra khong can phai that chnh xac. Khi s dung che o nay mot chuyen oi se hoan thanh sm hn bon chu ky xung clock.

Co ngha la la trong giao tiep noi tiep vi vi x l th chan DOUT se c dch ra 12 bit. Khong nhng thi gian c rut ngan bang viec bt i 4 chu ky xung clock (nhanh hn 25%) ma toc o chuyen oi co the rut ngan bang cach tang toc o cua xung clock nhanh hn 50%. Ca hai ieu nay giup chung ta co the tang khoang gap oi toc o chuyen oi.

IEU KHIEN NGUON CUNG CAP:

Co ba che o ieu khien nguon cung cap cho ADS7841: che o ay (PD1-PD0 = 11B) , t ong tat (PD1-PD0 = 00B), va che o ngh (chan SHDN mc thap). S hu dung cua ba che o nay tuy thuoc vao viec ADS7841 c ieu khien nh the nao. V du nh toc o chuyen oi cao va chuyen oi che o 16 chu ky xung clock ch co s khac biet rat nho gia che o ay va che o t ong tat nguon, tng t nh the neu ADS7841 c nhap vao che o t ong tat nguon th khi shutdown (chan SHDN mc thap ) th hau nh khong co s khac biet .

Khi ieu khien toc o cao va che o chuyen oi 16 chu ky xung clock , ADS7841 s dung hau het thi gian co c vao viec chuyen oi do o co rat t thi gian cho viec t ong tat nguon , che o nay hau nh luon tch cc. Tc la s khac biet gia che o ay va che o t ong tat nguon hau nh la nh nhau.

Neu toc o chuyen oi c giam xuong bang cach n gian la giam tan so cua ngo vao xung clock (DCLK) hoac van duy tr DCLK toc o cao nhng giam so lan chuyen oi trong 1 giay, trong trng hp nay bo bien oi se tang t le thi gian che o tat nguon ( noi chung la che o t ong tat nguon se tch cc). Tuy nhien dung cu van tiep tuc b hao ph nang lng cac chan logic khac, ta co the giam toi a bang cach gi CS mc cao.

B/AP DUNG VAO LUAN VAN:

1/KET NOI PHAN CNGMach giao tiep gia ADS7841 vi vi x l 8951

Cap nguon n +5V cho ADS7841, noi cac chan DCLK, CS, DIN, DOUT cho cac chan P1.0, P1.1, P1.2, P1.3 , ta khong can thiet dung chan BUSY , chan MODE luon mc 0 tc la ta luon chon che o chuyen oi 12 bits , chan SHDN luon mc 1 tc la ta khong dung en kha nang Shutdown cua ADS7841 (chan SHDN tch cc mc thap )

ien ap chuan VREF a vao la 4.095V c tao bi LM431.

2/PHAN MEM IEU KHIEN:

Ta viet di dang chng trnh con ADC , chng trnh con nay se

lay cac thong so cua AD ( kenh chuyen oi , che o vi sai hay n cc...)

t o nh 21H cua vi x l , gia tr mac nh cua o nh nay la 94H ( tc la chon kenh 0 , che o n cc , bat che o t ong tat nguon), gia tr nay ngi s dung co the thay oi bang viec truyen lenh t may tnh ti vi x l , chuyen oi trong chng trnh con nay la chuyen oi trong 24 chu ky xung clock. Sau khi thc hien xong chng trnh con nay gia tr chuyen oi se c lu vao hai thanh ghi A va B (B cha 4 bit cao , A cha 8 bit thap ).

LU O GIAI THUAT

Lap 8 lan

Lap 4 lan

Lap 8 lan

Lap 3 lan

ADC:

CLR

P1.1

; chon chip ADS7841

MOV

A,21H; lay byte ieu khien

MOV

R7,#8

; dch 8 lan

NHAPDIN:

RLC

A

; a bit ieu khien vao

MOV

P1.2,C; chan DIN

CLR

P1.0

; nhap xung cho DCLK

SETB

P1.0

; nhap xung cho DCLK

DJNZ

R7,NHAPDIN

CLR

P1.0

; nhap xung cho DCLK

SETB

P1.0

; nhap xung cho DCLK

MOV

R7,#4

; lay ra 4 bit cao

LOOPAD1:

CLR

P1.0

; nhap xung cho DCLK

SETB

P1.0

; nhap xung cho DCLK

MOV

C,P1.3; lay gia tr ra

RLC

A

; dch gia tr vao A

DJNZ R7,LOOPAD1

ANL

A,#0FH; xoa nible cao

MOV

B,A

; B cha 4 bit cao

MOV

R7,#8

; dch 8 lan

LOOPAD2:

CLR

P1.0

; nhap xung cho DCLK

SETB

P1.0

; nhap xung cho DCLK

MOV

C,P1.3

RLC

A

DJNZ

R7,LOOPAD2

MOV

R7,#3

; tao 3 xung cuoi

CUOI: CLR

P1.0

; nhap xung cho DCLK

SETB

P1.0

; nhap xung cho DCLK

DJNZ

R7,CUOI

CLR

P1.0

;cho DCLK ve 0

SETB

P1.1

; khong chon chip ADS7841

RET

Tnh thi gian thc hien chng trnh con tren:

T = 3 + 6*8 + 3 + 6*4 + 3 + 6*8 +1 + 4*3 + 4

= 3 + 48 + 3 + 24 + 3 + 48 +1 +12 +4 = 146 TM

CHUYEN OI DA DUNG DAC7611

Chuyen oi tn hieu Digital sang tn hieu Analog la qua trnh quan trong trong viec ieu khien he thong ieu khien t ong. Ta khong s dung IC DAC0808 quen thuoc v mot so nhc iem cua no la o chnh xac khong cao (chuyen oi 8 bit), giao tiep d lieu dang song song do o ton nhieu chan port cua vi x l (hoac phai s dung dang giao tiep qua data bus).

Trong luan van nay ta s dung IC DAC7611 cua hang BURR-BROWN. So vi DAC0808 th DAC7611 co o chnh xac cao hn 16 lan (chuyen oi 12 bit, o phan giai la 1mv), ngoai ra giao tiep d lieu cua DAC7611 dang noi tiep nen ton t chan port. Ta co the ch can s dung 3 chan port. . Trc khi ap dung vao he thong ta gii thieu s lc ve DAC7611.

A/ S LC VE DAC7611

1/ GII THIEU :

DAC7611 la IC chuyen oi Digital sang Analog 12 bit cua hang BURR-BROWN , s dung nguon n +5V . Co the cung cap cong suat 2.5mw (0.5ma 5V) . Ngo ien ap ra se thay oi 1 LSB trong 7(s . D lieu giao tiep vi cac chan cua Port cua vi x l la dang giao tiep noi tiep bao gom cac chan xung clock (CLK), chan d lieu vao (SDI) , chan nap d lieu (LD), chan chon chip (CS) , va chan xoa (CLR). Hoat ong nhiet o t 40o C en +80o C .

Nguon cung cap cho DAC7611 nen c bypass bi mot tu loc gia tr khoang 0.1 (F . Do DAC7611 s dung nguon n +5V ch co mot chan GND nen tat ca cac dong ien bao gom dong ien so va dong ien analog eu c o ve chan nay . Do o chan GND nen c ket noi trc tiep en ground cua analog. ien ap cung cap ti VDD phai c ieu chnh tot va t nhieu.

DAC7611 c s dung trong nhieu lnh vc nh :

_ ieu khien qua trnh

_ Cac he thong thu thap d lieu

_ ieu khien cac he thong tuy ong vong kn . . .

2/ MO TA CHAN :

- 1VDD

:Nguon cung cap .

2CS

:Tn hieu chon chip .

- 3CLK

:Xung clock e trao oi d lieu .

- 4SDI

:Ngo vao cua d lieu noi tiep (12 bit).

D lieu c a vao thong qua xung clock CLK

5LD

:oc d lieu t thanh ghi noi Dac . Thanh

ghi Dac se c chuyen oi LD mc thap (trong trng hp CS mc thap.

- 6CLR

:Xung xoa thanh ghi Dac , khi CLR mc

thap thanh ghi DAC c at gia tr 000H,

ien ap ngo ra bang 0V.

- 7GND

:at.

- 8Vout

: ien ap chuyen oi ngo ra , tam ien ap t

0V en 4.095V ( 1mv/LSB ),Gia tr nay se c duy tr cho en lan chuyen oi ke.

Cau tao tng ng cua cac ngo vao Logic trong DAC7611

CLR o

o o

LD o

o o

SDI o

o o

CS o

CLKo

BANG CAC THONG SO HOAT ONG CUA DAC7611

ien ap hoat ong chuan VDD :

+5V

Sai so ien ap cho phep :

5% (+4.75V en 5.25V)

Dong i vao chan VDD, IDD :

0.5ma

Congsuat hoat ong :

2.5mw

Cong suat a vao toi a :

325mw

Ngo vao so so vi at :

-0.3V en VDD+0.3V

ien ap ra so vi at :

-0.3V en VDD+0.3V

Nhiet o cao toi a :

+1550C

Nhiet o thap toi thieu :

-650C

Tam nhiet o hoat ong bnh thng:-400C en 850C

Thi Gian thay oi ien ap ngo ra khi

thay oi 1 LSB ngo vao :7(s

3/ HOAT ONG :

Hnh tren ch cach ket noi c ban gia Vi x l vi DAC7611 . Giao tiep gom mot tn hieu chon chip (CS), tn hieu xung clock noi tiep (CLK) , d lieu noi tiep (SDI) , va mot tn hieu nap (LD). Bon tn hieu nay ta co the a vao 4 chan port cua Vi x l .Tn hieu CLR luon c at mc mot .D lieu c nh dang he nh phan va bit au tien la bit co trong so ln nhat (MSB). Tam ien ap ra t 0V en 4.095V, ay la bien oi DA 12 bit nen o phan giai se la 1mv (212 = 4095) .

Ma nh phan ngo vao

ien ap ngo ra (V)

FFFH

+ 4.095

801H

+2.049

800H

+2.048

7FFH

+2.047

000H

0

Bang chuyen oi d lieu cua DAC 7611

D lieu so a vao trong DAC7611 c cha trong 2 bo em . ieu nay co ngha la d lieu mi co the c nhap vao DAC ma khong co b chen len d leu cu va ien ap ra cua s chuyen oi . Tai thi iem sau khi d lieu c nhap vao thanh ghi dch , d lieu nay co the c a vao thanh ghi DAC . Qua trnh chuyen oi nay se hoan tat khi chan LD c chuyen t mc cao sang mc thap (1 sang 0). Neu d lieu mi c dch vao thanh ghi dch trong khi LD mc thap th ien ap ra se thay oi sau moi bit c dch vao . e ngan nga ieu nay chan LD phai c tra ve mc cao trong khi ta dch d lieu mi vao.

bat ky thi iem nao gia tr cua thanh ghi DAC eu co the c at gia tr 000H (ien ap ra bang 0) bang viec cho chan CLR xuong mc thap. Thanh ghi DAC se duy tr gia tr nay cho en khi chan CLR tr lai mc cao va chan LD phai mc thap e cho phep gia tr cua thanh ghi dch c chuyen vao thanh ghi DAC . Neu LD mc thap trong khi CLR mc thap thanh ghi DAC se c at gia tr la 000H va ien ap ra se bang khong. Khi CLR tr lai mc cao , thanh ghi DAC se se lay gia tr trong thanh ghi dch va ien ap ra se tng ng gia tr nay .

GIAN O THI GIAN

(MSB)

(LSB)

tCL

SDI

tCH

CLK

tCSS

tCSH

CS

tLD1

tLD2

tLDW

LD

tCLRW

CLR

BANG CAC HANG SO THI GIAN

Ky hieu

Mieu ta

Thi gian nho nhat

tCH

o rong xung clock cao

30ns

tCL

o rong xung clock thap

30ns

tLDW

o rong xung LD

20ns

tCLRW

o rong xung CLR

30ns

tLD1

Thi gian trc khi nap

15ns

tLD2

Thi gian gi d lieu

10ns

tCSS

Thi gian tre khi chon chip

30ns

tCSH

Thi gian tre khi khong chon chip20ns

BANG CHAN TR

CS CLK CLR LD THANH GHI DCH THANH GHI DAC

H X H H Khong oi

Khong oi

L L H H Khong oi

Khong oi

L H H H Khong oi

Khong oi

L ( H H a ra mot bit

Khong oi

( L H H a ra mot bit

Khong oi

H X H ( Khong oi

Thay oi ti gia tr

cua thanh ghi dch

H X H L Khong oi Chuyen oi ra ap

H X L X Khong oi

Nap gia tr 000H

H X ( H Khong oi

Nap gia tr 000H

( : Tch cc canh len .

( : Tch cc canh xuong .

X : Trang thai tuy y .

_ Chu y : Neu d lieu c a ti thanh ghi dch trong khi LD mc thap th ien ap ngo ra se thay oi .

B/ AP DUNG VAO LUAN VAN 1/ KET NOI PHAN CNG

a cac chan CS , CLK , SDI , LD , lan lt ti cac chan P1.7 , P1.6 , P1.5 va P1.4 cua vi x l 8951. Chan CLR luon c at mc logic 1 (noi vi nguon ).

2/ PHAN MEM IEU KHIEN

Dung chc nang soan thao van ban co trong NC e viet chng trnh cho vi x l 8951. ay ta se viet chng trnh con chuyen oi DA c at ten la DAC.

Gia s gia tr can chuyen oi 12 bit c cha trong hai thanh ghi B(4 bit cao) va A(8 bit thap). Chng trnh con DAC se lay gia tr trong 2 thanh ghi nay e chuyen oi .

Tnh thi gian thc hien chng trnh con tren (TDAC):

TDAC = 7 TM + 4*6 TM + 2 TM +8*6 TM +4 TM

= 85 TM

LU O GIAI THUAT

Lap 4 lan

Lap 8 lan

Chng trnh con DAC nap cho 8951

DAC:

PUSHACC ; Cat A vao Stack

MOV

A,B

SWAPA

; Chuyen oi 2 nible

SETB

P1.4

; Cho LD mc 1

CLR

P1.7

; Chon DAC7611

MOV

R7,#4

; Lay 4 bit cao

LOOPDA1:

RLC

A

; Dch bit data vao C

MOV

P1.5,C; a data vao SDI

CLR

P1.6

; Tao xung cho CLK

SETB

P1.6

; Tao xung cho CLK

DJNZ

R7,LOOPDA1

POP

ACC

; Phuc hoi A

MOV

R7,#8

; Lay 8 bit cao

LOOPDA2:

RLC

A

; Dch bit data vao C

MOV

P1.5,C; a data vao SDI

CLR

P1.6

; Tao xung cho CLK

SETB

P1.6

; Tao xung cho CLK

DJNZ

R7,LOOPDA2

CLR

P1.4

; Cho phep chuyen oi

SETB

P1.7

; Khong chon DAC7611

RET

TRUYEN THONG NOI TIEP VI VISUAL BASIC

A/ S LC VE TRUYEN THONG NOI TIEP

Trong phan nay ta se tm hieu ve cach thc truyen va nhan d lieu t may tnh vi vi x l 8951 thong qua cong COM ( d lieu dang noi tiep) bang ngon ng Visual Basic.

Bnh thng khi cho chay phan mem Visual Basic ta ch thay mot so thanh phan quan thuoc tren thanh cong cu (toolbar) . Nhng Visual Basic con cho phep nhieu thanh phan co the c bo sung them vao . Hop cong cu Microsoft Comm cua Visual Basic la mot trong nhieu cong cu co the c bo sung vao e tham gia vao cac ng dung chuyen nhan d lieu qua cong noi tiep .

Nh vay ngoai viec s dung cac tep DLL, trong Visual Basic con co san cac hop ieu khien khac, MSComm la mot trong cac hop ieu khien o. Ban than Visual Basic co rat nhieu hop ieu khien ma ta ch goi ra khi co mot ng dung can en no. ieu khien truyen thong MSComm can dung cho cac ng dung ghep noi qua cong noi tiep.

Ta co the bo sung hop cong cu nay vao thanh cong cu bang cach chon muc Project ,sau o chon tiep muc Component, tren man hnh se hien ra bang cha nhieu hop cong cu, chon muc Microsoft Com Control.

Bieu tng cua hop cong cu nay nh hnh sau:

Khi o bieu tng nay se xuat hien tren thanh cong cu (toolbar). e s dung hop cong cu nay ta phai co cac tap tin MSCOMM16.OCX hoac MSCOMM32.OCX

Co hai kha nang e ieu khien viec trao oi d lieu o la ieu khien s kien va hoi vong

ieu khien s kien :

Phng phap ieu khien s kien la phng phap tot nhat c s giai phong may tnh e lam nhng cong viec khac , tng t nh khai niem ngat trong vi x l 8951. V du nh s kien Oncomm cho phep ta biet c khi nao co mot k t c gi ti trong qua trnh ieu khien viec trao oi d lieu noi tiep, ngoai ra con cho phep phat hien va ieu khien cac loi khi truyen d lieu.

Hoi vong :

Ngoai phng phap ieu khien s kien tren ta co the hoivong cac s kien va loi bang cach kiem tra gia tr cua ac tnh ComEvent sau moi chu k cua chng trnh e xac nh xem lieu mot s kien hay mot loi a xuat hien cha. Chang han chng trnh co the tao vong lap e ch mot k t can c nhan . C moi lan nh vay , k t c oc t bo em nhan . Do may tnh luon trang thai lap vong ch nhan lenh nen trong thi gian cha co k t c nhan vao may tnh van khong lam c cong viec nao khac , do o phng phap nay ch s dung cho cac ng dung ma khong can lam viec khac khi cha co k t c nhan vao.

B/ CAC AC TNH CUA MSCOMM

Hop cong cu c bo sung vao form bat c khi nao can en viec truyen thong noi tiep. Theo mac nh cong th nhat tao ra oi tng co ten MSComm1, oi tng ng vi cong th hai c goi la MSComm2, . .

Cac ac tnh chnh cua oi tng nay la :

Comport

: at va tra lai so cong truyen thong

Input(nhap vao): Tra lai va loai bo cac k t khoi bo em nhan

Output (xuat ra): Viet mot xau k t vao bo em truyen

Portopen

: M ong mot cong (tuy thuoc vao thong so

True hoac False

Settings

: at va tra lai cac thong so truyeng thong noi

tiep nh toc o baud ,truyen theo bit chan, le,

so cac bit d lieu . . .

V du sau ay ch ra cach truyen thong qua cong noi tiep co the c tien hanh nh sau :

Tao mot form cha hop cong cu MSComm , chng trnh a vao form_load nh sau :

Private Sub Form_load( )

Dim Instring as String

Dung Com1

MSComm1.Comport = 1

Toc o baud la 9600, khong bit cha le, 8 bit d lieu, 1 bit top

MSComm1.Settings = 9600,N,8,1

oc het bo em khi lenh input c dung

MSComm1.Inputlen = 0

M cong

MSComm1.Portopen = True

Xuat chuoi HUY ra cong noi tiep

MSComm1.Output =HUY

i d lieu tr lai cong noi tiep

Do

Dummy = DoEvent()

Loop Until MSComm1.InbufferCount >= 2

oc d lieu ve

Instring = MSComm1.Input

ong cong noi tiep

MSComm1.Portopen = False

End Sub

Sau ay ta se tm hieu k mot so at tnh quan trong cua viec ieu khien truyen thong noi tiep :

1/ SETTINGS

Cac ac tnh Settings at va tra lai thong so cho cong truyen thong cho cong RS232, nh toc o baud, kiem tra cha le, so bit d lieu va so cac bit stop . Cu phap cua lenh nay la :

MSComm1. Setting = String

Neu String khong co khi m cong th ieu khien truyen thong se phat sinh ra loi .

String la mot xau k t co cha bon thong so thiet lap cho cong

RS-232 va co dang nh sau :

BBBB, P, D, S

Trong o BBBB xac nh toc o Baud, P la bit ch tnh chan le, D la so bit d lieu , va S la so cac bit dng ( bit stop ). Gia tr mac nh cua chuoi String nay la:

9600, N, 8, 1

Lu y rang toc o baud phai c at theo mot tieu chuan nhat nh khong phai tuy y chon cac gia tr bat k. Bang sau ay liet ke cac gia tr toc o baud hp le :

* 110

* 9600

* 18800 (d tr)

* 300

* 14400

* 25600 (d tr)

* 600

* 19200

* 1200

* 38400 (d tr)

* 2400

* 56000 (d tr)

Bang sau ay liet ke cac gia tr chan le hp le :

E

Event (chan)

M

Mark (dau)

N

None (khong kiem tra chan le , mac nh)

O

Odd (le)

S

Space (trong)

Bang sau ay liet ke so bit d lieu hp le trong mot lan truyen (khung truyen) :

4

5

6

7

8 (mac nh)

Bang sau ay liet ke so bit stop hp le :

1

1.5

2

Ta xet mot v du can at thong so cho cong truyen toc o baud la 4800, khong kiem tra bit chan le, 8 bit d lieu va 1 bit stop :

MSComm1.Setting = 4800, N, 8, 1

2/ CommPort

ac tnh nay at va tra lai cong truyen thong so may. Cu phap cua cau lenh nay la :

MSComm1.CommPort = PortNumber

Gia tr mac nh cua PortNumber la1. Trc khi muon s dung viec truy xuat d lieu qua cong Com ta phai dung lenh e thiet lap cong bang ComPort. Neu ta cha thiet lap cong bang ComPort ma a phat lenh oc va nhan d lieu th ieu khien truyen thong se sinh ra loi .

3/ PortOpen

ac tnh PortOpen nay at va tra lai trang thai cua cong tuyen thong (ong hoac m). Cu phap cua cau lenh nay la :

MSComm1.PortOpen ={True / False}

Thong so thiet lap la True tng ng vi m cong, con False tng ng vi ong cong va xoa noi dung cac bo em nhan va bo em truyen ( tac ong nay t ong xay ra khi mot ng dung c ong ). Trc khi s dung ac tnh nay phai at cong so may bang ac tnh ComPort , neu khong se phat sinh loi .

4/ Nhap d lieu :

Co ba ac tnh chnh c s dung e oc d lieu t bo em nhan la Input, InBufferCount va InBufferSize

Input (nhap vao)

ac tnh Input tra lai va xoa bo mot xau k t t bo em nhan . Cu phap cua cau lenh nay la :

MSComm1.Input

i kem vi ac tnh nay la ac tnh Inputlen quy nh so k t c oc bi cau lenh Input. at Inputlen = 0 e oc toan bo noi dung cua bo em nhan.

V du sau ay ch ra cach lay d lieu t bo em nhan

MSComm1.Inputlen = 0

If MSComm1.InBufferCount >= 1 then

Instring = MSComm1.Input

End If

Kieu d lieu c lay ra t ac tnh Input tren la xau k t (String).

InBufferSize

ac tnh InBufferSize at va tra lai kch thc cua bo em nhan, tnh theo byte. Cu phap cua cau lenh nay la:

MSComm1.InBufferSize = [numberbyte]

ac tnh nay co lien quan en kch thc cua bo em nhan. Gia tr mac nh la 1024 byte (1 Kbyte ). Kch thc cua bo em

nhan phai c at sao cho co the cat gi c so ln nhat cua cac k t se c nhan trc khi chng trnh ng dung co the oc chung t bo em. Kieu d lieu cua ac tnh nay la so nguyen (Integer).

InBufferCount

ac tnh InBufferCount tra lai so k t trong bo em nhan.

No cung co the c s dung e xoa bo em nhan bang cach

at so cac k t bang 0. Cu phap cua cau lenh nay la:

MSComm1.InBufferCount = [count]

Kieu d lieu cua ac tnh nay la so nguyen (Integer).

5/ Xuat d lieu

Co ba ac tnh chnh c s dung e viet d lieu vao bo em truyen (tc truyen d lieu ra ngoai qua chan TXD) la Output , OutBufferCount va OutBufferSize

Output

ac tnh Output se viet mot xau k t vao bo em truyen . Cu phap cua cau lenh nay la:

MSComm1.Output = [Outstring]

V du sau ay cho biet cach gi mot xau k t ma ngi dung go

vao t ban phm ti cong noi tiep

Private Sub Form_Load (KeyAscii as Integer)

MSComm1.output = Chr (KeyAscii)

End Sub

OutBufferSize

ac tnh OutBufferSize at va tra lai kch thc cua cac k t trong bo em truyen. Cu phap cua cau lenh nay la :

MSComm1.OutBufferSize = [numberbyte]

Gia tr mac nh cua ac tnh nay la 512 byte (1/2 Kbyte). Lu y rang khong nen e kch thc bo em truyen qua ln . Tuy nhien neu e qua nho th se xay ra tnh trang tran d lieu. Thong thng nen bat au vi kch thc bo em truyen la 512 byte. Neu loi tran xay ra th phai tang kch thc bo em truyen len cho thch hp vi ng dung.

OutBufferCount

ac tnh OutBufferCount tra lai so k t trong bo em truyen. Ta cung co the s dung ac tnh nay e xoa noi dung bo em truyen bang cach ac gia tr cua ac tnh nay bang 0. Cu phap cua cau lenh nay la:

MSComm1.OutBufferCount = [count]

Lu y rang khong nen nham lan gia 2 ac tnh OutBufferSize va OutBufferCount . ac tnh OutBufferCount noi len so byte hien ang co trong bo em nhan , con OutBufferSize quy nh tong kch thc cua bo em truyen.

6/ Cac ac tnh khac

Ngoai cac ac tnh quan trong tren con co cac ac tnh khac cung can quan tam la:

Break

ac tnh nay at hoac xoa trang thai tn hieu Break. Cu phap cua cau lenh nay la :

MSComm1.Break = [True/ False]

at gia tr Break = True e thiet lap trang thai tn hieu Break

con at gia tr Break = False e xoa trang thai tn hieu Break. Khi at la True th ac tnh Break gi i tn hieu Break, tn hieu nay lam dng viec truyen cac k t va at chung tren ng truyen trong trang thai Break. Qua trnh nay ch ket thuc khi ta at gia tr ac tnh Break thanh False.

CDTimeout

ac tnh CDTimeout at va tra lai gia tr cc ai cua thi gian (tnh bang mili giay). ay la khoang thi gian ieu khien i tn hieu phat hien c tn hieu mang trc mot timeout (qua gi).ac tnh nay ch ra thi gian vt qua bang viec at thong so ac tnh CommEvent thanh CDTO va phat sinh s kien OnComm. Cu phap cua cau lenh nay la :

MSComm1.CDTimeout = [milisecond]

Khi ng dan CD cuong mc thap (CTSHolding = False) va

So miligiay ch khoang thi gian i tn hieu a het th ieu khien truyen thong at ac tnh CommEvent thanh CDTO va phat sinh s kien OnComm.

CTSHolding

ac tnh CTSHolding cho phep cac nh xem ng CTS a c phat hien hay cha. ng dan CTS c s dung ien hnh cho bat tay bang phan cng . V du nh tn hieu CTS c gi i t modem en may tnh e ch ra rang s chuyen giao d lieu co the c x l . Cu phap cua cau lenh nay la :

MSComm1.CTSHolding = [True/ False]

at gia tr cua ac tnh nay bang True e a CTS xuong mc thap. ng CTS c dung trong che o bat bang phan cng. Neu muon xac nh trang thai cua ng CTS th ac tnh CTSHolding cho phep ta hoi vong ng CTS.

DSRHolding

Xac nh trang thai ng dan DSR . DSR c s dung ien hnh e bao hieu s co mat cua mot modem. Neu nh thong so c at la True th ng dan DSR mc cao , neu khong th la thap. Cu phap cua cau lenh nay la:

MSComm1.DSRHolding = [True/ False]

DSRTimeout

at va tra lai so mili giay e ch i tn hieu DSR trc khi s kien OnComm xuat hien . Cu phap cua cau lenh nay la :

MSComm1.DSRTimeout = [mili giay]

CTSTimeout

ac tnh CTSTimeout at va tr3 lai so mili giay i tn hieu CTS trc khi at ac tnh CommEvent thanh CTSTO va phat sinh s kien OnComm. Cu phap cua cua cau lenh nay la:

MSComm1.CTSTimeout = [mili giay]

DTREnable

ac tnh nay xac nh xem lieutn hieu DTR c cho phep . Thong thng tn hieu nay c gi t may tnh ti modem e bao hieu la may tnh a san sang nhan d lieu. Thong so c at la True se cho phep ng dan DTR (at len mc cao). Cu phap cua cau lenh nay la:

MSComm1.DTREnable = [True/ False]

RTSEnable

ac tnh nay cho phep xac nh xem ng RTS a c phep (tch cc) hay cha. V du nh tn hieu RTS yeu cau s cho phep truyen d lieu t may tnh en modem. Bnh thng tn hieu nay c s dung e bat tay au vao d lieu va c ieu khien bi may tnh. Cu phap cua cau lenh nay la:

MSComm1.RTSEnable = [True/ False]

Xac lap ac tnh nay bang True e a ng RTS len mc tch cc (trang thai cho phep), ngoc lai (cung la mac nh) xac lap bang False e a ng RTS xuong mc khong tch cc. ng RTS c dung cho viec bat tay phan cng nh tn hieu RTS/CTS. ac tnh RTSEnable cho phep hoi vong ng RTS khi ta can xac nh trang thai cua no.

NullDiscard

ac tnh nay xac nh cac k t rong (Null) c oc vao trong bo em nhan. Thong so c at la True th cac k t Null khong oc chuyen en bo em nhan, neu at la False th cac k t Null se c chuyen en bo em nhan. K t Null c nh ngha vi ma ASCII = 0. Cu phap cua cau lenh nay la:

MSComm1.NullDiscard = [True/ False]

Sthreeshold

ac tnh nay cho phep at va tra lai so toi thieu cua cac k t co the cho phep trong bo em truyen trc khi ieu khien truyen thong xac lap ac tnh CommEvent va phat sinh s kien OnComm. Xac lap ac tnh Sthreshold e vo hieu hoa viec phat sinh s kien OnComm. Ngc lai neu at bang1 th ieu khien truyen thong phat sinh s kien OnComm (s kien OnComm c goi) khi bo em truyen khong co d lieu (bo em truyen rong). Cu phap cua cau lenh nay la:

MSComm1.Sthreshold = [number]

Handshaking

ac tnh nay cho phep xac lap va tra lai giao thc bat tay (Handshaking). No co the c at thanh : khong co handshaking, handshaking phan cng (s dung RTS/CTS) hoac handshaking phan mem (s dung XON/ XOFF). Cu phap cua cau lenh nay la:

MSComm1.Handshaking = [protocol]

Viec bat tay co lien quan en giao thc truyen thong, vi giao thc nay d lieu c chuyen giao t phan cng cua cong en bo bo em nhan. Khi d lieu en cong noi tiep th thiet b truyen khong phai chuyen d lieu en bo em nhan e chng trnh ta viet co the oc no. Neu khong co bo em nhan va chng trnh cua ta phai oc trc tiep tng k t t phan cng th rat co the se b mat d lieu v d lieu c truyen en rat nhanh. Nhng giao thc co hieu lc c liet ke bang sau:

Xac lap

Gia trMo ta

ComNone

0

Khong bat tay

ComXon/Xoff

1

Bat tay XON/ XOFF

ComRTS

2

Bat tay RTS/CTS

ComRTSXON/XOFF3

Bat tay theo ca hai cach

RTS va XON/ XOFF

Gia tr mac nh cua ac tnh nay la ComNone ( tc la khong bat tay).

CommEvent

ac tnh nay tra lai hau het s kien hoac loi truyen thong gan nhat. Cu phap cua cau lenh nay la:

MSComm1.CommEvent

Mac du s kien OnComm phat sinh ca loi truyen thong va ca cac s kien nhng ac tnh CommEvent lai cha ma so cua cac loi va s kien o.

Cac loi truyen thong bao gom:

Xac lap

Gia trMo ta

ComBreak1001

Tn hieu Break a c nhan.

ComCTSTO1002

Xay ra khi truyen mot k t va CTS

mc thap trong thi gian CTStimeout.

ComDSRTO1003

Xay ra khi truyen mot k t va DTR

O mc thap trong thi gian DTRtimeout.

ComFrame1004

Phan cng phat hien mot loi

sai so khung truyen.

ComOver1006

Phan cng khong oc k t trc khi

k t tiep theo c gi en.

ComCDTO1007

Xay ra khi truyen mot k t va CD

mc thap trong thi gian Cdtimeout.

ComRxOver1008

Tran bo em nhan (khong u cho e

cha cac k t tiep theo vao bo em nhan).

ComRxParity1009

Phan cng phat hien mot loi chan le.

ComTxFull1010

ay bo em truyen , bo em truyen

b ay khi a k t vao.

Cac s kien truyen thong bao gom:

Xac lap

Gia tr Mo ta

ComEvSend 1

K t a c truyen.

ComEvReceive 2

S kien nay lien tuc phat sinh cho

en khi ta dung ac tnh Input e

chuyen d lieu t bo em nhan.

ComEvCTS 3

S thay oi tren ng CTS

ComEvCTS 4

S thay oi tren ng DSR

ComEvCD 5

S thay oi tren ng CD

ComEvRing 6

Tieng chuong c phat hien

ComEvEOF 7

K t ket thuc File (ma ASCII = 26)

c nhan.

Khi mot s kien truyen thong noi tiep (OnComm) xay ra th s kien

co the c xac nh bang cach kiem tra ac tnh ComEvent

CDHolding

ac tnh nay xac nh xem ng DCD a c phat hien hay cha. DCD la tn hieu c gi i t modem en may tnh e thong bao vi may tnh rang modem ang trang thai trc tuyen (on line). Cu phap cua cau lenh nay la:

MSComm1.CDHolding = [True/ False]

Khi Cdholding bang True va thi gian i tn hieu CD troi qua ieu khien truyen thong at ac tnh CommEvent thanh CDTO va phat sinh s kien OnComm.

ac tnh nay ong vai tro quan trong trong viec bay loi mat tn hieu mang i bi v ngi s dung co the tat may bat c luc nao.

DSRHolding

ac tnh nay quy nh trang thai cua ng DSR. Thong thng tn hieu DSR c gi t modem en may tnh e bao hieu la no san sang hoat ong. Cu phap cua cau lenh nay la:

MSComm1.DSRHolding = [True/ False]

Neu at bang True th ng DSR mc cao, con at bang False th ng DSR mc thap.

DSRTimeout

ac tnh nay at va tra lai lng thi gian (tnh bang mili giay) i tn hieu DSR trc khi xac lap ac tnh ComEvent thanh DSRTO va phat sinh s kien OnComm. Cu phap cua cau lenh nay la:

MSComm1.DSRTimeout = [mili giay]

DTREnable

ac tnh nay xac nh xem trong qua trnh truyen thong ng DTR a c cho phep hay cha. V du nh tn hieu DTR c gi t may tnh ti modem e bao hieu rang no san sang nhan d lieu. Cu phap cua cau lenh nay la:

MSComm1.DTREnable = [True/ False]

Xac lap gia tr cua ac tnh DTREnable la True e cho phep ng DTR, ngc lai xac lap la False e khong cho phep ng DTR.

Inputlen

ac tnh nay at va tra lai so k t ma ac tnh Input oc t bo em nhan. Gia tr mac nh cua ac tnh nay bang 0. at Inputlen = 0 e ieu khien truyen thong oc het noi dung bo em nhan. Cu phap cua cau lenh nay la:

MSComm1.Inputlen = [number]

ac tnh nay rat co ch khi oc d lieu t cac may co loi ra b co nh ve chieu dai khoi d lieu.

ParityReplace

ac tnh nay at va tra lai k t dung thay the k t khong hp le trong dong d lieu khi loi chan le xay ra. Cu phap cua cau lenh nay la :

MSComm1.ParityReplace = [char]

Bit chan le la bit truyen cung vi cac bit d lieu va c dung cho viec kiem tra loi . Khi dung bit chan le, ieu khien truyen thong se cong tat ca cac bit co gia tr bang1 va kiem tra tong so cac bit o xem la chan hay le (tng ng vi viec xac lap bit chan le khi m cong ma them bit 1 hay 0 vao cho phu hp). Theo mac nh, ieu khien truyen thong dung dau cham hoi e thay the cac k t khong hp le. at ParityReplace la mot xau rong () e bo kha nang thay the k t khi loi chan le xuat hien.

Rthreshold

ac tnh nay at va tra lai so k t nhan c trc khi ieu khien truyen thong xac lap ac tnh ComEvent va phat sinh s kien OnComm. Cu phap cua cau lanh nay la:

MSComm1.Rthreshold = [numchar]

Xac lap bang 0 e lam mat kha nang phat sinh s kien OnComm khi nhan k t, xac lap bang1 e tao ra s kien OnComm moi khi co mot k t c at vao bo em nhan.

C/ S KIEN ONCOMM:

S kien OnComm c phat sinh bat c luc nao khi gia tr cua ac tnh ComEvent thay oi. S kien:

Private Sub MSComm_OnComm()

ac tnh CommEvent cha ma so cua loi hay s kien phat sinh bi s kien OnComm. Nen at cac ac tn hieu Rthreshold hoac Streshold bang 0 e vo hieu s kien Receive (nhan) va Send (phat).

V du sau ay ch ra mot thu tuc s kien dung e kiem tra ac tnh CommEvent .

Private Sub Comm_Oncomm()

Select Case MSComm1.CommEvent

Case ComBreak

Case ComCDTO

Case ComCTSTO

Case ComDSRTO

Case ComFrame

Case ComOverrun

Case ComRxOver

Case ComRxParity

Case ComTxFull

Case ComEvCD

Case ComEvCTS

Case ComEvDSR

Case ComEvRing

Case ComEvReceive

Case ComEvSend

End Select

End Sub

D/ THONG BAO LOI:

Bang sau ay nhan dang ca loi trong thi gian chay co the xuat hien vi ieu khien truyen thong.

So loi

Giai thch

8000 Tac ong khong hp le len cong a m

8001 Gia tr timeout can phai ln hn 0

8002 So cong khong hp le

8003 ac tnh ch phu hp trong thi gian chay

8004 ac tnh la ch oc trong thi gian chay

8005 Cong a m

8006 So nhan dang thiet b la khong hp le

8008

Kch thc byte khong hp le la khong hp le

8009 Loi trong cac thong so mac nh

8010 Phan cng khong phu hp

8011 Khong the nh v c

8012 Thiet b khong m

8013 Thiet b a m

8014 Khong the cho phep thong bao

8015 Khong at c trang thai Comm

8016 Khong at c mat na s kien Comm

8018

Tac ong hp le ch khi cong a m

8019

Thiet b ban

8029

Loi oc thiet b Comm

E/HOI VONG CONG RS-232:

Ngoai ky thuat ieu khien ngat RS-232, tren thc te cung co kha nang s dung ky thuat hoi vong e thong tin qua cong RS-232. V du sau s dung COM2 e gi thong bao Hello va sau o ch xau nhan. Ky thuat nay quy nh la se nhan c ap ng bang cach kiem tra lien tuc so cac k t nhan c trong bo em nhan (ac tnh InBufferCount). Khi co nhieu hn mot k t trong bo em nhan th k t nay se c oc.

Private Sub Form_Load()

Dim Str as String

MSComm1.ComPort = 2

Dung COM2

MSComm1.Settings = 9600, N, 8, 1

MSComm1.Inputlen = 0

MSComm1.PortOpen = True

m cong

MSComm1.Output = Hello

Do

Dummy = DoEvents()

Loop Until MSComm1.InBufferCount >=2

Str = MSComm1.Input

MSComm1.Portopen = False

ong cong

End Sub

MAN HNH TINH THE LONG LCD

Man hnh tinh the long (LCD) la thiet b hien th co nhieu chc nang vt troi so ma Led 7 oan khong co c. LCD co the hien th so hoac ch (ieu nay led 7 oan khong lam c, phai s dung Led ch). Co the kien th cung luc 32 k t, neu ket hp them cac chc nang khac cua LCD co the hien th 128 k t. ay la chc nang khong the co cua Led. S o ket noi va cach lap trnh kha n gian. Do o trong e tai lam he thong thu thap so lieu va ieu khien nay se s dung man hnh tinh the long (LCD) lam thiet b hien th .

LCD s dung trong e tai la TC1602A co hnh dang nh hnh ve di ay :

LCD TC1602A

A/ CHC NANG CAC CHAN:

LCD tren bao gom 16 chan ta se xet chc nang cua tng chan :

1/ Vss : Chan noi vi Ground cho LCD

2/ Vdd : Chan cung cap nguon +Vcc cho LCD hoat ong

3/ Vo : Chan a ien ap vao cho man hn LCD

4/ RS : Tn hieu chon d lieu hay lenh

H: Tn hieu d lieu ; L:Tn hieu lenh

5/ R/W : Ttn hieu chon che o oc hay che o viet

H: Che o oc ; L: Che o viet

6/ E : Tn hieu cho phep

7/ DB0 : Data bit 0

8/ DB1: Data bit 1

9/ DB2: Data bit 2

10/ DB3: Data bit 3

11/ DB4: Data bit 4

12/ DB5: Data bit 5

13/ DB6: Data bit 6

14/ DB7: Data bit 7

15/ Khong ket noi

16/ Khong ket noi

B/ NGUON CUNG CAP VA HOAT ONG

+Vcc

VR : 10K 20 K

Gnd

o sang cua LCD t le vi s chenh lech ap gia Vdd va Vo do o ta gan thong qua mot bien tr VR e co the ieu chnh o sang theo y muon.

Bang cac thong so hoat ong cho LCD

MinMaxn v

Nguon cung cap

Vcc

07V

Nguon cung cap Vdd Vo013.5V

cho man hnh

Nhiet o hoat ongTa

0+500 C

ien ap vao mc caoVIH

2.2VccV

ien ap vao mc thapVIL

0.30.6V

ien ap ra mc caoVOH

2.4

V

ien ap ra mc thapVOL

0.4V

Gian o thi gian

RS

tAHR/W

PWEH

tE

tAS

tDSW tcycleDB0-

DB7

d lieu

Cacthong so ve thi gian cho gian o thi gian tren:

K hieu

Min

Max

n v

tcycle

666

ns

PWEH

300

ns

tE

25

ns

tAS

100

ns

tAH

10

ns

tDSW

100

ns

C/ TAP LENH IEU KHIEN

Xoa man hnh :

ay la lenh xoa tat ca nhng g tren man hnh ong thi a con tro ve v tr 0 (Line 1 , Column 0).

Ma lenh:

RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

0 0 0 0 0 0 0 0 0 0

a con tro ve v tr 0:

ay la lenh a con tro ve khong nhng khac vi lenh tren la man hnh khong b xoa.

Ma lenh:

RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

0 0 0 0 0 0 0 0 1 *

vi k hieu * la tuy nh

Chon che o:

ay la lenh nhap vao cac che o hoat ong dch man hnh khi

LCD hoat ong.

Ma lenh:

RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

0 0 0 0 0 0 0 0 I/D S

vi I/D = 1 : Con tro se t ong tang 1 khi viet k t vao.

I/D = 0 : Con tro se t ong giam1 khi viet k t vao.

S = 1 : Man hnh se t ong dch 1 k t khi viet k t vao.

S = 0 : Man hnh se gi nguyen khi viet k t vao.

ieu khien man hnh va con tro

ay la lenh cho phep hien th hay khong hien th man hnh , con tro , noi o k t tren au con tro.

Ma lenh:

RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

0 0 0 0 0 0 1 D C B

vi D = 1 : Cho phep hien th man hnh.

D = 0 : Khong cho phep hien th man hnh.

C = 1 : Cho phep hien th con tro.

C = 0 : Khong cho phep hien th con tro.

B = 1 : Cho phep hien th o k t tren au con tro, ong thi

khi LCD hoat ong no se chp tat.

B = 0 : Khong cho phep hien th o k t tren au con tro.

e LCD hoat ong che o thong thng nh ta chon ma cho ba bit D, C, B nay lan lt la 1 1 0.

Dch man hnh va con tro:

ay la lenh chon che o dch cho man hnh va con tro khi LCD hoat ong.

Ma lenh:

RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

0 0 0 0 0 1 S/C R/L * *

vi * : tuy nh

S/C = 1 : Chon che o dch man hnh.

S/C = 0 : Chon che o dch con tro.

R/L = 1 : Dch sang phai 1 k t.

R/L = 0 : Dch sang trai 1 k t.

at cac chc nang:

ay la lenh quy nh so bit d lieu c truyen i , s dung bao nhieu dong, Font ch bao nhieu.

Ma lenh:

RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

0 0 0 0 1 DL N F * *

vi * : tuy nh

DL = 1 : Dung giao tiep 8 bit d lieu.

DL = 0 : Dung giao tiep 4 bit d lieu.

N = 1 : S dung 2 dong cua LCD.

N = 0 : S dung 1 dong cua LCD.

F = 1 : S dung Font 5 * 10 o.

F = 0 : S dung Font 5 * 7 o.

Lu y khi ta dung 2 hang th Font ch luon luon la 5 * 7 o du ta co chon bit F = 1 , ch khi dung 1 hang th bit F mi co gia tr.

Di chuyen con tro:

ay la lenh di chuyen con tro ti mot v tr xac nh ma khong anh hng en cac k t tren man hnh LCD.

Ma lenh:

RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

0 0 1

Cac bit t DB6 en DB0 la v tr con tro can di chuyen ti. Ta nhan thay rang se co 27 = 128 v tr cua con tro, ma tren man hnh ta ch co 2*16 = 32 k t do o ch co 32 a ch khi ta co the nhn thay tren man hnh LCD. o la cac a ch 0000000B en 0001111B (cho hang 1) va 1000000B en 1001111B (cho hang 2). Cac a ch con lai neu muon hien th tren man hnh LCD ta phai s dung lenh dch man hnh en cac a ch o.

Hien th k t

ay la lenh viet mot k t len man hnh LCD tai v tr con tro ang ng.

Ma lenh:

RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

1 0

Cac bit DB7 en DB0 la cac bit d lieu cua k t can hien th.

Ma cac k t thong dung s dung cho LCD chnh la ma ASCII. V du nh neu muon hien th k t A ta phai truyen d lieu la 65 cho cac bit d lieu DB7 en DB0. Ngoai cac k t thong dung nay th LCD con co cac k t khac ma neu muon s dung phai tra bang.

D/ AP DUNG VAO LUAN VAN

1/ S o ket noi:

Ta s dung Port 0 lam I/ O do o phai dung ien tr keo len nguon tai Port 0 (s dung ien tr 4K7).

Cac chan d lieu cua LCD c noi vi Port 0

Cac chan ieu khien RS, R/W, E c noi vi P2.7, P2.6, P2.5.

2/ Phan mem nap cho 8951

e de s dung tai chng trnh chnh ta se viet chng trnh ieu khien cho LCD di dang chng trnh con. Co hai chng trnh con cho

viec ieu khien LCD : Chng trnh con xuat cac lenh ieu khien LCD00 (ng vi RS = 0 , R/W = 0), chng trnh con hien th cac k t len man hnh LCD10 (ng vi RS = 1 , R/W = 0).

Chng trnh con LCD00 se thc thi ma lenh cha trong thanh ghi tch luy A.

LCD00:

MOV

P0,A

;Nhan ma lenh

CLR

P2.5

;Xoa tn hieu E

CLR

P2.7

;Tn hieu RS tch cc

CLR

P2.6

;Tn hieu Write tch cc

SETB

P2.5

;Set tn hieu cho phep E

CLR

P2.5

;Thc hien lenh

RET

Chng trnh con LCD10 se hien th k t co d lieu (ma ASCII) cha trong thanh ghi tch luy A.

LCD10:

MOV

P0,A

;Nhan ma k t

CLR

P2.5

;Xoa tn hieu E

SETB

P2.7

;at RS len cao

CLR

P2.6

;Tn hieu Write tch cc

SETB

P2.5

;at tn hieu E len 1

CLR

P2.5

;Thc hien hien th

RET

HOAT ONG PORT NOI TIEP 8951

A/ Gii thieu:

8951 co mot port noi tiep trong chip co the hoat ong nhieu che o khac nhau tren mot day tan so rong.Chc nang chu yeu cua port noi tiep la thc hien chuyen oi song song sang noi tiep oi vi d lieu xuat va chuyen oi noi tiep sang song song oi vi d lieu nhap.

Truy xuat phan cng en port noi tiep cua 8951 qua cac chan TXD va RXD. Cac chan nay co chc nang khac vi hai bit cua Port3, P3.1 chan 11 (TXD) va P3.0 chan 10 (RXD).

Port noi tiep cho hoat ong song cong (thu va phat ong thi) va em luc thu cho phep mot k t se c thu va c gi trong khi k t th hai c nhan. Neu CPU oc k t th nhat trc khi k t th hai c thu ay u th d lieu se khong b mat.

Hai thanh ghi chc nang ac biet cho phep phan mem truy xuat en port noi tiep la SBUF va SCON. Bo em port noi tiep SBUF a ch 99H thc s la hai bo em. Viet vao SBUF e nap d lieu se c phat , va oc SBUF e truy xuat d lieu thu c. ay la hai thanh ghi rieng biet : Thanh ghi ch ghi e phat va thanh ghi ch oc e thu.

TXD RXD

(P3.1) (P3.0)

Xung nhp toc

o baud (phat)

Xung nhp toc

o baud (thu)

Bus noi 8951

S o khoi port noi tiep

Thanh ghi ieu khien port noi tiep (SCON) a ch 98H la thanh ghi co a ch bit cha cac bit trang thai va cac bit ieu khien. Cac bit ieu khien at che o hoat ong cho port noi tiep, va cac bit trang bao ket thuc viec bao hoac thu k t. Cac bit trang thai co the c kiem tra bang phan mem hoac co the lap trnh e tao ngat.

Tan so lam viec cua port noi tiep co the co nh (lay t bo dao ong tren chip). Neu s dung toc o baud thay oi, Timer 1 se cung cap xung nhp toc o baud va phai c lap trnh.

B/ Thanh ghi ieu khien Port noi tiep:

Che o hoat ong cua port noi tiep c at bang cach ghi vao thanh ghi che o port noi tiep SCON a ch 98H. Sau ay la bang tom tat thanh ghi SCON va cac che o cua port noi tiep.

Bit

Ky hieu a ch Mo ta

SCON.7 SM0

9FH

Bit 0 cua che o port noi tiep

SCON.6SM1

9EH

Bit 1 cua che o port noi tiep

SCON.5SM2

9DH

Bit 2 cua che o port noi tiep. Cho

Phep truyen thong a x l trong cac

Che o 2 va 3; RI se khong b tac

ong neu bit th 9 thu c la 0

SCON.4REN

9CH

Cho phep bo thu phai c at len 1

e thu (nhan cac k t)

SCON.3TB8

9BH

Bit 8 phat, bit th 9 c phat trong

Cac che o 2 va 3, c at va xoa

bang phan mem

SCON.2RB8

9AH

Bit 8 thu, bit th 9 thu c

SCON.1 TI

99H

C ngat phat. at len 1 khi ket thuc

phat k t, c xoa bang phan mem

SCON.0 RI

98H

C ngat thu. at len 1 khi ket thuc

thu k t, c xoa bang phan mem

Tom tat thanh ghi che o port noi tiep

SM0SM1Che o Mo ta

Toc o baud

000 Thanh ghi dch Co nh (FOSC/12)

011 UART 8 bit Thay oi (at bang timer)

102 UART 9 bit Co nh (FOSC chia cho 12 hoac 64)

113 UART 9 bit Thay oi (at bang timer)

Cac che o port noi tiep

Trc khi s dung port noi tiep, phai khi ong SCON cho ung che o. V du lenh sau:

MOV

SCON,#01010010B

Khi ong port noi tiep cho che o 1 (SM0/SM1 = 0/1), cho phep bo thu (REN = 1) va at c nhat phat (TI =1) e ch bo phat san sang hoat ong.

C/Cac che o hoat ong:

Port noi tiep co 4 che o hoat ong, co the chon c bang cac viet cac so 1 hay 0 vao cac bit SM0 va SM1 trong SCON. Co ba che o cho phep truyen thong bat ong bo, vi moi k t c thu hoac phat eu c ong khung bang 1 bit start va 1 bit stop. che o 0 port noi tiep hoat ong nh mot thanh ghi dch n gian.

a/ Thanh ghi dch 8 bit che o 0 :

Che o 0 c chon bang cach ghi cac bit 0 vao SM1 va SM0 cua SCON, a port noi tiep vao che o thanh ghi dch 8 bit. D lieu noi tiep vao va ra qua RXD va TXD xuat xung nhp dch. 8 bit c phat hoac thu vi bit au tien la LSB. Toc o baud co nh 1/12 tan so dao ong tren chip.

Viec phat i c khi ong bang bat c lenh nao ghi d lieu vao SBUF. D lieu c dch ra ngoai qua ng RXD (P3.0) vi cac xung nhp c gi ra ng TXD (P3.1). Moi bit phat i hp le (tren RXD) trong 1 chu k may. Trong moi chu k may, tn hieu xung nhp xuong thap S3P1 va tr ve mc cao S6P1.

Viec thu c khi ong khi bit cho phep bo thu (REN) la 1 va bit ngat thu (RI) la 0. Qui tac tong quat la at REN khi bat au chng trnh e khi ong port noi tiep, roi xoa RI e bat au hoat ong nhap d lieu.

Khi RI b xoa, cac xung nhp c a ra ng TXD, bat au chu k may ke tiep, va d lieu theo xung nhp ng RXD. Lay xung nhp cho d lieu vao port noi tiepxay ra cach dng cua TXD.

Mot chu k may

S1 S2

S3 S4

S5 S6

P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2

OSC

ALE

D

Lieu

Clock

Dch

ALE

Data D0 D1D2 D3 D4 D5 D6D7

Clock

Dch (TXD)

Gian o thi gian port noi tiep phat che o 0

Viec thu c khi ong khibit cho phep bo thu (REN) la 1 va bit ngat thu (RI) la 0. Qui tac tong quat la at REN khi bat au chng trnh e khi ong port noi tiep, roi xoa RI e bat au hoat ong nhap d lieu. Khi RI b xoa cac xung nhp c a ra ng TXD, bat au chu k may ke tiep , va d lieu theo xung nhp ng RXD. Lay xung nhp cho d lieu vao port noi tiepxay ra canh dng cua RXD.

Mot chu k may

ALE

Data

Nhap

D0 D1 D2 D3 D4D5 D6 D7

Clock

Dch (TXD)

Gian o thi gian port noi tiep thu che o 0

Mot ng dung cua che o thanh ghi dch la m rong kha nang cua 8951. IC thanh ghi dch noi tiep ra song song co the noi vao cac ng TXD va RXD cua 8951 e cung cap them 8 ng ra. Co the noi xau chuoi them cac thanh ghi dch e m rong them.

Them 8 ngo ra

Che o thanh ghi dch cua port noi tiep

b/ UART 8 bit vi toc o baud thay oi c (che o1):

che o 1, port noi tiep cua 8951 lam viec nh 1 UART 8 bit vi toc o baud thay oi c. Mot UART (bo thu phat bat ong bo van nang) la mot dung cu thu va phat d lieu noi tiep vi moi k t d lieu i trc la bit start mc thap va theo sau la bit stop mc cao. oi khi xen them bit kiem tra chan le gia bit d lieu cuoi cung va bit stop. Hoat ong chu yeu cua UART la chuyen oi song song sang noi tiep vi d lieu xuat va chuyen oi noi tiep sang song song oi vi d lieu nhap.

che o 1, 10 bit c phat tren TXD hoac thu tren RXD. Nhng bit o la: 1 bit start (luon luon la 0), 8 bit d lieu (LSB au tien) va 1 bit stop (luon luon la 1). Vi hoat ong thu, bit stop c a vao RB8 trong SCON. Trong 8951 toc o baud c at bang toc o tran cua timer 1.

Tao xung nhp va ong bo hoa cac thanh ghi dch cua port noi tiep trong cac che o 1, 2 va 3 c thiet lap bang bo em 4 bit chia cho 16, ngo ra la xung nhp toc o baud. Ngo vao cua bo em nay c chon qua phan mem

16 * toc o baud

Tao xung nhp port noi tiep

Truyen d lieu (phat uc khi ong bang cach ghi vao SBUF, nhng van cha that s chay cho en khi s thay the ke tiep cua bo em chia cho 16 cung cap toc o baud cong noi tiep. D lieu c dch ra ngoai tren ng TXD bat au la bit start, theo sau la 8 bit d lieu va sau cung la bit stop. o rong theo thi gian cua moi bit la ngch ao cua toc o baud uc lap trnh trong timer. C ngat phat (TI) c at len 1 khi xuat hien bit stop tren TXD.

1/ toc o baud

TXD Start bit D0 D1 D2 D3 D4 D5 D6 D7 Bit stop

TI (SCON.1)

Ngat phat

at c TI bang port noi tiep

Viec thu d lieu c khi ong bang mot chuyen trang thai t 1 xuong 0 tren RXD. Bo em 16 tc thi c xoa e ong bo so em vi luong bit en. Luong bit en uc lay mau gia 16 lan em.

Bo thu se phat hien uc bit start sai bang cach yeu cau trang thai 0 bit start lan em th 8 sau khi co chuyen trang thai t 1 xuong 0 au tien. Neu ieu nay khong xay ra , ngi ta gia s la bo thu uc kch bi nhieu ch khong phai do mot k t hp le. Bo thu uc reset va quay ve trang thai ngh (idle), tm kiem (i) chuyen trang thai t 1 xuong 0 ke.

Gia s a phat hien c bit start hp le, th tiep tuc thu k t. Bit start c bo qua va 8 bit d lieu c a vao thanh ghi dch cong noi tiep theo xung nhp. Khi a co c tat ca 8 bit, ieu sau ay se xay ra:

1/ Bit th 9 (bit stop) c chot vao RB8 trong SCON.

2/ SBUF c nap vi 8 bit d lieu

3/ C ngat bo thu(RI) c at len 1

Tuy nhien, nhng ieu nay ch xay ra neu a co nhng ieu kien sau :

1/ RI = 0

2/ SM2 = 1 va bit stop thu c la 1, hoac SM2 = 0.

oi hoi RI=0 e bao am la phan mem a oc k t trc (va RI c xoa). ieu kien th hai hi phc tap nhng ch ap dung trong che o truyen thong a x l. ieu o ham y la khong at RI len 1trong che o truyen thong a x l khi bit d lieu th 9 la 0.

c/ UART 9 bit vi toc o baud co nh (che o 2):

Khi SM1 = 1 va SM0 = 0, cong noi tiep lam viec che o 2 , nh 1 UART 9 bit co toc o baud co nh, 11 bit se c phat hoac thu : 1 bit start, 8 bit d lieu, bit d lieu th 9 co the lap trnh c va 1 bit stop. Khi phat bit th 9 la bat c g a c a vao TB8 trong SCON (co the la bit parity). Khi thu, bit th 9 thu c se trong RB8. Toc o baud che o 2 la 1/32 hoac 1/16 tan so dao ong tren chip.

d/ UART 9 bit vi toc o baud thay oi c

Che o nay giong nh che o 2 ngoai tr toc o baud co the lap trnh c va c cung cap bi timer. That ra cac che o 1, 2 va 3 rat giong nhau. Cac khac biet la toc o baud (co nh trong che o 2, thay oi trong cac che o 1 va 3) va so bit d lieu (8 trong che o 1, 9 trong cac che o 2 va 3).

D/ Khi ong va truy xuat cac thanh ghi cong noi tiep:

a/ Cho phep thu:

Bit cho phep bo thu (REN) phai c at len 1 bang phan mem e cho phep thu cac k t. Thong thng thc hien viec nay au chng trnh khi khi ong cong noi tiep, timer,...Co the thc hien viec nay theo hai cach. Lenh:

SETB

REN

Se at REN len 1, hoac lenh:

MOV

SCON,#xxx1xxxxB

Se at REN len 1 va at hoac xoa cac bit khac trong SCON khi can (cac x phai la 0 hoac 1) e at che o lam viec.

b/ Bit d lieu th 9:

Bit d lieu th 9 can phat trong che o 2 va 3 phai c nap vao TB8 bang phan mem. Bit d lieu th 9 thu c at RB8. Phan mem co the can hoac khong can bit d lieu th 9, phu thuoc vao ac tnh ky thuat cua thiet b noi tiep s dung. (Bit d lieu th 9 cung ong mot vai tro quan trong trong truyen thong a x l).

c/ Them 1 bit parity:

Thng s dung bit d lieu th 9 e them parity vao k t. Nh a xet trong cac chng trc, bit P trong t trang thai chng trnh (PSW) c at len 1 hoac b xoa moi chu k may e thiet lap kiem tra chan vi 8 bit trong thanh ghi tch luy. V du, neu truyen thong can 8 bit d lieu cong them kiem tra chan, co the s dung cac lenh sau e phat 8 bit trong thanh ghi tch luy vi kiem tra chan le vao bit th 9 :

MOV

C,P

; at parity chan vao TB8

MOV

TB8,C; no tr thanh bit d lieu th 9

MOV

SBUF,A; Chuyen 8 bit t ACC vao SBUF

Neu can parity le th sa cac lenh lai nh sau:

MOV

C,P

; at parity chan vao TB8

CPL

C

; oi sang parity le

MOV

TB8,C; no tr thanh bit d lieu th 9

MOV

SBUF,A; Chuyen 8 bit t ACC vao SBUF

D nhien, viec s dung parity khong b gii han cac che o 2 va 3. che o 1, 8 bit d lieu c truyen i co the bao gom 7 bit d lieu cong them bit parity. e truyen ma ASCII 7 bit vi parity chan bit 8, co the s dung cac lenh sau:

CLR

ACC.7;Bao am MSB c xoa

MOV

C,P

;parity chan trong P

MOV

ACC.7,C;at parity chan vao MSB

MOV

SBUF,A;gi k t i

;7 bit d lieu cong parity chan

d/ Cac c ngat:

Hai c ngat thu va phat (RI va TI) trong SCON ong mot vai tro quan trong trong truyen thong noi tiep dung 8951. Ca hai bit nay c at len 1 bang phan cng, nhng phai c xoa bang phan mem.

V du, thng RI c at len 1 khi ket thuc viec thu k t va bao bo em thu tran. ieu kien nay co the c kiem tra bang phan mem hoac co the c lap trnh e gay ra mot ngat. Neu phan mem muon nhap mot k t t thiet b c noi vao cong noi tiep (co the la thiet b au cuoi hien th video), no phai i cho en khi RI c at len 1, roi xoa RI va oc k t t SBUF. Chng trnh nh sau:

WAIT:

JNB

RI,WAIT;Kiem tra RI cho en khi no bang 1

CLR

RI

;Xoa RI

MOV

A,SBUF;oc k t

TI c at len 1 cuoi luc phat k t va bao bo em phat trong. Neu phan mem muon gi mot k t en 1 thiet b c noi vao cong noi tiep, trc het no phai kiem tra xem conh noi tiep san sang cha. Noi cach khac, neu k t trc a c gi i, i cho en khi viec truyen d lieuhoan tat trc khi gi k t ke. Cac lenh sau se truyen k t trong thanh ghi tch luy:

WAIT:

JNB

TI,WAIT;Kiemtra TI cho en khi no bang1

CLR

TI

;Xoa TI

MOV

SBUF,A;Gi k t i

Cac oan chng trnh tren la mot phan cua cac ham nhap va xuat k t chuan.

E/ Toc o baud port noi tiep:

Nh a noi, toc o baud co nh cac che o 0 va 2. Trong che o 0 no luon luon la tan so dao ong tren chip c chia cho 12. Thong thng thach anh an nh tan so dao ong tren chip cua 8951, nhng cung co the s dung nguon xng nhp khac. Gia s vi tan so dao ong danh nh la 12 MHz, th toc o baud che o 0 la 1 MHz.

dao ong

xung nhp

tren chip

toc o baud

a/ che o 0

dao ong

SMOD=0

xung nhp

tren chip

SMOD=1 toc o baud

b/ che o 2

dao ong

SMOD=0

xung nhp tren chip

SMOD=1 toc o baud

c/ che o 1 va 3

Cac ngon tao xung nhp cho port noi tiep

Mac nhien sau khi reset he thong, toc o baud che o 2 la tan so dao ong chia cho 64. Toc o baud cung b anh hng bi mot bit trong thanh ghi ieu khien nguon cung cap (PCON). Bit 7 cua PCON la bit SMOD. at bit SMOD len 1 lam gap oi toc o baud trong cac che o 1, 2 va 3. Trong che o 2, toc o baud co the b gap oi t gia tr mac nh cua 1/64 tan so dao ong (SMOD = 0) en 1/32 tan so dao ong (SMOD=1).

V PCON khong c nh a ch theo bit, nen e at bit SMOD len 1 can phai theo cac lenh sau:

MOV

A,PCON;Lay gia tr hien thi cua PCON

SETB

ACC.7;at bit 7 (SMOD) len1

MOV

PCON,A;Ghi gia tr ngc ve PCON

Cac toc o baud trong cac che o 1 va 3 c xac nh bang toc o tran cua timer1. V timer hoat ong tan so tng oi cao, tran timer c chia them cho 32 (16 neu SMOD = 1) trc khi cung cap xung nhp toc o baud cho port noi tiep.

S dung Timer 1 lam xung nhp toc o baud:

Xet 8951, cach thong dung e tao toc o baud la khi ong TMOD

cho che o 8 bit t ong nap lai (che o 2) va at gia tr nap lai ung vao TH1 e cho toc o tran ung vi toc o baud. TMOD c khi ong nh sau:

MOV

TMOD,#0010xxxxB

Cac x la cac bit 1 hoac 0 can cho timer

Cung co the at c toc o baud thap bang cach s dung timer che o 1 vi TMOD = 0001xxxxB. Tuy nhien ton them phan mem v cac thanh ghi TH1/ TL1 phai c khi ong lai sau moi lan tran. Viec nay se c thc hien trong chng trnh phuc vu ngat. Mot chon la khac la cap xung nhp cho timer 1 t ngoai dung T1 (P3.5). Va luon luon toc o baud la toc o tran cua timer 1 chia cho 32 (hoac cho 16 neu SMOD=1)

Cong thc tong quat e xac nh toc o baud trong cac che o 1 va 3 la:

Toc o baud = Toc o tran cua Timer 1 : 32

V du, muon lam viec vi toc o baud la 1200 baud, th toc o tran cua timer 1 phai la:

1200 * 32 = 38.4KHz

Neu dung thach anh 12 MHz, Timer 1 c cung cap xung nhp 1MHz hay 1000KHz. V toc o tran cua Timer 1 la 38.4 KHz va Timer 1 c cap xung nhp 1000KHz , th can tran sau 1000/38.4 = 26.04 xung nhp (lam tron la 26). V timer em len va tran xay ra khi co s thay oi t FFH xuong 00H so em. Nh vay gia tr ung can nap vao TH1 la

-26 . Cach de dang nhat e at gia tr nap vao TH1 la:

MOV

TH1,#-26

Trnh hp dch se thc hien chuyen oi can thiet. Trong trng hp nay 26 c chuyen thanh 0E6H. Nh vay lenh tren hoan toan giong vi lenh :

MOV

TH1,#0E6H

Do viec lam tron nen co sai so trong toc o baud. Tong quat th cho phep dung sai 5% trong truyen thong bat ong bo (start/stop). Co the co c toc o baud chnh xac neu dung thach anh 11.059MHz. Bang sau ay tom tat cac gia tr nap lai cho cac toc o baud thong dung nhat, dung thach anh 12 MHz hoac thach anh 11.059MHz:

Toc o Tan so SMOD Gia tr nap lai Toc o Sai so

Baud thach anh

vao TH1 baud that

9600 12.000MHz 1

-7(F9H) 8923 7%

2400 12.000MHz 0

-13(F3H) 2404 0.16%

1200 12.000MHz 0

-26(E6H) 1202 0.16%

19200 11.059MHz 1

-3(FDH) 19200 0

9600 11.059MHz 0

-3(FDH) 9600 0

2400 11.059MHz 0

-12(F4H) 2400 0

1200 11.059MHz 0

-24(E8H) 1200 0

Bang tom tat toc o baud

HE THONG THU THAP SO LIEU VA IEU KHIEN

A/ GII THIEU:

e tai thc hien trong luan van nay la Thiet ke he thong thu thap d lieu va ieu khien, d lieu ay la cac so lieu c lay t cac kenh 0 en kenh 3 va a ve may tnh, cac d lieu nay se c cat vao trong mot File dang bang tnh cua Excel. ieu khien ay chnh la ieu khien ien ap ngo ra cua bo bien oi DA. Thiet b hien th s dung trong e tai nay la man hnh tinh the long (LCD), va bang giao dien tren may tnh. e tien theo doi ta chia luan van lam hai phan : Phan cng va giao dien ieu khien.

Phan cng c thiet ke bao gom cac IC chnh sau : IC chuyen oi

AD (ADS7841),IC chuyen oi DA (DAC7611), thiet b hien th bang man hnh tinh the long (LCD) va vi ieu khien 8951, i oi vi phan cng nay la chng trnh viet cho vi ieu khien 8951.

Giao dien ieu khien cho he thong thu thap d lieu nay c viet bang ngon ng Visual Basic. Trong phan mem nay ta s dung hop cong cu MSComm e truyen thong noi tiep vi vi ieu khien 8951, hop cong cu MSChart e ve cac so lieu lay t cac kenh d lieu cua bo bien oi AD. Ngoai ra ta con s dung kha nang nhung d lieu gia Visual Basic vi Microsoft Excel e tao File d lieu dang bang tnh Excel.

S O KHOI HE THONG

RS232

Com

B/ KET NOI PHAN CNG VA PHAN MEM IEU KHIEN

GIAI THUAT IEU KHIEN CHNH

Y (Bien oi DA)

N

Y (Bien oi AD)

N

Lap (R1) lan

Y (Chon Mode cho bien oi AD)

N

Y (Xuat lenh cho LCD)

N

Y (Xuat k t ra LCD)

N

GIAI THUAT CHNG TRNH CON DAC

Lap

8 lan

Lap 4 lan

GIAI THUAT CHNG TRNH CON ADC

Lap 8

Lap 8 lan

lan

Lap 3

lan

Lap 4

Lan

THU VA PHAT PORT NOI TIEP

THU

PHAT

N

N

Y

Y

HIEN TH TREN LCD

LCD00

LCD10

NUTNHAN

N

N

Y

Y

N

N

Y

N

N

Lap 2 lan

N

N

N

Y

Y

Y

Chng trnh nap cho Vi x l 8951

ORG 0000H

LJMP

START

ORG

000BH

LJMP

ISRTIMER0

ORG

0030H

MAIN:

LCALLNUTNHAN

LCALLKHAIBAOPORT

START:

LCALLTHU

CJNE

A,#1,ADMAIN

LCALLTHU

MOV

B,A

LCALLTHU

LCALLDAC

SJMP

START

ADMAIN:CJNE

A,#2,MODEAD

LCALLTHU

MOV

R1,A

ADMAIN3:LCALLADC

LCALLPHAT

MOV

A,B

LCALLPHAT

DJNZ

R1,ADMAIN3

SJMP

START

MODEAD: CJNE

A,#3,LCDM00

LCALLTHU

MOV

20H,A

SJMP

START

LCDM00:CJNE

A,#4,LCDM10

LCALLTHU

LCALLLCD00

SJMP

START

LCDM10:CJNE

A,#5,START

LCALLTHU

LCALLLCD10

SJMP

START

;********************************************************

;***********NGAT TIMER0 TAO XUNG 10Hz****************

ISRTIMER0:

CLR

TR0

MOV

TH0,#HIGH(-50000)

MOV

TL0,#LOW(-50000)

SETB

TR0

CPL

P2.4

RETI

;*********************************************************

;**THC HIEN LENH CHO LCD CO D LIEU CHA TRONG A**

LCD00

MOV

P0,A

CLR

P2.5

CLR

P2.7

CLR

P2.6

SETB

P2.5

CLR

P2.5

RET

;*********************************************************

;**********HIEN TH TREN LCD K T CHA TRONG A*******

LCD10:

MOV

P0,A

CLR

P2.5

SETB

P2.7

CLR

P2.6

SETB

P2.5

CLR

P2.5

RET

;*********************************************************

;****CHON KENH CHO ADS7841 KHI KHI ONG VI X L****

;*****************CHA VAO O NH 20H*******************

NUTNHAN:

MOV

A,#00H

MOV

R7,#2

NSTART:

JB

P2.0,XETP21

MOV

R6,#255

;DELAY 100ms

NDELAY2:

MOV

R5,#255

;DELAY 100ms

NDELAY1:

DJNZ

R5,NDELAY1;DELAY 100ms

DJNZ

R6,NDELAY2;DELAY 100ms

JB

P2.0,NSTART

CLR

C

CHOP20:

JNB

P2.0,CHOP20

SJMP

DANHAN

XETP21:

JB

P2.1,NSTART

MOV

R6,#255

;DELAY 100ms

NDELAY4:

MOV

R5,#255

;DELAY 100ms

NDELAY3:

DJNZ

R5,NDELAY3;DELAY 100ms

DJNZ

R6,NDELAY4;DELAY 100ms

JB

P2.1,NSTART

SETB

C

CHOP21:

JNB

P2.1,CHOP21

DANHAN:

RLC

A

DJNZ

R7,NSTART

CJNE

A,#0,CHANEL1

MOV

20H,#148

SJMP

THOATNUTNHAN

CHANEL1:

CJNE

A,#1,CHANEL2

MOV

20H,#211

SJMP

THOATNUTNHAN

CHANEL2:

CJNE

A,#2,CHANEL3

MOV

20H,#164

SJMP

THOATNUTNHAN

CHANEL3:

MOV

20H,#228

THOATNUTNHAN:

RET

;*********************************************************

;**KHI ONG SIO UART 8 BIT, 38400 BAUD,XTAL=22.11MHz**

;****KHI ONG NGAT TIME 0*****************************

KHAIBAOPORT:

MOV

A,87H

SETB

ACC.7

MOV

87H,A

MOV

SCON,#52H

MOV

IE,#82H

MOV

TMOD,#21H

MOV

TH1,#-3

SETB

TR1

SETB

TR0

RET

;*********************************************************

;***********PHAT NOI DUNG THANH GHI A RA SIO**********

PHAT:

JNB

TI,$

CLR

TI

MOV

SBUF,A

RET

;*********************************************************

;**********THU T SIO VA CHA VAO THANH GHI A********

THU:

JNB

RI,$

CLR

RI

MOV A,SBUF

RET

;*********************************************************

;*****BIEN OI DA VI D LIEU CHA TRONG A VA B*******

;***************B 4 BIT CAO, A 8 BIT THAP*****************

DAC:

PUSHACC

MOV

A,B

SWAPA

SETB

P1.4

CLR

P1.7

MOV

R7,#4

LOOPDA1:

RLC

A

MOV

P1.5,C

CLR

P1.6

SETB

P1.6

DJNZ

R7,LOOPDA1

POP

ACC

MOV

R7,#8

LOOPDA2:

RLC

A

MOV

P1.5,C

CLR

P1.6

SETB

P1.6

DJNZ

R7,LOOPDA2

CLR

P1.4

SETB

P1.7

RET

;*********************************************************

;*BIEN OI AD, BYTE IEU KHIEN CHA TRONG O NH 20H*

;******D LIEU CHA VAO B:4 BIT CAO,A:8 BIT THAP*******

ADC:

CLR

P1.1

MOV

A,20H

MOV

R7,#8

NHAPDIN:

RLC

A

MOV

P1.2,C

CLR

P1.0

SETB

P1.0

DJNZ

R7,NHAPDIN

CLR

P1.0

SETB

P1.0

MOV

R7,#4

LOOPAD1:

CLR

P1.0

SETB

P1.0

MOV

C,P1.3

RLC

A

DJNZ R7,LOOPAD1

ANL

A,#0FH

MOV

B,A

MOV

R7,#8

LOOPAD2:

CLR

P1.0

SETB

P1.0

MOV

C,P1.3

RLC

A

DJNZ

R7,LOOPAD2

MOV

R7,#3

CUOI:

CLR

P1.0

SETB

P1.0

DJNZ

R7,CUOI

CLR

P1.0

SETB

P1.1

RET

END

;**********************************************************

C/ GIAO DIEN IEU KHIEN

Trong Visual Basic tao mot form vi cac thanh phan nh sau :

Ngoai cac thanh phan quen thuoc nh Caption, Label, Text con co them 2 bieu tng khac la hop ien thoai va o th. Hop ien thoai la bieu tng cua truyen thong noi tiep cong COM , o th la cong cu e ta ve cac d lieu nhan ve. Khi khi ong th hai hop cong cu nay khong co san tren Toolbox ma ta phai bo sung them vao.

Cach bo sung 2 hop cong cu nay :

Vao muc Project , chon muc Component, chon tiep hai thanh phan Microsoft Chart control 6.0 , va Microsoft Comm control 6.0.

Form tren c chia lam ba phan ADC, DAC, LCD . Ta se xet chc nang, cach s dung va chng trnh cua tng thanh phan trong moi phan cua form tren. Tuy nhien trc het ta can phai khi ong cho truyen thong noi tiep. Nhng cau lenh khi ong nay ta ghi vao trong Form_Load tc la khi khi ong man hnh giao dien th truyen thong noi tiep cung c khi ong ong thi.

Chng trnh nap cho Form_Load

Private Sub Form_Load()

MSComm1.CommPort = 1

s dung COM1

MSComm1.Settings = "19200, n, 8,1"toc o baud 19200

khong kiem tra chan le, 8 bit d lieu, 1 bit stop

MSComm1.InputLen = 1moi lan oc 1 byte

MSComm1.PortOpen = True m Port

Text1.Text = ""

khi ong cho cac o Text

Text2.Text = ""

Text3.Text = ""

Text4.Text = ""

Text5.Text = ""

Text6.Text = "0"

Text7.Text = "200"

oan chng trnh khi ong cho LCD

End Sub

Trong chng trnh con tren con mot phan chng trnh khi ong cho LCD ma ta se xet ro noi dung trong phan noi ve cac nut lenh ieu khien LCD.

A/ CHUYEN OI AD

Trc khi xet cac nut lenh trong phan chuyen oi AD nay ta xet chng trnh con thc viec chuyen oi AD

Private Sub ThutucADC(Somau, a() As Integer)

Dim instring As String

Dim i, j, k, l As Integer

l = Somau

MSComm1.Output = Chr(2)

MSComm1.Output = Chr(l)

For k = 1 To l

Do

dummy = DoEvents()

Loop Until MSComm1.InBufferCount >= 1

instring = MSComm1.Input

i = Asc(instring)

Do

dummy = DoEvents()

Loop Until MSComm1.InBufferCount >= 1

instring = MSComm1.Input

j = Asc(instring)

j = j * 256 + I

a(k) = j

Next k

End Sub

Tham so somau quy nh se lay bao nhieu mau d lieu

Chuoi tham so a( ) la chuoi d lieu tra ve.

Nut lenh ADC

Nut lenh nay dung e xuat tn hieu ra lenh cho phan cng lay mau d lieu t cac kenh d lieu (kenh 0 en kenh 3), so mau d lieu c quy nh trong Text 7 (ben phai Label SO MAU). S thc thi cua nut lenh ADC c quy nh la khi Click trai chuot vao nut lenh.

Chng trnh nap cho nut lenh ADC:

Private Sub ADC_Click()

Dim instring As String

Dim x As Double

Dim i, j, k, l As Integer

l = Text7.text

MSComm1.Output = Chr(2)vi x l nhay ti viec lay d lieu

MSComm1.Output = Chr(l)so lan lay mau

x = 0

For k = 1 To l

Do

i d lieu ve

dummy = DoEvents()

Loop Until MSComm1.InBufferCount >= 1

instring = MSComm1.Input

i = Asc(instring)

chuyen so HEX cua d lieu thanh

so thap phan (8 bit thap)

Do

i d lieu ve

dummy = DoEvents()

Loop Until MSComm1.InBufferCount >= 1

instring = MSComm1.Input

j = Asc(instring)

chuyen so HEX cua d lieu thanh

so thap phan (4 bit cao)

j = j * 256 + i

j cha 4 bit cao nen phai nhan trong

so 256, j cha data

m(k) = j

mang m cha d lieu

x = x + j

x e lay gia tr trung bnh

Next k

x = x / l

x e lay gia tr trung bnh

Text4.Text = x

End Sub

Ham chr (char code as long) e oi so thap phan can truyen ra dang k t v khi truyen i may se lay ma ASCII cua k t can truyen e truyen i. Ham Asc(s as string) e lay ma ASCII cua k t a vao.

Sau khi thc thi nut lenh ADC Text4 se la gia tr trung bnh cua cac mau d lieu lay c, cac mau d lieu se c cha trong mang m, mang m nay c dung e nap vao File DataADC.xls .

Text4 va nhan Voltage

Text4 (ben phai nhan Voltage) la ni e hien th cho ngi s dung biet gia tr trung bnh cua cac mau d lieu c lay ve khi thc thi nut lenh ADC.

Nut lenh Chanel

Nut lenh nay ra lenh cho vi x l biet kenh d lieu nao can phai oc ve. Kenh chuyen oi do ngi s dung nhap vao t Text6 (ben phai nut lenh Chanel). S thc thi cua nut lenh nay khi click trai chuot vao nut lenh.

Ngoai viec chon kenh bang nut lenh chanel nay ta con co the chon kenh bang cac nut nhan phan cng khi khi ong cho vi x l .

Chng trnh nap cho nut lenh Chanel:

Private Sub Chanel_Click()

Dim i, j As Integer

i = 132

j = Text6.Text

If j = 0 Then

i = i + 16kenh 0

End If

If j = 1 Then

i = i + 80kenh 1

End If

If j = 2 Then

i = i + 32kenh 2

End If

If j = 3 Then

i = i + 96kenh 3

End If

MSComm1.Output = Chr(3)cho vi x l nhay ti viec

chon kenh

MSComm1.Output = Chr(i)gi so kenh can chuyen oi

End Sub

Trong chng trnh tren viec phat i so Integer i e chon kenh chnh la phat i byte ieu khien cho ADS7841 (xem trong phan gii thieu ve ADS7841). Kenh 0, 1, 2, 3 ng vi cac byte ieu khien (so thap phan)

148, 212, 164, 228.

Nut lenh DataADC

Nut lenh nay khong lien he en phan cng ma ch thao tac lap trnh tren may tnh. Nut lenh nay ra lenh cho hien bang tnh Excel, trong o co cha cac d lieu cua cac kenh 0, 1, 2, 3. Moi kenh la 250 mau d lieu. S thc thi cua nut lenh nay khi click trai chuot vao nut lenh.

ay ta s dung kha nang nhung d lieu gia Visual Basic va Excel nen ta can phai bo sung cac chc nang nay vao chng trnh. Mac nh khi khi ong may tnh se khong co chc nang nay. Bo sung cac chc nang nay nh sau:

Vao muc Project , chon muc Preferences , chon hai o Microsoft Excel 8.0 Object Library va Microsoft Office 8.0 Object Library, (tng ng vi hai tap tin MSO97.DLL va Excel8.OLB).

Trc khi thc thi nut lenh nay ta phai tao trc file Excel C:\huy\dataADC.xls.

Chng trnh nap cho nut lenh DataADC:

Private Sub DataADC_Click()

Dim xlApp As Excel.Application

Dim xlBook As Excel.Workbook

Dim xlsheet As Excel.Worksheet

Dim i, j As Integer

Set xlApp = Excel.Application

Set xlbook =xlApp.Workbooks.Open("C:\huy\DataADC.xls")

xlBook.Application.Visible = True hien th bang tnh Excel

Set xlsheet = xlBook.Sheets(1)

j = 1

i = Text6.Text

i = i + 2

Do

j = j + 1

xlsheet.Cells(j, i) = m(j - 1)

Loop Until (j = 250)

Set xlApp = Nothing

Set xlBook = Nothing

Set xlsheet = Nothing

End Sub

Nut lenh Chart

Nut lenh nay khong lien he en phan cng ma ch thao tac lap trnh tren may tnh. Nut lenh nay thc hien viec ve cac d lieu oc lay t cac kenh d lieu len o th . S thc thi cua nut lenh nay khi click trai vao nut lenh .

Chng trnh nap cho nut lenh Chart

Private Sub chart_Click()

Dim i , j As Integer

j = Text7.Text

so mau can ve

ReDim b(1 To j) As Double

For i = 1 To j

b( i ) = m( i )

Next i

MSChart1.ChartData = bnap data vao o th

End Sub

So mau d lieu can ve do ngi s dung nhap vao t o Text7 (ben phai nhan SO MAU).

Trong nut lenh ADC ta co e cap ve mang m (la mang e cha d lieu lay t cac kenh d lieu), en nut lenh nay d lieu a vao o th se la mang m, mang m la mang bien toan cuc.

Cu phap Redim c s dung trong chng trnh tren nham e thay oi so mau d lieu a vao o th.

e ve cac d lieu nay len o th dang giong nh dao ong k ta can phai thay oi cac property cho hop cong cu MSChart. Cach lam nh sau :

Vao trang property cua MSChart1

Trong trang Chart : Trong muc Chart type chon line (dang ng thang)