C1;C 4 có nhiệm vụ dùng để lọc nhiểu ở tần số cao do đó tụ n y thƣờng dùng loại
không phân cực và có giá trị điện dung nhỏ. Ta chon tụ sứ có giá trị C= 0.1uf
(104)
 Tụ C2, C3 dùng để lọc nguồn cho dòng điện bớt nhấp nhô trƣớc khi đƣa v o IC ổn
áp và làm giảm thời gian quá độ khi bật nguồn.
 Diot led dùng để báo hiệu.
 R1 điện trở hạn chế dòng qua Led và giá trị n y ta thƣờng chọn 330 Ohm, ơ đây
ta chọn R1=1k bởi vì led này hoạt động với thời gian dài nên ta hạn chế công suất
của nó để kéo dài tuổi thọ
                
              
                                            
                                
            
 
             
            Bạn đang xem trước 20 trang tài liệu Đề tài Hệ thống nhúng và giao tiếp máy tính, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
 HỌC VIỆN CÔNG NGHỆ BƢU CHÍNH VIỄN THÔNG 
CƠ SỞ TẠI THÀNH PHỐ HỒ CHÍ MINH 
KHOA ĐIỆN TỬ II 
ĐỒ ÁN MÔN HỌC 
HỆ THỐNG NHÚNG 
VÀ GIAO TIẾP MÁY TÍNH 
NGÀNH KỸ THUẬT ĐIỆN-ĐIỆN TỬ 
NIÊN KHÓA: 2007-2012 
CHUYÊN ĐỀ: 
ĐIỀU KHIỂN ĐỘNG CƠ 
VÀ GIAO TIẾP M ÁY T ÍNH 
GV. hƣớng dẫn: 
THS. Phạm Thế Duy 
THS. Tôn Thất Bảo Đạt 
Nhóm thực hiện: 
LỚP : 
Nhóm : Lê Đức Thuận 
 Lê Văn Kiểm 
 Lê Văn Hoá 
 Đặng Vân Nam 
 Phạm Xuân kỳ 
D07DTA1 
TP.HỒ CHÍ MINH -2011 
 ỜI MỞ Đ U 
Em xin chân thành cảm ơn Th.s Phạm Thế Duy & Th.s Tôn Thất Đạt 
đã tận tình hƣớng dẫn, hỗ trợ cho chúng em về ý tƣởng, tài liệu trong suốt quá 
trình thực hiện đề t i Ngày nay trong mọi lĩnh vực khoa học kỹ thuật luôn 
xuất hiện khái niệm Kỹ thuật số vi xử lý v điều khiển, với sự trợ giúp 
của máy tính kỹ thuật vi xử lý v điều khiển đã có sự pháttriển mạnh mẽ 
đặc biệt là sự phát triển nhanh chóng của các họ vi xử lý v điều khiển 
với những tính năng mới Để phục vụ tốt cho môn học chúng em thực 
hiện đề t i: Đo v Điều khiển Tốc Độ Động Cơ với mục đích tích luỹ 
kiến thức đặc biệt là những kinh nghiệm trong quá trình lắp mạch thực tế 
song do thời gian và kiến thức có hạn, nên mạch thiết kế còn nhiều thiếu 
sót. Chúng em rất mong nhận đƣợc sự góp ý của các thầy cô để có thể 
nâng cao chất lƣợng của bài thiết kế, chúng em xin chân thành cảm ơn ! 
Tp. Hồ Chí Minh, 5 / 2011 
Sinh viên: 
MỤC LỤC 
 LỜI MỞ Đ U . 
 CHƢƠNG I: CÁC PHƢƠNG PHÁP ĐIỀU KHIỂN ĐỘNG CƠ 
 CHƢƠNG II: VI ĐIỀU KHIỂN ATMEGA16 
