IC

1. 74HC595      http://www.nxp.com/documents/data_sheet/74HC_HCT595.pdf
2. 74LS164       http://www.nxp.com/documents/data_sheet/74HC_HCT164.pdf
3. IC555           http://www.national.com/ds/LM/LM555.pdf
4. QT113G            http://www.parallax.com/Portals/0/Downloads/docs/prod/compshop/qt113.pdf
5. LM723: IC ổn áp      http://www.national.com/ds/LM/LM723.pdf
6. KA7500B :Diện áp tham chiếu 5V sử dụng trong mạch ổn áp. Điều chỉnh độ rộng xung PWM
                       http://www.prisall.narod.ru/bp/ka7500xx.pdf 01699201589
                       http://www.fairchildsemi.com/ds/KA/KA7500B.pdf
7. IC Nhạc AN6884: http://www.classiccmp.org/rtellason/chipdata/an6884.pdf
8. LM3914: Dot/Bar Display Driver http://www.national.com/ds/LM/LM3914.pdf
9. Mạch ổn áp: TL084 (4 OP-AMP) vaø TL082 (2 OP-AMP)
                      http://www.ti.com/lit/ds/symlink/tl084.pdf
                      http://www.datasheetcatalog.org/datasheet/stmicroelectronics/2301.pdf
