Giáo trình môn vi xử lý

55 849 11
Giáo trình môn vi xử lý

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Giáo trình môn vi xử lý

m m « « n n : : v v i i x x ö ö l l ý ý Linhdt1 1 Lời nói đầu Trong công nghệ điện tử ,Vi Xử là một thành phần quan trọng không thể thiếu,nó mang nhiều tính u việt : có thể thay thế một mạch điện phức tạp bằng một vi mạch nhỏ gọn với chi phí thấp hơn , nhng ứng dụng lại đa dạng và linh hoạt hơn.Khả năng điều khiển thông minh hơn ,tiết kiệm năng lợng hơn ,tốc độ xử nhanh hơn,ứng dụng nhiều trong hệ thống nhúng . Để học tập tốt môn học Vi Xử ngoài những kiến thức trên sách vở cần có sự thực hành ứng dụng vào thực tế. Trên cơ sở đó chúng em đã áp dụng những kiến thức có đợc trong quá trình học tập để chế tạo sản phẩm NHIệT Kế ĐIệN Tử Điều khiển tự động dùng vi điều khiển AVR của ATMEL ,có khả năng đo và tự động điều khiển nhiệt độ. áp dụng Vi Xử trong lĩnh vực này đã đơc nghiên cứu và phát triển nhiều với những loại vi điều khiển ,cảm biến và ngôn ngữ lập trình khác nhau dụ:dùng cảm biến nhiệt độ LM35 kết hợp với AT89S52và IC biến đổi A/D và hiển thị bằng LED7 thanh đo đợc nhiệt độ từ -55 đến +150C,dùng LM34C và 16F88 thuộc vi điều khiển PIC dùng ngôn ngữ lập trình BASIC hiển thị nhiệt độ bằng LCD, chỉ đo đợc nhiệt độ từ -55 đến +125C. Nói chung những loại cảm biến nhiệt độ họ LM so với họ DS thì độ chính xác không cao và tốc độ truyền tín hiệu chậm 2C - 150C với tần số (20 -1500Hz) nhng giá thành chế tạo rẻ. Còn ở loại cảm biến họ DS độ chính xác rất cao do tín hiệu đợc truyền có độ phân dải lên đến 12bit trong 750ms ở loại cảm biến này có tích hợp ROM 64bit,bộ nhớ Logic, mạch ổn định tín hiệu đầu ra ,chính vậy mà nó khắc phục đợc những nhợc điểm của cảm biến họ LM .So với những loại nhiệt kế dùng họ vi điều khiển 8051 và PIC nhiệt kế dùng vi điều khiển ATMEGA16L thuộc họ vi điều khiển AVR có nhiều u điểm hơn,so với vi điều khiển PIC lập trình bằng ngôn ngữ lập trình BASIC thì dùng AVR lập trình bằng C thì phần mềm sẽ ngắn gọn hơn, còn so với 8051 thì tốc độ xử tín hiệu nhanh hơn không cần lắp thêm bộ biến đổi A/D do ATMEGA16 đã tích hợp sẵn bộ biến đổi A/D và việc lập trình sẽ đơn giản hơn. Sản phẩm này có thể phát triển đợc một số ứng dụng vào đời sống . Có thể lắp đợc nhiều cảm biến DS18B20 vào Bus-1wire với độ dài lên tới 300m và điều kiểm soát đợc giá trị nhiệt độ của từng cảm biến .Một ứng dụng đơn giản là tự động điều khiển nhiệt độ phòng bảo quản hoá chất bằng cách kết hợp với Transistor để đóng mở Role điều khiển máy điều hoà ,nh vậy sẽ tiết kiệm đợc lợng điện năng tiêu hao vô ích trong lúc nhiệt độ đã đạt mức yêu cầu . Do hạn chế về trình độ và thời gian nên đề tài còn rất nhiều những khuyết điểm , chúng em rất mong đợc sự dạy bảo của các thầy, cô và những ý kiến đóng góp của các bạn,để có những hiểu biết rõ hơn về đề tài này. Hà Nội , ngày 5 tháng 12 năm 2007 Nhóm thực hiện đề tài Linhdt1 2 Nội dung : Trang Chơng I : Sơ Đồ Nguyên 3 + I.1 : Phần Cứng 4 + I.2 : Phần Mềm 7 Chơng II : Nguyên Hoạt Động + II.1 : Tổng Quan Họ Vi Điều Khiển AVR 9 + II.2 : Vi Điều Khiển ATMEGA16L 20 + II.3 : Cảm Biến Nhiệt Độ DS18B20 43 + II.4 : Hoạt Động Của Mạch Điện 47 Chơng III : Mạch Nạp 48 Chơng IV : Phần Mềm Thiết Kế Và Lập Trình + IV.1 : Proteus7.1SP2 49 + IV.2 : CodeVisionAVR 53 Linhdt1 3 CH¦¥NG I : S¥ §å NGUY£N Linhdt1 4 Sơ đồ nguyên trên nguồn cấp cho mạch điện là nguồn AC từ 7 đến 24V + 3 chân cấp nguồn cho Chip ATMEGA16L là những chân 10,11,31 không vẽ trên sơ đồ (chân 10 đợc nối với chân 30, chân 11đợc nôí với chân 31). + điện trở PULLUP có giá trị 4,7K + Tụ C3 có thể thay bằng tụ hoá 10uf + Có thể dùng thạch anh 4MHz thay cho loại 8MHz I.1 : phần cứng Phần cứng đợc sử dụng để lắp mạch gồm : 1. Chip ATMEGA16L + Điện áp hoạt động : từ 2.7 đến 5.5VDC + Sơ đồ chân : - VCC : Cấp nguồn + - GND : Nối đất - AVCC : Là chân cấp điện cho cổng A(Port A ) và bộ biến đổi A/D,PC3,PC0,ADC7,ADC6 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 Linhdt1 5 Không đợc sử dụng , nó phải đợc nối với VCC qua bộ lọc thông thấp.Cả PC6 và PC4 cũng sử dụng đợc điện áp AVCC. - AREF : Là chân tín hiệu tham chiếu Analog ( tơng tự ) nối vào bộ biến đổi A/D. - PORT B : Từ PB7 đến PB0 là cổng I/O 8-bit hai chiều với các điện trở Pull-up bên trong (đợc lựa chọn cho mỗi bit ) . Bộ đệm đầu ra của Port B có đặc tính điều khiển cân đối với cả tín hiệu Source( nguồn ) và Sink (bên trong).Khi là tín hiệu đầu vào , các chân của cổng B sẽ Tiêu thụ dòng nếu các điện trở Pull-Up bên trong đợc kích hoạt. Các chân của Port B là 3 trạng thái khi có tín hiệu Reset đợc kích hoạt, thậm chí đồng hồ không chạy.Tuỳ thuộc việc đặt các cầu chì lựa chọn xung nhịp, chân PB6 có thể đợc sử dụng nh là bộ khuếch đại dao dộng đảo. Tuỳ thuộc việc đặt cầu chì lựa chọn xung nhịp ,chân PB7 có thể đợc sử dụng nh là đầu ra từ bộ khuếch đại dao động đảo. Nếu nh bộ dao động RC định cỡ bên trong đợc sử dụng nh là nguồn xung nhịp của chip bên trong thì PB7-PB6 đợc sử dụng nh là đầu vào TOSC2 và TOSC1 cho Timer/Counter2 nếu nh Bit AS2 trong thanh ghi ASSR đợc đặt. - PORT C : Port C là cổng I/O 7-bit hai chiều với các điện trở Pull-up bên trong (dợc lựa chọn cho mỗi bit) . Bộ nhớ đệm đầu ra của Port C có tính điều khiển cân đối với cả tín hiệu Source và sink .Khi là các tín hiệu đầu vào , các chân của Port C là 3 trạng thái khi có tín hiệu reset đợc kích hoạt ,thậm chí đồng hồ không chạy. Đối voi chân PC6 Nếu cầu chì RSTDISBL đợc lập trình , PC6 đợc sử dụng nh là một chân đầu vào Reset . Khi tín hiệu ở mức thấp dài hơn độ dáI của xung nhỏ nhất sẽ gây ra Reset ngay cả khi các xung nhịp không còn. - PORT D : Port D là cổng I/O 8-bit hai chiềuvới các điện trở Pull-Up bên trong (đợc lựa chọn cho mỗi bit). Bộ đệm đầu ra của Port D có đặc tính giống Port C. - PORT A : Đầu ra của bộ biến đổi A/D - XTAL1 & XTAL2 : Chân vào ra của thạch anh tạo dao động 2. LCD 2 dòng 16 ký tự +Điện áp hoạt động từ 2.7 5VDC +Tần số hiển thị 2MHZ ở mức điện áp 5V 3. Cảm Biến Nhiệt Độ DS18B20 Linhdt1 6 + Điện áp hoạt động từ 3.0 5VDC - Chân 1 : GND - Chân 2 : DQ (truyền tín hiệu) - Chân 3 : Nguồn Vcc + Có thể đo nhiệt độ từ -55 đến +125C (-67F đến +257F) GND DQ VCC - Khi lắp vào mạch phải nối chân 2 và chân 3 với một điện trở 4K7 4. Những linh kiện khác 2 tụ 2200uf 16V 7805 - Để lọc nguồn 1 IC ổn áp 5V - Tạo điện áp 5V cấp cho mạch 33 1 tụ 47uf 16V 104 - Làm mạch reset 2 tụ gốm 33pf - ổn định làm việc cho thạch anh 20V 0.5A 1 tụ gốm 104pf - bảo vệ mạch tránh những thành phần tần số cao 1 điện trở 4,7K và 1 điện trở 10K - Nối chân 2 va chân 3 của DS18B20 va nối với mạch 8.000 Rese Biến áp 20V- 0.5A Thach anh 8.000MHz Cầu Diod Linhdt1 7 I.2 : PHầN MềM Phần mềm viết bằng ngôn ngữ C /* Nhiet ke dien tu v1.0 by Linh */ #asm .equ __w1_port=0x1b //Đặt cổng nhiệt độ .equ __w1_bit=6 //Đặt bit nối cảm biến #endasm #asm .equ __lcd_port=0x15 //Đặt cổng LCD #endasm #include <lcd.h> // Khởi tạo LCD #include <ds18b20.h> #include <delay.h> #include <stdio.h> #include <mega16.h> char lcd_buffer[33]; /* Số lợng tối đa chip DS18B20 nối vào hệ thống */ #define MAX_DEVICES 8 /* Vùng mã DS18B20 ROM */ unsigned char rom_code[MAX_DEVICES][9]; main() { unsigned char i,j,t1,devices; PORTD=0x00; lcd_init(16); lcd_putsf("Truong CDCN \n Thanh Do"); delay_ms(1000);thời gian hiện chữ trên LCD lcd_clear(); lcd_putsf("Lop DTVT1-K3"); delay_ms(1000); lcd_clear(); lcd_putsf("Desined by \n LINH"); delay_ms(1000); lcd_clear(); lcd_putsf("GVHD:NGUYEN DINH\nTHUAN"); delay_ms(1000); lcd_clear(); /* Kiểm tra số lợng DS18B20 nối vào hệ thống */ devices=w1_search(0xf0,rom_code); Linhdt1 8 sprintf(lcd_buffer,"So luong: \n %u DS18B20",devices); lcd_puts(lcd_buffer); delay_ms(2000); /* Hiển thị mã ROM */ if (devices) { for (i=0;i<devices;i++) { sprintf(lcd_buffer,"Ma ROM\nchip #%u la:",i+1);Hiển thị mã ROM chip lcd_clear(); Xoá ký tự lcd_puts(lcd_buffer); delay_ms(1000); lcd_clear(); for (j=0;j<8;j++) { sprintf(lcd_buffer,"%02X ",rom_code[i][j]); lcd_puts(lcd_buffer); if (j==3) lcd_gotoxy(0,1); }; delay_ms(1000); }; } else while (1); /* Dừng lại khi có lỗi */ /* Đặt chế độ làm việc ở độ chính xác 12 bit */ for (i=0;i<devices;) if (!ds18b20_init(&rom_code[i++][0],20,30,DS18B20_12BIT_RES)) { sprintf(lcd_buffer,"Thiet bi\nloi #%u",i); lcd_clear(); lcd_puts(lcd_buffer); while (1); /* Dừng lại khi có lỗi */ }; /* Đọc nhiệt độ và kiểm tra điều kiện */ while (1) { j=1; for (i=0;i<devices;i++) { Linhdt1 9 sprintf(lcd_buffer,"t%u=%+.0f\xdfC",j++,ds18b20_temperature(&rom_code[i][0])); lcd_clear(); lcd_puts(lcd_buffer); t1 = ds18b20_temperature(0); if (t1<35||t1>13) { PORTD=0x00; // Tắt thiết bị làm nóng và làm lạnh trong điều kiện khác } if (t1 >= 35) ; Đặt điều kiện làm lạnh { PORTD=0x01; //Bật thiết bị làm lạnh } if (t1 <= 13) ; Đặt điều kiện làm nóng { PORTD=0x02; //Bật thiết bị làm nóng } delay_ms(500); Thời gian khởi động }; }; } CHƯƠNG II : NGUYÊN HOạT ĐộNG II.1 : Tổng Quan Họ Vi Điều Khiển AVR Vi iu khin AVR (Atmel Norway design) thuc h vi iu khin Atmel, nú l h Vi iu khin mi trờn th trng cng nh i vi ngi s dng. õy l h Vi iu Khin c ch to theo kin trỳc RISC (Reduced Intruction Set Computer) cú cu trỳc khỏ phc tp. Ngoi cỏc tớnh nng nh cỏc h VK khỏc, nú cũn tớch hp nhiu tớnh nng mi rt tin li cho ngi thit k v l p trỡnh.S ra i ca AVR bt ngun t yờu cu thc t l hu ht khi cn lp trỡnh cho vi iu khin, chỳng ta thng dựng nhng ngụn ng bc cao HLL (Hight Level Language) lp trỡnh ngay c vi loi chip x lớ 8 bit trong ú ngụn ng C l ngụn ng ph bin nht. Tuy nhiờn khi biờn dch thỡ kớch thc on mó s tng nhiu so vi dựng ngụn ng Assembly. Hóng Atmel nhn thy rng cn phi phỏt trin mt c u trỳc c bit cho ngụn ng C gim thiu s chờnh lch kớch thc mó ó núi trờn. V kt qu l h vi iu khin AVR ra i vi vic lm gim kớch thc on mó khi biờn dch v thờm vo ú l thc hin lnh ỳng n chu k mỏy vi 32 thanh ghi tớch ly v t tc nhanh hn cỏc h vi iu khin khỏc t 4 n 12 ln. Vỡ th nghiờn cu AVR l mt ti khỏ thỳ v giỳp cho học sinh, sinh viờn bit thờm mt h vi iu khin vo loi mnh hin nay. [...]... là máy tính dùng tập lệnh rút gọn,bộ vi xử kiểu này thực hiện ít lệnh hơn những bộ vi xử khác) vi hu ht cỏc lnh cú chiu di c nh, truy nhp b nh np lu tr v 32 thanh ghi a nng 2- Cú nhiu b phn ngoi vi ngay trờn chip, bao gm: Cng vo/ra s, b bin i ADC, b nh EEFROM, b nh thi, b iu ch rng xung (PWM), 3- Hu ht cỏc lnh u thc hin trong mt chu k xung nhp 4- Hot ng vi chu k xung nhp cao, cú th lờn n 20... nguyên : 20 Linhdt1 21 Linhdt1 Các đặc Tính Của Vi Điều Khiển ATMEGA16L - Hiu nng cao, tiờu th nng lng ớt - Kin trỳc RISC - Reduce Instruction Set Computer (Có nghĩa là máy tính dùng tập lệnh rút gọn,bộ vi xử kiểu này thực hiện ít lệnh hơn những bộ vi xử khác) - 131 lnh mnh, hu ht cỏc lờnh thc hin trong mt chu k - 32 Thanh ghi 8-bit a nng - Tc c thc hin lờn ti 16 triu lnh trong 1 giõy vi tn... chip ra khi bn mch 7- H tr cho vic lp trỡnh bng ngụn ng bc cao ngụn ng C Ct lừi ca AVR l s kt hp tp lnh y vi cỏc thanh ghi a nng 32 bit Tt c cỏc thanh ghi 32 bit ny liờn kt trc tip vi khi x s hc v logic (ALU) cho phộp 2 thanh ghi c lp c truy cp trong mt lnh n trong 1 chu k ng h Kt qu l tc nhanh gp 10 ln cỏc b vi iu khin CISC(Complex Instruction Set Computer : mỏy tớnh vi tp lnh phc tp Mt loi kin... trờn hỡnh vẽ Bn b nh d liu SRAM ATmega16L l b vi iu khin hon chnh h tr nhiu thit b ngoi vi trong 64 v trớ c t trc trong mó lnh IN/OUT i vi cỏc khụng gian vo ra m rng t 0x60 n 0xFF trong SRAM thỡ ch cú cỏc lnh ST/STS/STD v LD/LDS/LDD mi c s dng 5 ch a ch khỏc nhau cho b nh d liu bao gm: Trc tip, giỏn tip vi lch, giỏn tip, giỏn tip vi lch gim, v giỏn tip vi lch tng lờn Trong tp thanh ghi, cỏc thanh... 25oC i vi ATmega16L - Hot ng tớch cc: 1.1mA - Chế độ nghỉ ở 0.35mA - Ch nng lng thp: . nghĩa là máy tính dùng tập lệnh rút gọn,bộ vi xử lý kiểu này thực hiện ít lệnh hơn những bộ vi xử lý khác) vi hu ht cỏc lnh cú chiu di c nh, truy nhp. kiệm năng lợng hơn ,tốc độ xử lý nhanh hơn,ứng dụng nhiều trong hệ thống nhúng... Để học tập tốt môn học Vi Xử Lý ngoài những kiến thức trên