2.1 Giới thiệu chung 
2.2 Cấu trúc nhân AVR 
2.2.1 ALU 
2.2.2 Thanh ghi trạng thái 
2.2.3 Con trỏ ngăn xếp (SP 
2.2.4 Quản lý ngắt. 
2.3 Cấu trúc bộ nhớ 
2.3.1 Bộ nhớ chƣơng trình (Bộ nhớ Flash) 
2.3.2 Bộ nhớ dữ liệu SRAM 
2.3.2 Bộ nhớ dữ liệu SRAM. 
2.3.3 Bộ nhớ dữ liệu EEPROM 
2.4 Các cổng vào ra (I/O) 
2.4.1 Thanh ghi DDRx . 
2.4.2 Thanh ghi PORTx . 
2.4.3 Thanh ghi PINx.. 
2.5 Bộ định thời. 
2.5.1 Các thanh ghi 
2 5 2 Đơn vị đếm .. 
2 5 3 Đơn vị so sánh ngõ ra. 
2.5.4 Mô tả các thanh ghi... 
2.6 USART.. 
2.6.1 Tạo xung clock . 
2 6 2 Định dạng khung truyền . 
2.6.3 Khởi tạo USART 
2.6.4 Truyền thông dữ liệu-bộ truyền USART.... 
2.6.5 Nhận dữ liệu-bộ nhận USART . 
2.7 Bộ biến đổi A/D 
2.7.1 ADMUX: Multiplexer select register 
2.7.2 ADCSR-ADC control and status register 
2.7.3 Thanh ghi dữ liệu ACDH và ADCL 
2.7.4 Nguyên tắc hoạt động và lập trình điều khiển.. 
CHƢƠNG III: GIAO TIẾP VI ĐIỀU KHIỂN VỚI MÁY TÍNH 
3.1 Chuẩn RS232 
3.2 Cổng COM 
3.3 Truyền thông giữa hai nút 
CHƢƠNG IV: THIẾT KẾ PHẦN CỨNG CHO ĐỀ TÀI 
 4.1 Sơ đồ thiết kế tổng quát.. 
 4.2 Một số linh kiện sử dụng trong mạch 
 4.2.1 Cảm biến nhiệt độ lm35 
 4.2.2 IC max 232. 
 4.2.3 Màn hình hiển thị( LCD 16x2). 
 4.3 Tính toán thiết kế cho các khối 
 4.3.1 Khối xử lý trung tâm 
 4.3.2 Khối phím điều khiển 
 4.3.3 Khối hiển thị. 
 4.3.5 Khối mạch thu phát hồng ngoại. 
 4.3.6 khối mạch khuếch đại vi sai dòng điện. 
 4.3.7 khối mạch cảm biến điện áp 
 4.3.8 khối mạch công suất.... 
CHƢƠNG V: LẬP TRÌNH CHO VI ĐIỀU KHIỂN 
6 
CHƢƠNG I: CÁC PHƢƠNG PHÁP ĐIỀU KHIỂN ĐỘNG CƠ 
1 Giới thiệu chung 
Điều khiển tốc độ là một yêu cầu cần thiết tất yếu của các máy sản xuất. Ta biết rằng 
hầu hết các máy sản xuất đòi hỏi có nhiều tốc độ, tùy theo từng công việc, điều kiện làm việc mà 
ta lựa chọn các tốc độ khác nhau để tối ƣu hoá quá trình sản xuất. Muốn có Đƣợc các tốc độ khác 
nhau trên máy ta có thể thay đổi cấu trúc cơ học của máy nhƣ tỉ số truyền hoặc thay đổi tốc độ 
của chính động cơ truyền động. Ở đây chúng tôi chỉ khảo sát theo phƣơng pháp thay đổi tốc độ 
động cơ truyền động.Tốc độ làm việc của động cơ do ngƣời điều khiển quy định đƣợc gọi là tốc 
độ đặt. Trong quá trình làm việc, tốc độ động cơ có thể bị thay đổi vì tốc độ của động cơ phụ 
thuộc rấ tnhiều vào các thông số nguồn, mạch và tải nên khi các thông số thay đổi thì tốc độ của 
động cơ sẽ bị thay đổi theo. Tình trạng đó gây ra sai số về tốc độ và có thể không cho phép Để 
khắc phục ngƣời ta dùng những phƣơng pháp ổn định tốc độ Độ ổn định tốc độ còn ảnh hƣởng 
quan trọng đến giải điều chỉnh (phạm vi điều chỉnh tốc độ) và khả năng quá tải của động cơ Độ 
ổn định càng cao thì giải điều chỉnh càng có khả năng mở rộng và mô men quá tải càng lớn. 
Có rất nhiều phƣơng pháp để điều chỉnh tốc độ động cơ nhƣ: 
- Điều chỉnh tham số. 
- Điều chỉnh điện áp nguồn. 
- Điều chỉnh cấu trúc sơ đồ. 
Ở đây chúng tôi chỉ đề cập đến các phƣơng pháp điều khiển tốc độ động cơ một chiều 
2 Các phƣơng pháp điều khiển động cơ một chiều 
2.1 điều chỉnh tốc độ bằng cách điều chỉnh điện áp 
Cách điều khiển này ta có thể thay đổi tốc độ động cơ DC khi thay đổi điện áp đặt vào 
hai đầu của động cơ thì tốc độ củng thay đổi theo Ƣu điểm của phƣơng pháp n y l mạch điện 
rất dễ thực hiện mạch điện đơn giản đạt hiệu quả cao khi cho động cơ hoạt động với công suât 
lớn Nhƣợc điểm của phƣơng pháp n y động cơ dễ mất mô men khi thay đổi tốc độ từ cao xuống 
thấp do đó đạt hiệu quả không cao khi cho động cơ chạy ở tốc độ thấp và có tải đi kèm 
Hình 1.2.1 Điều khiển tốc độ động cơ bằng điện áp 
7 
2.2 Điều khiển tốc độ động cơ bằng xung pwm 
Đối với loại động cơ kích từ độc lập dùng nam châm vĩnh cữu, để thay đổi tốc độ, ta thay 
đổi điện áp cung cấp cho roto. Việc cấp áp 1 chiều thay đổi thƣờng khó khăn, do vậy ngƣời ta 
dùng phƣơng pháp điều xung (PWM) Ƣu điểm của biện pháp n y điều khiển tƣơng đối chính 
xác tốc độ động cơ, thay đổi đƣợc tốc độ mà không làm giảm mô men của động cơ Nhƣợc điểm 
của phƣơng pháp n y l mạch điều khiển phức tạp xung điều khiển đƣợc số hóa, do đó mạch 
điều khiển loại n y có giá th nh cao hơn 
Hình 1 2 2 Điều khiển động cơ bằng pwm
8 
CHƢƠNG II: VI ĐIỀU KHIỂN ATMEGA 16 
2.1 Giới thiệu chung 
 ATmega16 l vi điều khiển 8 bit dựa trên kiến trúc RISC. Với khả năng thực hiện mỗi lệnh 
trong vòng một chu kỳ xung clock, ATmega16 có thể đạt đƣợc tốc độ 1MIPS trên mỗi MHz (1 
triệu lệnh/s/MHz). 
Dƣới đây l sơ đồ khối của ATmega16 
9 
Hình 2.2.1: Sơ đồ cấu trúc ATmega16 
10 
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 nội và ngắt ngoại, USART, giao tiếp nối tiếp 2 dây, 8 kênh 
ADC 10 bit,.... 
ATmega 16 hỗ trợ đầy đủ các chƣơng trình v công cụ phát triển hệ thống nhƣ: trình dịch C, 
macro assemblers, chƣơng trình mô phỏng/sửa lỗi, kit thử nghiêm,... 
2.2 Cấu trúc nhân AVR 
CPU của AVR có chức năng bảo đảm sự hoạt động chính xác của các chƣơng trình Do đó 
nó phải có khả năng truy cập bộ nhớ, thực hiện các quá trình tính toán, điều khiển các thiết bị 
ngoại vi và quản lý ngắt. 
Hình 2.2.2: Cấu trúc tổng quát 
AVR sử dụng cấu trúc Harvard, tách riêng bộ nhớ v các bus cho chƣơng trình v dữ liệu. 
Các lệnh đƣợc thực hiện chỉ trong một chu kỳ xung clock. Bộ nhớ chƣơng trình đƣợc lƣu trong 
bộ nhớ Flash. 
11 
2.2.1 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 đƣợc chia làm 3 loại: đại số, logic và theo bit. 
2.2.2 Thanh ghi trạng thái 
Đây l thanh ghi trạng thái có 8 bit lƣu trữ trạng thái của ALU sau các phép tính số học và 
logic 
Hình 2.2.3 : Thanh ghi trạng thái SREG 
C: Carry Flag ;cờ nhớ (Nếu phép toán có nhớ cờ sẽ đƣợc thiết lập) 
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ả của phép toán là âm) 
V: Two’s complement overflow indicator (Cờ n y đƣợc thiết lập khi tràn số bù 2) 
V, For signed tests (S=N XOR V)S: N 
H: Half Carry Flag 
T: Transfer bit used by BLD and BST instructions(Đƣợc sử dụng l m nơi chung gian trong 
các lệnh BLD,BST). 
I: Global Interrupt Enable/Disable Flag (Đây l bit cho phép to n cục ngắt. 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ụ.) 
2.2.3 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). Có 
nhiệm vụ trỏ tới vùng nhớ trong RAM chứa ngăn xếp. 
12 
Hình 2.2.4 :Thanh ghi con trỏ ngăn xếp 
2.2.4 Quản lý ngắt 
Ngắt là một cơ chế cho phép thiết bị ngoại vi báo cho CPU biết về tình trạng sẵn xàng cho 
đổi dữ liệu của mình.Ví dụ:Khi bộ truyền nhận UART nhận đƣợc một byte nó sẽ báo cho CPU 
biết thông qua cờ RXC,hợc khi nó đã truyền đƣợc một byte thì cờ TX đƣợc thiết lập 
Khi có tín hiệu báo ngắt CPU sẽ tạm dừng công việc đạng thực hiện lại v lƣu vị trí đang 
thực hiên chƣơng trình (con trỏ PC) v o ngăn xếp sau đó trỏ tới vector phuc vụ ngắt và thức hiện 
chƣơng trình phục vụ ngắt đó chơ tới khi gặp lệnh RETI (return from interrup) thì CPU lại lấy 
PC từ ngăn xếp ra và tiếp tục thực hiện chƣơng trình m trƣớc khi có ngăt nó đang thực hiện. 
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 theo mức ƣu tiên Trong khi đang thực hiện ngắt mà xuất hiện ngắt 
mới thì sẽ xảy ra hai trƣờng hợp Trƣờng hớp ngắt này có mức ƣu tiên cao hơn thì nó sẽ đƣợc 
phục vụ. Trƣờng hợp nó 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 nhập vào SRAM theo kiểu ngăn xếp 
thì ta dùng con trỏ SP. Con trỏ này là một thanh ghi 16 bit v đƣợc truy nhập nhƣ hai thanh ghi 8 
bit chung có địa chỉ :SPL :0x3D/0x5D(IO/SRAM) và SPH:0x3E/0x5E. 
Khi chƣơng trình phục vu 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 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ại khi thực hiện lệnh POP thì con trỏ ngăn xếp sẽ tăng 1 v khi thực hiện lệ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ếp trƣớc khi một chƣơng trình con đƣợc gọi hoặc các ngắt đƣợc cho phé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. 
13 
2.3 Cấu trúc bộ nhớ 
AVR có 2 không gian bộ nhớ chính là bộ nhớ dữ liệu vào bộ nhớ chƣơng trình Ngo i ra 
ATmega16 còn có thêm bộ nhớ EEPROM để lƣu trữ dữ liệu 
2.3.1 Bộ nhớ chƣơng trình (Bộ nhớ Flash) 
Bộ nhớ Flash 16KB của ATmega16 dùng để lƣu trữ chƣơng trình Do các lệnh của AVR có 
độ dài 16 hoặc 32 bit nên bộ nhớ Flash đƣợc sắp xếp theo kiểu 8KX16. Bộ nhớ Flash đƣợc chia 
làm 2 phần, phần d nh cho chƣơng trình boot v phần d nh cho chƣơng trình ứng dụng. 
Hình 2.2.5: Bản đồ bộ nhớ chương trình 
2.3.2 Bộ nhớ dữ liệu SRAM 
1120 ô nhớ của bộ nhớ dữ liệu định địa chỉ cho file thanh ghi, bộ nhớ I/O và bộ nhớ dữ liệu 
SRAM nội Trong đó 96 ô nhớ đầu tiên định địa chỉ cho file thanh ghi và bộ nhớ I/O, và 1024 ô 
nhớ tiếp theo định địa chỉ cho bộ nhớ SRAM nội. 
14 
Hình 2.2.6: Bản đồ bộ nhớ dữ liệu SRAM 
2.3.3 Bộ nhớ dữ liệu EEPROM 
ATmega16 chứa bộ nhớ dữ liệu EEPROM dung lƣợng 512 byte, v đƣợc sắp xếp theo từng 
byte, cho phép các thao tác đọc/ghi từng byte một. 
2.4 Các cổng vào ra (I/O) 
Vi điều khiểnATmega16có 32 đƣờng vào ra chia làm bốn nhóm 8 bit một Các đƣờng vào ra 
này có rất nhiều tính năng v có thể lập trình đƣợc. Ở đây ta sẽ xét chúng là các cổng vào ra số. 
Nếu xét trên mặt này thì các cổng vào ra này là cổng vào ra hai chiều có thể định hƣớng theo 
từng bit. Và chứa cả điện trở pull-up (có thể lập trình đƣợc). Mặc dù mỗi port có các đặc điểm 
riêng nhƣng khi xét chúng l các cổng vào ra số thì dƣờng nhƣ điều khiển vào ra dữ liệu thì hoàn 
to n nhƣ nhau Chúng ta có thanh ghi v một địa chỉ cổng đối với mỗi cổng, đó l : thanh ghi dữ 
liệu cổng (PORTA, PORTB, PORTC, PORTD), thanh ghi dữ liệu điều khiển cổng (DDRA, 
DDRB, DDRC, DDRD) và cuối cùng l địa chỉ chân vào của cổng (PINA, PINB, PINC, PIND). 
2.4.1 Thanh ghi DDRx 
Đây l thanh ghi 8 bit (ta có thể đọc và ghi các bit ở thanh ghi này) và có tác dụng điều khiển 
hƣớng cổng PORTx (tức là cổng ra hay cổng vào). Nếu nhƣ một bit trong thanh ghi n y đƣợc set 
15 
thì bit tƣơng ứng đó trên PORTx đƣợc định nghĩa nhƣ một cổng ra Ngƣợc lại nếu nhƣ bit đó 
không đƣợc set thì bit tƣơng ứng trên PORTx đƣợc định nghĩa l cổng vào. 
2.4.2 Thanh ghi PORTx 
Đây cũng l thanh ghi 8 bit (các bit có thể đọc v ghi đƣợc) nó là thanh ghi dữ liệu của cổng 
Px v trong trƣờng hợp nếu cổng đƣợc định nghĩa l cổng ra thì khi ta ghi một bit lên thanh ghi 
n y thì chân tƣơng ứng trên port đó cũng có cùng mức logic Trong trƣờng hợp mà cổng đƣợc 
định nghĩa l cổng vào thì thanh ghi này lại mang dữ liệu điều khiển cổng. Cụ thể nếu bit n o đó 
của thanh ghi n y đƣợc set (đƣa lên mức 1) thì điện trở kéo lên (pull-up) của chân tƣơng ứng của 
port đó sẽ đƣợc kích hoạt. Ngƣợc lại nó sẽ ở trạng thái hi-Z. Thanh ghi này sau khi khởi động Vi 
điều khiểnsẽ có giá trị là 0x00. 
2.4.3 Thanh ghi PINx 
Đây l thanh ghi 8 bit chứa dữ liệu vào của PORTx (trong trƣờng hợp PORTx đƣợc thiết lập 
là cổng vào) và nó chỉ có thể đọc mà không thể ghi v o đƣợc. 
Tóm lại: 
1 Để đọc dữ liệu từ ngoài thì ta phải thực hiện các bƣớc sau: 
 Đƣa dữ liệu ra thanh ghi điều khiển DDRxn để đặt cho PORTx (hoặc bit n trong port) đó 
l đầu vào (xóa thanh ghi DDRx hoặc bit). 
 Sau đó kích hoạt điện trở pull-up bằng cách set thanh ghi PORTx ( bit). 
 Cuối cùng đọc dữ liệu từ địa chỉ PINxn (trong đó x: l cổng và n là bit). 
Để đƣa dữ liệu từ vi điều khiển ra các cổng cũng có các bƣớc ho n to n tƣơng tự Ban đầu ta 
cũng phải định nghĩa đó l cổng ra bằng cách set bit tƣơng ứng của cổng đó v sau đó l ghi 
dữ liệu ra bit tƣơng ứng của thanh ghi PORTx. 
2.5 Bộ định thời 
Bộ định thời (timer/counter0) là một module định thời/đếm 8 bit, có các đặc điểm sau: 
 Bộ đếm một kênh 
 Xóa bộ định thời khi trong mode so sánh (tự động nạp) 
 PWM 
 Tạo tần số 
 Bộ đếm sự kiện ngoài 
 Bộ chia tần 10 bit 
 Nguồn ngắt tràn bộ đếm và so sánh 
16 
Sơ đồ cấu trúc của bộ định thời: 
Hình 2.2.7: Sơ đồ cấu trúc bộ định thời 
2.5.1 Các thanh ghi 
TCNT0 và OCR0 là các thanh ghi 8 bit. Các tín hiệu yêu cầu ngắt đều nằm trong thanh ghi 
TIFR. Các ngắt có thể đƣợc che bởi thanh ghi TIMSK. 
Bộ định thời có thể sử dụng xung clock nội thông qua bộ chia hoặc xung clock ngoài trên 
chân T0. Khối chọn xung clock điều khiển việc bộ định thời bộ đếm sẽ dùng nguồn xung n o để 
tăng giá trị của nó. Ngõ ra của khối chọn xung clock đƣợc xem là xung clock của bộ định thời 
(clkT0). 
Thanh ghi OCR0 luôn đƣợc so sánh với giá trị của bộ định thời/bộ đếm. Kết quả so sánh có 
thể đƣợc sử dụng để tạo ra PWM hoặc biến đổi tần số ngõ ra tại chân OC0. 
2.5.2 Đơn vị đếm 
Phần chính của bộ định thời 8 bit là một đơn vị đếm song hƣớng có thể lập trình đƣợc. Cấu 
trúc của nó nhƣ hình dƣới đây: 
17 
Hình 2.2.8: Đơn vị đếm 
Count: tăng hay giảm TCNT0 1 
Direction: lựa chọn giữa đếm lên v đếm xuống 
Clear: xóa thanh ghi TCNT0 
ClkT0: xung clock của bộ định thời 
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 (0) 
2.5.3 Đơn vị so sánh ngõ ra 
Hình 2.2.9: Sơ đồ đơn vị so sánh ngõ ra 
18 
Bộ so sánh 8 bit liên tục so sánh giá trị TCNT0 với giá trị trong thanh ghi so sánh ngõ ra 
(OCR0). Khi giá trị TCNT0 bằng với OCR0, bộ so sánh sẽ tạo một báo hiệu. Báo hiệu này sẽ đặt 
giá trị cờ so sánh ngõ ra (OCF0) lên 1 vào chu kỳ xung clock tiếp theo. Nếu đƣợc kích hoạt 
(OCIE0=1), cờ OCF0 sẽ tạo ra một ngắt so sánh ngõ ra và sẽ tự động đƣợc xóa khi ngắt đƣợc 
thực thi. Cờ OCF0 cũng có thể đƣợc xóa bằng phần mềm. 
2.5.4 Mô tả các thanh ghi 
 Thanh ghi điều khiển bộ định thời/bộ đếm TCCR0 
Hình 2.2.10: Thanh ghi điều khiển bộ định thời 
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 bit 
này lên 1, một báo hiệu so sánh bắt buộc xuất hiện tại đơn vị tạo dạng sóng. 
 Bit 6, 3-WGM01:0: Chế độ tạo dạng sóng 
Các bit n y điều khiển đếm thứ tự của bộ đếm, nguồn cho giá trị lớn nhất của bộ đếm (TOP) 
và kiểu tạo dạng sóng sẽ đƣợc sử dụng. 
Bit 5:4-COM01:0: Chế độ báo hiệu so sánh ngõ ra 
Các bit n y điều khiển hoạt động của chân OC0. Nếu một hoặc cả hai bit COM01:0 đƣợc đặt 
lên 1, ngõ ra OC0 sẽ hoạt động. 
Bit 2:0: CS02:0: 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 
19 
 Thanh ghi bộ định thời/bộ đếm 
Hình 2.2.11: Thanh ghi bộ định thời 
Thanh ghi bộ định thời/bộ đếm cho phép truy cập trực tiếp (cả đọc và ghi) vào bộ đếm 8 bit. 
 Thanh ghi so sánh ngõ ra-OCR0 
Hình 2.2.12: Thanh ghi so sánh ngõ ra 
 Thanh ghi này 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 
 Thanh ghi mặt nạ ngắt 
Hình 2.2.13: Thanh ghi mặt nạ ngắt TIMSK 
 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 
 Thanh ghi cờ ngắt bộ định thời 
Hình 2.2.14: 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 
Bit TOV0 đƣợc đặt lên 1 khi bộ đếm bị tr n v đƣợc xóa bởi phần cứng khi vector ngắt 
tƣơng ứng đƣợc thực hiện Bit n y cũng có thể đƣợc xóa bằng phần mềm. 
20 
2.6 USART 
Bộ truyền nhận nối tiếp đồng bộ và bất đồng bộ là một thiết truyền thông nối tiếp có các chức 
năng chính nhƣ sau: 
 Hoạt động song công (các thanh ghi truyền và nhận nối tiếp độc lập với nhau). 
 Hoạt động đồng bộ hoặc bất đồng bộ 
 Bộ tạo tốc độ baud có độ chính xác cao 
 Hỗ trợ khung truyền nối tiếp với 5, 6, 7, 8, hoặc 9 bit dữ liệu và 1 hoặc 2 bit stop 
 Kiểm tra chẵn lẻ 
 Phát hiện tràn dữ liệu 
 Phát hiện lỗi khung 
 Lọc nhiễu, bao gồm phát hiện bit start lỗi và bộ lọc thông thấp số 
 Ngắt khi kết thúc truyền, thanh ghi truyền hết dữ liệu và kết thúc nhận 
 Chế độ truyền thông đa vi xử lý 
 Chế độ truyền đồng bộ tốc độ cao 
Sơ đồ khối của bộ USART nhƣ sau: 
Hình 2.15:. Sơ đồ khối bộ USART 
USART bao gồm 3 phần chính: bộ tạo xung clock, bộ truyền và bộ nhận Các thanh ghi điều 
khiển đƣợc sử dụng chung giữa các phần này. 
21 
2.6.1 Tạo xung clock 
Bộ tạo xung clock tạo ra xung đồng hồ căn bản cho bộ truyền và bộ nhận. USART hỗ trợ 4 
chế độ hoạt động xung clock: bất đồng bộ, bất đồng bộ tốc độ cao, truyền đồng bộ master và 
truyền đồng bộ slave Sơ đồ khối của bộ tạo xung clock nhƣ sau: 
Hình 2.16: Đơn vị tạo xung clock 
. 
TXCLK: xung đồng hộ bộ truyền 
RXCLK: xung đồng hồ bộ nhận 
XCKI: tín hiệu vào từ chân XCK, sử dụng cho hoạt động truyền đồng bộ master 
XCKO: tín hiệu xung clock ngõ ra tới chân XCK, sử dụng cho hoạt động truyền đồng bộ 
slave 
FOSC: tần số từ chân XTAL 
2.6.2 Định dạng khung truyền 
USART chấp nhận tất cả 30 tổ hợp của các định dạng khung truyền sau đây: 
 1 bit start 
 5, 6, 7, 8, hoặc 9 bit dữ liệu 
 Có hoặc không có bit chẵn lẻ 
 1 hoặc 2 bit stop 
 Một khung truyền bắt đầu với một bit start, theo sau đó l bit có trọng số thấp nhất (LSB) của dữ 
liệu (có thể lên tới 9 bit), kết thúc bằng bit có trọng số lớn nhất (MSB) và bit stop. 
22 
Hình 2.17: Định dạng khung truyền 
St: bit start (mức thấp) 
(n): bit dữ liệu (0 đến 8) 
P: bit chẵn lẻ 
Sp: bit stop (mức cao) 
IDLE: không có dữ liệu truyền (mức cao trong suốt thời gian idle) 
2.6.3 Khởi tạo USART 
Quá trình khởi tạo USART bao gồm việc thiết lập tốc độ baud, thiết lập định dạng khung và 
kích hoạt bộ truyền và bộ nhận. 
2.6.4 Truyền thông dữ liệu-bộ truyền USART 
Bộ truyền USART đƣợc kích hoạt bằng cách thiết lập bit TXEN trong thanh ghi UCSRB. 
Khi bộ truyền đƣợc kích hoạt, chân TxD hoạt động nhƣ ngõ ra của bộ truyền nối tiếp. Tốc độ 
baud, chế độ hoạt động v định dạng khung truyền phải đƣợc thiết lập trƣớc khi thực hiện truyền 
dữ liệu. 
 Truyền khung 5 đến 8 bit dữ liệu 
Việc truyền dữ liệu đƣợc thiết lập bằng cách nạp dữ liệu truyền vào bộ đệm truyền. Dữ liệu 
trong bộ đệm sẽ đƣợc đƣa v o thanh ghi dịch khi thanh ghi dịch đã sẵn sàng gửi một khung mới. 
 Truyền khung 9 bit dữ liệu 
Nếu sử dụng 9 bit dữ liệu, bit thứ 9 phải đƣợc ghi vào bit TXB8 trong thanh ghi UCSRB trƣớc 
khi byte còn lại đƣợc ghi vào UDR. 
2.6.5 Nhận dữ liệu-bộ nhận USART 
Bộ nhận USART đƣợc kích hoạt bằng cách đặt bit RXEN trong thanh ghi UCRSB lên 1. Khi 
bộ nhận đƣợc kích hoạt, chân RxD hoạt động nhƣ ngõ v o của bộ nhận nối tiếp. Tốc độ baud, 
chế độ hoạt động v định dạng khung truyền phải đƣợc thiết lập trƣớc khi thực hiện truyền dữ 
liệu. 
 Nhận khung với 5 đến 8 bit dữ liệu 
Bộ nhận bắt đầu nhận dữ liệu khi nó phát hiện một bit start hợp lệ. Mỗi bit theo sau bit start 
sẽ đƣợc lấy mẫu tại tốc độ baud hoặc tốc độ đồng hồ XCK, v đƣợc dịch vào trong thanh ghi 
23 
dịch của bộ nhận cho đến khi phát hiện một bit stop đầu tiên. Nội dung của thanh ghi dịch sau đó 
đƣợc đƣa v o bộ đệm. Bộ đệm của bộ nhận có thể đƣợc đọc bằng cách đọc UDR. 
 Nhận khung với 9 bit dữ liệu 
Nếu nhận dữ liệu 9 bit, bit thứ 9 phải đƣợc đọc từ bit RXB8 trong thanh ghi UCSRB trƣớc 
khi đọc các bit thấp trong UDR 
2.7 Bộ biến đổi A/D 
Vi điều khiểnATmega16 có một bộ biến đổi ADC tích hợp trong chip với các đặc điểm: 
 Độ phân giải 10 bit 
 Sai số tuyến tính: 0.5LSB 
 Độ chính xác +/-2LSB 
 Thời gian chuyển đổi:65-260μs 
 8 Kênh đầu vào có thể đƣợc lựa chọn 
 Có hai chế độ chuyển đổi free running và single conversion 
 Có nguồn báo ngắt khi hoàn thành chuyển đổi 
 Loại bỏ nhiễu trong chế độ ngủ 
24 
Hình 2.18:. Sơ đồ bộ biến đổi A/D 
Tám đầu vào của ADC là tám chân của PORTA v chúng đƣợc chọn thông qua một MUX. 
Để điều khiển hoạt động vào ra dữ liệu của ADC và CPU chúng ta có 3 thanh ghi: ADMUX 
l thanh ghi điều khiển lựa chọn kênh đầu vào cho ADC, ADCSRA l thanh ghi điều khiển và 
thanh ghi trạng thái của ADC, ADCH và ADCL là 2 thanh ghi dữ liệu. 
2.7.1 ADMUX: Multiplexer select register 
Đây l thanh ghi điều khiển 8 bit. 
Hình 2.19: Thanh ghi ADMUX 
Với 4 bit đƣợc định nghĩa l MUX3, MUX2, MUX1,v MUX0, ứng với các tổ hợp logic ta 
có thể chọn kênh đầu vào. Cụ thể: 
Các bit REFS1 v REFS0 dùng để chọn giá trị điện áp tham khảo cho ADC, nhƣ sau: 
Chú ý: Nếu nhƣ ta thay đổi kênh trong thời điểm m ADC đang chuyển đổi thì khi quá trình 
chuyển đổi đã ho n thành thì kênh vào mới đƣợc thay đổi. 
2.7.2 ADCSR-ADC control and status register 
25 
Đây l thanh ghi điều khiển v lƣu trạng thái của ADC. 
Hình 2.30: Thanh ghi điều khiển và trạng thái ADC 
 Bit 7-ADEN:ADC enable 
Đây l bit điều khiển hoạt động của ADC.Khi bit n y đƣợc set 1 thì ADC có thể hoạt động và 
ngƣợc lại.Nếu nhƣ ta ngừng hoạt động của ADC trong khi nó đang chuyển đổi thì nó sẽ kết thúc 
quá trình chuyển đổi.Mặc dù chƣa chuyển đổi xong. 
 Bit 6-ADSC: ADC start conversion 
Trong chế độ chuyển đổi đơn thì bit này phải đƣợc set lên 1 để bắt đầu chuyển đổi.Trong chế 
độ chuyển đổi tự do thì bit này cần đƣợc set lên 1 để bắt đầu lần chuyển đổi đầu tiên.Bit này 
đƣợc giữ sốt trong quá trình chuyển đổi v đƣợc xóa khi mà chuyển đổi xong. 
 Bit 5-ADATE :ADC Auto Trigger enable 
Khi bit n y đƣợc set thì ADC sẽ bắt đầu chuyển đổi mỗi khi có một nguồn kích hoạt xuất 
hiện. Việc lựa chọn nguồn kích hoạt đƣợc thực hiện bằng cách set các bit trong thanh ghi SFIOR. 
 Bit 4-ADIF: ADC interrupt Flag 
Bit n y đƣợc set lên 1 bởi phần cứng khi quá trình chuyển đổi đã ho n th nh v thanh ghi dữ 
liệu đã đƣợc cập nhật Bit n y đƣợc xóa bằng phần cứng nếu nhƣ ngắt n y đƣợc phép v đƣợc 
phục vụ. Hoặc nó có thể đƣợc xóa bằng cách ghi giá trị logic “0”v o cờ này. Cụ thể khi ngắt bị 
cấm ta có thể sử dụng các lệnh sbi v cbi để tác dụng lên bit này 
 Bit 3-ADIE:ACD interrupt Enable 
Nếu bit này set 1 và ngắt toàn cục đƣợc cho phép thì ngắt n y đƣợc phép phục vụ (khi 
chuyển đổi xong dữ liệu) và nếu bị xóa thì ngƣợc lại. 
 Bit 2.1.0-ADPS2ADPS0: Bit lựa chọn xung nhịp(Tốc độ) 
Nguồn xung đƣợc lấy từ nguồn xung của Vi điều khiển(XTAL) v đƣợc chia tần thông qua 
bộ chia tần. 
Các bit ADPS có nhiệm vụ chọn số chia cho bộ chia tần theo bảng sau: 
26 
2.7.3 Thanh ghi dữ liệu ACDH và ADC 
Thanh ghi này chứa dữ liệu chuyển đổi từ tƣơng tự sang số, đƣợc sắp xếp nhƣ hình dƣới đây 
Hình 2.31: Thanh ghi dữ liệu ADC 
2.7.4 Nguyên tắc hoạt động và lập trình điều khiển 
ADC có nhiệm vụ chuyển đổi tín hiệu điện áp tƣơng tự thành tín hiệu số có độ phân giải 10 
bit.Với giá trị nhỏ nhất của điện áp đặt ở chân AGND và giá trị cực đại của điện áp tƣơng tự 
đƣợc mắc v o chân AREF Tám kênh tƣơng tự đầu v o đƣợc chọn lựa thông qua ADMUX và 
ADMUX n y đƣợc điều khiển bởi thanh ghi ADMUX. 
27 
ADC này có thể hoạt động đƣợc ở hai chế độ Đó là chuyển đổi đơn: chỉ chuyển đổi một lần 
khi có lệnh chuyển đổi và chế độ tự chuyển đổi (Free running mode) đây l chế độ mà ADC tự 
động chuyển đổi khi đƣợc hoạt động và công việc chuyển đổi có tính tuần hoàn (chỉ cần khởi 
động một lần). 
ADC đƣợc phép hoạt động nhờ thiết lập bit ADEN. Quá trình chuyển đổi đƣợc bắt đầu bằng 
việc ghi vào bit ADSC mức logic 1 và trong suốt quá trình chuyển đổi bit n y luôn đƣợc giữ ở 
mức cao. Khi quá trình chuyển đổi ho n th nh thì bit n y đƣợc xóa bằng phần cứng và cờ AIDF 
đƣợc bật lên. 
Dữ liệu sau khi chuyển đổi đƣợc đƣa ra thanh ghi dữ liệu ADCL v ADCH, nhƣng chú ý khi 
đọc dữ liệu từ hai thanh ghi n y thì đọc ADCL trƣớc rồi mới đọc ADCH. Nếu đọc ADCH trƣớc 
thì dữ liệu cập nhật có thể ghi đè lên ADCL (Vi điều khiển nghĩ rằng đã đọc xong dữ liệu). 
Để điều khiển vào ra dữ liệu với ADC, các bƣớc thực hiện nhƣ sau: 
Bƣớc 1: Định nghĩa các cổng vào cho tín hiệu tƣơng tự 
Xóa bit tƣơng ứng với chân đó trong thanh ghi DDRA Sau đó loại bỏ điện trở treo bằng cách 
xóa bit tƣơng ứng ở thanh ghi PORTA. 
Bƣớc 2: Chọn kênh tƣơng tự vào (chọn chân vào cho ADC) thông qua thanh ghi ADMUX (có 
thể thay đổi trong quá trình hoạt động). 
Bƣớc 3: Thiết lập các thông số cho ADC 
Tốc độ chuyển đổi thông qua xung nhip chuyển đổi. 
Chế độ chuyển đổi : đơn hoặc tự động. 
Sử dụng ngắt hoặc không. 
Bƣớc 4: Bắt đầu chuyển đổi v đọc dữ liệu. 
28 
CHƢƠNG III: GIAO TIẾP VI ĐIỀU KHIỂN VỚI MÁY TÍNH 
3.1 Chuẩn RS232 
Chuẩn RS-232 từ năm 1969 đƣợc chấp nhận chuyên dùng cho truyền số liệu v các đƣờng kiểm 
tra giữa terminal và moderm, tốc độ cực đại là 20Kbps, với khoảng cách tối đa không quá 15m 
Chuẩn RS-232 quy định mức logic1 ứng với điện áp từ -3V đến -15V(mark), mức logic 0 ứng 
với điện áp từ 3V đến 15V(space) và có khả năng cung cấp dòng từ 10 mA đến 20 mA. Ngoài ra, 
tất cả các ngõ ra đều có đặc tính chống chập mạch. 
Định dạng của khung truyền dữ liệu theo chuẩn RS-232 nhƣ sau: 
Hình3.1: khung truyền dữ liệu RS232 
 Khi không truyền dữ liệu, đƣờng truyền sẽ ở trạng thái mark (điện áp -10V). Khi bắt 
đầu truyền, DTE (Data Terminal Equipment) sẽ đƣa ra xung Start (space: 10V) v sau đó lần 
lƣợt truyền từ D0 đến D7và Parity, cuối cùng là xung Stop (mark: -10V) để khôi phục trạng 
thái đƣờng truyền. Dạng tín hiệu truyền mô tả nhƣ sau (truyền ký tự A): 
Hình 3.2: Truyền kí tự A theo chuẩn RS232 
 Star D0 D1 D2 D3 D4 D5 D6 D7 P Stop 
29 
Các đặc tính kỹ thuật của chuẩn RS-232 nhƣ sau: 
Chiều dài cable cực đại 15m 
Tốc độ dữ liệu cực đại 20 Kbps 
Điện áp ngõ ra cực đại ±25V 
Điện áp ngõ ra có tải ±5V đến ±15V 
Trở kháng tải 3K đến 7K 
Điện áp ngõ vào ±15V 
Độ nhạy ngõ vào ±3V 
Trở kháng ngõ ra 3K đến 7K 
Các tốc độ truyền dữ liệu thông dụng trong cổng nối tiếp là: 1200 bps, 4800 bps, 9600 bps và 
19200 bps. 
3.2 Cổng COM 
Cổng COM còn gọi là cổng nối tiếp theo chuẩn RS-232.Cổng COM đƣợc sử dụng khá phổ biến 
dữ liệu ở cổng COM thuộc dữ liệu dạng nối tiếp. 
Cổng nối tiếp đƣợc sử dụng để truyền dữ liệu hai chiều giữa máy tính và ngoại vi, có các ƣu 
điểm sau: 
- Khoảng cách truyền xa hơn truyền song song. 
- Số dây kết nối ít. 
- Có thể truyền không dây dùng hồng ngoại. 
- Có thể ghép nối với vi điều khiển hay PLC (Programmable Logic Device). 
- Cho phép nối mạng. 
- Có thể tháo lắp thiết bị trong lúc máy tính đang l m việc. 
- Có thể cung cấp nguồn cho các mạch điện đơn giản 
 Các thiết bị ghép nối chia thành 2 loại: DTE (Data Terminal Equipment) và DCE (Data 
Communication Equipment). DCE là các thiết bị trung gian nhƣ MODEM còn DTE l các thiết 
bị tiếp nhận hay truyền dữ liệu nhƣ máy tính, PLC, vi điều khiển,  Việc trao đổi tín hiệu thông 
thƣờng qua 2 chân RxD (nhận) và TxD (truyền). Các tín hiệu còn lại có chức năng hỗ trợ để 
thiết lập v điều khiển quá trình truyền, đƣợc gọi là các tín hiệu bắt tay (handshake) Ƣu điểm 
của quá trình truyền dùng tín hiệu bắt tay là có thể kiểm soát đƣờngtruyền.Tín hiệu truyền theo 
chuẩn RS-232 của EIA (Electronics Industry Associations). 
30 
 Các phƣơng thức nối giữa DTE và DCE: 
- Đơn công (simplex connection): dữ liệu chỉ đƣợc truyền theo 1 hƣớng. 
- Bán song công ( half-duplex): dữ liệu truyền theo 2 hƣớng, nhƣng mỗi thời điểm 
- chỉ đƣợc truyền theo 1 hƣớng. 
- Song công (full-duplex): số liệu đƣợc truyền đồng thời theo 2 hƣớng. 
- Cổng COM có hai dạng: đầu nối DB25 (25 chân) v đầu nối DB9 (9 chân). 
Hình 3.3: đầu nối DB25 và DB9 
Hình 3.4: cổng DB9 trên máy tính 
Đầu nối DB9 mô tả nhƣ bảng sau : 
D9 Tín hiệu Hƣớng truyền Mô tả 
1 DCD DCE → DTE Data carier detect: DCE phát hiện 
sóng mang 
2 RxD DCE → DTE Received data: dữ liệu nhận 
3 TxD DTE →DCE Transmitted data: dữ liệu truyền 
4 DTR DTE →DCE Data terminal ready: DTE sẵn sàng 
làm việc 
5 GND - Ground: nối đất (0V) 
6 DSR DCE → DTE Data set ready: DCE sẵn sàng làm 
việc 
7 RTS DTE →DCE Request to send: DTE yêu cầu 
truyền dữ liệu 
8 CTS DCE →DTE Clear to send: DCE sẵn sàng nhận 
dữ liệu 
9 RI RI DCE →DTE Ring indicator: báo chuông 
31 
3.3 Truyền thông giữa hai nút 
- Các sơ đồ khi kết nối dùng cổng nối tiếp: 
Hình 3.5: kết nối đơn giản trong truyền thông nối tiếp 
- Khi thực hiện kết nối nhƣ trên, quá trình truyền phải bảo đảm tốc độ ở đầu phát và thu 
giống nhau. Khi có dữ liệu đến DTE, dữ liệu này sẽ đƣợc đƣa v o bộ đệm và tạo ngắt. 
Ngoài ra, khi thực hiện kết nối giữa hai DTE, ta còn dùng sơ đồ sau 
Hình 3.6 :Kết nối trong truyền thông nối tiếp dùng tín hiệu bắt tay 
- Khi DTE1 cần truyền dữ liệu thì cho DTR tích cực , tác động lên DSR của DTE2 cho biết 
sẵn sàng nhận dữ liệu và cho biết đã nhận đƣợc sóng mang của MODEM (ảo) Sau đó, 
DTE1 tích cực chân RTS để tác động đến chân CTS của DTE2 cho biết DTE1 có thể 
nhận dữ liệu. Khi thực hiện kết nối giữa DTE và DCE, do tốc độ truyền khác nhau nên 
phải thực hiện điều khiển lƣu lƣợng. Quá trình điều khiển này có thể thực hiện bằng phần 
mềm hay phần cứng Quá trình điều khiển bằng phần mềm thực hiện bằng hai ký tự Xon 
và Xoff. Ký tự Xon đƣợc DCE gởi đi khi rảnh (có thể nhận dữ liệu). Nếu DCE bận thì sẽ 
gởi ký tự Xoff Quá trình điều khiển bằng phần cứng dùng hai chân RTS và CTS. Nếu 
32 
DTE muốn truyền dữ liệu thì sẽ gởi RTS để yêu cầu truyền, DCE nếu có khả năng nhận 
dữ liệu (đang rảnh) thì gởi lại CTS. 
33 
CHƢƠNG IV: THIẾT KẾ PH N CỨNG CHO ĐỀ TÀI 
4.1 Sơ đồ thiết kế tổng quát 
Hình 4.1: Sơ đồ thiết kế 
Khối xử lý trung tâm 
Khối xử lý trung tâm sử dụng chip vi điều khiển ATmega16 Chip đƣợc kết nối tới các 
khối khác qua các mạch cơ bản và các mạch thiết kế phù hợp ứng dụng điều khiển 
Khối cảm biến 
34 
Khối cảm biến đƣa tín hiệu cảm biến về điện áp,dòng điện,nhiệt độ tới khối xử lý trung 
tâm. Tín hiệu đƣa ra từ khối này là tín hiệu tƣơng tự, đến VDK nó đƣợc bộ chuyển đổi ADC tích 
hợp sẳn trong Atmega16 chuyển sang tín hiệu số. 
Khối giao tiếp máy tính 
Giao tiếp máy tính qua chuẩn RS232 sử dụng IC MAX232 Chân T1IN đƣợc nối tới chân 
TxD trên chip AVR v chân R1OUT đƣợc nối tới chân RxD của chíp AVR. Các chân này làm 
chức năng truyền/nhận dữ liệu. 
Khối phím điều khiển 
Thiết lập, thay đổi giá trị về điện áp,dòng điện và tốc độ mong muốn 
Màn hình hiển thị LCD 
Dùng LCD có 2 dòng và 16 cột để hiển thị thông tin tốc độ hiện tại và tốc độ đặt 
Khối nguồn 
Có nhiệm vụ cung cấp nguồn 5V cho mạch hoạt động 
4.2 Một số linh kiện sử dụng trong mạch 
4.2.1 Cảm biến nhiệt độ Lm35 
 IC đo nhiệt độ là một mạch tích hợp nhận tín hiệu nhiệt độ chuyển thành tín hiệu điện 
dƣới dạng dòng điện hay điện áp. Dựa v o đặc tính rất nhạy của các bán dẫn với nhiệt độ tạo ra. 
Đặc điểm kỷ thuật của ic Lm35 
model Lm35-TO92 
Phạm vi đo -55 ~ 150 oC 
Tín hiệu ra 0.25V t= 25 oC 
Độ chính xác ≤ ±0 5(at 25oC, khi điện áp nguồn là 5VDC) 
Dòng điên Typical current: 0.38 mA ; max current <0.5mA 
Điện áp nguồn cấp 5-30VDC 
Giới hạn đo chính xác của 
nhiệt độ 
-40 ~ 110
o
C 
35 
Nhiệt độ hoạt động -60 ~ 180oC 
Thời gian đáp ứng <15µs 
Sai số <1% per year 
interface 3 pin 2.54mm between, SIP 
Kích thƣớc 12.2×8×4 mm 
Công thức chuyển đổi điện áp ra theo nhiệt độ 
Vout = 10.T
O
 mV 
4.2.2 IC max 232 
 Hoạt động từ nguồn 5V với những tụ nạp 1uF. 
 Hoạt động lên tới 120Kbps. 
 Mức ngõ vào ±30V. 
 Có 2 bộ Driver/Receiver. 
 Dòng cung cấp thấp 8mA. 
Hình 4.3: sơ đồ chân ic 
36 
Hình 4.4: sơ đồ yêu cầu kết nối 
4.2.3 Màn hình hiển thị( LCD 16x2) 
a) Cấu tạo 
Chức năng các chân của Module LCD 16x2; 
Chân 
số 
Ký hiệu Mức 
logic 
I/O Chức năng 
1 Vss - - Nguồn cung cấp(GND) 
2 Vdd - - Nguồn cung cấp(+5V) 
3 Vee - I Điện áp để đ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 DB1 0/1 I/O Data bus line 0(LSB) 
8 DB2 0/1 I/O Data bus line1 
37 
9 DB3 0/1 I/O Data bus line2 
10 DB4 0/1 I/O Data bus line3 
11 DB5 0/1 I/O Data bus line4 
12 DB6 0/1 I/O Data bus line5 
13 DB7 0/1 I/O Data bus line6 
14 DB8 0/1 I/O Data bus line7(MSB) 
15 Vcc - - Nguồn cung cấp 
16 GND - - mass 
 Nguyên tắc hiển thị ký tự trên LCD 
Một chƣơng trình hiển thị ký tự trên LCD sẽ đi theo bốn bƣớc sau: 
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ự. 
Chú ý: 
+Các bƣớc 3, 4 có thể 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 cần phải kiểm tra cờ bận trƣớc. 
Vì vậy, cần phải chủ động phân phối thời gian khi ra lệnh cho LCD( ví dụ sau khi xóa màn hình 
sau khoảng 2ms mới ra lệnh khác vì thời gian để LCD xóa màn hình là 1,64ms).+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. 
b) Mã lệnh của LCD HD4480 
Lệnh Mã lệnh Mô tả Thời 
gian 
thi 
hành 
R
S 
R/
W 
DB
0 
DB
1 
DB
2 
DB
3 
DB
4 
DB
5 
DB
6 
DB
7 
Xóa màn 
hình 
0 0 0 0 0 0 0 0 0 1 Xóa màn hình 
đƣa con trỏ về 
1.64
ms 
38 
vị trí đầu 
Đƣa con 
trỏ về vị 
trí đầu 
0 0 0 0 0 0 0 0 1 x Đƣa con trỏ về 
vị trí đầu 
1.64
ms 
Thiết lập 
chế độ 
0 0 0 0 0 0 0 1 I/D S Thiết lập hƣớng 
dịch chuyển con 
trỏ(I/D), dịch 
hiển thị(S) 
40us 
Bật tắt 
hiển thị 
0 0 0 0 0 0 1 D C B Bật tắt hiển thị, 
con trỏ; bật tắt 
chế độ nhấp 
nháy con trỏ 
40us 
Dịch con 
trỏ hiển 
thị 
0 0 0 0 0 1 S/C R/L * * Thiết lập chiều 
dịch chuyển của 
con trỏ và hiển 
thị 
40us 
Thiết lập 
chức 
năng 
0 0 0 0 1 DL N F * * Thiết lập độ dài 
của dữ liệu, số 
dòng và font 
chữ 
40us 
Thiết lập 
địa chỉ 
CGRAM 
0 0 0 1 CGRAM address Thiết lập địa chỉ 
CGRAM 
40us 
Thiết lập 
địa chỉ 
DDRAM 
0 0 1 DDRAM address Thiết lập địa chỉ 
DDRAM 
40us 
Đọc cờ 
báo bận 
v địa chỉ 
CGRAM/ 
DDRAM 
0 1 BF CGRAM/ DDRAM address Đọc cờ báo bận 
v địa chỉ của 
CGRAM hoặc 
DDRAM( tùy 
vào lệnh trƣớc 
đó) 
40us 
39 
Ghi 
CGRAM/ 
DDRAM 
1 0 Write data Ghi dữ liệu vào 
CGRAM hoặc 
DDRAM. 
40us 
Đọc 
CGRAM/ 
DDRAM 
1 1 Read data Đọc dữ liệu từ 
CGRAM hoặc 
DDRAM 
40us 
c) Các bit viết tắt trong mã lệnh. 
Tên bit Mô tả 
I/D 0=không dịch chuyển vị trí 
con trỏ 
1=dịch chuyển vị trí con trỏ 
S =0 không dịch chuyển hiển 
thị 
=1 dịch chuyển hiển thị 
D 0=tắt hiển thị =1 bật hiển thị 
C 0=tắt con trỏ =1 bật con trỏ 
B 0=con trỏ không nhấp nháy =1 con trỏ nhấp nháy 
S/C 0=di chuyển con trỏ =1 dịch chuyển hiển thị 
R/L 0= dịch trái =1 dịch phải 
DL 0=chế độ 4bit dữ liệu =1 chế độ 8bit dữ liệu 
N 0=1 dòng 1= 2 dòng 
F 0= font 5x7 1= font 5x10 
BF 0= không bận 1= đang bận 
40 
4.3 Tính toán thiết kế cho các khối 
hình 4.5 : sơ đồ nguyên lí mạch 
41 
4.3.1 Khối xử lý trung tâm 
VDK là chíp AVR ATmega16 : 
 Mạch tạo reset 
42 
Để đảm bảo tạo ra một reset thì xung reset phải d i hơn độ rộng xung tối thiểu 
trst =1,5 s. 
ATmega16 có Vrst = 0,1VCC 0,9VCC 
 trst =1,5 s 
 eVV
t
CCrst .
/
 
V
V
rst
CCt ln
5.9,0
5
ln
5,1
ln
st
V
V
rst
CC
  
 Mà RC 
  RC 1,424.10-5 
Chọn C = 100nF 
 R = 10K 
