2.7.3.1. Chế độ 0
Chế độ 0 là chế độ mà cổng nối tiếp được dùng như một thanh ghi dịch 8 bit. Dữ liệu được truyền/nhận nối tiếp trên chân RXD, chân TXD được dùng để phát xung clock dịch bit. Khi truyền/nhận các byte dữ liệu 8 bit, bit có giá trị thấp nhất (LSB) được truyền/nhận trước tiên và bit MSB được truyền/nhận sau cùng.
Hình 2.21. Hoạt động của cổng nối tiếp ở chế độ 0
Việc truyền dữ liệu được bắt đầu bằng việc ghi một byte dữ liệu vào SBUF còn việc nhận dữ liệu được bắt đầu khi bit REN đã được đặt ở mức một và cờ thu RI bằng 0 tốc độ Baud ở chế độ 0 cố định bằng Fosc/12.
2.7.3.2. Chế độ 1
Trong chế độ 1, cổng nối tiếp hoạt động như một bộ UART 8 bit có tốc độ thay đổi. Dữ liệu được truyền nối tiếp trên chân TXD và nhận nối tiếp trên chân RXD, chế độ này cung cấp cho AT89S52 một công cụ giao tiếp với máy tính qua cổng COM.
Với chế độ 1, 1 khung truyền sẽ gồm 10 bit, ngoài 8 bit dữ liệu ra còn có 1 bit start (ở mức thấp) và 1 bit stop (ở mức cao), LSB cũng được truyền trước, MSM được truyền sau.
Hình 2.22. Giản đồ truyền nhận dữ liệu ở chế độ 0
H ình 2.24. Giản đồ truyền nhận dữ liệu ở chế độ 2 và 3
Hình 2.25. Dùng Timer 1, 2 cung cấp tốc độ baud cho cổng nối tiếp
Hình 2.26. Dùng Timer 1 cung cấp tốc độ baud cho cổng nối tiếp (TCLK=RCLK=0)
Hình 2.27. Dùng Timer 1 cung cấp tốc độ baud cho cổng nối tiếp 2.7.3.3. Chế độ 2
Ở chế độ 2, cổng nối tiếp hoạt động như một bộ UART 9 bit, một khung truyền sẽ gồm 11 bit, trong đó bắt đầu là bit start, tiếp theo là 8 bit dữ liệu, tiếp theo là bit dữ liệu thứ 9 (là bit TB8 nếu là khung truyền, là bit RB8 nếu là khung nhận), cuối cùng là bit stop. Chế độ này thường được dùng khi cần chèn thêm bit kiểm tra chẵn lẻ vào trong khung truyền để giảm bit lỗi đường truyền.
Hình 2.28. Tốc độ baud của chế độ 2 2.7.3.4. Chế độ 3
Chế độ 3 là sự kết hợp của chế độ 1 và chế độ 2, nghĩa là cổng nối tiếp hoạt động như là một UART 9 bit và tốc độ baud của UART là thay đổi giống như chế độ 1.
PHẦN III: NỘI DUNG THIẾT KẾ
CHƯƠNG I: GIỚI THIỆU CÁC MODUL VÀ CÁC LINH KIỆN DÙNG TRONG MẠCH
1. KHỐI NGUỒN
Hình 3.1. Sơ đồ khối nguồn
Cung cấp nguồn nuôi 5V cho toàn mạch.
2. KHỐI GHÉP NỐI VỚI MÁY TÍNH QUA CỔNG COM
2.1. Cổng nối tiếp (COM)
Cổng nối tiếp là một giao diện rất phổ biến trên máy tính, cổng này có tên gọi khác là cổng COM. Nó được sử dụng khá rộng rãi và thuận tiện cho việc ghép nối máy tính với thiết bị ngoài. Khoảng cách truyền của cổng nối tiếp được cải thiện hơn so với cổng song song do mức chênh lệch điện áp là khá lớn.
Việc truyền dữ liệu qua cổng COM được tiến hành theo cách nối tiếp. Nghĩa là các bit dữ liệu được truyền đi nối tiếp nhau trên một đường dẫn. Loại truyền này có khả năng dùng cho những ứng dụng có yêu cầu truyền khoảng cách lớn hơn, bởi vì các khả năng gây nhiễu là nhỏ đáng kể hơn khi dùng một cổng song song (cổng máy in).
Cổng COM không phải là một hệ thống bus nó cho phép dễ dàng tạo ra liên kết dưới hình thức điểm với điểm giữa hai máy cần trao đổi thông tin với nhau, một thành viên thứ ba không thể tham gia vào cuộc trao đổi thông tin này.
Sơ đồ chân cổng COM.
Hình 3.3. Sơ đồ chân của cổng COM
Ý nghĩa các chân tín hiệu:
- Chân 1 (DCD) : Tín hiệu phát hiện mang dữ liệu. - Chân 2 (RxD) : Nhận dữ liệu.
- Chân 3 (TxD) : Truyền dữ liệu.
- Chân 4 ( DTR) : Dữ liệu cuối sẵn sàng. - Chân 5 ( GND) : Nối đất.
- Chân 7 ( RTS) : Tín hiệu yêu cầu gửi.
- Chân 8 ( CTS) : Tín hiệu yêu cầu xóa để gửi tiếp. - Chân 9 ( RI) : Ring Indicator.
2.2. IC MAX232
Bộ vi điều khiển AT89S52 có khả năng giao tiếp với thế giới bên ngoài thông qua cổng nối tiếp. Vấn đề trở ngại duy nhất khi giao tiếp với máy tính là mức logic ở bộ vi điều khiển và ở cổng COM của máy tính khác nhau, cụ thể như sau:
Bảng 3.1. So sánh điện áp của các mức logic giữa RS232 và TTL
Đối tượng Mức logic Mức điện áp tương ứng
Cổng COM 1 -12V đến -3V
0 +3V đến +12V
Vi điều khiển 1 +5V
0 0V
Khắc phục vấn đề này, người ta sử dụng vi mạch MAX232 để chuyển đổi mức điện áp giữa hai chuẩn. Vi mạch này có chứa hai bộ chuyển đổi mức logic từ TTL sang RS232 và ngược lại.
Hình 3. 4. Sơ đồ chân và hình ảnh thực tế của MAX 232 3. KHỐI VI ĐIỀU KHIỂN
Hình 3.5. Sơ đồ khối vi điều khiển 3.1.Mạch tạo dao động
Hình 3.6. Sơ đồ mạch tạo dao động của 8051
AT89S52 có một bộ chia tần bên trong chip, bộ này sẽ cấp xung clock cho các khối trên chip từ nguồn dao động bên ngoài qua 2 chân XTAL1 và XTAL2 .
Bộ chia tần có thể hoạt động ở hai chế độ :
- Chế độ X1: ( chế độ mặc định): Ở chế độ này tần số thạch anh được chia 12 lần, nghĩa là một lệnh được thực hiện trong một chu kì máy và tần số thạch anh là 12 MHz thì thời gian thực hiện lệnh đó sẽ là 12 (us).
- Chế độ X2: Ở chế độ này tần số thạch anh được chia 6 lần , chế độ này được đặt bằng cách đặt các bit ở thanh ghi CLKCON0 và thanh ghi CLKCON1.
3.2. Mạch reset
Hình 3.7. Sơ đồ mạch reset của 8051
Có 4 cách để reset AT89S52 lần lượt là: reset khi cấp nguồn, reset bởi WDT, reset bằng phần mềm, reset bằng mạch ngoài qua chân RST.
Trong một hệ thống gồm nhiều vi mạch khả trình thì một mạch reset tích hợp cả 2 cách reset khi bật nguồn và reset bởi mạch ngoài thường được sử dụng.
4. KHỐI QUÉT LED MA TRẬN 8x8
4.1. IC 74HC595
74HC595 là IC ghi dịch 8bit kết hợp chốt dữ liệu. Đầu vào nối tiếp, đầu ra song song.
Chức năng: Thường dùng trong các mạch quét led 7 đoạn, led matrix… để tiết kiệm số chân VĐK tối đa. Có thể mở rộng số chân vi điều khiển bao nhiêu tùy thích mà không IC nào có thể làm được bằng việc mắc nối tiếp đầu vào dữ liệu các IC với nhau.
Sơ đồ chân IC 74HC595
Hình 3.9. Sơ đồ chân và hình ảnh thực tế của IC 74HC595
Giải thích ý nghĩa hoạt động của một số chân quan trọng:
- Chân 14: Đầu vào dữ liệu nối tiếp. Tại một thời điểm xung clock chỉ đưa vào được 1 bit.
- QA=>QH: Trên các chân (15,1,2,3,4,5,6,7): Xuất dữ liệu khi chân 13 tích cực ở mức thấp và có một xung tích cực ở sườn âm tại chân chốt 12.
- Chân 13: Chân cho phép tích cực ở mức thấp (0). Khi ở mức cao tất cả các đầu ra của 74HC595 trở về trạng thái cao trở, không có đầu ra nào được cho phép.
- Chân 9: Chân dữ liệu nối tiếp. Nếu dùng nhiều 74HC595 mắc nối tiếp nhau thì chân này đưa vào đầu vào con tiếp theo khi đã dịch đủ 8bit.
- Chân 11: Chân vào xung clock. Khi có 1 xung clock tích cực ở sườn dương thì một bit được dịch vào IC.
- Chân 12: Xung clock chốt dữ liệu. Khi có 1 xung clock tích cực ở sườn dương thì cho phép xuất dữ liệu trên các chân output.
- Chân 10: Khi chân này ở mức thấp (0) thì dữ liệu sẽ bị xóa trên chip.
4.2. LED MATRIX 8X8
4.2.1. Sơ đồ nguyên lý của ma trận led 8x8
Hình 3.10. Sơ đồ chân và hình ảnh thực tế của Led Matrix 8x8
Các led trên cùng một hàng được nối chân dương với nhau. Các led trên cùng một cột được nối chân âm với nhau.
Trạng thái của mỗi led được quyết định bởi tín hiệu điện áp 5v đưa vào đồng thời cả 2 chân.
VD : Để led sáng thì điện áp 5v phải đưa vào chân dương còn chân âm nối mass. Led tắt thì không có điện áp nối vào chân dương.
4.2.2. Cách quét LED ma trận 8x8
Tại một thời điểm thì chỉ có trạng thái của một điểm ảnh được xác định. Để xác định các trạng thái và địa chỉ điểm ảnh tiếp theo thì các điểm ảnh còn lại sẽ
chuyển về trạng thái tắt( led đang sáng sẽ chuyển về trạng thái tắt dần ). Vì thế hiển thị được toàn bộ hình ảnh của ma trận led ta có thể quét ma trận led nhiều lần với tốc độ quét rất lớn( lớn hơn nhiều lần thời gian kịp tắt của đèn).
Mắt người chỉ nhận biết được tối đa 24 hình/s. Do đó nếu tốc độ quét rất lớn thì sẽ không nhận ra được sự thay đổi của đèn mà sẽ thấy được toàn bộ hình ảnh cần hiển thị.
5. KHỐI GIAO TIẾP LCD
Hình 3.11. Sơ đồ khối giao tiếp LCD
LCD được sử dụng trong đề tài là loại hiển thị kí tự ( character LCD) kích cỡ 16x2. Mỗi kí tự được tạo bởi một ma trận các điểm sáng kích thước 5x7 hoặc 5x10.
5.1. Ý nghĩa các chân của LCD hiển thị ký tự
Hầu hết các module LCD hiển thị ký tự được thiết kế dựa trên bộ điều khiển HD 44780 của Hitachi nên chúng có tập lệnh và chân tương thích nhau.
Bảng 3.2. Bảng chức năng các chân của module LCD có tối đa 80 ký tự
Chân số Ký Hiệu Mức Logic I/O Chức năng
1 Vss - - Nguồn cung cấp (GND)
2 Vcc - - Nguồn cung cấp (+5V)
3 Vee - I Điện áp vào để điều chỉnh độ
tương phản
4 RS 0/1 I Lựa chọn thanh ghi
0= Thanh ghi lệnh 1= Thanh ghi dữ liệu
5 R/W 0/1 I 0= Ghi vào LCD module
1= Đọc từ LCD module
6 E 1.1 →0 I Tín hiệu cho phép
7 DB0 0/1 I/O Data bus line 0 (LSB)
8 DB1 0/1 I/O Data bus line 1
9 DB2 0/1 I/O Data bus line 2
10 DB3 0/1 I/O Data bus line 3
11 DB4 0/1 I/O Data bus line 4
12 DB5 0/1 I/O Data bus line 5
13 DB6 0/1 I/O Data bus line 6
14 DB7 0/1 I/O Data bus line 7 (MSB)
5.2. Nguyên tắc hiển thị ký tự trên LCD
1. Xóa toàn bộ màn hình. 2. Đặt chế độ hiển thị.
3. Đặt vị trí con trỏ ( Nơi bắt đầu của ký tự hiển thị). 4. Hiển thị ký tự.
Các bước 3 và 4 có thể được lặp đi lặp lại nhiều lần nếu cần hiển thị nhiều ký tự .
Mỗi khi thực hiện ghi lệnh hoặc ghi dữ liệu hiển thị lên LCD đều phải kiểm tra cờ bận. Tuy nhiên có một số loại LCD không cho phép kiểm tra cờ bận vì vậy bộ VĐK cần phải chủ động phân phối thời gian khi ra lệnh cho LCD.
Chế độ hiển thị mặc định sẽ là hiển thị dịch, vị trí con trỏ mặc định sẽ là đầu dòng thứ nhất.
Để điều khiển hoạt động của LCD nên sử dụng Port 2 hoặc Port 1 cho việc xuất nhập dữ liệu. Các chân tạo tín hiệu điều khiển RS, RW, EN_LCD có thể chọn tùy ý trong các chân của Port còn lại.
6. KHỐI ADC0804
Hình 3.13. Sơ đồ khối chuyển đổi A/D
Thực hiện chuyển đổi tín hiệu tương tự thành tín hiệu số. ADC0804
Chíp ADC 0804 là bộ chuyển đổi tương tự sang số thuộc họ ADC 0800 từ hãng National Semiconductor. Nó cũng được nhiều hãng khác sản xuất, làm việc với +5V và có độ phân giải là 8 bít. Ngoài độ phân giải thì thời gian chuyển đổi cũng là một yếu tố quan trọng khác khi đánh giá một bộ ADC. Thời gian chuyển đổi được định nghĩa như là thời gian mà bộ ADC cần để chuyển một đầu vào tương tự thành một số nhị phân. Trong ADC 0804 thời gian chuyển đổi thay đổi phụ thuộc vào tần số đồng hồ được cấp tới chân CLK và CLK IN nhưng không thể nhanh hơn 110s.
Sơ đồ chân và chức năng các chân của IC ADC0804
Hình 3.14. Sơ đồ chân và hình ảnh thực tế của IC ADC0804
- Chân - chọn chíp: Là một đầu vào tích cực mức thấp được sử dụng để kích hoạt chíp ADC 8004. Để truy cập ADC 8004 thì chân này phải ở mức thấp.
- Chân (đọc): Đây là một tín hiệu đầu vào được tích cực mức thấp. Các bộ ADC chuyển đổi đầu vào tương tự thành số nhị phân tương đương với nó và giữ nó trong một thanh ghi trong. được sử dụng để nhận dữ liệu được chuyển đổi ở đầu ra của ADC 8004. Khi CS = 0 nếu một xung cao xuống thấp được đưa đến chân thì đầu ra số 8 bít được hiển diện ở các chân dữ liệu D0 - D7. Chân cũng được coi như cho phép đầu ra.
- Chân ghi (thực ra tên chính xác là “Bắt đầu chuyển đổi”). Đây là chân đầu vào tích cực mức thấp được dùng để báo cho ADC 8004 bắt đầu quá trình chuyển đổi. Nếu CS = 0 khi tạo ra xung cao xuống thấp thì bộ ADC 804 bắt đầu chuyển đổi giá trị đầu vào tương tự Vin về số nhị phân 8 bít. Lượng thời gian cần thiết để chuyển đổi thay đổi phụ thuộc vào tần số đưa đến chân CLK IN và CLK R. Khi việc chuyển đổi dữ liệu được hoàn tất thì chân INTR được ép xuống thấp bởi ADC 8004.
- Chân CLK IN và CLK R: Chân CLK IN là một chân đầu vào được nối tới một nguồn đồng hồ ngoài khi đồng hồ ngoài được sử dụng để tạo ra thời gian. Tuy nhiên 804 cũng có một bộ tạo xung đồng hồ. Để sử dụng bộ tạo xung đồng hồ trong (cũng còn được gọi là bộ tạo đồng hồ riêng) của 804 thì các chân CLK IN và CLK R được nối tới một tụ điện và một điện trở. Trong trường hợp này tần số đồng hồ được xác định bằng biểu thức:
Giá trị tiêu biểu của các đại lượng trên là R = 10k và C= 150pF và tần số nhận được là f = 606kHz và thời gian chuyển đổi sẽ mất là 110s.
- Chân ngắt (ngắt hay gọi chính xác hơn là “kết thúc chuyển đổi’).
Đây là chân đầu ra tích cực mức thấp. Bình thường nó ở trạng thái cao và khi việc chuyển đổi hoàn tất thì nó xuống thấp để báo cho CPU biết là dữ liệu được chuyển đổi sẵn sàng để lấy đi. Sau khi xuống thấp, ta đặt CS = 0 và gửi một xung cao 0 xuống thấp tới chân lấy dữ liệu ra của 804.
- Chân Vin (+) và Vin (-): Đây là các đầu vào tương tự vi sai mà Vin = Vin (+) - Vin
(-). Thông thường Vin (-) được nối xuống đất và Vin (+) được dùng như đầu vào tương tự được chuyển đổi về dạng số.
- Chân VCC. Đây là chân nguồn nuôi +5v, nó cũng được dùng như điện áp tham chiếu khi đầu vào Vref/2 (chân 9) để hở.
- Chân Vref/2. Chân 9 là một điện áp đầu vào được dùng cho điện áp tham chiếu. Nếu chân này hở (không được nối) thì điện áp đầu vào tương tự cho ADC 804 nằm trong dải 0 đến +5v (giống như chân VCC). Tuy nhiên, có nhiều ứng dụng mà đầu vào tương tự điện áp đến Vin cần phải khác ngoài dải 0 đến 5v. Chân Vref/2 được dùng để thực thi các điện áp đầu vào khác ngoài dải 0 - 5v. Ví dụ, nếu dải đầu vào tương tự cần phải là 0 đến 4v thì Vref/2 được nối với +2v.
Ghi chú: - VCC = 5V.
Khi Vref/2 hở thì đo được ở đó khoảng 2,5V. Kích thước bước (độ phân dải) là sự thay đổi nhỏ nhất mà ADC có thể phân biệt được.
- Các chân dữ liệu D0 - D7. (D7 là bít cao nhất MSB và D0 là bít thấp nhất LSB) là các chân đầu ra dữ liệu số. Đây là những chân được đệm ba trạng thái và dữ liệu được chuyển đổi chỉ được truy cập khi chân CS = 0 và chân bị đưa xuống thấp. Để tính điện áp đầu ra ta có thể sử dụng công thức sau: