PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > Cơ bản về vi điều khiển và PIC

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Bài Trong Ngày Vi điều khiển

Cơ bản về vi điều khiển và PIC Những bài hướng dẫn cơ bản nhất để làm quen với vi điều khiển PIC

 
 
Ðiều Chỉnh Xếp Bài
Prev Previous Post   Next Post Next
Old 30-01-2010, 03:17 PM   #8
lamvantruong
Nhập môn đệ tử
 
lamvantruong's Avatar
 
Tham gia ngày: Jul 2008
Nơi Cư Ngụ: HCM City
Bài gửi: 5
:
Giải đáp!

Trích:
Nguyên văn bởi Option View Post
em thấy khi viết xong code và chạy thì giả sử giá trị (read adc) em cho xuất ra portc của 16f877, thì giá trị đó là nhị phân thì phải. vậy khi đó em phải làm thế nà để chuyển giá trị đó ra mã led 7 đoạn đây ạ. hic. giúp em cái này với.
Như thế này nhé!

Nếu ADC của bạn 10 bit (tương tự cũng làm được trên ADC 8bit)
Như vậy, led 7 đoạn anod chung ta có mã
dp g f e d c b a mã thập phân
1 1 1 1 1 1 0 0 1 --> 249
2 1 0 1 0 0 1 0 0 --> 164
3 .............
4 .............
5 .............
6 .............
7 .............
8 .............
9 .............
////////////////////////////////////////////////////////////////////////////////////////////////////
PORTD ---------> du lieu cho led 7 doan (D.0 --> D.7 tương ứng với a --> dp)
PORTC ---------> Quet cot (C.3 --> C0 tương ứng với led từ led 7 đoạn từ trái qua phải)

Tham khảo đoạn code nha: (chỉ viết thuật toán tính, không viết đoạn cấu hình)

unsigned char DATA[10]={249,164,...,...,...,...,...,...,...,...};
unsigned char ng, tr, ch, dv;
unsigned int temp;
....
....

temp = read_ADC(1);// Đọc ADC kênh 1

ng = temp/1000;
tr = (temp - 1000*ng)/100;
ch = (temp - (1000*ng + 100*tr))/10;
dv = temp - (1000*ng + 100*tr + 10*ch);

//////////////////////////////////////////////////////

Dùng biến ng,tr,ch,dv làm tham số truy xuất vào mảng DATA[] lấy dữ liệu xuất ra Led.

PORTC = 0b1000; PORTD = DATA[ng]; delay_ms(10);
PORTC = 0b0100; PORTD = DATA[tr]; delay_ms(10);
PORTC = 0b0010; PORTD = DATA[ch]; delay_ms(10);
PORTC = 0b0001; PORTD = DATA[dv]; delay_ms(10);

Thế là xong.

Lưu ý: Cách này đòi hỏi phải hiểu nguyên lý, và làm tạm thôi. Chạy tốt đã thử rồi, nhưng theo đánh giá thì không được tối ưu lắm. Nếu bạn có thời gian, trên cơ sở đó mà làm cái cho riêng mình nhé.

Thân!
__________________
"Có bầu có bạn can chi tuổi,
Cùng gió cùng mây thế mới vui"

Lâm Văn Trường
lamvantruong vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
 

Tags
ta ta ta


Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến


Múi giờ GMT. Hiện tại là 05:45 AM.


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam