Thiết kế kế volmet điện từ hiển thị led 7 đoạn

25 394 0
Thiết kế kế volmet điện từ hiển thị led 7 đoạn

Đ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

Thiết kế kế volmet điện từ hiển thị led 7 đoạn

Thiết kê mô hình Voltmet điện tử, hiển thị led đoạn ĐỒ ÁN MÔN VI ĐIỀU KHIỂN Lời nói đầu Ngày phát triển không ngừng khoa học kỹ thuật, đem lại cho người thành tựu to lớn cho xã hội, giúp cho người dễ dàng tiếp cận với nhiều máy móc, thiết bị đại giúp nâng cao suất lao động Hoà nhập xu hướng đó, vi điều khiển khẳng định vị vững ứng dụng Điển hình công nghệ đo lường điều khiển đặc biệt hệ thống đo lường, vi điều khiển đóng vai trò quan trọng thiếu thiết bị đòi hỏi có độ xác cao, vi điều khiển có mặt hầu hết thiết bị đo lường đo quãng đường, đo vận tốc, đo điện áp, dòng điện… số ứng dụng dùng đo điện áp với độ xác cao ứng dụng rộng rãi với nhiều thiết bị đa dạng, phong phú Qua thời gian nghiên cứu, tìm hiểu đề tài ” Thiết kê mô hình Voltmet điện tử, hiển thị led đoạn” chúng em hoàn thành đề tài đạt số kết Do thời gian có hạn nên đề tài chúng em có chỗ thiếu sót, mong thầy cô góp ý để đề tài chúng em hoàn thiện Chúng em xin chân thành cảm ơn thầy cô bạn giúp đỡ chúng em trình thực Chúng em xin chân thành cảm ơn! Nhóm sinh viên Page Thiết kê mô hình Voltmet điện tử, hiển thị led đoạn PHẦN 1: CƠ SỞ LÝ THUYẾT Chương 1: Tìm hiểu Vi điều khiển Atmega8 Những Tính Năng Chính Của ATmega8: o Có Kbyte nhớ flash o Có thể xóa lập trình chịu 10000 lần ghi xóa o Có 32 ghi đa bit, o Có 512 byte nhớ EEPROM tích hợp chíp, o Ccó kbyte SRAM nội o Có hai Timer/counter bit timer/counter 16 bit với chia tần lập trình o Có ba kênh điều xung, kênh lối vào chuyển đổi ADC với độ phân giải 10 bit o Atmega8 có 28 chân, có 23 cổng vào o Nguồn nuôi từ 2.7 đến 5.5 Atmega8L từ 4.5 đến 5.5 Atmega8, o Làm việc tiêu thụ dòng 3.6mA o Sử dụng mạch dao động từ đến Mhz với Atmega8L từ đến 16 Mhz với Atmega8 o Ngoài chíp Atmega8 có xung nội bên lập trình chế độ xung nhịp Vi điều khiển AVR hãng Atmel ( Hoa Kì ) sản xuất gới thiệu lần đầu năm 1996 AVR có nhiều dòng khác bao gồm dòng Tiny AVR ( AT tiny 13, AT tiny 22…) có kích thước nhớ nhỏ, phận ngoại vi, đến dòng AVR ( chẳn hạn AT90S8535, AT90S8515,…) có kích thước nhớ vào loại trung bình mạnh dòng Mega ( ATmega32, ATmega128,…) với nhớ có kích thước vài Kbyte đến vài trăm Kb với ngoại vi đa dạng tích hợp chip, có dòng tích hợp LCD chip ( dòng LCD AVR ) Tốc độ dòng Mega cao so với dòng khác Sự khác dòng chình cấu trúc ngoại vi, nhân nhau, Hình 1.1 Block Diagram Page Thiết kê mô hình Voltmet điện tử, hiển thị led đoạn Page Thiết kê mô hình Voltmet điện tử, hiển thị led đoạn Đặt biệt, năm 2008, Atmel lại tiếp tục cho đời dòng AVR XmegaAVR, với tính mạnh mẽ chưa có dòng AVR trước Có thể nói XmegaAVR dòng MCU bit mạnh mẽ 1.1 Các dòng AVR khác nhau: Tiny, AVR Mega � Bộ Nhớ Dữ Liệu : Bộ nhớ liệu AVR chia làm phần nhớ SRAM nhớ EEPROM Tuy nhớ liệu hai nhớ lại tách biệt đánh địa riêng � Bộ nhớ SRAM có dụng lượng K bytes, Bộ nhớ SRAM có hai chế độ hoạt động chế độ thông thường chế độ tương thích với ATmega103, muốn thiết lập nhớ SRAM hoạt động theo chế độ ta sử dụng bit cầu chì M103C ( M103C fuse bit (9) ) Atmega8 vi điều khiển bit dựa kiến trúc RISC Với khả thực lệnh vòng chu kỳ xung clock, Atmega8 đạt tốc độ 1MIPS MHz (1 triệu lệnh/s/MHz) Dưới sơ đồ khối Atmega8 Page Thiết kê mô hình Voltmet điện tử, hiển thị led đoạn Sơ đồ cấu trúc Atmega8 ATmega hỗ trợ đầy đủ chương trình công cụ phát triển hệ thống như: trình dịch C, macro assemblers, chương trình mô phỏng/sửa lỗi, kit thử nghiêm, CẤU TRÚC CHUNG AVR CPU AVR có chức bảo đảm hoạt động xác chương trình Do phải có khả truy cập nhớ, thực trình tính toán, điều khiển thiết bị ngoại vi quản lý ngắt 2.1.Cấu trúc tổng quát AVR sử dụng cấu trúc Harvard, tách riêng nhớ bus cho chương trình liệu Các lệnh thực chu kỳ xung clock Bộ nhớ chương trình lưu nhớ Flash 2.2 ALU Page Thiết kê mô hình Voltmet điện tử, hiển thị led đoạn ALU làm việc trực tiếp với ghi chức chung Các phép toán thực chu kỳ xung clock Hoạt động ALU chia làm loại: đại số, logic theo bit 2.3 Thanh ghi trạng thái Đây ghi trạng thái có bit lưu trữ trạng thái ALU sau phép tính số học logic Thanh ghi trạng thái SREG C: Carry Flag ;cờ nhớ (Nếu phép toán có nhớ cờ thiết lập) Z: Zero Flag ;Cờ zero (Nếu kết phép toán 0) N: Negative Flag (Nếu kết phép toán âm) V: Two’s complement overflow indicator (Cờ thiết lập tràn số bù 2) V, For signed tests (S=N XOR V) S: N H: Half Carry Flag (Được sử dụng số toán hạng rõ sau) T: Transfer bit used by BLD and BST instructions(Được sử dụng làm nơi chung gian lệnh BLD,BST) I: Global Interrupt Enable/Disable Flag (Đây bit cho phép toàn cục ngắt Nếu bit trạng thái logic ngắt phục vụ.) 2.4 Các ghi chức chung Page Thiết kê mô hình Voltmet điện tử, hiển thị led đoạn Thanh ghi chức chung Tiệp ghanh ghi ( register file ) : Tiệp 32 ghi đa chức ( $0000 $001F ) nói trên, chức ghi đa chức năng, ghi từ R26 tới R31 đôi tạo thành ghi 16 bit X, Y, Z dùng làm trỏ trỏ tới nhớ chương trình nhớ liệu Thanh ghi trò X, Y dùng làm trỏ trỏ tới nhớ liệu, ghi Z dùng làm trỏ trỏ tới nhớ chương trình Các trình biên dịch C thường dùng ghi trỏ để quản lí Data stack chương trình C Chức trỏ ghi R26 –R31 Page Thiết kê mô hình Voltmet điện tử, hiển thị led đoạn 2.5 Con trỏ ngăn xếp (SP) Là ghi 16 bit xem hai ghi chức đặc biệt bit Có địa ghi chức đặc biệt $3E (Trong nhớ RAM $5E) Có nhiệm vụ trỏ tới vùng nhớ RAM chứa ngăn xếp Thanh ghi trỏ ngăn xếp Khi chương trình phục vu ngắt chương trình trỏ PC lưu vào ngăn xếp trỏ ngăn xếp giảm hai vị trí Và trỏ ngăn xếp giảm thực lệnh push Ngược lại thực lệnh POP trỏ ngăn xếp tăng thực lệnh RET RETI trỏ ngăn xếp tăng Như trỏ ngăn xếp cần chương trình đặt trước giá trị khởi tạo ngăn xếp trước chương trình gọi ngắt cho phép phục vụ Và giá trị ngăn xếp phải lơn 60H (0x60) 5FH trỏ lại vùng ghi Các cổng vào (I/O) Vi điều khiểnATmega8 có 23 đường vào chia làm nhóm bit,một nhóm bit Các đường vào có nhiều tính lập trình Ở ta xét chúng cổng vào số Nếu xét mặt cổng vào cổng vào hai chiều định hướng theo bit Và chứa điện trở pull-up (có thể lập trình được) Mặc dù port có đặc điểm riêng xét chúng cổng vào số dường điều khiển vào liệu hoàn toàn Chúng ta có ghi địa cổng cổng, : ghi liệu cổng ( PORTB, PORTC, PORTD), ghi liệu điều khiển cổng (DDRB, DDRC, DDRD) cuối địa chân vào cổng (PINB, PINC, PIND) Page Thiết kê mô hình Voltmet điện tử, hiển thị led đoạn 13.BỘ BIẾN ĐỔI A/D( Analog/Digital) Vi điều khiểnAtmega8 có biến đổi ADC tích hợp chip với đặc điểm:         Độ phân giải 10 bit Sai số tuyến tính: 0.5LSB Độ xác +/-2LSB Thời gian chuyển đổi:65-260μs Kênh đầu vào lựa chọn Có hai chế độ chuyển đổi free running single conversion Có nguồn báo ngắt hoàn thành chuyển đổi Loại bỏ nhiễu chế độ ngủ Page Thiết kê mô hình Voltmet điện tử, hiển thị led đoạn Sơ đồ biến đổi A/D Tám đầu vào ADC tám chân PORTA chúng chọn thông qua MUX Để điều khiển hoạt động vào liệu ADC CPU có ghi: ADMUX ghi điều khiển lựa chọn kênh đầu vào cho ADC, ADCSRA ghi điều khiển ghi trạng thái ADC, ADCH ADCL ghi liệu 13.1 ADMUX: Multiplexer select register Đây ghi điều khiển bit Hình 7.2 Thanh ghi ADMUX Với bit định nghĩa MUX3, MUX2, MUX1,và MUX0, ứng với tổ hợp logic ta chọn kênh đầu vào Cụ thể: Page 10 Thiết kê mô hình Voltmet điện tử, hiển thị led đoạn Các bit REFS1 REFS0 dùng để chọn giá trị điện áp tham khảo cho ADC, sau: Chú ý: Nếu ta thay đổi kênh thời điểm mà ADC chuyển đổi trình chuyển đổi hoàn thành kênh vào thay đổi 13.2 ADCSR-ADC control and status register Đây ghi điều khiển lưu trạng thái ADC Hình 7.3 Thanh ghi điều khiển trạng thái ADC 13.2.1 Bit 7-ADEN:ADC enable Đây bit điều khiển hoạt động ADC.Khi bit set ADC hoạt động ngược lại.Nếu ta ngừng hoạt động ADC chuyển đổi kết thúc trình chuyển đổi.Mặc dù chưa chuyển đổi xong 13.2.2 Bit 6-ADSC: ADC start conversion Trong chế độ chuyển đổi đơn bit phải set lên để bắt đầu chuyển đổi.Trong chế độ chuyển đổi tự bit cần set lên để bắt đầu lần chuyển đổi đầu tiên.Bit giữ sốt trình chuyển đổi xóa mà chuyển đổi xong 13.2.3 Bit 5-ADATE :ADC Auto Trigger enable Khi bit set ADC bắt đầu chuyển đổi có nguồn kích hoạt xuất Việc lựa chọn nguồn kích hoạt thực cách set bit ghi SFIOR Page 11 Thiết kê mô hình Voltmet điện tử, hiển thị led đoạn 13.2.4 Bit 4-ADIF: ADC interrupt Flag Bit set lên phần cứng trình chuyển đổi hoàn thành ghi liệu cập nhật Bit xóa phần cứng ngắt phép phục vụ Hoặc xóa cách ghi giá trị logic “0”vào cờ Cụ thể ngắt bị cấm ta sử dụng lệnh sbi cbi để tác dụng lên bit 13.2.5 Bit 3-ADIE:ACD interrupt Enable Nếu bit set ngắt toàn cục cho phép ngắt phép phục vụ (khi chuyển đổi xong liệu) bị xóa ngược lại 13.2.6 Bit 2.1.0-ADPS2…ADPS0: Bit lựa chọn xung nhịp(Tốc độ) Nguồn xung lấy từ nguồn xung Vi điều khiển(XTAL) chia tần thông qua chia tần Các bit ADPS có nhiệm vụ chọn số chia cho chia tần theo bảng sau: 13.3 Thanh ghi liệu ACDH ADCL Thanh ghi chứa liệu chuyển đổi từ tương tự sang số, xếp hình Page 12 Thiết kê mô hình Voltmet điện tử, hiển thị led đoạn Thanh ghi liệu ADC 13.4 Nguyên tắc hoạt động lập trình điều khiển ADC có nhiệm vụ chuyển đổi tín hiệu điện áp tương tự thành tín hiệu số có độ phân giải 10 bit.Với giá trị nhỏ điện áp đặt chân AGND giá trị cực đại điện áp tương tự mắc vào chân AREF Tám kênh tương tự đầu vào chọn lựa thông qua ADMUX ADMUX điều khiển ghi ADMUX ADC hoạt động hai chế độ Đó chuyển đổi đơn: chuyển đổi lần có lệnh chuyển đổi chế độ tự chuyển đổi (Free running mode) chế độ mà ADC tự động chuyển đổi hoạt động công việc chuyển đổi có tính tuần hoàn (chỉ cần khởi động lần) ADC phép hoạt động nhờ thiết lập bit ADEN Quá trình chuyển đổi bắt đầu việc ghi vào bit ADSC mức logic suốt trình chuyển đổi bit giữ mức cao Khi trình chuyển đổi hoàn thành bit xóa phần cứng cờ AIDF bật lên Dữ liệu sau chuyển đổi đưa ghi liệu ADCL ADCH, ý đọc liệu từ hai ghi đọc ADCL trước đọc ADCH Nếu đọc ADCH trước liệu cập nhật ghi đè lên ADCL (Vi điều khiển nghĩ đọc xong liệu) Để điều khiển vào liệu với ADC, bước thực sau: Bước 1: Định nghĩa cổng vào cho tín hiệu tương tự Xóa bit tương ứng với chân ghi DDRA Sau loại bỏ điện trở treo cách xóa bit tương ứng ghi PORTA Bước 2: Chọn kênh tương tự vào (chọn chân vào cho ADC) thông qua ghi ADMUX (có thể thay đổi trình hoạt động) Page 13 Thiết kê mô hình Voltmet điện tử, hiển thị led đoạn Bước 3: Thiết lập thông số cho ADC Tốc độ chuyển đổi thông qua xung nhip chuyển đổi Chế độ chuyển đổi : đơn tự động Sử dụng ngắt không Bước 4: Bắt đầu chuyển đổi đọc liệu Chương 2: Tìm hiểu LED Cấu trúc hiển thị led đoạn a Hình ảnh thực tế Led Anode chung Page 14 Thiết kê mô hình Voltmet điện tử, hiển thị led đoạn Đối vớ i dạng Led anode chung, chân COM ph ả i có mứ c logic muốn sáng Led tương ứng chân a – f, dp mức logic Bảng mã cho Led Anode chung Dùng phương pháp quét Khi kết nối chung đường liệu Led đoạn, ta cho Led sáng đồng thờ i (do ảnh hưởng lẫn Led) mà ph ả i thực phương pháp quét, nghĩa thời điểm sáng Led tắt Led lại Do tượng lưu ảnh mắt, ta thấ y Led sáng đồng thời Page 15 Thiết kê mô hình Voltmet điện tử, hiển thị led đoạn Page 16 Thiết kê mô hình Voltmet điện tử, hiển thị led đoạn PHẦN 2: THIẾT KẾ VÀ THI CÔNG sơ đồ nguyên lý Page 17 Thiết kê mô hình Voltmet điện tử, hiển thị led đoạn Sơ đồ mạch in Page 18 Thiết kê mô hình Voltmet điện tử, hiển thị led đoạn Sơ đồ bố trí linh kiện Nguyên lý hoạt động a Phần cung cấp nguồn cho toàn mạch hoạt động Do IC Atmega8 hoạt động với điện áp 5V nên ta cần cung cấp cho mạch điện áp ổn định 5V để mạch hoạt động bình thường, ta dùng IC ổn áp 7805 để tạo điện áp chuẩn 5V từ điện áp 12V đưa vào mạch, IC cung cấp dòng tối đa 1A đảm bảo cho mạch hoạt động bình thường trường hợp b Phần hiển thị dùng LED Trong đề tài yêu cầu hiển thị giá trị đo lên led nên chúng em định chọn led Anode chung với led ghép nối với sử dụng phương pháp quét led để thị giá trị đo lên led c Phần chọn thang đo dùng Swich Với yêu cầu đo dải với thang đo từ 0-5V, 0-10V,0-50V nên chúng em sử dụng Swich kết hợp với cầu phân áp để chọn kênh đo phù hợp cho mạch, với thang đo thứ điện áp cần đo đưa trực tiếp vào thang đo thứ qua điện trở 1K diode zener có tác dụng Page 19 Thiết kê mô hình Voltmet điện tử, hiển thị led đoạn khống chế điện áp đưa vào không vượt 5V tránh tính trạng đưa điện áp qua lớn vào mạch gây hỏng IC atmega8 d Phần điều khiển trung tâm Trong mạch sử dụng vi điều khiển atmega có tác dụng đo điện áp kênh độc lập đầu vào xuất giá trị đo hiển thị lên led e Hiển thị chọn thang đo Chúng em sử dụng led đơn để hiển thị giá trị thang đo 0-5V, 0-10V, 0-50V Chương trình điều khiển cho Atmega8 /***************************************************** This program was produced by the CodeWizardAVR V2.05.0 Professional Automatic Program Generator © Copyright 1998-2010 Pavel Haiduc, HP InfoTech s.r.l http://www.hpinfotech.com Project : DO AN MON VI DIEU KHIEN Version : 2.0 Date : 7/27/2013 Author : NGUYEN HUU QUANG Company : Ha Noi University Of Inductry Comments: Do dien ap hien thi LED Chip type : ATmega8 Program type : Application AVR Core Clock frequency: 8.000000 MHz Memory model : Small External RAM size :0 Data Stack size : 256 *****************************************************/ #include #include #define LED_DATA #define LED_1 #define LED_2 #define LED_3 PORTD PORTB.6 PORTB.4 PORTB.5 // khai bao bien unsigned long so_hang_nghin,so_hang_tram,so_hang_chuc,so_hang_don_vi; // khai bao ma cac so tuong ung Page 20 Thiết kê mô hình Voltmet điện tử, hiển thị led đoạn unsigned char ma_led_7_thanh[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90}; char dem_ngat_timer0; char i_kenh_1,i_kenh_2,i_kenh_3; unsigned long gia_tri_dien_ap,gia_tri_adc_kenh_1,gia_tri_adc_kenh_2,gia_tri_adc_kenh_3; // ham doc gia tri ADC unsigned int read_adc(unsigned char adc_input) { ADMUX=adc_input; // delay khoang thoi gian nhat dinh cho on dinh dau vao delay_us(10); // bat dau chuyen doi ADCSRA|=0x40; // cho cho den chuyen doi xong bit ADIF se duoc set len de bao cho qua trinh chuyen doi xong while ((ADCSRA & 0x10)==0); //xoa co ADIF de chuan bi cho qua trinh chyen doi tiep theo //viec xoa co ADIF duoc thuc hien bang cach ghi ADCSRA|=0x10; //tra ve gia tri ADC doc duoc return ADCW; } // -ham ngat time //moi lan ngat 4ms interrupt [TIM0_OVF] void timer0_ovf_isr(void) { TCNT0=0XE0; dem_ngat_timer0++; if(dem_ngat_timer0==1) { /* - PORTB.0,PORTB.1,PORTB.2,PORTB.3 tuong ung voi cac chan dieu khien quet led moi lan quet chi co PORT sang cac chan lai tat de quet led */ PORTB.0=1;PORTB.1=0;PORTB.2=0;PORTB.3=0; //chan du lieu cua led duoc gan bang cac ma led theo cac so LED_DATA=ma_led_7_thanh[so_hang_nghin]; if(PINC.3==0) PORTD.7=0; //hien thi dau cham else PORTD.7=1; } //hien thi so hang tram Page 21 Thiết kê mô hình Voltmet điện tử, hiển thị led đoạn else if(dem_ngat_timer0==2) { PORTB.0=0;PORTB.1=1;PORTB.2=0;PORTB.3=0; LED_DATA=ma_led_7_thanh[so_hang_tram]; if(PINC.4==0||PINC.5==0) PORTD.7=0; else PORTD.7=1;//hien thi dau cham } //hien thi so hang chuc else if(dem_ngat_timer0==3) { PORTB.0=0;PORTB.1=0;PORTB.2=1;PORTB.3=0; LED_DATA=ma_led_7_thanh[so_hang_chuc]; } //hien thi so hang don vi else if(dem_ngat_timer0==4) { PORTB.0=0;PORTB.1=0;PORTB.2=0;PORTB.3=1; LED_DATA=ma_led_7_thanh[so_hang_don_vi]; } else { /* - Phan ADC va quy dien ap thuc te tien hanh lay 16 mau ADC lan de tang chinh xac - gia tri duoc de duoc cong don vao bien gi_tri_adc - sau du 16 mau thi gia tri tong hop duoc tu cac lan se duoc chia 16 de lay trung binh */ dem_ngat_timer0=0; PORTB.0=PORTB.1=PORTB.2=PORTB.3=0; if(PINC.3==0) //thang thu nhat duoc chon - dai tu 0-5V { LED_1=1;LED_2=0;LED_3=0;//sang LED bao cho biet thang so duoc su dung gia_tri_adc_kenh_1=gia_tri_adc_kenh_1+read_adc(0); //doc gia tri ADC cua kenh i_kenh_1++; //tang bien dem mau len sau moi lan lay mau if(i_kenh_1==16) //neu du 16 mau(tu 0-15) thi chia gia tri duoc cho 16 de lay gia tri trung binh { i_kenh_1=0;//xoa bien dem mau /*dich phai bit tuong ung voi chia cho 2^4=16 - ta su dung phep dich bit de toi uu hoa cho thoi gian xu ly vi vi dieu khien phep dich bit se ton it chu ky may hon Page 22 Thiết kê mô hình Voltmet điện tử, hiển thị led đoạn cac phep nhan chia thong thuong */ gia_tri_adc_kenh_1=gia_tri_adc_kenh_1>>4; gia_tri_dien_ap=((gia_tri_adc_kenh_1*5000)>>10); //ADC 10 bit nen phai chia cho 2^10=1024 so_hang_nghin=gia_tri_dien_ap/1000; so_hang_tram=(gia_tri_dien_ap-(1000*so_hang_nghin))/100; so_hang_chuc=(gia_tri_dien_ap-(1000*so_hang_nghin)(100*so_hang_tram))/10; so_hang_don_vi=(gia_tri_dien_ap-(1000*so_hang_nghin)(100*so_hang_tram)-(so_hang_chuc*10)); gia_tri_adc_kenh_1=0;//sau tinh toan xong ta can xoa gia tri ADC de chuan bi cho lan lay mau tiep theo } } /* Trong dai ta se dung so de hien thi, vay se tach di so hang don vi - so hang don vi duoc bot di vi nguong max=25V=25000mv vi vay ta chi co the hien thi so */ else if(PINC.4==0)//thang thu hai duoc chon - dai tu 0-25V { LED_1=0;LED_2=1;LED_3=0; gia_tri_adc_kenh_2=gia_tri_adc_kenh_2+read_adc(1); i_kenh_2++; if(i_kenh_2==16) { i_kenh_2=0; gia_tri_adc_kenh_2=gia_tri_adc_kenh_2>>4; gia_tri_dien_ap=((gia_tri_adc_kenh_2*25000)>>10); so_hang_nghin=gia_tri_dien_ap/10000; so_hang_tram=(gia_tri_dien_ap-(10000*so_hang_nghin))/1000; so_hang_chuc=(gia_tri_dien_ap-(10000*so_hang_nghin)(1000*so_hang_tram))/100; so_hang_don_vi=((gia_tri_dien_ap-(10000*so_hang_nghin)(1000*so_hang_tram)-(so_hang_chuc*100))/10); gia_tri_adc_kenh_2=0; } } else if(PINC.5==0)//thang thu ba duoc chon - dai tu 0-50V { LED_1=0;LED_2=0;LED_3=1; gia_tri_adc_kenh_3=gia_tri_adc_kenh_3+read_adc(2); i_kenh_3++; Page 23 Thiết kê mô hình Voltmet điện tử, hiển thị led đoạn if(i_kenh_3==16) { i_kenh_3=0; gia_tri_adc_kenh_3=gia_tri_adc_kenh_3>>4; gia_tri_dien_ap=((gia_tri_adc_kenh_3*50000)>>10); so_hang_nghin=gia_tri_dien_ap/10000; so_hang_tram=(gia_tri_dien_ap-(10000*so_hang_nghin))/1000; so_hang_chuc=(gia_tri_dien_ap-(10000*so_hang_nghin)(1000*so_hang_tram))/100; so_hang_don_vi=((gia_tri_dien_ap-(10000*so_hang_nghin)(1000*so_hang_tram)-(so_hang_chuc*100))/10); gia_tri_adc_kenh_3=0; //sau tach duoc cac so hang tram, chuc, don vi thi xoa di de chuan bi luot tiep theo } } else//khong co thang nao duoc chon { gia_tri_dien_ap=0; so_hang_nghin=so_hang_tram=so_hang_chuc=so_hang_don_vi=0; gia_tri_adc_kenh_1=gia_tri_adc_kenh_2=gia_tri_adc_kenh_3=0; LED_1=LED_2=LED_3=0; } } } void main(void) { /* khai bao PORTB la PORT PORTB.0 -> PORTB.3 dung dieu khien quet led PORTB.4 -> PORTB.6 dung dieu khien led bao thang */ PORTB=0x00; DDRB=0xFF; /* -khai bao PORTC la PORT vao dung doc du lieu -PORTC.0 -> PORTC.2 dung de doc gia tri ADC PORTC.3 -> PORTC.5 dung de doc xac dinh kenh */ PORTC=0xF8; //PORTC=0xFF; DDRC=0x00; //Khai bao PORTD la cong dung xuat du lieu dieu khien LED PORTD=0x00; Page 24 Thiết kê mô hình Voltmet điện tử, hiển thị led đoạn DDRD=0xFF; //khai bao cho timer0 hoat dong TCCR0=0x05; TCNT0=0x00; //khai bao ADC ADMUX=0x00; ADCSRA=0x83; // cho phep ngat timer0 TIMSK=0x01; //cho phep ngat toan cuc #asm("sei") //cho phep ngat while (1) { } } PHẦN 3: KẾT LUẬN Qua đồ án “Thiết kê mô hình Voltmet điện tử, hiển thị led đoạn” chúng em đạt số kết sau: - Tìm hiểu dòng vi điều khiển AVR atmel cụ thể vi điều khiển atmega8 sử dụng đồ án - Phương pháp đo điện áp sử dụng vi điều khiển - Thực hành phương pháp quét led anode chung dùng vi điều khiển - Thực hành lập trình cho vi điều khiển làm mạch thực tế Do thời gian có hạn nên đồ án chúng em nhiều hạn chế mong thầy cô bạn góp ý để chúng em hoàn thiện đồ án Chúng em xin chân thành cảm ơn Page 25 [...]... một Led và tắt các Led còn lại Do hiện tượng lưu ảnh của mắt, ta sẽ thấ y các Led sáng đồng thời Page 15 Thiết kê mô hình Voltmet điện tử, hiển thị bằng led 7 đoạn Page 16 Thiết kê mô hình Voltmet điện tử, hiển thị bằng led 7 đoạn PHẦN 2: THIẾT KẾ VÀ THI CÔNG 1 sơ đồ nguyên lý Page 17 Thiết kê mô hình Voltmet điện tử, hiển thị bằng led 7 đoạn 2 Sơ đồ mạch in Page 18 Thiết kê mô hình Voltmet điện tử, hiển. .. 13 Thiết kê mô hình Voltmet điện tử, hiển thị bằng led 7 đoạn Bước 3: Thiết lập các thông số cho ADC Tốc độ chuyển đổi thông qua xung nhip chuyển đổi Chế độ chuyển đổi : đơn hoặc tự động Sử dụng ngắt hoặc không Bước 4: Bắt đầu chuyển đổi và đọc dữ liệu Chương 2: Tìm hiểu LED 7 thanh 1 Cấu trúc và hiển thị trên led 7 đoạn a Hình ảnh thực tế Led Anode chung Page 14 Thiết kê mô hình Voltmet điện tử, hiển. .. dieu khien LED 7 thanh PORTD=0x00; Page 24 Thiết kê mô hình Voltmet điện tử, hiển thị bằng led 7 đoạn DDRD=0xFF; //khai bao cho timer0 hoat dong TCCR0=0x05; TCNT0=0x00; //khai bao ADC ADMUX=0x00; ADCSRA=0x83; // cho phep ngat timer0 TIMSK=0x01; //cho phep ngat toan cuc #asm("sei") //cho phep ngat while (1) { } } PHẦN 3: KẾT LUẬN Qua đồ án Thiết kê mô hình Voltmet điện tử, hiển thị bằng led 7 đoạn chúng... khien quet led trong moi lan quet chi co 1 PORT sang trong khi cac chan con lai tat de quet led */ PORTB.0=1;PORTB.1=0;PORTB.2=0;PORTB.3=0; //chan du lieu cua led duoc gan bang cac ma led theo cac so LED_ DATA=ma _led_ 7_ thanh[so_hang_nghin]; if(PINC.3==0) PORTD .7= 0; //hien thi dau cham else PORTD .7= 1; } //hien thi so hang tram Page 21 Thiết kê mô hình Voltmet điện tử, hiển thị bằng led 7 đoạn else if(dem_ngat_timer0==2)... mọi trường hợp b Phần hiển thị dùng LED 7 thanh Trong đề tài yêu cầu hiển thị giá trị đo được lên led 7 thanh nên chúng em đã quyết định chọn led 7 thanh Anode chung với 4 led ghép nối với nhau và sử dụng phương pháp quét led để hiện thị giá trị đo được lên led c Phần chọn thang đo dùng Swich Với yêu cầu đo được 3 dải với các thang đo từ 0-5V, 0-10V,0-50V nên chúng em sử dụng Swich kết hợp với cầu phân... thang đo thứ nhất điện áp cần đo được đưa trực tiếp vào thang đo thứ nhất qua 1 điện trở 1K và 1 diode zener có tác dụng Page 19 Thiết kê mô hình Voltmet điện tử, hiển thị bằng led 7 đoạn 5 khống chế điện áp đưa vào không được vượt quá 5V tránh tính trạng đưa điện áp qua lớn vào mạch gây hỏng IC atmega8 d Phần điều khiển trung tâm Trong mạch sử dụng 1 vi điều khiển atmega 8 có tác dụng đo điện áp ở 3 kênh... Thiết kê mô hình Voltmet điện tử, hiển thị bằng led 7 đoạn Đối vớ i dạng Led anode chung, chân COM ph ả i có mứ c logic 1 và muốn sáng Led thì tương ứng các chân a – f, dp sẽ ở mức logic 0 Bảng mã cho Led Anode chung Dùng phương pháp quét Khi kết nối chung các đường dữ liệu của Led 7 đoạn, ta không thể cho các Led này sáng đồng thờ i (do ảnh hưởng lẫn nhau giữa các Led) mà ph ả i thực hiện phương pháp... PORTB.0=0;PORTB.1=1;PORTB.2=0;PORTB.3=0; LED_ DATA=ma _led_ 7_ thanh[so_hang_tram]; if(PINC.4==0||PINC.5==0) PORTD .7= 0; else PORTD .7= 1;//hien thi dau cham } //hien thi so hang chuc else if(dem_ngat_timer0==3) { PORTB.0=0;PORTB.1=0;PORTB.2=1;PORTB.3=0; LED_ DATA=ma _led_ 7_ thanh[so_hang_chuc]; } //hien thi so hang don vi else if(dem_ngat_timer0==4) { PORTB.0=0;PORTB.1=0;PORTB.2=0;PORTB.3=1; LED_ DATA=ma _led_ 7_ thanh[so_hang_don_vi];... #include #define LED_ DATA #define LED_ 1 #define LED_ 2 #define LED_ 3 PORTD PORTB.6 PORTB.4 PORTB.5 // khai bao bien unsigned long so_hang_nghin,so_hang_tram,so_hang_chuc,so_hang_don_vi; // khai bao ma cac so tuong ung 0 1 2 3 4 5 6 7 8 9 Page 20 Thiết kê mô hình Voltmet điện tử, hiển thị bằng led 7 đoạn unsigned char ma _led_ 7_ thanh[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90}; char... in Page 18 Thiết kê mô hình Voltmet điện tử, hiển thị bằng led 7 đoạn 3 Sơ đồ bố trí linh kiện 4 Nguyên lý hoạt động a Phần cung cấp nguồn cho toàn mạch hoạt động Do các IC Atmega8 hoạt động với điện áp 5V nên ta cần cung cấp cho mạch một điện áp ổn định 5V để mạch có thể hoạt động bình thường, ở đây ta dùng IC ổn áp 78 05 để tạo ra điện áp chuẩn 5V từ điện áp 12V đưa vào mạch, IC này có thể cung cấp ... sáng Led tắt Led lại Do tượng lưu ảnh mắt, ta thấ y Led sáng đồng thời Page 15 Thiết kê mô hình Voltmet điện tử, hiển thị led đoạn Page 16 Thiết kê mô hình Voltmet điện tử, hiển thị led đoạn. .. đoạn PHẦN 2: THIẾT KẾ VÀ THI CÔNG sơ đồ nguyên lý Page 17 Thiết kê mô hình Voltmet điện tử, hiển thị led đoạn Sơ đồ mạch in Page 18 Thiết kê mô hình Voltmet điện tử, hiển thị led đoạn Sơ đồ bố... đọc liệu Chương 2: Tìm hiểu LED Cấu trúc hiển thị led đoạn a Hình ảnh thực tế Led Anode chung Page 14 Thiết kê mô hình Voltmet điện tử, hiển thị led đoạn Đối vớ i dạng Led anode chung, chân COM

Ngày đăng: 01/04/2016, 13:27

Từ khóa liên quan

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

Tài liệu liên quan