# data[].attributes.attachment_link.description
Academia.edu is a platform for academics to share research papers.

# data[].attributes.attachment_link.title
C & 8051 - Giao tiếp máy tính (P3): Tạo cổng COM ảo

# data[].attributes.attachment_link.readable_text
Hôm nay chúng ta sẽ tìm hiểu về truyền thông nối tiếp, tại sao chúng ta phải học cái này vì cái này dc ứng dụng rất nhiều như giao tiếp với các module, cảm biến, máy tính, các vdk với nhau.....

Chuẩn giao tiếp UART khác với RS232 ở mức điện áp ở chỗ UART thể hiện mức logic 0 (0V) và logic 1 (3-5V), còn với RS232 là -12V đến -3V là mức 1 và +3V đến +12V là mức 0 , từ -3V đến +3V là vùng cấm - ko xác định. Sự chênh lệch điện áp như vậy thì làm sao chúng có thể kết nối dc với nhau nhỉ??????? Để trả lời câu hỏi này ngta đã chế tạo ra IC MAX232 đây là IC cho phép ta kết nối UART với RS232

Dưới đây là mạch MAX232 để giao tiếp với cổng COM của máy tính: Chú ý chân cẳng tụ cho chính xác

Máy tính ko có cổng COM (laptop) sử dụng mạch USB to COM dùng ic PL2303:

Nếu hai con IC có cùng chung mức điện áp logic 3-5V (Chuẩn UART) hoặc theo chuẩn RS232 thì ko cần phải có MAX232 !!!!!!!!!!

Chú ý khi giao tiếp UART và RS232 ta phải nối theo kiểu bắt chéo tức TX của con này với RX của con kia và TX của con kia với RX của con này, kiểu bắt tay TX1-RX2 và RX1-TX2 nối sai sẽ ko truyền nhận dc dữ liệu.

Như chúng ta đã biết VDK họ 8051 được tích hợp sẵn 1 cổng UART cho lên chúng ta ko cần quan tâm nó dc chế tạo ntn mà chỉ cần biết chân TX (P3.1) là chân truyền dữ liệu và RX (P3.0) là nhận dữ liệu.

Trong truyền thông nối tiếp có 2 cách truyền là đồng bộ và ko đồng bộ. Đồng bộ là 2 bên thống nhất với nhau về cách truyền cũng như dữ liệu truyền còn Không đồng bộ là chỉ 1 đường truyền cho một quá trình, dữ liệu dc truyền theo khung dữ liệu đã được chuẩn hóa bởi các thiết bị nên không cần đường xung nhịp báo trước dữ liệu đến.

Ở đây ta sẽ tìm hiểu về truyền dữ liệu ko đồng bộ 1 bit start và 1 bit stop vì chỉ sử dụng duy nhất 2 dây TX và RX để truyền nhận dữ liệu, với cách truyền này ta phải cài đặt tốc độ truyền cho 2 bên phải giống nhau. Các tốc độ: 2400, 4800, 9600, 14400, 19200... Thông thường là tốc độ 9600 tuỳ ứng dụng của bạn.

Cơ bản là đã hiểu sơ sơ rồi ta bắt đầu vào phần lập trình cho VDK 8051. Như trên ta sẽ lấy ví dụ về tốc độ 9600 để code.

Để lập trình dc ta phải tìm hiểu 1 số thanh ghi: SBUF, SCON, PCON:

+ SBUF là thanh ghi lưu dữ liệu truyền, thực chất là 2 thanh ghi truyền và nhận nhưng nó có cùng 1 tên.

+ Thanh ghi SCON là thanh ghi thiết lập chế độ truyền:
Các bit SM0 và SM1 là bit xác định chế độ đóng khung truyền:
(*) Lưu ý: Tốc độ truyền chỉ ra trong bảng này được tăng gấp đôi nếu bit PCON.7 (bit SMOD) được thiết lập lên 1, mặc định của hệ thống là PCON.7=0.

Trong bốn chế độ trên ta chỉ quan tâm đến chế độ 1. Khi chế độ 1 được chọn thì dữ liệu được đóng khung thành 10 bit: gồm 1 bit Start, sau đó là 8 bit dữ liệu, và cuối cùng là 1 bit Stop. Quan trọng hơn là chế độ nối tiếp 1 cho phép tốc độ baud thay đổi và được thiết lập bởi Timer1 của 8051.

Bit SM2 là bit D5 của thanh ghi SCON. Bit này cho phép khả năng đa xử lý của 8051. Đối với các ứng dụng của chúng ta, đặt SM2 = 0 vì ta không sử dụng 8051 trong môi trường đa xử lý.

REN (Receive Enable) là bit cho phép nhận (bit D4 của thanh ghi SCON). Khi bitREN cao thì nó cho phép 8051 nhận dữ liệu trên chân RxD của nó. Và kết quả là nếu ta muốn 8051 vừa truyền vừa nhận dữ liệu thì bit REN phải được đặt lên 1. Bit này có thể được dùng để khống chế mọi việc nhận dữ liệu nối tiếp và nó là bit cực kỳ quan trọng trong thanh ghi SCON.

- Bit TB8 và RB8

Bit TB8 và RB8 được dùng trong chế độ nối tiếp 2 và 3. Ta đặt TB8=0 và RB8=0vì nó không được sử dụng trong các ứng dụng của mình.

Nói thêm, trong chế độ 2 và 3 thì có 9 bit dữ liệu được truyền đi hoặc nhận về. BitTB8 sẽ chứa bit dữ liệu thứ 9 khi truyền, còn bit RB8 sẽ chứa bit dữ liệu thứ 9 khi nhận, trong chế độ nối tiếp 1 thì bit RB8 này nhận một bản sao của bit Stop khi một dữ liệu 8 bit được nhận, và ta cũng không cần quan tâmJ.

- Các bit TI và RI

Các bit ngắt truyền TI và ngắt nhận RI là các bit D1 và D0 của thanh ghi SCON. Các bit này là cực kỳ quan trọng của thanh ghi SCON:

· Khi 8051 kết thúc truyền một ký tự 8 bit thì nó bật TI để báo rằng nó sẵn sàng truyền một byte khác. Bit TI được bật lên trước bit Stop.

· Khi 8051 nhận được dữ liệu nối tiếp qua chân RxD và nó tách các bit Start và Stop để lấy ra 8 bit dữ liệu để đặt vào SBUF, sau khi hoàn tất nó bật cờ RI để báo rằng nó đã nhận xong 1 byte và cần phải lấy đi kẻo dữ liệu bị mất. Cờ RIđược bật khi đang tách bit Stop.

Thanh ghi PCON có bit SMOD:

Khi SMOD = 0 thì 8051 chia 1/12 tần số thạch anh cho 32 và sử dụng nó cho bộTimer1 để thiết lập tốc độ baud. Đây là giá trị mặc định của SMOD khi 8051 bật nguồn.

Khi SMOD = 1 thì 8051 chia 1/12 tần số thạch anh cho 16 (thay vì chia cho 32như khi SMOD = 0) và đây là tần số được Timer1 dùng để thiết lập tốc độ baud.

Để xác định giá trị cài đặt trong TH1 để tạo ra một tốc độ baud nhất định, chúng ta có thể sử dụng các phương trình sau đây (giả sử bit PCON.7=0):

TH1 = 256 - ((Crystal / (12*32)) / Baud) = 256 - ((Crystal / 384) / Baud) (1)

Nếu PCON.7=1 thì tốc độ truyền tăng gấp đôi, do đó phương trình trở thành:

TH1 = 256 - ((2*Crystal / (12*32)) / Baud) = 256 - ((Crystal / 192) / Baud) (2)

Nếu chúng ta có một tinh thể thạch anh tần số 11.059Mhz và chúng ta muốn cấu hình cho cổng nối tiếp đạt tốc độ 9600 baud, thì ta sử dụng phương trình 1:

