thesis đồ án môn học điện cơ
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)