LUẬN ÁN TỎT NGHIỆP CBHD: Th.S Trần Đình Huy

Một phần của tài liệu Thiết kế thiết bị lưu trữ và truy xuất đĩa CD tự động (Trang 63 - 68)

- Đề LCD hiểu được lệnh, chúng ta cần theo đúng giao thức

LUẬN ÁN TỎT NGHIỆP CBHD: Th.S Trần Đình Huy

—=.___-F--rnm=

4.4 Cách thức truyền dữ liệu từ Visul Basic (VB) và nhân của vi

xử lý (VXL).

4.4.1 Xử lý dữ liêu và truyền từ VB.

Dim index, leng, lines, dong, data flat, buffer _array Às Integer Dim buffer(10) As String

Dim xx, yy, ZZ, Www, rr, kk As Double Dim I1, 12, 13, maxindex, pixel As Integer Dim flatfile As Double

Dim phi, phip, bien], bien2 As Double Dim bufferin(20), nhan1, nhan2 As String

Private Sub cbcom_ ClickQ ©n Error GoTo Errlabel

IfMSComm1.PortOpen Then MSComm1.PortOpen = False MSComm].CommPort = cbcom.ListIndex + l MSComm1.Settings = "19200,N,§,L" MSComml.InputLen = Ì MSComml1.RThreshold = 1 MSComm1.InputMode = comlnputModeText MSComm].PortOpen = True Errlabel:

Tf Err.Number = 8002 Then MsgBox "Select COM Port”,

vblnformation, "ROBOT Control EO" End Sub

Private Sub emdsend_ClickQ)

"Text9. [ext = "" txtnhanten. Text = ""

txtnhanma.Text = ""

If Val(txtmadia) = 0 Or Val(txtmadia. Text) > 100 Or Val(txtmadia.Text) = Null Then

MsgBox "Ma Dia Phai Khac 0 Va <= 100”

=6. Ằằ. .. a “a =— n .ằa.aẳỶïnïnsmi

SVTH: Thịnh Văn Minh — Lê Minh Hiển Trang 57

LUẬN ÁN TÓT NGHIỆP CBHD: Th.S Trần Đình Huy =————==———— =————==———— Exit Sub End If MSComml .Output = "{" MSComm1.Output = Chr(Val(txtmadia)) MSComm1]1.Oưtput = txttendia.Text MSComm1.Output = "}” End Sub

Private Sub Form_Load(Q) Ơn Error GoTo Errlabel

IfMSComm1.PortOpen Then MSComm1.PortOpen = False MSComm1.CommPort = cbcom.Listlndex + 2 MSComml .Settings = "19200,N,8,1" MSComm].InputLen = 1 MSComm1.RThreshold = 1 MSComm1.InputMode = comlnputModeText MSComm1.PortOpen = True Errlabel:

Hf Err.Number = 8002 Then MsgBox "Select COM Port”, vbInformation, "CD MANAGER"

data_ flat = 0 buffer array = 0 flatfile = Ö End Sub

Private Sub Form_ ỦUnload(Cancel As Integer)

IfMSCommIl.PortOpen Then MSComm1.PortOpen = False End Sub

Private Sub MSComml_OnComm()

Dim bufferhex, datatrans As String Dim 1 Às Integer

——— —--—ằ—_—-ằằằằỐỮớằằỒỒằnớớỒ

LUẬN ÁN TÓT NGHIỆP CBHD: Th.S Trần Đình Huy

datatrans = MSCommI.Input If datatrans = ”"" Then Exit Sub

bufferhex = Hex(Val(Asc(datatrans))) “Text9 = Text9 & " " & bufferhex

If MSCommI.CommEvent = comEvReceive Then TẾ datatrans = "{" Then buffer_array = 0 Else TẾ datatrans = "}" Then data_ flat = 0 txtnhanten.Fext=" " txinhanma.Text= " " 1xtnhanma.Text = Asc(bufferin(0)) ForI= l To (buffer_array - I) Step l

txtnhanten.Text = txtnhanten.Text & bufferin() Next

Else

bufferin(buffer_array) = datatrans buffer array = buffer_array + l

End If

End If End If

End Sub

Private Sub mnuexit_CHickQ

End

End Sub

4.4.2 Nhân xử lý dữ liêu của VXL. | //ghi 1 byte eeprom den ¡12c

void I2C_ ghi(unsigned int dchi, unsigned char dlieu)

LUẬN ÁN TÓT NGHIỆP CBHD: Th.S Trần Đình Huy =“=““=————————ễễễễễễễễ— =“=““=————————ễễễễễễễễ—

12c_startQ;

12c _write(2c_address);

12c_write(dch1/⁄256); //byte cao 12c_write(dchi%256); //byte thap

| 12c_write(dlieu);

12c s†opÔ;

| delay_ms(10);

}

//doc 1 byte eeprom tu 12c

unsigned char I2C_ doc(unsigned in dchỉ) {

unsigned char dlieu; 12c_startÔ;

12c write(i2c address);

12c_write(dch1⁄256);

12c_write(dchi%⁄2256); 12c_startQ; //start repeat 12c_write(2c address | 1); đelay_us(Š);

đlieu =i2c_read(0); /read end 12c _siopQ;

return đÌieu;

}

/⁄/USARTT Receiver interrupt service routine

interrupt [USART_RXC] void usart_rxd(void)

{

unsigned char status, data;

unsigned mf 1;

“=6... cồn -.ẳnẳnsẫẳẵỶễẫămăĩẫễ

—————————----——= Ốc CỐ CC

LUẬN ÁN TỐT NGHIỆP CBHD: Th.S Trần Đình Huy =——_————— status = UCSRA; đata = UDR; UDR = data; 1ƒ (data == '{) { đata flat= 1; buffer_array = 0; } else 1f (data =='}') { data_ flat= 0;

I2C_ ghi((nf)(bufer[0] - 1)*lengfile), buffer_array - l); for (1= 1;i<bufer_array; IFt)

I2C_ ghi(((GnÐ(buffr[0] - 1)*lengfle) + 1),

buffer|i]);

}

else

if((data_ flat == 1) & (status & (FÍRAMING_ERROR | PARITY_ERROR | DATA_OVERRUN)) = 0) PARITY_ERROR | DATA_OVERRUN)) = 0) { buffer[buffer_array] = data; buffer array++; ỹ HH nnnnnnnnnnnnnnnnnỹnỹÿyyỹyỹ¡————————————————__————————— _————————————————=

Một phần của tài liệu Thiết kế thiết bị lưu trữ và truy xuất đĩa CD tự động (Trang 63 - 68)

Tải bản đầy đủ (PDF)

(118 trang)