Tải bản đầy đủ (.pdf) (69 trang)

Do ap suat hien thi tren LCD

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.59 MB, 69 trang )

Trờng đại học quốc gia hà nội
Trờng đại học công nghệ

Nguyễn Hữu Nhận

Xây dựng hệ thống đo áp suất, hiển thị trên màn
hình tinh thể lỏng

Khoá luận tốt nghiệp hệ chính quy
Ngành: Điện tử và kỹ thuật máy tính.

Hà nội 2005


Trờng đại học quốc gia hà nội
Trờng đại học công nghệ

Nguyễn Hữu Nhận

Xây dựng hệ thống đo áp suất, hiển thị trên màn
hình tinh thể lỏng

Khoá luận tốt nghiệp hệ chính quy

Ngành: Điện tử và kỹ thuật máy tính.
Cán bộ hớng dẫn: Ngô Diên Tập.

Hà nội 2005


Lời cảm ơn


Trớc hết em xin bày tỏ lòng biết ơn xâu sắc tới thầy
Ngô Diên Tập, ngời đã hớng dẫn em trong suốt thời gian
qua, giúp em hoàn thành nhiệm vụ đặt ra cho khoá luận.
Em xin chân thành cảm ơn các thầy, các cô trong
trờng đại học Công Nghệ đã dạy dỗ em, tao điều kiện
cho em học tập và hoàn thành bài khoa luận này.
Xin chân thành cảm ơn sự góp ý và giúp đỡ của các
bạn trong lớp k46DC trong thời gian qua.

Hà nội tháng 6 năm 2005.
Nguyễn hữu Nhận


Tóm tắt khoá luận
Sau thời gian tìm hiểu em đã hoàn thành bài khoá luận với đề tài: Xây dựng
hệ thống đo áp suất, hiển thị với màm hình tinh thể lỏng. Nội dung của nó đợc
tóm tắt nh sau.
Trớc hết là việc tìm hiểu về cơ sở lý thuyết, để xây dựng hệ thống đo lờng
em sử dụng vi điều khiển, đặc điểm nổi bật của vi điều khiển AVR và đặc biệt là vi
điều khiển ATMEGA8535. Sau đó là cơ sở lý thuyết về áp suất, cảm biến áp suất,
bộ hiển thị màm hình tinh thể lỏng (LCD), sơ đồ nguyên lý chung của hệ thống và
mạch nạp cho vi điều khiển.
Phần tiếp theo là phần thực nghiệm. Phần này trình bày về việc xây dựng hệ
thống đo áp suất thực tế theo đúng nh lý thuyết đã tìm hiểu, kết quả thu đợc từ
hệ thống, nhận xét về hệ thống, sai số của hệ thống và hớng phát triển sản phẩm
thực tế cho ứng dụng.


Mục lục
Mở đầu.


3

Phần 1 cơ sở lý thuyết.

5

Chơng1 tổng quan về vi điều khiển.

5

1.1 Tổng quan về vi mạch vi điều khiển.

5

1.2 một số hộ vi điều khiển phổ biến.

6

1.2.1 Vi điều khiển Microchip PIC 12Xxxx, 16Xxxx, 17Xxxx,
18Xxxx.
1.2.2 Intel 8051.
1.2.3 Motorola 86HCxx.
1.2.4 Atmel avr

6
7
7
7


Chơng 2 kiến trúc của vi điều khiển AVR.
2.1 Bộ nhớ chơng trình

10
10

2.2 Bộ nhớ dữ liệu.
2.2.1Tệp thanh ghi
2.2.2 Thanh ghi vào/ra(I/O).
2.2.3 Bộ nhớ SRAM bên trong.
2.2.4 Bộ nhớ SRAM bên ngoài
2.2.5 EEPROM .
2.3 Khối số học logic

11
11
11
12
12
12
12

2.4 Bộ định thời.
2.5 Bộ truyền nhận AURT.

12
13

2.5.1 Việc truyền.
2.5.2 Việc nhận.

2.6 Cấu trúc ngắt

13
13
14

2.7 Bộ so sánh analog

14

2.8 Bộ biến đổi A/D bên trong.

15

2.9 Bộ định thời WATCHDOG bên trong.

17
18
18

Chơng 3 Sơ đồ khối hệ thống.
3.1 Đăc trng của vi điều khiển ATMEGA8535.


3.1.1. Cấu hình chân

20

3.1.2 Sơ đồ khối cấu trúc của vi điều khiển AVR ATMEGA8535.
3.2 Đôi nét về LCD.


22
23

3.3 Cm bin ỏp sut.
3.3.1 i cng v ỏp sut

25
25

3.3.2. đôi nétCm bin ỏp sut
3.3.3. Cảm biến áp suất MPX6115.
Chơng 4: Thực hiện ghép nối các khối chức năng.
4.1 Nguồn nuôi.

29
32
34
34

34
35
36
37
Chơng 5: Xây dụng bộ nạp và phần mềm nạp chơng 39
trình cho vi điều khiển.
39
5.1 Thit k ngun 5V cho MCU AVR:
40
5.2 Tin hnh lm mch np:

4.2 Ghép nối bộ cộng hởng tạo xung nhịp cho hệ thống
4.3 Ghép nối LCD với vi điều khiển.
4.4 Ghép nối ngoại vi và sử dụng bộ biến đổi ADC bên trong.
4.5 Sơ đồ nguyên lý tổng thể của hệ thống.

5.3 Ni mch np vi AVR:

41

5.4 Phn mm:
5.4.1. Trình by túm tt cỏch s dng 2 phn mm .

42
42

Phần 2 kết quả thực nghiệm.

49

I. Phần cứng của hệ thống.
II. Chơng trình phần mềm của hệ thống
III. Kết quả thu đợc từ hệ thống:

49
49
50

Kết luận

53


Phụ lục

54

A. Chơng trình phần mềm hệ thống.

54

B. Định hớng về sản phẩm thực tế.

58


Mở Đầu
Bộ vi xử lý đầu tiên ra đời năn 1971 đã mở ra một thời đại mới trong công
nghệ điện tử tin học, có ảnh hởng sâu sắc đến mọi lĩnh vực khoa học công nghệ.
Các hệ thống đợc thiết kế dựa trên nền tảng của các bộ vi xử lý có các khả năng
mà các hệ thống điện tử tơng tự/số thông thờng không thể thực hiện đợc.
Với mục tiêu hạn chế tối đa linh kiện ngoài khi xây dựng một hệ thống có
sử dụng vi xử lý, các hãng chế tạo bán dẫn đã tích hợp cách mạng ngoại vi và bộ vi
xử lý lên một chíp duy nhất để tạo ra các bộ vi điều khiển.
Những bộ vi điều kiện mới nhất của MICROCHIP, MOTOROLA, ATMEL,
AVR, đã chứa bên trong nhiều thiết bị ngoại vi nh các loại bộ nhớ, các bộ đếm
16 bít, khối ADC phân giải 10 12 bít với nhiều lối vào, các cổng truyền thông
loại PSP/ UART / I2C / CAN/ USB, khối điều khiển màn biểu thị tinh thể lỏng,
thậm chí cả khối điều chế / giải điều chế dải tần UHF dùng cho kết nối không
dây Giải pháp này làm cho việc ứng dụng các vi điều khiển để chế tạo các hệ
thống có vi xử lý thêm thuận lợi, thu gọn đáng kể kích thớc mạch điện và đạt tỷ
số hiệu năng / giá thành càng rất cao.

Trong một số lĩnh vực sản xuất cũng nh đời sống, việc đo đạc, theo rõi và
thu thập các thông số về điều kiện môi trờng nh nhiệt độ, độ ẩm, áp suất, gió
là một nhu cầu cần thiết. việc xây dựng đợc một hệ thống tự động đáp ứng đợc
các yêu cầu trên rất có ý nghĩa thực tiễn. Tuỳ từng lĩnh vực khác nhau mà các
thông số khác nhau đợc sử dụng. Nhng theo thống kê thì nhiệt độ và áp suất là
hai thông số đợc quan quan tâm nhièu nhất, vì vậy trong bài khoá luận này em chỉ
lấy việc xây dựng hệ thống áp suất làm ví dụ.
Những hệ thống tự động theo dõi thu thập số liệu có thể thực hiện đợc trên
máy tính bàng cách lắp giáp thêm những Card mở rộng, để ghép nối máy tính với
các bộ phận cảm biến. Giải pháp này có u điểm là khai thác đợc khả năng đa
nhiệm vụ của máy tính: máy tính để điều khiển viêc thu thập số liệu đồng thời
dùng để xử lý kết quả.
Tuy nhiên trong một số công tác quan trắc cụ thể, việc sử dụng các hệ thống
xây dựng trên cơ sở máy tính tỏ ra cha hẳn đã phù hợp do hệ thống có kích thớc
lớn, không hoạt động lâu dài trong điều kiện đo đạc ngoài hiện trờng có điều kiện
thời tiết khắc nghiệt, tại các địa điểm xa nguồn điện lới
Một hớng khác để xây dựng các hệ thống thu thập số liệu là sử dụng bộ vi
điều khiển đóng vai trò nh bộ xử lý trung tâm, điều khiển toàn bộ hoạt động của
hệ thống. Theo xu hớng áp dụng các vi điều khiển để thiết kế các hệ thống đo
lờng điều khiển tự động, trong khuôn khổ bài luận văn này em tập trung nghiên
cứu, tìm hiểu, áp dụng vi điều khiển ATMEGA8535 của ATMER để thiết kế chế


tạo một hệ thống thu thập số liệu về áp suất phục vụ các công tác nghiên cứu và
giám sát môi trờng.
Với mục đích hiểu rõ chức năng và làm chủ phơng pháp lập trình cho khối
bên trong của vi điều khiển ATMEGA8535 gồm các cổng vào/ra số, các bộ đếm,
cổng truyền nhận đông bộ và không đồng bộ, khối biến đổi tơng tự số DAC
Tìm hiểu xây dựng sơ đồ khối tổng thể cho hệ thống đo đo lờng (đo áp
suất).

Tìm hiểu khối chức năng hiển thị kết quả đo (modun LCD) và ghép nối
chúng với vi điều khiển.
Tìm hiểu về cảm biến (cảm biến áp suất), nguyên lý hoạt động và sự lựa
chon cảm biến.
Thiết kế lắp ráp phần cứng và phần mền điều khiển hệ thống.


Phần I: cơ sở lý thuyết
Chơng 1: Tổng quan về vi điều khiển.
1.1 Tổng quan về vi mạch vi điều khiển.
Hiện nay việc thiết kế và chế tạo ra các bộ vi xử lý phát triển theo hai hớng
chính. Hớng thứ nhất là thiết kế các bộ vi xử lý mạnh tốc độ cao- thực hiện hàng
tỉ lệnh mỗi giây, độ dài từ dữ liệu lớn 32 hoặc 64 bit, truy cập không gian bộ nhớ
tới hàng trăm Mbyte. Các bộ vi xử lý này đợc dùng trong các hệ thống cần có
công suất tính toán cao nh máy tính cá nhân, các hệ thống điều khiển trong công
nghiệp. Hớng thứ hai là thiết kế, chế tạo các vi điều khiển (microcontroller), đó là
một vi khối: bộ nhớ, bộ đếm, bộ biến đổi tơng tự số, bộ so sánh, các cổng truyền
thông Nói khác đi, đó chính là một hệ thống máy tính trong một vi mạch. Các
bộ vi điều khiển điển hình là Motorola 68HC11, Intel 8051, microchip PIC,
ATMEL AVR
Nhân tố chính thúc đẩy việc nghiên cứu chế tạo các vi mạch vi điều khiển là
tính đa dụng, dễ lập trình, nhỏ gon, tiết kiệm năng lợng và giá thành thấp. Vi điều
khiển rất hấp dẫn trong các hệ thống điều khiển điện tử có kích thớc nhỏ, chức
năng đa dạng, dễ dàng tích hợp vào trong hệ thống để thực hiên tất cả các chức
năng điều khiển.
Bộ vi điều khiển đợc dùng rộng rãi trong các thiết bị điện tử: Chúng có mặt
trong các thiết bị viễn thông, các máy văn phòng, thiết bị giải trí, đồ điện tử gia
dụng và cả trong đồ chơi cho trẻ em. Các thiết bị đó nói chung đều cần một cơ sở
điều khiển thông minh, có khả năng tơng tác với ngời sử dụng.



Hình trên là sơ đồ khối của vi điều khiển có đầy đủ tính năng và các thiết bị
bên ngoài có thể nối đợc với bộ vi điều khiển.
Các thành phần của vi điều khiển là CPU, RAM, ROM, cổng vào/ra số, giao
diện truyền thông nối tiếp, bộ đếm thời gian, chuyển đổi tơng tự số A/D và số
tơng tự D/A. CPU thực hiện các chỉ thị đợc lu trong bộ nhớ chơng trình ROM
để điều khiển tất cả các phần còn lại. RAM đợc dùng để lu các thiết lập và các
biến đợc sử dụng trong chơng trình. ROM dùng để lu chơng trình và số liệu
cố định. Bộ nhớ ROM của vi điều khiển sau khi đợc nạp chơng trình chở thành
phần sụn. Bộ nhớ chơng trình ROM này có thể là loại ROM mặt nạ: chơng trình
đợc đa vào ngay trong quá trình chế tạo vi mạch, loại OTP ROM cho phep nạp
chơng trình một lần, còn loại EPRROM có thể ghi xoá nhiều lần, chúng đợc lập
trình bởi nhà thiết kế hệ thống.
Chơng trình cho vi điều khiển là một tập lệnh đã dịch thành mã máy(thờng
đợc nạp trực tiếp từ máy tính vào bộ nhớ ROM bên trong vi điều khiển thông qua
bộ nạp chơng trình). Một phía bộ nạp chơng trình nhận dữ liệu từ cổng máy tính,
phía khác nó đa dữ liệu vào vi điều khiển qua các chân nạp chơng trình của vi
mạch, các chân này lại là các chân vào/ra thông thờng sau khi vi điều khiển đă
đợc nạp chơng trình.
Các cổng vào/ra số cho dữ liệu nhị phân di chuyển vào ra qua cá chân của vi
mạch. Các chân này dùng để ghép nối vi điều khiển với các thiết bị vào/ra số hay
ghép nối với bộ vi điều khiển khác để thực hiện các chức năng khác nhau.
Cổng truyền dữ liệu nối tiếp tạo khả năng giao tiếp của hệ thống với các hệ
thống khác qua chuẩn giao thức bao gồm SPI, I2C, UART, CAN
Khối chuyển đổi A/D cho phép vi điều khiển chuyển đổi các mức điện áp tơng
tự từ lối vào thành số để có thể xử lý số và lu trữ. Khối D/A tạo cho vi điều khiển
có thể đa ra mức điện áp tơng tự cho thiết bị không tơng thích với điều khiển
số.
Các bộ đếm dùng để tạo ra các nhịp thời gian chính xác hoặc để đếm số lợng
xung.

1.2 Một số họ vi điều khiển phổ biến.
1.2.1 Microchip PIC 12Xxxx, 16Xxxx, 17Xxxx, 18Xxxx.
-

Đóng vỏ 8-18-28-40 chân, tơng ứng với 5-13-22-33 chân vào/ra
Dung lợng bộ nhớ ROM chơng trình 512 byte đến 8 Kbyte.
Có 25 byte đến 400 byte RAM.
Có khối UART ở các loại cấp trung, cấp cao.
Có 1 đến 3 timer 8 bit,16 bit.
Bộ DAC 8 đến 10 bit, 6 đến 8 kênh vào.
Có bộ nhớ EEPROM dung lợng 64 đến 512 byte ở họ Fxxx.
Tần số xung nhịp từ 4 đến 40 MHz.
Tập lệnh RISC.


-

Đa số nạp trình theo kiểu nối tiếp, theo giao thức ICSP.

1.2.2 Intel 8051.
-

Đóng vỏ 40 chân, có 32 chân vào ra.
Dung lơng bộ nhớ ROM tuỳ theo các phân họ, từ 0 đến 20 Kbyte.
Có 128 byte RAM.
Có khả năng định địa chỉ cho 64 Kbyte bộ nhớ ngoài.
Có khối UART.
Có 2 hoặc 3 timer 16 bit.
Tần số xung nhịp 12- 24 MHz.
Nạp trình song song ở các phân họ có bộ nhớ chơng trình.


1.2.3 Motorola 86HCxx.
-

Đóng vỏ PLCC 52,68 hoặc 82 chân.
38 chân vào ra.
Không có hoặc tối đa là 20 Kbyte bộ nhớ lệnh.
Có 1Kbyte bộ nhớ RAM bên trong.
Có khối UART.
5 bộ timer 16 bit.
Bộ ADC 8 bit, 6- 8 kênh vào.
Có 512 byte bộ nhớ EEPROM.
Có khả năng định địa chỉ đến 16 Kbyte cho bộ nhớ ngoài.
Tần số xung nhịp 8 MHz.
Nạp chơng trình song song.

1.2.4 Atmel avr.
-

Đóng vỏ 8-20-40-64 chân, tơng ớng với 3-15-32 chân vào ra.
Dung lơng bộ nhớ chơng trình 512 byte- 8 Kbyte.
Có 128 byte đến 512 byte RAM.
Có khối UART.
Có 1 đến 2 timer 8 bit, một số loại có timer 16 bit.
Bộ ADC 10 bit, 6_8 lối vào.
Có bộ nhớ EEPROM dung lợng 64- 512 byte.
Tần số xung nhịp từ lên tới 12 MHz.
Tập lệnh RISC.
Nạp chơng trình theo kiểu nối tiếp, theo giao thức ICSP.


Trong bài khoá luận này họ vi điều khiển AVR đã đợc lựa chon bởi vì nó
có đầy đủ chức năng của một vi điều khiển, và nó còn có thêm nhiều khối chức
năng tạo nên sự tiện lợi cho việc thiết kế các hệ thống đo lờng:
1. Kiến trúc RISSC với hầu hết các lệnh có chiều dài cố định, truy cập bộ
nhớ nạp lu trữ, 32 thanh ghi đa năng.


2. Kiến trúc kiểu đờng ống lệnh kiểu hai tầng cho phép làm tăng tốc độ
thi hành lệnh.
3. Có chứa nhiều bộ phận ngoại vi ngay trên chíp, bao gồm cổng I/O số, bộ
biến đổi ADC, bộ ngớ EEPROM, bộ định thời, UART, bộ định thời
RTC, bộ điều chế độ rộng xung (PWM). Đặc điểm này đợc xem là
nổi bật so với nhiều vi điều khiển khác vì trong khi nhiều vi điều khiển
khác phải rạo bộ truyền nhận UART hoặc giao diện SPI bằng phần mền
hay máy ảo thì trên vi điều khiển AVR lại đợc thực hiện bằng phần
cứng. Trên các vi điều khiển AVR đã tích hợp sẵn:
-

Đến 48 đờng dẫn vào ra (I/O) lập trình đợc.
2 bộ truyền nhận UART lập trình đợc.
Một giao diện SPI đồng bộ.
Một giao diện TWI đông bộ tơng thích I2C.
3 bộ timer/counter 8 bit.
Một bộ timer/counter 16 bit với chức năng so sánh và bắt mẫu
4 lối ra điều biến độ rộng xung
1 đồng hồ thời gian thực(RTC-timer)
Bộ biến đổi DAC 10 bit với 8 kênh.
Một bộ phát hiện trạng thái sụt áp nguồn nuôi.
Một bộ so sánh analog
Một bộ đinh thời watchdog.


Tất nhiên số lợng cụ thể của các bộ phận ngoại vi khác nhau giữa các
vi điều khiển AVR cụ thể. Điểm đáng lu ý đối với các thiết bị ngoại vi là:
từng bộ phận đợc thiết kế nh modul đa năng. Vì vậy khi làm quen với
một modul phần cứng thì đã có kinh nghiệm khi gặp lại modul này trên các
vi điều khiển khác.
4. Hầu hết các lệnh của, trừ các lệnh nhảy va nap/lu trữ, đều đợc thực
hiện trong một chu kỳ xung nhịp.
5. Hoạt động với tốc độ đòng hồ đến 12MHz. So với các vi điều khiển khác
thì vi điều khiển trong họ ATMEL có tần số xung nhip tơng đối cao.
Xung nhịp do bộ dao động tạo ra cũng chính là xung nhịp của hệ thống,
không hề phải cho qua bộ chia tần nh trong trờng hợp các bộ vi điều
khiển ra đời trớc đó. Vì vậy mà tôc độ xử lý lệnh tơng đối cao (12
MPIS). Một số vi điều khiển khác cũng có tần số xung nhịp tơng đối
cao, thậm chí còn cao hơn cả các vi điều khiển AVR, nhng chúng lại
có dòng tiêu thụ tơng đối cao, và không có các bộ phận ngoại vi tích
hợp sẵn tiện dụng cho ngời sử dụng nh các vi điều khiển AVR. Chính
điều này cũng làm tăng tốc độ xử lý lệnh tích chung trên hệ thống.


