PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   PIC - Thiết kế và Ứng dụng (http://www.picvietnam.com/forum/forumdisplay.php?f=23)
-   -   Cấn giúp đỡ về đồng hồ số hiển thị Led ma trận (http://www.picvietnam.com/forum/showthread.php?t=11358)

njkjchan 03-10-2011 09:49 AM

Cấn giúp đỡ về đồng hồ số hiển thị Led ma trận
 
Mấy anh trong diễm đàn giúp em viết code ( lập trình C ) và mạch mô phỏng cho đề tài sau với :
-Thiết kế đồng hồ số hiển thị Led ma trận ( dùng 4 Led ma trân 8x8 để hiển thị giờ và phút thôi, ko cần giây cũng ko cần ngày tháng năm lun) , sử dụng pic 16f877a va DS 1307

Em mới làm quen với pic , mong mọi người giúp đõ nhiều =.='

hatuan296 03-10-2011 09:53 AM

Làm bài t phåi không ban ?

njkjchan 03-10-2011 12:59 PM

Do an cua em do , ko phai bt dau anh

pstin 03-10-2011 09:37 PM

Hì, có đầy đủ rồi mà, mạch đồng hồ thì của bác tdm, mạch ma trận thì tui có post rồi, ghép vô là được!!!!!!!!!.
Đối với led ma trận thì bạn phải viết thử nghiệm xuất dữ liệu ra 1 con IC 74HC595, sau lên 4 con, tới đây là có thể "khổ luyện" hiển thị đồng hồ được rồi.
http://www.picvietnam.com/forum/showthread.php?t=6947
http://www.picvietnam.com/forum/showthread.php?t=10327
Bác tdm là cao thủ vã lâm đó, mô phỏng và hiển thị led là chuyên nghiệp, nhờ bác cho "lạch sự" thì chắc bác giúp thui!!!!!!!!.

njkjchan 04-10-2011 12:23 AM

em có đọc về con IC 74HC595 này nhưng ko hiểu lắm cứ tưởng nó dùng để chạy chữ ( vì những mạch em tìm dc về Led ma trận lâp trình bằng Pic toàn hiển thị chữ chạy ko ) nên cứ tưởng nó ko cần cho mạch đồng hồ của em lun =.=' . Cảm ơn anh pstin nhiều ^^

pstin 04-10-2011 10:47 AM

Chương trình xuất 03 chữ "vạn" (1 thuận, 2 nghịch), để thử nghiệm xuất 24 bit, chân D0 la data, chân D1 là xung clock, các chân D2, D3, D4 là 3 chân xuất dữ liệu riêng biệt của 3 con 595 (trường hợp của bạn nên nối chung các đường xuất dữ liệu lại với nhau), portB điều khiển quét hàng, bạn chế lại là xuất các con số được.
#include <16F877A.h>
#include <DEFS_16F877A.h>
#device *=16 ADC=10
#include <stdlib.h>
#fuses HS,NOWDT,NOPROTECT,NOLVP,NODEBUG
#use delay(clock=16000000)
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bi ts=8)

//=========================functions use========================================
int8 y,i;
int8 Cot1[]={0b10000101, 0b11100101, 0b11100101, 0b10000001, 0b10000001, 0b10100111, 0b10100111, 0b10100001};
int8 Cot2[]={0b10100001, 0b10100111, 0b10100111, 0b10000001, 0b10000001, 0b11100101, 0b11100101, 0b10000101};
int8 Cot3[]={0b10100001, 0b10100111, 0b10100111, 0b10000001, 0b10000001, 0b11100101, 0b11100101, 0b10000101};
int8 Hang[]={0b11111110, 0b11111101, 0b11111011, 0b11110111, 0b11101111, 0b11011111, 0b10111111, 0b01111111};

void sen595(int8 x)
{
#bit fla=x.7;
for (i=0;i<8;i++)
{
if (fla==1)
{output_high(PIN_D0);}
else
{output_low(PIN_D0);}
output_high(PIN_D1);
output_low(PIN_D1);
x = x<<1;
}
}

void main()
{
set_tris_b(0x00);
set_tris_d(0x00);
while(1)
{
for (y=0;y<8;y++)
{
sen595(Cot3[y]);
sen595(Cot2[y]);
sen595(Cot1[y]);
output_high(PIN_D2);
output_high(PIN_D3);
output_high(PIN_D4);
output_b(Hang[y]);
delay_ms(3);
output_b(0xff);
output_low(PIN_D2);
output_low(PIN_D3);
output_low(PIN_D4);
}
}
}

tdm 04-10-2011 12:52 PM

1 Attachment(s)
Trích:

Nguyên văn bởi njkjchan (Post 50344)
Mấy anh trong diễm đàn giúp em viết code ( lập trình C ) và mạch mô phỏng cho đề tài sau với :
-Thiết kế đồng hồ số hiển thị Led ma trận ( dùng 4 Led ma trân 8x8 để hiển thị giờ và phút thôi, ko cần giây cũng ko cần ngày tháng năm lun) , sử dụng pic 16f877a va DS 1307

Em mới làm quen với pic , mong mọi người giúp đõ nhiều =.='

em có nhắn tin cho anh nhưsau:
anh ơi, anh giúp em đề tài này với nhe
Em cần làm đồng hồ số hiển thị Led ma trận ( dùng 4 led ma trận 8x8 để hiển thị giờ và phút thôi , ko cần giây ), mạch dùng Pic 16f877a và DS1307

Anh giúp em viết Code ( lập trình C ) và mạch mô phỏng dc ko anh ?
Em chỉ mới làm quen với Pic , mong anh giúp đỡ nhiều. Cảm ơn anh ^^
để làm việc với led matrix trước tiên em phải có sơ đồ nguyên lí đề kiểm tra giải thuật.
với bài tập của em quét có 4 matrix thì dữ liệu nên xuất ra hàng và quét cột là đơn giản nhất.
đây là sơ đồ và một đoạn code nhỏ cứ sau 200ms dich cột .
em thử thay đổi delay xuống còn 1ms xem điều gì xảy ra nhé.
Code:

#include <16F877A.h>
#device *=16
#FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT
#use delay(clock=20000000)
#define clock  PIN_E0                               
#define data  PIN_E1                                 
#define chot  PIN_E2
void clock_chot(void);
int8 dich,bien,tam;
main()
{
set_tris_e(0x00);
set_tris_d(0x00);
output_low(clock);
output_low(data);
output_low(chot);
while(1)
{
output_high(data);
clock_chot();
output_low(data);
for(dich=0;dich<=31;dich++)
{
output_d(0x00);
delay_ms(200);
output_d(0xff);
clock_chot();
}
}
}
void clock_chot(void)
{
output_high(clock);
output_low(clock);
output_high(chot);
output_low(chot);
}


njkjchan 04-10-2011 07:35 PM

Tuần sau thi rồi , đề tài này gác lại 1 tuần vậy . Nhưng cũng cảm ơn anh pstin và anh tdm nhiều ^^

trinhVANBA 10-11-2017 12:56 AM

đồng hồ điện tử
 
anh chị trong group giúp em với ạ em làm đồng hồ điện tử hiển thị led 7 thanh dùng ds1307 vi điều khiển atmega8 mà khi chạy ở mạch thực đồng hồ chạy nhanh hơn thực tế nhiều ạ là tại sao ạ anh chị nào gặp lỗi này rồi chỉ em với ạ


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

Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam