34
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI ********************** BÁO CÁO KĨ THUẬT VI XỬ Cảm biến chuyển động đo khoảng cách dùng ATMEGA8 và SRF04 Lớp: KSTN ĐTVT K56 Giáo viên hướng dẫn: Nguyễn Hoàng Dũng

Báo cáo vi xử lý

Embed Size (px)

Citation preview

Page 1: Báo cáo vi xử lý

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

**********************

BÁO CÁO KĨ THUẬT VI XỬ LÝ Cảm biến chuyển động đo khoảng cách dùng ATMEGA8 và SRF04

Lớp: KSTN ĐTVT K56 Giáo viên hướng dẫn: Nguyễn Hoàng Dũng Nhóm sinh viên thực hiện: Đỗ Anh Dân 20111261 Nguyễn Bá Dũng 20112561

Hà Nội 05-2014

MỤC LỤC

Page 2: Báo cáo vi xử lý

Chương I: Giới thiệu chung

1. Giới thiệu về Atmega 8..........................................................................................1.1 Đặc điểm..........................................................................................................1.2 Sơ đồ khối ATmega8........................................................................................1.3 Sơ đồ chân ATmega8........................................................................................1.4 Mô tả chức năng các chân Atmega8..................................................................

2. Giới thiệu về SRF04...............................................................................................2.1 Thông số kĩ thuật.............................................................................................2.2 Chế độ hoạt động.............................................................................................2.3 Chức năng các chân.........................................................................................2.4 Nguyên tắc hoạt động......................................................................................2.5 Tính toán và xác định khoảng cách...................................................................

3. Giới thiệu về LCD.................................................................................................3.1 Chức năng chân LCD.......................................................................................3.2 Sơ đồ khối LCD...............................................................................................

Chương II: Thiết kế mạch

1. Phân tích yêu cầu đề tài.........................................................................................2. Xây dựng sơ đồ khối của mạch...............................................................................3. Phân tích chức năng,thông số kĩ thuật từng khối....................................................4. Xây dựng sơ đồ nguyên lý toàn mạch.....................................................................5. Mạch in..................................................................................................................6. Đo đạc,kiểm tra,đánh giá chất lượng của mạch.......................................................

Chương III: Lập trình và mô phỏng

1. Lập trình............................................................................................................2. Mô Phỏng..........................................................................................................

Chương IV: Kết luận

1. Ưu điểm..........................................................................................................................2. Nhược điểm....................................................................................................................

Chương V: Tài liệu tham khảo

Chương I: Giới thiệu chung

Page 3: Báo cáo vi xử lý

1. Giới thiệu về ATmega 81.1 Đặc điểm:

Vi điều khiển Atmega8 của hãng ATMEL là một loại vi điều khiển AVR mới với kiến trúc rất phức tạp. Atmega 8 là bộ vi điều khiển RISC 8 bit tiêu thụ năng lượng nhưng đạt hiệu suất rất cao, dựa trên kiến trúc RISC AVR. Bằng việc thực hiện các lệnh trong một chu kỳ xung nhịp, Atmega8 đạt được tốc độ xử lý dữ liệu lên đến 1triệu lệnh/giây ở tần số 1MHz. Atmega8 còn cho phép người thiết kế hệ thống tối ưu hoá mức độ tiêu thụ năng lượng mà vẫn đảm bảo tốc độ xử lý. Atmega 8 đã tích hợp đầy đủ các tính năng như bộ chuyển đổi ADC 10bit, bộ so sánh, bộ truyền nhận nối tiếp, bộ định thời, bộ đếm thời gian thực, bộ điều chế độ rộng xung … Do đó ta phải nghiên cứu và khai thác triệt để các tính năng này để ứng dụng hiệu quả vào những mạch trong thực tế. Atmega8 sử dụng kiến trúc RISC (Reduced Instruction Set Computer) AVR.

Atmega8 với kiến trúc RISC có chỉ tiêu chất lượng cao và tiêu thụ năng lượng ít:- 130 lệnh hầu hết được thực hiện trong một chu kỳ xung nhịp.- 32 thanh ghi làm việc đa năng.- Tốc độ xử lý lệnh lên đến 16 triệu lệnh/giây ở tần số 16MHz.

Bộ nhớ dữ liệu và bộ nhớ chương trình không tự mất dữ liệu:- 8K byte bộ nhớ Flash lập trình được ngay trên hệ thống, có thể nạp xoá 10000 lần.- 512 byte bộ nhớ EEFROM lập trình được ngay trên hệ thống, có thể ghi xóa

100000 lần.- 1K byte bộ nhớ SRAM.- Có thể giao tiếp với 8K byte bộ nhớ ngoài. - Khóa bảo mật phần mềm lập trình được.- Giao diện nối tiếp SPI để lập trình ngay trên hệ thống.

Các tính năng ngoại vi:- Hai bộ đếm/ bộ định thời 8 bit với chế độ so sánh và chia tần số tách biệt.- Một bộ định thời 16 bit với chế độ so sánh, chia tần số tách biệt và chế độ bắt mẫu

(Capture Mode).- Bộ đếm thời gian thực (RTC) với bộ dao động tách biệt.- Bộ điều chế độ rộng xung PWM 8 bit.- Bộ biến đổi ADC bên trong 8 kênh 10 bit.- 2 bộ USART nối tiếp lập trình được. - Bộ định thời Watchdog lập trình được với bộ dao động trên chip.- Một bộ so sánh Analog.

Các tính năng vi điều khiển đặc biệt:- Có mạch power - on reset và có thể reset bằng phần mềm.- Các nguồn ngắt ngoài và trong.- Có 5 chế độ ngủ: chế độ rỗi, chế độ tiết kiệm điện, chế độ giảm nhiễu ADC, chế độ

chờ và chế độ giảm bớt điện năng - Tần số làm việc có thể thay đổi được bằng phần mềm.

Vào ra và các cách đóng vỏ- 23 đường vào ra lập trình được.

Page 4: Báo cáo vi xử lý

- 32 chân dán kiểu vỏ vuông (TQFP) Điện thế làm việc:

- VCC = 2,7V đến 5,5V đối với Atmega8L.- VCC = 4,5V đến 5,5V đối với Atmega8.

Vùng tốc độ làm việc:- 0 đến 8 MHz đối với Atmega8L. - 0 đến 16 MHz đối với Atmega8.

1.2 Sơ đồ khối Atmega8

1.3 Sơ đồ chân Atmega8

Page 5: Báo cáo vi xử lý

1.4 Mô tả chức năng các chân Atmega8 VCC: Điện áp nguồn nuôi GND: Đất Port B (PB0…PB7)

- Port B là port I/O 8 bit với điện trở kéo lên ở bên trong, cung cấp dòng điện 40mA có thể điều khiển trực tiếp led đơn.

- Khi các chân Port B là các lối vào được đặt xuống mức thấp từ bên ngoài, chúng sẽ là nguồn dòng nếu như các điện trở nối lên nguồn dương được kích hoạt. Các chân này sẽ ở trạng thái tổng trở cao khi tín hiệu Reset ở mức tích cực hoặc ngay cả khi không có dao động.

Port C (PC0…PC6)- Port C là port I/O 8 bit với điện trở kéo lên ở bên trong, cung cấp dòng điện 40mA có

thể điều khiển trực tiếp led đơn. - Khi các chân Port C là các lối vào được đặt xuống mức thấp từ bên ngoài, chúng sẽ

là nguồn dòng nếu như các điện trở nối lên nguồn dương được kích hoạt. Các chân này sẽ ở trạng thái tổng trở cao khi tín hiệu Reset ở mức tích cực hoặc ngay cả khi không có dao động.

- Port C cũng đóng vai trò như 8 đường địa chỉ cao từ A8 đến A15 khi kết nối bộ nhớ SRAM bên ngoài.

Port D (PD0…PD7)- Port D là port I/O 8 bit với điện trở kéo lên ở bên trong, cung cấp dòng điện 40mA

có thể điều khiển trực tiếp LED đơn. - Khi các chân Port D là các lối vào được đặt xuống mức thấp từ bên ngoài, chúng sẽ

là nguồn dòng nếu như các điện trở nối lên nguồn dương được kích hoạt. Các chân này sẽ ở trạng thái tổng trở cao khi tín hiệu Reset ở mức tích cực hoặc ngay cả khi không có dao động.

Page 6: Báo cáo vi xử lý

Reset: Ngõ vào được đặt lại. ATmega8 sẽ được đặt lại khi chân này ở mức thấp trong hơn 50ns hoặc ngay cả khi không có tín hiệu xung clock. Các xung ngắn hơn không tạo ra tín hiệu đặt lại.

AVCC: Cung cấp nguồn cho Port C và bộ chuyển đổi ADC hoạt động. Ngay khi không sử dụng bộ chuyển đổi ADC thì chân AVCC vẫn phải đươc kết nối tới nguồn VCC.

AREF: Đây là chân điều chỉnh điện áp tham chiếu cho chuyển đổi A/D XTAL1: Ngõ vào bộ khuếch đại đảo và ngõ vào mạch tạo xung nhịp bên ngoài XTAL2: Ngõ ra bộ khuếch đại đảo Bộ tạo dao động thạch anh :

- XTAL1 và XTAL2 lần lượt là lối vào và lối ra của một bộ khuếch đại đảo, bộ khuếch đại này được bố trí để làm bộ tạo dao động trên chip

- Để điều khiển được bộ Vi Điều Khiển từ một nguồn xung nhịp bên ngoài, chân XTAL2 để không, chân XTAL1 được nối với tín hiệu dao động bên ngoài.

