1. Trang chủ
  2. » Công Nghệ Thông Tin

Điều khiển ra vào với LED 7 đoạn

11 797 8
Tài liệu được quét OCR, nội dung có thể không chính xác
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Điều khiển ra vào với LED 7 đoạn
Chuyên ngành Kỹ thuật Điện tử
Thể loại Hướng dẫn thực hành
Định dạng
Số trang 11
Dung lượng 712 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

° Led 7 doan được ứng dung trong rất nhiêu trong các thiết bị trong thực tê, trong các thiệt bị đo, trong các bảng hiệu, nó có tác dụng hiên thị sô liệu.... s 4 led 7 thanh anot chung,

Trang 1

DIEU KHIEN VAO RA VOI LED 7 DOAN

Trang 2

° Led 7 doan được ứng dung trong rất nhiêu trong các thiết

bị trong thực tê, trong các thiệt bị đo, trong các bảng hiệu,

nó có tác dụng hiên thị sô liệu

s 4 led 7 thanh anot chung, 4 chan anot chung (chân dương)

được nôi với 4 transitor đê ta có thê quét led sử dụng 4

chân của PORTD, các chân điêu khiển sáng các thanh còn

lại được nỗi song song nhau va đưa vào PORTB của AVR

và có thứ tự như sau: Từ bit 0 2 6 ứng với từ A 2 G Bit

thứ 7 là dâu châm

Trang 3

kLed3

MỆCC

Q

US

e

d

c

Led 7 Seq x4

Sơ d6 noi day trén KIT AVR

Trang 4

na

Chương

trình chính

Sơ đô thuật toán:

y

Cho (d) số bắt

kì <=9999

y

Tinh toan cac gia tri hang nghìn - >Đơn

VỊ

F

Quét led

y

Đẩy dữ tính

toán ra các led

Trang 5

2.Thực hành:

void daydulieu(unsigned char x)// Ham dua du lieu ra PORT