TH1 = 256 - ((Crystal / 384) / Baud)

TH1 = 256 - ((11059000/384) / 9600)

TH1 = 256 - ((28800) / 9600)

TH1 = 256-3 = 253
Ví dụ 2: Cho các trường hợp khó xác định giá trị nạp
Vậy: để có được tốc độ 9600 baud với một tinh thể thạch anh tần số11.059MHz chúng ta phải:

2. Cấu hình Timer 1 ở chế độ 2 (8-bit tự động nạp lại).

Code của chúng ta sẽ như sau:

Tải code và mô phỏng: http://www.mediafire.com/download/pbpj6oj4exa9661/SangTaoClub.Net_giao-tiep-uart.zip

# data[].attributes.attachment_link.keywords[]
bài 8: lập trình giao tiếp uart và rs232

# data[].attributes.attachment_link.description
Hôm nay chúng ta sẽ tìm hiểu về truyền thông nối tiếp, tại sao chúng ta phải học cái này vì cái này dc ứng dụng rất nhiều như giao tiếp với các module, cảm biến, máy tính, các vdk với nhau.....

# data[].attributes.attachment_link.readable_text
RS232 hay RS232 là gì?. Đó là một cụm từ bạn có thể nghe khá thường xuyên trong ngành công nghiệp, đặc biệt là bởi những người lớn tuổi hơn. Hy vọng rằng bài viết này sẽ đem đến cho bạn những thông tin cần thiết nhất về RS232.

Bắt đầu thôi!

RS232 là một hình thức truyền dữ liệu nối tiếp. Hay nói một cách đơn giản, đó là một hình thức giao tiếp. Hầu hết mọi người chỉ đơn giản gọi nó là một kết nối nối tiếp.

Trong quá khứ, nó là hình thức truyền dữ liệu được sử dụng nhiều nhất. Bạn có thể sẽ nhận ra cáp DB9 9 chân tiêu chuẩn hay còn gọi là cổng COM. Nói một cách đơn giản, RS232 truyền tín hiệu bằng điện áp dương cho nhị phân 0 và điện áp âm cho nhị phân 1.

RS232 được sử dụng để kết nối máy tính và các thiết bị ngoại vi để cho phép trao đổi dữ liệu nối tiếp giữa chúng. Như EIA định nghĩa, RS232 được sử dụng để kết nối Thiết bị truyền dữ liệu DTE và DCE.

Truyền thông nối tiếp chuẩn rs232 là gì?

Trong viễn thông, quá trình gửi dữ liệu tuần tự qua một bus máy tính được gọi là giao tiếp nối tiếp, có nghĩa là dữ liệu sẽ được truyền từng bit một. Trong khi giao tiếp song song, dữ liệu được truyền theo byte (8 bit) hoặc ký tự hoặc bus tại một thời điểm. Giao tiếp nối tiếp chậm hơn so với giao tiếp song song nhưng được sử dụng để truyền dữ liệu dài do chi phí thấp hơn.

Các chế độ truyền dữ liệu trong giao tiếp nối tiếp:

Truyền dữ liệu không đồng bộ - Chế độ trong đó các bit dữ liệu không được đồng bộ hóa bởi xung đồng hồ. Xung đồng hồ là tín hiệu được sử dụng để đồng bộ hóa hoạt động trong một hệ thống điện tử.

Truyền dữ liệu đồng bộ - Chế độ trong đó các bit dữ liệu được đồng bộ hóa bởi xung đồng hồ.

Đặc điểm của chuẩn truyền thông rs232 là gì?

Tốc độ Baud được sử dụng để đo tốc độ truyền. Nó được mô tả là số bit đi qua trong một giây. Ví dụ: nếu tốc độ truyền là 200 thì 200 bit được truyền mỗi giây. Trong các đường dây điện thoại, tốc độ baud sẽ là 14400, 28800 và 33600.

