You are on page 1of 39

ðồ án môn học 1 GVHD: TS.

Ngô Văn Thuyên

NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN


 
Phần nhận xét:
Tinh thần và thái ñộ làm việc:
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
Nội dung ñồ án:
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
Hình thức:
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
Kết luận:
ðiểm xếp loại:
Bằng số:…. Bằng chữ: …….
TPHCM, ngày …tháng …năm 2010
Giảng viên hướng dẫn

TS. Ngô Văn Thuyên

ðo nhiệt ñộ giao tiếp Atmega8 1


ðồ án môn học 1 GVHD: TS. Ngô Văn Thuyên

LỜI CẢM ƠN
--- -D D D ----
ðề tài ñược hoàn thành trong sự hỗ trợ và ñộng viên rất
nhiều từ thầy cô cũng như bạn bè thân thuộc. ðó là những tình
cảm trân trọng, ñáng quý và thật phấn khởi biết bao khi thấy
mọi người vẫn luôn ở bên cạnh mình trong những hoàn cảnh
khó khăn nhất. Dù ở bất kỳ nơi ñâu, tôi sẽ vẫn nhớ và ghi sâu
những tình cảm cao ñẹp này.
Em xin chân thành cảm ơn thầy Ngô Văn Thuyên khoa ðiện
- ðiện tử ñã tạo ñiều kiện và hướng dẫn em cách học tập cũng
như nghiên cứu ñể hoàn thành tốt ñề tài này.
Chân thành cảm ơn những người bạn vẫn luôn ñồng hành
cùng mình cả trong những lúc khó khăn nhất. Cảm ơn quý thầy
cô trong Khoa ðiện - ðiện tử Trường ðại học Sư Phạm Kỹ
Thuật TP.HCM luôn tạo mọi ñiều kiện tốt cho em trong suốt
thời gian qua.
Qua ñây em cũng rất mong nhận ñược những ý kiến ñóng
góp quý báu của quý thầy cô và bạn bè.
Cuối cùng em xin chúc quý thầy cô cùng bạn bè nhiều sức
khỏe và thành công trong mọi việc.

ðo nhiệt ñộ giao tiếp Atmega8 2


ðồ án môn học 1 GVHD: TS. Ngô Văn Thuyên

LỜI GIỚI THIỆU


ÑÑÑ---
ÑÑÑ---
---ÑÑÑ

Ngaøy nay, ñieàu khieån töï ñoäng ñaõ trôû thaønh moät nhu
caàu khoâng theå thieáu ñöôïc. Döôùi söï xuaát hieän cuûa caùc hoïc
thuyeát vaø caùc öùng duïng cuï theå trong ñôøi soáng haøng ngaøy,
coù theå noùi ñieàu khieån töï ñoäng ñang chi phoái daàn cuoäc soáng
cuûa chuùng ta, mang laïi söï tieän nghi vaø thoaûi maùi cho chuùng
ta.
Ñieàu khieån nhieät ñoä chæ laø moät lónh vöïc nhoû beù trong
ñieàu khieån töï ñoäng, vaø cuõng ñaõ coù nhieàu coâng trình coù hieäu
quaû cao nhö caùc loø nung trong coâng nghieäp, caùc loø nöôùng
daân duïng, … ñoøi hoûi phaûi ñieàu khieån sao cho nhieät ñoä baèng
hoaëc xaáp xæ nhieät ñoä ñaët ñeå ñaùp öùng caùc ñieàu kieän maø nhu
caàu saûn xuaát ñaët ra.
Ñoà aùn naøy laø moät phaàn nhoû ñeå phuïc vuï trong vieâc
ñieàu khieån nhieän ñoä moät caùch ñeå daøng vaø tieän lôïi hôn.
Thoâng qua ñoà aùn naøy ta cuõng coù theå hieåu roû theâm veà vi xöû
lyù hoï Atmega vaø caùc phaàn meàm öùng duïng khaùc nhö:
CodeVisionAVR, Visual Studio 2005, AvrProg…

ðo nhiệt ñộ giao tiếp Atmega8 3


ðồ án môn học 1 GVHD: TS. Ngô Văn Thuyên

PHẦN I

PHẦN CỨNG

I. Giới thiệu chung về ñề tài.


Nội dung của ñề tài là: dùng cảm biến ño nhiệt ñộ LM35 giao tiếp với Atmega8
hiển thị trên máy tính.
Hoạt ñộng của bộ thi nghiệm:
Bộ thí nghiệm gồm có một cảm biến ño nhiệt ñộ LM35 và một board thi nghiệm
Atmega8 là sản phẩm của CLB khoa học trẻ Trường ðH Sư Phạm Kỹ Thuật TP. Hồ
Chí Minh ñược giao tiếp với máy tính theo chuẩn RS232 qua cổng COM và chuyển
ñổi thành cổng USB.
Quá trình hoạt ñộng: sau khi cảm biến nhiệt ñộ LM35 nhận tín hiệu (nhiệt ñộ) từ
môi trường bên ngoài, nó sẽ gữi tín hiệu ñến board thí nghiệm ñể xử lý. Ở board thí
nghiệm tín hiệu sẽ ñược xử lý, biến ñổi từ tín hiệu tương tự sang số ñể, thông qua cổng
giao tiếp giữa board với máy tính tín hiệu ñược xử lý sẽ hiển thị trên giao diện ñã ñược
thiêt kế dựa trên ngôn ngữ lập trình Visual Studio.
II. Tổng quan về AVR.
ðây là một lọai vi ñiều khiển có nhìều tính năng ñặc biệt thích hợp cho việc giải
quyết những bài tóan ñiều khiển trên nền vi xử lý.
 Các lọai vi ñiều khiển AVR rất phổ biến trên thị trừơng Việt Nam nên không khó
