tài liệu ghép nối cực hay
Trang 1I Tổng quan về ghép nối với máy tính
Mô hình ghép nối máy tính với các thiết bị phần cứng
Trang 2Sơ đồ ghép nối thiết bị để thực hiện quá trình điều khiển và giám sát trên máy tính
II Tổng quan về truyền thông nối tiếp
Có thể giao tiếp nối tiếp qua RS232, RS485, USB, Ethernet
1 Cỗng USB
USB (Universal Serial Bus) là một chuẩn kết nối tuần tự đa dụng trong máy tính USB sử dụng để kết nối các thiết bị ngoại vi với máy tính, chúng thường được thiết kế dưới dạng các đầu cắm cho các thiết bị tuân theo chuẩn cắm-là-chạy mà với tính năng cắm nóng thiết bị (nối và ngắt các thiết bị không cần phải khởi động lại hệ thống)
Thiết bị đo
Thiết bị điều khiển
Thiết bị công suất
Đối tượng điều khiển
PC
Mạch kết nối
Trang 3Chuyển đổi USB sang nối tiếp TTL sử dụng FT232BM
USB có những đặc trưng sau đây:
Cho phép mở rộng 127 thiết bị kết nối cùng vào một máy tính thông qua một cổng USB duy nhất (bao gồm các hub USB);
Những sợi cáp USB riêng lẻ có thể dài tới 5 mét; với những hub, có thể kéo dài tới
30 mét (6 sợi cáp nối tiếp nhau thông qua các hub) tính từ đầu cắm trên máy tính
Với USB 2.0 chuẩn tốc độ cao, đ ường truyền đạt tốc độ tối đa đến 480 Mbps
Cáp USB gồm hai sợi nguồn (+5V và dây chung GND) cùng một cặp gồm hai sợi dây xoắn để mang dữ liệu
Trên sợi nguồn, máy tính có thể cấp nguồn lên tới 500mA ở điện áp 5V một chiều (DC)
Những thiết bị tiêu thụ công suất thấp (ví dụ: chuột, bàn phím, loa máy tính công suất thấp ) được cung cấp điện năng cho hoạt động trực tiếp từ các cổng USB mà không cần có sự cung cấp nguồn riêng (thậm trí các thiết bị giải trí số như SmartPhone, PocketPC ngày nay sử dụng các cổng USB để xạc pin) Với các thiết bị cần sử dụng nguồn công suất lớn (như máy in, máy quét ) không sử dụng nguồn điện từ đường truyền USB như nguồn chính của chúng, lúc này đường truyền nguồn chỉ có tác dụng như một sự so sánh mức điện thế của tín hiệu Hub có thể có nguồn cấp điện ri êng để cấp điện thêm cho các thiết bị sử dụng giao tiếp USB cắm vào nó bởi mỗi cổng USB chỉ cung cấp một công suất nhất định
Những thiết bị USB có đặc tính cắm nóng, điều này có nghĩa các thiết bị có thể được kết nối (cắm vào) hoặc ngắt kết nối (rút ra) trong mọi thời điểm mà người sử dụng cần mà không cần phải khởi động lại hệ thống
Nhiều thiết bị USB có thể được chuyển về trạng thái tạm ngừng hoạt động khi máy tính chuyển sang chế độ tiết kiệm điện
Trang 4Chức năng của các chân như sau:
+ chân 1 : Data Set Ready (DSR) : Dữ liệu sẵn sàng, được kích hoạt bởi bộ truyền khi nó sẵn sàng nhận dữ liệu
+ chân 2 : Data Carrier Detect (DCD) : Phát tín hi ệu mang dữ liệu
+ chân 3 : Data Termial Ready (DTR) : Đầu cuối dữ liệu sẵn sàng được kích hoạt bởi
bộ phận khi muốn truyền dữ liệu
+ chân 4 : Singal Ground (SG) : Mass của tín hiệu
+ chân 5: Receive Data (RxD) : Nhận dữ liệu
+ chân 6 : Transmit Data (TxD) : Truyền dữ liệu
+ chân 7 : Clear To Send (CTS) : Xóa để gửi , bộ nhận đặt đường này lên mức kích hoạt động để thông báo cho bộ truyền là nó sẵn sàng nhận tín hiệu
+ chân 8 : Request to Send (RTS): yêu cầu gửi, bộ truyền đặt đường này lên mức hoạt động khi sẵn sàng truyền dữ liệu
3 Cỗng COM
Cổng COM (communication) là một cổng thông dụng trong các máy tính trong các máy tính truyền thống dùng kết nối các thiết bị ngoại vi với máy tính như: bàn phím, chuột điều khiển, modem, máy quét
Trang 5Chức năng của các chân như sau:
+ chân 1 : Data Carrier Detect (DCD) : Phát tín hi ệu mang dữ liệu
+ chân 2: Receive Data (RxD) : Nhận dữ liệu
+ chân 3 : Transmit Data (TxD) : Truyền dữ liệu
+ chân 4 : Data Termial Ready (DTR) : Đầu cuối dữ liệu sẵn sàng được kích hoạt bởi
bộ phận khi muốn truyền dữ liệu
+ chân 5 : Singal Ground (SG) : Mass của tín hiệu
+ chân 6 : Data Set Ready (DSR) : Dữ liệu sẵn sàng, được kích hoạt bởi bộ truyền khi nó sẵn sàng nhận dữ liệu
+ chân 7 : Request to Send (RTS): yêu cầu gửi, bộ truyền đặt đường này lên mức hoạt động khi sẵn sàng truyền dữ liệu
+ chân 8 : Clear To Send (CTS) : Xóa để gửi , bộ nhận đặt đường này lên mức kích hoạt động để thông báo cho bộ truyền là nó sẵn sàng nhận tín hiệu
+ chân 9 : Ring Indicate (RI) : Báo chuông cho biết là bộ nhận đang nhận tín hiệu rung chuông
III Tổng qua về truyền thông theo chuẩn RS232
Trang 6Có hai phiên bản RS232 được lưu hành trong thời gian tương đối dài là RS232B và RS232C
Nhưng cho đến nay thì phiên bản RS232B thì ít được dùng, còn RS232C hiện vẫn được dùng và thường được gọi với tên ngắn gọn là chuẩn RS232
Các máy tính thường có 1 hoặc 2 cổng nối tiếp theo chuẩn RS232C được gọi là cổng COM Chúng được dùng ghép nối cho chuột, modem, thiết bị đo lường Trên main máy tính có loại 9 chân hoặc loại 25 chân (rất ít gặp) tùy vào đời máy và main của máy tính Việc thiết kế giao tiếp với cổng COM cũng tương đối dễ dàng, đặc biệt khi chọn chế độ hoạt động là không đồng bộ và tốc độ truyền dữ liệu thấp Các thiết bị ghép nối nối tiếp chia làm hai loại DTE (Data Terminal Equipment) và DCE (Data Communication Equipment) DCE là các thiết bị trung gian như modem, còn DTE là các thiết bị như máy tính, vi điều khiển, PLC, là nguồn tạo ra dữ liệu hay tiếp nhận dữ liệu để xử lý Có thể ghép nối DTE với DTE hoặc DCE, DCE với DTE hoặc DCE Tín hiệu truyền nối tiếp theo dạng xung chuẩn RS232 của EIA (Electronics Industry Associations), mức logic 0 còn gọi là Space giữa +3 và +25V, mức logic 1 còn gọi là Mark, ở giữa −3V và −25V
Từ DTE tín hiệu được truyền giữa hai dây TXD và GND theo khuôn dạng như hình sau:
Trang 72 Ưu điểm của giao diện nối tiếp RS232
+ Khả năng chống nhiễu của các cổng nối tiếp cao;
+ Thiết bị ngoại vi có thể tháo lắp ngay cả khi máy tính đang đ ược cấp điện;
+ Các mạch điện đơn giản có thể nhận được điện áp nguồn nuôi qua công nối tiếp
3 Những đặc điểm cần lưu ý trong chuẩn RS232
+ Trong chuẩn RS232 có mức giới hạn trên và dưới (logic 0 và 1) là +-12V Hiện nay đang được cố định trở kháng tải trong phạm vi từ 3000 ÷ 7000 Ω;
+ Mức logic 1 có điện áp nằm trong khoảng -3V đến -12V, mức logic 0 từ +-3V đến 12V;
+ Tốc độ truyền nhận dữ liệu cực đại là 100kbps ;
+ Các lối vào phải có điện dung nhỏ hơn 2500pF;
+ Trở kháng tải phải lớn hơn 3000 Ω nhưng phải nhỏ hơn 7000Ω;
+ Độ dài của cáp nối giữa máy tính và thiết bị ngoại vi ghép nối qua cổng nối tiếp RS232 không vượt qua 15m nếu chúng ta không sử model;
+ Các giá trị tốc độ truyền dữ liệu chuẩn: 50, 75, 110, 750, 300, 600, 1200, 2400,
4800, 9600, 19200, 28800, 38400 56600, 115200 bps
4 Các mức điện áp đường truyền
RS 232 sử dụng phương thức truyền thông không đối xứng, tức là sử dụng tín hiệu điện áp chênh lệch giữa một dây dẫn và đất Do đó ngay từ đầu tiên ra đời nó đã mang vẻ lỗi thời của chuẩn TTL, nó vấn sử dụng các mức điện áp tương thích TTL để mô tả các mức logic 0 và 1 Ngoài mức điện áp tiêu chuẩn cũng cố định các giá trị trở kháng tải được đấu vào bus của bộ phận và các trở kháng ra của bộ phát
Mức điện áp của tiêu chuẩn RS232C hiện nay được mô tả như sau:
+ Mức logic 0 : +3V , +12V
+ Mức logic 1 : -12V, -3V
Các mức điện áp trong phạm vi từ -3V đến 3V là trạng thái chuyển tuyến Chính vì từ
- 3V tới 3V là phạm vi không được định nghĩa, trong trường hợp thay đổi giá trị logic từ thấp lên cao hoặc từ cao xuống thấp, một tín hiệu phải vượt qua quãng quá độ trong một thời gian ngắn hợp lý Điều này dẫn đến việc phải hạn chế về điện dung của các thiết bị tham gia và của cả đường truyền
5 Truyền dữ liệu
5.1 Quá trình truyền dữ liệu
Truyền dữ liệu qua cổng nối tiếp RS232 được thực hiện không đồng bộ Do vậy nên tại một thời điểm chỉ có một bit được truyền (1 kí tự) Bộ truyền gửi một bit bắt đầu (bit start) để thông báo cho bộ nhận biết một kí tự sẽ được gửi đến trong lần truyền bit tiếp theo Bit này luôn bắt đầu bằng mức 0 Tiếp theo đó là các bit dữ liệu (bits data) được gửi dưới dạng mã ASCII( có thể là 5,6,7 hay 8 bit dữ liệu) Sau đó là một Parity bit (
Trang 8Kiểm tra bit chẵn, lẻ hay không) và cuối cùng là bit dừng - bit stop có thể là 1, 1,5 hay 2 bit dừng
5.2 Tốc độ Baud, tốc độ bit
Tham số này chính là đặc trưng cho quá trình truyền dữ liệu qua cổng nối tiếp RS232 Tốc độ bit được định nghĩa là số bit truyền được trong thời gian 1 giây Tốc độ bit n ày phải được thiết lập ở bên phát và bên nhận đều phải có tốc độ như nhau (tốc độ giữa vi điều khiển và máy tính phải chung nhau 1 tốc độ truyền bit)
Tốc độ Baud liên quan đến tốc độ mà phần tử mã hóa dữ liệu được sử dụng để diễn tả bit được truyền còn tốc độ bit thì phản ánh tốc độ thực tế mà các bit được truyền
5.3 Bit chẵn lẻ hay Parity bit
Đây là bit kiểm tra lỗi trên đường truyền Thực chất của quá trình kiểm tra lỗi khi truyền dữ liệu là bổ xung thêm dữ liệu được truyền để tìm ra hoặc sửa một số lỗi trong quá trình truyền Do đó trong chuẩn RS232 sử dụng một kỹ thuật kiểm tra chẵn lẻ
Một bit chẵn lẻ được bổ sung vào dữ liệu được truyền để ta thấy số lượng các bit "1" được gửi trong một khung truyền là chẵn hay lẻ
Một Parity bit chỉ có thể tìm ra một số lẻ các lỗi chả hạn như 1,3,5,7,9 Nếu như một bit chẵn được mắc lỗi thì Parity bit sẽ trùng giá trị với trường hợp không mắc lỗi vì thế không phát hiện ra lỗi Do đó trong kỹ thuật mã hóa lỗi này không được sử dụng trong trường hợp có khả năng một vài bit bị mắc lỗi
IV Một số mạch chuyển đổi sang chuẩn TTL
Trong giới hạn khởi đầu cho các môn học về tự động hóa, ta chỉ xét chuyển đổi
từ chuẩn RS232 sang chuẩn TTL
Có rất nhiều mạch giao tiếp của RS232 giữa vi điều khiển hay các thiết bị khác với PC Dưới đây là những mạch giao tiếp thường được dùng
1 Mạch chuẩn đổi RS232 dùng IC Max232
Max232 là IC chuyên dùng cho giao tiếp giữa RS232 và thiết bị ngoại vi Max232 là
IC của hãng Maxim Đây là IC chay ổn định và được sử dụng phổ biến trong các mạch giao tiếp chuẩn RS232 Giá thành của Max232 phù hợp và tích hợp trong đó hai kênh truyền cho chuẩn RS232
Trang 9Mỗi đầu truyền ra và cổng nhận tín hiệu đều được bảo vệ chống lại sự phóng tĩnh điện Ngoài ra Max232 còn được thiết kế với nguồn +5V là nguồn công suất nhỏ
Mạch giao tiếp như sau :
Trang 102 Mạch chuẩn đổi RS232 dùng DS275
Đây cũng là IC của hãng Maxim DS275 được dùng trong các mạch giao tiếp của chuẩn RS232 nhưng do nó chỉ là bán song công và dùng trong các thiết kế công suất nhỏ
Mạch giao tiếp khá đơn giản Do bán song công nên trong các ứng dụng ít được dùng
3 Mạch chuẩn đổi RS232 dùng transitor
Mạch sử dụng 2 transior để giao tiếp RS232
Mạch giao tiếp khá đơn giản, nhưng độ tin cậy kém nên thực tế ít được dùng
Trang 114 Các định dạng truyền tin
4.1 Định dạng đồng bộ:
Trong truyền đồng bộ, mọi thiết bị dùng một xung đồng hồ được phát ra bởi một thiết
bị hoặc từ một nguồn xung ngoài Xung đồng hồ có thể có một tần số cố định hoặc có thể chốt tại những khoảng thời gian không đều Mọi bít truyền đi được đồng bộ với đồng hồ Nói cách khác, mỗi bít được truyền đi là dựa vào sự chuyển đổi của xung( như tăng hoặc giảm của sường xung) Nơi nhận dùng sự chuyển đổi xung để quyết định khi nào đọc mỗi bít truyền tới Từ hình vẽ các bạn cũng có thể thấy là nơi truyền sẽ truyền các bit khi mà nhận thấy sự chuyển sườn xung từ cao xuống thấp, và nơi nhận thì ngược lại phát hiện khi nào có sự chuyển sườn xung từ thấp lên cao thì đọc các bit.Chi tiết chính xác của giao thức này có thể biến đổi khác đi Ví dụ, nơi nhận có thể chốt dữ liệu nhận trong sườn xung tăng hoặc giảm, hoặc là phát hiện mức logic ở mức cao hoặc thấp Định dạng đồng
bộ dùng các cách khác nhau để bắt đầu và kết thúc việc truyền dữ liệu, bao gồm bít Start
và bít Stop và tín hiệu lựa chọn chíp
4.2 Định dạng không đồng bộ:
Trong truyền không đồng bộ, liên kết không bao gồm đường xung đồng hồ, bởi vì mỗi điểm đầu cuối của liên kết đã có xung đồng hồ cho riêng từng cái Mỗi điểm sẽ cần phải đồng ý cùng một tần số của đồng hồ và mọi đồng hồ chỉ khác nhau một vài % Mỗi byte truyền đi bao gồm bít Start để đồng bộ đồng hồ và một hoặc nhiều bít Stop cho tín hiệu kết thúc việc truyền trong mỗi một từ được truyền đi Cổng RS-232 trong PC dùng định dạng không đồng bộ để giao tiếp với modems(thiết bị mã hoá, giải mã dữ liệu) và các thiết bị khác Dù RS-232 có thể truyền dữ liệu đồng bộ nhưng liên kết không đồng bộ vần được dùng phổ biến hơn Phần lớn liên kết RS-485 dùng giao tiếp không đồng bộ Truyền không đồng bộ có thể dùng một trong vài cách định dạng phổ biến Phổ biến nhất là kiểu 8-N-1, nơi truyền sẽ truyền mỗi byte dữ liệu một bít Start, tiếp theo là 8 bít
dữ liệu bắt đầu với bít 0(bít có trọng số nhỏ nhất Least Sifgnificant Bit) và kết thúc với 1 bít Stop
Chữ N trong định dạng 8-N-1 chỉ rằng truyền dữ liệu không dùng bít chẵn lẻ Một dạng định dạng khác là bao gồm một bít chẵn lẻ giống như dạng đơn giản của kiểm soát lỗi
Khi số các bit 1 trong byte là chẵn thì bít Odd Parity Bit = 1 và bít lẻ = 0,
Một số dạng khác không phổ biến là dùng một số khác nhau của số bít dữ liệu Rất nhiều cổng nối tiếp hỗ trợ mọi nơi từ 5 ->8 bít dữ liệu, cộng với bít chẵn lẻ
Tốc độ số bít là số bít một giây được truyền đi hoặc là nhận về trong một đơn vị thời gian Tốc độ bus là số các sự kiện hình xảy ra hoặc truyền dữ liệu trên giây Hai giá trị này thường đồng nhất với nhau trong nhiều liên kết Trong đường dây điện thoại, môdem tốc độ cao mã hoá nhiều bít trong mỗi chu kì dữ liệu vì thế tốc độ bus thực tế nhỏ hơn tốc
độ bit( bit rate)
Mọi bít cần thiết cho truyền một giá trị từ bít Start đến bít Stop gọi là một Word Mỗi bít trong dạng Word gọi là một Character Trong vài liên kết, các bít là kí tự văn bản( dạng chữ hoặc số), trong khi các dạng kí tự khác lại là giá trị nhị phân Thời gian truyền
Trang 12các các kí tự trong một giây bằng với tổng thời gian truyền từng bít trong word cộng lại Thêm bít start và bít Stop làm tăng thời gian truyền mỗi byte lên 25% ( vì có 10 bít cần truyền trong khi chỉ dùng có 8 bít) Với định dạng 8-N-1, một byte truyền với thời gian bằng 1/10 tần số bus: do đó 9600 bít/s truyền 960 byte/s
Nếu nơi nhận đòi hỏi phải có một thời gian kiểm tra dữ liệu nhận đuợc, nơi truyền sẽ kéo dài độ rộng của bít Stop ra 1,5 hoặc 2 bít
V Thiết bị ngoại vi
1 Mở đầu về 8051 (89c51)
Trang 13Port 1, 2, 3:
Port 0
Trang 142 Truyền thông nối tiếp trong 8051
2.1 UART (Universal Asynchronous Receiver and Transmitter)
UART được biết như là một cỗng nối tiếp Nó dùng để truyền và nhận dữ liệu với baud rate khác nhau Khi UART là việc thì dữ liệu được ghi vào thanh ghi SBUF
Quá trình truyền tin được điều khiển bởi giá trị trong thanh ghi SCON (Serial Control)
Trang 152.2 Thanh ghi Serial Port Control (SCON)
SM0 - Serial port mode bit 0 sử dụng để chọn mode
SM1 - Serial port mode bit 1 sử dụng để chọn mode
SM2 - Serial port mode 2 bit, sử dụng để chọn mode 2 hoặc 3
REN - Reception Enable, khi bit này được set (clear) sẽ cho phép (không phép) nhận
TB8 - Transmitter bit 8, được set để truyền bit thứ 8 hoặc 9
RB8 - Receiver bit 8 or the 9th bit received in modes 2 and 3 Cleared by hardware if 9th bit received is a logic 0 Set by hardware if 9th bit received is a logic 1
TI - Transmit Interrupt flag, được tự động set sau khi gửi xong 1 byte Nó là tín hiệu để
xử lý cho lần gửi tiếp theo TI phải được clear bằng software
RI - Receive Interrupt flag, được tự động set sau khi nhận xong 1 byte Nó là tín hiệu để
xử lý cho lần nhận tiếp theo RI phải được clear bằng software
Bảng serial port mode theo bit SM0 và SM1:
Register 1/12 the quartz frequency
frequency)
2.2.1 Mode 0
Trang 16Trong mode 0, dữ liệu nối tiếp được truyền và nhận thông qua chân RXD, trong khi chân TXD xuất xung clock
TRANSMIT – Dữ liệu truyền cần được ghi vào thanh ghi SBUF Khi 8 bit đã được gửi thì bit TI của SCON được tự động set
RECEIVE - Dữ liệu truyền nối tiếp được nhận qua chân RXD với điều khiện bit REN=1
và RI=0 Khi 8 bit đã được nhận thì bit RI của SCON được tự động set
Trang 172.2.2 Mode 1
Trong mode 1, 10 bits được truyền thông qua chân TXD hoặc nhận thông qua chân RXD: một bit START (luôn là 0), 8 bit data và một bit STOP (luôn là 1) bit START khởi động quá trình nhận dữ liệu, trong khi bit STOP được tự động ghi vào bit RB8 trong SCON
TRANSMIT – Quá trình truyền được kích hoạt bằng việc ghi vào SBUF Dữ liệu sẽ được truyền khi set bit TI của SCON
RECEIVE - bit START (logic zero (0)) trên chân RXD khởi động quá trình nhận dữ liệu Có 2 điều khiện kèm theo: bit REN=1 và bit RI=0 Khi đã nhận xong thì bit RI của SCON được tự động set
Baud rate trong mode này được điều khiển bởi timer 1 overflow (tràng)
2.2.3 Mode 2
Trang 18Trong mode 2, bits được truyền thông qua chân TXD hoặc nhận thông qua chân RXD
Baud rate tạo bằng 1/32 hoặc 1/64 của tần số trong chip
TRANSMIT - Quá trình truyền được kích hoạt bằng việc ghi vào SBUF Dữ liệu sẽ được truyền khi set bit TI của SCON
RECEIVE - bit START (logic zero (0)) trên chân RXD khởi động quá trình nhận dữ liệu Có 2 điều khiện kèm theo: bit REN=1 và bit RI=0 Khi đã nhận xong thì bit RI của SCON được tự động set
2.2.4 Mode 3
Mode 3 như Mode 2 trong tất cả baud rate Baud rate trong Mode 3 là thay đổi
3 Baud rate
3.1 Tạo baud rate từ tần số trong chip
Baud Rate là một số thể hiện số lượng bit gửi/nhận được trong 1s Khi sử dụng UART thì baud rate phụ thuộc: selected mode, tần số trong chip và trạng thái của bit SMOD trong thanh ghi PCON
Trang 193.2 Tạo baud rate từ tần Timer 1
Timer 1 thường được sử dụng để tạo ra một dải tần số baud rate thay đổi dễ Thiết lập đơn giản như sau:
+ Kích hoạt Timer 1 overflow interrupt
+ Thiết lập Timer T1 trong chế độ tự động reload
+ Lựa chọn một trong các giá trị chuẩn từ bảng sau và ghi vào thanh ghi TH1
F OSC (MHZ) BAUD RATE
1/32
Mode 2
Trang 204 Multiprocessor Communication (Truyền thông đa xử lý)
Bit thứ 9 trong trong truyền tin có thể dùng làm bit xác định trong truyền thông cho 2 hay nhiều vi điều khiển Trong trường hợp này phải set bit SM2 trong SCON
5 Khởi động port nối tiếp
Nạp giá trị cho các thanh ghi sau để thiết lập quá trình truyền nối tiếp
Trang 21Ví dụ: Khởi động port nối tiếp
6 Counters and Timers
Vi điều khiển 8051 có 2 timer/counter gọi là T0 và T1 Mục đích chính là tạo độ trễ về thời gian
và đếm sự kiện Bên cạnh đó nó còn được sử dụng làm máy phát xung trong truyền thông nối tiếp, được gọi là Baud Rate
Timer T0
Timer T0 bao gồm 2 thanh ghi – TH0 và TL0 ghi 16-digit binary
Nội dung: TH0 × 256 + TL0 = T
Ví dụ: 3 × 256 + 232 = 1000
Trang 22Hai thanh ghi TMOD và TCON điều khiển chế độ hoạt động của các timer
TMOD Register (Timer Mode)
Chức năng:
GATE1 enables and disables Timer 1 by means of a signal brought to the INT1 pin (P3.3):
1 - Timer 1 operates only if the INT1 bit is set
0 - Timer 1 operates regardless of the logic state of the INT1 bit
C/T1 selects pulses to be counted up by the timer/counter 1:
1 - Timer counts pulses brought to the T1 pin (P3.5)
0 - Timer counts pulses from internal oscillator
T1M1,T1M0 là 2 bits chọn mode của Timer 1
GATE0 enables and disables Timer 1 using a signal brought to the INT0 pin (P3.2):
1 - Timer 0 operates only if the INT0 bit is set
0 - Timer 0 operates regardless of the logic state of the INT0 bit
C/T0 selects pulses to be counted up by the timer/counter 0:
1 - Timer counts pulses brought to the T0 pin (P3.4)
0 - Timer counts pulses from internal oscillator
T0M1,T0M0 là 2 bits chọn mode của Timer 0
Trang 23Timer 0 in mode 1 (16-bit timer)
Timer 0 in mode 2 (Auto-Reload Timer)
Trang 24Timer 0 in Mode 3 (Split Timer)
Chỉ sử dụng mode này khi 2 timer được sử dụng và timer1 dùng làm máy phát baud rate
Timer Control (TCON) Register
Trang 25TF1 bit is automatically set on the Timer 1 overflow
TR1 bit enables the Timer 1
1 - Timer 1 is enabled
0 - Timer 1 is disabled
TF0 bit is automatically set on the Timer 0 overflow
TR0 bit enables the timer 0
1 - Timer 0 is enabled
0 - Timer 0 is disabled
Cách sử dụng Timer 0
Lựa chọn và thiết lập trên TMOD:
Mở timer trên TCON:
Set bit TR0 để khởi động timer
7 Xử lý ngắt với 8051 (Microcontroller Interrupts)
Có 5 nguồn ngăt trên 8051
Trang 26IE Register (Interrupt Enable)
EA - global interrupt enable/disable:
o 0 - disables all interrupt requests
o 1 - enables all individual interrupt requests
ES - enables or disables serial interrupt:
o 0 - UART system cannot generate an interrupt
o 1 - UART system enables an interrupt
ET1 - bit enables or disables Timer 1 interrupt:
o 0 - Timer 1 cannot generate an interrupt
o 1 - Timer 1 enables an interrupt
EX1 - bit enables or disables external 1 interrupt:
o 0 - change of the pin INT0 logic state cannot generate an interrupt
o 1 - enables an external interrupt on the pin INT0 state change
ET0 - bit enables or disables timer 0 interrupt:
o 0 - Timer 0 cannot generate an interrupt
o 1 - enables timer 0 interrupt
EX0 - bit enables or disables external 0 interrupt:
o 0 - change of the INT1 pin logic state cannot generate an interrupt
o 1 - enables an external interrupt on the pin INT1 state change
Thứ tụ ưu tiên nếu cả 5 ngắt xuất hiện cùng lúc:
Trang 271 External interrupt INT0
2 Timer 0 interrupt
3 External Interrupt INT1
4 Timer 1 interrupt
5 Serial Communication Interrupt
IP Register (Interrupt Priority)
PS - Serial Port Interrupt priority bit
8 Power Consumption Control
Có 2 chế độ tiết kiệm:Idle và Power Down
Trang 28Idle mode
Khi bit IDL trong PCON được set, thì 8051 sẽ cắt các nguồn lớn, khi đó các thanh ghi
và các đầu vào ra không đổi 8051 sẽ về trạng thái bình thường khi có bất kỳ ngắt nào
hoặc reset
Power Down mode
Khi set bit PD trong PCON vi điều khiển ngừng các hoạt động Khi này vi điều khiển
chỉ tiêu tốn nguồn nhỏ hơn 2V, và nhỏ hơn 40uA Vi điều khiển chỉ trở lại trạng thái bình
thường khi reset
PCON register
Trang 29The purpose of the Register PCON bits is:
SMOD Baud rate is twice as much higher by setting this bit
GF1 General-purpose bit (available for use)
GF1 General-purpose bit (available for use)
GF0 General-purpose bit (available for use)
PD By setting this bit the microcontroller enters the Power Down mode
IDL By setting this bit the microcontroller enters the Idle mode
9 Lập trình cho 89xxx
9.1 Truyền thông qua UART
;************************************************************************
;* PROGRAM NAME : UartR.ASM
;* DESCRIPTION: Each data received from PC via UART appears on the port
JMP XRESET ; Reset vector
ORG 023H ; Starting address of UART interrupt routine
JMP IR_SER
ORG 100H
Trang 30MOV TMOD,#20H ; Timer1 in mode2
MOV TH1,#0FDH ; 9600 baud rate at the frequency of
; 11.0592MHz
MOV SCON,#50H ; Receiving enabled, 8-bit UART
MOV IE,#10010000B ; UART interrupt enabled
CLR TI ; Clear transmit flag
CLR RI ; Clear receive flag
SETB TR1 ; Start Timer1
LOOP: SJMP LOOP ; Remain here
IR_SER: JNB RI,OUTPUT ; If any data is received,
; move it to the port
MOV A,SBUF ; P1
MOV P1,A
CLR RI ; Clear receive flag
OUTPUT: RETI
END ; End of program
9.2 Data transmission via UART
Sử dụng UART truyền 1 số (0-255) vào PC ở 9600 baud rate
;************************************************************************
;* PROGRAM NAME : UartS.ASM
;* DESCRIPTION: Sends values 0-255 to PC
XRESET: MOV IE,#00 ; All interrupts are disabled
MOV SP,#STACK_START ; Initialization of Stack pointer
MOV TMOD,#20H ; Timer1 in mode 2
MOV TH1,#0FDH ; 9600 baud rate at the frequency of
; 11.0592MHz
MOV SCON,#40H ; 8-bit UART
CLR TI ; Clear transmit bit
CLR RI ; Clear receive flag
MOV R3,#00H ; Reset caunter
SETB TR1 ; Start Timer 1
START: MOV SBUF,R3 ; Move number from counter to a PC
LOOP1: JNB TI,LOOP1 ; Wait here until byte transmission complete
CLR TI ; Clear transmit bit
INC R3 ; Increment the counter value by 1
CJNE R3,#00H,START ; If 255 bytes are not sent return to label START
LOOP: SJMP LOOP ; Remain here
END ; End of program
10 Mạch ứng dụng kết nối qua cỗng COM
10.1 Hệ thống thu thập và hiển thị nhiệt độ
Đây là hệ thống DAQ 1.1 kết hợp với phần mềm LabVIEW dùng để thu thập thông tin về nhiệt độ từ các cảm biến LM35 Giá trị nhận được từ các cảm biến được vi điều khiển AT89C51 gửi về PC qua cỗng COM Hệ thống sẽ cảnh báo nếu nhiệt độ cao hoặc thấp hơn giới hạn đặt