MỤC LỤC
Việc nạp chương trình trong hệ thống (in-system) của DS5000 thông qua cổng nối tiếp của PC làm cho nó trở thành một hệ thống phát triển tại chỗ lý tưởng. Khi một sản phẩm được thiết kế và được hoàn thiện tuyệt đối thì phiên bản OTP của 8051 được dùng để sản xuất hàng loạt vì giá thành một đơn vị sản phẩm sẽ rẻ hơn.
Các phiên bản OTP của 8051 là các chíp 8051 có thể lập trình được một lần và được cung cấp từ nhiều hãng khác nhau. Các phiên bản Flash và NV-RAM thường được sử dụng để phát triển sản phẩm mẫu.
Các thanh ghi trong 89S52 được định dạng như một phần của RAM trên chip vì vậy mỗi thanh ghi sẽ có một địa chỉ (ngoại trừ thanh ghi bộ đếm chương trình và thanh ghi lệnh vì các thanh ghi này hiếm khi bị tác động trực tiếp). Cờ nhớ thường nó được dùng cho các lệnh toán học: C =1 nếu phép toán cộng có sự tràn hoặc phép trừ có mượn và ngược lại C = 0 nếu phép toán cộng không tràn và phép trừ không có mượn.
T2CON.6 EXF2 CEH Cờ ngắt ngoài Timer 2, TXF2=1 khi xảy ra sự nạp lại hoặc thu nhận, EXF2=1 cũng gây ra ngắt do Timer 2 nếu như ngắt này được lập trình cho phép, EXF2 được xóa bởi phần mềm. T2CON.3 EXEN2 CBH Bit điều khiển hoạt động của Timer 2, khi EXEN2=1 việc nạp lại hoặc thu nhận (capture) diễn ra khi có sự chuyển trạng thái từ 1 sang 0 ở chân T2EX nếu T2 không sử dụng để cung cấp tốc độ baud cho cổng nối tiếp.
T2MOD.1 T2OE Cho phép đầu ra khi sử dụng Timer 2 để tạo xung T2MOD.0 DCEN Bit cho phép Timer 2 hoạt động như bộ đếm tiến/lùi * Thanh ghi này không định địa chỉ bit. Chế độ 0 là chế độ định thời 13 bit, chế độ này tương thích với các bộ vi điều khiển trước đó, trong các ứng dụng hiện nay chế độ này không còn thích hợp. Bộ Timer thứ nhất với nguồn xung clock được lấy từ bộ chia tần trên chip hoặc từ bộ tạo xung bên ngoài qua chân T0 tùy thuộc vào giá trị của bit C-/T0.
Khi Timer 0 được tách thành hai Timer 8 bit thì Timer 1 vẫn có thể hoạt động bình thường ở các chế độ 0, 1, 2, tuy nhiên khi xảy ra tràn cờ TF1 không được thiết lập bằng 1. Như vậy trong trường hợp này Timer 1 chỉ có thể sử dụng cho các ứng dụng không cần đến ngắt (TF1=1), chẳng hạn như tạo tốc độ baud cho port nối tiếp.
Các nguồn xung Clock
Khi truyền/nhận các byte dữ liệu 8bit,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.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 1 và cờ thu RI= 0. 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. Khi sử dụng các bộ Timer cung cấp tốc độ baud cho cổng nối tiếp thì thạch anh có tần số 11,0592 MHz được khuyến cáo nên dùng vì với tần số này sẽ tạo được tốc độ baud chuẩn sai số 0%.
Chế độ này, cổng nối tiếp hoạt động như một bộ UART 9 bit, một khung truyền gồm 11 bit, trong đó bắt đầu bằng 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. Thông thường khởi động thanh ghi TMOD ở chế độ tự động nạp lại 8 bit (mode 2) và đặt giá trị nạp lại thích hợp vào thanh ghi TH1 để có tốc độ tràn đúng, từ đó tạo ra tốc độ baud.
+ (Trạng thái của ngắt hiện hành được lưu giữ lại) + Các ngắt được chặn lại ở mức ngắt. + Các ngắt này xuất hiện khi cờ ngắt phát TI hoặc cờ ngắt thu RI được set bằng 1. + Cờ gây ra ngắt ở port nối tiếp không được xóa bởi phần cứng khi CPU trỏ tới ISR.
+ Việc chọn các ngắt loại tác động mức hay cạnh được lập trình thông qua các bit IT0 và IT1 của TCON. + Các cờ gây ngắt IE0, IE1 tự động được xóa khi CPU trỏ tới ISR tương ứng.
Tất cả các phần mềm lập trình hay các thanh ghi của chip điều khiển đều sử dụng mã nhị phân thông thường, không phải mã BCD, do đó cần phải viết các chương trình con để quy đổi từ số thập lục phân (hoặc thập phân thường) sang BCD. Bit cao nhất, bit 7, trong thanh ghi này là 1 điều khiển có tên CH (Clock halt – treo đồng hồ ), nếu bit này được set bằng 1 bộ dao động trong chip bị vô hiệu hóa, đồng hồ không hoạt động. Sau khi DS1307 nhận dạng được địa chỉ và bit ghi thì master sẽ gửi một địa chỉ thanh ghi tới DS1307, tạo ra một con trỏ thanh ghi trên DS1307 và master sẽ truyền từng byte dữ liệu cho DS1307 sau mỗi bit acknowledge nhận được.
Sau đó, mới START lại rồi ghi lại 0D1H (lúc này mới thông báo là sẽ đọc từ DS1307 ), tiếp theo cứ đọc bình thường ( thanh ghi đọc được sẽ là thanh ghi có địa chỉ mới vừa ghi vào), tiếp tục đọc thì địa chỉ cần đọc sẽ tự động tăng lên cho đến khi STOP I2C. Nhìn vào lưu đồ chúng ta thấy, thanh ghi= 02H, là địa chỉ của thanh ghi giờ trong con DS1307, như vậy, mục đích của việc định nghĩa ô nhớ thanh ghi là để xác định địa chỉ thay đổi giá trị trong ô nhớ RAM của DS1307.
Các chân này đượ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 RD đưa xuống mức thấp. Đối với 8051, chức năng duy nhất của Port 1 là chức năng xuất nhập cùng Port khác, Port 1 có thể xuất nhập theo bit và theo byte. /Psen là chân điều khiển đọc chương trình ở bộ nhớ ngoài, nó được nối với chân /OE để cho phép đọc các byte mã lệnh trên Rom ngoài.
Khi tớn hiệu này được đưa lên mức cao trong ít nhất 2 chu kì máy, các thanh ghi trong bộ nhớ vi điều khiển được tải những giá trị thích hợp để khởi động lại hệ thống. AT89S52 có một bộ dao động trên chíp, nó thường được nối với bộ dao động thạch anh có tần số lớn nhất là 33MHz, thông thường là 12MHz.
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. 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 của con tiếp theo khi đã dịch đủ 8 bit. Khi có một xung clock tích cực ở sườn dương (từ 0 lên 1)thì 1 bit được dịch vào IC.
Khi có một 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.
Nếu led 7 đoạn có Cathode (cực -) chung, đầu chung này được nối xuống Ground (hay Mass), các chân còn lại dùng để điều khiển trạng thái sáng tắt của các led đơn, led chỉ sáng khi tín hiệu đặt vào các chân này ở mức 1. Phần cứng được kết nối với 1 Port bất kì của Vi điều khiển, để thuận tiện cho việc xử lí về sau phần cứng nên được kết nối như sau: Px.0 nối với chân a, Px.1nối với chân b, lần lượt theo thứ tự cho đến Px.7 nối với chân h. Để kết nối nhiều led 7 đoạn vào vi điều khiển thực hiện như sau: nối tất cả các chân nhận tín hiệu của tất cả các led 7 đoạn (chân abcdefgh) cần sử dụng vào cùng 1 Port, trong ví dụ, 8 led 7 đoạn có các chân nhận tín hiệu cùng được nối với P0.
Dựng cỏc ngừ ra cũn lại của vi điều khiển điều khiển ON/OFF cho led 7 đoạn, mỗi ngừ ra điều khiển ON/OFF cho 1 led 7 đoạn (ON: led 7 đoạn được cấp nguồn để hiển thị, OFF: led 7 đoạn bị ngắt nguồn nên không hiển thị được). Thời gian ON/OFF chỉ trong khoảng vài chục às, và tại mỗi thời điểm chỉ cú một led 7 đoạn hiển thị số của chính nó, vì vậy mắt người thấy 3 led 7 đoạn không sáng đứt quãng, mà sáng liên tục, mỗi led hiển thị 1 số riêng của nó.
Mạch sử dụng 2 rơ-le làm việc điều khiển động cơ bơm nước hoạt động. LM35 là họ cảm biến nhiệt mạch tích hợp chính xác cao có điện áp đầu ra tỷ lệ tuyến tính với nhiệt độ theo thang độ Celsius. Họ cảm biến này không yêu cầu căn chỉnh ngoài vì vốn nó đã được căn chỉnh.
Thời gian chuyển đổi được định nghĩa 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. Đối với ADC0804 thì thời gian chuyển đổi phụ thuộc vào tần số đồng hồ được cấp tới chân CLK và CLK IN và khụng bộ hơn 110às. - WR (Write): Chân số 3, đây là chân vào tích cực mức thấp được dùng báo cho ADC biết để bắt đầu quá trình chuyển đổi.
Nếu CS = 0 khi WR tạo ra xung cao xuống thấp thì bộ ADC0804 bắt đầu quá trình chuyển đổi giá trị đầu vào tương tự Vin thành số nhị phân 8 bit. Bình thường chân này ở trạng thái cao và khi việc chuyển đổi tương tự số hoàn tất thì nó chuyển xuống mức thấp để báo cho CPU biết là dữ liệu chuyển đổi sẵn sàng để lấy đi.
Khối hiển thị;
7SEGQ
RVCC
Phân tích khối nguồn
LED1
LEDC2
CON2
Phân tích khối đọc cảm biến nhiệt độ
VCC20
3INTR
VIN+6
VIN -7
VREF/29
CLK IN4
CLK R19
ADC0804C7
WR INTR
SƠ ĐỒ NGUYÊN LÝ
P1.5/MOSI6
P1.6/MISO7
P1.7/SCK8
RESET9
RXD/P3.010
TXD/P3.111
INT0/P3.212
INT1/P3.313
XTAL118
XTAL219
PSEN
29ALE/PROG
30EA/VPP
10KLED1
INTR
MODE
DOWN C4
104GND
104VCC
LED2
LED LED3
LED LED4
330VCC
MẠCH IN