6. Bộ nhớ chơng trình và dữ liệu đợc tích hợp ngay trên chíp. Trên chip
vi điều khiển AVR có tới 3 công nghệ bộ nhớ khác nhau:
- Bộ nhớ EPROM xoá đợc kiểu flash (luôn luôn lập trình mới đợc)
dùng cho mã chơng trình mà ngời dùng có thể tự lập trình đợc.
- Bộ nhớ RAM tĩnh dùng cho các biến, nội dung của nó sẽ mất đi khi tắt
điện áp nguồn. Ngoài ra vi điều khiển AVR có tới 32 thanh ghi làm việc
tất cả đều đợc nối trực tiếp với khối ALU và đợc trao đổi trực tiếp trên
vùng địa chỉ bộ nhớ.
- Bộ nhớ EEPROM hay PROM xoá đợc bằng điện, nhng nội dung của
nó vẫn giữ nguyên khi tắt điện áp nguồn. Chơng trình ngời dùng có

thể đợc lập trình trong thời gian thực khi hệ thống đang hoật động.
7. Khả năng lập trình đợc trong hệ thống. Do cách thiết kế và công nghệ
bộ nhớ đợc sử dụng mà các vi điều khiển có thể lập trình đợc ngay khi
đang đợc cấp nguồn trên bản mạch, không cần phải nhấc ra khỉ bản
mạch nh các vi điều khiển của họ khác. Các cổng giao tiếp RS-232 và
SPI cho phép dễ dàng thực hiện việc lập trình trên hệ thông.
8. Đợc đóng vỏ với 8 chân đến 64 chân để thích ứng với nhiều loại ứng
dụng khác nhau. Từ các ứng dụng chi phí thấp với các vi điều khiển
TINY 8 chân đến những loại thông dụng với 20 chân hoặc 44 chân và
cuối cùng là loại MEGA-AVR với 40 chân hai hàng hoặc 64 chân kiểu
vỏ vuông. loại vỏ vuông 64 chân là bớc đột phá cha có đối thủ cạnh
tranh về khả năng xử lý và giá thành.
9. Có tốc độ xử lý lớn hơn đến 12 lần so với các vi điều khiển CISC thông
thờng.
10. Hỗ trợ cho việc lập trình bằng ngôn ngữ bậc cao.
11. Tất cả các vi điều khiển AVR đều đợc chế tạo bằng công nghệ CMOS
0,6 àm. công ty ATMEL cũng đang hớng tới công nghệ 0,35 àm nhằm
đạt đến tốc độ cao hơn với giá thành hạ.
12. Điện áp làm việc cho phép thay đổi trong khoảng rộng, từ 2,7 đến 6 V,
nên cho phép thể hiện u điểm rõ dệt của các thiết bị sách tay, sử dụng
pin.
13. Một kiến trúc hợp lý và đơn giản sẽ giúp cho ngời dùng giảm thiểu
đợc thời gian cần thiết để làm quen và tiến tới làm chủ đợc các vi điều
khiển AVR.
14. Tập lệnh của AVR có đến 133 lệnh cho phép lập trình một cách dễ
dàng và đơn giản bằng hợp ngữ, nhng cấu trúc của vi điều khiển AVR
còn cho phép lập trình bằng ngôn ngữ C.


Chơng 2

kiến trúc của vi điều khiển AVR.
Các bộ xử lý AVR có kiến trúc Harvard (bộ nhớ dữ liệu và bộ nhớ chơng
trình tách biệt) hình 2-1 một bản phác thảo kiến trúc bên trong của một vi điều
khiển. Bus dữ liệu là một bus 8 bit, cho phép nối hầu hết các bộ phận ngoại vi với
tệp thanh ghi. Bus dữ liệu dùng cho bộ nhớ chơng trình có độ rộng 16 bit và chỉ
nối với thanh ghi lệnh. Các bộ vi điều khiển AVR khác nh có thể khác nhau về
quy mô các bộ phận ngoại vi và dung lợng bộ nhớ chơng trình và bộ nhớ dữ liệu.

Hình 2.1: Bản phác thảo kiến trúc của vi điều khiển AVR.
2.1 Bộ nhớ chơng trình.
Bộ nhớ chơng trình là một loại bộ nhớ flash. Dung lợng chính xác của bộ
nhớ này thay đổi khác nhau giữa các bộ vi xử lý trong cùng họ. Bộ nhớ chơng
trình đợc truy cập theo từng chu kỳ đồng hồ, và một lệnh đợc nạp vào thanh ghi
lệnh. Thanh ghi lệnh nối với tệp thanh ghi bằng cách lựa chon xem thanh ghi nào
đợc ALU sử dụng để thực thi lệnh. Lối ra của thanh ghi lệnh đợc giải mã bằng
bộ giải mã lệnh để quyết định chọn tín hiệu điều khiển nào sẽ đợc kích hoạt để
hoàn thành lệnh hiện tại. Bộ nhớ chơng trình, ngoài các lệnh lu trữ còn có các


vector ngắt bắt đầu ở địa chỉ $0000. Số lợng các vector ngắt cũng khác nhau tuỳ
thuộc vào từng bộ vi xử lý. Chơng trình hiện tại bắt đầu ở vị trí bộ nhớ phía bên
kia vùng dùng cho vector ngắt.
2.2 Bộ nhớ dữ liệu.
Bộ nhớ dữ liệu đợc phân chia thành những loại khác nhau. Bộ nhớ dữ liệu
có trên một vi điều khiển AVR đợc chia thành 5 phần khác nhau:
2.2.1Tệp thanh ghi.
Tất cả các bộ vi điều khiển điều AVR đều có 32 thanh ghi đa
năng(từ R0 đến R31). Trong đó có một số thanh ghi có thêm trức năng
riêng, bổ sung (R0, R26, R31). Tệp thanh ghi này lại đợc chia thành 2
phần, mỗi phần có 16 thanh ghi (từ R0 đến R15 và từ R16 đến R31). Tất cả

các lệnh thao tác trên các thanh ghi đều truy cập trực tiếp theo một chu trình
đơn.

2.2.2 Thanh ghi vào/ra(I/O).
Thanh ghi vào, ra mỗi thanh ghi 8 bit, hầu hết các bộ vi điều khiển
AVR có 64 thanh ghi (một số vi điều khiển AVR có nhiều hơn tuỳ thuộc
vào số các bộ phận ngoại vi có trên chip). Các thanh ghi vào ra này thực
chất là một phần của bộ nhớ SRAM trên chip và có thể đợc truy cập nhớbộ nhớ SRAM, nhng hầu hết nó đợc truy cập nh các thanh ghi I/O.


Chúng ta có thể truy cập đến các thanh nghi này bằng lênh IN, OUT. Ngoài
ra ta cũng có thể truy cập theo từng bit bằng một số lệnh nh: SBI,CBI
2.2.3 Bộ nhớ SRAM bên trong.
Nó có trên hầu hết các bộ vi xử lý AVR, dung lợng của nó là khác
nhau tơng ứng với các vi điều khiển khác nhau. Nó đợc dùng cho ngăn
xếp cũng nh lu trữ các biến. Vị trí của ngăn xếp đợc chỉ thị bởi con trỏ
ngăn xếp.
2.2.4 Bộ nhớ SRAM bên ngoài.
Đặc tính này chỉ có ở bộ xử lý cỡ lớn trong họ vi điều khiển AVR.
Ta có thể sử dụng bất kì bộ nhớ SRAM nào khi thiết kế. Việc giao tiếp với
SRAM ngoài đợc thực hiện trên cổng A hoặc cổng C của các vi điều
khiển. Thời gian truy cập mặc định trên tới các SRAM ngoài lên tới 3 chu
kỳ đồng hồ, nó cung có thể tăng lên 4 chu kỳ đồng hồ bàng cách thiết lập
bit SRW.
2.2.5 EEPROM.
Bộ nhớ EEPROM có sẵn trên hầu hết tất cả các bộ điều khiển AVR
và đợc truy nhập theo bản đồ bộ nhớ tách biệt. Địa chỉ bắt đầu của bộ nhớ
EEPROM luôn là $0000. Các bộ vi xử lý khác nhau có từ 64 byte đến
4kbyte bộ nhớ EEPROM. Bộ nhớ EEPROM có thể đợc đọc ghi bởi bất kỳ
chơng trình nào. Việc đoc bộ nhớ EEPROM diễn ra nhanh hơn ghi vào

EEPROM, và nó có thể ghi đợc vào khoảng 100.000 lần. Bộ nhớ
EEPROM đợc truy nhập thông qua các thanh ghi truy nhập EEPROM cụ
thể là: Thanh ghi địa chỉ EEPROM (EEAR), thanh ghi dữ liệu EEPROM
(EEDR), và thanh ghi điều khiển EEPROM (EECR).
2.3 Khối số học logic.
Khối số học logic (ALU) thực hiện các thao tác nh thao tác bit; phép tính
số học logic trên nội dung thanh ghi và ghi ngợc kết quả vào thanh ghi trên thanh
ghi dã đợc chỉ định. Các thao tác này đợc thực hiện trong một chu kỳ đông hồ
đơn lẻ. Mỗi thao tác ALU đều làm ảnh hởng đến các cờ trong thanh ghi trang thái
(điều này phụ thuộc vào từng lệnh khác nhau).
2.4 Bộ định thời.
Bộ định thời trong vi điều khiển AVR có chức năng định thời nhng nó
cũng giống nh bộ đếm. Giống bộ định thời, tín hiệu giữ nhịp bên trong đợc sử
dụng để giữ nhịp cho bộ định thời, trong khi giống nh một bộ đếm, một tín hiệu
từ bên ngoài ở các chân của cổng đợc sử dụng để giữ nhịp cho bộ đếm/định thời.


2.5 Bộ truyền nhận UART.
2.5.1 Việc truyền.
Dữ liệu đợc khởi tạo bằng cách ghi dữ liệu vào thanh ghi dữ liệu I/O
UART, ký hiệu là UDR. Dữ liệu đợc truyền từ UDR đến thanh ghi dịch
truyền khi:
- Một kí tự mới đợc ghi vào UDR sau khi bit stop từ ký tự trớc đó đợc
dịch chuyển ra. Thanh ghi dịch chuyển ra đợc nạp ngay lập tức.
- Một ký tự mới đã đợc ghi vào UDR trớc khi bit stop từ ký tự trớc đã
dịch đi. Thanh ghi dich đợc nạp khi bit stop của ký tự đang đợc truyền
đã đợc dịch chuyển ra.

2.5.2 Việc nhận.
Khối logic front-end của bộ nhận lấy mẫu tín hiệu trên chân RxD ở

tần số bằng 16 lần tốc độ baud. Khi đờng dẫn không có tín hiệu truyền,
một mẫu đơn lẻ của giá trị lo gic 0 đợc dịch nh sờn âm của bít start và
dãy phát hiện bít start đợc khởi tạo.
Khi bit stop đợc đa tới bộ nhân, thì đa số trong số 3 mẫu cần phải
bằng 1 để tiếp nhân bit stop.


sơ đồ khối bộ nhận UART.
2.6 Cấu trúc ngắt.
Ngắt là cơ cấu điều khiển dòng lệnh, cơ cấu này đợc thiết kế trên hầu hết
các bộ điều khiển. Trong quá trình giao tiếp của hệ thống bộ xử lý với thế giới bên
ngoài, nhiều sự việc xảy ra theo cách không đồng bộ. Điều này gây khó khăn cho
hoạt động của bộ vi xử lý khi nó phải kiểm ta tất cả các thiết bị để giám sát sự di
chuyển của dữ liệu. Ngợc lại, mọi việc sẽ trở nên tốt hơn nếu các thiết bị này có
thể loan báo sự đến nơi của dữ liệu. Đây là tất cả những gì mà cơ chế ngắt phải
thực hiện. Nó sẽ ngắt việc thực thi chơng trình chính, và vi xử lý phải tạm
ngừng thực thi chơng trình bình thờng để thẩm tra nguồn ngắt, đáp ứng nhu cầu
của ngắt, sau đo việc thực thi chơng trình lại đợc tiếp tục khi các nhu cầu ngắt
đã đợc giải quyết.
Tính u tiên của ngắt đợc quy định bởi cách gán các vectơ ngắt. Một vavtơ
ngắt ở địa chỉ thấp hơn trong bộ nhớ chơng trình sẽ có mức u tiên cao hơn (khi
đo nó sẽ đợc phuc vụ trớc nếu nh có nhiều ngắt đang chờ).
Điều đáng lu ý nữa là tốc độ xử lý ngắt, nó phụ thuộc nhiều vào kiến trúc
của vi xử lý. Với các bộ điều khiển AVR thì tất cả các ngắt đợc cho phép ít nhất 4
chu kỳ đồng hồ.
2.7 Bộ so sánh analog.
Bộ so sánh analog so sánh các giá trị điện áp lối vào, cụ thể là ở các lối vào
AIN0 (AC+) và AIN1 (AC-) với nhau. Nếu nh điện áp ở lối vào AIN0 lớn hơn lối
vào AIN1 thì lối ra của bộ so sánh analog AC0 đợc đặt lên mức 1. Lối ra này có
thể đợc sử dụng cho bộ timer/counter 1 để trigơ hoặc xoá ngắt bộ so sánh analog.



Sơ đồ khối của bộ so sánh analog:

Bộ so sánh analog đợc điều khiển qua thanh ghi điều khiển và trang thái
bộ so sánh analog, thờng đợc viết tắt là ACSR, ở địa chỉ $08 trong vùng địa chỉ
vào ra hoặc ở địa chỉ $28 trong vùng địa chỉ bộ nhớ dữ liệu.
2.8 Bộ biến đổi A/D bên trong.
Các vi điều khiển AVR có bộ biến đổi tơng tự số (DAC) với độ phân giải
10 bit. Ngoài ra, bên cạnh bộ biến đổi DAC còn có bộ dồn kênh 8 lối vào, mỗi lối
có thể đợc dẫn riêng lẻ tới bộ hiển thị DAC.


Sơ đồ khối của bộ DAC:
Bộ biến đổi DAC đợc điều khiển qua 4 thanh ghi ADMUX, ADCSR,
ADCH, ADCL trong vùng địa chỉ vào/ra. Thanh ghi ADMUX cho phép ta lựa chọn
một trong 8 lối vào. Bộ biến đổi DAC có thể hoạt động trong hai chế độ:
-

Quá trình biến đổi đợc ngời dùng khởi động.

-

Quá trình biến đổi diễn ra liên tục.


Việc kết thúc quá trình biến đổi, nghĩa là thời điểm mà một tín hiệu analog
đã đợc số hoá và sẵn sàng chờ xử lý tiếp tục, sẽ đợc báo hiệu qua một cờ trong
thanh ghi trạng thái (DACSR). Trong thanh nghi này, ngời dùng còn có thể chọn
một trong hai chế độ. Kết quả của quá trình biến đổi A/D đợc đặt o các thanh ghi

ADCH ( bit 8 và bit 9) và ADCL(từ bit 0 đến bit 7).
Thanh ghi lựa chon bộ dồn kênh ADC
ADCMUX
Thanh ghi trạng thái và điều khiển ADC
ADCSR
Thanh ghi dữ liệu ADCH
Thanh ghi dữ liệu ADCL

$07(27)
$06(26)
$05(25)
$04(24)

