PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   Giao tiếp cổng COM và LPT (http://www.picvietnam.com/forum/forumdisplay.php?f=44)
-   -   Giao tiếp RS232 trên PC bằng Visual Basic. (http://www.picvietnam.com/forum/showthread.php?t=869)

nhatcuong84 02-10-2008 02:38 AM

new
 
pic-------------------pc

truemen 10-10-2008 04:37 PM

chao bac ngohaibac !
 
em dang lam giao tiep nhan du lieu tu cong COM tu thiet bi xu ly du lieu va hien thi du lieu bang phan mem viet bang VB.NET nhung ko biet cach khai bao cong COM trong VB.NET nhu the nao, cau truc day du de cong COM hoat dong roi gui va nhan du lieu nhu the nao can nhung ham nao can thiet, van de la em o biet xai ham nao va tac dung ra sao, moi vao nghe ah mongbac di truoc chi giao dum vai chieu. em cam on !

nuacuatoi2010 31-10-2008 12:29 PM

1 Attachment(s)
anh em co the giup minh dc không?
minh đang viết giao diện VB6 để hiển thi dòng và áp trên 2 ô là ô Dòng và ô áp.mình đã truyền từ pic lên rùi.hai tín hiêu này cách nhau bằng 1 khoảng trắng.bây giờ làm sao có thể tách ra để lấy hai tín hiệu cho vào 2 ô là dòng và ô áp.
minh cám ơn .

nguyenquoctoan 06-11-2008 03:40 PM

truyền nhận dữ liệu mà có ô vuông trong đó là bị ji các bác ơi,có phải sai font kô,em đa chỉnh cùng font hết mà vẫn gặp trường hợp đó...? xin chí giáo

vngps 06-11-2008 04:46 PM

GSM modem R232 - GPRS
 
Chào các Bác: Em đang dùng Modem GSM chip WaveCom. 2 modem kết nối 2 máy tính ( sim đã đăng ký GPRS) Làm sao để truyền dữ liệu bằng GPRS vậy các Bác. hay có phần mềm nào sử dụng Không?


Em dùng điện thoại gửi MMS thì không biết làm sao xuất ra màng hình

Nhờ các bác hỗ trợ.
Cảm Ơn

phủ phước 18-12-2008 01:02 PM

Truyền ADC 8 KÊNH
 
Tôi có đoạn code viết trên ccs nhưng khi chạy trên vb thì chỉ có kênh 0 là được .Xin giúp tôi tìm chổ sai:

phủ phước 18-12-2008 01:21 PM

Truyền ADC 8 KÊNH
 
Tôi có đoạn code này nhưng nó chỉ truyền lên vb kênh 0 mà thôi ,xin góp ý giúp với .thank
#include <C:\Program Files\PICC\Devices\16F877A.h>
#device *=16 ADC=8
#fuses HS,NOWDT,NOLVP,NOPROTECT
#use delay(clock=20000000)
#use rs232(baud=9600,xmit=pin_c6,rcv=pin_c7)
byte adc;
byte buffer;
#INT_TIMER0
void send_data()
{
byte begin = 0xAA;


adc = read_adc();
putc(begin);
putc(adc);

}
void main()
{
int channel;

setup_adc_ports( ALL_ANALOG );
setup_adc(ADC_CLOCK_INTERNAL );
for (channel=0;channel<=7;channel++)
{
set_adc_channel( channel );

setup_timer_0(RTCC_INTERNAL|RTCC_DIV_2);//sets the internal clock as source
enable_interrupts(GLOBAL);
enable_interrupts(INT_TIMER0); // ngat timer0 de update screen
send_data();


while(1)
{
buffer=getc();


}
}
}

HUT&I 19-12-2008 10:33 PM

Chào anh Bac!
Thật mừng là PIC việt nam có một thành viên như anh.Càng mừng hơn khi anh lại là sinh viên DHBKHN.Em thấy anh tham gia rất nhiều diễn đàn trên mạng phục anh quá.Anh có phương pháp học nào học hiệu quả chỉ giúp cho em với. Nhất là học lập trình thực sự em rất ngại động vào nó ,mặc dù ngành chúng em rất cần đến nó. Thú thực với anh em học về nó rất nhiều nhưng kết quả thì trái ngược với những j mà em dành cho nó. Rất mong nhận được sự chỉ bảo của anh.Chúc anh học tốt ,Cảm ơn anh

tungtot_vl 21-12-2008 08:39 AM

chào các bác. em muốn làm một mạch giao tiếp cổng của pc với 2 pic (ví dụ A và B). em muốn khi pc gửi data cho pic A thì chỉ có pic A nhận, B không nhận. khi pc gửi data cho pic B thì B nhận, A không nhận. các bác có cách nào thì xin chỉ mình giúp.

hoangvanhuy 22-12-2008 01:38 PM

Minh đang hoc visual basic , nen vao day. đã đăng kí rồi nhưng sao ko tải được tài liệu...Bạn nào biết chỉ mình, cảm ơn nhiều.

bacaynet 05-01-2009 11:30 AM

Anh Hải Bắc ơi! Tại sao em không lôi cái MSComm ra project của em được vậy anh! Em cần gấp để làm đồ án! Mong anh giúp đỡ, cảm ơn nhiều!

bacaynet 05-01-2009 12:53 PM

Mấy anh chị cho em hỏi thêm là:
- Code cho VDK 89 để nó và PC gửi nhận dữ liệu liên tục.
- Còn trong VB, em làm code này, không biết có đúng không:

Private Sub MSComm1_OnComm()
If MSComm1.CommEvent = comEvReceive Then
dRec = MSComm1.Input
MSComm1.Output = dSend
End If
End Sub

vandungevn 28-02-2009 11:35 PM

Lâu rùi không vào mà thấy mọi người trao đổi nhiều quá. hiiic.
Bạn nên mã hóa để cho nó gửi không bị sai tín hiệu.
VD: gửi mã hóa => gửi dữ liệu => gửi checksum.

Như vậy nếu c.hỉ gửi không thì bạn sẽ dễ hơn đó.
Còn về ADC các bạn nên dùng ADC 10 bít thì tốt hơn, nó có độ phân giải cao hơn và độ chính sác cao hơn là dùng 8 bít (đương nhiên là 1024 sẽ lớn hơn 256).

ex code: // gửi số có giá trị là 16 byte là "datasend"

void send_to_pc(unsigned int datasend, char set){
unsigned char chksum;
putc(0xAD); // gui ma hoa
putc(0xDA); // gui ma hoa
putc(set); // chon che do gui
putc((datasend>>8)&0xff); // Gui byte cao
putc(datasend & 0xff); // Gui byte thap
chksum = ((datasend>>8)|datasend))%256; // kiem tra loi
putc(chksum); // gui byte kiem tra loi
}

gửi phủ phước
code của bạn sai trong vòng for bạn chưa kết thúc chương trình, nếu bạn để như vậy thì vòng For chỉ chạy lần đầu tiên, không gửi được các kênh adc còn lại là đúng. Nên để chương trình đọc adc là chương trình con và gửi luôn là ok. như trên bạn gửi "set" là các kênh adc khác nhau là ok. như vậy vừa có thể đọc adc theo kênh vừa gửi là ok không sợ bị lỗi và bị nhầm.......

Chúc thành công nhé.

tranvangvn 04-03-2009 10:25 PM

Các bác ơi giúp em với em giao diện vi điều khiển với máy tính bằng vb.còn vi điều khiển em viết bằng ngôn ngữ c
Vb em viết đơn giản sau:
Private Sub Command1_Click()
End
End Sub

Private Sub Form_Load()
MSComm1.CommPort = 1
MSComm1.Settings = "2400,n,8,1"
MSComm1.InputLen = 0
MSComm1.PortOpen = True
End Sub

Private Sub MSComm1_OnComm()
Dim strf As String
Do
DoEvents
Loop Until MSComm1.InBufferCount >= 50
strf = MSComm1.Input
L.Caption = strf

End Sub
Vi điều khiển em viết như sau:em dùng 89C52
#include<REG52.H>
#include<stdio.h>
void xung()
{
SCON= 0x50;
TMOD= 0x20;
TH1 = 0xF3;
TR1 = 1;
TI = 1;
}
main()
{
int i;
P1=0x00;
xung();
for(;;)
{
P1=0x01;
printf("CHUNG TOI LA NNUNG CHIEN SI");
} }
Nhưng không hiểu trên máy tính toàn nhận kí tự gì ấy không được như ý nắm và báo nỗi "28", thỉnh thoảng được thì hiển thị kí tự quá nhiều và phụ thuộc vào cái này:Loop Until MSComm1.InBufferCount >= 50
Các bác nào bớt chút thời gian giải thich và khác phục cho em với
Tiện thể cho em mấy chương trình xuất nhập đơn giản trên VB và cả VDK một chương trình mà khi ta bấm 1 phím mà trên VDK các post xuất cho tín hiệu để điều khiển và ngược lại VDK gửi tín hiệu máy tính mà hiển thị trên màn hình
Các bác có gắng các lệnh đều phải có chú giải nhé !
Cám ơn những nhà thông thái!

tranvangvn 04-03-2009 10:27 PM

Gủi theo địa chỉ tranvang8@yahoo.com

tranvangvn 04-03-2009 10:32 PM

Các bác cho em cả các mã lệnh trong C với VDK truyền thông nối tiếp nhé!

tranvangvn 04-03-2009 10:39 PM

Các bác ơi giúp em với em giao diện vi điều khiển với máy tính bằng vb.còn vi điều khiển em viết bằng ngôn ngữ c
Vb em viết đơn giản sau:
Private Sub Command1_Click()
End
End Sub

Private Sub Form_Load()
MSComm1.CommPort = 1
MSComm1.Settings = "2400,n,8,1"
MSComm1.InputLen = 0
MSComm1.PortOpen = True
End Sub

Private Sub MSComm1_OnComm()
Dim strf As String
Do
DoEvents
Loop Until MSComm1.InBufferCount >= 50
strf = MSComm1.Input
L.Caption = strf

End Sub
Vi điều khiển em viết như sau:em dùng 89C52
#include<REG52.H>
#include<stdio.h>
void xung()
{
SCON= 0x50;
TMOD= 0x20;
TH1 = 0xF3;
TR1 = 1;
TI = 1;
}
main()
{
int i;
P1=0x00;
xung();
for(;
{
P1=0x01;
printf("CHUNG TOI LA NNUNG CHIEN SI");
} }
Nhưng không hiểu trên máy tính toàn nhận kí tự gì ấy không được như ý nắm và báo nỗi "28", thỉnh thoảng được thì hiển thị kí tự quá nhiều và phụ thuộc vào cái này:Loop Until MSComm1.InBufferCount >= 50
Các bác nào bớt chút thời gian giải thich và khác phục cho em với
Tiện thể cho em mấy chương trình xuất nhập đơn giản trên VB và cả VDK một chương trình mà khi ta bấm 1 phím mà trên VDK các post xuất cho tín hiệu để điều khiển và ngược lại VDK gửi tín hiệu máy tính mà hiển thị trên màn hình
Các bác có gắng các lệnh đều phải có chú giải nhé !
Cám ơn những nhà thông thái!
Các bác cho em các hàm trong C hay trong KEIL về giao tiếp máy tính nhé

tranvangvn 04-03-2009 10:41 PM

Giao tiếp RS232 trên PC bằng Visual Basic.
 
Các bác ơi giúp em với em giao diện vi điều khiển với máy tính bằng vb.còn vi điều khiển em viết bằng ngôn ngữ c
Vb em viết đơn giản sau:
Private Sub Command1_Click()
End
End Sub

Private Sub Form_Load()
MSComm1.CommPort = 1
MSComm1.Settings = "2400,n,8,1"
MSComm1.InputLen = 0
MSComm1.PortOpen = True
End Sub

Private Sub MSComm1_OnComm()
Dim strf As String
Do
DoEvents
Loop Until MSComm1.InBufferCount >= 50
strf = MSComm1.Input
L.Caption = strf

End Sub
Vi điều khiển em viết như sau:em dùng 89C52
#include<REG52.H>
#include<stdio.h>
void xung()
{
SCON= 0x50;
TMOD= 0x20;
TH1 = 0xF3;
TR1 = 1;
TI = 1;
}
main()
{
int i;
P1=0x00;
xung();
for(;
{
P1=0x01;
printf("CHUNG TOI LA NNUNG CHIEN SI");
} }
Nhưng không hiểu trên máy tính toàn nhận kí tự gì ấy không được như ý nắm và báo nỗi "28", thỉnh thoảng được thì hiển thị kí tự quá nhiều và phụ thuộc vào cái này:Loop Until MSComm1.InBufferCount >= 50
Các bác nào bớt chút thời gian giải thich và khác phục cho em với
Tiện thể cho em mấy chương trình xuất nhập đơn giản trên VB và cả VDK một chương trình mà khi ta bấm 1 phím mà trên VDK các post xuất cho tín hiệu để điều khiển và ngược lại VDK gửi tín hiệu máy tính mà hiển thị trên màn hình
Các bác có gắng các lệnh đều phải có chú giải nhé !
Cám ơn những nhà thông thái!
Các bác cho em các hàm trong C hay trong KEIL về giao tiếp máy tính nhé

t_duyphuong 14-03-2009 08:52 AM

giao tiep RS232
 
Anh Hải Bắc ơi! Cho em hỏi : Em đã dùng đoạn code mà anh post lên về giao tiếp RS232 bằng VC++ nhưng khi biên dịch thì chuơng trình báo lỗi là chưa định nghĩa "COM1" và "COM2". Anh có thể chỉ cho em cách sửa lỗi không ạ?
Em vẫn chưa hiểu là chuơng trình tự nhận ra cổng COM hay là mình phải cấu hình như thế nào cho nó?
Cho em hỏi luôn là trên máy tính nó có ghi cho mình biết cái nào là "COM1" và "COM2" cho mình biết ko?
Em xin cám ơn!!!!!!!!!!!!!!!!!

phandinh 25-03-2009 12:52 AM

i'm beginning
 
chào mọi người . mình mới nghiên cứu về pic.
chủ đề giao tiếp này mình thấy cực cực hay & thực tế.
mới tìm hiểu nên lùng bùng quá. có gì nhờ mọi người giúp ( dù câu hỏi ngây thơ nhưng đừng cười nha).
mình tự tin là mình làm được.
" impossible is nothing "

phandinh 25-03-2009 11:04 AM

Có ai đã làm bài của bác Ngohaibac chưa , giúp mình với
 
mình tải bài mẫu của bác nhb ( test truyền nhận visual basic 6). mình làm đúng trình tự nhưng ko được . ai dã làm qua chỉ mình với.
cảm ơn nhiều!

nguyennam8888 25-03-2009 10:47 PM

Trích:

Nguyên văn bởi phandinh (Post 23975)
mình tải bài mẫu của bác nhb ( test truyền nhận visual basic 6). mình làm đúng trình tự nhưng ko được . ai dã làm qua chỉ mình với.
cảm ơn nhiều!

có phải bác lười không chịu đánh lại lệnh , mà chì copy cách lệnh từ tài liệu của bác NHB vào phải không? bạn phai đánh vào cho nó wen chứ , khi copy vào thì luc chay nó thì VB sẽ báo lỗi nhiều lắm.

binhbk2008 25-03-2009 11:00 PM

mọi người có thể dùng labview đi bây giờ nó có bản mới nhất là 8.6 mình đang dùng 8.5. Nó có các khối hỗ trợ việc giao tiếp USB và com luôn. hay lắm có gì thì mail cho mình binh_bk_2008@yahoo.com

phandinh 26-03-2009 11:44 AM

uh. tại mình chưa thông thạo vb lắm nên copy y chang luôn.
rồi cho nó chạy. c.trình có chạy nhưng không báo lỗi bạn à.
mình thử send 1 kí tự mà ko thấy hiện tượng gì.
Các bước mình làm như sau:
1. thiết lâp các thông số cho cổng com 1 ( như hd trong TUT Visual C <--> PC )
2. nối chân 2 & 3
3. dùng luôn bản mẫu của bác NHB ( vb)
4. chạy ---> ko hiện tượng.
Bạn xem rồi góp ý giúp mình nha . mục đích trước tiên của mình là test xem có truyền , nhận dc ko.
thanks bạn nhiều

nguyennam8888 26-03-2009 12:50 PM

2 Attachment(s)
Trích:

Nguyên văn bởi phandinh (Post 24023)
uh. tại mình chưa thông thạo vb lắm nên copy y chang luôn.
rồi cho nó chạy. c.trình có chạy nhưng không báo lỗi bạn à.
mình thử send 1 kí tự mà ko thấy hiện tượng gì.
Các bước mình làm như sau:
1. thiết lâp các thông số cho cổng com 1 ( như hd trong TUT Visual C <--> PC )
2. nối chân 2 & 3
3. dùng luôn bản mẫu của bác NHB ( vb)
4. chạy ---> ko hiện tượng.
Bạn xem rồi góp ý giúp mình nha . mục đích trước tiên của mình là test xem có truyền , nhận dc ko.
thanks bạn nhiều

bây giờ mình gởi cho bạn 1 bài tập VB đơn giàn để test truyền- nhận, có cả file GTMT mà mình từng tìm hiểu, học cái này xong bạn hoc them cách sử dụng combox trong VB nữa là tự có thể viết giống NHB rồi.
Chúc bạn thành công.

phandinh 26-03-2009 01:24 PM

cảm ơn bạn thật nhiều. mình sẽ xem kĩ tài liệu của bạn
Có gì nhờ mọi người nữa.
thân chào

toiyeutdh8x 05-04-2009 09:59 AM

chào bạn Hải Bắc. Mình đang làm về đề tài cân điện tử.
Mình thấy trên diễn đàn ít ai làm về đề tài này.Mình dùng viđiều khiển AVR có tích hợp bộ ADC trong chip con atmega8535.
Mình gặp khó khăn ngay phần xử lý tín hiệu cho loadcell.Loadcell mình dùng loại BSA-1t.
Vì thời gian rất gấp nên muôn sự giúp đỡ của các bạn trên diễn đàn.
Bạn đã từng làm rồi thì hướng dẫn mình phần này với. Và có tài liệu về loadcell loại này thì gửi giúp mình.
Mình chân thành cảm ơn!
Địa chỉ mailcủa mình:
toiyeuvietnam8x@gmail.com

namqn 05-04-2009 04:48 PM

Trích:

Nguyên văn bởi toiyeutdh8x (Post 24353)
chào bạn Hải Bắc. Mình đang làm về đề tài cân điện tử.
Mình thấy trên diễn đàn ít ai làm về đề tài này.Mình dùng viđiều khiển AVR có tích hợp bộ ADC trong chip con atmega8535.
Mình gặp khó khăn ngay phần xử lý tín hiệu cho loadcell.Loadcell mình dùng loại BSA-1t.
Vì thời gian rất gấp nên muôn sự giúp đỡ của các bạn trên diễn đàn.
Bạn đã từng làm rồi thì hướng dẫn mình phần này với. Và có tài liệu về loadcell loại này thì gửi giúp mình.
Mình chân thành cảm ơn!
Địa chỉ mailcủa mình:
toiyeuvietnam8x@gmail.com

Nếu bạn gặp khó khăn với việc code cho AVR, bạn nên hỏi ở www.dientuvietnam.net. Diễn đàn này chủ yếu dành cho PIC.

Thân,

tpasterisk 08-04-2009 01:08 PM

Trích:

Nguyên văn bởi nguyennam8888 (Post 24025)
bây giờ mình gởi cho bạn 1 bài tập VB đơn giàn để test truyền- nhận, có cả file GTMT mà mình từng tìm hiểu, học cái này xong bạn hoc them cách sử dụng combox trong VB nữa là tự có thể viết giống NHB rồi.
Chúc bạn thành công.

Bác ơi bác có thể chỉ em cách làm hình cái lá giống hình dưới bác đã làm dc ko???Cám ơn bác....

http://www.upanh.com/uploads/8-April...c40n2zehxk.jpg

nguyennam8888 10-04-2009 10:08 AM

Trích:

Nguyên văn bởi tpasterisk (Post 24502)
Bác ơi bác có thể chỉ em cách làm hình cái lá giống hình dưới bác đã làm dc ko???Cám ơn bác....

http://www.upanh.com/uploads/8-April...c40n2zehxk.jpg

bạn vào thuộc tính Picture của From mả bạn đang làm việc ấy, click vao nó rồi tìm thuộc tính Picture , click vào rồi chỉ đường đẫn đến hình cần lấy.

phandinh 10-04-2009 09:51 PM

chuyển giá trị ADC bằng CCS và VB. cách nào dễ hơn ?
 
mọi người cho em hỏi :
.giá trị đọc được từ ADC là số nhị phân (10 bit chẳng hạn), vậy khi mình dùng lệnh putc(read_adc); thì c.trình sẽ tách thành 2 byte ( 1 byte chứa 8 bit và 1 byte chứa 2 bit ) để truyền phải không ?.
.cho em hỏi các lệnh để chuyển từ hệ nhị phân ==> thập phân trong CCS.

namqn 10-04-2009 11:23 PM

Trích:

Nguyên văn bởi phandinh (Post 24636)
mọi người cho em hỏi :
.giá trị đọc được từ ADC là số nhị phân (10 bit chẳng hạn), vậy khi mình dùng lệnh putc(read_adc); thì c.trình sẽ tách thành 2 byte ( 1 byte chứa 8 bit và 1 byte chứa 2 bit ) để truyền phải không ?.
.cho em hỏi các lệnh để chuyển từ hệ nhị phân ==> thập phân trong CCS.

putc() nhận đối số là một byte, do đó bạn không thể truyền giá trị 10-bit cho putc() với hy vọng nó sẽ tách thành 2 byte cho bạn.

Không có lệnh để chuyển số nhị phân sang thập phân, chỉ có các giải thuật để chuyển số nhị phân sang số thập phân biểu diễn bằng BCD hay ASCII.

CCS C cung cấp hàm itoa() để chuyển số nhị phân kiểu integer thành chuỗi ký tự ASCII tương ứng giá trị nhị phân đó (trong hệ thập phân).

Thân,

tpasterisk 11-04-2009 04:22 PM

Trích:

Nguyên văn bởi nguyennam8888 (Post 24605)
bạn vào thuộc tính Picture của From mả bạn đang làm việc ấy, click vao nó rồi tìm thuộc tính Picture , click vào rồi chỉ đường đẫn đến hình cần lấy.

Bác ơi , bác đã từng lập trình gửi nhận tin nhắn bằng tập lệnh AT (trên VB) chưa? nếu rùi bác có thể cho em xin mã nguồn để tham khảo đưộc ko?????Em đang bí ...huhuhuhu,...

chuabietyeu 15-04-2009 01:14 AM

Cám ơn các bác đã tạo ra luồng này, nhưng Sao ko thấy bác nào làm về VB 2008 nhỉ???
Em đang làm đề tài mô phỏng mạng nơ ron trên nền FPGA có dùng giao tiếp với máy tính, may quá đọc đc luồng này em tích lũy đc rất nhiều! cám ơn các bác nhiều nhé! đặc biệt là anh NHB :D

digan 16-04-2009 11:54 AM

em dùng đoạn CT này để KT nếu có ngắ nhận thì sẽ thay đổi trạng thái LED ở PORTB để nhận biết.nhưng không dc. các tiền bối chỉ giúp xem sai ở đâu.
code của em:
#include "D:\RS232\RS232.h"
#include <def_877a.h>
#FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOWRT
#use delay(clock=20000000)
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7)

char buf;

#int_RDA
void RDA_isr()
{
buf=getc();
putc(buf);
portb = 0x0f;
}

void main()
{
trisb=0x00;
portb = 0x00;
enable_interrupts(INT_RDA);
enable_interrupts(GLOBAL);

while(1)
{

}
}

mtuankct 16-04-2009 12:47 PM

đọc chương trình của bạn có vẻ ổn
Phần cứng của bạn thế nào? bạn truyền nhận giữa PC va vdk hay là giữa 2 vdk?
Mình nghĩ có thể là lỗi phần cứng, bạn có thể kiểm tra bằng cách tháo con PIC ra, nối chân TX và RX trên board lại với nhau rồi truyền nhận bằng máy tính nếu truyền nhận OK nghĩa là phần cứng của bạn không sao

digan 16-04-2009 02:39 PM

Mình truyền giứa PC và vi điều khiển
nối chân 2 và chân 3 của cổng com ct chạy tốt.
test các chức năng in/out của các port trên VDK cũng tốt kho sai
mạch max232 nối: Max232 pin12----------pin25 PIC
pin11----------pin26

tungtot_vl 16-04-2009 03:58 PM

bạn thử đoạn này xem sao

#int_RDA
void RDA_isr()
{ int buf;
buf=getc();
putc(buf);
portb = 0x0f;
delay_ms(100);
}

void main()
{
set_tris_b(0);
set_tris_c(0x80);
enable_interrupts(INT_RDA);
enable_interrupts(GLOBAL);

while(1)
{
portb = 0xf0;
delay_ms(100);

}
}

lequocbao 16-04-2009 06:00 PM

#int_RDA
void RDA_isr()
{
buf=getc();
putc(buf);
portb = 0x0f;//----------> portb =0x0f khi có ngắt lần thứ mấy vẫn không đổi
}

void main()
{
trisb=0x00;
portb = 0x00;//---->trạng thái đầu của portB
enable_interrupts(INT_RDA);
enable_interrupts(GLOBAL);

while(1)
{

}
}

theo chương trình bạn viết thì portb chỉ thay đổi trạng thái chỉ 01 lần duy nhất thôi.sau đó dù có ngắt xảy ra bao nhiêu lần đi chăng nữa thì portb vẫn luôn không đổi và = 0x0f forever!vì vậy bạn cần quan sát kỹ trạng thái của portb khi mới cấp nguồn cho pic và khi bạn gưi dữ liệu qua rs232 lần đâu tiên là sẽ có sự khác nhau như bạn mong muốn và sau đó thì portb sẽ không đổi.

phandinh 28-04-2009 02:30 PM

cứu em với VB6
 
Em đang viết VB 6. khi em vào File --> save project as --> lưu 1 tên khác , khi mở lại thì
tất cả các file trước đều bị đè lên.
Em cũng thử tạo 1 folder mới rồi "save project as" vào folder vừa tạo, nhưng cũng bị như vậy
Ví dụ nhé : mở Project 1 --> chỉnh sửa --> lưu lại thành tên khác Project 2 . khi mở
Project 1 thì nội dung lại giống Project 2 .
Giúp em với


Múi giờ GMT. Hiện tại là 07:26 PM.

Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam