do nhiet do dung lm35 giao tiep atmega8 hien thi may tinh

39
ðồ án môn hc 1 GVHD: TS. Ngô Văn Thuyên ðo nhit ñộ giao tiếp Atmega8 1 NHN XÉT CA GIÁO VIÊN HƯỚNG DN Phn nhn xét: Tinh thn và thái ñộ làm vic: ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… Ni dung ñồ án: ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… Hình thc: ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… Kết lun: ðim xếp loi: Bng s:…. Bng ch: ……. TPHCM, ngày …tháng …năm 2010 Ging viên hướng dn TS. Ngô Văn Thuyên

Upload: hoangduong1392995

Post on 03-Jul-2015

588 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Do Nhiet Do Dung LM35 Giao Tiep Atmega8 Hien Thi May Tinh

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

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

1

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

Page 2: Do Nhiet Do Dung LM35 Giao Tiep Atmega8 Hien Thi May Tinh

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

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

2

LỜI CẢM ƠN ------------ ----D D DD D DD D DD 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.

Page 3: Do Nhiet Do Dung LM35 Giao Tiep Atmega8 Hien Thi May Tinh

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

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

3

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…

Page 4: Do Nhiet Do Dung LM35 Giao Tiep Atmega8 Hien Thi May Tinh

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

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

4

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.

Page 5: Do Nhiet Do Dung LM35 Giao Tiep Atmega8 Hien Thi May Tinh

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

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

5

� 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).

Page 6: Do Nhiet Do Dung LM35 Giao Tiep Atmega8 Hien Thi May Tinh

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

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

6

� 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.

Page 7: Do Nhiet Do Dung LM35 Giao Tiep Atmega8 Hien Thi May Tinh

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

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

7

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.

Page 8: Do Nhiet Do Dung LM35 Giao Tiep Atmega8 Hien Thi May Tinh

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

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

8

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:

Page 9: Do Nhiet Do Dung LM35 Giao Tiep Atmega8 Hien Thi May Tinh

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

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

9

• 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.

Page 10: Do Nhiet Do Dung LM35 Giao Tiep Atmega8 Hien Thi May Tinh

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

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

10

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.

Page 11: Do Nhiet Do Dung LM35 Giao Tiep Atmega8 Hien Thi May Tinh

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

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

11

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

Page 12: Do Nhiet Do Dung LM35 Giao Tiep Atmega8 Hien Thi May Tinh

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

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

12

Page 13: Do Nhiet Do Dung LM35 Giao Tiep Atmega8 Hien Thi May Tinh

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

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

13

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

Page 14: Do Nhiet Do Dung LM35 Giao Tiep Atmega8 Hien Thi May Tinh

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

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

14

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.

Page 15: Do Nhiet Do Dung LM35 Giao Tiep Atmega8 Hien Thi May Tinh

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

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

15

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.

Page 16: Do Nhiet Do Dung LM35 Giao Tiep Atmega8 Hien Thi May Tinh

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

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

16

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).

Page 17: Do Nhiet Do Dung LM35 Giao Tiep Atmega8 Hien Thi May Tinh

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

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

17

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.

Page 18: Do Nhiet Do Dung LM35 Giao Tiep Atmega8 Hien Thi May Tinh

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

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

18

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.

Page 19: Do Nhiet Do Dung LM35 Giao Tiep Atmega8 Hien Thi May Tinh

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

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

19

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.

Page 20: Do Nhiet Do Dung LM35 Giao Tiep Atmega8 Hien Thi May Tinh

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

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

20

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

� AT89S8252

� AT90S2313

� AT90S8515

� ATtiny26

� ATtiny45

� ATtiny2313

� ATmega48

� ATmega8

� ATmega8515

� ATmega8535

� ATmega16

� ATmega32

� ATmega64

� ATmega128

� AT90CAN12

VII. Cảm biến nhiệt ñộ LM35.

Một số cảm biến nhiệt ñộ thông dụng như:

Page 21: Do Nhiet Do Dung LM35 Giao Tiep Atmega8 Hien Thi May Tinh

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

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

21

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.

Page 22: Do Nhiet Do Dung LM35 Giao Tiep Atmega8 Hien Thi May Tinh

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

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

22

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.

Page 23: Do Nhiet Do Dung LM35 Giao Tiep Atmega8 Hien Thi May Tinh

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

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

23

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:

Page 24: Do Nhiet Do Dung LM35 Giao Tiep Atmega8 Hien Thi May Tinh

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

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

24

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.

Page 25: Do Nhiet Do Dung LM35 Giao Tiep Atmega8 Hien Thi May Tinh

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

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

25

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.

Page 26: Do Nhiet Do Dung LM35 Giao Tiep Atmega8 Hien Thi May Tinh

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

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

26

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

Page 27: Do Nhiet Do Dung LM35 Giao Tiep Atmega8 Hien Thi May Tinh

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

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

27

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.

Page 28: Do Nhiet Do Dung LM35 Giao Tiep Atmega8 Hien Thi May Tinh

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

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

28

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:

Page 29: Do Nhiet Do Dung LM35 Giao Tiep Atmega8 Hien Thi May Tinh

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

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

29

• 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.

Page 30: Do Nhiet Do Dung LM35 Giao Tiep Atmega8 Hien Thi May Tinh

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

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

30

Page 31: Do Nhiet Do Dung LM35 Giao Tiep Atmega8 Hien Thi May Tinh

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

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

31

Page 32: Do Nhiet Do Dung LM35 Giao Tiep Atmega8 Hien Thi May Tinh

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

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

32

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

Page 33: Do Nhiet Do Dung LM35 Giao Tiep Atmega8 Hien Thi May Tinh

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

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

33

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

Page 34: Do Nhiet Do Dung LM35 Giao Tiep Atmega8 Hien Thi May Tinh

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

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

34

Page 35: Do Nhiet Do Dung LM35 Giao Tiep Atmega8 Hien Thi May Tinh

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

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

35

� 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.

Page 36: Do Nhiet Do Dung LM35 Giao Tiep Atmega8 Hien Thi May Tinh

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

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

36

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 ñể:

Page 37: Do Nhiet Do Dung LM35 Giao Tiep Atmega8 Hien Thi May Tinh

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

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

37

• ð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.

Page 38: Do Nhiet Do Dung LM35 Giao Tiep Atmega8 Hien Thi May Tinh

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

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

38

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

Page 39: Do Nhiet Do Dung LM35 Giao Tiep Atmega8 Hien Thi May Tinh

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

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

39

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