Trong lĩnh vực sản xuất cũng như trong đời sống hàng ngày , việc đo lường các đại lượng vật lý luơn đúng một vai trị quan trọng vỡ từ đó người sử dụng cú thể biết được các thơng số mình
Trang 1LỜI NÓI ĐẦU
Ngày nay, khoa học kỹ thuật luôn không ngừng phát triển và đổi mới từng ngày, từng giờ, tác động trực tiếp đến đời sống con người Các hệ thống điện tử đã tham gia vào công nghiệp làm tăng năng suất lao động, giảm bớt sức lao động của con người Có thể nói, điện tử là một trong nhữngnghành nghề phát triển mũi nhọn, có những bước tiến vượt bậc về công nghệcũng như ứng dụng trong cuộc sống
Trong lĩnh vực sản xuất cũng như trong đời sống hàng ngày , việc đo lường các đại lượng vật lý luơn đúng một vai trị quan trọng vỡ từ đó người
sử dụng cú thể biết được các thơng số mình đang làm việc và từ đó sẽ khốngchế và điều khiển chúng cho phù hợp với mụch đích của mình
Hiện là sinh viên năm thứ 4 của trường Đại học Bách Khoa Hà Nội, chúng em đã có những cái nhìn sâu hơn, tổng quát hơn về ngành mình đã lựachọn từ đó đã có thể thiết kế những bo mạch cụ thể có ứng dụng thực tế hơn trong cuộc sống hàng ngày để sau khi ra trường có thể ứng dụng chúng nhiều hơn vào thực tế
Với mục đích tìm hiểu và thiết kệ một hệ thống đo lường, chúng em
đã chọn đề tài: “ Thiết kế một hệ thống đo lường cơ bản gồm đo nhiệt độ
sử dụng cảm biến nhiệt Ds18b20 và đo tốc độ động cơ sử dụng motor – encoder” làm đề tài cho đồ án môn học của mình.
Mặc dự được sự chỉ dẫn tận tình của giảng viân hướng dẫn , chúng em
đã rất cố gắng nhưng khối lượng kiến thức và thời gian cú hạn , sẽ khụng tránh khỏi những thiếu sót mong thầy cụ thĩng cảm Chúng em mong được đún nhận những ý kiến từ các thầy cơ và các bạn để cú thể tiếp tục mở rộng hướng nghiân cứu cho đề tài của mình
Trang 2CHƯƠNG I GIỚI THIỆU CHUNG VỀ BỘ VI ĐIỀU KHIỂN
GIỚI THIỆU CHUNG
Bộ vi điều khiển viết tắt là Micro – controller, là mạch tích hợp trờn một con chip và cú thể lập trình được , dùng để điều khiển hoạt động của một hệ thống Theo các tập lệnh của nhà sản xuất , người sử dụng cú thể lậptrình để vi điều khiển tiến hành đọc, giải mã, lưu trữ thĩng tin, xử lý thĩng tin, và từ đó sẽ thực hiện một cơng việc của một cơ cấu nào đó
Trong thiết bị điện , điện tử dân dụng , các bộ vi điều khiển điều khiển hoạt động của TV, đầu đọc laser, điện thoại, lì vi song Trong hệ thống cụng nghiệp tự động, chúng được sử dụng trong Robot, dây truyền băng tự động Các hệ thống càng thĩng minh thì bộ vi điều khiển càng đóng vai trì quan trọng
I GIỚI THIỆU TỔNG QUAN VỀ VI ĐIỀU KHIỂN ATMEGA 16
ATmega16 là vi điều khiển chuẩn CMOS 8 bit tiết kiệm năng lượng,được chế tạo dựa trên cấu trúc AVR RISC (Reduced Instruction SetComputer), đây là cấu trúc có tốc độ xử lý cao hơn nhiều so với cấu trúcCISC (Complex Instruction Set Computer) Tần số hoạt động của vi điềukhiển AVR bằng với tần số của thạch anh, trong khi với họ vi điều khiểntheo cấu trúc CISC như họ 8051 thì tần số hoạt động bằng tần số thạch anhchia cho 12 Hầu hết các lệnh được thực thi trong một chu kỳ xung nhịp, do
đó ATmega16 có thể đạt được tốc độ xử lý đến một triệu lệnh mỗi giây (vớitần số 1MHz) Đặc điểm này cho phép người thiết kế có thể tiết kiệm tối đamức độ tiêu thụ năng lượng mà vẫn đảm bảo tốc độ xử lý
Sau đây là các đặc tính của ATmega16:
- Hiệu năng cao, tiêu thụ ít năng lượng
- Kiến trúc RISC:
o 131 lệnh – hầu hết các lệnh thực thi trong một chu kỳ máy
o 32 thanh ghi 8 bit đa năng
o Tốc độ thực hiện lên tới 16 triệu lệnh trong 1 giây (tần số16MHz)
- Các bộ nhớ chương trình và bộ nhớ dữ liệu:
Trang 3o 16Kbyte bộ nhớ Flash có khả năng tự lập trình trong hệ thống.
Có thể thực hiện được 1.000 lần ghi xóa
o Vùng mã Boot tùy chọn với những bit khóa độc lập
o Lập trình trong hệ thống bởi chương trình on-chip boot
o Thao tác đọc ghi trong khi nghỉ
o 512 Byte EEPROM
Có thể thực hiện 100.000 lần ghi xóa
o 1Kbyte SRAM nội
o Lập trình khóa an toàn phần mềm
- Ghép nối ngoại vi:
o 2 bộ định thời/bộ đếm 8 bit với bộ chia tần số độc lập và chế độ
o Bộ ADC 8 kênh 10 bit
o Bộ truyền dữ liệu đồng bộ/bất đồng bộ USART
o Bộ truyền dữ liệu chuẩn SPI
o Watchdog timer khả trình với bộ dao động nội riêng biệt
o Bộ so sánh Analog
- Các đặc điểm khác:
o Power-on Reset và phát hiện Brown-out khả trình
o Bộ tạo dao động nội
o Nguồn ngắt nội và ngoại
o 6 chế độ ngủ: Idle, ADC noise reduction, save, down, Standby và Extended Standby
Power Ngõ vào/ra: cú 32 ngõ vào ra
- Điện áp hoạt động:
Trang 4o 2.7V – 5.5V đối với ATmega16L.
o 4.5V – 5.5V đối với ATmega16
- Tần số hoạt động:
o 0 – 8MHz đối với ATmega16L
o 0 – 16MHz đối với ATmega16
2.2 Cấu trúc bên trong ATmega16:
Trang 5Hình 2.1 – Sơ đồ cấu trúc bên trong Atnega16
Phần lõi AVR kết hợp tập lệnh phong phú với 32 thanh ghi đa dụng.Toàn bộ 32 thanh ghi này đều kết nối trực tiếp với ALU (Arithmetic LogicUnit), cho phép truy cập 2 thanh ghi độc lập với 1 lệnh thực thi trong 1 chu
kỳ xung nhịp Cấu trúc đạt được có tốc độ xử lý nhanh gấp 10 lần so với viđiều khiển CISC thông thường
Với các tính năng đã nêu trên, khi ở chế độ nghỉ (Idle), CPU vẫn chophép các chức năng khác hoạt động như: USART, giao tiếp 2 dây, chuyểnđổi A/D, SRAM, bộ đếm/bộ định thời, cổng SPI và các chế độ ngắt Chế độPower-down lưu giữ nội dung các thanh ghi nhưng làm ngừng bộ tạo daođộng, thoát khỏi các chức năng của chip cho đến khi có ngắt ngoài hoặcreset phần cứng Trong chế độ Power-save, đồng hồ đồng bộ tiếp tục chạycho phép chương trình có thể giữ được sự đồng bộ về thời gian nhưng cácthiết bị còn lại ở trong trạng thái ngủ Chế độ ADC Noise Reduction dừngCPU và tất cả các thiết bị còn lại ngoại trừ đồng hồ đồng bộ và ADC, giảmthiểu nhiễu khi ADC hoạt động Ở chế độ Standby, bộ tạo dao động chạytrong khi các thiết bị còn lại ở trạng thái ngủ Những đặc điểm này cho phép
bộ vi điều khiển khởi động rất nhanh trong chế độ tiêu thụ công suất thấp.AVR được sản xuất sử dụng công nghệ bộ nhớ cố định mật độ cao củaAtmel Bộ nhớ On-chip ISP Flash cho phép lập trình lại vào hệ thống thôngqua giao diện SPI bởi bộ lập trình bộ nhớ cố định truyền thống hoặc bởichương trình On-chip Boot chạy trên lõi AVR Chương trình Boot có thể sửdụng bất cứ giao diện nào để download chương trình ứng dụng trong bộ nhớFlash Phần mềm trong vùng Boot Flash sẽ tiếp tục chạy trong khi vùngApplication Flash được cập nhật, giúp tạo ra thao tác Read-While-Writethực sự Nhờ việc kết hợp một bộ 8bit RISC CPU với In-System Self-Programmable Flash chỉ trong một chip, ATmega32 là một vi điều khiểnmạnh có thể cung cấp những giải pháp có tính linh động cao, giá thành rẻcho nhiều ứng dụng điều khiển nhúng ATmega32 được hỗ trợ đầy đủ vớicác công cụ hỗ trợ phát triển cũng như lập trình, bao gồm: trình biên dịch C,macro assembler, mô phỏng/dò lỗi lập trình, mô phỏng mạch điện và các bộkit thí nghiệm
Trang 62.3 Sơ đồ chân của ATmega16:
Hình 2.2 – Sơ đồ chân của ATmega16
- GND: chân nối mass
Trang 7- VCC: điện áp nguồn.
- Port A (PA0…PA7): ngõ vào/ra Port A
Các chân Port A cũng là ngõ vào analog của bộ chuyển đổi A/D
- Port B (PB0…PB7): ngõ vào/ra Port B
Các chức năng khác của Port B:
PB7 SCK (Chân Clock của SPI)
PB6 MISO (Master Input / Slave Output của SPI)
PB5 MOSI (Master Output / Slave Input của SPI)
PB4 SS (Ngõ vào chọn Slave của SPI)
PB3 AIN1 (Ngõ vào Negative của bộ so sánh analog)
OC0 (Ngõ ra so sánh của Timer/Counter 0)
PB2 AIN0 (Ngõ vào Possitive của bộ so sánh analog)
INT2 (Ngõ vào ngắt ngoài 2)
Trang 8PB1 T1 (Ngõ vào của bộ đếm ngoài counter 1)PB0 T0 (Ngõ vào của bộ đếm ngoài counter 0)
XCK (Chân I/O Clock của USART)
- Port C (PC0…PC7): ngõ vào/ra Port C
Các chức năng khác của Port C:
PC7 TOSC2 (Chân 2 bộ dao động của Timer)
PC6 TOSC1 (Chân 1 bộ dao động của Timer)
PC5 TDI (Chân data in Test JTAG)
PC4 TDO (Chân data out Test JTAG)
PC1 SDA (Chân data I/O của giao thức Two-wire)PC0 SCL (Chân clock của giao thức Two-wire)
- Port D (PD0…PD7): ngõ vào/ra Port D
Các chức năng khác của Port D:
PD7 OC2 (Ngõ ra so sánh của Timer/Counter2)PD6 ICP1 (Chân bắt mẫu của Timer/Counter1)PD5 OC1A (Ngõ ra so sánh A của Timer/Counter1)PD4 OC1B (Ngõ ra so sánh B của Timer/Counter1)PD3 INT1 (Ngõ vào ngắt ngoài 1)
PD2 INT0 (Ngõ vào ngắt ngoài 0)
Trang 9PD1 TXD (Ngõ ra USART)
- Reset: Chân ngõ vào Khi đặt vào chân này điện áp mức thấp trongthời gian xác định (xem trong datasheet) thì sẽ reset chương trình.Nếu thời gian ngắn hơn thì việc reset không thành công
- XTAL1: ngõ vào khuếch đại dao động đảo và cũng là ngõ vào mạchtạo xung nội
- XTAL2: ngõ ra của mạch khuếch đại dao động đảo
- AVCC: là chân nguồn cấp cho Port A và bộ chuyển đổi A/D Nên nốichân này với chân VCC ngay cả khi không sử dụng ADC Nếu dựngADC thì nên nối chân này với chân VCC qua 1 tụ lọc thông thấp
- AREF: chân tham chiếu điện áp analog của bộ chuyển đổi A/D
2.4 Bộ nhớ của Atmega16:
2.4.1 Bộ nhớ chương trình ISP Flash:
Vi điều khiển ATmega16 có bộ nhớ Flash tới 16Kbyte để lưu giữchương trình Do tất cả các lệnh của AVR đều là 16 hoặc 32 bit nên bộ nhớFlash được tổ chức theo kiểu 8K x 16 Nhằm đảm bảo phần mềm được antoàn, bộ nhớ chương trình Flash được chia thành 2 phần: phần chương trìnhBoot (Boot Program Sector) và phần chương trình ứng dụng (ApplicationProgram Sector)
Bộ nhớ Flash có thể ghi xóa được đến 1.000 lần Bộ đếm chương trìnhcủa ATmega16 có kích thước 13bit để ghi địa chỉ cho bộ nhớ chương trình8K
Bảng phân chia 2 phần của bộ nhớ:
Trang 10Hình 2.3 – Sơ đồ phân chia bộ nhớ
2.4.2 Bộ nhớ dữ liệu SRAM:
Trang 112.5 Xung nhịp của hệ thống và việc lựa chọn xung nhịp:
Vi điều khiển ATmega16 có nhiều lựa chọn trong việc thiết lập xungnhịp cho hệ thống Xung nhịp có thể do mạch tạo dao động bên trong vi điềukhiển, cũng có thể do mạch dao động bên ngoài
Trang 12Hình 2.5 – Sơ đồ khối hệ thống xung nhịp
Việc lựa chọn nguồn xung nhịp được thực hiện thông qua quá trình thiếtlập các bit CKSEL3…0 (lựa chọn nguồn xung cũng như cả tần số của nguồnxung)
Extenal Crystal / Ceramic Resonator 1111 – 1010
Calibrated Internal RC Oscillator 0100 – 0001
Trang 13Sau đây là một số cách kết nối với nguồn xung nhịp bên ngoài:
Kết nối với thạch anh Nguồn RC bên ngoài Nguồn xung clock bên
ngoài
Bảng 2.1 – Kết nối với nguồn xung bên ngoài
2.6 Giới thiệu về Timer/Counter của ATmega16:
Trang 14Hình 2.6 – Sơ đồ khối của Timer/Counter0
Các chế độ hoạt động của Timer/Counter0:
Trang 15Độ phân giải của chế độ PWM này là 8bit Bộ đếm sẽ tăng dần đến giá trịMAX Khi đạt tới MAX, bộ đếm sẽ đảo chiều và đếm xuống tới BOTTOM.Như vậy, một chu kỳ của timer bằng thời gian giữa hai lần giá trị TCNT0đạt MAX.
Hình 2.7 - Giản đồ thời gian của chế độ PWM
Cờ tràn TOV0 được set mỗi lần bộ đếm đạt tới giá trị BOTTOM Khitimer đạt tới giá trị này, ta có thể sử dụng để kích hoạt chương trình ngắt qua
cờ báo ngắt
Xung PWM được đưa ra trên chân OC0 Việc thiết lập ngõ ra dạng đảo(inverting) hay không đảo (non-inverting) được thực hiện qua hai bitCOM01 và COM00 Giá trị thực sự của OC0 chỉ có thể thấy được khi ta đặtOC0 là ngõ ra
Tần số của xung PWM được tính toán dựa vào công thức sau:
Trong đó, N là giá trị của bộ chia tần số (1, 8, 64, 256,1024)
Thanh ghi OCR0 sẽ đạt tới cực trị (cực đại hoặc cực tiểu) thay cho cáctrường hợp đặc biệt khi phát ra dạng xung PWM Trong chế độ không đảo,
Trang 16nếu OCR0 được đặt giá trị BOTTOM, ngõ ra luôn ở mức thấp và nếu OCR0được đặt giá trị MAX thì ngõ ra luôn ở mức cao Đối với chế độ đảo thì hoạtđộng ngược lại.
- 1 bộ giảm nhiễu ngõ vào
- Chế độ xóa timer khi đạt tới giá trị so sánh
Trang 17Hình 2.8 - Sơ đồ khối của timer/counter1
- Chế độ Phase and Frequency Correct PWM
- Giới thiệu về chế độ đếm sự kiện ngoài:
- Chân ngõ vào T1: tác động cạnh lên hoặc xuống (tùy lựa chọn)
Trong chế độ này, bộ đếm luôn đếm lên, khi đạt tới giá trị MAX(0xFFFF) thì tự động reset về BOTTOM (0x0000)
Trang 182.6.3 Giới thiệu timer/counter2:
- Ngắt khi tràn hoặc tại giá trị so sánh
Hình 2.9 - Sơ đồ khối của timer/counter2
Các chế độ hoạt động của Timer/Counter2:
Trang 19Trong chế độ này, thanh ghi OCR2 được dựng để thiết lập độ phân giảicho bộ đếm Khi TCNT đạt tới giá trị bằng với OCR2, bộ đếm được xóa về
0 Thanh ghi OCR2 xác định giá trị lớn nhất và cũng là độ phân giải củaTimer2
Hình 2.10 - Giản đồ thời gian của chế độ CTC
Khi bộ đếm đạt tới giá trị TOP, cờ OCF2 kích hoạt chương trình ngắt.Khi đã được kích hoạt, chương trình ngắt có thể được sử dụng để cập nhậtgiá trị TOP
Chu kỳ của Timer trong chế độ CTC có thể tính như sau:
Với công thức trên, ta có thể tính thời gian lấy mẫu như sau: Timer 8bit,giá trị MaxVal đặt trong OCR = 155, nguồn xung clock 16MHz, chia tần số
1024 thì thời gian lấy mẫu là 10ms
2.7 Bộ truyền nhận dữ liệu USART:
USART (The Universal Synchronous and Asynchronous serial Receiverand Transmitter – Bộ truyền nhận nối tiếp tổng hợp đồng bộ và bất đồng bộ)Đặc điểm:
- Hoạt động song công
- Cho phép làm việc ở các chế độ : đồng bộ hay bất đồng bộ
- Bộ phát tốc độ baud (BAUD RATE) với độ phân giải cao
- Hỗ trợ Format khung truyền nối tiếp : 5,6,7,8, hay 9 Data Bits và 1 hoặc 2 bit Stop
Trang 20- Hỗ trợ kiểm tra bit chẵn , lẻ bằng phần cứng.
- Có thể phát hiện Data bị tràn , khung truyền bị lỗi
- Có 3 cờ báo ngắt : TX complete, TX Data Register Empty và RX complete
- Có chế độ truyền thông đa xử lý
- Double speed (chỉ áp dụng cho chế độ truyền thông bất đồng bộ)
Hình 2.11 - Sơ đồ khối USART
Trong sơ đồ trên, có ba khối nằm trong phần khung vuông là ba phầnchính của USART: bộ phát xung, bộ truyền và bộ nhận Thanh ghi điềukhiển được sử dụng chung cho các thành phần Bộ phát xung tạo ra xungnhịp cho bộ phát tốc độ baud (khi truyền nhận bất đồng bộ), hoặc điều khiển
Trang 21để nhận xung clock bên ngoài khi truyền nhận đồng bộ Bộ truyền bao gồmmột bộ đệm ghi đơn (single write buffer), thanh ghi dịch nối tiếp (serial ShiftRegister), bộ phát parity và bit điều khiển sử dụng cho nhiều khung truyềnkhác nhau Bộ nhận phức tạp hơn do có phần phục hồi xung và dữ liệu(clock and data recovery) Thành phần phục hồi này sử dụng trong khi nhận
dữ liệu bất đồng bộ Ngoài hai phần phục hồi, bộ nhận còn có phần kiểm traparity, bit điều khiển, thanh ghi dịch và bộ đệm nhận hai mức thấp (UDR)
Bộ nhận hỗ trợ các chuẩn khung truyền giống như bộ phát, và có thể pháthiện lỗi khung truyền, tràn dữ liệu hoặc lỗi parity
Các thanh ghi của USART:
- USART I/O Data Register –UDR
UDR là thanh ghi bộ đệm truyền(TXB) và nhận(RXB) (chúng cócùng 1 địa chỉ vật lý) có chức năng lưu trữ Data
o TXB: Thanh ghi bộ đệm truyền Khi ta muốn send data đến PCthì trước hết data đó phải được nạp vào TXB
Muốn ghi DATA vào TXB thì bit UDRE trong thanh ghiUCSRA phải được set (UDRE=[1]: cho phép ghi vào TXB) Data
đó được ghi vào UDR cho đến khi UDRE=[0] Khi Data đangđược vào TXB, và Transmitter được phép thì Transmitter sẽ LoadData đó vào thanh ghi dịch khi thanh ghi dịch bị trống (rỗng) Sau
đó Data được truyền nối tiếp trên chân TxD (PD0) của MCU
o RXB: Thanh ghi bộ đệm nhận Khi PC send 1 gói Data đếnMCU thì gói Data đó nằm trong RXB do đó cần phải chuyểnData trong RXB vào 1 thanh R (vd: R16)
RXB gồm có 2 mức FIFO FIFO sẽ thay đổi trạng thái của nóbất cứ khi nào RXB được truy xuất Vì trạng thái này của RXD màkhông được dựng những lệnh (SBI, CBI) ở đây Cẩn thận với cáclệnh kiểm tra (SBIC và SBIS), vì chúng cũng sẽ làm thay đổi trạngthái của FIFO
- USART Control and Status Register A – UCSRA
Trang 22(Thanh ghi điều khiển và trạng thái A)
o Bit 7 – RXC: USART Receive Complete
Cờ RXC =[1] khi có data chưa được đọc trong RXB vàRXC =[0] khi RXB rỗng (không còn bất kì data nào trong RXBchưa đọc)
Cờ RXC có thể được dựng để tạo ra ngắt khi nhận xong (kếthợp với bit RXCIE)
o Bit 6-TXC: USART Transmit Complete
Cờ TXC =[1] khi toàn bộ data trong thanh ghi dịch truyền
đã dược dịch ra ngoài và không còn data mới nào xuất hiệntrong TXB (UDR) TXC tự động được xóa nếu có 1 ngắt khitruyền xong được thực thi hay nó cũng có thể được xóa bằngcách ghi vào vị trí bit của nó
Cờ TXC có thể được dựng để tạo ra ngắt khi truyền xong(kết hợp với bit RXCIE)
o Bit 5-UDRE: USART Data Register Empty
Cờ UDRE chỉ thị nếu TXR (UDR) sẵn sàng để nhận dữ liệumới Nếu UDRE=[1] thì bộ đệm trống, vì thế mà bộ đệm sẵnsàng nhận dữ liệu mới Cờ UDRE có thể tạo ra 1 ngắt khi datatrong thanh ghi trống rỗng (kết hợp với bit UDRIE)
UDRE = [1] sau khi reset để chỉ thị rằng bộ truyền đã sẵnsàng
o Bit 4-FE: Frame Error
FE =[1] nếu có lỗi khung truyền khi nhận
o Bit3-DOR: Data OverRun
DOR=[1] nếu dữ liệu bị tràn
o Bit 2-PE: Parity Error
PE=[1] nếu có lỗi kiểm tra chẵn, lẻ
Trang 23o Bit 1-U2X: Double the USART Transmission Speed
Chú ý : U2X chỉ có tác dụng đối với chế độ truyền bất đồngbộ
U2X=[0] khi sử dụng chế độ truyền đồng bộ
U2X=[1] sẽ làm giảm ước số của bộ chia tốc độ baud từ 16xuống còn 8 có tác dụng tăng tốc độ truyền đối với hoạt độngbất đồng bộ
o Bit 0-MPCM: Multi-processor Communication Mode
Bit này cho phép chế độ truyền thông đa xử lý
Khi MPCM=[1] thì tất cả các dữ liệu được nhận vào bởi bộnhận USART mà không có địa chỉ sẽ được bỏ qua Việc set bitMPCM không ảnh hưởng đến bộ truyền
- USART Control and Status Register B – UCSRB
o Bit 7-RXCIE: RX complete Interrupt Enable
RXCIE=[1] cho phép nhận xảy ra ngắt (bằng cờ RXC).USART nhận hoàn tất sẽ tạo ra 1 ngắt khi chỉ khi RXCIE=[1],ngắt toàn cục được phép và RXC =[1] (trong UCSRA)
o Bit 6-TXCIE: TX complete Interrupt Enable
TXCIE=[1] cho phép truyền xảy ra ngắt (bằng cờ TXC).USART truyền hoàn tất sẽ tạo ra 1 ngắt khi chỉ khi TXCIE=[1],ngắt toàn cục được phép và TXC =[1] (trong UCSRA)
o Bit 5-UDRIE: USART Data Register Empty Interrupt Enable
UDRIE=[1] cho phép ngắt khi Data trong thanh ghi trống.Ngắt này chỉ được tạo ra khi UDRIE=[1], ngắt toàn cục đượcphép và UDRE =[1] (trong UCSRA)
o Bit 4-RXEN: Receive Enable
RXEN=[1]: cho phép nhận
o Bit 3-TXEN : Transmit Enable
TXEN=[1]: cho phép truyền
Trang 24o Bit 2-UCSZ2: character size
UCSZ2 kết hợp với UCSZ1:0 trong thanh ghi UCSRC dựng
để thiết lập khung dữ liệu (số Data_Bit có trong 1 khungtruyền VD: 5bit, 6bit, 8bit…) truyền và nhận
o Bit 1-RXB: Receive Data bit 8
RXB chứa bit thứ 9 nhận về khi hoạt động ở chế độ khungtruyền 9 bit Nó phải được đọc trước khi đọc những bit thấp từUDR
o Bit 0-TXB: Transmit Data bit 8
TXB chứa bit thứ 9 sẽ được truyền đi khi hoạt động ở chế
độ khung truyền 9 bit Nó phải được ghi trước khi ghi nhữngbit thấp vào UDR
- SART Control and Status Register C – UCSRC
o Bit 7 – URSEL: Register Select
Bit nay dựng để lựa chọn thanh ghi UCSRC hay UBRRH.URSEL=[1]: UCSRC
Trang 25o Bit 3 – USBS: stop bit select
o Bit 2:1-UCSZ 1:0: character size (Format khung truyền)
o Bit 0 – UCPOL: Clock Polarity
Bit này chỉ dùng cho chế độ truyền đồng bộ
UCPOL = [0]: chọn chế độ truyền bất đồng bộ
UCPOL được thiết lập liên quan đến giữa dữ liệu đầu rathay đổi và mẫu dữ liệu vào và xung đồng bộ (XCK)
- USART Baud Rate Registers – UBRRL and UBRRH
o Bit 15 - URSEL: Register Select
Trang 26Bit nay dựng để lựa chọn thanh ghi UCSRC hay UBRRH.URSEL=[1]: UCSRC
URSEL=[0]: UBBRH
o Bit 14:12: Reserved Bits
o Bit 11:0: UBRR 11:0: USART Baud Rate Register
Dựng để chọn tốc độ BAUD
Ví dụ:
Trang 27I Giới thiệu tổng quan về cảm biến nhiệt độ DS18B20
IC DS18B20
Một số đặc tính cơ bản của cảm biến nhiệt IC DS18B20:
Sử dụng giao diện một dây nên chỉ cần một dây ra để truyền thông
Dải đo nhiệt độ từ -55 o C đến 125 0 C, từng bậc 0.5 0 C , có thể đạt độ chính xác đến 0.0625 0 C bằng cách hiệu chỉnh qua phần mềm.
Rất thích hợp cho các ứng dụng đo lường đa điểm vì nhiều đầu đo có thể đi chung trên cùng một bus.
Đóng gói theo dạng 3 chân vỏ TO-92
Điện áp nguồn nuôi có thể thay đổi trong khoảng rộng, từ 0.3V đến 5.5V một chiều và có thể được cấp thong qua đường dẫn dữ liệu.
Độ phân giải từ 9 -12 bit do người dùng lựa chọn
Độ chính xác 0.5 0 C trong khoảng nhiệt từ -10 0 C đến 85 0 C