Bit dừng được sử dụng cho một gói duy nhất để dừng truyền được ký hiệu là "T". Một số giá trị tiêu biểu là 1, 1.5 & 2 bit.

Parity Bit là hình thức đơn giản nhất để kiểm tra lỗi. Có bốn loại, được đánh dấu và cách đều nhau.

Chuẩn giao tiếp RS232 là gì

Bộ thu và phát dữ liệu không đồng bộ phổ quát (UART) được sử dụng cùng với RS232 để truyền dữ liệu giữa máy in và máy tính. Các bộ vi điều khiển không thể xử lý các loại mức điện áp như vậy, các đầu nối được kết nối giữa các tín hiệu RS232. Các đầu nối này được gọi là Đầu nối DB-9 như một cổng nối tiếp và chúng có hai đầu nối loại:

Thông số kỹ thuật của mạch RS232 là gì

Cấp điện áp: RS232 cũng được sử dụng như mức nối đất & 5V. Nhị phân 0 hoạt động với điện áp +5V đến +15Vdc, được gọi là "ON" (mức điện áp cao) trong khi nhị phân 1 hoạt động với điện áp -5V đến -15Vdc. Nó được gọi là "OFF" (mức điện áp thấp).

Mức điện áp tín hiệu nhận được: Nhị phân 0 hoạt động trên các điện áp tín hiệu nhận được +3V đến +13 Vdc & mức nhị phân 1 hoạt động với điện áp -3V đến -13 Vdc.

Trở kháng đường truyền: Trở kháng của dây lên tới 3 - 7 ohms và chiều dài cáp tối đa là 15 mét, nhưng nằm trong giới hạn về điện dung trên mỗi đơn vị chiều dài.

Điện áp hoạt động: Tối đa 250VAC

Dòng định mức: Tối đa 3 Amps

Cách điện: 1000 VAC

Tốc độ xoay: Tốc độ thay đổi của các mức tín hiệu được gọi là tốc độ xoay. Với tốc độ xoay lên tới 30V/ms và tốc độ bit tối đa sẽ là 20 kbps.

Cấu tạo của cổng RS232 là gì

Trong thực tế cổng RS232 hay còn gọi là cổng COM có hai loại đầu nối đó là DB-25 và DB-9. Trong DB-25, có 25 chân có sẵn được sử dụng cho nhiều ứng dụng, nhưng một số ứng dụng không sử dụng toàn bộ 25 chân. Vì vậy, đầu nối 9 chân được chế tạo để thuận tiện cho các thiết bị kết nối với nhau.

Trong phần này, chúng ta sẽ tìm hiểu về đầu nối chân DB-9, loại được sử dụng rất phổ biến trong nhiều ứng dụng cả dân dụng lẫn công nghiệp.

Có hai loại: Đầu nối đực (DTE) & Đầu nối cái (DCE).

Chúng có cùng cấu trúc là 5 chân ở hàng trên cùng và 4 chân ở hàng dưới. Nó thường được gọi là đầu nối loại DE-9 hoặc D. Hình minh hoạ bên dưới.

Chuẩn giao tiếp RS232 là gì? Hoạt động như thế nào?

RS232 hoạt động trên giao tiếp hai chiều trao đổi dữ liệu với nhau. Có hai thiết bị được kết nối với nhau, thiết bị đầu cuối xử lý dữ liệu số (DTE) & Thiết bị truyền dữ liệu (DCE) có các chân như TXD, RXD và RTS & CTS.

Bây giờ, từ nguồn DTE, RTS tạo yêu cầu gửi dữ liệu. Sau đó từ phía bên kia DCE, CTS, xóa đường dẫn nhận dữ liệu. Sau khi xóa một đường dẫn, nó sẽ đưa ra tín hiệu cho RTS của nguồn DTE để gửi tín hiệu. Sau đó, các bit được truyền từ DTE đến DCE. Bây giờ một lần nữa từ nguồn DCE, yêu cầu có thể được tạo bởi RTS và CTS của nguồn DTE sẽ xóa đường dẫn nhận dữ liệu và đưa ra tín hiệu để gửi dữ liệu. Đây là toàn bộ quá trình mà việc truyền dữ liệu diễn ra.

Ví dụ: Các tín hiệu được đặt thành logic 1, tức là, -12V. Việc truyền dữ liệu bắt đầu từ bit tiếp theo và để thông báo điều này, DTE gửi bit start đến DCE. Bit bắt đầu luôn là '0, ví dụ: +12 V và 5 đến 9 ký tự tiếp theo là các bit dữ liệu. Nếu chúng ta sử dụng bit chẵn lẻ, thì dữ liệu 8 bit có thể được truyền đi trong khi nếu chẵn lẻ không sử dụng thì 9 bit đang được truyền đi. Các bit dừng được gửi bởi bộ phát có giá trị là 1, 1.5 hoặc 2 bit sau khi truyền dữ liệu.

Các PLC sử dụng cổng kết nối RS232 là để làm gì?

PLC sử dụng RS232 để giao tiếp với các module khác hoặc thậm chí các PLC khác. Các module này có thể là bất cứ thứ gì cũng sử dụng RS232. Ví dụ như: giao diện người vận hành hoặc HMI, máy tính, bộ điều khiển động cơ hoặc driver, robot hoặc hệ thống truyền thông...

Nhắc lại, một điều quan trọng cần nhớ, các thiết bị RS232 thực tế có hai loại khác nhau:

DTE là viết tắt của Data Transmission Equipment. Thiết bị đầu cuối xử lý dữ liệu số. Một ví dụ phổ biến về loại thiết bị này như là máy tính PC...

DCE là viết tắt của Data Communication Equipment. Thiết bị Truyền thông dữ liệu. Một ví dụ về DCE như là modem...

Lý do điều này rất quan trọng là vì hai thiết bị DTE hoặc hai DCE không thể giao tiếp với nhau mà không có sự giúp đỡ.

Để giao tiếp được, chúng cần có một sợi cáp ngược để kết nối hai đầu của thiết bị lại với nhau.

Thông thường các PLC sẽ là DTE và các thiết bị ngoại vi được sử dụng sẽ là DCE và mọi thứ sẽ nói chuyện, giao tiếp được với nhau.

Một ví dụ rất phổ biến mà chúng ta rất quen thuộc, đó là một máy tính được kết nối với máy in. Mặc dù USB đã trở thành tiêu chuẩn, nhưng RS232 vẫn được sử dụng rộng rãi cho các máy in cũ tại nơi làm việc. Giao thức và cáp RS232 cho phép máy tính đưa ra lệnh cho máy in thông qua tín hiệu điện áp. Sau đó, máy in giải mã các lệnh đó và hoàn thành việc in.

Ưu nhược điểm của cáp RS232 là gì?

Chúng ta đã quá quen thuộc với các sợi cáp RS232 hay cáp COM rồi. Nhưng liệu, chúng ta đã có biết về những ưu nhược điểm của chúng chưa? Phần này, ta hãy cùng nhau phân tích nhé!

RS232 phổ biến, dễ kiếm và chi phí rẻ

Tương thích nhiều thiết bị

Kết nối giao tiếp đơn giản

Tốc độ truyền khá nhanh

Khả năng chống nhiễu tốt

Có thể tháo lắp nóng

Có thể cấp nguồn cho thiết bị luôn

Một là tốc độ truyền dữ liệu. Dữ liệu có thể được chuyển ở mức khoảng 20 kilobyte mỗi giây. Đó là khá chậm so với những gì mọi người đang sử dụng cho đến nay.

Một vấn đề khác với RS232 là chiều dài tối đa của cáp là khoảng 15 mét. Điện trở dây và sụt điện áp trở thành một vấn đề với cáp dài hơn thế này. Đây là một lý do khiến RS232 không được sử dụng nhiều để kéo đi xa.

Các ứng dụng sử dụng giao thức RS232

