Thế kỉ 21 mở ra một thời đại mới, thời đại khoa học công nghệ đòi hỏi con người luôn luôn không ngừng tìm tòi, học hỏi để phát triển và tiến bộ. Với sự nhảy vọt của khoa học, trong một khoảng thời gian ngắn ngành kĩ thuật điện điện tử đã đạt được những thành tựu to lớn, ảnh hưởng đến mọi lĩnh vực trong đời sống xã hội. Thiết bị công nghệ ngày càng phát triển hiện đại góp phần nâng cao chất lượng cuộc sống. Ngày nay, các thiết bị vi điều khiển có ứng dụng ngày càng rộng rãi với ưu điểm nhỏ gọn, linh hoạt và có thể điều khiển được dễ dàng. Với những ưu điểm: chuyên dụng hóa, tối ưu (thời gian, không gian, giá thành, …), mang tính bảo mật, chủ động, linh hoạt trong công nghệ, … Do vậy vi điều khiển ngày càng chiếm lĩnh, đóng vai trò quan trọng trong điều khiển và tự động hóa và nhiều lĩnh vực liên quan khác. Đề tài về vi điều khiển trong đời sống thực tế rất nhiều, phong phú và đa dạng. Nhưng với mong muốn được học tập, nghiên cứu và vận dụng kiến thức đã được học trên giảng đường, em đã lựa chọn đề tài: “Thiết kế mạch cảm biến nhiệt độ sử dụng ATMega16 ”. Trong quá trình thực hiện đề tài này, em xin gửi lời cảm ơn chân thành nhất tới Vũ Sinh Thượng đã hướng dẫn tận tình và chỉ dẫn các bước, cung cấp những tài liệu nghiên cứu quý báu để chúng em có thể hoàn thành đề tài này một cách tốt nhất. Dựa theo những kết quả đạt được bước đầu, dù đã rất cố gắng tuy nhiên không tránh khỏi những thiếu sót và hạn chế nhất định. Vì vậy, chúng em rất mong nhận được sự góp ý, bổ sung của thầy để đề tài được tối ưu và hoàn thiện hơn.
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN ĐIỆN TỬ - VIỄN THÔNG
Nguyễn Quang Hải 20195865 Điện tử 08 – K63
Giảng viên hướng dẫn: Vũ Sinh Thượng
Trang 2Hà Nội, 03-2023
Trang 3LỜI NÓI ĐẦU
Thế kỉ 21 mở ra một thời đại mới, thời đại khoa học công nghệ đòi hỏi con ngườiluôn luôn không ngừng tìm tòi, học hỏi để phát triển và tiến bộ Với sự nhảy vọt củakhoa học, trong một khoảng thời gian ngắn ngành kĩ thuật điện - điện tử đã đạt đượcnhững thành tựu to lớn, ảnh hưởng đến mọi lĩnh vực trong đời sống xã hội Thiết bịcông nghệ ngày càng phát triển hiện đại góp phần nâng cao chất lượng cuộc sống.Ngày nay, các thiết bị vi điều khiển có ứng dụng ngày càng rộng rãi với ưu điểmnhỏ gọn, linh hoạt và có thể điều khiển được dễ dàng Với những ưu điểm: chuyêndụng hóa, tối ưu (thời gian, không gian, giá thành, …), mang tính bảo mật, chủ động,linh hoạt trong công nghệ, … Do vậy vi điều khiển ngày càng chiếm lĩnh, đóng vai tròquan trọng trong điều khiển và tự động hóa và nhiều lĩnh vực liên quan khác
Đề tài về vi điều khiển trong đời sống thực tế rất nhiều, phong phú và đa dạng.Nhưng với mong muốn được học tập, nghiên cứu và vận dụng kiến thức đã được học
trên giảng đường, em đã lựa chọn đề tài: “Thiết kế mạch cảm biến nhiệt độ sử dụng ATMega16 ”.
Trong quá trình thực hiện đề tài này, em xin gửi lời cảm ơn chân thành nhất tới Vũ Sinh Thượng đã hướng dẫn tận tình và chỉ dẫn các bước, cung cấp những tài liệu
nghiên cứu quý báu để chúng em có thể hoàn thành đề tài này một cách tốt nhất
Dựa theo những kết quả đạt được bước đầu, dù đã rất cố gắng tuy nhiên khôngtránh khỏi những thiếu sót và hạn chế nhất định Vì vậy, chúng em rất mong nhận được
sự góp ý, bổ sung của thầy để đề tài được tối ưu và hoàn thiện hơn
Chúng em xin chân thành cảm ơn!
Trang 4MỤC LỤC
DANH MỤC HÌNH VẼ i
DANH MỤC BẢNG BIỂU ii
CHƯƠNG 1 CƠ SỞ LÝ THUYẾT TỔNG QUAN 1
1.1 Tìm hiểu ATMega16 1
1.1.1 Tổng quan về ATMega16 1
1.1.2 Giới thiệu bộ ADC trên AVR 10
1.1.3 Giới thiệu về PWM 13
1.2 Linh kiện sử dụng 14
1.2.1 Cảm biến nhiệt độ LM35 14
1.2.2 Màn hình LCD 15
1.3 Các phần mềm sử dụng 16
1.3.1 Phần mềm CodeVisionAVR 16
1.3.2 Phần mềm nạp chup ICProgrammer 16
1.3.3 Phần mềm Altium 17
CHƯƠNG 2 THIẾT KẾ PHẦN CỨNG (KIT) 18
2.1 Sơ đồ khối tổng quát 18
2.2 Sơ đồ toàn mạch được thiết kế trên phần mềm Altimum Error! Bookmark not defined 2.3 Khối nguồn 18
2.4 Sơ đồ khối xử lý 19
2.5 Sơ đồ khối hiển thị 19
2.6 Sơ đồ nút nhấn 20
2.7 Sơ đồ mạch in 20
CHƯƠNG 3 MẠCH CẢM BIẾN NHIỆT ĐỘ 22
3.1 Yêu cầu đặt ra 22
3.2 Nguyên lý hoạt động 22
Trang 5KẾT LUẬN 23 TÀI LIỆU THAM KHẢO 24 PHỤ LỤC 25
Trang 6DANH MỤC HÌNH VẼ
Hình 1.1 Hình ảnh thực tế vi điều khhiển ATMega16 1
Hình 1.2 Sơ đồ khối của kiến trúc AVR MCU 2
Hình 1.3 Thanh ghi trạng thái 3
Hình 1.4 Các thanh ghi chức năng chung 3
Hình 1.5 Thanh ghi con trỏ ngăn xếp 4
Hình 1.6 Sơ đồ khối ATMega16 5
Hình 1.7 Sơ đồ chân của ATMega16 6
Hình 1.8 Sơ đồ đơn vị đếm 8
Hình 1.9 Sơ đồ đơn vị so sánh ngõ ra 8
Hình 1.10 Thanh ghi điều khiển bộ định thời/bộ đếm – TCCR0 9
Hình 1.11 Thanh ghi TCNT0 10
Hình 1.12 Thanh ghi so sánh ngõ ra – OCR0 10
Hình 1.13 Thanh ghi mặt nạ ngắt 10
Hình 1.14 Thanh ghi cờ ngắt bộ định thời 10
Hình 1.15 Thanh ghi ADMUX 11
Hình 1.16 Dạng sóng vuông thể hiện các mức chia duty cycle 13
Hình 1.17 Hình ảnh thực tế cảm biến nhiệt độ LM35 14
Hình 1.18 LCD1602 15
Hình 1.19 Giao diện của phần mềm CodeVisionAVR 16
Hình 1.20 Giao diện của phần mềm nạp chip 17
Hình 1.21 Giao diện phần mềm Altium 17
Hình 2.1 Sơ đồ thiết kế tổng quát 18
Hình 2.3 Sơ đồ khối nguồn 18
Hình 2.4 Sơ đồ khối xử lý 19
Hình 2.5 Sơ đồ khối hiển thị 19
Hình 2.6 Sơ đồ nút nhấn 20
Trang 7Hình 2.7 Sơ đồ mạch in 20
Hình 2.8 Sơ đồ mạch mô phỏng 3D 21
Hình 3.1 Mô phỏng hoạt động của mạch 22
DANH MỤC BẢNG BIỂU
Bảng 1.1 Chế độ đầu ra so sánh, non-PWM 9Bảng 1.2 Bảng lựa chọn nguồn xung cho bộ định thời 9
Bảng 1.3 Chọn điện áp tham chiếu 12
Bảng 1.4 Chọn xung nhịp cho bộ ADC 13
Bảng 1.5 Chức năng chi tiết các chân của cảm biến nhiệt độ LM35 14
Trang 8CHƯƠNG 1 CƠ SỞ LÝ THUYẾT TỔNG QUAN
1.1 Tìm hiểu ATMega16
1.1.1 Tổng quan về ATMega16
ATMega16 là bộ vi điều khiển CMOS 8 bit tiêu thụ điện năng thấp dựa trên kiếntrúc RISC (Reduced Instruction Set Computer) Vào ra Analog – Digital và ngược lại.Với công nghệ này cho phép các lệnh thực thi chỉ trong một chu kỳ xung nhịp, vì thếtốc độ xử lý dữ liệu có thể đạt đến một triệu lệnh trên giây ở tần số 1 MHz Vi điềukhiển này cho phép người thiết kế có thể tối ưu hóa chế độ tiêu thụ năng lượng mà vẫnđảm bảo tốc độ xử lí
Hình 1.1 Hình ảnh thực tế vi điều khhiển ATMega16
ATMega16 có tập lệnh phong phú về số lượng với 32 thanh ghi làm việc đa năng.Toàn bộ 32 thanh ghi đều được nối trực tiếp với ALU (Arithmetric Logic Unit), chophép truy cập hai thanh ghi độc lập bằng một chu kì xung nhịp Kiến trúc đạt được cótốc độ xử lý nhanh gấp 10 lần vi điều khiển dạng CISC (Complex Instruction SetComputer) thông thường Ngoài ra, ATMega16 có các đặc điểm sau: 16Kb bộ nhớFlash với khả năng đọc trong khi ghi, 512 byte bộ nhớ EEPROM, 1Kb bộ nhớ SRAM,
32 thanh ghi chức năng chung, 32 đường vào ra chung, 3 bộ định thời/bộ đếm, ngắt
Trang 9nội và ngắt ngoại, USART, giao tiếp nối tiếp 2 dây I2C, 8 kênh ADC 10 bit, tốc độxung nhịp chip (0-8MHz cho ATMega16L và 0-16MHz cho ATMega16) …ATMega16 hỗ trợ đầy đủ các chương trình và công cụ phát triển hệ thống như trìnhbiên dịch C, macro assemblers, chương trình mô phỏng/ sửa lỗi, …
1.1.1.1 Cấu trúc nhân
CPU của ATMega16 có chức năng đảm bảo sự hoạt động chính xác
Do đó nó có khả năng truy cập bộ nhớ, thực hiện các quá trình tính
thiết bị ngoại vi và quản lí ngắt
Cấu trúc tổng quát: AVR sử dụng cấu trúc Harvard, tách biệt bộ
Trang 10Hình 1.2 Sơ đồ khối của kiến trúc AVR MCU
ALU: ALU làm việc trực tiếp với các thanh ghi chức năng chung Các phép
toán được thực hiện trong một chu kì xung clock Hoạt động của ALU đượcchia thành 3 loại: đại số, logic, theo bit
Thanh ghi trạng thái: Thanh ghi trạng thái là thanh ghi có 8 bit lưu giữ trạng
thái của ALU sau các phép tính số học và logic
Hình 1.3 Thanh ghi trạng thái
Các thanh ghi chức năng chung
Trong đó:
- C: Carry Flag – cờ nhớ (nếu phép toán có nhớ, cờ sẽ được thiết
lập)
Trang 11- Z: Zero Flag – cờ Zero (nếu kết quả phép toán bằng 0)
- N: Negative Flag (nếu kết quả phép toán là âm)
- V: Two’s complement overflow indicator (Cờ được thiết lập khi
tràn số bù 2)
- H: Half Carry Flag
- T: Transfer bit được sử dụng làm nơi trung gian trong các lệnh
BLD, BST)
- I: Global Interupt Enable/Disable Flag (Bit cho phép ngắt toàn
cục Nếu bit này ở trạng thái logic 0 thì không có một ngắt nàođược phục vụ)
Hình 1.4 Các thanh ghi chức năng chung
Con trỏ ngăn xếp (SP): Là một thanh ghi 16 bit nhưng cũng có thể
được xem như hai thanh ghi chức năng đặc biệt 8 bit Có địa chỉtrong các thanh ghi chức năng đặc biệt là $3E (trong bộ nhớRAM là $5E) và có nhiệm vụ trỏ tới vùng nhớ trong RAM chứangăn xếp
Trang 12Hình 1.5 Thanh ghi con trỏ ngăn xếp
Trong trường hợp mà có nhiều ngắt yêu cầu cùng một lúc thì CPU
sẽ lưu các cờ báo ngắt đó lại, và thực hiện lần lượt các ngắt theomức ưu tiên Trong khi đang thực hiện ngắt mà xuất hiện ngắt mớithì sẽ xảy ra hai trường hợp Trường hợp ngắt này có ưu tiên cao hơnthì nó sẽ được phục vụ, và ngược lại, nếu có mức ưu tiên thấp hơn thì
nó sẽ bị bỏ qua
Bộ nhớ ngăn xếp là vùng bất kì trong SRAM từ địa chỉ 0x60 trở lên
Để truy nhập vào SRAM thông thường thì ta dùng con trỏ X, Y, Z vàtruy cập vào SRAM theo kiểu ngăn xếp thì ta dùng con trỏ SP Con trỏnagy là một thanh ghi 16 bit và được truy cập như hai thanh ghi 8 bitchung có địa chỉ: SPL: 0x3D/0x5D (IO/SRAM) và SPH:0x3E/0x5D
Trang 13Khi chương trình phục vụ ngắt hoặc chương trình con thì con trỏ
PC được lưu vào ngăn xếp trong khi con trỏ ngăn xếp bị giảm hai vịtrí Và con trỏ ngăn xếp sẽ giảm 1 khi thực hiện lệnh PUSH Ngược lạithực hiện lệnh POP thì con trỏ ngăn xếp sẽ tăng 1 và khi thực hiệnlệnh RET hoặc RETI thì con trỏ ngăn xếp sẽ tăng 2 Như vậy, con trỏngăn xếp cần được chương trình đặt trước giá trị khởi tạo ngăn xếptrước khi một chương trình con được gọi hoặc các ngắt được chophép phục vụ Và giá trị ngăn xếp ít nhất cũng phải lớn hơn 60H(0x60) vì 5FH trỏ lại là vùng các thanh ghi
Trang 141.1.1.2 Sơ đồ khối
Hình 1.6 Sơ đồ khối ATMega16
Trang 151.1.1.3 Sơ đồ chân và ý nghĩa các chân
Hình 1.7 Sơ đồ chân của ATMega16
- Chân VCC (chân số 10) là VCC cấp điện áp nguồn cho vi điều
cấp trong khoảng +5V± 0.5
- Chân GND (chân số 11 và 31) nối đất (hay nối Mass) Khi thiết
kế cần sử dụng một mạch ổn áp để bảo vệ cho vi điều khiển,các đơn giản nhất là dùng IC ổn áp 7805
- Port A (PA): Port A gồm 8 chân (từ chân 33 đến chân 40), có
chức năng đầu vào cho chuyển đổi ADC
- Port B (PB): Port B gồm 8 chân (từ chân 1 đến chân 8), ngoài có
chức năng làm các đường xuất/nhập thì còn nhiều chức năngphụ khác
- Port C (PC): Port C gồm 8 chân (từ chân 22 đến chân 29) nếu
giao tiếp JTAG được kích hoạt, điện trở trên các chân PC5 (TDI),PC3 (TMS), PC2 (TCK) sẽ được kích hoạt ngay cả khi khởi độnglại (reset)
Trang 16- Port D (PD): Port D gồm 8 chân (từ chân 14 đến 21): chức năng
xuất nhập
- Chân RESET (RST): ngõ vào RST ở chân 9 là ngõ vào Reset
dùng để thiết lập trạng thái ban đầu cho vi điều khiển Hệthống sẽ được thiết lập lại các giá trị ban đầu nếu ngõ này ởmức 1 tối thiểu 2 chu kì clock
- Chân XTAL1 và XTAL2: Hai chân này có vị trí chân là 12 và 13
được sử dụng để nhận nguồn xung clock từ bên ngoài để hoạtđộng, thường được ghép nối với thạch anh và các tụ để tạonguồn xung clock ổn định
- Chân AVCC: Nguồn cấp cho cổng A và bộ chuyển đổi ADC, chân
này được nối với nguồn VCC bên ngoài, ngay cả khi bộ chuyểnđổi ADC không được sử dụng Nếu bộ chuyển đổi ADC khôngđược sử dụng, chân AVCC nên được nối với nguồn qua bộ lọc
- Chân AREF: AREF là chân chuẩn analog cho bộ chuyển đổi ADC.
TCN0 và OCR0 là các thanh ghi 8 bit Các tín hiệu yêu cầu ngắt
ghi TIFR Các ngắt có thể được che bởi các thanh ghi TIMSK
Bộ định thời có thể sử dụng xung clock nội thông qua bộ chia hoặc
Trang 17trên chân T0 Khối chọn xung clock điều khiển việc bộ định thời/ bộ
nào để tăng giá trị của nó
Thanh ghi OCR0 luôn được so sánh với giá trị của bộ định thời/bộ
- Count: tăng hay giảm TCN0:1
- Direction: lựa chọn giữa đếm lên và đếm xuống
- Clear: xóa thanh ghi TCNT0 (đưa các bit về 0)
- TOP: báo hiệu bộ định thời đã tăng đến giá trị lớn nhất
- BOTTOM: báo hiệu bộ định thời đã giảm đến giá trị nhỏ nhất.
Bộ so sánh 8 bit liên tục so sánh giá trị TCNT0 với các giá trị thanh
ra (OCR0) Khi giá trị TCNT0 bằng với OCR0, bộ so sánh sẽ tạo ra một
hiệu này sẽ đặt giá trị cờ so sánh ngõ ra (OCF0) lên 1 vào chu kì
được kích hoạt (OCIE0 = 1), cờ OCF0 sẽ tạo ra một ngắt so sánh ngõ
được xóa khi ngắt được thực thi Cờ OCF0 cũng có thể xóa được bằng
Trang 18Hình 1.9 Sơ đồ đơn vị so sánh ngõ ra
Thanh ghi điều khiển bộ định thời/ bộ đếm - TCCR0 (Timer/CounterControl
Register)
Hình 1.10 Thanh ghi điều khiển bộ định thời/bộ đếm – TCCR0
- Bit 7 (FOC0): so sánh ngõ ra bắt buộc: bit này chỉ tích cực khi
bit WGM00 chỉ định chế độ làm việc không có PWM Khi đặt bitnày lên 1, một báo hiệu so sánh bắt buộc xuất hiện đơn vị dạngtạo sóng
- Bit 6 (WGM00) – Bit 3 (WGM01): chế độ tạo dạng sóng: các bit
này điều khiển hoạt động của chân OC0 Nếu một hoặc cả haibit COM01, COM00 được đặt lên 1, ngõ ra OC0 sẽ hoạt động
Trang 19Bảng 1.1 Chế độ đầu ra so sánh, non-PWM
- Bit 2 (CS02), bit 1 (CS01), bit 0 (CS00) chọn xung đồng hồ: ba
bit này dùng để lựa chọn nguồn xung cho bộ định thời/bộ đếm
Bảng 1.2 Bảng lựa chọn nguồn xung cho bộ định thời
Thanh ghi bộ định thời/bộ đếm TCNT0
Cho phép truy cập trực tiếp vào bộ đếm 8 bit:
Hình 1.11 Thanh ghi TCNT0
Thanh ghi so sánh ngõ ra – OCR0
Thanh ghi chứa một giá trị 8 bit và liên tục được so sánh với giá trịcủa bộ đếm
Trang 20Hình 1.12 Thanh ghi so sánh ngõ ra – OCR0
Thanh ghi mặt nạ ngắt
- Bit 1 (OCIE0): cho phép ngắt báo hiệu so sánh
- Bit 0 (TOIE0): cho phép ngắt tràn bộ đếm
Hình 1.13 Thanh ghi mặt nạ ngắt
Thanh ghi cờ ngắt bộ định thời
- Bit 1 (OCF0): cờ so sánh ngõ ra 0
- Bit 0 (TOV0): cờ tràn bộ đếm
Hình 1.14 Thanh ghi cờ ngắt bộ định thời
Bit TOV0 được đặt lên 1 khi bộ đếm bị tràn và được xóa bởi phần
ngắt tương ứng được thực hiện Bit này cũng có thể được xóa bằngphần mềm
1.1.2 Giới thiệu bộ ADC trên AVR
ADC (Analog to Digital Converter) chuyển đổi tín hiệu tương tự
ATMega16 tích hợp 8 kênh ADC với độ rộng mỗi kênh là 10 bit, tức là
chuyển thành 1024 mức level dạng bậc thang
ADC được ứng dụng rất nhiều như đo nhiệt độ, đọc giá trị điện áp,
đọc phím nhấn theo điện trở, …
Trang 211.1.2.1 Thiết kế nguồn cho bộ ADC
Chân AVCC là chân cấp nguồn cho bộ ADC của ATmega16 (chân
với VCC của chip)
Chân AREF là chân chọn điện áp tham chiếu ngoài của bộ ADC
Trong đó: 𝑽𝒓𝒆𝒇 là điện áp tham chiếu (đơn vị V)
ADC là giá trị sau chuyển đổi
1.1.2.3 Các thanh ghi tham gia điều khiển ADC
Thanh ghi ADMUX ( ADC Multiplexer Selection Register)
Là thanh ghi chọn điện áp tham chiếu và chọn kênh ADC
Hình 1.15 Thanh ghi ADMUX
Trang 22- Bit 7 và Bit 6 (REFS1 và REFS0) là 2 bit chọn điện áp tham
chiếu để so sánh, ta có bảng sau:
Bảng 1.3 Chọn điện áp tham chiếu
- Bit 5 (ADLAR) là bit sắp xếp hai thanh ghi ADCH và ADCL, do bộ
chuyển đổi ADC là 10 bit nên phải có 2 thanh ghi 8 bit để lưugiá trị chuyển đổi
- Bit 4:0 – MUX4:0 Bit chọn kênh ADC và có giá trị thập phân từ
0-7 ứng với kênh ADC0- ADC7 Ví dụ: Chọn kênh ADC 2 thì đặt
00010 trong MUX4:0
Thanh ghi ADCSRA
- Bit 7 ADEN: cho phép bộ ADC hoạt động, nếu không set bit này
lên 1 thì bộ ADC không hoạt động
- Bit 6 ADSC: là bit cho phép bộ ADC chuyển đổi, khi quá trình
chuyển đổi hoàn tất bit này sẽ tự động được xóa về 0 và muốn
bộ ADC chuyển đổi tiếp thì phải set lại bit này
- Bit 5 ADATE: là bit cho phép chuyển đổi liên tục, set bit này thì
bộ ADC sẽ chuyển đổi liên tục
- Bit 4 ADIF là bit cờ ngắt, khi quá trình chuyển đổi hoàn tất thì
bit này tự động được set lên 1, ta sẽ kiểm tra bị này để đảmbảo quá trình đọc ADC không bị lỗi
- Bit 3 ADIE là bit cho phép ngắt bộ ADC Khi chuyển đổi hoàn
tất, sẽ có một ngắt xảy ra nếu cho phép ngắt ADC
- ADPS2:0 là 3 bit chọn xung nhịp cho bộ ADC, tốc độ chuyển đổi
phụ thuộc vào 3 bit này Chế độ chuyển đổi 10 bit sẽ chậm hơn
8 bit
Trang 23Bảng 1.4 Chọn xung nhịp cho bộ ADC
Hình 1.16 Dạng sóng vuông thể hiện các mức chia duty cycle
Trong đó: T là chu kì của xung, T1 là thời gian xung ở mức cao
Hệ số điều chỉnh D (%) D = T1/T.
- Điện áp lớn nhất cấp cho tải: Udmax
Trang 24- Điện áp trung bình cấp cho tải khi có PWM: Ud = Udmax.D.
Bộ Timer1 của Atmega8 cung cấp cho chúng ta 2 kênh tạoxung điều rộng PWM:
+ Kênh A: tín hiệu ra ở OC1A (PORTB.1)
+ Kênh B: tín hiệu ra ở OC1B (PORTB.2)
Trong đồ án này, sử dụng chế độ Fast PWM, mode 14 (kênh A)
- Thiết lập dạng tín hiệu PWM ra trên thanh ghi TCCR1A
- Khi hoạt động, ban đầu chân OC1A ở mức cao (tùy vào dạng tín
hiệu PWM ra bạn chọn ở trên), TCNT1 tăng giá trị từ 0 cho đếnkhi bằng giá trị trên thanh ghi OCR1A thì chân OC1A được xóa
về 0 TCNT1 vẫn tiếp tục tăng đến khi bằng giá trị trong thanhghi ICR1 thì TCNT1 reset về 0 và chân OC1A được kéo lên mứccao
Thiết lập:
+ Giá trị ICR1: là chu kỳ xung
+ Giá trị OCR1A: là thời gian xung ở mức cao