Mạch dao động 
Hình 4.6: Mạch tạo dao động 
43 
4.3.2 Khối phím điều khiển 
Hình4.7: Sơ đồ mạch phím nhấn 
Chức năng bàn phím: dùng để thiết lậpt độ ẩm khống chế 
 Nút thứ 1 là phím set thiết lập giá trị khi khởi động mạch. 
 Nút thứ 2 là phím up tăng giá trị đặt 
 Nút thứ 3 là phím dow giảm giá trị đặt 
 Nút thứ 4 là phím exit khi thiết lập giá trị xong thì nhấn phím n y để thoát bắt đầu đo v 
điều khiển. 
44 
4.3.3 Khối hiển thị 
Hình4.8 : màn hình LCD 16x2 
4.3.4 Khối mạch nguồn ổn áp 
Hình 4.9: Sơ đồ thiết kế khối nguồn ổn áp 
Khối ổn áp với nhiệm vụ tạo ra điện áp ổn định cung cấp cho mạch. Trong mạch sử dụng 
vi xử lý và cảm biến nhiệt độ và bộ chuyển đổi ADC do đó có yêu cầu rất cao về sự ổn định 
điện áp ra vậy nên mạch ổn áp thiết kế phải đạt chât lƣợng tốt về đổ ổn định củng nhƣ công 
suất đáp ứng. Mạch có sơ đồ thiết kế nhƣ hình trên 
 BR1 đi ốt cầu dùng để biến đổi dòng xoai chiều thành dòng điện một chiều. Ta sử 
dụng 4diot 1N4007 với tham số nhƣ sau: Umax=100V,Imax=2A. 
 IC ổn áp LM7805 đây l ic sử dụng rất thông dụng trong các mạch điện ổn áp 
nguồn với đặc tính cho điện áp ra tƣơng đối ổn định công suất đáp ứng tốt cho các 
mạch dùng vi điều khiển. (Lm7805. Uout=5V,Imax=1.5A). 
45 
 C1;C 4 có nhiệm vụ dùng để lọc nhiểu ở tần số cao do đó tụ n y thƣờng dùng loại 
không phân cực và có giá trị điện dung nhỏ. Ta chon tụ sứ có giá trị C= 0.1uf 
(104) 
 Tụ C2, C3 dùng để lọc nguồn cho dòng điện bớt nhấp nhô trƣớc khi đƣa v o IC ổn 
áp và làm giảm thời gian quá độ khi bật nguồn. 
 Diot led dùng để báo hiệu. 
 R1 điện trở hạn chế dòng qua Led và giá trị n y ta thƣờng chọn 330 Ohm, ơ đây 
ta chọn R1=1k bởi vì led này hoạt động với thời gian dài nên ta hạn chế công suất 
của nó để kéo dài tuổi thọ 
(Iled= 10-30 mA Uled=1.7-2.5V). 
4.3.5 Khối thu phát hồng ngoại 
Hình 4.9: Sơ đồ thiết kế 
 Nhiệm vụ của khối n y đếm số vòng quay của motor và truyền tín hiệu nhận đƣợc tới 
trung tâm xử lý. Nguyên lý làm việc của khối này rất đơn giản bên phát sẽ liên tục phát ra sóng 
hồng ngoại. Bên thu sẽ nhận tín hiệu sóng nếu led thu ma nhận đƣợc thì ngỏ ra CLK sẽ có điện 
áp khoảng 0V nếu không nhận đƣợc thì ngỏ ra sẽ có điện áp xấp xỉ 5V. 
- Tính toán giá trị 
Mạch phát đƣợc cấu tạo bở 1 điện trở và một led phát hồng ngoại Tƣơng tụ nhƣ led phát 
quang led hồng ngoại hoạt động với dòng điện khoảng 10-30 mA ,điện áp 1.75-2.5V .Ta có điện 
áp nguồn là 5V nên ta dể dàng chọn đƣợc giá trị R9. ở đây giá trị phù hợp là 330 ohm. 
46 
4.3.6 Khối mạch khuếch đại vi sai dòng điện 
Hình: sơ đồ thiết kế 
 Nhiệm vụ của khối này chuyển giá trị dòng điện chạy trên motor tới trung tâm xử lý 
Nguyên tắc hoạt động nhƣ sau: khối này gồm một mạch khoách đại thuật toán vi sai dùng opam 
ta có công thức tính nhƣ sau 
 Khi ta chọn R10=R13; R11=R12 thi công thƣc sẽ dduocj viế gọn lại nhƣ sau: 
Vout=(Vin1-Vin2 ).
 Ta có Vout <5V ta chọn dòng điện tối đa chạy qua mạch công suat la 2A giá trị điện trở 
công suất là 0.5 omh thì ta có 
Vout=(Vin1-Vin2 ).
 = 2.0.5.
< 5 
vậy giá trị phù hợp của R10=R13 =2k suy ra R10= R11=10k 
47 
4.3.7 Khối cảm biến điện áp 
Sơ đồ thiết kế 
Vì điện áp dùng để chạy motor lấy từ điện áp nguồn Vdd nên ta dể d ng có đƣợc 
điện áp trên motor sẽ gần bằng điện áp Vdd v ta có công thƣc tính điện áp đặt trên motor 
nhƣ sau 
Vmotor= Vdd –Vcb1= Vdd -0.2 
V=
Giá trị điện áp V sẽ đƣợc đƣa v o xi xử lý để biến đổi A/D và qua một số phép 
toán xử lý sẽ cho ta đƣợc giá trị điện áp trên motor 
48 
Y 
Chƣơng V : LẬP TRÌNH CHO VI ĐIỀU KHIỂN 
1 CHƢƠNG TRÌNH CHÍNH 
 N 
 N 
Y 
Begin 
Keypress = TFreadKey 
PWM=1 
Keypress = 
UUUUPkey2 
Chương trình setup() 
Set pwm;set U;set I 
Bảo vệ động cơ() 
End 
49 
2 CHƢƠNG TRÌNH CON SETUP TỐC ĐỘ 
Y 
N 
Y 
Y 
N 
Y 
N N 
Y 
Begin 
Keypress = 
TFreadKey 
PWM≥ 100 
Keypress = 
UUUUPkey2 
PWM=PWM+1 
End 
Keypress = 
key4 
PWM= 0 
F = 1 
PWM ≤ 0 
Keypress = 
key3 
PWM=PWM-1 
PWM= 100 
N 
End 
50 
3CHƢƠNG TRÌNH CON ĐO NHIỆT ĐỘ 
N 
Y 
Nhiệt 
độ_ADC= 
read sensor 
Begin 
 Nhiệt độ =0 
 i=1 
Nhiệt độ = nhiêtđộ + nhiệtđộ_ADC 
i= i+1 
i ≤ 50 
T = nhiệt độ / 50 
End 
51 
4 CHƢƠNG TRÌNH CON BẢO VỆ ĐỘNG CƠ 
 N 
 Y 
 N 
 Y 
 N 
 N Y 
Begin 
Đo nhiệt độ() 
Đo điện áp() 
Đo dòng điện() 
T >Tmax 
U>Umax 
I >Imax 
Begin 
PWM=0 
ReSET 
Chiều quay động cơ 
52 
5 CHƢƠNG TRÌNH CON ĐIỀU KHIỂN CHIỀU QUAY 
Y 
Y 
End 
N 
Y 
N 
Begin 
Keypress 1 
1weTFreadKey 
Keypress 2 
Quay trái=1 
Quay phải=0
Keypress = 4 
Keypress 3 
Quay phải=1 
Quay trái=o 
N 
53 
KẾT UẬN 
Tài liệu tham khảo : 
            Các file đính kèm theo tài liệu này:
 do_an_mon_hoc_he_thong_nhung_va_giao_tiep_may_tinh_dieu_khien_dong_co_va_giao_tiep_may_tinh_8321.pdf do_an_mon_hoc_he_thong_nhung_va_giao_tiep_may_tinh_dieu_khien_dong_co_va_giao_tiep_may_tinh_8321.pdf