2. DS18B20   
 Đặc tính :    

  •   Vì dao diện 1 dây nên chỉ cần 1 pin cổng.
  • Mã thiết bị bao gồm 64bit nối tiếp được lưu trên ROM
  • Khả năng đơn giản hóa đa điểm được thể hiện trong ứng dụng cảm biến nhiệt độ#
  • Không yêu cầu linh kiện phụ trợ ngoài
  • Có thể lấy nguồn từ đường truyền với dải từ s 3.0V đến 5.5V
  • Dải nhiệt độ –55°C to +125°C (–67°F to +257°F) 
  • độ chính xác lên tới ±0.5°C từ   –10°C to +85°C 
  • độ phân giải nhiệt độ có thể chọn từ 9 tới 12bit
  • Thời gian chuyển đổi với độ phân giải 12 bit lên tới 750ms (max.)
  • Có thể đặt báo động khi ngoài dải điều khiển (cảnh báo được lưu trữ trên nonvolatile
  • Có sẵn in 8-pin SO (150mil), 8-pin μSOP, and 3-pin TO-92 packages
  • Lập trình tương thích với DS1822  
  • Ứng dụng bao gồm điều khiển nhiệt độ, hệ thống công nghiệp, sản phẩm thương mại, đo nhiệt độ và bất kỳ ứng dụng liên quan tới cảm biến nhiệt độ.

Mô tả: DS18B20 cung cấp từ 9 tới 12 bit đo nhiệt độ. Bên cạnh đó nó có chức năng cảnh báo nếu nhiệt độ đó vượt quá hoặc thấp hơn giá trị mà ta đặt trong bộ nhớ. DS18B20 chi giao tiếp với 1 dây  vì vậy nó chỉ cần 1 dây kết nối với vi điều khiển. Dải nhiệt độ hoạt động của nó vào khoảng –55°C to +125°C và chính xác tới ±0.5°C trong khoảng –10°C to +85°C. Trong điều kiện cho phép DS18B20 có thể lấy nguồn trực tiếp trên đường dây do đó không cần thiết phải lấy nguồn ngoài cung cấp
         Mỗi DS18B20 có 1 mã nối tiếp gồm 64 bit cho phép nhiều DS18B20 kết nối trên cùng 1 dây tín hiệu vì vậy có thể dùng vđk để kết nối tới nhiều DS18B20 được phân phối trên một khu vực rộng. Ứng dụng này có thể có lợi bao gồm điều khiển môi trường HVAC, xây dựng một hệ thống theo dõi nhiệt độ trong nhà, thiết bị, hoặc máy, sử lý và điều khiển hệ thống.


Thông tin về các phiên bản:
Tổng quan:
  Hình 1 thể hiện sơ đồ khối của DS18B20 và mô tả chân được đưa ra ở bảng 1. 64bit trong ROM lưu chữ mã nối tiếp của thiết bị. Bộ nhớ nháp chứa 2 thanh ghi lưu trữ nhiệt độ với dung lượng là 2 byte lưu trữ đầu ra số của cảm biến nhiệt độ. Trong trường hợp yêu cầu phần lưu trữ tạm thời cung cấp truy cập tới 1-byte upper and lower alarm trigger register (TH and TL), và 1 byte thanh ghi cấu hình. Thanh ghi cấu hình cho phép người sử dụng đặt độ phân giải của chuyển đổi từ nhiệt độ sang số vói giá trị của số bit phân giải năm trog khoảng từ 9->12bit. The TH, TL và thanh ghi cấu hình được lưu trong EEPROM vì thế chúng không bị mất khi nguồn cấp bị ngắt.
  The DS18B20 sử dụng giao thức 1 dây độc quyền của DaLas thành phần giao tiếp bus chỉ sử dụng 1 tín hiệu điều khiển. Đường dây điều khiển yêu cầu 1 điện trở kéo khi tất cả các thiết bị được kết nối tới bus thông qua a 3-state or open-drain port  (the  DQ pin in the case of the DS18B20). Trong hệ thống bus này vđk trong chế độ master và nó cần phải xác định được địa chỉ của thiết bị thông qua mã gồm 64 bit. Vì trong mỗi một thiết bị thì có duy nhất một mã để xác định danh tính của nó. Như vậy số thiết bị trên 1 bus là không giới hạn theo cơ chế trên. Giao thức bus 1 dây bao gồm việc giải thích chi tiết lệnh và “time slots,”được thể hiện chi tiết trong phần 1-WIRE BUS SYSTEM của turial này.
  Đặc tính khác của DS18B20 là khả năng hoạt động mà không cần nguồn cấp ngoài. Nguồn được cung cấp thông qua một điện trở kéo lên chân DQ khi bus ở trạng thái cao.Bus ở trạng thái cao sẽ nạp điện cho tụ ở bên trong, do đó tụ này sẽ cung cấp cho thiết bị khi bus chuyển sang trạng thái thấp. 18B20 cung có thể được cung cấp nguồn ngoài (VCC)




Hoạt động đo nhiệt độ:
   Chức năng chính của DS18B20 là  nó chuyển đổi trực tiếp nhiệt độ thành số với độ phân giải từ 9->12 bit số tương ứng với tăng 0.5°C, 0.25°C, 0.125°C, and 0.0625°C. Độ phân giải mặc định lúc cấp nguồn là 12bit. Để cài đặt đo nhiệt độ và chuyển đổi A-to-D. Master phải thực hiện a Convert T [44h] command. Tiếp theo sự chuyển đổi kết quả được lưu trong bộ nhớ đệm với dung lượng là 2 byte và đặt  DS18B20 vào trạng thái chờ. Nếu DS18B20 được cấp nguôn ngoài thì master có thể đặt vấn đề về khe thời gian “read time slots” (see the 1-WIRE BUS SYSTEM section) sau lệnh Convert T và DS18B20 sẽ trả lời bằng việc truyền '0' trog khi chuyển đổi nhiệt độ đang trong qua trình sử lý và băng 1 khi chuyển đổi hoàn tất. Nếu DS18B20 không dùng nguồn ngoài thì việc kiểm tra trên không đước sử dụng cho đến khi nào bus phải được kéo mạnh lên cao trong suốt quá trình chuyển đổi nhiệt độ. Bus yêu cầu nguồn kí sinh phải thỏa mãn yêu cầu được ghi trong mục POWERING THE DS18B20 section of this datasheet
  Dữ liệu đầu ra của DS18B20 được hiệu chỉnh theo độ C. Cho ứng dụng Fahrenheit một bảng tra cứu hoặc một hàm con phải đước sử dụng. Dữ liệu nhiệt độ được lưu như biến 16 bit (see  Figure 2). Bit dấu (S) được chỉ thị khi nhiệt độ là âm hay dương. nếu dương S=0 ngược lại nếu âm thì S=1. Nếu DS18B20 được cấu hình cho độ phân giải là 12bit thì tất cả các bit trong thanh ghi nhiệt độ sẽ chữa giá trị dữ liệu. For 11-bit resolution, bit 0 is undefined. For 10-bit resolution, bits 1 and 0 are undefined, and for 9-bit resolution bits 2, 1 and 0  are undefined. Table 2 gives examples of digital output data and the corresponding temperature reading for 12-bit resolution conversions.

 Hoạt động cảnh báo:
    Sau khi DS18B20 thực hiện xong chuyển đổi giá trị đó sẽ được so sánh với giá trị lưu trong 1-byte TH and TL registers (see Figure 3).
Cấp nguồn cho DS18B20:
64-BIT LASERED ROM CODE:
   
Bộ nhớ:
   Tổ chức bộ nhớ của 18B20 được thể hiện thông qua hình 7.Bộ nhớ bao gồm một ' nháp ' SRAM cùng với bộ nhớ lưu trữ EEPROM cho alarm trigger registers (TH and TL) và cấu hình thanh ghi. Chú ý rằng nếu chức năng cảnh báo của DS18B20 không được sử dụng. the TH and TL registers có thể sử dụng như thanh ghi nhớ thông dụng tất cả lệnh liên quan tới truy xuất bộ nhớ được miêu tả trong DS18B20 FUNCTION COMMANDS section. Byte 0 và byte 1 của 'nháp' tương ứng với LSB and the MSB của thanh ghi nhiệt độ. Những byte này là những byte chỉ cho phép đọc. Byte 2 và byte 3 cung cấp việc truy xuất tới Th and Tl registers. Byte 4 chứa dữ liệu của thanh ghi cấu hình được giải thích chi tiết trong CONFIGURATION REGISTER section. Bytes 5, 6, and  7 được ứng dụng nội bên trong bởi chính thiết bị vì thế chúng không thể ghi. Byte 8 'nháp' là byte chỉ đọc và chứa CRC code for bytes 0 through 7 of the scratchpad. The DS18B20 tạo ra CRC sử dụng phương thức được mô tả in the CRC Generation section
   Dữ liệu được viết đến bytes 2, 3, and 4 of the scratchpad sử dụng Write Scratchpad [4Eh] command.Dữ liệu phải được truyền tới DS18B20 phải được bắt đầu là bit có trọng số nhỏ nhất của byte 2 và để xác định dữ liệu có được truyền dúng hay không thì ' nháp' cần phải được đọc (using the Read Scratchpad [BEh] command) sau khi dữ liệu được ghi. Khi đọc nháp dữ liệu được truyền trên một dây Bus và bắt đầu cùng với bit có trọng số thấp nhất của byte 0. Để truyền dữ liệu từ TH, TL and và dữ liệu cấu hình từ 'nháp' tới EEPROM the master must issue the Copy Scratchpad [48h] command.
   Dữ liệu trong EEPROM registers được dữ lại khi ngắt nguồn nuôi. Khi nguồn cấp trở lại thì dữ liệu trong EEPROM được load vào 'nháp' tại vị trí tương ứng. Dữ liệu cũng có thể load lại từ EEPROM tới vị trí tương ứng bất kì lúc nào khi sử dụng Recall E2 [B8h] command. The master có thể đọc khe thời gian tiếp theo lệnh Recall E2 command và DS18B20 sẽ chỉ thị trạng thái của việc Recall đó bằng cách truyền 0 trong khi đang sử lý lệnh Recall và truyền 1 khi sử lý hoàn thành
   




Thanh ghi cấu hình
   Byte 4 của 'nháp' chứa thanh ghi cấu hình được tổ chức như hình sau:

Người sử dụng có thể chọn độ phân giải DS18B20 bằng cách chọn bits R0 và R1 trong thanh ghi thể hiện như bảng 2. Mặc định là độ phân giải 12bits chú ý rằng có sự đánh đổi giữa độ phân giải và thời gian chuyển đổi. Bit 7 and bits 0 to 4 của thanh ghi cấu hình được dự trữ để sử dụng nội bên trong và chúng không thể ghi.

Tạo CRC
    CRC bytes là thành phần của DS18B20’s 64-bit ROM code và byte thứ 9 của bộ nhớ 'nháp'. ROM code CRC được tính toán từ 56bit đầu tiên của ROM code và được chứa trong byte có trọng số lớn nhất của ROM. scratchpad CRC được tính toán từ nguồn lưu trữ dữ liệu trong 'nhap' vì vậy nó thay đổi khi dữ liệu trong 'nhap' thay đổi. The CRCs cung cấp bus master cùng với phương thức để xác nhận dữ liệu khi dữ liệu được đọc từ DS18B20. Để xác định dữ liệu được đọc đúng the bus master tính toán lại CRC từ dữ liệu nhận và sau đó so sánh 2 giá trị này the ROM code CRC (for ROM reads) or to the scratchpad CRC (for scratchpad reads). Nếu có sự sai khác  từ CRC thì dữ liệu nhận được sẽ là dữ liệu lỗi. So sánh CRC và quyết định  quyết định tiếp tục với một hoạt động được xác định hoàn toàn bởi bus master. Không có mạch ở bên trong DS18B20 ngăn chặn chuỗi lệnh đang trong quá trình sử lý. Nếu DS18B20 CRC (ROM or scratchpad) không phù hợp với giá trị được phát bởi the bus master. 
   Hàm đa thức tương đương của CRC (ROM or scratchpad) là:\
                CRC = X8 + X5+ X4+ 1
 The bus master có thể tính toán lại CRC   so sánh nó với các giá trị CRC từ DS18B20bằng cách sử dụng
đa thức phát hiện trong hình 9 Mạch này bao gồm thanh ghi dịch và cổng XOR và bits của thanh ghi dịch được khởi tạo là 0 và bắt đầu cùng với bít có trọng số nhỏ nhất của ROM hay bit có trong số nhỏ nhất của byte 0 trong 'nháp'. Một bit tại một thời điểm được dịch vào thanh ghi dịch. Sau khi dịch vào bit thứ 56 từ ROM hay bit có trọng số lớn nhất của byte 7 trong ' nháp' .Lúc này giá trị CRC được tính toán lại. Tại thời điểm này nếu tình toán CRC là đúng thì thanh ghi dịch sẽ chứa tất cả là 0. Tìm hiểu thêm thông tin trong ứng dụng Application Note 27: Understanding and Using Cyclic Redundancy Checks with Maxim
iButton Products. 
 Hệ thống Bus 1 dây
   Hệ thống bus 1 dây master dùng 1 dây để điều khiển nhiều thiết bị. The DS18B20 là tớ. Khi chỉ có 1 tớ ở trên Bus thì hệ thống khi đó được gọi là 'sing-drop'. Hệ thống 'multidrop' nếu có nhiều tớ. 
   Tất cả dữ liệu và lệnh được truyền với bit có trọng số nhỏ nhất được truyền trước.
   Bàn về Bus 1 dây thì nên chia thành ba chủ đề: phần cứng cấu hình, trình tự giao dịch,  1-Dây tín hiệu (các loại hình tín hiệu và thời gian).

  Cấu hình phần cứng   
       Bus 1 dây chỉ xác định 1 dây dữ liệu. Mỗi thiết bị ( chủ hoặc tớ) kết nối tới đường truyền thông qua an open-drain or 3-state port. Điều này cho phép mỗi thiết bị giải phóng khỏi đường truyền khi thiết bị không truyền dữ liệu khi đó nó sẽ được sử dụng cho thiết bị khác. The 1-Wire port of the
DS18B20 (the DQ pin) là cổng cực máng hở tương ứng với mạch thể hiện trong hình 10.
Bus 1 dâu yêu cầu một điện trở kéo ngoài khoảng 5KOhm vì vậy trong trạng thái rảng thì bus ở trạng thái cao. Nếu vì một lý do gì mà phải ngừng trao dổi dữ liệu thì bus sẽ phải trở lại trạng thái rảng nếu muốn trao đổi dữ liệu trở lại. Thời gian để quay lại trạng thái có thể mất nhiều thời gian khi này bus ở trạng thái cao trong suốt quá trình quay lại trạng thái đó.Nếu bus ở trạng thái thấp trong khoảng 480μs thì tất cả thành phần trên bus sẽ bị reset


Các bước thực hiện trao đổi dữ liệu
  Trao đổi với DS18B20 ta thực hiện các bước sau:
  Step 1. Initialization.
  Step 2. ROM Command (followed by any required data exchange).
  Step 3. DS18B20 Function Command (followed by any required data exchange):    
 
 Khi truy cập vào DS18B20 thì cần để ý thời gian truy cập. Điều này rất quan trọng vì dữ liệu không dúng với những gì mình mong muốn nếu thời gian truy cập không dủ. Exceptions to this rule are the Search ROM [F0h] and Alarm Search [ECh] commands. After issuing either of these ROM commands, the master must return to Step 1 in the sequence.

 Cài đặt
   Tất cả mọi trao đổi chỉ được thực hiện trên 1-Wire bus bắt đầu cùng một vài câu lệnh khởi tạo. Chuỗi khởi tạo bao gồm 1 xung reset được truyền bởi 'chủ' tiếp theo là chuỗi xung được truyền từ 'tớ'. Sự hiện diện của chuỗi xung này giúp cho 'chủ' nó biết được rằng ah có thằng 'tớ' ở trên bus và 'chú' nó có thể thực hiện các lệnh tiếp theo để điều khiển 'tớ'. Thời gian cho reset và thời gian cho dành cho sự xuất hiện của các xung được thể hiện chi tiết qua 1-Wire Signaling section.
 ROM COMMANDS
    Sau khi bus 'chủ' phát hiện một xung xuất hiện nó có thể thực hiện một ROM command. Những lệnh này hoạt động trên unique 64-bit ROM codes của mỗi thiết bị tớ. Và từ những chuối bit này giúp chủ phát hiện ra đó là thằng nào ( nếu trên bus có nhiều 'tớ' ). Những lệnh này giúp 'chủ' biết được trên bus có bao nhiêu và bằng cách nào tớ có mặt ở trên bus. Có 5 ROM commands và 8 lệnh có độ dài 8 bits. Thiết bị chủ phải phát ra lệnh tương ứng với lệnh của Rom của thiết bị trước khi đưa ra lệnh chức năng của thiết bị (DS18B20). Lưu đồ đưa ra cho hoạt động đối với lệnh của Rom được thể hiện qua hình 11    

 SEARCH ROM [F0h] Khi hệ thống được cấp nguồn 'chủ' phải xác định mã của ROM cho tất cả các thiết bị tớ trên bus để 'chủ' xác định |(hay kiểm soát được) trên bus có bao nhiêu thiết bị tớ và kiểu của chúng. 'Chủ' sẽ học mã Rom thông qua quá trình sử lý của quá trình loại bỏ những yêu cầu của 'chủ' để thực hiệu một chu kỳ tìm kiếm ROM ( lệnh tìm kiểm Rom được cho phép bằng cách thay đổi dữ liệu) có thể mất nhiều thời gian nhưng nó là cần thiết để xác định tất cả các thiết bị có trên bus. Nếu chỉ có 1 'tớ' ở trên bus thù việc đọc Rom sẽ đơn giản hơn trong phần sử lý tìm kiếm Rom.

The master learns the ROM codes through a process of elimination that requires the master to perform a Search ROM cycle (i.e., Search ROM command followed by data exchange) as many times as necessary to identify all of the slave devices. If there is only one slave on the bus, the simpler Read ROM command (see below) can be used in place of the Search ROM process. For a detailed explanation of the Search ROM procedure, refer to the  iButton®Book of Standards  at  www.maxim-ic.com/ibuttonbook. After every Search ROM cycle, the bus master must return to Step 1 (Initialization) in the transaction sequence. 





READ ROM [33h]  
     Lệnh này chỉ được sử dụng khi có 'tớ' trên bus. Lệnh này cho phép 'chủ' đọc mã Rom của 'tớ' gồm 64 bit. Khi có nhiều hơn 1 'tớ' ở trên bus việc sử dụng lệnh này sẽ dẫn tới xung đột dữ liệu khi mà tất cả các 'tớ' trả lời trong cùng một thời điểm




MATCH ROM [55h]


  Lệnh kết hợp Rom được cho phép bằng một chuỗi 64-bit ROM code giúp 'chủ' có thể xác định chính xác tớ cần chọn trong mạng nhiều 'tơ'. Chỉ có 'tớ' được chọn trong chuỗi 64 bit sẽ trả lời lệnh mà 'chủ'  đưa ra. Các 'tớ' khác sẽ đợi một xung reset.

SKIP ROM [CCh] 
 Chủ có thể sử dụng lệnh này tới địa chỉ của tất cả các thiết bị ở trên bus đồng thời mà không gửi bất kì thông tin nào về mã Rom. Ví dụ trên mạng bus có nhiều DS18B20 thì 'Chủ' có thể yêu cầu tất cả bọn này chuyển đổi cùng một lúc ( đồng thời) tiếp theo sau đó thực hiện lệnh Skip Rom để bỏ qua và theo sau đó là lệnh a Convert T [44h] (chắc là đọc con nào tuy thích).
  Chú ý Read Scratchpad [BEh] command có thể theo sau Skip ROM command với điều kiện trên bus chỉ có một 'tớ' ở trên bus. Trong trường hợp này, thời gian được lưu bằng việc cho phép 'chủ' đọc từ tớ mà không gửi the device’s 64-bit ROM code. A Skip ROM command followed by a Read Scratchpad
command will cause của một sự xung đột trên bus nếu trên bus có nhiều hơn một thiết bị thì chúng sẽ có gắng gửi giữ liệu đồng thời.

ALARM SEARCH [ECh]
  Hoạt động của lệnh này giống Search ROM command trừ trường hợp chỉ có tớ nào có đặt cờ báo thì mới trả lời lại 'chủ'. Lệnh này cho phép 'chủ' xác định nếu có bất kỳ DS18B20s xuất hiện cảnh báo trong chuyển đổi gần đây nhầt After every Alarm Search cycle (i.e., Alarm Search command followed by data exchange), the bus master must return to Step 1 (Initialization) See the Operation—Alarm Signaling section for an explanation of alarm flag operation.

DS18B20 FUNCTION COMMANDS
 After the bus master has used a ROM command to address the DS18B20 with which it wishes (những gì) to communicate. The master can issue| (đưa) one of the DS18B20 function commands. These commands allow the master to write to and read from the DS18B20’s scratchpad memory, initiate temperature conversions and determine the power supply mode.The DS18B20 function commands,

which are described below, are summarized ( được tóm tắt) in Table 3 and illustrated by the flowchart in Figure 12.

CONVERT T [44h] 

  This command initiates a single temperature conversion. Following the conversion, the resulting thermal data is stored in the 2-byte temperature register in the scratchpad memory and the DS18B20 returns to its low-power idle state. If the device is being used in parasite(kí sinh) power mode,within 10μs (max) after this command is issued the master must enable a strong pullup on the 1-Wire bus for the duration of the conversion (tCONV) as described in the Powering the DS18B20 section.If the DS18B20 is powered by an external supply, the master can issue read time slots(khe) after the Convert T command and the DS18B20 will respond(hồi đáp) by transmitting a 0 while the temperature conversion is in progress and a 1 when the conversion is done.In parasite power mode this notification technique(phương pháp thông báo) cannot be used since the bus is pulled high by the strong pullup during the conversion.

WRITE SCRATCHPAD [4Eh]
  This command allows the master to write 3 bytes of data to the DS18B20’s scratchpad. The first data byte is written into the TH register (byte 2 of the scratchpad), the second byte is written into the TL register (byte 3), and the third byte is written into the configuration register (byte 4). Data must be transmitted least significant bit first. All three bytes MUST be written before the master issues a reset, or the data may be corrupted( bị hỏng).


READ SCRATCHPAD [BEh]
  This command allows the master to read the contents of the scratchpad. The data transfer starts with the least significant bit of byte 0 and continues through the scratchpad until the 9th byte (byte 8 – CRC) is read.The master may issue a reset to terminate reading at any time if only part of the scratchpad data is needed.(khi đã lấy được dữ liệu cần thiết trong nháp).



COPY SCRATCHPAD [48h

   This command copies the contents of the scratchpad TH, TL and configuration registers (bytes 2, 3 and 4) to EEPROM. If the device is being used in parasite power mode, within 10μs (max) after this command is issued the master must enable a strong pullup on the  1-Wire bus for at least 10ms as described in the Powering the DS18B20 section.


RECALL E2 [B8h]

   This command recalls the alarm trigger values (TH and TL) and configuration data from EEPROM and places the data in bytes 2, 3, and 4, respectively, in the scratchpad memory. The master device can issue read time slots following the Recall E2 command and the DS18B20 will indicate the status of the recall by transmitting 0 while the recall is in progress and 1 when the recall is done. The recall operation happens automatically at power-up, so valid data is available in the scratchpad as soon as power is applied to the device. 




 READ POWER SUPPLY [B4h] 
  
...............................................................................