1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

25 394 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 25
Dung lượng 633,58 KB

Nội dung

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

Trang 1

ĐỒ ÁN MÔN VI ĐIỀU KHIỂN

Lời nói đầu

Ngày nay cùng sự phát triển không ngừng của khoa học kỹ thuật, nó đã đem lại cho con người những thành tựu to lớn cho xã hội, giúp cho con người dễ dàng tiếp cận với nhiều máy móc, thiết bị hiện đại giúp nâng cao năng suất lao động Hoà nhập cùng xu hướng đó, vi điều khiển đã khẳng định được vị thế vững chắc của mình trong mọi ứng dụng Điển hình trong công nghệ đo lường và điều khiển

và đặc biệt trong hệ thống đo lường, vi điều khiển đã đóng một vai trò quan trọng

và không thể thiếu trong các thiết bị đòi hỏi có độ chính xác cao, vi điều khiển có mặt trong hầu hết các thiết bị đo lường như đo quãng đường, đo vận tốc, đo điện

áp, dòng điện… và 1 trong số đó là ứng dụng dùng đo điện áp với độ chính xác cao

đã được ứng dụng rộng rãi với nhiều thiết bị đa dạng, phong phú

Qua một 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ị bằng led 7 đoạn” chúng em đã hoàn thành được đề tài và đạt được một số kết quả Do thời gian có hạn nên đề tài của chúng em có thể còn có chỗ thiếu sót, mong các thầy cô góp ý để đề tài của chúng em được hoàn thiện hơn nữa.Chúng em xin chân thành cảm ơn các thầy cô và các bạn đã giúp đỡ chúng

em trong quá trình thực hiện Chúng em xin chân thành cảm ơn!

Nhóm sinh viên

Trang 2

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ó 8 Kbyte bộ nhớ flash

o Có thể xóa lập trình được và có thể chịu được 10000 lần ghi xóa

o Có 32 thanh ghi đa năng 8 bit,

o Có 512 byte bộ nhớ EEPROM tích hợp trên chíp,

o Ccó 1 kbyte SRAM nội

o Có hai bộ Timer/counter 8 bit và một bộ timer/counter 16 bit với bộ chia tần lập trình được

o Có ba kênh điều xung, 6 kênh lối vào chuyển đổi ADC với độ phân giải 10 bit

o Atmega8 có 28 chân, trong đó có 23 cổng vào ra

o Nguồn nuôi từ 2.7 đến 5.5 đối với Atmega8L và từ 4.5 đến 5.5 đối với

Atmega8,

o Làm việc tiêu thụ dòng 3.6mA

o Sử dụng mạch dao động ngoài từ 0 đến 8 Mhz với Atmega8L và từ 0 đến 16 Mhz với Atmega8

o Ngoài ra chíp Atmega8 còn có bộ xung nội bên trong có thể lập trình chế độ xung nhịp

Vi điều khiển AVR do hãng Atmel ( Hoa Kì ) sản xuất được gới thiệu lần đầu năm

1996 AVR có rất nhiều dòng khác nhau bao gồm dòng Tiny AVR ( như AT tiny 13, AT

tiny 22…) có kích thước bộ nhớ nhỏ, ít bộ phận ngoại vi, rồi đến dòng AVR ( chẳn hạn

AT90S8535, AT90S8515,…) có kích thước bộ nhớ vào loại trung bình và mạnh hơn là

dòng Mega ( như ATmega32, ATmega128,…) với bộ nhớ có kích thước vài Kbyte đến vài trăm Kb cùng với các bộ ngoại vi đa dạng được tích hợp trên chip, cũng có dòng tích hợp cả bộ LCD trên chip ( dòng LCD AVR ) Tốc độ của dòng Mega cũng cao hơn so với các dòng khác Sự khác nhau cơ bản giữa các dòng chình là cấu trúc ngoại vi, còn nhân thì vẫn như nhau,

Hình 1.1 Block Diagram

Trang 4

Đặt biệt, năm 2008, Atmel lại tiếp tục cho ra đời dòng AVR mới là XmegaAVR,

với những tính năng mạnh mẽ chưa từng có ở các dòng AVR trước đó Có thể nói XmegaAVR là dòng MCU 8 bit mạnh mẽ nhất hiện nay.

1.1 Các dòng AVR khác nhau: Tiny, AVR và Mega

� Bộ Nhớ Dữ Liệu : Bộ nhớ dữ liệu của AVR chia làm 2 phần chính là bộ

nhớ

SRAM và bộ nhớ EEPROM Tuy cùng là bộ nhớ dữ liệu nhưng hai bộ nhớ này lại tách biệt

nhau và được đánh địa chỉ riêng

� Bộ nhớ SRAM có dụng lượng 1 K bytes, Bộ nhớ SRAM có hai chế độ

Dưới đây là sơ đồ khối của Atmega8

Trang 5

Sơ đồ cấu trúc Atmega8

ATmega 8 hỗ trợ đầy đủ các chương trình và 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,

1. CẤU TRÚC CHUNG AVR

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

2.1.Cấu trúc tổng quát

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

2.2 ALU

Trang 6

ALU làm việc trực tiếp với các thanh ghi chức năng chung Các phép toán được thực hiện trong một chu kỳ xung clock Hoạt động của ALU được chia làm 3 loại: đại số, logic và theo bit.

2.3 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 SREG

C: Carry Flag ;cờ nhớ (Nếu phép toán có nhớ cờ sẽ được thiết lập)

Z: Zero Flag ;Cờ zero (Nếu kết quả phép toán bằng 0)

N: Negative Flag (Nếu kết quả của phép toán là âm)

V: Two’s complement overflow indicator (Cờ này được thiết lập khi tràn số bù 2)

V, For signed tests (S=N XOR V) S: N

H: Half Carry Flag (Được sử dụng trong một số toán hạng sẽ được chỉ rõ sau)T: Transfer bit used by BLD and BST instructions(Được sử dụng làm nơi chung gian trong các lệnh BLD,BST)

I: Global Interrupt Enable/Disable Flag (Đây là bit cho phép toàn cục ngắt 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ụ.)

2.4 Các thanh ghi chức năng chung

Trang 7

Thanh ghi chức năng chung

Tiệp ghanh ghi ( register file ) : Tiệp 32 thanh ghi đa chức năng ( $0000 -

$001F )

đã được nói ở trên, ngoài chức năng là các thanh ghi đa chức năng, thì các thanh ghi từ R26 tới R31 từng đôi một tạo thành các thanh ghi 16 bit X, Y, Z được dùng làm con trỏ trỏ tới bộ nhớ chương trình và bộ nhớ dữ liệu Thanh ghi con trò X, Y

có thể dùng làm con trỏ trỏ tới bộ nhớ dữ liệu, còn thanh ghi Z có thể dùng làm con trỏ trỏ tới bộ nhớ chương trình Các trình biên dịch C thường dùng các thanh ghi

con trỏ này để quản lí Data stack của chương trình C.

Chức năng con trỏ của các thanh ghi R26 –R31

Trang 8

2.5 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

Thanh ghi con trỏ 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

Trang 9

13.BỘ BIẾN ĐỔI A/D( Analog/Digital)

Vi điều khiểnAtmega8 có một bộ biến đổi ADC tích hợp trong chip với các đặc điểm:

 Độ phân giải 10 bit

 Sai số tuyến tính: 0.5LSB

 Độ chính xác +/-2LSB

 Thời gian chuyển đổi:65-260μs

 6 Kênh đầu vào có thể được lựa chọn

 Có hai chế độ chuyển đổi free running và single conversion

 Có nguồn báo ngắt khi hoàn thành chuyển đổi

 Loại bỏ nhiễu trong chế độ ngủ

Trang 10

Sơ đồ bộ biến đổi A/D

Tám đầu vào của ADC là tám chân của PORTA và chúng được chọn thông qua một MUX

Để điều khiển hoạt động vào ra dữ liệu của ADC và CPU chúng ta có 3 thanh ghi: ADMUX là thanh ghi điều khiển lựa chọn kênh đầu vào cho ADC, ADCSRA

là thanh ghi điều khiển và thanh ghi trạng thái của ADC, ADCH và ADCL là 2 thanh ghi dữ liệu

13.1 ADMUX: Multiplexer select register

Đây là thanh ghi điều khiển 8 bit

Hình 7.2 Thanh ghi ADMUX

Với 4 bit được định nghĩa là MUX3, MUX2, MUX1,và MUX0, ứng với các tổ hợp logic ta có thể chọn kênh đầu vào Cụ thể:

Trang 11

Các bit REFS1 và REFS0 dùng để chọn giá trị điện áp tham khảo cho ADC, như sau:

Chú ý: Nếu như ta thay đổi kênh trong thời điểm mà ADC đang chuyển đổi thì khi

quá trình chuyển đổi đã hoàn thành thì kênh vào mới được thay đổi

13.2 ADCSR-ADC control and status register

Đây là thanh ghi điều khiển và lưu trạng thái của ADC

Hình 7.3 Thanh ghi điều khiển và trạng thái ADC

13.2.1 Bit 7-ADEN:ADC enable

Đây là bit điều khiển hoạt động của ADC.Khi bit này được set 1 thì ADC có thể hoạt động và ngược lại.Nếu như ta ngừng hoạt động của ADC trong khi nó đang chuyển đổi thì nó sẽ kết thúc quá 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 thì bit này phải được set lên 1 để bắt đầu chuyển đổi.Trong chế độ chuyển đổi tự do thì bit này cần được set lên 1 để bắt đầu lần chuyển đổi đầu tiên.Bit này được giữ sốt trong quá trình chuyển đổi và được xóa khi mà chuyển đổi xong

13.2.3 Bit 5-ADATE :ADC Auto Trigger enable

Khi bit này được set thì ADC sẽ bắt đầu chuyển đổi mỗi khi có một nguồn kích hoạt xuất hiện Việc lựa chọn nguồn kích hoạt được thực hiện bằng cách set các bit trong thanh ghi SFIOR

Trang 12

13.2.4 Bit 4-ADIF: ADC interrupt Flag

Bit này được set lên 1 bởi phần cứng khi quá trình chuyển đổi đã hoàn thành và thanh ghi dữ liệu đã được cập nhật Bit này được xóa bằng phần cứng nếu như ngắt này được phép và được phục vụ Hoặc nó có thể được xóa bằng cách ghi giá trị logic “0”vào cờ này Cụ thể khi ngắt bị cấm ta có thể sử dụng các lệnh sbi và cbi để tác dụng lên bit này

13.2.5 Bit 3-ADIE:ACD interrupt Enable

Nếu bit này set 1 và ngắt toàn cục được cho phép thì ngắt này được phép phục

vụ (khi chuyển đổi xong dữ liệu) và nếu bị xóa thì 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 được lấy từ nguồn xung của Vi điều khiển(XTAL) và được chia tần thông qua bộ chia tần

Các bit ADPS có nhiệm vụ chọn số chia cho bộ chia tần theo bảng sau:

13.3 Thanh ghi dữ liệu ACDH và ADCL

Thanh ghi này chứa dữ liệu chuyển đổi từ tương tự sang số, được sắp xếp như hình dưới đây

Trang 13

Thanh ghi dữ liệu ADC

13.4 Nguyên tắc hoạt động và 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ỏ nhất của điện áp đặt ở chân AGND và giá trị cực đại của điện áp tương tự được mắc vào chân AREF Tám kênh tương tự đầu vào được chọn lựa thông qua ADMUX và ADMUX này được điều khiển bởi thanh ghi ADMUX

ADC này có thể hoạt động được ở hai chế độ Đó là chuyển đổi đơn: chỉ chuyển đổi một lần khi có lệnh chuyển đổi và chế độ tự chuyển đổi (Free running mode) đây là chế độ mà ADC tự động chuyển đổi khi được hoạt động và công việc chuyển đổi có tính tuần hoàn (chỉ cần khởi động một lần)

ADC được phép hoạt động nhờ thiết lập bit ADEN Quá trình chuyển đổi được bắt đầu bằng việc ghi vào bit ADSC mức logic 1 và trong suốt quá trình chuyển đổi bit này luôn được giữ ở mức cao Khi quá trình chuyển đổi hoàn thành thì bit này được xóa bằng phần cứng và cờ AIDF được bật lên

Dữ liệu sau khi chuyển đổi được đưa ra thanh ghi dữ liệu ADCL và ADCH, nhưng chú ý khi đọc dữ liệu từ hai thanh ghi này thì đọc ADCL trước rồi mới đọc ADCH Nếu đọc ADCH trước thì dữ liệu cập nhật có thể ghi đè lên ADCL (Vi điều khiển nghĩ rằng đã đọc xong dữ liệu)

Để điều khiển vào ra dữ liệu với ADC, các bước thực hiện như sau:

Bước 1: Định nghĩa các cổng vào cho tín hiệu tương tự

Xóa bit tương ứng với chân đó trong thanh ghi DDRA Sau đó loại bỏ điện trở treo bằng cách xóa bit tương ứng ở thanh 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 thanh ghi ADMUX (có thể thay đổi trong quá trình hoạt động)

Trang 14

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

Trang 15

Đố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 quét, nghĩa là tại mỗi thời điểm chỉ sáng 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

Trang 17

PHẦN 2: THIẾT KẾ VÀ THI CÔNG

1. sơ đồ nguyên lý

Trang 18

2. Sơ đồ mạch in

Trang 19

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 7805 để 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 dòng tối đa 1A đảm bảo cho mạch hoạt động bình thường trong 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 áp để chọn kênh đo phù hợp cho mạch, với 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

Trang 20

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 độc lập đầu vào và xuất giá trị đo được hiển thị lên led 7 thanh

e. Hiển thị chọn thang đo

Chúng em đã sử dụng 3 led đơn để hiển thị các giá trị thang đo lần lượt 0-5V, 0-10V, 0-50V

5. 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 7 thanh

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 <mega8.h>

#include <delay.h>

#define LED_DATA PORTD

#define LED_1 PORTB.6

#define LED_2 PORTB.4

#define LED_3 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

Trang 21

// -ham doc gia tri

ADC -unsigned int read_adc(ADC -unsigned char adc_input)

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

0 -//moi lan ngat 4ms

interrupt [TIM0_OVF] void timer0_ovf_isr(void)

- PORTB.0,PORTB.1,PORTB.2,PORTB.3 tuong ung voi

cac chan dieu khien quet led trong moi lan quet chi co

1 PORT sang trong khi cac chan con lai tat de quet led

Trang 22

- Phan do ADC va quy ra dien ap thuc

- tien hanh lay 16 mau ADC trong 1 lan do de tang do chinh xac

- gia tri do duoc de duoc cong don vao bien gi_tri_adc

- sau khi du 16 mau thi gia tri tong hop duoc tu cac lan do se duoc chia 16 de lay trung binh

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 do duoc cho 16 de lay gia tri trung binh

{

i_kenh_1=0;//xoa bien dem mau

/*dich phai 4 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 trong vi dieu khien phep dich bit se ton it chu ky may hon trong

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

w