![]() |
|
Tài trợ cho PIC Vietnam |
Giao tiếp cổng COM và LPT RS232, RS485 và LPT là những giao tiếp cơ bản và kinh điển khi mới học về vi điều khiển... |
|
Ðiều Chỉnh | Xếp Bài |
![]() |
#20 |
Đệ tử 5 túi
Tham gia ngày: Dec 2010
Bài gửi: 101
: |
giup do em voi cac pro
em có một số thấp mắt như sau ve doan coed nay :
#include <16f877a.h> #device 16f877a*16ADC=10 #fuses nowdt,nolvp,noprotect,xt,put #include <DEFS_16F877A.h> #include <string.h> #include <stdlib.h> #use delay(clock=4000000) #use fast_io(b) #use fast_io(c) #use fast_io(a) #bit RS = portA.0 #bit RW = portA.1 #bit E = portA.2 #define lcd PORTD #use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7) char data; int t; char luukytu[16]; int8 dem; void goilenh(); void goi_dulieu(); #int_RDA void ngat_RDA() { if (0 != kbhit()) { data = fgetc(); if (data==':') dem=0; else dem++; luukytu[dem]=data; putc(data); } } void main() { enable_interrupts(int_RDA); enable_interrupts(global); set_tris_c(0x80); set_tris_a(0); set_tris_d(0); portc=0; portd=0; porta=0; delay_ms(100);// CHOI THOI GIAN KHOI DONG LCD for(t=0;t<16;t++) { lcd=0x38; goilenh(); lcd=0x0e; goilenh(); lcd=0x06; goilenh(); lcd=0x80; goilenh(); lcd=luukytu[t]; goi_dulieu(); delay_ms(1); } } /*Ham yeu cau goi lenh dieu khien LCD*/ void goilenh() { RS = 0; RW = 0; E = 1; E = 0; delay_ms(1); } /*Ham yeu cau goi du lieu hien thi len LCD*/ void goi_dulieu() { RS = 1; RW = 0; E = 1; E = 0; delay_ms(1); } doan code vb: Option Explicit Dim i As Integer Private Sub cmdchu_Click() Text1.Text = "" Text2.Text = "" End Sub Private Sub cmdsend_Click() MSComm1.Output = Text2.Text End Sub Private Sub cmdthoat_Click() MsgBox "Thoat Khoi Chuong Trinh" End End Sub Private Sub Form_Load() MSComm1.CommPort = 2 'cong COM 2 MSComm1.Settings = "9600,N,8,1" 'Baudrate=9600,Ko KT chan le,frame 8 bit,1 bit stop MSComm1.InBufferSize = 1024 'Bo dem 1024 byte thi day MSComm1.InputLen = 0 'Doc toan bo gia tri bo dem MSComm1.RThreshold = 1 'Cho phep ngat khi su kien Receiver o MSCOMM MSComm1.SThreshold = 0 'Ko cho phep ngat khi su kien Send o MMSCOMM MSComm1.OutBufferSize = 512 MSComm1.InputMode = comInputModeText MSComm1.PortOpen = True 'Mo cong COM End Sub Private Sub MSComm1_OnComm() Dim StringIn As String If MSComm1.CommEvent = comEvReceive Then StringIn = MSComm1.Input Text1.Text = StringIn End If End Sub + thứ nhất: dùng giao diện vb để truyền một chuổi ký tự từ pc xuống pic để hiện thị lên lcd .em còn yếu về lập trình lắm nên không sửa được lổi nên em mong các bác có thể giúp em với.em chĩ thuc hiện dc viec truyen một ký tự xuống và hiện thị lên lcd .còn một chuổi thì không được như tên mình chẳn hạn.chương trình này nhận dữ liệu phản hồi từ pic thì đúng nhưng nó không hiện thị trên lcd gì hết .chắc do chương trình hiện thị sai thì phải mà em không biết sửa như thế nào nào + thứ hai : là làm sao mình có thể lưu chuỗi ký tự nhận dc tu pc và lưu nó vào mảng động rồi sao đó lấy chuỗi ký tự trong mảng hiện thị lên một cái gì đó. + thứ ba : em muốn hiện thị nhiệt độ lên máy tính thì truyền như thế nào .ví dụ 30 độ thì ta có cần tách số 30 này thành số 3 và số 0 để truyền lên không hay là truyền số 30 lên luôn trên vb khai bao nhận có phải là khai báo biến là integer hoặc byte gj không .em cần một số ý kiến để đã thông nguyệt đạo .mong các bac giúp em thanhk nhiều |
![]() |
![]() |
|
|