1.5 Ngắt ngoài trong Atmega8 Ngắt là tín hiệu khẩn cấp báo hiệu cho vi điều khiển cần dừng chương trình đang thực

thi lại và ưu tiên nhảy đến 1 vị trí khác để thực hiện một nhiệm vụ khẩn cấp nào đó, nhiệm vụ khẩn cấp đó là 1 chương trình con phục vụ ngắt-hay là trình phục vụ ngắt ISR(Interrupts Service Routine). Sau khi thực hiện xong trình phục vụ ngắt thì vi điều khiển sẽ quay lại tiếp tục công việc trước đó.

Page 7: Báo cáo vi xử lý

Bảng tóm tắt các vector ngắt trong ATMega8:Trong chip ATMega8 có các ngắt phục vụ Reset, External Interrupt, Timer, USART, ADC, SPI, I2C,.... được dùng với các mục đích khác nhau

Ngắt ngoài trong ATMega8Ngắt ngoài là ngắt được kích hoạt bởi các tác động điện áp đến các chân ngắt ngoài của vi điều khiển, nên ngắt ngoài là cách hiệu quả để giao tiếp đơn giản giữa người dùng và vi điều khiển.Trong chip ATMega8 có 2 ngắt ngoài là INT0 và INT1, và 2 chân ngắt tương ứng là PD2 và PD3.

Page 8: Báo cáo vi xử lý

Nếu ta kết nối với vi điều khiển như hình trên, khi đó các button dùng để tạo ngắt và khi đó sẽ có 4 Mode có thể xảy ra khi ta nhấn và nhả button. Khi không nhấn button, thì trạng thái của chân ngắt là high(vì có điện trở kéo lên; khi vừa nhấn button thì trên chân ngắt sẽ thay đổi trạng thái từ High->Low và được gọi là cạnh xuống (Falling Edge); sau đó button được giữ thì thì chân ngắt có trạng thái là Low; sau đó ta nhả nút nhấn thì trên chân ngắt sẽ thay đổi trạng thái từ Low-> High và được gọi là cạnh lên (Rising Edge). Dựa vào từng Mode để phục vụ cho từng mục đích khác nhau.Đối với ngắt ngoài ta cần quan tâm đến 3 thanh ghi: MCUCR, GICR, GIFR và SREG:

Thanh ghi MCUCR: 

Thanh ghi MCUCR là thanh ghi 8 bit và 4 bit thấp dùng để thiết lập các Mode ngắt. Trong 4 bit ISC(Interrup Senso Control) thi 2 bit ISC00, ISC01 để thiết lập ngắt INT0 và 2 bit ISC10, ISC11 để thiết lập ngắt INT1. Cách thiết lập cho mỗi ngắt tương tự nhau và bảng sau đây thiết lập Mode ngắt cho INT1 :

Thanh ghi GICR (General Interrupt Control Register):

Page 9: Báo cáo vi xử lý

Thanh ghi GICR là thanh ghi 8 bit, nhưng trong ngắt ngoài ta chỉ quan tâm đến  2 bit cuối là INT0 và INT1. Bit INT0 và INT1 dùng để thiết lập điều khiển ngắt của ngắt ngoài INT0 và INT1. Khi đó:

 INTx = 1 -> cho phép ngắt INTx.  INTx = 0 -> không cho phép ngắt INTx. Thanh ghi GIFR (General Interrupt Flag Register): 

Thanh ghi GIRF là thanh ghi 8 bit, và đối với ngắt ngoài thì ta chỉ sử dụng 2 bit cao INTF1 và INTF0. Hai bit INTF1 và INTF0 là cờ ngắt tương ứng cho ngắt ngoài INT0 và INT1. Các bit này sẽ được set lên khi có ngắt tương ứng xảy ra.

Thanh ghi SREG: 

Thanh ghi SREG là thanh ghi trạng thái, gồm  8 bit. Trong ngắt ngoài ta chỉ cần quan tâm đến bit I trong thanh ghi SREG, bit I này dùng để thiết lập cho phép ngắt toàn cục.

1.6 Timer/Counter0 trên Atmega8 Là một bộ định thời, đếm đơn giản với 8 bit. Gọi là đơn giản vì bộ này chỉ có 1 chế độ

hoạt động (mode) so với 5 chế độ của bộ Timer/Counter1. Chế độ hoat động của Timer/Counter0 thực chất có thể coi như 2 chế độ nhỏ (và cũng là 2 chức năng cơ bản) đó là tạo ra một khoảng thời gian và đếm sự kiện. Chú ý là trên các chip AVR dòng mega sau này như Atmega16,32,64…chức năng của Timer/Counter0 được nâng lên như các bộ Timer/Counter1…

Có 4 thanh ghi được thiết kế riêng cho hoạt động và điều khiển T/C0, đó là: TCNT0 (Timer/Counter Register): là 1 thanh ghi 8 bit chứa giá trị vận hành của T/C0.

Thanh ghi này cho phép bạn đọc và ghi giá trị một cách trực tiếp. TCCR0 (Timer/Counter Control Register): là thanh ghi điều khiển hoạt động của

T/C0. Tuy là thanh ghi 8 bit nhưng thực chất chỉ có 3 bit có tác dụng đó là CS00, CS01 và CS02.

Page 10: Báo cáo vi xử lý

       Các bit CS00, CS01 và CS02 gọi là các bit chọn nguồn xung nhịp cho T/C0 (Clock Select). Chức năng các bit này được mô tả trong bảng 1.

Bảng 1: chức năng các bit CS0X

TIMSK (Timer/Counter Interrupt Mask Register): là thanh ghi mặt nạ cho ngắt của tất cả các T/C trong Atmega8, trong đó chỉ có bit TOIE0 tức bit số 0 (bit đầu tiên) trong thanh ghi này là liên quan đến T/C0, bit này có tên là bit cho phép ngắt khi có tràn ở T/C0. Tràn (Overflow) là hiện tượng xảy ra khi bộ giá trị trong thanh ghi TCNT0 đã đạt đến MAX (255) và lại đếm thêm 1 lần nữa.

       Khi bit TOIE0=1, và bit I trong thanh ghi trạng thái được set (xem lại bài 3 về điều khiển ngắt), nếu một “tràn” xảy ra sẽ dẫn đến ngắt tràn.

TIFR (Timer/Counter Interrupt Flag Register): là thanh ghi cờ nhớ cho tất cả các bộ T/C. Trong thanh ghi này bit số 0, TOV0 là cờ chỉ thị ngắt tràn của T/C0. Khi có ngắt tràn xảy ra, bit này tự động được set lên 1. Thông thường trong điều khiển các T/C vai trò của thanh ghi TIFR không quá quan trọng.

2. Giới thiệu về SRF04

Page 11: Báo cáo vi xử lý

2.1 Thông số kĩ thuật :

Điện áp 5V DCDòng hoạt động < 2mATần số 40KHzGóc hoạt động < 15o

Độ phân giải 0,3 cmPhạm vi hoạt động 2cm - 5cmLoại 1 chân cho triger/echo hoặc 2 chân tương thích SRF04Đàu vào kích khởi 10uS min, mức xung TTLXung va đập Mức tín hiệu dương, bề rộng đối xứngKích thước 43x20x17 (mm)Điều khiển tự động Không định kích cỡ hoạt động, tự xử lí, hoạt động nhanhThời gian hoạt động Thời gian hồi đáp, đưa tín hiệu điều khiển

2.2 Chế độ hoat động : Chế độ này sử dụng chân kích hoạt và chân phản hồi riêng biệt và là chế độ đơn giản nhất để sử dụng.

Page 12: Báo cáo vi xử lý

Giản đồ định thời gian2.3 Chức năng các chân

- Echo Output : chân đầu ra tín hiệu phản hồi về từ cảm biên. - Triger Output : chân đầu vào kích hoạt - Mode : chân chế độ ( không được kết nối ở chế độ một) - Bộ năm chân bên kia : 5 được đóng nhãn là "programming pins" chỉ được sử dụng một lần duy nhất trong quá trình sản xuất để lập trình cho bộ nhớ Flash trên chip PIC16F630. Các chân chương trình của PIC16F630 cũng được sử dụng cho các chức năng khác trên SRF04, nên chắc chắn rằng bạn không kết nối bất cứ cái gì với các chân, hoặc bạn sẽ làm gián đoạn hoạt động mô-đun

2.4 Nguyên tắc hoạt động Từ giản đồ định thời ta thấy :

- Để SRF04 hoạt động ta cần cấp một xung ở mức cao có độ rộng ít nhất là 10uS trên chân TRI

- Sau đó SRF04 sẽ phát ra một chu kì 8 khối tín hiệu siêu âm ở tần số 40KHz và tăng dòng tín hiệu phản hồi của nó lên ở mức cao. Sau đó nó chờ phản hồi, và ngay sau khi phát hiện một vật thể nó sẽ giảm dòng phản hồi xuống. do đó dòng phản hồi sẽ là một xung có độ rộng tỉ lệ với khoảng cách tới vật thể. Bằng cách đo xung , ta hoàn toàn có thể tính toán khoảng cách. Nếu không phát hiện vật thể thì SRF05 sẽ kéo dòng phản hồi xuốc mức thấp sau 30ms .

- SRF04 cung cấp một xung phản hồi tỉ lệ với khoảng cách. Nếu đo độ rộng của xung bởi uS, sau đó chia cho 58 sẽ cho ta khoảng cách tính bằng cm, hoặc chia cho 148 sẽ cho khoảng cách tính bằng inch: uS/58=cm hoặc uS/148=inch.

- SRF04 có thể được kích hoạt nhanh chóng với mỗi 50mS, hay 20 lần / s.Bạn nên đợi 50ms trước xung kích hoạt kế tiếp, ngay cả khi SRF04 phát hiện vật thể ở

gần và xung phản hồi ngắn hơn. Điều này để đảm bảo rằng siêu âm “beep” đã tắt hẳn và không làm sai lệch tín hiệu phản hồi trong lần đo tiếp theo

Đặc biệt SRF04 chỉ có thể nhận xung trên chân TRI tối đa 20 Hz,cho nên việc kích xung trên chân TRI phải phù hợp thì SRF05 mới hoạt động chính xác.

2.5 Tính toán và xác định khoảng cách

Page 13: Báo cáo vi xử lý

Sóng siêu âm được truyền đi trong không khí với vận tốc 343 m/s. Nếu một cảm biến phát ra sóng siêu âm và thu về các sóng phản xạ đồng thời, đo được khoảng thời gian từ lúc phát ra tới lúc thu về, thì máy tính có thể xác định được quãng đường mà sóng đã di chuyển trong không gian. Quãng đường di chuyển của sóng = 2 lần khoảng cách từ cảm biến tới chướng ngại vật theo hướng phát của sóng siêu âm. =>khoảng cách từ cảm biến tới chướng ngại vật sẽ được tính theo nguyên lý

d = \f(v.t,2

Trong đó : d: khoảng cách cần đo

v: vận tốc sóng siêu âm trong môi trường truyền sóng

t: thời gian từ lúc sóng được phát đi đến lúc sóng được ghi nhận lại

Đối tượng đo :mức độ sóng âm hồi tiếp phụ thuộc vào cấu tạo của đối tượng và góc phản xạ nó. Một đối tượng mềm có thể cho ra tín hiệu phản hồi yếu hoặc không có phản hồi .Một đối tượng ở một góc cân đối thì mới có thể phản hồi tín hiệu một chiều cho cảm biến nhận.

Vùng phát hiện của SRF05:Nếu ngưỡng để phát hiện ra đối tượng được đặt quá gần cảm biến thì sóng âm phản hồi sẽ rơi vào điểm mù.Còn nếu ngưỡng này đặt ở một khoảng cách quá lớn thì sẽ không thể thu được sóng âm phản xạ do bị triệt tiêu bởi nhiễu.Vùng phát hiện của SRF05 nằm trong khoảng 1 mét chiều rộng và không quá 4 mét xa.

Page 14: Báo cáo vi xử lý

3.Giới thiệu về LCD

3.1 Chức năng chân LCD

Số Chân Tên Chức Năng1 Vss Chân nối đất cho LCD, khi thiết kế mạch ta nối chân này với

GND của mạch điềukhiển

2 Vdd Chân cấp nguồn cho LCD, khi thiết kế mạch ta nối chân này với VCC=5V của mạchđiều khiển

3 Vee Điểu khiển độ tuơng phản của LCD4 RS Chân chọn thanh ghi (Register select). Nối chân RS với logic

“0” (GND) hoặc logic“1” (VCC) để chọn thanh ghi.+ Logic “0”: Bus DB0-DB7 sẽ nối với thanh ghi lệnh IR của LCD (ở chế độ “ghi” -write) hoặc nối với bộ đếm địa chỉ của LCD (ở chế độ “đọc” - read)+ Logic “1”: Bus DB0-DB7 sẽ nối với thanh ghi dữ liệu DR bên trong LCD.

5 R/W Chân chọn chế độ đọc/ghi (Read/Write). Nối chân R/W với logic “0” để LCD hoạtđộng ở chế độ ghi, hoặc nối với logic “1” để LCD ở chế độ đọc

6 E Chân cho phép (Enable). Sau khi các tín hiệu được đặt lên bus DB0-DB7, các lệnhchỉ được chấp nhận khi có 1 xung cho phép của chân E.+ Ở chế độ ghi: Dữ liệu ở bus sẽ được LCD chuyển vào(chấp nhận) thanh ghi bêntrong nó khi phát hiện một xung (high-to-low transition) của tín hiệu chân E.+ Ở chế độ đọc: Dữ liệu sẽ được LCD xuất ra DB0-DB7 khi phát hiện cạnh lên (low-to-high transition) ở chân E và được LCD giữ ở bus đến khi nào chân E xuống mứcthấp.

7-14 BD0-BD7 Tám đường của bus dữ liệu dùng để trao đổi thông tin với MPU. Có 2 chế độ sửdụng 8 đường bus này :+ Chế độ 8 bit : Dữ liệu được truyền trên cả 8 đường, với bit MSB là bit DB7.+ Chế độ 4 bit : Dữ liệu được truyền trên 4 đường từ DB4 tới DB7, bit MSB là DB7Chi tiết sử dụng 2 giao thức này được đề cập ở phần sau

3.2 Sơ đồ khối LCD

Page 15: Báo cáo vi xử lý

3.2.1 Các thanh ghi

Chíp HD44780 có 2 thanh ghi quan trọng. Thanh ghi IR: để điều khiển LCD. Nguời dùng phải ra lệnh thông qua đuờng bus tín hiệu, mỗi lệnh đuợc nhà cung cấp qui định rõ rang. Người dung chỉ việc cung cấp địa chỉ lệnh bằng cách nạp vào thanh ghi IR. Nghĩa là, khi ta nạp vào thanh ghi IR một chuỗi 8 bit, chíp HD44780 sẽ tra bảng mã lệnh tại địa chỉ mà IR cung cấp và thực hiện lệnh đó Thanh ghi DR dung để chứa dữ liệu 8 bit để ghi vao RAM DDRAM hoặc CG RAM. Hoặc dung để chứa dữ liệu từ hai vùng RAM gửi ra MPU. Nghĩa là, khi MPU ghi thông tin vào DR, mạch nội bên trong chíp sẽ tự động ghi thông tin này vào DDRAM hoặc CGRAM. Hoặc khi thông tin về địa chỉ được ghi vào IR, dữ liệu ở địa chỉ này trong vùng RAM nội củaHD44780 sẽ được chuyển ra DR để truyền cho MPU.3.2.2 Cờ báo bận BF

Khi thực hiện các hoạt động bên trong chíp, mạch nội bên trong cần một khoảng thời gian để hoàn tất. Khi đang thực thi các hoạt động bên trong chip như thế, LCD bỏ qua mọi giao tiếp với bên ngoài và bật cờ BF(thông qua chân DB7 khi có thiết lập RS=0, R/W=1) lên để báo cho MPU biết nó đang “bận”. Dĩ nhiên, khi xong việc, nó sẽ đặt cờ BF lại mức 0.

3.2.3 Bộ đếm địa chỉ AC

Như trong sơ đồ khối, thanh ghi IR không trực tiếp kết nối với vùng RAM (DDRAM và CGRAM) mà thông qua bộ đếm địa chỉ AC. Bộ đếm này lại nối với 2 vùng RAM theo kiểu rẽ nhánh. Khi một địa chỉlệnh được nạp vào thanh ghi IR, thông tin được nối trực tiếp cho 2 vùng RAM nhưng việc chọn lựa vùng RAM tương tác đã được bao hàm trong mã lệnh.

Sau khi ghi vào (đọc từ) RAM, bộ đếm AC tự động tăng lên (giảm đi) 1 đơn vị và nội dung của AC được xuất ra cho MPU thông qua DB0-DB6 khi có thiết lập RS=0 và R/W=1 (xem bảng tóm tắt RS - R/W).

Lưu ý: Thời gian cập nhật AC không được tính vào thời gian thực thi lệnh mà được cập nhật sau khi cờ BF lên mức cao (not busy), cho nên khi lập trình hiển thị, bạn phải delay một khoảng tADDkhoảng 4uS-5uS (ngay sau khi BF=1) trước khi nạp dữ liệu mới. Xem thêm hình bên dưới

Page 16: Báo cáo vi xử lý

3.2.4 Vùng RAM hiển thị DDRAM

Đây là vùng RAM dùng để hiển thị, nghĩa là ứng với một địa chỉ của RAM là một ô kí tự trên màn hình và khi bạn ghi vào vùng RAM này một mã 8 bit, LCD sẽ hiển thị tại vị trí tương ứng trên màn hình một kí tự có mã 8 bit mà bạn đã cung cấp. Hình sau đây sẽ trình bày rõ hơn mối liên hệ này

Vùng RAM này có 80x8 bit nhớ, nghĩa là chứa được 80 kí tự mã 8 bit. Những vùng RAM còn lại không dùng cho hiển thị có thể dùng như vùng RAM đa mục đích.

Lưu ý là để truy cập vào DDRAM, ta phải cung cấp địa chỉ cho AC theo mã HEX

3.2.5 Vùng ROM chứa kí tự CGROM: Character Generator ROM

Vùng ROM này dùng để chứa các mẫu kí tự loại 5x8 hoặc 5x10 điểm ảnh/kí tự, và định địa chỉ bằng 8 bit. Tuy nhiên, nó chỉ có 208 mẫu kí tự 5x8 và 32 mẫu kí tự kiểu 5x10 (tổng cộng là 240 thay vì 28= 256 mẫu kí tự). Người dùng không thể thay đổi vùng ROM này.

Page 17: Báo cáo vi xử lý

3.2.6 Vùng RAM chứa kí tự đồ họa CGRAM: (Character Generator RAM)

Như trên bảng mã kí tự, nhà sản xuất dành vùng có địa chỉ byte cao là 0000 để người dùng có thể tạo các mẫu kí tự đồ họa riêng. Tuy nhiên dung lượng vùng này rất hạn chế: Ta chỉ có thể tạo 8 kí tự loại 5x8 điểm ảnh, hoặc 4 kí tự loại 5x10 điểm ảnh. Để ghi vào CGRAM, hãy xem hình 6 bên dưới

Page 18: Báo cáo vi xử lý

Chương II: Thiết kế mạch

1. Phân tích yêu cầu đề tài “Cảm biến “ trong tiếng anh gọi là sensor xuất phát từ chữ sense tức là cảm nhận. Từ ngàn xưa người tiền sử đã nhờ vào các giác quan xúc giác để cảm nhận, tìm hiểu đặc điểm của thế giới tự nhiên và học cách sử dụng những hiểu biết đó nhằm mục đích khai thác thế giưới xung quanh phục vụ cho cuộc sống của họ. Trong thời đại phát triển của khoa học và kĩ thuật ngày nay con người không chỉ dựa vào các cơ quan xúc giác của cơ thể để kám phá thế giới. các chức năng xúc giác để nhận biết các vật thể hiện tượng xảy ra trong thiên nhiên được tăng cường nhờ các phát triển dụng cụ dung để đô lường và phân tích mà ta gọi là cảm biến. Cảm biến được định nghĩa như các thiết bị dung để biến đổi các ddaij lượng vật lý và các đại lượng không điện cần đo thành các đại lượng điện có thể đo được( như dòng điện,điện thế,điẹn dung , trở kháng…). Nó là thành phần quan trọng nhất trong các thiết

Page 19: Báo cáo vi xử lý

bị đo hay trong các hệ thống điều khiển tự động . có thể nói: nguyên lý hoạt động của một cảm biến, trong hiều trường hợp thục tế cũng chính là nguyên lý của phép đo hay của phương pháp điều khiển tự dộng.

Đã từ lâu cảm biến đã được sử dụng như những bộ phận để cảm nhận và phát hiện, nhưng chỉ từ vài chục năm trở lại đây chúng mới thể hiện rõ vai trò quan trọng trong các hoạt động của con người. Nhờ những thành tựu mới của khoa học và công nghệ trong lĩnh vực vật liệu, thiết bị điện tử và tin học, các cảm biến đã được giảm thiểu kích thước, cải thiện tính năng và ngày càng mở rộng phạm vi ứng dụng. giườ đây không có một lĩnh vực nào mà ở đó không sử dụng các cảm biiến. chúng có mặt trong các hệ thống tự động phức tạp, người máy, kiểm tra chất lượng sản phẩm, tiế kiệm năng lượng, chống ô nhiễm môi trường. Cảm biến cũng được sử dụng rộng rãi trong lĩnh vực giao thông vận tải, hang tiêu dung, bảo quản thực phẩm,ô tô, trò chơi điện tử…..

Một trong các ứng ụng rất dộng rãi và phổ biến đó là cảm biến vị trí và dịch chuyển. Vì việc kiểm tra vị trí và dịch chuyển dống vai trò raats quan trọng đối với hoạt động của nhiều máy móc,công cụ. Hơn nữa, một số đại lượng vật lý có thể đo được thông qua việc xác định sự dịch chuyển của một vật chịu tác động của đại lượng vật lý đó. Có nhiều phương pháp để xác định vị trí và dịch chuyển. trong phạm vi môn học, chúng ta có thể thiết kế được một mạch điện tử đơn giản để đo khoang cách, sử dụng cảm biến siêu âm. Để làm mạch này cần thiết kế được 3 phần chính : bộ phận cảm biến - bộ phận xử lý - bộ phận hiển thị.

2. Xây dựng sơ đồ khối của mạch 3 khối chính

3. Phân tích chức năng,thông số kĩ thuật từng khối Khối cảm biến siêu âm SRF04

(giới thiệu mục I.2) Khối điều khiển ATMEGA8

(giới thiệu mục I.1) Khối hiển thị LCD

(giới thiệu mục I.3) Khối nguồn

Cung cấp nguồn cho mạch Khối cảnh báo

Cảnh báo khi đối tượng không nằm trong khoảng cách an toàn hoặc vận tốc vật lớn quá mức.

4. Xây dựng sơ đồ nguyên lý toàn mạch

Kh i hi n thố ể ị LCD

Kh i đi u khi nố ề ể ATMEGA8

Kh i c m bi n siêuố ả ế âm SRF04

Page 20: Báo cáo vi xử lý

5. Mạch in

6. Đo đạc,kiểm tra,đánh giá chất lượng của mạch

Page 21: Báo cáo vi xử lý

Mạch chạy ổn định,ngoài việc đo được khoảng cách còn đo được vận tốc chuyển động của vật nếu vật chuyển động(mở rộng).

Chương III: Lập trình và mô phỏng

1. Thuật toán đo khoảng cách:

2. Thuật toán đo vận tốc

3. L u đ ch ng trình chínhư ồ ươ 3.1 Các biến sử dụng trong chương trình

Page 22: Báo cáo vi xử lý

mod (char): biến chọn chế độ- mod = 1: đo khoảng cách- mod = 2: đo vận tốc- mod = 3: set khoảng cách an toàn

count (int): lưu giá trị đếm của TIMER0 đặc trưng cho độ rộng xung echo do cảm biến siêu âm trả về

count_pre (int): tương tự count, sử dụng trong mod 2 overflow (char): đếm số lần tràn của TIMER0 khi độ rộng xung trả về vượt quá

giới hạn đếm của TIMER0. alert (char): giới hạn khoảng cách [mm] gây ra báo động limit (int): tương tự alert, nhưng tính theo độ rộng xung

3.2 Các ngoại vi Cảm biến siêu âm SRF04

- Nhận xung trigger từ ATMEGA8 kích hoạt đo- Trả về xung echo tỉ lệ với khoảng cách đo được

Button 1: nút bấm set mod hoạt động (gây ra ngắt ngoài INT1) Button 2: thay đổi biến alert Loa và đèn cảnh báo LCD

3.3 Lưu đồ3.3.1 Chương trình chính

3.3.2 Các chương trình ngắt

Page 23: Báo cáo vi xử lý

a) Ngắt tràn TIMER0

b) Ngắt ngoài INT0 (do xung echo SRF04 trả về gây ra)

c) Ngắt ngoài INT1 (do button1 được bấm)

Page 24: Báo cáo vi xử lý

4. Giải thích công thức4.1Chuy n đ i t giá tr đ m c a TIMER sang kho ng cáchể ổ ừ ị ế ủ ả

Theo datasheet SRF04, n u chu kì đém c a TIMER là T = 1us thì kho ng ế ủ ảcách tính theo cm là:

d= count58

(1)

TIMER0 c a ATMEGA8 đ c kh i t o v i chu kì đ m T1 = 32 usủ ượ ở ạ ớ ế

count1 = count / 32 count = count1 * 32

thay vào (1) ta có d = 32 * count1 / 58 [cm]

d = 16 * count1 / 29 [cm] = 160 * count1 / 29 [mm] ≈ 16 * count1 / 3

4.2 Chuyển đổi giá trị đếm của TIMER sang tốc độTương tự ta có :d = 16 * | count – count_pre|

d = 16 * count / 3

Page 25: Báo cáo vi xử lý

Chương IV: Kết luận

Ưu điểm - khoảng cách mà cảm biến có thể phát hiện lên tới 1m.- sóng phản hồi không phụ thuộc vào màu sắc,bề mặt của vật thể hay tính chất phản xạ ánh sang của đối tượng. - tín hiệu đáp ứng của cảm biến analog là tỉ lệ tuyến tính với khoảng cách. Điều này đặc biệt lí tưởng cho các ứng dụng như theo dõi các mức vật chất, mức độ chuyển động của đối tượng.- mạch điện tử đơn giản, xử lý tín hiệu dễ ràng.

Nhược điểm - Cảm biến siêu âm yêu cầu đối tượng có một diện tích bề mặt tối thiểu (phụ thuộc vào từng loại cảm biến)- Sóng phản hồi mà cảm biến siêu âm nhận được có thể chịu ảnh hưởng của sóng âm thanh tạp âm - Cảm biến siêu âm yêu cầu một khoảng thời gian sau mỗi lần sóng phát đi để sẵn sàng nhận sóng phản hồi. Kết quả nhìn chung chậm hơn các cảm biến khác - Cảm biến siêu âm có giưới hạn khoảng cách phát hiện nhỏ nhất. -S thay đổi của môi trường như nhiệt độ (vận tốc âm thanh phụ thuộc vào nhiệt độ),áp suất, sự chuyển động không đều của không khí, bụi bẩn bay trong không khí gây ảnh hưởng đến kết quả đo. Nhiệt độ của bề mặt đối tượng làm ảnh hưởng đến phạm vi hoạt động của cảm biến, làm méo dạng sóng ,làm cho khoảng cách phát hiện ngắn lại và kết quả không chính xác. - Bề mặt phẳng phản hồi năng lượng của sóng siêu âm tốt hơn mặt gồ ghề,tuy nhiên bề mặt trơng phẳng lại có đòi hỏi khắt khe về vị trí góc tạo thành giữa cảm biến và mặt phẳng đối tượng.

Chương V: Tài liệu tham khảo

www.atmel.com/

https://www.sparkfun.com/ datasheets / LCD /

http://vi.wikipedia.org/