[H7] LED 7 thanh



 
IndexIndex  GalleryGallery  Trợ giúpTrợ giúp  Tìm kiếmTìm kiếm  Thành viênThành viên  NhómNhóm  Đăng kýĐăng ký  Đăng NhậpĐăng Nhập  
News & Announcements
  • Gallery & Others
IndexIndex  GalleryGallery  Trợ giúpTrợ giúp  Tìm kiếmTìm kiếm  Thành viênThành viên  NhómNhóm  Đăng kýĐăng ký  Đăng NhậpĐăng Nhập  


[H7] LED 7 thanhXem chủ đề cũ hơn Xem chủ đề mới hơn Go down
November 4th 2011, 3:52 pm
avatar
[Thành viên] - RikikudoLoveTukimiri


Tổng số bài gửi : 674
Số lần được cảm ơn. : 91
Join date : 22/04/2011
Age : 25
Đến từ : HaNam Province

Bài gửiTiêu đề: [H7] LED 7 thanh
Xem lý lịch thành viên

Nội Dung Bài Viết:
<<<----------------------------->>>



Chào các bạn hôm nay chúng ta tiếp tục học về 8051 nha! Bài hôm nay là các phương pháp quét led 7 thanh . Mình sẽ đi từ cách quét 1 led để các bạn hiểu rõ nguyên tắc xong sẽ mở rộng ra 2 ,4, 8.... led sa0 cho các bạn mới học có thể hiểu một cách dễ dàng nhất ... nào chúng ta bắt đầu!!

Đầu tiên ta nói qua về led 7 thanh tý nhỉ : led 7seg có thể có thể coi được tạo thành từ các led đơn ghép lại nhưng theo dạng thanh . Nó chia ra làm 2 loại anot chung và katot chung . Ta có thể hiểu nôm na rằng thực ra 7 "thanh" này giống như là 7 con led.A chung tức là anode của 7 con led này nối với nhau,còn các chân K thì riêng.Đối với K chung chũng có thể hiểu tương tự như vậy=> ok .Còn đây là sơ đồ chân của nó .



Tiếp theo là bảng mã led theo các chữ số từ 0=>9 . Chú ý bảng này tương ứng mới mức 1 sáng(5v ý ) led katot chung . Còn với loại anot chung thì bạn thay bảng trạng thái led sáng là mức 0 nha!



ok=> thế là xong phần lý thuyết về led 7seg .

I,,Phương pháp quét đầu tiên mình nói đến là phương pháp mỗi led gắn vào 1 port của VĐK phương pháp này là đơn giản nhất ,nhược điểm là tốn chân VĐK ở đây chỉ áp dụng cho các bạn mới học thôi hehe . PHần cứng như sau led 7seg anot chung , ,kết nối các chân của led tới port P2 của 89S52 ,chân anot qua tro 470 ôm nối lên VCC qua trở 100 om. các bạn nhìn hình vẽ



Code:
Trích dẫn
#include "reg52.h"//khai bao thu vien cho ho 89x52
void delay(unsigned int ms) //ham delay ms
{
unsigned int i,j; //vong for chay mat 8us
for(i=0;i for(j=0;j<125;j++); //tre 1s thi viet delay(1000)
}
main()
{
unsigned int k;
unsigned char maled[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//ma led 7seg anot chung
while(1)//vong lap vo tan
{
for(k=0;k<10;k++)
{
P2=maled[k];//chay tu 0 den 9
delay(10000);//tre bao nhieu tuy cac ban dat
}
}}



Rất đơn giản phải k nào ???
Vẫn sử dụng led đó nhưng giờ chúng ta dùng ic giải mã 74ls47 , phần cứng có chút thay đổi là chúng ta chỉ dùng 4 chân đầu tiên của P2 từ P2.0=>P2.3 nối vào các chân A
Sơ đồ:



Code:
Trích dẫn
#include "reg52.h"//khai bao thu vien cho ho 89x52
void delay(unsigned int ms) //ham delay ms
{
unsigned int i,j; //vong for chay mat 8us
for(i=0;i for(j=0;j<125;j++); //tre 1s thi viet delay(1000)
}
main()
{
unsigned int k;
unsigned char maled[10]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09}; //ma led 7447
while(1)//vong lap vo tan
{
for(k=0;k<10;k++)
{
P2=maled[k];//chay tu 0 den 9
delay(10000);//tre bao nhieu tuy cac ban dat
}
}}




ok => trên là phương pháp dùng từng led riêng biệt vấn đề đặt ra là rất tốn chân VXL khắc phục tình trạng này thì người ta sử dụng phương pháp quét có thể quét 15 ,20 led 1 con vđk là chuyện bình thường , chúng ta cùng tìm hiểu.

II,PHƯƠNG PHÁP QUÉT

Nguyên tắc: Ở đây thay vì nối chân anot của led 7seg lên VCC ta dùng 1 tran npn or pnp để điều khiển bật tăt led này. Tại mỗi thời điểm chỉ có duy nhất 1 led 7 thanh được bật sáng mà thôi. Nhờ sự lưu ảnh trên võng mạc người mà ta cảm nhận như các led 7 thanh này sáng đồng thời nhau, với điều kiện tốc độ quét ảnh >24 hình/1S.

Mình sẽ đi vào bài toán cụ thể : Viết chương trình hiển thị từ 00=>99
Phần cứng kết nối như sau : dùng led anot chung 2 led nối chung chân data vào P3 , chân điều khiển led 1 là P1.0 led 2 là P1.1 các bạn xem hình vẽ dưới .



code:
Trích dẫn
#include"reg52.h"

//================
sbit Led1 = P1^0;
sbit Led2 = P1^1;
//=================
unsigned char M[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
int a,b,c,d,k;

//=================
void main()
{
while(1)
{
for(k=0;k<=99;k++)
{
a=k/10;
b=k%10;
for(c=0;c<=10000;c++)
{
Led1=1; //led dau tien sang
P3=M[a];
Led1=0;
P3=0xff;//xoa du lieu
Led2=1; //led 2 sang
P3=M[b];
Led2=0;
P3=0xff;//xoa du lieu
}
}
}
}
//=================End=================


Hôm nay tạm thế đã còn rất nhiều phương pháp như dùng ic ghi dịch 74LS595 .... mình sẽ nói ở các bài tiếp theo . Các bạn về nhà luyện tập viết code đếm đến 9999 nha !


_________________

TĐH2 - K5 2010-2014
Hiếu==| | | ==๑۩۞۩๑----- ♥♥Hiếu♥Bích♥♥™ -----๑۩۞۩๑==| | |==Bích
Thấy hay thì THANK cho cái


Chiều buồn ngồi xé 500
Xé nhầm năm chục buồn ơi là buồn Crying or Very sad

Wondering? Between numerrous of waves and storm . only dream winged by diligence can be fly Nghiện game

Copy đường link dưới đây gửi đến nick yahoo bạn bè!



[H7] LED 7 thanh

Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang
Trang 1 trong tổng số 1 trang
* Viết tiếng Việt có dấu, là tôn trọng người đọc.
* Chia sẻ bài sưu tầm có ghi rỏ nguồn, là tôn trọng người viết.
* Thực hiện những điều trên, là tôn trọng chính mình.
-Nếu chèn smilies có vấn đề thì bấm A/a trên phải khung viết bài
YÊU CẦU VIẾT TIẾNG VIỆT CÓ DẤU

Permissions in this forum:Bạn không có quyền trả lời bài viết
 :: GIAO LƯU - CHIA SẺ KIẾN THỨC :: CHIA SẺ KIẾN THỨC CÙNG NHAU-
/* Số lượt truy cập */