Giao tiếp nối tiếp RS232 được sử dụng trong các PC thế hệ cũ để kết nối các thiết bị ngoại vi như chuột, máy in, modem, ... Ngày nay, RS232 được thay thế bằng USB tiên tiến.

Nó cũng được sử dụng trong các máy PLC, máy CNC và bộ điều khiển servo vì chi phí rẻ.

Nó vẫn được sử dụng bởi một số bảng vi điều khiển, máy in hóa đơn, hệ thống điểm bán hàng (PoS), ..

Các phương pháp chuyển đổi tín hiệu RS232

Tín hiệu RS232 đã trải qua gần như là hết vòng đời của nó, xem như nó đã hoàn thành tốt nhiệm vụ của mình. Mở ra những giao thức truyền thông mới tốt hơn, nhanh hơn, truyền đi xa hơn...ví dụ như: bản nâng cấp RS485, USB hay tín hiệu Ethernet...

USB có khả năng truyền tốc độ cao 480Mbps và còn hơn nữa với những chuẩn mới

RS485 là một bước phát triển của RS232, đã được chấp nhận và sử dụng rộng rãi trong dân dụng, công nghiệp hay y tế...mà có khả năng truyền dữ liệu lên đến 1200 mét với tốc độ baud lên tới 115.200 Bd (tốc độ baud luôn bé hơn tốc độ bit. Ví dụ, nếu mỗi biểu trưng chứa 3 bits thông tin thì tốc độ bit 3000 bits/s có tốc độ baud tương đương là 1000 Bd)

Ethernet có khả năng truyền thông tin với tốc độ từ 10 đến 100 triệu bít một giây (Mbps), có khả năng xây dựng thành hệ thống điều khiển cỡ lớn.

Chuyển đổi tín hiệu RS232 sang RS485

Các bộ chuyển đổi tín hiệu RS232 sang RS485 giải quyết bài toán chuyển đổi, tương thích tín hiệu của các thiết bị với nhau. Hay đơn giản là xử lý việc truyền tín hiệu đi xa hơn 15 mét mà cổng RS232 không làm được điều đó. Ví dụ: một bên là thiết bị chuẩn cũ RS232, một bên là các thiết bị chuẩn mới RS485 dùng để lắp đặt thay thế cho hệ thống điều khiển, truyền tín hiệu đi xa...

Tiêu biểu như bộ chuyển đổi tín hiệu RS232 sang RS485 model K107B của hãng Seneca- Italia.

Thiết bị này không chỉ chuyển tín hiệu RS232 sang RS485 một cách đơn giản, nhanh chóng, mà còn có thể chuyển đổi tín hiệu với nhau trên cùng một sợi cáp cho 32 thiết bị.

Mặt khác, điểm nổi bật của bộ chuyển đổi tín hiệu K107B là chuyển đổi tín hiệu 2 chiều tự động. Nghĩa là truyền từ RS232 sang RS485 và chiều ngược lại.

Chuyển đổi tín hiệu RS232 sang Ethernet

Thật may mắn cho những doanh nghiệp lâu đời, với những hệ thống máy móc điều khiển sử dụng những chuẩn truyền dữ liệu cũ như RS232.

Vì sao mình nói như thế?

Bởi về sự xuất hiện của những bộ chuyển đổi tín hiệu. Những thiết bị tuyệt vời để các chủ doanh nghiệp không phải đầu tư những dây chuyền mới. Thay thế cho dây chuyền cũ chỉ vì chuẩn giao tiếp, kết nối hay truyền tín hiệu đi xa.

Mình xin chia sẻ thêm với các bạn một bộ chuyển đổi tín hiệu RS232 nữa. Mà mình tin là nó hay hơn nhiều bộ K107B mà mình vừa chia sẻ ở trên.
Bộ chuyển đổi tín hiệu R-Key-LT

Bộ chuyển đổi R-Key-LT là một Modbus RTU/ASCII Getway với chuẩn RS232/RS485 và cổng Ethernet tốc độ cao 10-100Mbits.

Bộ chuyển đổi R-Key-LT có khả năng chuyển tín hiệu RS232 hay RS485 trên một cổng dùng chung.

R-Key-LT giải quyết bài toán truyền tín hiệu lên Ethernet; sang tín hiệu Modbus TCP-IP, cụ thể ở đây là tín hiệu RS232. Nhằm mục đích đưa dữ liệu hệ thống lẹn webserver để lưu trữ, phân tích và vận hành.

Một vài thông số kỹ thuật tham khảo của bộ R-Key-LT như sau

Nguồn cấp: 10...40 Vdc; 19...28 Vac

Công suất: 1W

Cách ly chống nhiễu cổng Ethernet tại 1500 Vac

Khoảng cách truyền: 2000m

Nhiệt độ hoạt động: -20 đến 70 độ C

Kích thước: 32 x 110 x 52 mm

Trọng lượng: 80g

Bài viết mang đến cho các bạn kiến thức chi tiết về một chuẩn giao tiếp truyền thông. Là chuẩn phổ biến trong công nghiệp từ xưa nay. Đó chính là chuẩn RS232.

Hy vọng với chút đóng góp của mình, Huphaco tin rằng sẽ góp thêm những nội dung hữu ích; cho nhu cầu tìm kiếm tài liệu tham khảo của các bạn đọc.

# data[].attributes.attachment_link.title
Giao tiếp RS232 là gì? - Ưu nhược điểm của cổng RS232 là gì?

# data[].attributes.attachment_link.description
RS232 hay RS232 là gì?. Đó là một cụm từ bạn có thể nghe khá thường xuyên trong ngành công nghiệp, đặc biệt là bởi những người lớn tuổi hơn. Hy vọng rằng bài viết này sẽ đem đến cho bạn những thông tin cần thiết nhất về RS232.

# data[].attributes.attachment_link.title
Hướng dẫn thiết kế lập trình đồng hồ chuông báo 89S52 RTC

# data[].attributes.body
- Phân tích tổng quát về yêu cầu đề tài
- Tìm kiếm tài liệu liên quan
- Lên ý tưởng về nguyên lý hoạt động của hệ thống

# data[].attributes.headline
* Đồng hồ thời gian thực sử dụng DS1306 (VĐK AT89S52)

# data[].attributes.subject
* Đồng hồ thời gian thực sử dụng DS1306 (VĐK AT89S52)

# data[].attributes.body
* Đồng hồ thời gian thực sử dụng DS1306 (VĐK AT89S52)

Vi điều khiển: AT89S52​

Khối hiển thị​

Cảm biến​

ADC​

Yêu cầu: ​

1. Mô phỏng được mạch chạy trên máy tính (20%) ​

2. Kết nối mạch trên project board và chạy được (40%)​

3. Giao tiếp được với máy tính (gửi và nhận dữ liệu) (20%)​

4. Báo cáo, vấn đáp cá nhân (20%)​

# data[].attributes.attachment_link.readable_text
Chào các bạn!
Hôm nay, mình xin hướng dẫn các bạn giao tiếp với LCD16X2 trên KIT AT89S52 V3 New.
Thông tin về KIT AT89S52 các bạn có thể xem tại:
I. Sơ đồ nguyên lý khối LCD16X2 trên KIT AT89X52 V3 NEW.

>.Nhìn vào sơ đồ ta thấy, 3 chân điều khiển LCD RS, RW, EN được nối đến các chân P2.2, P2.3, P2.4 của Port 2 và 8 chân dữ liệu của LCD được kết nối đến Port 0.
>. Với cách kết nối như vậy ta có thể tùy chọn chế độ giao tiếp với LCD. Có 2 chế độ giao tiếp với LCD: giao tiếp 8 bit và giao tiếp 4 bit. Tuy nhiên với ưu điểm sử dụng ít chân điều khiển hơn nên chế độ giao tiếp 4 bit trong thực tế được sử dụng nhiều hơn. Do đó, hôm bay mình xin chia sẻ với các bạn thư viện giao tiếp 8051 với LCD16X2 ở chế độ 4 bit. Thư viện có trong file đính kèm ở phía cuối bài.
II. Sử dụng thư viện LCD16x2.
>Thư viện giao tiếp LCD16X2 với 8051 được chứa trong thư mục lcd16x2. (Các bạn giải nén ra sẽ thấy.) Trong thư mục lcd16x2 chứa 2 file:
.File header: lcd16x2.h chứa các khai báo về phần cứng như LCD kết nối đến các chân nào của 8051, và khai báo các hàm sử dụng cho LCD16x2.
.File thực thi: lcd16x2.c là file thực hiện các hàm đã khai báo trong file lcd16x2.h
.Sau khi add file lcd16x2.c vào Project và include thư viện lcd16x2.h, các bạn có thể sử dụng các hàm đã khai báo trong lcd16x2.h để giao tiếp với LCD. Các bạn lưu ý khai báo đúng chân kết nối giữa 8051 và LCD trong file lcd16x2.h để tránh các sai sót không đáng có.
>Sau đây mình xin giới thiệu cách sử dụng một số hàm cơ bản trong thư viện lcd16x2.
1. Hàm khởi tạo LCD:void lcd1602_init (void );
Tham biến: không.
Giá trị trả về: không.
Hàm khởi tạo được gọi ngay từ đầu chương trình, sau khi gọi hàm khởi tạo lcd, chúng ta mới giao tiếp được với lcd16x2.
Cú pháp gọi hàm:lcd1602_init();
2. Hàm xóa LCD:void lcd1602_clear(void);
Tham biến: không.
Giá trị trả về: không.
Hàm này được sử dụng khi bạn muốn xóa toàn bộ ký tự hiển thị trên LCD.
Cú pháp gọi hàm:lcd1602_clear();
3. Hàm nhảy đến 1 vị trí bất kỳ trên LCD:
void lcd1602_gotoxy(unsigned char x, unsigned char y);
Tham biến: y: vị trí hàng: 0 hàng thứ nhất, 1 hàng thứ 2.
x: vị trí của cột trong mỗi hàng: x=0: cọt thứ nhất, và x=15: cột thứ 16 (LCD16X2 có 2 hàng, mỗi hàng có 16 cột).
Cú pháp gọi hàm: Ví dụ muốn nhảy vị trí đầu tiên của hàng đầu tiên ta gọi:lcd1602_gotoxy(0,0);
4:Hàm hiển thị 1 ký tự ra LCD: void lcd1602_putchar ( unsigned int cX );
Tham biến: Ký tự cần hiển thị.
Giá trị trả về: không.
Ví dụ: hiển thị chữ A ra LCD:lcd1602_putchar('A');
5. Hàm hiển thị một chuỗi ký tự ra LCD:void lcd1602_puts (char *s);
Tham biến: Chuỗi cần hiển thị.
Giá trị trả về: không.
Ví dụ: hiển thị dòng chữ: banlinhkien.vn ra LCD:lcd1602_puts("banlinhkien.vn");

Trên đây là cách sử dụng các hàm cơ bản để giao tiếp với LDC16X2. Các bạn có thể tham khảo Project đính kèm để hiểu rõ hơn.
Chúc các bạn thành công.

SAO MÌNH LÀM NÓ KHÔNG HIỂN THỊ VẬY BẠN ƠI

# data[].attributes.attachment_link.title
[KIT AT89S52 V3 NEW ] GIAO TIẾP VỚI LCD16X2

# data[].attributes.attachment_link.description
Chào các bạn! Hôm nay, mình xin hướng dẫn các bạn giao tiếp với LCD16X2 trên KIT AT89S52 V3 New. Thông tin về KIT AT89S52 các bạn có thể xem tại: I. Sơ đồ nguyên lý khối LCD16X2 trên KIT AT89X52 V3 NEW.