khăn trong việc thay thế và sửa chữa hệ thống lúc cần.
 Giá thành của dòng Vi ðiều Khiển này khá phải chăng.
 Các phần mềm lập trình và mã nguồn mở có thể tìm kiếm khá dễ dàng trên
mạng.Các thiết kế demo nhiều nên có nhiều gợi ý tốt cho người thiết kế hệ thống.
AVR là loại vi ñiều khiển 8 bit, các lệnh ñược xử lý nhanh hơn, tiêu thụ năng
lượng thấp.
 Atmega có cấu trúc RISC với:
 131 lệnh,hầu hết ñược thực thi trong 1 chu kì xung nhịp.
 32x8 thanh ghi ña dụng.
 Full static operation.

ðo nhiệt ñộ giao tiếp Atmega8 4


ðồ án môn học 1 GVHD: TS. Ngô Văn Thuyên

 Tốc ñộ làm việc 16MPIS, với thạch anh 16MHz.


 On_chip 2 cycle Multiplier.
 Bộ nhớ:
 16 KB ISP Flash với khả năng 10.000lần ghi/xóa
 512Byte EEROM.
 1KB SRAM ngọai
 Giao tiếp JTAG:
 Khả năng quét toàn diện theo chuẩn JTAG.
 Hỗ trợ khả năng Debug on-chip.
 Hỗ trợ lập trình Flash,EEROM,fuse…
 Lock bit qua giao tiếp JTAG.
 Ngọai vi:
 2 timer/counter 8 bit với các mode : so sánh và chia tần số.
 1 timer/counter 16 bit với các mode: so sánh, chia tần số, capture, PWM.
 1 timer thời gian thực(Real time clock) với bộ dao ñộng riêng biệt.
 4 kênh PWM(họăc nhiều hơn trong các VðK khác thuộc họ này).
 8 kênh biến ñổi ADC 10bit.
 Hỗ trợ giao tiếp I2C.
 Bộ giao giao tiếp nối tiếp lập trình ñược USART.
 Giao tiếp SPI.
 Watch_dog timer với bộ dao ñộng on-chip riêng biệt.

 Những thuộc tính ñặc biệt:


 Power On reset và Brown-out detection.
 Chế ñộ hiệu chỉnh bộ sai số cho bộ dao ñộng RC On-chip.
 Các chế ñộ ngắt ngòai và trong ña dạng.
 6 mode sleep: Idle, ADC noise reduction, tiết kiệm năng lượng, power-down,
standby, extended standby.
 I/O port:
 32 chân I/O(Atmega16) và 23 chân I/O (Atmega8) lập trình ñược.
 Vỏ 40 chân (Atmega16) , 28 chân(Atmega8), 64 chân (AT90can128).

ðo nhiệt ñộ giao tiếp Atmega8 5


ðồ án môn học 1 GVHD: TS. Ngô Văn Thuyên

 Nguồn cấp:
2,7->5.5 V với ATmega16L
4.5->5.5V với ATmega16H
 Tiêu hao năng lượng:
 Khi họat ñộng tiêu thụ dòng 1,1mA.
 Ở mode Idle tiêu thụ dòng 0.35mA.
 Ở chế ñộ Power_down tiêu thụ dòng nhỏ hơn 1uA.
 ðây là những chức năng cơ bản thường thấy trong các Vi ñiều khiển AVR,ngòai ra
trong các vi ñiều khiển khác thuộc dòng vi ñiều khiển này thì thường ñược hỗ trợ
thêm những chức năng ñặc biệt.Ví dụ AT90can128 hỗ trợ thêm bộ giao tiếp mạng
Can bus on-chip.
 Các phần mềm lập trình cho AVR:
 AVRStuido (free), Code Vision. Các phần mềm này có hỗ trợ phần nạp và debug
on chip.
 Ngoài ra có thể dùng chương trình nạp PonyProg2000, Winpic800...
III. Cấu trúc tổng quát:
CPU của AVR có chức năng bảo ñảm sự hoạt ñộng chính xác của các chương
trình. Do ñó nó phải có khả năng truy cập bộ nhớ, thực hiện các quá trình tính toán,
ñiều khiển các thiết bị ngoại vi và quản lý ngắt.

ðo nhiệt ñộ giao tiếp Atmega8 6


ðồ án môn học 1 GVHD: TS. Ngô Văn Thuyên

Chúng ta bắt ñầu bằng sơ ñồ khối sau ñây:

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.
ðể ñảm bảo tối ưu hiệu năng và song song hóa hoạt ñộng xử lý, lõi CPU của AVR
ñược thiết kế theo kiểu kiến trúc HARVARD – Tách riêng bộ nhớ chương trình và bộ nhớ
dữ liệu. Các lệnh trong bộ nhớ chương trình ñược thực hiện trong một lớp (kênh cung cấp)
pipeline riêng. Tức là trong khi một lệnh ñang ñược thực thi, lệnh kế tiếp cũng ñồng thời
ñược nạp ñể sẵn sàng thực thi. ðiều này cho phép khả năng thực hiện lệnh trong một chu
kỳ xung ñồng hồ. Bộ nhớ chương trình loại In-System Reprogrammable Flash memory.
Bộ thanh ghi truy cập nhanh Register File gồm có 32×8 bit ô nhớ ña mục ñích với
thời gian truy cập trong một chu kỳ xung ñồng hồ.
ALU hỗ trợ tính toán số học và logic trên các thanh ghi hoặc trên thanh ghi và hằng
số. Các phép tính một thanh ghi cũng ñược hỗ trợ. Sau hoạt ñộng tính toán, thanh ghi
Status Register ñược cập nhật ñể phản ánh thông tin kết quả của phép tính.

ðo nhiệt ñộ giao tiếp Atmega8 7


ðồ án môn học 1 GVHD: TS. Ngô Văn Thuyên

Tiến trình chương trình ñược ñiều khiển bởi các lệnh nhảy có ñiều kiện và không
ñiều kiện và lệnh call, khả năng ñịnh ñịa chỉ trực tiếp trên toàn miền nhớ. Hầu hết các lệnh
AVR có dạng 16 bit.
Bộ nhớ Flash chương trình ñược chia làm 2 phần: phần chương trình Boot và phần
chương trình ứng dụng. Cả hai phần ñều dành ra vùng Lock bit ñể bảo vệ chống ghi hoặc
chống ghi/ñọc.
Không gian bộ nhớ trong AVR là tuyến tính và liên tục
Module ngắt linh hoạt có các thanh ghi ñiều khiển nằm trong không gian I/O nhưng
biến cho phép ngắt toàn cục lại nằm trong thanh ghi Status Register. Các ngắt ñều có véc-
tơ ngắt riêng biệt ñược cho trong bảng véc-tơ ngắt. Sự ưu tiên ngắt tùy thuộc vào vị trí
trong bảng véc-tơ ngắt, càng ở dưới thì càng có mức ưu tiên cao.
Không gian nhớ I/O bao gồm 64 ñịa chỉ phục vụ ñiều khiển hoạt ñộng của các
ngoại vi như Control Register, SPI và các chức năng I/O khác.
1. ðơn vị xử lý số học và logic.
AVR ALU hiệu năng cao tác ñộng trực tiếp tới 32 thanh ghi ña năng. Trong vòng 1
chu kỳ, các toán hạng số học thực hiện giữa các thanh ghi ña năng hoặc giữa một thanh ghi
và một toán hạng tức thời. Các toán tử của ALU ñược chia làm 3 loại chính: Số học, logic,
và xử lý bit. Một số phép xử lý của kiến trúc này cũng cung cấp bộ nhân số có dấu và
không có dấu và dạng phân số.

2. Thanh ghi trạng thái.


ðây là thanh ghi trạng thái có 8 bit lưu trữ trạng thái của ALU sau các phép tính số học
và logic.
Thanh ghi trạng thái chứa thông tin về kết quả thưc hiện của hầu hết các lệnh số
học. Các thông tin này có thể ñược sử dụng ñể ñiều khiển chương trình. Chú ý rằng các
thanh ghi trạng thái ñược cập nhật sau tất cả các hoạt ñộng của ALU. Trong nhiều trường
hợp, ñiều này sẽ bỏ ñi những cần thiết khi sử dụng câu lệnh so sánh chuyên dụng, kết quả
nhanh hơn và ñoạn chương trình ngắn gọn hơn.
Thanh ghi trạng thái không tự ñộng lưu trữ khi ñang nhập vào môt thường trình
ngắt và lưu trữ khi trở về tự một ngắt. ðiều này phải ñược quản lý bằng phần mềm. Thanh
ghi trạng thái AVR – SREG - ñược ñịnh nghĩa như sau:

ðo nhiệt ñộ giao tiếp Atmega8 8


ðồ án môn học 1 GVHD: TS. Ngô Văn Thuyên

• Bit 7 – I: Global Interrupt Enable- bit cho phép ngắt toàn cục
Bit cho phép ngắt toàn cục phải ñược ñặt ñể cho các ngắt có thể hoạt ñộng. ðiều
khiển hoạt ñộng của các ngắt riêng biệt ñược thực hiện trong các thanh ghi ñiều khiển
riêng biệt. Nếu thanh ghi cho phép ngắt toàn cục ñược xóa, không có một ngắt riêng biệt
nào ñược hoạt ñộng (Nếu bit này ở trạng thái logic 0 thì không có một ngắt nào ñược phục
vụ). Bit I ñược xóa bởi phần cứng sau khi một ngắt xảy ra và ñược ñặt bởi lệnh RETI ñể
cho phép các ngắt tiếp theo hoạt ñộng. Bit I cũng có thể ñược ñặt và xóa bởi câu lệnh SEI
và CLI trong các ứng dụng.
• Bit 6 – T: Bit Copy Storage
Các câu lệnh copy bit BLD (Bit LoaD) và BST (Bit STore) sử dụng bit T như là
ñích hoặc nguồn cho bit hoạt ñộng. 1 bit từ một thanh ghi trong tệp thanh ghi có thể ñược
copy vào bit T bằng lệnh BST và một bit trong T có thể ñược copy vào 1 bit trong thanh
ghi trong tệp thanh ghi bằng lệng BLD.
• Bit 5 – H: Half Carry Flag
Cờ nhớ một nửa dùng cho các toàn hạng hạng một nửa byte trong các phép toán số
học. Cờ H sử dụng phép toán số học với số BDC .
• Bit 4 – S: Sign Bit, S = N ⊕ V – bit dấu
Bit S là phép XOR giữa cờ âm và cờ tràn V .
• Bit 3 – V: Two’s Complement Overflow Flag – cờ tràn mã bù 2
Cờ tràn V hỗ trợ phép toán số bù 2.
• Bit 2 – N: Negative Flag – cờ âm
Cờ âm N hiển thị kết quả âm của phép toán logic hoặc số học.
• Bit 1 – Z: Zero Flag
Cờ Zero Z hiển thị kết quả bằng 0 của phép toán logic hoặc số học.
• Bit 0 – C: Carry Flag
Cờ nhớ C hiển thị số nhớ trong phép toán logic hoặc số học.
3. Các thanh ghi chức năng chung.