2.9 Bộ định thời WATCHDOG bên trong.
Bộ đinh thời watchdog là bộ định thời điều khiển đợc và đợc sử dụng làm
thiết bị đánh thức trong trờng hợp phần mềm bị rơi vào một hoặc một số vòng lăp
vô tận hoặc trong trờng hợp việc thực thi chơng trình bị mắc lỗi. Bộ định thời
mạnh watchdog có một lối ra, có khả năng đặt lại bộ điều khiển. Mạch định thời
watchdog timer đợc giữ nhịp từ một bộ dao động RC riêng biệt trên chip. Bằng
cách điều khiển mạch chia tần số watchdog timer, khoảng reset mạch watchdog có
thể đợc điều chỉnh. Các khoảng reset cũng phụ thuộc vào nguồn nuôi.
Hình 3-43 minh hoạ sơ đồ khối của bộ đinh thời mạnh watchdog.


Chơng 3
Sơ đồ khối hệ thống.
Để xây dựng một hệ thống đo áp suất, em dùng một cảm biến áp suất
(MPX6115), một vi điều khiển (vi điều khiển ATMEGA8535) để thực hiện việc
kết nối tính toán và điều kiển việc hiển thị kết quả đo. Kết quả đo đợc hiển thị
bằng màn hình tinh thể lỏng (16x2).

Sơ đồ khối của hệ thống nh sau:

Cảm biến
áp suất

Vi điều khiển
ATMEGA8535

LCD 16x2

3.1 Đăc trng của vi điều khiển ATMEGA8535.
Nh đã nói, có nhiều vi điều khiển AVR khác nhau, ngoài những tính chất
chung đã nêu, mỗi loại vi điều khiển lại có những nét đặc trng riêng. Trong quá
trình nghiên cứu ứng dụng, mỗi ngời có thể lựa chọn loại vi điều khiển phù hợp
với điều kiện ứng dụng của mình. Trong bài khoá luận này em sử dụng vi điều
khiển ATMEGA8535 để thực hiện mục đích xây dựng hệ thống của mình xây
dựng hệ thống đo áp suất sử dụng vi điều khiển và hiển thi kết quả ra màn hình
tinh thể lỏng. Vi điều khiển ATMEGA8535 đợc lựa chọn bởi vì nó phù hợp với
điều kiện và đáp ứng đợc những nhu cầu của hệ thông, nhu cầu nghiên cứu và mở
rộng để tạo một hệ thống đo lờng nhiều kênh, với nhiều thông số khác nhau.
Một số đặc tính của vi điều khiển ATMEGA8535:
Cấu trúc tập lệnh thu gọn RISC có thể thực hiện 12 triệu lệnh một
giây với tần số thạch anh 12MHz.
Có 8Kbyte bộ nhớ chơng trình kiểu insystem Programmable Flash.
Có 512 byte EEPROM.
Có 512 byte SRAM nội.
Có 32 đờng vào ra có thể cấu hình riêng rẽ là lối vào hay ra.
Có cổng thu phát đồng bộ vặn năng UART lập trình đợc.
Có 8 đơng ADC 10 bit, với thời gian biến đổi có thể lập trình đợc
Có bộ so sánh với lối vào tơng tự.

Có 2 bộ đếm/ định thời 8 bit.
Có một bộ đếm/định thời 16 bit có thể hoạt động ở chế độ điều chế
độ rộng xung.
Có bộ WatchDog timer lập trình đợc.


Có thể tự khởi động khi bật nguồn.
Có thể xử lý ngắt với nhiều nguồn ngắt.
Có nhiều chế độ hoạt động: Chế độ nghỉ, chế độ tiết kiệm năng
lợng.
Nguồn cung cấp trong khoảng 4 đến 6 V.


3.1.1. CÊu h×nh ch©n.


Miêu tả chân:
Vcc
GND
Port A(PA0
PA7)

đến

Port B (PB0 đến BA7)
Port C (PC0 đến PC7)
Port D(PD0 đến PD7)
Reset

XTAL1

XTAL2
ICP
VACC

AREF

Cung cấp điện áp nguồn
Chân đất
Các chân này có thể đợc lập trình làm lối vào/ra
hai hớng 8 bit hoặc cũng có thể đợc lập trình
làm 8 lối/vào cho bộ biến đổi ADC 10 bit.
Các chân này cung cấp 8 lối vào/ra hai hớng,
cũng có thể đợc lập trình để thực hiện một số
chức năng đặc biệt khác.
Các chân này cung cấp 8 lối vào/ra hai hớng,
cũng có thể đợc lập trình để thực hiện một số
chức năng đặc biệt khác.
Các chân này cung cấp 8 lối vào/ra hai hớng,
cũng có thể đợc lập trình để thực hiện một số
chức năng đặc biệt khác.
Bộ vi điều khiển sẽ đợc đặt lại khi chân này o
mức thấp trong khoảng hơn 50 ns hoặc ngay khi
không có tín hiệu dữ nhip. Các xung ngắn hơn
không tao ra tín hiệu đặt lại.
Lối vào bộ khuyếch đại đảo và lối vào mạch tạo
xung bên trong.
Lối ra bộ khuyếch đại đảo.
Chân vào cho chức năng bắt tín hiệu vào bộ định
thời/đếm 1.
Cung cấp nguồn cho bộ ADC, khi bộ ADC không

đợc sử dụng thì nó đợc nối với VCC khi ADC
đợc sử dụng thì ta nên kết nối nó với VCC thông
qua mạch lọc thông thấp.
Là chân vào tham chiếu cho bộ ADC.


Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×