Luận văn, khóa luận tốt nghiệp, báo cáo là sản phẩm kiến thức, là công trình khoa học đầu tay của sinh viên, đúc kết những kiến thức của cả quá trình nghiên cứu và học tập một chuyên đề, chuyên ngành cụ thể. Tổng hợp các đồ án, khóa luận, tiểu luận, chuyên đề và luận văn tốt nghiệp đại học về các chuyên ngành: Kinh tế, Tài Chính & Ngân Hàng, Công nghệ thông tin, Khoa học kỹ thuật, Khoa học xã hội, Y dược, Nông - Lâm - Ngữ... dành cho sinh viên tham khảo. Kho đề tài hay và mới lạ giúp sinh viên chuyên ngành định hướng và lựa chọn cho mình một đề tài phù hợp, thực hiện viết báo cáo luận văn và bảo vệ thành công đồ án của mình
Trang 1CHƯƠNG 1 TỔNG QUAN
1.1 Mục tiêu để tài:
“Máy đo gia tốc theo hai phương X-Y” có khả năng đo được gia tốc tĩnh và gia tốc động, hiển thị gia tốc trên màn hình LCD với kết quả gia tốc trên 2 kênh theo hai phương X-Y Máy còn có khả năng ứng dụng để đo được độ rung, độ nghiêng với độ nhạy vài mili giây Các kết quả đo đạc được lưu trữ vào thẻ nhớ với định dạng FAT32, để từ đó có thể đọc được trên các hệ điều hành khác nhau như Linux, Windows, MAC
1.2 Cơ sở lý thuyết:
Khái niệm:
Véc tơ gia tốc Trục cảm biến x
Ax = Acos(@) với ( là góc lệch theo trục x
Gia tốc là sự thay đổi của vận tốc theo thời gian Vận tốc đến lượt nó lại do sự thay đổi của độ dịch chuyển theo thời gian Lực trọng trường là nguyên nhân gây ra gia tốc rơi
Trang 2e Fla luc gay ra gia toc
e ml là khối lượng
e ala gia téc
Lực có đơn vị là N, m c6 đơn vị là gam (g), a có đơn vị là m/s’
Các thiết bi dùng để đo gia tốc phải xác định được giá trị của lực tác dụng lên một khối vật thể đã biết trước
Một cách tiếp cận khác để tính toán gia tốc đó là : Gia tốc là đạo hàm của vận tốc theo thời gian Vận tốc lại là đạo hàm của độ dịch chuyển theo thời gian
Gia tốc:
Acceleration Mis2
Time Hình 1.1 Gia tốc theo thời gian Vận tốc:
Trang 3SVTH : Huỳnh Minh Nguyện
Trang 41.3 Đo gia tốc bằng cảm biến MEMS:
1.3.1 Tổng quan về MEMS:
Vào thế kỷ XX, các thiết bị điện tử được tích hợp với số lượng ngày càng lớn, kích thước ngày càng nhỏ và chức năng ngày càng được nâng cao Điểu này đã mang lại sự biến đổi sâu sắc cả về mặt công nghệ lẫn xã hội Vào cuối những năm 50 của thế kỷ XX, một cuộc cách mạng hoá về công nghệ micro đã diễn ra và hứa hẹn một tương lai cho tất
cả các ngành công nghiệp Hệ thống vi cơ điện tử (Micro Electro Mechanical Systems) viết tắt là MEMS cũng đã được ra đời và phát triển trong giai đoạn này
Công nghệ vi cơ đã và đang tiến xa hơn nhiều so với nguồn gốc cửa nó là công nghiệp bán dẫn MEMS bao gồm những cấu trúc vi cơ, vi sensor, vi chấp hành và vi điện
tử cùng được tích hợp trên cùng một chip (on chip) Các linh kiện MEMS thường được cấu tạo từ silic Một thiết bị MEMS thông thường là một hệ thống vi cơ tích hợp trên một chip
mà có thể kết hợp những phần cơ chuyển động với những yếu tố sinh học, hoá học, quang hoặc điện Kết quả là các linh kiện MEMS có thể đáp ứng với nhiều loại lối vào: hoá, ánh sáng, áp suất, rung động vận tốc và gia tốc Với ưu thế có thể tạo ra những cấu trúc cơ học nhỏ bé tỉnh tế và nhạy cảm đặc thù, công nghệ vi cơ hiện nay đã cho phép tạo ra những bộ cảm biến (sensor), những bộ chấp hành (actuator) được ứng dụng rộng rãi trong cuộc sống Các bộ cắm biến siêu nhỏ và rất tiện ích này đã thay thế cho các thiết bị đo cũ
kỹ, công kểnh trước đây Song công nghệ MEMS mới đang ở giai đoạn đầu của nó và cần rất nhiều những nghiên cứu cơ bản hơn, sâu hơn
1.3.2 Vi cảm biến gia tốc:
Cảm biến gia tốc chế tạo theo công nghệ vi cơ điện tử có hai loại là cảm biến kiểu
tụ và cảm biến kiểu áp trở Trong nhiều ứng dụng việc lựa chọn cảm biến kiểu tụ hay kiểu áp trở là rất quan trọng Cảm biến kiểu áp trở có ưu điểm là công nghệ cấu tạo rất đơn giản Tuy nhiên nhược điểm của nó là hoạt động phụ thuộc nhiễu vào sự thay đổi nhiệt độ và có độ nhạy kém hơn cảm biến kiểu tụ Các cảm biến kiểu tụ có độ nhạy cao hơn, ít bị phụ thuộc vào nhiệt độ, ít bị nhiễu và mất mát năng lượng Tuy nhiên chúng có nhược điểm là mạch điện tử phức tạp hơn Hiện nay cảm biến gia tốc kiểu tụ được ứng dụng rộng rãi hơn
Nguyên tắc hoạt động của cảm biến kiểu tụ:
Trang 4
Trang 5
e
Trong đó:
e ø là khoảng cách giữa hai bản tụ điện
° là độ dịch chuyển của hai bản tụ
e _C là điện dung của tụ điện
e _E là năng lượng hay điện trường giữa hai bản tụ e©_ klà hằng số đàn hồi
e FM là hệ số phẩm chất Việc đo gia tốc thông qua cảm biến gia tốc MEMS có thể được mô tả nhờ một sơ
đồ trên hình vẽ 1.7 như một hệ gồm một khối lượng m và một lò xo
Trang 5
Trang 7với D là hệ số ma sát
Do đó, chúng ta thu được
trong hệ quy chiếu quán tính đứng yên
Như vậy, để đo gia tốc ta chỉ cần đo khoảng dịch chuyển x Để đo khoảng dịch chuyển này, người ta có thể sử dụng thuộc tính điện của tụ điện có hai bản cực song song khoảng cách giữa hai bản tụ có thể thay đổi được (hình 6)
hay có thể viết lại là:
Trang 8
Trang 8
Trang 9Trong để tài này, tôi chọn loại Text LCD có khả năng hiển thị 4 dòng, mỗi dòng 10
ky tu theo bang ma ASCII
2.1.1 Tinh nang:
e Dinh dang hién thi : 20 ky ty x 4 dong
e Ky tu tring trén nén xanh duong
Trang 9
Trang 10LCD có Ví dụ LCD 16x2 là loại có 2 dòng và mỗi dòng có thể hiển thị tối đa 16 ký tự
Một số kích thước Text LCD thông thường gồm 16x1, 16x2, 16x4, 20x2, 20x4
Hinh 2.1 Text LCD 20x4 Text LCD có 2 cách giao tiếp cơ bản là nối tiếp (như I2C) và song song, được điều khiển bởi chip HD44780U của hãng Hitachi HD44780U thường được coi là chuẩn chung cho các loại Text LCD, vì thế khi giao tiếp các LCD có kích thước hiển thị khác, chỉ cần
quan tâm đến toạ độ theo dòng và cột theo datasheet cung cấp bởi nhà sản xuất
HD44780U là bộ điều khiển cho các Text LCD dạng ma trận điểm (dot-matrix), chip này có thể được dùng cho các LCD có I, 2 hoặc 4 dòng hiển thị HD44780U có 2 chế
độ giao tiếp là 4 bit và 8 bit Nó chứa sẵn 208 ký tự mẫu kích thước font 5x8 và 32 ký tự mẫu font 5x10 (tổng cộng là 240 ký tự mẫu khác nhau) Tuy nhiên, một số ký tự theo bảng chữ cái tiếng Nhật
2.1.3 Sơ đồ chân:
Các Text LCD theo chuẩn HD44780U thường có 16 chân trong đó 14 chân kết nối với bộ điều khiển và 2 chân nguồn cho LED nền Thứ tự các chân thường được sắp xếp như sau:
Bảng 2.1 Sơ đô chân:
Trang 10
Trang 11
2.1.4 Sơ đồ kết nối:
Trang 11
Trang 12
Microcontroller
(AVR)
phản cần thiết, sau đó giữ mức biến trở này Các chân điểu khiển RS, R/W, EN và các
đường dữ liệu được nối trực tiếp với vi điều khiển Tùy theo chế độ hoạt động 4 bit hay §
bit mà các chân từ D0 đến D3 có thể bỏ qua hoặc nối với vi điều khiển
2.1.5 Thanh ghi:
HD44780U có 2 thanh ghi 8 bits la INSTRUCTION REGISTER (IR) va DATA REGISTER (DR) Thanh ghi IR chứa mã lệnh điều khiển LCD và là thanh ghi “chỉ ghi” (chỉ có thể ghi vào thanh ghi này mà không đọc được nó) Thanh ghi DR chứa các các loại
dữ liệu như ký tự cân hiển thị hoặc dữ liệu đọc ra từ bộ nhớ LCD Cả 2 thanh ghi đều được nối với các đường dữ liệu D0:D7 của Text LCD và được lựa chọn tùy theo các chân điều
Trang 12
Trang 13khiển RS, RW Thực tế để điều khiển Text LCD không cần quan tâm đến cách thức hoạt động của 2 thanh ghi này
2.1.6 Tổ chức bộ nhớ:
HD44780U có 3 loại bộ nhớ, đó là bộ nhớ RAM dữ liệu cần hiển thị DDRAM (Didplay Data RAM), bộ nhớ chứa ROM chứa bộ font tạo ra ký tự CGROM (Character Generator ROM) và bộ nhớ RAM chứa bộ font tạo ra các symbol tùy chọn CGRAM
(Character Generator RAM)
2.1.6.1.DDRAM:
DDRAM là bộ nhớ tạm chứa các ký tự cần hiển thị lên LCD, bộ nhớ này gồm có
80 ô được chia thành 4 hàng, mỗi ô có độ rộng 8 bit và được đánh số như sau:
Bảng 2.2 Tổ chức của DDRAM:
O1 | 02 | 03 | 04 | OS | 06 | 07 | 08 | 09 | OA | OB 0C |0D |0E|OF|I0|11)12|13
41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 |4A |4B_ 4C |4D | 4E |4F | 50 | 51 | 52 | 53
15 | 16 | 17 | 18 | 19 | IA | 1B} IC | ID | 1E | IF | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27
55 | 56 | 57 | 58 | 59 | SA | 5B | SC | 5D | 5E | 5F 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67
Muốn hiển thị một ký tự nào đó trên LCD, cân viết ký tự đó vào DDRAM 6 1 trong 80 địa chỉ trên Các ký tự nằm ngoài 80 ô nhớ trên sẽ không được hiển thị, tuy nhiên vẫn không bị mất đi, chúng có thể được dùng cho các mục đích khác nếu cân thiết
2.1.6.2 CGROM:
CGROM là vùng nhớ cố định chứa định nghĩa font cho các ký tự Không thể trực tiếp truy xuất vùng nhớ này mà chip HD44780U sẽ tự thực hiện khi có yêu cầu đọc font để hiển thị Một điều đáng lưu ý là địa chỉ font của mỗi ký tự vùng nhớ CGROM
Trang 13
Trang 14
=ssial IRlBIFMIfiuL | ÌSIHIEINAE
zxen|sL |" [TIBIU[Slu ziTizi In
roood 111 | @) |? (0) _ lol wl)" Ole
Hình 2.3 Vàng nhớ CGROM 2.1.6.3 Hoạt động của CGROM và DDRAM:
Trang 14
Trang 15CGROM và DDRAM được tự động phối hợp trong quá trình hiển thị của LCD Giả
sử muốn hiển thị ký tự ‘a’ tai vi tri dau tiên, dòng thứ 2 của LCD thì các bước thực hiện sẽ như sau:
- Vi tri đầu tiên của dòng 2 có địa chỉ là 0x40 trong bộ nhớ DDRAM (bảng 2.2), vì thế cần ghi vào ô nhớ có địa chỉ 0x40 một giá trị là 97 (mã ASCII của ký tự ‘a’)
- Chip HD44780U doc gid tri 97 nay và coi như là địa chỉ của vùng nhớ CGROM, nó sẽ tìm đến vùng nhớ CGROM có địa chỉ 97 và đọc bảng font
đã được định nghĩa sẵn ở đây
- _ Xuất font này ra các “chấm” trên màn hình LCD tại vị trí đầu tiên của dòng
2 trên LCD
Đây chính là cách mà 2 bộ nhớ DDRAM và CGROM phối hợp với nhau để hiển thị các ký tự Như vậy, việc lập trình điều khiển LCD tương đối đơn giản, đó là viết mã ASCII vao bé nhé DDRAM tai đúng vị trí được yêu cầu, bước tiếp theo sẽ do HD44780U đảm nhiệm
2.1.6.4 CGRAM:
CGRAM là vùng nhớ chứa các symbol do người dùng tự định nghĩa, mỗi symbol được có kích thước 5x8 và được dành cho 8 ô nhớ 8 bit Các symbol thường được định nghĩa trước và được gọi hiển thị khi cần thiết Vùng này có tất cả 64 ô nhớ nên có tối đa 8 symbol có thể được định nghĩa
2.1.7 Điều khiển hiển thị Text LCD:
2.1.7.1 Các chân điều khiển LCD:
Các chân điều khiển việc đọc và ghi LCD bao gồm RS, R/W và EN
- RS (chân số 3): Chân lựa chọn thanh ghi (Select Register), chân này cho phép lựa chọn 1 trong 2 thanh ghi IR hoặc DR để làm việc Vì cả 2 thanh ghi này đều được kết nối với các chân Data cửa LCD nên cần I bit để lựa chọn giữa chúng Nếu RS=0, thanh ghi IR được chọn và nếu RS=l thanh ghi DR được chọn Thanh ghi IR là thanh ghi chứa
mã lệnh cho LCD, vì thế nếu muốn gởi 1 mã lệnh đến LCD thì chân RS phải được reset
về 0 Ngược lại, khi muốn ghi mã ASCII của ký tự cần hiển thị lên LCD thì set RS=1 để chọn thanh ghi DR Hoạt động của chân RS được mô tả trong hình 2.4
Trang 15
Trang 16SVTH : Huỳnh Minh Nguyện
RS Hình 2.4 Hoạt động của chan RS
- R/W (chân số 4): Chân lựa chọn giữa việc đọc và ghi Nếu R/W=0 thì dữ liệu sẽ được ghi từ bộ điều khiển ngoài (vi điều khiển AVR chẳng hạn) vào LCD Nếu R/W=I thì
dữ liệu sẽ được đọc từ LCD ra ngoài Tuy nhiên, chỉ có duy nhất 1 trường hợp mà dữ liệu
có thể đọc từ LCD ra, đó là đọc trạng thái LCD để biết LCD có đang bận hay không (cờ Busy Flag - BE) Do LCD là một thiết bị hoạt động tương đối chậm (so với vi điểu khiển),
vì thế một cờ BF được dùng để báo LCD đang bận, nếu BF=l thì cho LCD xử lí xong nhiệm vụ hiện tại, đến khi nào BF=0 một thao tác mới sẽ được gán cho LCD Vì thế, khi làm việc với Text LCD cần phải có một chương trình con để chờ cho đến khi LCD rảnh
Có 2 cách để viết chương trình chờ cho LCD rãnh Cách I là đọc bit BE về kiểm tra và
chờ BF=0, cách này đòi hỏi lệnh đọc từ LCD về bộ điều khiển ngoài, do đó chân R/W cần được nối với bộ điều khiển ngoài Cách 2 là viết một hàm delay một khoảng thời gian cố định nào đó (tốt nhất là trên Ims) Ưu điểm của cách 2 là sự đơn giản vì không cần đọc LCD, do đó chân R/W không cần sử dụng và luôn được nối với GND Tuy nhiên, nhược điểm của cách 2 là khoảng thời gian delay cố định nếu quá lớn sẽ làm chậm quá trình thao tác LCD, nếu quá nhỏ sẽ gây ra lỗi hiển thị
EN (chân số 5): Chân cho phép LCD hoạt động (Enable), chân này cần được kết nối với bộ điều khiển để cho phép thao tác LCD Để đọc và ghi data từ LCD cần tạo một
“xung cạnh xuống” trên chân EN, nói theo cách khác, muốn ghi dữ liệu vào LCD trước hết cân đảm bảo rằng chân EN=0, tiếp đến xuất dữ liệu đến các chân D0:7, sau đó set chân EN lên I và cuối cùng là xóa EN về 0 để tạo 1 xung cạnh xuống
2.1.7.2 Tập lệnh của LCD:
Bảng 2.3 Các tập lệnh của LCD:
Trang 16
Trang 17SVTH : Huỳnh Minh Nguyện
D
Ghi vào
Đọc từ CGRAM/DDRAM D7 | D6 |D5| D4 D3 | D2 | D1 | DO| 40us
- Xoá màn hình: lệnh này xóa toàn bộ nội dung DDRAM và vì thế xóa toàn bộ hiển thị trên LCD Vì đây là 1 lệnh ghi Instruction nên chân RS phải được reset về 0 trước khi ghi lệnh này lên LCD Mã lệnh xóa LCD là 0x01(ghi vào D0:D7)
- Đưa con trồ về vị trí đầu, dòng 1 của LCD: lệnh này thực hiện việc đưa con trỏ
về vị trí đầu tiên của bộ nhớ DDRAM, vì thế nếu sau lệnh này một biến được ghi vào DDRAM thì biến này sẽ nằm ở vị trí đầu tiên (1:1) RS cũng phải bằng 0 trước khi ghi lệnh Mã lệnh là 0x02 hoặc 0x03(chọn | trong 2 mã lệnh, tùy ý)
- Đặt địa chỉ DDRAM - định vị trí con trổ cho DDRAM: di chuyển con trỏ đến một vị trí tùy ý trong DDRAM và vì thế có thể được dùng để chọn vị trí cần hiển thị trên
LCD Để thực hiện lệnh này cần reset RS=0 Bit MSB của mã lệnh (D7) phải bằng 1, 7 bit
còn lại của mã lệnh chính là địa chỉ DDRAM muốn di chuyển đến
Ví dụ: Muốn di chuyển con trỏ đến vị trí thứ 3 trên dòng 2 của LCD (địa chỉ 42), cần ghi mã lệnh 0xAA vì 0xAA=10101010 (binary) trong đó bit MSB bằng 1, bẩy bit còn lại là 0101010=42, địa chỉ của ô nhớ muốn đến
Trang 17
Trang 18- Ghi dữ liệu vào CGRAM hoặc DDRAM: vì đây không phải là lệnh ghi
instruction ma là I lệnh ghi dữ liệu nên chan RS cân được set lên I trước khi ghi lệnh vào
LCD Lệnh này cho phép ghi mã ASCII của một ký tự cần hiển thị vào thanh ghi DDRAM
- Đặt các chức năng hiển thị: Lệnh này chỉ ra cách hiển thị một ký tự tiếp theo I
ký tự trước đó
Ví dụ: Nếu muốn hiển thị 2 ký tự liên tiếp AB, trước hết viết A tại vị trí 5, dòng 1 Sau đó ghi B vào LCD, lúc này có 4 cách mà LCD có thể hiển thị B như Sau:
Hiển thị B bên phải A tại vị trí số 6
B cũng có thể được hiển thị bên trái A, tại vị trí số 4 LCD có thể tự dịch chuyển A về bên trái đến vị trí 4 sau đó hiển thị B bên phải A, tại vị trí 5
o LCD dich chuyển A về bên phải đến vị trí 6 sau đó hiển thị B bên trái
A, tại vị trí 5
Có thể chọn | trong 4 cách hiển thị trên thông qua lệnh Đặt các chức năng Đây là
lệnh ghi Instruction nén RS=0, 5 bit cao D7:3=00000, bit D2=1, hai bít còn lại DI:0 chứa
mã lệnh để lựa chọn I trong 4 cách hiển thị Xem lại bảng 3, bit D1 chia gid tri I/D va DO chứa S Trong đó I/D nghĩa là tăng hoặc giảm (Increment or Decrement) I/D= I là hiển thị tăng tức ký tự sau sẽ hiển thị bên phải ký tự trước, nếu I/D=0 thì hiển thị giảm, tức ký
tự sau hiển thị bên trái ký tự trước S là giá trị Dịch, nếu S=l thì các ký tự trước đó sẽ được “đẩy” đi, ký tự sau chiếm chỗ ký tự trước, ngược lại nếu S=0 thì vị trí hiển thị của các ký tự trước đó không thay đổi Có thể tóm tắt 4 mode hiển thị ứng với 4 mã lệnh như
- Bật/Tắt hiển thị — xác lập cách hiển thị cho LCD: lệnh này bao gồm các thông
số cho phép LCD hiển thị, cho phép hiển thị cursor và mở/tắt nhấp nháy Đây cũng là một lệnh ghi Instrcution nên RS phải bằng 0 Mã lệnh cho lệnh này có dang 00001DCB trong d6 D (Display) cho phép hién thi LCD néu mang gid tri 1, C (Cursor) bing | thi cursor sé được hiển thị và B là nhấp nháy cho con trỏ tại vị trí hiển thị (nhấp nháy là dạng 1 ô đen
Trang 18
Trang 19tại vị trí ký tự đang hiển thị) Mã lệnh được dùng phổ biến cho lệnh này là 0x0E (000011 10 - hiển thị con trổ nhưng không nhấp nháy)
- Đặt chức năng - xác lập chức năng cho LCD: đây là lệnh thiết lập phương thức giao tiếp với LCD, kích thước font chữ và số lượng line của LCD RS cũng phải bằng 0 khi
sử dụng lệnh này Mã lệnh Đặt chức năng có dạng 001DLNExx Trong đó nếu DL=1 (DL: Data Length) thì mode giao tiếp 8 bit sẽ được dùng, lúc này tất cả các chân từ D0 đến D7 phải được kết nối với bộ điều khiển ngoài Nếu DL=0 thì mode 4 bit được dùng, trong trường hợp này chỉ có 4 chân D4:7 được dùng để truyền nhận dữ liệu và kết nối với bộ
điểu khiển ngoài, các chân D0:3 được để trống N quy định số dòng của LCD F là kích thước font chữ hiển thị, do LCD có 2 bộ font chữ có sẵn trong CGROM nên cần lựa chọn thông qua bit F, nếu F=1 bộ font 5x10 được sử dụng và nếu F=0 thì font 5x§ được hiển thị
2 bit thấp trong mã lệnh này có thể được gán giá trị tùy ý Mã lệnh được dùng phổ biến cho lệnh Đặt chức năng là 0x38 (00111000 — giao tiếp 8 bit, 2 dòng với font 5x8 ) hoặc 0x28 (00101000 ~ giao tiếp 4 bit, 2 dòng với font 5x )
2.1.7.3 Giao tiếp 8 bit và 4 bit:
Text LCD có 2 mode để ghi và đọc dữ liệu mode § bit và mode 4 bit:
- Mode 8 bit: Nếu bit DL trong lệnh function set bằng 1 thì mode 8§ bit được dùng
Để sử dụng mode § bit, tất cả các lines dữ liệu của LCD từ D0 đến D7 (từ chân 7 đến chân 14) phải được nối với 1 PORT của chip điều khiển bên ngoài Ưu điểm của phương pháp giao tiếp này là dữ liệu được ghi và đọc rất nhanh và đơn giản vì chip điểu khiển chỉ cần xuất hoặc nhận dữ liệu trên 1 PORT Tuy nhiên, phương pháp này có nhược điểm là tổng
số chân dành cho giao tiếp LCD quá nhiêu, nếu tính luôn cả 3 chân điều khiển thì cần đến
11 đường cho giao tiếp LCD
- Mode 4 bit: LCD cho phép giao tiếp với bộ điểu khiển ngoài theo chế độ 4 bit Trong chế độ này, các chân D0, DI, D2 và D3 của LCD không được sử dụng (để trống), chỉ có 4 chân từ D4 đến D7 được kết nối với chip bộ điểu khiển ngoài Các instruction và data 8 bit sẽ được ghi và đọc bằng cách chia thành 2 phần, gọi là các Nibbles, mỗi nibble gồm 4 bit và được giao tiếp thông qua 4 chân D7:4, nibble cao được xử lí trước và nibble thấp sau Ưu điểm lớn nhất của phương pháp này tối thiểu số đường kết nối dùng cho giao
tiếp LCD
2.2 Sensor gia tốc ADXL202:
Trang 19
Trang 20Có rất nhiều loại sensor có thể áp dụng được trong lĩnh vực này Song hiện nay sensor gia tốc ADXL202 được dụng khá phổ biến và đặc biệt là sự tiện lợi của sensor này nên trong để tài tôi dùng sensor ADXL202
2.2.1 Tính năng:
Sensor này được tích hợp trên một chíp đơn
Đo được cả gia tốc động và tĩnh
Người sử dụng có thể điều chỉnh được chu kỳ lối ra
Nguồn cung cấp thấp < 0.6mA
ADXL202 giá thành thấp, nguôn cung cấp nhỏ Có dải đo gia tốc +2g/+10g, có thể
đo được cả hai gia tốc động và tĩnh
< "Bê TU A3)
Hình 2.5 Hình dạng thực tế Sensor ADXL202E đặt trên đông xu Lối ra là tín hiệu số tương ứng với gia tốc trên hai trục Lối ra có thể đo trực tiếp nhờ
bộ đếm của vi điều khiển mà không cần bộ biến đổi AD hay một bộ logic nào Chu kỳ lối
ra được hiệu chỉnh từ 0.5ms tới 10ms thông qua một điện trở (Rset Nếu điện áp lối ra được đề cập thì điện áp này sẽ cân xứng với gia tốc sẵn có từ hai chân XEilt và YFilt của sensor
Dải thông của ADXL202 có thể được đặt từ 0.01 Hz tới 5 kHz thông qua hai điện trở
Cx và Cy Nhiễu nền điển hình là 50g// cho phép tín hiệu dưới 5mg được giải quyết cho dải thông dưới 60 Hz
Dải nhiệt độ làm việc của sensor là 0°C tới +70°C, tuy nhiên trong công nghiệp lại là
từ -40°C tới +85°C
2.2.3 Sơ đồ khối chức năng:
Trang 20
Trang 21Bê mặt của cảm biến là có cấu tạo từ nhiễu lớp silíc, trên bể mặt có cấu tạo là những lò xo cung cấp điện trở để kìm hãm gia tốc Mọi sự chuyển động của những khối
không cân xứng các tụ khác nhau kết quả là sẽ xuất hiện một xung vuông ở lối ra với biên
độ tỷ lệ với gia tốc Trên mỗi trục sẽ được dải điều biến chỉnh sửa tín hiệu và xác định rõ hướng của gia tốc Lối ra này cung cấp tới bộ điểu biến chu kỳ xung (DCM) đó là sự kết hợp chặt chẽ những tụ bên ngoài để đặt dải thông trên mỗi trục Tín hiệu tương tự đã được lọc và chuyển đổi tới chu kỳ xung lối ra bởi DCM Sau khi qua bộ DCM tín hiệu thu được
sẽ là tín hiệu số Điện trở Ry đặt độ rộng xung PWM (T2) Còn tín hiệu tương tự thu được
ở các kênh Xu và Yon thông qua các tụ lọc Cc va C Một điện trở ngoài đặt khoảng thời gian của chu kỳ công suất lối ra.A(g)= 0 (g) gia tốc tạo ra 50% chu kỳ xung suất lối ra
+3.0V TO +5.25V
al 7
Trang 22
Xrit} 7 ST
Yet XourL°
Your
BOTTOM VIEW Hinh 2.7 So dé chan Sensor ADXL202E
Bảng 2.4 Chức năng các chan:
Self Test, dùng để kiểm
1 ST | tra T2_ | Nối với Rset để đặt T2
Trang 23
công suất Tín hiệu gia tốc có thể được quyết định bởi việc đo độ rộng xung của T1 và T2 bằng bộ đếm hay bộ định thời của vi điều khiển
Điện áp lối ra tương tự được lưu trữ bằng bộ đệm tín hiệu từ chân XEilt và YEilt, hay thông qua tín hiệu chu kỳ công suất thông qua bộ lọc RC tạo thành tín hiệu một chiều ADXL202 sẽ vận hành với điện áp cung cấp 3.0V đến 5.25V
TI và T2 được biểu diễn bằng hình 2.8
F——"——
Hình 2.8 Ngõ ra xung số
2.2.6 Linh kiện mạch ngoài:
Linh kiện bên ngoài chủ yếu là một tụ điện đơn 0.IHF, Cpc, dùng lọc nhiễu do nguồn cung cấp Tuy nhiên trong một số trường hợp sử dụng chung nguồn cung cấp cho các thiết bị khác như LCD, bảng LED do đó nhiễu trên nguồn có thể gây nên nhiễu trên
lối ra của ADXL202 Điều này thường thấy như hiện tượng gợn sóng của điện áp ở chân
Xu và Ygi Để lọc nhiễu trên đường nguồn cung cấp, cần mắc một điện trở 1000 hay
một thanh ferit ở lối vào nguồn cấp cho ADXXL202E
2.2.7 Đặt giải thông cho ADXL202 sử dung Cx va Cy:
ADXL202 cung cấp giới hạn dải cho các chân Xfilt và Yfilt Các tụ phải thêm tại những chân để thực hiện bộ lọc thông thấp tránh hiện tượng chồng phổ và giảm nhiễu Công thức tính 3 db dải thông:
~ (2 2 0)*C@&.y))
Hay đơn giản hơn:
Dung sai của điện trở nội (Rau) có thể thay đổi nhiều khoảng +25% với giá trị định
mức là 32KO, vậy dải thông sẽ thay đổi theo Dung kháng tối thiểu trong mọi trường hợp yéu cau 14 1000 pF cho Cx y)
Trang 24
(Q)
?=125 0 Bang 2.6 Lựa chọn giá trị điện trở cho T2:
lms 125KQ 2ms_| 250KQ Sms 625KQ 10ms_| 1.25MQ
Tính gia tốc theo lối ra số:
Acceleration (in g) =
Theo những đặc điểm chính ctia data sheet, thì định mức chu kỳ công suất lối ra của ADXL202 là 50% tại Zero g và 12.5% chu kỳ công suất thay đổi per g Bởi vậy công thức tính chu kỳ công suất như sau:
Tạ — 50%
A cceleration (in g) ti i = 125%
Diễn giải các thông số:
Resoluion(độ phân giải): sự thay đổi tín hiệu nhỏ nhất cân phát hiện ra
¢ Bandwidth(bang thông): tần số cao nhất cần được phát hiện ra
Trang 25® Acquisifion Time(thời gian nhận): đó là thời có thể nhận tín hiệu trên mỗi trục
Những thông số trên sẽ giúp xác định rõ dải thông của gia tốc kế, tốc độ đồng hồ của vi điểu khiển và chiểu dài của chu kỳ T2
Sự lựa chọn dải thông của gia tốc kế sẽ được xác định rõ bằng đo đạc độ phân dải (dải thông nhỏ nhất có thể phát hiện ra gia tốc) bộ lọc có thể được sử dụng làm giảm nhiễu nền và cải thiện độ phân giải của gia tốc kế Độ phân giải phụ thuộc vào cả dải thông bộ lọc tín hiệu tương tự tại Xø¡¿ và Yøi, và tốc độ của bộ đếm vi điểu khiển
Lối ra của tương tự của ADXL202 có đặc trưng dải thông khoảng 5kHz, cao hơn nhiễu so với trạng thái cửa chu kỳ công suất có khả năng chuyển đổi Người sử dụng phải lọc tín hiệu tại những thời điểm để giới hạn hiện tượng chồng phổ Để làm giảm tối thiểu lỗi DCM dải thông tín hiệu tương tự cần nhỏ hơn 1/10 tân số DCM
Dai thông của tín hiệu tương tự có thể giảm hơn nữa để làm giảm nhiễu và cải thiện độ phân giải Nhiễu của ADXL202 có thể xác định thông qua công thức sau:
500 noise (rms) = — xVBWx1.5 Tại 100Hz giá trị của nhiễu sẽ là:
500ug
noise (rms) = TH xv100x1.5 = 6.12mg Thường thì giá trị đỉnh của nhiễu là giá trị mong muốn nhiễu đỉnh — đỉnh được ước lượng bằng phương pháp thống kê
Bảng 2.7 Bảng thống kê giá trị nhiễu:
Bandwith Cx,Cy Rmsnoise Peak to peak noise
10Hz 0.47 1.9 mg 7.6 mg 50Hz 0.1 4.3 mg 17.2 mg 100Hz 0.05 6.1 mg 24.4 mg 200Hz 0.027 8.7 mg 35.8 mg 500Hz 0.001 13.7 mg 54.8 mg
2.2.8 Đặc tuyến ngõ ra của sensor ADXL202:
Khảo sát hệ hệ giao động lò so ta thấy mối quan hệ giữa số xung thu được từ bộ đếm và góc nghiêng của cảm biến so với phương của trọng trường ta thu được tín hiệu hình sin điều hoà như hình 2.9
Trang 25
Trang 26Phương trình của dạng xung lối ra:
P(t) = Asin(at + 2) + offset Biên độ đặc tuyến:
_ Pmax — Pmin
~ 2
D6 dich offset:
Pmax — Pmin Offset = A + Pmin = 2
xung Đụ:
Hình 2.9 Quan hệ giữa góc và xung lối ra
Từ các phương trình trên ta có cơ sở để tính toán góc nghiêng dựa vào lối ra số của cảm biến gia tốc:
Xung = Asin(góc) + offset Góc = arcsin[(xung - offset)/A]
Pitch = arcsin[(xung - offset)/A] Pitch = arcsin[(xung - offset)/A]
Tín hiệu lối ra là chu kỳ hình sin biến đổi từ 0360 , hai kênh X và Y lệnh pha
90 và hoàn toàn độc lập với nhau
Sở dĩ đặc tuyến của ADXL202 có dạng Sin điều hòa, do cấu tạo của nó là dạng tụ,
để thay đổi gia tốc thì những bản tụ phải thay đổi khoảng cách sự thay đổi đó làm cho số xung phát ra thay đổi trên hai kênh X và Y
2.3 Vi điều khiển ATMega32:
AVR là họ Vi điểu khiển khá mới trên thị trường cũng như đối với người sử dụng Đây là họ VĐK được chế tạo theo kiến trúc RISC (Reduced Intruction Set Computer) có cấu trúc kháphức tạp Ngoài các tính năng như các họ VĐK khác, nó còn tích hợp nhiều tính năng mới rất tiện lợi cho người thiết kế và lập trình
Trang 26
Trang 27Sự ra đời của AVR bắt nguồn từ yêu cầu thực tế là hầu hết khi cân lập trình cho vi điều khiển, chúng ta thường dùng những ngôn ngữ bậc cao HLL (Hight Level Language)
để lập trình ngay cả với loại chip xử lí 8 bit trong đó ngôn ngữ C là ngôn ngữ phổ biến nhất Tuy nhiên khi biên dịch thì kích thước đoạn mã sẽ tăng nhiều so với dùng ngôn ngữ Assembly
Hãng Atmel nhận thấy rằng cần phải phát triển một cấu trúc đặc biệt cho ngôn ngữ
C để giảm thiểu sự chênh lệch kích thước mã đã nói trên Và kết quả là họ vi điều khiển AVR ra đời với việc làm giảm kích thước đoạn mã khi biên dịch và thêm vào đó là thực hiện lệnh đúng đơn chu kỳ máy với 32 thanh ghi tích ly và đạt tốc độ nhanh hơn các họ vi
điều khiển khác từ 4 đến 12 lần
Họ vi điều khiểnAVR của Atmel Corp là một bước phát triển trên nền của Vi điểu khiển AT89 đã khá quen thuộc Nếu như AT89 là vi điều khiển có CPU CISC thi AVR là RISC, với kiến trúc Harvard do vậy tốc độ sẽ nhanh hơn (tốc độ tối đa là l6 triệu lệnh/giây) Ngoài ra AVR cũng tích hợp sẵn ngay trong chip mạch ADC, PWM cũng như
hỗ trợ các chuẩn giao tiếp thông dụng như UART/USART, I2C, 2-wires nên việc thiết kế
và thực hiện phần cứng cho những ứng dụng rất thuận tiện, nhanh chóng, nhỏgọn
Hình 2.10 Hình dạng thực tế ATMega32 2.3.1 Chức năng:
e 16KB bộ nhớ Flash với khả năng đọc trong khi ghi
e 512 byte b6 nhé EEPROM
e 1KB b6 nhé SRAM
e 32 thanh ghi chtfc nang chung
e 32 dung vào ra chung
e3 bộ định thời/bộ đếm, ngắt nội và ngắt ngoại, USART
e _ Giao tiếp nối tiếp 2 day, 8 kénh ADC 10 bit
e _ 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.3.2 Sơ đô khối:
Trang 27
Trang 281 ' ' t ' 1 ' ' ' '
1 '
i
H ' ' 1
1
r '
1 ' ' ' ' 1 ' ' ' '
1 '
1 ' ' 1 ' ' ' ' ' '
1 '
1 ' ' 1 ' 1 ' ' ' '
‘STATUS REGISTER
Hình 2.11 Sơ đồ khối ATMega32
2.3.2 Cấu trúc nhân AVR:
Phần cốt lõi của AVR kết hợp 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 (Arithmetic Logic Unit), cho phép truy cập 2 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 thông thường
Trang 28
Trang 29
Program Status lun Couter [“ and Control |*®
+>) VO Module n
EEPROM I
1O Lines ‘i
v
Hình 2.12 Sơ đồ cấu trúc CPU của ATMega32
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
2.3.2.3 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.3.2.4 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
Trang 29
Trang 30SVTH : Huỳnh Minh Nguyện
Bit 7 6 s 4 3 2 1 9
‘SSF (SSF) | a | †rT | H | s | V | N | Z7 | c_& srEG
initial Value 9 9 9 9 9 9 9 9
Hình 2.13 Thanh ghi trang thai 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)
e 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
e _H: Half Carry Flag (Được sử dụng trong một số toán hạng sẽ được chỉ r sau) eT: Transfer bit used by BLD and BST instructions(Bugc sử dụng làm nơi chung
® gian trong các lệnh BLD,BST)
e I: Global Interrupt Enable/Disable Flag (Day 14 bit cho phép toàn cục ngắt Nếu bit
e nay 6 trang thái logic 0 th không có một ngắt nào được phục vụ
2.3.3 Các thanh ghi chức năng chung:
7 0 Addr
sob
$oE
$oF sto
sit
SIA
s1B
sic s1D SIE
Trang 30
Trang 31
SSE (SSE) - - - spo SPS SPH
$3D ($5D) SP7 SP6 ‘SPS SP4 SP3 SP2 SPI SPO SPL
7 6 5 4 3 2 1 9 Read'Wrte R R R R R R Rw Rw
Rw Rw Rw Rw RW RW Rw Rw Initial Value 9 ° 9 9 9 9 9 9
9 9 9 9 9 9 9 9
Hình 2.15 Thanh ghi con trỏ ngăn xếp
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 I 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 | va 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 hoặc bằng 60H (0x60) vì 5FH trỏ lại là vùng các thanh ghi
và thức hiện chương trình phục vụ ngắt đó cho 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 thi 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ụ Còn nếu có mức ưu tiên thấp hơn thì 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 I 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 | va 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
Trang 31
Trang 32con đượ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
2.3.6 Cấu trúc bộ nhớ:
2.3.6.1 Bộ nhớ chương tr.nh (Bộ nhớ Flash):
Bộ nhớ Flash 32KB của Atmega32 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 8KX32 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 trinh ứng dụng
$0000
Application Flash Section
Boot Flash Section
SIFFF
Hình 2.16 Bản đồ bộ nhớ chương trình
2.3.6.2 Bộ nhớ dif ligu 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ớ
O, và 1024 ô nhớ tiếp theo định địa chỉ cho bộ nhớ SRAM nội
Trang 32
Trang 33Register File Data Address Space
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.3.7.1 Thanh ghi DDRx:
Đây là thanh ghi § 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 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
Trang 33
Trang 342.3.7.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ển sẽ có giá trị là 0x00
2.3.7.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
© B6 chia tan 10 bit
¢ Nguén ngat tran bé dém va so sénh
Sơ đồ cấu trúc của bộ định thời:
Trang 34
Trang 35(PntRea
(Fron Preseaier) Tre: Ceunler
Thanh ghi OCRO0 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 tai chan OCO 2.3.8.2 Đơn vị đếm:
Phần chính của bộ định thời § 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:
Trang 36
Hình 2.19 Đơn vị đếm
e Count: ting hay giam TCNTO 1
e Direction: Iva chon giita dém lén va đếm xuống
e Clear: x6a thanh ghi TCNTO
e CIkTO: xung clock ctia bé dinh thdi
e TOP: báo hiệu bộ định thời đ tăng đến giá trị lớn nhất
e _ BOTTOM: báo hiệu bộ định thời đ giảm đến giá trị nhỏ nhất (0)
Trang 36
Trang 372.3.9 Mô tả các thanh ghi:
2.3.9.1 Thanh ghi điều khiển bộ định thời/bộ đếm TCCRU:
Bit 7 6 5 4 3 2 1 0
G [coor] conoo | woot] csc2 | cso1_] cs00 J Tccno
Read/Write Ww RW RW RW RW RW RW R/W
Initial Value 0 0 0 0 0 0 0 0
Hình 2.21 Thanh ghi điều khiển bộ định thời
e Bit 7 - FOC0: So sánh ngõ ra bắt buộc: Bit này chỉ tích cực khi bit WGM00 chi đị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- WGMO01:0: Ché d6 tao 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
e_ Bit 5:4 - COM0I1: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 COMOI:0 được đặt lên 1, ngõ ra OCO0 sẽ hoạt động
e _ Bit 2:0: CS02:0: Chọn xung đồng hồ : Ba bit này dùng để lựa chọn nguồn xung
0 External clock source on TO pin Clock on falling edge
1 External clock source on TO pin Clock on rising edge
Trang 39Bit TOVO được đặt lên I 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
2.3.10 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:
e_ 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)
e_ Hoạt động đồng bộ hoặc bất đồng bộ
e_ Bộ tạo tốc độ baud có độ chính xác cao
e _ Hỗ trợ khung truyền nối tiếp với 5, 6, 7, 8, hoặc 9 bit dữ liệu và I hoặc 2 bit stop
e Kiém tra chan lé
e_ Phát hiện tràn dữ liệu
e_ Phát hiện lỗi khung
¢ Loc nhiéu, bao gdm phat hién bit start lỗi và bộ lọc thông thấp số
e _ 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 e_ Chế độ truyền thông đa vi xử I
e _ Chế độ truyền đồng bộ tốc độ cao
Sơ đồ khối của bộ USART như sau:
Trang 39
Trang 40
Hình 2.26 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
2.3.10.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:
Trang 40