ðo nhiệt ñộ giao tiếp Atmega8 9


ðồ án môn học 1 GVHD: TS. Ngô Văn Thuyên

Phần ñầu Register File từ R0 ñến R31 (32 thanh ghi) là các thanh ghi ña mục ñích.
Hầu hết các lệnh thực hiện với tệp thanh ghi có truy cập trực tiếp tới tất cả các thanh
ghi, và hầu hết chúng là lệnh ñơn chu kỳ. Mỗi một thanh ghi ñược chỉ ñịnh bởi một ñịa chỉ
bộ nhớ dữ liệu, bố trí chúng trực tiếp vào 32 vị trí ñầu tiên của không gian dữ liệu người
sử dụng.
Mặc dù không phải là thực hiện theo luật như các vị trí của SRAM, tổ chức bộ nhớ
này cho phép linh ñộng cao khi truy cập các thanh ghi, như là thanh ghi con trỏ X,Y,Z có
thể ñược ñặt vào danh mục của mọi thanh ghi trong tệp.

ðo nhiệt ñộ giao tiếp Atmega8 10


ðồ án môn học 1 GVHD: TS. Ngô Văn Thuyên

The X-register, Y-register and Z-register


Các thanh ghi R26..R31 có thêm các chức năng ngoài việc sử dụng như là một
thanh gh ña năng. Các thanh ghi này là các con trỏ ñịa chỉ 16 bit cho chế ñộ ñịa chỉ gián
tiếp của không gian dữ liệu. 3 thanh ghi ñịa chỉ gián tiếp X, Y, Z ñược mô tả như như hình
3.5.
Trong các chế ñộ ñịa chỉ khác, các thanh ghi ñịa chỉ này
có các chức năng như là ñộ lệch cố ñịnh, tự ñộng tăng và tự ñộng giảm.

Hình 1.5 Các thanh ghi X, Y và Z

ðo nhiệt ñộ giao tiếp Atmega8 11


ðồ án môn học 1 GVHD: TS. Ngô Văn Thuyên

ðo nhiệt ñộ giao tiếp Atmega8 12


ðồ án môn học 1 GVHD: TS. Ngô Văn Thuyên

4. Con trỏ ngăn xếp (SP).


Là một thanh ghi 16 bit nhưng cũng có thể ñược xem như hai thanh ghi chức năng ñặc
biệt 8 bit. Có ñịa chỉ trong các thanh ghi chức năng ñặc biệt là $3E (Trong bộ nhớ RAM là
$5E). Có nhiệm vụ trỏ tới vùng nhớ trong RAM chứa ngăn xếp.

Khi chương trình phục vu ngắt hoặc chương trình con thì con trỏ PC ñược lưu vào
ngăn xếp trong khi con trỏ ngăn xếp giảm hai vị trí. Và con trỏ ngăn xếp sẽ giảm 1 khi
thực hiện lệnh push. Ngược lại khi thực hiện lệnh POP thì con trỏ ngăn xếp sẽ tăng 1 và
khi thực hiện lệnh RET hoặc RETI thì con trỏ ngăn xếp sẽ tăng 2. Như vậy con trỏ ngăn
xếp cần ñược chương trình ñặt trước giá trị khởi tạo ngăn xếp trước khi một chương trình
con ñược gọi hoặc các ngắt ñược cho phép phục vụ. Và giá trị ngăn xếp ít nhất cũng phải
lơn hơn hoặc bằng 60H (0x60) vì 5FH trỏ lại là vùng các thanh ghi.
5. Các thanh ghi xử lý phần cứng
Có 3 thanh ghi chủ yếu cho mỗi port pin: DDxn, PORTxn và PINxn (x là chữ cái B,
C, D, n là số của chân port. Ví dụ PB1 chỉ chân số 1 của port B (15).
DDxn - Port Direction Register : Thanh ghi qui ñịnh chiều cho chân port. Nếu
DDxn ñược ghi 1, chân Pxn là chân ngõ vào (input). Nếu DDxn ñược ghi 0, chân Pxn là
ngõ ra (output). Giá trị mặc ñịnh lúc bật nguồn của DDxn là logic 0.
PORTxn - Port Data Register: Thanh ghi xuất dữ liệu cho chân port. Khi Pxn cấu
hình ngõ ra (output), nếu PORTxn ñược ghi logic 1, chân Pxn xuất mức cao, nếu PORTxn
ñược ghi mức thấp, chân Pxn xuất mức thấp. Khi Pxn cấu hình ngõ vào (input - DDnx=1),
nếu PORTxn = 1, ñiện trở kéo lên ñược tích cực; nếu PORT xn = 0, Pxn ở trạng thái ngõ
vào tổng trở cao (tri-stated).
PINxn - Port Input Pins Address: Thanh ghi này dùng ñể ñọc tín hiệu vào.
6. ðiều khiển ngắt và reset.
AVR cung cấp 1 vài nguồn ngắt khác nhau. Các ngắt này và vector reset riêng biệt
có vector chương trình riêng biệt nằm trong không gian nhớ chương trình. Tất cả các ngắt
ñược chỉ ñịnh bởi các bit cho phép riêng biệt mà các bit này phải ñược ghi mức logic 1
cùng với bit cho phép ngắt toàn cục trong thanh ghi trạng thái ñể cho phép ngắt. Phụ thuộc

ðo nhiệt ñộ giao tiếp Atmega8 13


ðồ án môn học 1 GVHD: TS. Ngô Văn Thuyên

vào giá trị PC, các ngắt này phải ñược tự ñộng loại bỏ khi các bit Boot Lock - BLB02 or
BLB12 - ñược lập trình. Yếu tố này cải thiện ñộ an toàn phần mềm.
ðịa chỉ thấp nhất trong không gian bộ nhớ chương trình ñược mặc ñịnh là Reset và
Interrupt Vectors. Bảng vector ngắt – bảng 3.1.

Bảng 1.1 Bảng vector ngắt và reset

Khi ñịa chỉ càng nhỏ thì thứ tự ưu tiên càng cao.
Các vector ngắt có thể ñược chuyển sang ñầu của vùng Boot Flash bằng cách ñặt
bit IVSEL trong thanh ghi ñiều khiển ngắt (MCUCR). Reset Vector có thể ñược chuyển
sang ñầu của vùng Boot Flash bằng cách lập trình BOOTRST fuse.
Khi một ngắt xảy ra, bit I (bit cho phép ngắt toàn cục) ñược xóa và tất cả các ngắt
ñược loại bỏ. Phần mềm sử dụng có thể ghi mức logic 1 vào bit I ñể cho phép các ngắt tiếp
theo. Tất cả các ngắt ñược kích hoạt có thể ngắt những thường trình ngắt hiện tại. Bit I
ñược ñặt tự ñộng khi trở về từ lệnh RETI của ngắt.

ðo nhiệt ñộ giao tiếp Atmega8 14


ðồ án môn học 1 GVHD: TS. Ngô Văn Thuyên

Có 2 loại ngắt cơ bản.


+ Loại thứ nhất ñược gây ra bởi sự kiện mà ñặt cờ ngắt. ðối với loại ngắt này, PC
ñược hướng tới Interrupt Vector tương ứng ñể thực hiện thường trình phục vụ ngắt và
phần cứng xoá cờ ngắt tương ứng. Các cờ ngắt cũng có thể ñược ghi mức logic 1 vào vị trí
bit cờ ñể ñược xoá. Nếu một ñiều kiện ngắt xảy ra trong khi bit cho phép ngắt tương ứng
bị xoá, thì cờ ngắt sẽ ñược ñặt và ñược nhớ cho ñến khi ngắt ñược thực hiện, hoặc là cờ
ngắt ñược xoá bởi phần mềm. Tương tự nếu 1 hoặc nhiều ñiều kiện ngắt xảy ra trong khi
cờ cho phép ngắt toàn cục bị xoá thì các cờ ngắt tương ứng sẽ ñược ñặt và nhớ cho ñến khi
cờ cho phép ngắt toàn cục ñược ñặt và nó sẽ ñược thực hiện theo thứ tự ưu tiên.
+ Loại ngắt thứ 2 sẽ kích hoạt kéo dài trong thời gian
ñiều kiện ngắt tồn tại. Các ngắt này không cần thiết phải có cờ ngắt. Nếu ñiều kiện ngắt
mất ñi trước khi ngắt ñược cho phép, thì ngắt sẽ không xảy ra.
Khi AVR thoát khỏi từ một ngắt, nó sẽ luôn trở về chương trình chính và thực hiện
một hoặc nhiều lệnh trước khi một ngắt nào ñó còn ñợi ñó ñược phục vụ.
Chú ý rằng các thanh ghi trạng thái không tự ñộng lưu trữ khi nhập vào một thường
trình ngắt, và cũng không lưu trữ lại khi trở về từ một thường trình ngắt. ðiều này phải
ñược thực hiện bởi phần mềm.
Khi sử dụng câu lệnh CLI ñể cấm ngắt, các ngắt sẽ không ñược tác ñộng ngay lập
tức. Không có ngắt nào ñược thực hiện sau khi thực hiện lệnh CLI, thậm chí nó xảy ra
cùng lúc với lệnh CLI.
Thời gian ñáp ứng của 1 ngắt
Việc thực hiện ngắt trong ít nhất 4 chu kỳ ñồng hồ với tất cả các ngắt. Sau 4 chu kỳ
ñồng hồ, ñịa chỉ vector chương trình tương ứng với thường trình ñiều khiển ngắt thực sự
ñược khởi tạo. Trong thời gian 4 chu kỳ này, PC ñược cất vào trong ngăn xếp. Vector
thường là lệnh nhảy ñến thường trình ngắt và lệnh nhảy này mất 3 chu kỳ ñồng hồ. Nếu
một ngắt xảy ra trong khi thực hiện một lệnh nhiều chu kỳ thì lệnh ñược hoàn thành trước
khi ngắt ñược phục vụ. Nếu một ngắt xảy ra khi MCU ñang trong chế ñộ ngủ thì thời gian
ñáp ứng ngắt sẽ tăng thêm 4 chu kỳ. Thời gian tăng thêm này là thời gian ñể khởi ñộng lại
từ chế ñộ ngủ.
Sự trở về từ một thường trình ñiều khiển ngắt mất 4 chu kỳ xung nhịp. Trong thời gian 4
chu kỳ này, PC (2 bytes) ñược lấy ra từ ngăn xếp, SP ñược tăng lên 2, và bit I trong SREG ñược
ñặt.

ðo nhiệt ñộ giao tiếp Atmega8 15


ðồ án môn học 1 GVHD: TS. Ngô Văn Thuyên

IV. Atmega8.
1. Sơ ñồ chân cửa Atmega8

2. Các thông số chính:

• Atmega8 có tất cả 28 trong ñó có 23 chân I/O lập trinh ñược.


• Chân port hiểu logic 0 khi ñược cấp mức ñiện áp từ -0.5(V) ñến 0.2*Vcc (V), hiểu
mức logic 1 khi ñược cấp mức ñiện áp từ 0.6*Vcc ñến Vcc+0.5.
• Chân port xuất mức thấp là 0.7V (ở ñiều kiện Vcc=5V và dòng vào chân là 20mA).
Xuất mức cao cỡ 4.2V (ở cùng ñk như mức thấp).
• Dòng ngõ vào khi cấu hình input không ñáng kể 1uA.
• ðiện trở kéo lên chân port Rpu tầm 20k ñến 50k.
Khả năng cấp dòng khi là ngõ ra (tải cấp/rút dòng): 15mA ở ATmega8 trạng thái tích cực
8Mhz, Vcc=5V - Chính ñiều này làm cho chân port có khả năng lái tải trực tiếp.

VCC (chân 7) ðiện áp cung cấp số.


GND (chân 8, 22) Chân nối ñất.

Ba kênh ñiều chế ñộ rộng xung PWM ñược nạp nguồn từ 2 chân AVCC
(chân số 20) và AREF (chân số 21) với ñầu ra là chân OCR2 ( chân số 17).

ðo nhiệt ñộ giao tiếp Atmega8 16


ðồ án môn học 1 GVHD: TS. Ngô Văn Thuyên

Sáu kênh ADC (chân 23 ñến chân 28) trong ñó có 2 kênh ADC4 và ADC5 xử lý tín hiệu 8
bit , 4 kênh xử lý tín hiệu 10 bit là ADC0, ADC3, ADC6 và ADC7.

AREF AREF là chân tín


hiệu tham chiếu analog nối vào bộ biến ñổi A/D.
AVCC AVCC là chân cấp ñiện cho cổng A và bộ biến ñổi A/D. Nó ñược nối
nội bộ ñến VCC ngay cả trong trường hợp ADC không ñược sử dụng. Nếu
ADC ñược sử dụng, nó phải ñược nối với VCC qua bộ lọc thông thấp. Chú ý
rằng PC6:4 ñược sử dụng ñiện áp VCC.

V. Giới thiệu kít thí nghiệm.


Hình ảnh của kít thí nghiệm.

ðo nhiệt ñộ giao tiếp Atmega8 17


ðồ án môn học 1 GVHD: TS. Ngô Văn Thuyên

Sơ ñồ nguyên lý của kít.

Kít thí nghiệm có ñầy ñủ những gì ñể ta thực hành với Amega8 như: các port ñược
ñưa ra ngoài bằng các chân sẵn, có một biến trở ñể tex ADC, một cổng COM và ñặc biệt
có thêm một cổng USB ñể thuận tiện cho việc thí nghiệm không cân dùng nguồn ngoài, ta
tận dụng ñược nguồn từ cổng USB của máy tính.
ðể máy tính có thể nhận ñược kít thí nghiệm này ta cần phải cài ñặt Driver cho máy.

ðo nhiệt ñộ giao tiếp Atmega8 18


ðồ án môn học 1 GVHD: TS. Ngô Văn Thuyên

VI. Mạch nạp.

Ta có thể thấy rằng mạch nạp này khá ñơn giản, nó chỉ một con Atmega8 một tụ
thạch anh 12000MHZ vài con ñiện trở…
Sơ ñồ nguyên lý của mạch nạp.

ðo nhiệt ñộ giao tiếp Atmega8 19


ðồ án môn học 1 GVHD: TS. Ngô Văn Thuyên

Tính năng.
 Nạp ñược hầu hết các dòng AVR và một số chip 89S của Atmel.
 Hỗ trợ ñầy ñủ các tác vụ nạp chip thông thường như: Ghi/xóa/ñọc nội dung trong
chip, kiểm tra lỗi sau khi nạp.
 Hỗ trợ khóa chip và lập trình fuse bit .
 Header nạp ISP chuẩn ICE 5x2 như dòng KIT thí nghiệm STK của ATMEL giúp
kết nối thuận tiện.
 Tốc ñộ nạp cao, sử dụng ñược với hầu hết các trình biên dịch: Code Vision, AVR
Studio...
 Cực kì ñơn giản trong kết nối, cài ñặt và sử dụng.
 Danh sách chip ñược hỗ trợ:
 AT89S53  ATmega8
 AT89S8252  ATmega8515
 AT90S2313  ATmega8535
 AT90S8515  ATmega16
 ATtiny26  ATmega32
 ATtiny45  ATmega64
 ATtiny2313  ATmega128
 ATmega48  AT90CAN12
VII. Cảm biến nhiệt ñộ LM35.
Một số cảm biến nhiệt ñộ thông dụng như:

ðo nhiệt ñộ giao tiếp Atmega8 20


ðồ án môn học 1 GVHD: TS. Ngô Văn Thuyên

Trong ñồ án này ta dùng cảm biến LM35 với:

• Giới hạn nhiệt ñộ của cảm biến là: -600C ñến 1500C.

• ðiện áp cung cấp từ 4V ñến 30V.

• ðộ nhạy 10mV/1oC.

ðo nhiệt ñộ giao tiếp Atmega8 21


ðồ án môn học 1 GVHD: TS. Ngô Văn Thuyên

PHẦN II

PHẦN MỀM LẬP TRÌNH

I. Phần mềm lập trình codevision.


Lựa chọn phần mềm : ñây là phần mềm ñược sử dụng rất rộng rải bởi nó ñược xây
dựng trên nền ngôn ngữ lập trình C, phần mềm ñược viết chuyên nghiệp hướng tới người
sử dụng bởi sự ñơn giản, sự hổ trợ cao các thư viện có sẳn.
1 Khai báo.
 Khởi ñộng chương trình:

ðể mở một trang lâp trình mới cũng giống như những chương trinh khác ta làm như
sau: File/ New chương trình sẻ hiện cửa sổ sau.

ðo nhiệt ñộ giao tiếp Atmega8 22


ðồ án môn học 1 GVHD: TS. Ngô Văn Thuyên

Chọn Project sau ñó click chuột vào OK ñược cửa sổ hỏi xem có sử dụng Code
Winzard không:

Chọn Yes ñược cửa sổ CodeWinzardAVR như sau:

ðo nhiệt ñộ giao tiếp Atmega8 23


ðồ án môn học 1 GVHD: TS. Ngô Văn Thuyên

Sử dụng chíp AVR nào và thạch anh tần số bao nhiêu ta nhập vào tab Chip.
ðể khởi tạo cho các cổng IO ta chuyển qua tab Ports.
Các chân IO của AVR mặc ñịnh trạng thái IN, muốn chuyển thành trạng thái OUT ñể có thể ñưa
các mức logic ra ta click chuột vào các nút IN (mầu trắng) ñể nó chuyển thành OUT trong các
Tab Port.
Sau khi khỏi tạo các port ra vao ta tiếp tục khỏi tạo ñến tính năng ADC.

Ta check vào Use 8 bít, ñể ADC trả về giá trị 8 bít, và ta ADC dùng ngắt check vào
Interrupt, về ñiện áp tham khảo AREF thì lấy ñiện áp của chân AREF của AVR ñược nối
với 5V. Tần số ADC tùy các bạn thích nhanh hoặc chậm chọn giá trị phù hợp. Trong box
Automatically Scan Inputs các bạn check vào Enabled. Vì chúng ta cần ADC 2 kênh, 1
kênh dùng biến trở ñể test ADC, một kênh từ LM35 ñấu với 2 bit 0 và 1 của PORTA do
ñó chọn First 0, Last 1.
Tiếp tục ta khỏi tạo cổng nối tiếp các bước khởi tạo.

ðo nhiệt ñộ giao tiếp Atmega8 24


ðồ án môn học 1 GVHD: TS. Ngô Văn Thuyên

Trong tab USART check vào các ô Receiver ñể cho phép nhận dữ liệu; Rx Interrupt
ñể nhận dữ liệu sử dụng ngắt; Transmitter ñể cho phép truyền dữ liệu; Tx Interrupt ñể
truyền dữ liệu sử dụng ngắt.
Các thông số còn lại: Receiver Buffer và Transmitter Buffer là bộ nhớ ñệm nhận và
ñệm truyền. Trong ứng dụng ñơn giản chúng ta ñể mặc ñịnh là 8, trong các ứng dụng
truyền số lượng thông tin lớn ta có thể tăng bộ ñệm ñể tránh mất thông tin. Tốc ñộ baud
mặc ñịnh là 9600 (bit/s). Các thông số của bộ truyền: 8 bit, 1 bit dừng(stop), không ưu
tiên. Chế ñộ truyền không ñồng bộ.
Sau khi khởi tạo tất cả các port và các chuẩn xong ta tiến hành lưu: chọn
File/Generate, Save and Exit.
ðược cửa sổ yêu cầu nhớ các file của Project.

ðo nhiệt ñộ giao tiếp Atmega8 25


ðồ án môn học 1 GVHD: TS. Ngô Văn Thuyên

Sau khi nhớ song 3 file : IO.c – IO.prj – IO.cwp ñược cửa sổ như sau:

ðo nhiệt ñộ giao tiếp Atmega8 26


ðồ án môn học 1 GVHD: TS. Ngô Văn Thuyên

Chúng ta ñã ñược code vision khởi tạo code. Trong ñó có ñầy ñủ code cần
thiết mà khi nãy chúng ta cấu hình cho cổng IO, ADC, truyền nối tiếp. Chúng ta
bắt ñầu soạn code.
2. Code soạn thảo cho AVR.

ðo nhiệt ñộ giao tiếp Atmega8 27


ðồ án môn học 1 GVHD: TS. Ngô Văn Thuyên

II. Phần mềm nạp.


Các phần mềm nạp tương thích bao gồm AVR Studio và Code Vision. Chương
trình AVRProg tuy giao diện ñơn giản nhưng có ưu ñiểm là nạp rất nhanh, còn
CodeVision thì ngược lại.
Sau ñây sẽ hướng dẫn Các bước nạp chip sử dụng chương trình AVR Prog
trong AVRStudio:

ðo nhiệt ñộ giao tiếp Atmega8 28


ðồ án môn học 1 GVHD: TS. Ngô Văn Thuyên

• Cắm mạch nạp vào cổng USB.


• Khởi ñộng chương trình AVR Prog.
• Cắm cable nạp giữa mạch nạp với KIT chứa chip cần nạp tương ứng.
• Chọn loại chip tương ứng trên tab Device, nhấp chọn Advanced ñể test xem mạch
nạp
• nhận ra chip chưa...Nếu không xuất hiện bất kì thông báo lỗi nào mà hiện ngay lên
cửa sổ Advanced, trong khung ñánh dấu như bên dưới hiển thị rõ ràng thông số
của chip (không có dấu “?”) có nghĩa là mạch nạp hoạt ñộng tốt và ñã nhận ra
chip.
III. Phần mềm tạo giao diện Visual Studio 2005.

1. Các bước tạo giao diện cho chương trình.

Sau khi ñã khởi ñộng phần mềm Visual Studio 2005, ta thực hiện các bước tạo
giao diện cho chương trình như sau.

ðo nhiệt ñộ giao tiếp Atmega8 29


ðồ án môn học 1 GVHD: TS. Ngô Văn Thuyên

ðo nhiệt ñộ giao tiếp Atmega8 30


ðồ án môn học 1 GVHD: TS. Ngô Văn Thuyên

ðo nhiệt ñộ giao tiếp Atmega8 31


ðồ án môn học 1 GVHD: TS. Ngô Văn Thuyên

Sau khi hoàn thành ta ñược giao diện thiết kế như sau:

ðo nhiệt ñộ giao tiếp Atmega8 32


ðồ án môn học 1 GVHD: TS. Ngô Văn Thuyên

2. Code soạn thảo cho giao diện.

ðo nhiệt ñộ giao tiếp Atmega8 33


ðồ án môn học 1 GVHD: TS. Ngô Văn Thuyên

ðo nhiệt ñộ giao tiếp Atmega8 34


ðồ án môn học 1 GVHD: TS. Ngô Văn Thuyên

 Chú ý:
+ Cách kiểm tra lỗi:

+ Chạy chương trình:

Như vậy với phần mềm Visual Studio 2005 ta ñã thiết kế xong giao diện ñể chạy
chương trình.

ðo nhiệt ñộ giao tiếp Atmega8 35


ðồ án môn học 1 GVHD: TS. Ngô Văn Thuyên

PHẦN III

QUÁ TRÌNH HOẠT ðỘNG CỦA ðỒ ÁN

I. Mô tả hoạt ñộng ñồ án.


Sau khi ta ñã hoàn thành thiết kế giao diện giao tiếp với máy tính bằng Visual
Studio và viết code nạp cho AVR.
Các bước tiến hành như sau:
Chạy giao diện như sau.

Ta tiếp tục ñiều chỉnh hai thông số (giới hạn trên và dưới) của chương trình, ñể khi
nhiệt ñộ thay ñổi trong từng giới hạn tương ứng, chương trình sẽ có sự thay ñổi hiệu ứng
thích hợp ñể người dùng dễ nhận biết.
II. Ứng dụng của ñồ án.
Với sản phẩm ñược tạo ra ở trên ta có thể sử dụng ñể:

ðo nhiệt ñộ giao tiếp Atmega8 36


ðồ án môn học 1 GVHD: TS. Ngô Văn Thuyên

• ðo nhiệt ñộ phòng, từ dữ liệu thu thập ñược ta có thể ñiều khiển các thiết bị
trong phòng một cách tự ñộng như: quạt, ñiều hoà, báo cháy…
• Ứng dụng trong việc ño nhiệt ñộ của lò nhiệt trong các thí nghiệm.

ðo nhiệt ñộ giao tiếp Atmega8 37


ðồ án môn học 1 GVHD: TS. Ngô Văn Thuyên

MỤC LỤC

Lời cảm ơn……………………………… .............................................. 2


Lời giới thiệu ......................................................................................... 3
Phần I..................................................................................................... 4
Phần cứng..................................................................................... 4
I. Giới thiệu chung về ñề tài. .............................................................. 4
II. Tổng quan về AVR......................................................................... 4
III. Cấu trúc tổng quát: ....................................................................... 6
1. ðơn vị xử lý số học và logic.................................................... 8
2. Thanh ghi trạng thái. ................................................................ 8
3. Các thanh ghi chức năng chung. ............................................. 9
4. Con trỏ ngăn xếp (SP). ............................................................. 13
5. Các thanh ghi xử lý phần cứng ................................................ 13
6. ðiều khiển ngắt và reset. ......................................................... 13
IV. Atmega8........................................................................................ 16
1. Sơ ñồ chân cửa Atmega8 ....................................................... 16
2. Các thông số chính: ............................................................... 16
V. Giới thiệu kít thí nghiệm............................................................... 17
VI. Mạch nạp ..................................................................................... 19
VII Cảm biến nhiệt ñộ LM35. ............................................................ 20
Phần II.................................................................................................. 22
Phần mềm lập trình ......................................................................... 22
I. Phần mềm lập trình codevision. ................................................. 22
1. Khai báo. ………………………………………………… ..... 22
2. Code soạn thảo cho AVR........................................................ 27
II. Phần mềm nạp............................................................................ 28
III. Phần mềm tạo giao diện Visual Studio 2005. ............................. 29
1. Các bước tạo giao diện cho chương trình .............................. 29
2. Code soạn thảo cho giao diện ................................................. 33
PHẦN III ............................................................................................. 36

ðo nhiệt ñộ giao tiếp Atmega8 38


ðồ án môn học 1 GVHD: TS. Ngô Văn Thuyên

Quá trình hoạt ñộng của ñồ án ..................................................... 36


I. Mô tả hoạt ñộng ñồ án................................................................ 36
II. Ứng dụng của ñồ án. .................................................................. 36

ðo nhiệt ñộ giao tiếp Atmega8 39

You might also like