{

switch(x) // Tuy thuoc vao bien dau vao ma dua du lieu ra tu 0 9 { //logic 1 tat led, logic O bat led

case 0: { PORTB=0xC0; break; } // So 0

case 1: { PORTB=OxF9; break; } //So 1 case 2: { PORTB=0xA4; break; } // So 2

case 3: { PORTB=OxB0; break; } // So 3 case 4: { PORTB=0x99; break; } // So 4 case 5: { PORTB=0x92; break; } // So 5 case 6: { PORTB=0x82; break; } // So 6 case 7: { PORTB=OxF8; break; } // So 7 case 8: { PORTB=0x80; break; } // So 8 case 9: { PORTB=0x90; break; } // So 9

Trang 6

void hienthi(int n)

se

b=(n-a*1000)/100; // lay hang tram c=(n-a*1ooo-b*1oo)/1o; //lay hang chuc

d=(n-a*1ooo-b*1oo-c*1o);// lay hang don vi

// Quet led

Trang 7

PORTD=O0xFE;// led dau tien

daydulieu(d);// day ra hang don vi delay ms(10);// tre

PORTB=0xFF:;// tat toan bo led

PORTD=0xFD;//led thu hai daydulieu(c);// dua ra hang chuc delay ms(10);// tre

PORTB=O0xFF:;// tat toan bo led

PORTD=0xEB;

daydulieu(b);

delay ms(10);

PORTB=OxFF;

PORTD=0xE7;

daydulieu(a);

delay ms(10);

PORTB=OxFF;

Trang 8

CodeVisionAVR - 7 thanh.pr] - [E:`cvavr` 1ACKY`Led 7 thanh' 7 thanh.c]

fe| bl>lB| #| =| | ›|s›|£a| &|w| [els

ao | +[Ð[[ 4

void hienthi(fint n)

int a,b,c,d;

#/ Lay cac so cac hang a= n/1000; // lay hang nghin b= (n-a*1l000) /100; ## lay hang tran

c=(n-a*l000-b*100)/10; // lay hang chuc

d= (n-a*lOO0-b*100-c*10);// lay hang don vi

ff Quet led

PORTD=OxFE;// led dau tien

daydulieu(d);// day ra hang don vi

delay ms(10);// tre

PORTB=OxFF;// tat toan bo led

PORTD=OxFD;//led thu hai daydulieu(c);// dua ra hang chuc delay ms(10);// tre

PORTB=OxFF;// tat toan bo led PORTD=OxFB;

daydulieu(b);

delay ms(10);

PORTB=OxFF;

PORTD=OxF?;

daydulieu(a);

delay ms(10);

PORTB=OxFF;

void main(void) /* Declare your local variables here

f/f Input/Output Ports initialization

Trang 9

Trong vong while(1) trong ham main ta chi dung mot cau

lệnh gọi hàm hiền thị như sau:

while(1)

{

hienthi(1234):

Chú ý: trong bài này vi néu dua cac PORTD va PORTB lúc khởi tạo bằng

0x00 thì tật cả các led sẽ sáng do đó tại các câu lénh khoi tao cho hai PORT

này các bạn hãy gán cho nó giá trị 0xFE như hình sau:

Trang 10

CodeYisionAVR - 7 thanh.pr] - [E:`cvavr` 1ACKY`Led 7 thanh' 7 thanh.c]

// Timer/Counter Z initialization f/f Clock source: System Clock f/f Clock value: Timer 2 Stopped

/*f Mode: Normal top=FFh

#/ OCZ output: Disconnected ASSR=0x00;

TCCRZ=0x00;

TCNTZ=0x00;

OCRZ=0x00;

## External Interrupt(s) initialization

ff INTO: Off

## TNT1: Off

## TNT2: Off MCUCR=0x00;

McCuUCSR=0x00;

f/f Timer(s)/Counter(s) Interrupt(s) initialization

TIMSK=0x00;

f/f Analog Comparator initialization f/f Analog Comparator: Off

// Analog Comparator Input Capture by Timer/Counter 1: Off ACSR=0x80;

SFIOR=0x00;

while (1)

{

f/f Place your code here

hienthi (4567);

}¿

Trang 11

/f Pune?=In Func6=In FuncS=In Func4=In Func3=In FuncZ=In Funcl=In FuncO=In

ff State?=T State6=T StateS=T Stated=T StateS=T StateZ=T Statel=T State0=T

PORTA=0x00;

DDRA=0x00;

fe] le leal S| =| | › |›:|£| a|m| e|"3|% get | 4

/f Port B initialization /f Pune?=Out Func6=Out FuncS=Out Funcd4=Out Func3=Out FuncZ=Out Funcl=Out FuncO=Out

ff State?=0 State6=0 StateS=0 Stated=0 StateS=0 StateZ=0 Statel=0 StateN=0

PORTB=OxFF;

DDRB=OxFF;

/f Port C initialization

ff Fune?=In Func6=In FuncS=In Funed=In Func3=In FuneZ=In Funcl=In FuncO=In

ff State?=T State6=T StateS=T Stated=T StateS=T StateZ=T Statel=T Štate0=T

PORTC=0x00;

DDRC=0x00;

## Port D initialization

/f Pune?=Out Func6=Out FuncS=Out Funcd4=Out Func3=Out FuneZ=Out Funcl=Out FuncO=Out /f State?=0 State6=0 StateS=0 Stated=0 StateS=0 StateZ=0 Statel=0 StateN=0

PORTD=OxFF;

DDRD=OxFF;

ff Timer/Counter 0 initialization

## Clock source: System Clock

ff Clock value: Timer 0 Stopped /f Mode: Normal top=FFh

f/f OCO output: Disconnected

TCCRO=0x00;

TCNTO=0x00;

OCRO=0x00;

/f Timer/Counter 1 initialization

/f Clock source: System Clock

Ngày đăng: 19/10/2013, 14:15

HÌNH ẢNH LIÊN QUAN

Sơ đồ thuật toán: - Điều khiển ra vào với LED 7 đoạn
Sơ đồ thu ật toán: (Trang 4)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w