Ngày đăng: 25/04/2013, 12:02

Hình ảnh liên quan

thỏi. Tất cả cỏc ngắt cú vector ngắt riờng biệt trong bảng vector ngắt. Cỏc ngắt này cú mức độ ưu tiờn theo vị trớ của vector ngắt tương ứng - Giáo trình môn vi xử lý

th.

ỏi. Tất cả cỏc ngắt cú vector ngắt riờng biệt trong bảng vector ngắt. Cỏc ngắt này cú mức độ ưu tiờn theo vị trớ của vector ngắt tương ứng Xem tại trang 13 của tài liệu.
Bảng hằng số cú thể được đặt trong khụng gian bộ nhớ chương trỡnh. Bản đồ bộ nhớ chương trỡnh như hỡnh vẽ  - Giáo trình môn vi xử lý

Bảng h.

ằng số cú thể được đặt trong khụng gian bộ nhớ chương trỡnh. Bản đồ bộ nhớ chương trỡnh như hỡnh vẽ Xem tại trang 25 của tài liệu.
Bảng 1.2 Cỏc nguồn tạo xung nhịp và cỏch lựa chọn Nguồn xung nhịp mặc định    - Giáo trình môn vi xử lý

Bảng 1.2.

Cỏc nguồn tạo xung nhịp và cỏch lựa chọn Nguồn xung nhịp mặc định Xem tại trang 31 của tài liệu.
Bảng 1.3 Lựa chọn chế độn gủ - Giáo trình môn vi xử lý

Bảng 1.3.

Lựa chọn chế độn gủ Xem tại trang 32 của tài liệu.
Bảng vector ngắt – hình 4 - Giáo trình môn vi xử lý

Bảng vector.

ngắt – hình 4 Xem tại trang 36 của tài liệu.
Địa chỉ vector ngắt và Reset – hình 3 - Giáo trình môn vi xử lý

a.

chỉ vector ngắt và Reset – hình 3 Xem tại trang 36 của tài liệu.
wire bus) giống hình d−ới đõy: - Giáo trình môn vi xử lý

wire.

bus) giống hình d−ới đõy: Xem tại trang 45 của tài liệu.

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan