<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Blog ngohaibac &#187; Giao tiếp máy tính theo chuẩn RS232</title>
	<atom:link href="http://www.ngohaibac.net/category/programming-my_work/giao-tiep-may-tinh/giao-tiep-rs232/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ngohaibac.net</link>
	<description>Hãy chia sẻ để được chia sẻ.</description>
	<lastBuildDate>Sat, 15 Oct 2011 14:02:57 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Serial Port Complete Second Edition</title>
		<link>http://www.ngohaibac.net/serial-port-complete-second-edition/</link>
		<comments>http://www.ngohaibac.net/serial-port-complete-second-edition/#comments</comments>
		<pubDate>Tue, 28 Apr 2009 08:57:22 +0000</pubDate>
		<dc:creator>ngohaibac</dc:creator>
				<category><![CDATA[Giao tiếp RS232]]></category>
		<category><![CDATA[Jan Axelson]]></category>
		<category><![CDATA[RS232]]></category>
		<category><![CDATA[Serial Port Complete]]></category>

		<guid isPermaLink="false">http://www.ngohaibac.net/?p=1054</guid>
		<description><![CDATA[Homepage: http://lvr.com/ Chào các bạn. Sau khi phiên bản thứ nhất của cuốn Serial Port Complete ra đời thì bây giờ tác giả Jan Axelson lại cho ra đời phiên bản thứ 2. Chúng ta hãy xem lời giới thiệu và content của tài liệu này. From the Introduction When I wrote the first edition [...]


Related posts:<ol><li><a href='http://www.ngohaibac.net/lap-trinh-giao-tiep-rs232-qua-matlab/' rel='bookmark' title='Lập trình giao tiếp RS232 qua Matlab'>Lập trình giao tiếp RS232 qua Matlab</a></li>
<li><a href='http://www.ngohaibac.net/huong-dan-lap-trinh-giao-tiep-rs232-tren-pc-bang-visual-c-60/' rel='bookmark' title='Hướng dẫn lập trình giao tiếp RS232 trên PC bằng Visual C++ 6.0'>Hướng dẫn lập trình giao tiếp RS232 trên PC bằng Visual C++ 6.0</a></li>
<li><a href='http://www.ngohaibac.net/real-time-and-embedded-guide/' rel='bookmark' title='Real Time and Embedded Guide'>Real Time and Embedded Guide</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p></p><p>Homepage: <a href="http://lvr.com/">http://lvr.com/</a></p>
<p><a rel="lightbox" href="http://lvr.com/images/spc2.jpg" target="_blank"><img src="http://lvr.com/images/spc2.jpg" alt="" /></a></p>
<p>Chào các bạn.</p>
<p>Sau khi phiên bản thứ nhất của cuốn Serial Port Complete ra đời thì bây giờ tác giả Jan Axelson lại cho ra đời phiên bản thứ 2. Chúng ta hãy xem lời giới thiệu và content của tài liệu này.</p>
<blockquote>
<h4>From the Introduction</h4>
<p>When I wrote the first edition of this book, the RS-232 serial port was the workhorse of PC interfaces. Modems and scores of other peripherals connected to PCs via the serial ports that were present on every machine. <a href="http://lvr.com/spcintr.htm">Read more</a>.</p>
<h4>Contents</h4>
<p>Introduction<br />
Acknowledgments<br />
1 Options and Choices<br />
2 Formats and Protocols<br />
3 COM Ports on PCs<br />
4 Inside RS-232<br />
5 Designing RS-232 Links<br />
6 Inside RS-485<br />
7 Designing RS-485 Links and Networks<br />
8 Going Wireless<br />
9 Using .NET’s SerialPort Class<br />
10 Managing Ports and Transfers in .NET<br />
11 Ports for Embedded Systems<br />
12 Network Programming<br />
13 An RS-485 Network<br />
14 Inside USB<br />
15 Using Special-function USB Controllers<br />
16 Using Generic USB Controllers<br />
Index</p>
<p><a href="http://lvr.com/spctoc.htm">Detailed contents</a></p></blockquote>
<p>Xem chi tiết thêm tại: <a href="http://lvr.com/spc.htm">http://lvr.com/spc.htm</a></p>
<p>Hồi năm thứ 3 khi mình nghiên cứu về lập trình RS232 thì đọc tài liệu này đầu tiên, tài liệu nói khá đầy đủ. Sau đó có viết một vài bài trên dientuvietnam dựa trên tài liệu này với một phần là dịch ở đây ra <img src="http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/4.gif" alt="Big Grin" />.</p>
<p>Vì vậy, mình khuyên bạn nào học giao tiếp RS232 nên đọc tài liệu này trước nhé.</p>
<p>Tài liệu này có bản quyền, nên khuyến khích các bạn mua nhé. Riêng với sinh viên thì có thể lấy ở chỗ <a href="http://box.net/rssdownload/281370126/Lakeview.Research.Serial.Port.Complete.2nd.Edition.Dec.2007.pdf" target="_blank">này</a></p>
<h3>Book Information</h3>
<p>Price: $39.95<br />
380 pages<br />
Publication date: Dec. 2007<br />
ISBN 978-1931448-06-2</p>
<img src="http://www.ngohaibac.net/?ak_action=api_record_view&id=1054&type=feed" alt="" />

<p>Related posts:<ol><li><a href='http://www.ngohaibac.net/lap-trinh-giao-tiep-rs232-qua-matlab/' rel='bookmark' title='Lập trình giao tiếp RS232 qua Matlab'>Lập trình giao tiếp RS232 qua Matlab</a></li>
<li><a href='http://www.ngohaibac.net/huong-dan-lap-trinh-giao-tiep-rs232-tren-pc-bang-visual-c-60/' rel='bookmark' title='Hướng dẫn lập trình giao tiếp RS232 trên PC bằng Visual C++ 6.0'>Hướng dẫn lập trình giao tiếp RS232 trên PC bằng Visual C++ 6.0</a></li>
<li><a href='http://www.ngohaibac.net/real-time-and-embedded-guide/' rel='bookmark' title='Real Time and Embedded Guide'>Real Time and Embedded Guide</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.ngohaibac.net/serial-port-complete-second-edition/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Phan tich thuat toan: thuc hien lenh dieu khien tu PC qua RS232</title>
		<link>http://www.ngohaibac.net/phan-tich-thuat-toan-thuc-hien-lenh-dieu-khien-pc-qua-rs232/</link>
		<comments>http://www.ngohaibac.net/phan-tich-thuat-toan-thuc-hien-lenh-dieu-khien-pc-qua-rs232/#comments</comments>
		<pubDate>Sat, 12 Jul 2008 14:52:08 +0000</pubDate>
		<dc:creator>ngohaibac</dc:creator>
				<category><![CDATA[Giao tiếp RS232]]></category>
		<category><![CDATA[Microchip PIC]]></category>
		<category><![CDATA[Microprocessing]]></category>
		<category><![CDATA[PIC]]></category>
		<category><![CDATA[RS232]]></category>

		<guid isPermaLink="false">http://www.ngohaibac.net/phan-tich-thuat-toan-thuc-hien-lenh-dieu-khien-pc-qua-rs232/</guid>
		<description><![CDATA[Chào các bạn. Không biết ai đã đọc bài viết của mình PIC16F887 – Điều khiển thời gian đóng cắt một led từ PC qua UART chưa. Trong này, mình có thực hiện đặt thời gian đóng cắt từ PC bằng lệnh với cú pháp. Txyzt#: trong đó  xyzt là thời gian tính theo hệ [...]


Related posts:<ol><li><a href='http://www.ngohaibac.net/pic16f887-dieu-khien-thoi-gian-dong-cat-mot-led-tu-pc-qua-uart/' rel='bookmark' title='PIC16F887 Điều khiển thời gian đóng cắt một led từ PC qua UART'>PIC16F887 Điều khiển thời gian đóng cắt một led từ PC qua UART</a></li>
<li><a href='http://www.ngohaibac.net/lap-trinh-c-cho-vi-dieu-khien-van-de-khai-bao-bien/' rel='bookmark' title='Lập trình C cho vi điều khiển: vấn đề khai báo biến'>Lập trình C cho vi điều khiển: vấn đề khai báo biến</a></li>
<li><a href='http://www.ngohaibac.net/phuong-phap-quet-keypad-ma-tran-ban-phim-dung-ngat-timer/' rel='bookmark' title='Phương pháp quét Keypad ma trận dùng ngắt Timer'>Phương pháp quét Keypad ma trận dùng ngắt Timer</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p></p><p>Chào các bạn.</p>
<p>Không biết ai đã đọc bài viết của mình <a href="http://www.ngohaibac.net/pic16f887-dieu-khien-thoi-gian-dong-cat-mot-led-tu-pc-qua-uart/" target="_blank">PIC16F887 – Điều khiển thời gian đóng cắt một led từ PC qua UART</a> chưa. Trong này, mình có thực hiện đặt thời gian đóng cắt từ PC bằng lệnh với cú pháp.</p>
<p>Txyzt#: trong đó  xyzt là thời gian tính theo hệ hexa.</p>
<p>Đây là đoạn chương trình xử lý ngắt UART:</p>
<table border="1" cellspacing="0" cellpadding="2" width="400">
<tbody>
<tr>
<td width="400" valign="top">void RxIntFcn(void){<br />
UART_Data = UART_Read();<br />
UART_PrChar(UART_Data);<br />
// Detect set time command<br />
// as format: Txy#<br />
switch (progress){<br />
case 0:                //Initialize<br />
if(UART_Data == 'T')<br />
progress = 1;<br />
else<br />
progress = 0;<br />
switch(UART_Data){<br />
case '1':<br />
//RB6       = 1;<br />
led1_cntL = 0x6F; // 1/9 s = 111 ms<br />
led1_cntH = 1;<br />
break;<br />
case '2':<br />
//RB6       = 1;<br />
led1_cntL = 0xDE; // 2/9<br />
led1_cntH = 0;<br />
break;<br />
case '3':<br />
//RB5      = 1;<br />
led1_cntL = 0x4D;    // 1s = 1000 = 0x03E8<br />
led1_cntH = 0x1;<br />
break;<br />
case '4':<br />
//RB5      = 1;<br />
led1_cntL = 0xBC;    // 5s = 5000 = 0x1388<br />
led1_cntH = 0x01;<br />
break;<br />
case '5':<br />
//RB5      = 1;<br />
led1_cntL = 0x2B;    // 5s = 5000 = 0x1388<br />
led1_cntH = 0x02;<br />
break;<br />
case '6':<br />
//RB5      = 1;<br />
led1_cntL = 0x9A;    // 5s = 5000 = 0x1388<br />
led1_cntH = 0x02;<br />
break;<br />
case '7':<br />
//RB5      = 1;<br />
led1_cntL = 0x09;    // 5s = 5000 = 0x1388<br />
led1_cntH = 0x03;<br />
&amp;<br />
#160;                   break;<br />
case '8':<br />
//RB5      = 1;<br />
led1_cntL = 0x78;    // 5s = 5000 = 0x1388<br />
led1_cntH = 0x03;<br />
break;<br />
case '9':<br />
//RB5      = 1;<br />
led1_cntL = 0xE7;    // 5s = 5000 = 0x1388<br />
led1_cntH = 0x03;<br />
break;<br />
case '0':<br />
//RB5      = 1;<br />
led1_cntL = 0xE8;    // 5s = 5000 = 0x1388<br />
led1_cntH = 0x03;<br />
break;<br />
default:<br />
PORTB   &amp;= 0x80;<br />
};<br />
break;<br />
case 1:                // Received 'T' character<br />
// Determind next state<br />
if (ishexa(UART_Data) == 1){<br />
progress = 2;<br />
// Write data to acc1<br />
acc1     = ascii2num(UART_Data);<br />
}<br />
else{<br />
UART_PrString(" Command error");<br />
progress = 0;<br />
};<br />
break;<br />
case 2:                // Received 'x' character<br />
if (ishexa(UART_Data) == 1){<br />
progress = 3;<br />
// Write data to acc2<br />
acc2     = ascii2num(UART_Data);<br />
}<br />
else{<br />
UART_PrString(" Command error");<br />
progress = 0;<br />
};<br />
break;<br />
case 3:                // Received 'x' character<br />
if (ishexa(UART_Data) == 1){<br />
progress = 4;<br />
// Write data to acc2<br />
acc3     = ascii2num(UART_Data);<br />
}<br />
else{<br />
UART_PrString(" Command error");<br />
progress = 0;<br />
};<br />
break;<br />
case 4:                // Received 'x' character<br />
if (ishexa(UART_Data) == 1){<br />
progress = 5;</p>
<p>;            // Write data to acc2<br />
acc4     = ascii2num(UART_Data);<br />
}<br />
else{<br />
UART_PrString(" Command error");<br />
progress = 0;<br />
};<br />
break;<br />
case 5:<br />
if (UART_Data == '#'){<br />
progress = 0;<br />
// Write 'OK' statement<br />
UART_PrString(" Timer is set");<br />
// Update data from ACC to led1_counter_acc<br />
led1_cnt_acc1 = (acc1&lt;&lt;4) | acc2;<br />
led1_cnt_acc2 = (acc3&lt;&lt;4) | acc4;<br />
}<br />
else{<br />
UART_PrString(" Command error");<br />
progress = 0;<br />
};<br />
break;<br />
default: progress = 0;<br />
break;<br />
};</p>
<p>// On, off command<br />
switch(UART_Data){<br />
case 'P':        // On led<br />
// Update led1_counter<br />
led1_cntH = led1_cnt_acc1;<br />
led1_cntL = led1_cnt_acc2;<br />
break;<br />
case 'S':<br />
// Clear led1_counter content<br />
led1_cntH = 0;<br />
led1_cntL = 0;<br />
break;<br />
};<br />
}</td>
</tr>
</tbody>
</table>
<p>Thuật toán mình sử dụng rất đơn giản: dùng một biến progress là biến quá trình. Mặc định giá trị này là 0, khi nhận dc đúng kí tự T thì biến sẽ có giá trị = 1. Khi đó, nó sẽ kiểm tra tiếp theo có phải gõ vào là chữ số từ 0 đến 9, và từ A đến F hay không.Mỗi trạng thái, khi nhận đúng đều chuyển từ giá trị string sang giá trị số, ví dụ: kí tự ‘0’ chuyển thành giá trị unsigned char là 1. Xem hàm này trong hàm system.h. Nếu đúng thì progress tiếp tục tăng đến trạng thái kiểm tra tiếp theo, nếu không nó sẽ báo lỗi “Command Error” gửi lên PC.</p>
<p>Tiếp tục, đến cuối cùng khi nhận xong kí tự # thì tức là đã nhận đúng lệnh và thực hiện gán dữ liệu để lấy ra byte cao và byte thấp của giá trị nhập vào.</p>
<p>Đây là hàm system.h</p>
<table border="1" cellspacing="0" cellpadding="2" width="400">
<tbody>
<tr>
<td width="400" valign="top">bit ishexa(unsigned char a){<br />
if ((a &gt;= ‘0′ &amp;&amp; a&lt;= ‘9′) || (a&gt;= ‘A’ &amp;&amp; a&lt;= ‘F’))<br />
return 1;<br />
else return 0;<br />
};</p>
<p>// Convert from ASCII to number<br />
unsigned char ascii2num(unsigned char a){<br />
if( a &gt;= ‘0′ &amp;&amp; a&lt;= ‘9′)<br />
return (a-’0′);<br />
else<br />
return (a-’A’ + 0×0A);<br />
}</td>
</tr>
</tbody>
</table>
<p>Hi vọng phân tích của mình làm các bạn hiểu được cách để thực hiện các lệnh điều khiển từ PC hiệu quả.</p>
<p>Chúc các bạn thành công.</p>
<img src="http://www.ngohaibac.net/?ak_action=api_record_view&id=168&type=feed" alt="" />

<p>Related posts:<ol><li><a href='http://www.ngohaibac.net/pic16f887-dieu-khien-thoi-gian-dong-cat-mot-led-tu-pc-qua-uart/' rel='bookmark' title='PIC16F887 Điều khiển thời gian đóng cắt một led từ PC qua UART'>PIC16F887 Điều khiển thời gian đóng cắt một led từ PC qua UART</a></li>
<li><a href='http://www.ngohaibac.net/lap-trinh-c-cho-vi-dieu-khien-van-de-khai-bao-bien/' rel='bookmark' title='Lập trình C cho vi điều khiển: vấn đề khai báo biến'>Lập trình C cho vi điều khiển: vấn đề khai báo biến</a></li>
<li><a href='http://www.ngohaibac.net/phuong-phap-quet-keypad-ma-tran-ban-phim-dung-ngat-timer/' rel='bookmark' title='Phương pháp quét Keypad ma trận dùng ngắt Timer'>Phương pháp quét Keypad ma trận dùng ngắt Timer</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.ngohaibac.net/phan-tich-thuat-toan-thuc-hien-lenh-dieu-khien-pc-qua-rs232/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Vẽ đồ thị trong Matlab</title>
		<link>http://www.ngohaibac.net/ve-do-thi-trong-matla/</link>
		<comments>http://www.ngohaibac.net/ve-do-thi-trong-matla/#comments</comments>
		<pubDate>Tue, 27 May 2008 02:38:35 +0000</pubDate>
		<dc:creator>minhthuat6573</dc:creator>
				<category><![CDATA[Giao tiếp RS232]]></category>
		<category><![CDATA[Matlab]]></category>
		<category><![CDATA[FPGA]]></category>
		<category><![CDATA[RS232]]></category>

		<guid isPermaLink="false">http://www.ngohaibac.net/?p=97</guid>
		<description><![CDATA[Mình đang làm đồ án về đề tài giao tiếp máy tính và vđk qua công com, mình có 1 thắc mắc mong được các bạn chỉ giáo: khi dữ liệu được truyền vào máy tính thì có sự kiện BytesAvailable, mình viết hàm serial_Callback() để đọc dữ liệu này như sau: function serial_CallBack(obj,event) inval=fread(obj,1); [...]


Related posts:<ol><li><a href='http://www.ngohaibac.net/lap-trinh-gui-trong-matlab-chap1/' rel='bookmark' title='Lập trình giao diện GUI trong Matlab (Phần 1)'>Lập trình giao diện GUI trong Matlab (Phần 1)</a></li>
<li><a href='http://www.ngohaibac.net/hien-thi-led-7-thanh-tren-gui-matlab/' rel='bookmark' title='Hiển thị Led 7 thanh trên GUI Matlab'>Hiển thị Led 7 thanh trên GUI Matlab</a></li>
<li><a href='http://www.ngohaibac.net/cac-tinh-chat-cua-cac-dieu-khien-trong-gui-matlab/' rel='bookmark' title='C&#225;c t&#237;nh chất của c&#225;c điều khiển trong GUIDE Matlab'>C&#225;c t&#237;nh chất của c&#225;c điều khiển trong GUIDE Matlab</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p></p><p>Mình đang làm đồ án về đề tài giao tiếp máy tính và vđk qua công com, mình có 1 thắc mắc mong được các bạn chỉ giáo: khi dữ liệu được truyền vào máy tính thì có sự kiện BytesAvailable, mình viết hàm serial_Callback() để đọc dữ liệu này như sau:</p>
<blockquote><p>function serial_CallBack(obj,event)<br />
inval=fread(obj,1);<br />
t=clock;<br />
load data;<br />
set(handles.edit1,'string',inval);</p>
<p>axes(handles.axes1);<br />
plot(t(6),inval);</p></blockquote>
<p>Kết quả là cái edit1 hiển thị được số liệu nhận được, còn axes thì không làm gì cả, mà xuất hiện cái hình bên ngoài. Mode để nhận dữ liệu từ cổng com mình đặt là 'byte', các bạn chỉ giúp nha.<a href="http://www.ngohaibac.net/lap-trinh-giao-tiep-rs232-qua-matlab/" target="_blank"><br />
</a></p>
<img src="http://www.ngohaibac.net/?ak_action=api_record_view&id=97&type=feed" alt="" />

<p>Related posts:<ol><li><a href='http://www.ngohaibac.net/lap-trinh-gui-trong-matlab-chap1/' rel='bookmark' title='Lập trình giao diện GUI trong Matlab (Phần 1)'>Lập trình giao diện GUI trong Matlab (Phần 1)</a></li>
<li><a href='http://www.ngohaibac.net/hien-thi-led-7-thanh-tren-gui-matlab/' rel='bookmark' title='Hiển thị Led 7 thanh trên GUI Matlab'>Hiển thị Led 7 thanh trên GUI Matlab</a></li>
<li><a href='http://www.ngohaibac.net/cac-tinh-chat-cua-cac-dieu-khien-trong-gui-matlab/' rel='bookmark' title='C&#225;c t&#237;nh chất của c&#225;c điều khiển trong GUIDE Matlab'>C&#225;c t&#237;nh chất của c&#225;c điều khiển trong GUIDE Matlab</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.ngohaibac.net/ve-do-thi-trong-matla/feed/</wfw:commentRss>
		<slash:comments>27</slash:comments>
		</item>
		<item>
		<title>Tạo file .exe cho giao diện GUI Matlab</title>
		<link>http://www.ngohaibac.net/tao-file-exe-cho-giao-dien-gui-matlab/</link>
		<comments>http://www.ngohaibac.net/tao-file-exe-cho-giao-dien-gui-matlab/#comments</comments>
		<pubDate>Sun, 27 Apr 2008 19:29:31 +0000</pubDate>
		<dc:creator>ngohaibac</dc:creator>
				<category><![CDATA[Giao tiếp RS232]]></category>
		<category><![CDATA[Matlab]]></category>
		<category><![CDATA[GUI]]></category>
		<category><![CDATA[RS232]]></category>

		<guid isPermaLink="false">http://www.ngohaibac.net/tao-file-exe-cua-ung-dung-gui/</guid>
		<description><![CDATA[Ch&#224;o c&#225;c bạn. Sau khi c&#225;c bạn đ&#227; biết c&#225;ch để viết một giao diện GUI, biết c&#225;ch dịch ra file .exe tự chạy tr&#234;n một m&#225;y kh&#225;c th&#236; b&#226;y giờ m&#236;nh kết hợp l&#224;m sao đ&#226;y ?? B&#224;i n&#224;y m&#236;nh dịch một project GUI tương đối l&#224; nhiều th&#224;nh phần: RS232 Communication đ&#227; được [...]


Related posts:<ol><li><a href='http://www.ngohaibac.net/make-exe-file-in-matlab/' rel='bookmark' title='Tạo file .exe trong Matlab dùng Matlab Compiler'>Tạo file .exe trong Matlab dùng Matlab Compiler</a></li>
<li><a href='http://www.ngohaibac.net/lap-trinh-gui-trong-matlab-chap1/' rel='bookmark' title='Lập trình giao diện GUI trong Matlab (Phần 1)'>Lập trình giao diện GUI trong Matlab (Phần 1)</a></li>
<li><a href='http://www.ngohaibac.net/tao-hinh-nen-cho-giao-dien-gui/' rel='bookmark' title='Tạo h&#236;nh nền cho giao diện GUI'>Tạo h&#236;nh nền cho giao diện GUI</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p></p><p>Ch&#224;o c&#225;c bạn.</p>
<p>Sau khi c&#225;c bạn đ&#227; biết c&#225;ch để viết một giao diện GUI, biết c&#225;ch dịch ra file .exe tự chạy tr&#234;n một m&#225;y kh&#225;c th&#236; b&#226;y giờ m&#236;nh kết hợp l&#224;m sao đ&#226;y ?? </p>
<p>B&#224;i n&#224;y m&#236;nh dịch một project GUI tương đối l&#224; nhiều th&#224;nh phần: RS232 Communication đ&#227; được post trong b&#224;i <a href="http://www.ngohaibac.net/lap-trinh-giao-tiep-rs232-qua-matlab/" target="_blank">Lập tr&#236;nh giao tiếp RS232 qua Matlab</a></p>
<p>Bước 1: Thiết lập m&#244;i trường dịch (bước n&#224;y bỏ qua nếu đ&#227; l&#224;m rồi )</p>
<p>Bước 2: G&#245; lệnh deploytool v&#224; v&#224;o menu File chọn New Project, chọn Standalone Application, chọn t&#234;n project v&#224; nơi lưu project.</p>
<p><a href="http://i280.photobucket.com/albums/kk189/ngohaibac_dot_net/Matlab_TUT/Matlab_tutorial_009.gif" rel="lightbox" target="_blank"><img src="http://i280.photobucket.com/albums/kk189/ngohaibac_dot_net/Matlab_TUT/Matlab_tutorial_009.gif" /></a> </p>
<p>Giao diện Deployment Tool sẽ gồm c&#243; Main function, Other files v&#224; C/C++ files.</p>
<p><a href="http://i280.photobucket.com/albums/kk189/ngohaibac_dot_net/Matlab_TUT/Matlab_tutorial_010.gif" rel="lightbox" target="_blank"><img src="http://i280.photobucket.com/albums/kk189/ngohaibac_dot_net/Matlab_TUT/Matlab_tutorial_010.gif" /></a> </p>
<p>Một project GUI sẽ gồm c&#243; 2 file .m v&#224; .fig v&#224; c&#243; thể th&#234;m c&#225;c file .m v&#224; .fig nếu gọi c&#225;c figure kh&#225;c. Như vậy file add v&#224;o trong Main Function l&#224; file .m l&#224; file ch&#237;nh sẽ chạy project GUI đ&#243;.</p>
<p><a title="lightbox" href="http://i280.photobucket.com/albums/kk189/ngohaibac_dot_net/Matlab_TUT/Matlab_tutorial_011.gif" rel="shadowbox[sbpost-82];player=img;" target="_blank"><img src="http://i280.photobucket.com/albums/kk189/ngohaibac_dot_net/Matlab_TUT/Matlab_tutorial_011.gif" width="550" height="404" /></a> </p>
<p>C&#225;c bạn browse đến thư mục RS232 Communication v&#224; sẽ thấy n&#243; chỉ cho ph&#233;p chọn file .m. Ở đ&#226;y m&#236;nh phải chọn file RS232_Communication.m v&#236; l&#224; file ch&#237;nh, c&#242;n modaldlg.m l&#224; file để mở cửa sổ y&#234;u cầu chọn Yes, no.</p>
<p>Tiếp tục, click chuột phải v&#224;o Other files, chọn Add files v&#224; add c&#225;c file c&#242;n lại trong project (chỉ c&#225;c file .m v&#224; .fig th&#244;i).</p>
<p><a href="http://i280.photobucket.com/albums/kk189/ngohaibac_dot_net/Matlab_TUT/Matlab_tutorial_012.gif" rel="lightbox" target="_blank"><img src="http://i280.photobucket.com/albums/kk189/ngohaibac_dot_net/Matlab_TUT/Matlab_tutorial_012.gif" width="550" height="404" /></a> </p>
<p>Xong xu&#244;i th&#236; giao diện sẽ ra như thế n&#224;y:</p>
<p><a href="http://i280.photobucket.com/albums/kk189/ngohaibac_dot_net/Matlab_TUT/Matlab_tutorial_013.gif" rel="lightbox" target="_blank"><img src="http://i280.photobucket.com/albums/kk189/ngohaibac_dot_net/Matlab_TUT/Matlab_tutorial_013.gif" width="550" height="335" /></a> </p>
<p>Bước 3: Dịch project</p>
<p>B&#226;y giờ l&#224; bước dịch, c&#225;c bạn v&#224;o menu Tools -&gt; Build (Ctr + B). Sau đ&#243; đi uống nước chờ n&#243; dịch xong hehe. C&#225;i n&#224;y chờ l&#226;u phết, đừng c&#243; n&#243;ng nh&#233;. Kh&#244;ng b&#225;o lỗi g&#236; th&#236; ok ngay.</p>
<p><a href="http://i280.photobucket.com/albums/kk189/ngohaibac_dot_net/Matlab_TUT/Matlab_tutorial_014.gif" rel="lightbox" target="_blank"><img src="http://i280.photobucket.com/albums/kk189/ngohaibac_dot_net/Matlab_TUT/Matlab_tutorial_014.gif" width="554" height="336" /></a> </p>
<p>Xong vụ rồi th&#236; v&#224;o thư mục \distrib sẽ thấy file .exe của m&#236;nh. Nhấn thử v&#224;o chạy xem thế n&#224;o.</p>
<p>C&#242;n muốn đem sang m&#225;y kh&#225;c th&#236; phải đ&#243;ng g&#243;i, v&#224;o Tools chọn Package (Ctr + P):</p>
<p><a title="lightbox" href="http://i280.photobucket.com/albums/kk189/ngohaibac_dot_net/Matlab_TUT/Matlab_tutorial_015.gif" rel="shadowbox[sbpost-82];player=img;" target="_blank"><img src="http://i280.photobucket.com/albums/kk189/ngohaibac_dot_net/Matlab_TUT/Matlab_tutorial_015.gif" width="550" height="138" /></a> </p>
<p>Sang m&#225;y kh&#244;ng c&#224;i Matlab th&#236; copy đồng thời file package v&#224; McrInstaller v&#224;o một thư mục, chạy ngon l&#224;nh lu&#244;n. M&#236;nh thử nghiệm rồi.</p>
<p>Chạy n&#243; sẽ ra thế n&#224;y:</p>
<p><a href="http://i280.photobucket.com/albums/kk189/ngohaibac_dot_net/Matlab_TUT/Matlab_tutorial_005.gif" rel="lightbox" target="_blank"><img src="http://i280.photobucket.com/albums/kk189/ngohaibac_dot_net/Matlab_TUT/Matlab_tutorial_005.gif" width="550" height="393" /></a> </p>
<p><img src="http://i36.photobucket.com/albums/e46/ngohaibac/Blog WordPress/download_img.gif" /> </p>
<p><a title="" href="http://cid-6eb956faea77192b.skydrive.live.com/self.aspx/Matlab/RS232_Communication_exe.zip">RS232_Communication_exe.zip</a></p>
<p>M&#236;nh c&#243; upload file .exe m&#224; m&#236;nh đ&#227; dịch l&#224;m bằng chứng he he.</p>
<img src="http://www.ngohaibac.net/?ak_action=api_record_view&id=82&type=feed" alt="" />

<p>Related posts:<ol><li><a href='http://www.ngohaibac.net/make-exe-file-in-matlab/' rel='bookmark' title='Tạo file .exe trong Matlab dùng Matlab Compiler'>Tạo file .exe trong Matlab dùng Matlab Compiler</a></li>
<li><a href='http://www.ngohaibac.net/lap-trinh-gui-trong-matlab-chap1/' rel='bookmark' title='Lập trình giao diện GUI trong Matlab (Phần 1)'>Lập trình giao diện GUI trong Matlab (Phần 1)</a></li>
<li><a href='http://www.ngohaibac.net/tao-hinh-nen-cho-giao-dien-gui/' rel='bookmark' title='Tạo h&#236;nh nền cho giao diện GUI'>Tạo h&#236;nh nền cho giao diện GUI</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.ngohaibac.net/tao-file-exe-cho-giao-dien-gui-matlab/feed/</wfw:commentRss>
		<slash:comments>36</slash:comments>
		</item>
		<item>
		<title>Hướng dẫn lập trình giao tiếp RS232 trên PC bằng Visual C++ 6.0</title>
		<link>http://www.ngohaibac.net/huong-dan-lap-trinh-giao-tiep-rs232-tren-pc-bang-visual-c-60/</link>
		<comments>http://www.ngohaibac.net/huong-dan-lap-trinh-giao-tiep-rs232-tren-pc-bang-visual-c-60/#comments</comments>
		<pubDate>Tue, 22 Apr 2008 15:00:30 +0000</pubDate>
		<dc:creator>ngohaibac</dc:creator>
				<category><![CDATA[Giao tiếp RS232]]></category>
		<category><![CDATA[Visual C++]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[RS232]]></category>

		<guid isPermaLink="false">http://www.ngohaibac.net/huong-dan-lap-trinh-giao-tiep-rs232-tren-pc-bang-visual-c-60/</guid>
		<description><![CDATA[Chào các bạn. Để cho website của mình thêm phong phú, nên mình cập nhật thêm một số tài liệu mà mình đã viết ở các diễn đàn điện tử. Có thể bản quyền vẫn thuộc về diễn đàn, nhưng mình nghĩ đây chỉ là sự chia sẻ cho những người chưa biết, chưa hiểu [...]


Related posts:<ol><li><a href='http://www.ngohaibac.net/lap-trinh-giao-tiep-rs232-qua-matlab/' rel='bookmark' title='Lập trình giao tiếp RS232 qua Matlab'>Lập trình giao tiếp RS232 qua Matlab</a></li>
<li><a href='http://www.ngohaibac.net/thu-vien-giao-tiep-rs232-cho-pic18-bang-htpic18/' rel='bookmark' title='Thư viện giao tiếp RS232 cho PIC18 bằng HTPIC18'>Thư viện giao tiếp RS232 cho PIC18 bằng HTPIC18</a></li>
<li><a href='http://www.ngohaibac.net/quan-ly-va-build-project-voi-trinh-dich-htpic-bang-visual-cnet-2005/' rel='bookmark' title='Quản l&#253; v&#224; build Project với tr&#236;nh dịch HTPIC bằng Visual C++.Net 2005'>Quản l&#253; v&#224; build Project với tr&#236;nh dịch HTPIC bằng Visual C++.Net 2005</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p></p><p>Chào các bạn.</p>
<p>Để cho website của mình thêm phong phú, nên mình cập nhật thêm một số tài liệu mà mình đã viết ở các diễn đàn điện tử. Có thể bản quyền vẫn thuộc về diễn đàn, nhưng mình nghĩ đây chỉ là sự chia sẻ cho những người chưa biết, chưa hiểu sâu về vấn đề đó nên chắc là cũng không có vấn đề gì.</p>
<p>Đây là TUT mình viết từ năm thứ 3 trong chương trình đào tạo Moderator của <a href="http://www.picvietnam.com">www.picvietnam.com</a>, hướng dẫn viết chương trình giao tiếp máy tính qua cổng RS232 bằng ngôn ngữ Visual C++ 6.0. Đã có nhiều thảo luận về vấn đề giao tiếp nối tiếp tại 2 diễn đàn:</p>
<p>Ngô Hải Bắc, <a href="http://dientuvietnam.net/forums/showthread.php?t=963">Serial Port - lập trình giao tiếp nối tiếp</a>, <a href="http://www.dientuvietnam.net">www.dientuvietnam.net</a>, 2005</p>
<p>Ngô Hải Bắc, <a href="http://dientuvietnam.net/forums/showthread.php?t=5281">Giao tiếp RS232 trên PC bằng Visual Basic 6.0</a>, <a href="http://www.dientuvietnam.net">www.dientuvietnam.net</a></p>
<p>Phạm Thái Hòa, <a href="http://dientuvietnam.net/forums/showthread.php?t=5077">Terminal - chương trình cực cool để test cổng COM</a>, <a href="http://www.dientuvietnam.net">www.dientuvietnam.net</a></p>
<p>Ngô Hải Bắc, <a href="http://www.picvietnam.com/forum/showthread.php?t=752">Giao tiếp RS232 trên PC qua Matlab</a>, <a href="http://www.picvietnam.com">www.picvietnam.com</a></p>
<p>Ngô Hải Bắc, <a href="http://www.picvietnam.com/forum/showthread.php?t=274">Giao tiếp RS232 trên PC</a>, <a href="http://www.picvietnam.com">www.picvietnam.com</a></p>
<p>Mình xin gửi các bạn Tutorial này.</p>
<p><img src="http://i36.photobucket.com/albums/e46/ngohaibac/Blog WordPress/download_img.gif" alt="" /></p>
<p><a href="http://www.picvietnam.com/download/Tutorial/TUT01.03.PVN.NOHB.100106.pdf">TUT01.03.PVN.NOHB.100106.pdf</a></p>
<img src="http://www.ngohaibac.net/?ak_action=api_record_view&id=76&type=feed" alt="" />

<p>Related posts:<ol><li><a href='http://www.ngohaibac.net/lap-trinh-giao-tiep-rs232-qua-matlab/' rel='bookmark' title='Lập trình giao tiếp RS232 qua Matlab'>Lập trình giao tiếp RS232 qua Matlab</a></li>
<li><a href='http://www.ngohaibac.net/thu-vien-giao-tiep-rs232-cho-pic18-bang-htpic18/' rel='bookmark' title='Thư viện giao tiếp RS232 cho PIC18 bằng HTPIC18'>Thư viện giao tiếp RS232 cho PIC18 bằng HTPIC18</a></li>
<li><a href='http://www.ngohaibac.net/quan-ly-va-build-project-voi-trinh-dich-htpic-bang-visual-cnet-2005/' rel='bookmark' title='Quản l&#253; v&#224; build Project với tr&#236;nh dịch HTPIC bằng Visual C++.Net 2005'>Quản l&#253; v&#224; build Project với tr&#236;nh dịch HTPIC bằng Visual C++.Net 2005</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.ngohaibac.net/huong-dan-lap-trinh-giao-tiep-rs232-tren-pc-bang-visual-c-60/feed/</wfw:commentRss>
		<slash:comments>28</slash:comments>
		</item>
		<item>
		<title>Lập trình giao tiếp RS232 qua Matlab</title>
		<link>http://www.ngohaibac.net/lap-trinh-giao-tiep-rs232-qua-matlab/</link>
		<comments>http://www.ngohaibac.net/lap-trinh-giao-tiep-rs232-qua-matlab/#comments</comments>
		<pubDate>Tue, 22 Apr 2008 00:17:03 +0000</pubDate>
		<dc:creator>ngohaibac</dc:creator>
				<category><![CDATA[Giao tiếp RS232]]></category>
		<category><![CDATA[Matlab]]></category>
		<category><![CDATA[GUI]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[RS232]]></category>

		<guid isPermaLink="false">http://www.ngohaibac.net/l%e1%ba%adp-trnh-giao-ti%e1%ba%bfp-rs232-qua-matlab/</guid>
		<description><![CDATA[Chào các bạn. Mình xin tổng hợp lại một số bài viết của mình về lập trình giao tiếp RS232 trên PC bằng phần mềm Matlab. I. Đối tượng Serial Object Việc giao tiếp này cũng rất dễ dàng thực hiện, không có gì là quá cao siêu cả. Mình đã giao tiếp thành công [...]


Related posts:<ol><li><a href='http://www.ngohaibac.net/huong-dan-lap-trinh-giao-tiep-rs232-tren-pc-bang-visual-c-60/' rel='bookmark' title='Hướng dẫn lập trình giao tiếp RS232 trên PC bằng Visual C++ 6.0'>Hướng dẫn lập trình giao tiếp RS232 trên PC bằng Visual C++ 6.0</a></li>
<li><a href='http://www.ngohaibac.net/thu-vien-giao-tiep-rs232-cho-pic18-bang-htpic18/' rel='bookmark' title='Thư viện giao tiếp RS232 cho PIC18 bằng HTPIC18'>Thư viện giao tiếp RS232 cho PIC18 bằng HTPIC18</a></li>
<li><a href='http://www.ngohaibac.net/lap-trinh-gui-trong-matlab-chap1/' rel='bookmark' title='Lập trình giao diện GUI trong Matlab (Phần 1)'>Lập trình giao diện GUI trong Matlab (Phần 1)</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p></p><p>Chào các bạn.</p>
<p>Mình xin tổng hợp lại một số bài viết của mình về lập trình giao tiếp RS232 trên PC bằng phần mềm Matlab.</p>
<p><span style="color: #0000ff; font-size: medium;"><strong> I. Đối tượng Serial Object</strong></span></p>
<p>Việc giao tiếp này cũng rất dễ dàng thực hiện, không có gì là quá cao siêu cả. Mình đã giao tiếp thành công rùi. Để test nó các bạn hãy đấu tắt 2 chân 2 và 3 (TX và RX) của cổng COM lại.<br />
Đầu tiên mình sẽ đưa ra môt chương trình thật là đơn gian, thiết lập ít tham số, còn chi tiết về thiết lập tham số nó thế nào? ý nghĩa ra sao? thì sẽ nói sau, mình cứ làm đơn giản trước rùi phức tạp -&gt; hiểu hết về thiết lập này sau.<br />
Bài này mình giới thiệu cách tạo đối tượng, kết nối, viêt hàm callback.<br />
Tạo đối tượng:<br />
Chúng ta gõ lệnh và kết quả hiện luôn (nhớ là k có dấu ; ở cuối lệnh</p>
<blockquote>
<pre>&gt;&gt; s = serial('COM1')

   Serial Port Object : Serial-COM1

   Communication Settings
      Port:               COM1
      BaudRate:           9600
      Terminator:         'LF'

   Communication State
      Status:             closed
      RecordStatus:       off

   Read/Write State
      TransferStatus:     idle
      BytesAvailable:     0
      ValuesReceived:     0
      ValuesSent:         0</pre>
</blockquote>
<p>Như vậy đối tượng là Serial-COM1, tốc độ 9600,..</p>
<p>Tiếp theo, chúng ta xem các tham số của đối tượng như thế nào bằng lệnh get(s):</p>
<blockquote>
<pre>&gt;&gt; get(s)
    ByteOrder = littleEndian
    BytesAvailable = 0
    BytesAvailableFcn =
    BytesAvailableFcnCount = 48
    BytesAvailableFcnMode = terminator
    BytesToOutput = 0
    ErrorFcn =
    InputBufferSize = 512
    Name = Serial-COM1
    ObjectVisibility = on
    OutputBufferSize = 512
    OutputEmptyFcn =
    RecordDetail = compact
    RecordMode = overwrite
    RecordName = record.txt
    RecordStatus = off
    Status = closed
    Tag =
    Timeout = 10
    TimerFcn =
    TimerPeriod = 1
    TransferStatus = idle
    Type = serial
    UserData = []
    ValuesReceived = 0
    ValuesSent = 0

    SERIAL specific properties:
    BaudRate = 9600
    BreakInterruptFcn =
    DataBits = 8
    DataTerminalReady = on
    FlowControl = none
    Parity = none
    PinStatus = [1x1 struct]
    PinStatusFcn =
    Port = COM1
    ReadAsyncMode = continuous
    RequestToSend = on
    StopBits = 1
    Terminator = LF</pre>
</blockquote>
<p>Các bạn thấy là có rất nhiều tham số phải không? chúng ta ở đây quan tâm đến tham số: <strong>BytesAvailableFcn</strong> tham số này chưa thết lập. Tham số này chính là hàm callback mà nó sẽ gọi khi có byte nhận được ở bộ đệm nhận.Vậy chúng ta viết hàm này chính là viết hàm OnComm đáp ứng sự kiện ReceiveEvent như trong MSCOMM của MS vậy.</p>
<p>Thiết lập này phải thực hiện trước khi mở cổng để giao tiếp, nên chúng ta sẽ viết hàm callback trước. Bạn viết 1 m-file với tên Serial_Callback.m như sau:</p>
<blockquote>
<pre>function Serial_Callback(obj,event)
    ind = fscanf(obj)</pre>
</blockquote>
<p>Cú pháp của hàm callback như trên với obj là đối tượng kiểu Serial như trên. Hàm có tác dụng đọc dữ liệu và hiển thị luôn kết quả lên command window.</p>
<p>Chúng ta đưa tham số tên hàm vào cho đối tượng s của ta:</p>
<blockquote>
<pre>&gt;&gt; s.BytesAvailableFcn = @Serial_Callback;</pre>
</blockquote>
<p>Tiếp theo chúng ta bắt đầu giao tiếp:</p>
<blockquote>
<pre>&gt;&gt;fopen(s);
&gt;&gt;fprintf(s,"chao cac ban");</pre>
</blockquote>
<p>Sau đó các bạn xem kết quả thế nào, sau đó thử truyền các kí tự khác xem bằng lệnh fprintf(s,...), hoặc thử với vi xử lý xem cho nó truyền lên các bạn sẽ thấy rất hay.</p>
<p>Bạn không giao tiếp nữa thì đóng cổng lại:</p>
<blockquote>
<pre>&gt;&gt;fclose(s);</pre>
</blockquote>
<h1><span style="color: #0000ff; font-size: medium;">2. Chương trình RS232 Communication</span></h1>
<p>Đây là  chương trình mình viết dùng GUI, đã test với mạch FPGA Spartan 3E rồi.</p>
<p><span style="color: #0000ff;">Cách dùng:</span></p>
<p>1/ Chọn tham số cho Rs232 rùi ấn nút Connect để bắt đầu kết nối với RS232 nhé.</p>
<p>2/ Nhập dữ liệu vào ô TX rùi nhấn nút Send để gửi dữ liệu.</p>
<p>3/ Để thay đổi tham số (tốc độ, ..) cho RS232 thì phải nhấn Disconnect trước rùi chỉnh tham số nhé. Sau đó quay lại bước 1.</p>
<p><a href="http://www.ngohaibac.net/wp-content/uploads/2008/04/Matlab_tutorial_005.gif" rel="shadowbox[sbpost-75];player=img;"><img class="aligncenter size-medium wp-image-1640" title="Matlab_tutorial_005" src="http://www.ngohaibac.net/wp-content/uploads/2008/04/Matlab_tutorial_005-400x285.gif" alt="" width="400" height="285" /></a></p>
<p><a href="http://www.ngohaibac.net/wp-content/uploads/2008/04/Matlab_tutorial_005.gif" rel="shadowbox[sbpost-75];player=img;"><img class="aligncenter size-medium wp-image-1640" title="Matlab_tutorial_005" src="http://www.ngohaibac.net/wp-content/uploads/2008/04/Matlab_tutorial_005-400x285.gif" alt="" width="400" height="285" /></a></p>
<p>Các bạn chú ý, đây là chương trình mình viết dưới dạng mở, tức là các bạn có thể thêm code vào các hàm để phục vụ mục đích của mình. Đó chính là các hàm ngắt nhận, ngắt gửi,...  BytesAvailableFcnCount là số byte nhận được trong bộ đệm nhận trước khi xảy ra ngắt nhận.</p>
<p>Các hàm đó là:</p>
<blockquote>
<li>function ByteAvailable_Callback(obj, event)</li>
<li>function OutputEmpty_Callback(obj, event)</li>
<li>function Error_Callback (obj, event)</li>
<li>function PinStatus_Callback(obj, event)</li>
<li>function Timer_Callback (obj,event)</li>
<li>function BreakInterrupt_Callback(obj, event)</li>
</blockquote>
<p>Khi các bạn muốn thao tác với dữ liệu vừa nhận được thì các bạn edit thêm code trong hàm sau:</p>
<p><strong>function ByteAvailable_Callback(obj, event)</strong></p>
<p>Các bạn hãy lấy chương trình này thử xem mình viết ra sao nào <img src='http://www.ngohaibac.net/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> .</p>
<p>Tải chương trình: <a class="downloadlink" href="http://www.ngohaibac.net/download/RS232-Communication.zip" title=" downloaded 1188 times" >RS232 Communication (1188)</a></p>
<img src="http://www.ngohaibac.net/?ak_action=api_record_view&id=75&type=feed" alt="" />

<p>Related posts:<ol><li><a href='http://www.ngohaibac.net/huong-dan-lap-trinh-giao-tiep-rs232-tren-pc-bang-visual-c-60/' rel='bookmark' title='Hướng dẫn lập trình giao tiếp RS232 trên PC bằng Visual C++ 6.0'>Hướng dẫn lập trình giao tiếp RS232 trên PC bằng Visual C++ 6.0</a></li>
<li><a href='http://www.ngohaibac.net/thu-vien-giao-tiep-rs232-cho-pic18-bang-htpic18/' rel='bookmark' title='Thư viện giao tiếp RS232 cho PIC18 bằng HTPIC18'>Thư viện giao tiếp RS232 cho PIC18 bằng HTPIC18</a></li>
<li><a href='http://www.ngohaibac.net/lap-trinh-gui-trong-matlab-chap1/' rel='bookmark' title='Lập trình giao diện GUI trong Matlab (Phần 1)'>Lập trình giao diện GUI trong Matlab (Phần 1)</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.ngohaibac.net/lap-trinh-giao-tiep-rs232-qua-matlab/feed/</wfw:commentRss>
		<slash:comments>80</slash:comments>
		</item>
	</channel>
</rss>

