PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   Các đề tài khác (http://www.picvietnam.com/forum/forumdisplay.php?f=28)
-   -   cách đưa dữ liệu từ 74hc595 vào led ma trận (http://www.picvietnam.com/forum/showthread.php?t=4319)

blackangel 06-06-2010 12:53 PM

mach quang báo giao tiếp với may tinh
 
em cũng đang làm đề tài về quang báo giao tiếp được với máy tính qua RS232, em muốn hỏi các sư huynh một chút là:
1. khi muốn giao tiếp được với máy tính thì ở pic( viết bằng CCS) mình tạo mã led như thế nào thì trên PC(viết bằng VB), mình cũng phải chuyển đổi sang mã Led y chang vậy phải không? tai em tham khảo một đoan code, thấy trên pic mã led khác với PC, em nghĩ nếu như vậy làm sao truyền được.
2. em sử dung con SRAM 6264, nối với pic qua PortB, vậy ngõ ra của 6264 mình nối vào đâu ah,tra datasheet em chỉ hiểu đc bảng trạng thái của nó thôi, còn mấy cái kia khó hiểu quá, ai biêt về con này chỉ cho em với nha.
3.ở cột em sử dung con IC 6B595(con này tích hợp từ 74595 và 2803), o hàng em đưa thẳng data qua PortD đc không, hay em phải đưa qua con IC74573 và TIP 127(2 transistor mắc Darlington), nó có tác dụng gì trong trường hợp này ah?
4.trước khi nối pic vớii may tính, Mình có thể lập trình cho nó tự hiển thị chữ trước, sau đó nếu giao tiép với may tính mình dùng ngắt đc không nhỉ?
mong mọi người chỉ giáo cho em với nha, em mới tìm hiểu nên cung còn nhiều điều chưa hiểu rõ lắm.

gianghctb1 06-06-2010 03:15 PM

theo mình được bieetss, thì nếu 2 con 595 nối theo cách chân 9 của con trước nối vào chân 14 của con sau thì sau khi có 8 xung nhịp đầu, cứ mỗi xung nhịp tiếp theo thì 1 bit từ con đầu sẽ chuyển sang con 595 thứ 2! với cách hiểu như vậy thì mình vẫn chưa thể ghép nối 2 con 595 với nhay mà vẫn sử dụng độc lập, vì giả sử chữ A chẳng hạn, bạn cần có 8 số liệu 8 bit cho 8 hàng, khi bạn gửi 8 bit đầu ra con 595 đầu tiên, con thứ 2 sẽ không có gì, gửi tiếp 8 bit tiếp theo,gửi xong thì 8 bít đầu sẽ chuyển sang con thứ 2, cứ như vậy thì bảng led đầu sẽ hiển thị chữ A, còn bảng thứ 2 là chữ A cụt đầu :( , bác nào có cách giải quyết thì post lên diễn đàn cho em với nhé, hiện tại em đã làm được 2 bảng led, chú chạy từ phải sang trái(từ bảng 1 qua bảng 2) nhưng sử dụng 2 con 595 độc lập, nếu ai cần tham khảo thì pm luonghoang.giang nhé ^_^ mong được các bác giúp đỡ các nối tiếp 2 con 595(cách xử lý phần mềm để nâng cao hiệu quả)
chúc vui!

thuandt2085 27-06-2010 10:21 AM

các bác ơi có tài liệu nào về con 74hc595 khong cho mình xin với mình đang vướng con đó không bít nó hoạt động theo nguyên tắc nào để ráp mạch cả mong các bác chỉ giáo dùm

hovanminh 27-06-2010 06:45 PM

595 la giao tiep noi tiep spi. dung thu vien spi tong trinh bien dich la ok. chuc thanh cong

manhdktd 28-06-2010 07:14 AM

3 Attachment(s)
Trích:

Nguyên văn bởi thuandt2085 (Post 36966)
các bác ơi có tài liệu nào về con 74hc595 khong cho mình xin với mình đang vướng con đó không bít nó hoạt động theo nguyên tắc nào để ráp mạch cả mong các bác chỉ giáo dùm

sao bạn không tìm trong datasheet nhỉ?chỉ cần vào google thì nó ra hàng đống đấy.

tranthao111982 28-07-2010 10:08 PM

chào các bác! em là dân đang tập tểnh vào lạp trình pic16f877a. em đang có dự định lập trình led ma trận ghép nối 4 bản led (sử dụng loại 8x8) sửdụng ic 74hc595 để mở rộng vậy các bác có thể cho em một code ví dụ được không ạ

huankhi 11-08-2010 10:09 PM

matrix LED
 
1 Attachment(s)
chào cả nhà
em đang làm mạch matrix LED dùng HC74595 để xuất dữ liệu và quét cột. nhưng không hiểu sao khi chạy hết dòng ký tự thì bị nhiễu ở cuối và chạy không đều.
xin cả nhà chỉ giáo

mitomtrung 18-09-2010 08:33 AM

led ma trận
 
bạn quet led nhu thế về cơ bản là sai bét rồ inhu thế là bạn dang quét song song các con led chứ không phải là quét led ma trận
bạn coi lại lí thuyết trong cunghocavr.com di
đây là việc đòi hỏi bạn phải tự làm chứ hỏi người khác không ai trả lời đâu vì họ cũng mất công nghiên cứu nhiều lắm chứ
chúc may mắn

mitomtrung 18-09-2010 08:34 AM

hỏi thế gian này led là chi
mà sao thấy nhiều người phải khổ

ngocnhipy 21-07-2012 09:40 PM

co bac nao gjoj ve c gjup e voj e co chuong trinh led matrix 8x8 xem ho em xem tai sao ko xuat duoc ma de hien thi chu. e dung 1 ic74hc595 1led ma tran bac nao sua dc gui dum e qua dia chi ngocnhipy@gmail.com
#include <16f877.h>
#use delay(clock=20000000)
#byte port_B =0x06
#byte port_C =0x07
#bit data = 0x06.1
#bit clk = 0x06.0
#bit latch = 0x06.2
int8 buff_disp[80]; //Bo nho dem cho man hinh LED
typedef struct {
int8 b[5]; /* Data */
}T_font;
const T_font font[]={
//******************BANG MA ASCII****************
//ascii_code:
0xFF,0xFF,0xFF,0xFF,0xFF,//SPACE 0
0xFF,0xFF,0xA0,0xFF,0xFF,//! 1
0xFF,0xFF,0xF8,0xF4,0xFF,//' 2
0xEB,0x80,0xEB,0x80,0xEB,//# 3
0xDB,0xD5,0x80,0xD5,0xED,//$ 4
0xD8,0xEA,0x94,0xAB,0x8D,//% 5
0xC9,0xB6,0xA9,0xDF,0xAF,//& 6
0xFF,0xFF,0xF8,0xF4,0xFF,//' 7
0xFF,0xE3,0xDD,0xBE,0xFF,//( 8
0xFF,0xBE,0xDD,0xE3,0xFF,//) 9
0xD5,0xE3,0x80,0xE3,0xD5,//* 10
0xF7,0xF7,0xC1,0xF7,0xF7,//+ 11
0xFF,0xA7,0xC7,0xFF,0xFF,//, 12
0xF7,0xF7,0xF7,0xF7,0xF7,//- 13
0xFF,0x9F,0x9F,0xFF,0xFF,//x 14
0xFF,0xC9,0xC9,0xFF,0xFF,/// 15
0xC1,0xAE,0xB6,0xBA,0xC1,//0 16
0xFF,0xBD,0x80,0xBF,0xFF,//1 17
0x8D,0xB6,0xB6,0xB6,0xB9,//2 18
0xDD,0xBE,0xB6,0xB6,0xC9,//3 19
0xE7,0xEB,0xED,0x80,0xEF,//4 20
0xD8,0xBA,0xBA,0xBA,0xC6,//5 21
0xC3,0xB5,0xB6,0xB6,0xCF,//6 22
0xFE,0x8E,0xF6,0xFA,0xFC,//7 23
0xC9,0xB6,0xB6,0xB6,0xC9,//8 24
0xF9,0xB6,0xBE,0xD6,0xE1,//9 25
0xFF,0xC9,0xC9,0xFF,0xFF,//: 26
0xFF,0xA4,0xC4,0xFF,0xFF,//// 27
0xF7,0xEB,0xDD,0xBE,0xFF,//< 28
0xEB,0xEB,0xEB,0xEB,0xEB,//= 29
0xFF,0xBE,0xDD,0xEB,0xF7,//> 30
0xFD,0xFE,0xAE,0xF6,0xF9,//? 31
0xCD,0xB6,0x8E,0xBE,0xC1,//@ 32
0x83,0xF5,0xF6,0xF5,0x83,//A 33
0xBE,0x80,0xB6,0xB6,0xC9,//B 34
0xC1,0xBE,0xBE,0xBE,0xDD,//C 35
0xBE,0x80,0xBE,0xBE,0xC1,//D 36
0x80,0xB6,0xB6,0xB6,0xBE,//E 37
0x80,0xF6,0xF6,0xFE,0xFE,//F 38
0xC1,0xBE,0xB6,0xB6,0xC5,//G 39
0x80,0xF7,0xF7,0xF7,0x80,//H 40
0xFF,0xBE,0x80,0xBE,0xFF,//I 41
0xDF,0xBF,0xBE,0xC0,0xFE,//J 42
0x80,0xF7,0xEB,0xDD,0xBE,//K 43
0x80,0xBF,0xBF,0xBF,0xFF,//L 44
0x80,0xFD,0xF3,0xFD,0x80,//M 45
0x80,0xFD,0xFB,0xF7,0x80,//N 46
0xC1,0xBE,0xBE,0xBE,0xC1,//O 47
0x80,0xF6,0xF6,0xF6,0xF9,//P 48
0xC1,0xBE,0xAE,0xDE,0xA1,//Q 49
0x80,0xF6,0xE6,0xD6,0xB9,//R 50
0xD9,0xB6,0xB6,0xB6,0xCD,//S 51
};
//Phan tu hai
const T_font font2[]={
0xFE,0xFE,0x80,0xFE,0xFE,//T 52
0xC0,0xBF,0xBF,0xBF,0xC0,//U 53
0xE0,0xDF,0xBF,0xDF,0xE0,//V 54
0xC0,0xBF,0xCF,0xBF,0xC0,//W 55
0x9C,0xEB,0xF7,0xEB,0x9C,//X 56
0xFC,0xFB,0x87,0xFB,0xFC,//Y89 24 57
0x9E,0xAE,0xB6,0xBA,0xBC,//Z90 25 58
0xFF,0x80,0xBE,0xBE,0xFF,//[ 59
0xFD,0xFB,0xF7,0xEF,0xDF,//\ 60
0xFF,0xBE,0xBE,0x80,0xFF,//] 61
0xFB,0xE1,0xE0,0xE1,0xFB,//^ 62
0x7F,0x7F,0x7F,0x7F,0x7F,//_ 63
0xFF,0xFF,0xF8,0xF4,0xFF,//' 64
0xDF,0xAB,0xAB,0xAB,0xC7,//a 65
0x80,0xC7,0xBB,0xBB,0xC7,//b
0xFF,0xC7,0xBB,0xBB,0xBB,//c
0xC7,0xBB,0xBB,0xC7,0x80,//d
0xC7,0xAB,0xAB,0xAB,0xF7,//e 69
0xF7,0x81,0xF6,0xF6,0xFD,//f
0xF7,0xAB,0xAB,0xAB,0xC3,//g 71
0x80,0xF7,0xFB,0xFB,0x87,//h 72
0xFF,0xBB,0x82,0xBF,0xFF,//i 73
0xDF,0xBF,0xBB,0xC2,0xFF,//j 74
0xFF,0x80,0xEF,0xD7,0xBB,//k 75
0xFF,0xBE,0x80,0xBF,0xFF,//l 76
0x83,0xFB,0x87,0xFB,0x87,//m 77
0x83,0xF7,0xFB,0xFB,0x87,//n 78
0xC7,0xBB,0xBB,0xBB,0xC7,//o 79
0x83,0xEB,0xEB,0xEB,0xF7,//p 80
0xF7,0xEB,0xEB,0xEB,0x83,//q 81
0x83,0xF7,0xFB,0xFB,0xF7,//r 82
0xB7,0xAB,0xAB,0xAB,0xDB,//s 83
0xFF,0xFB,0xC0,0xBB,0xBB,//t 84
0xC3,0xBF,0xBF,0xDF,0x83,//u 85
0xE3,0xDF,0xBF,0xDF,0xE3,//v 86
0xC3,0xBF,0xCF,0xBF,0xC3,//w 87
0xBB,0xD7,0xEF,0xD7,0xBB,//x 88
0xF3,0xAF,0xAF,0xAF,0xC3,//y 89
0xBB,0x9B,0xAB,0xB3,0xBB,//z 90
0xFB,0xE1,0xE0,0xE1,0xFB,//^ 92
0xE3,0xE3,0xC1,0xE3,0xF7,//->93
0xF7,0xE3,0xC1,0xE3,0xE3,//<-94
0xEF,0xC3,0x83,0xC3,0xEF,//95
0xFF,0xFF,0xFF,0xFF,0xFF//BLANK CHAR 96

};
// End of code table
//---------Chuong trinh con hien thi--------------------------------------------
void display(){
int8 i,time;
set_tris_B(0x00); // thiet lap B va C deu la dau ra
set_tris_C(0x00);
data=1; latch=1;clk=1;clk=0;latch=0; // bat dau dich cot
time=0;
for(time=0;time<1;time++)
{
for(i=79;i>0;i--)
{
port_C=buff_disp[i]; // xuat ma
delay_ms(100); // tao tre
port_C=0xff; // tat cot
clk=1;clk=0; // tao xung clock de dich
latch=1;latch=0;
port_C=char const
}
data=0; // Reset ghi dich

}
}
//------------Ket thuc chuong trinh con hien thi--------------------------------

//------------Chuong trinh con lay ma ASCII tu phan thu 1 cua font
void copy_2_ram1(int8 index_char)
{
int8 i,j;

for (j=0;j<=5;j++)
{ // Dich RAM
for (i=80;i>0;i--)
buff_disp[i]= buff_disp[i-1]; // Dich RAM sang trai
buff_disp[0]=font[index_char].b[j]; // Luu ma ascii vao RAM
display(); // Goi hien thi

}
buff_disp[0]=0xff;
}

//------------Chuong trinh con lay ma ASCII tu phan thu 2 cua font
//========Copy to Ram 2===================
void copy_2_ram2(int8 index_char) {

int8 i,j;

for (j=0;j<=5;j++)
{
for (i=80;i>0;i--) // Dich RAM
buff_disp[i]= buff_disp[i-1]; //Dich RAM sang trai
buff_disp[0]=font2[index_char].b[j]; //Luu ma ascii vao RAM
display(); // Goi hien thi
}
buff_disp[0]=0xff; // Them mot khoang trang giua hai ky tu
}
//---------------Ket thuc chuong trinh con lay ma ASCII tu phan thu 2 cuar font
void main()
{
int8 count,i,j;
int8 const max_char=56;
// Khai bao chuoi ky tu hien thi tai day
char const a[59]= {"HTL Truong Cao Dang Nghe Hai Duong. Khoa Dien - Dien tu "};// Ky tu NULL duco them
// Khoi tao chuong trinh chinh
for(i=0;i<56;++i)
write_eeprom(i,a[i]); //luu chuoi ky tu can hien thi vap Rom
write_eeprom(0xff,max_char); // Luu so ky tu toi da vao ROM

// ------------------------------
setup_adc_ports(NO_ANALOGS);
setup_adc(ADC_OFF);
setup_psp(PSP_DISABLED);
setup_spi(FALSE);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
//-------------------------------

while(1){
for (i=0;i<=80;i++) // Clear RAM of buff_disp
buff_disp[i]=0xff;
for (i=0;i<=max_char;i++) // Begin of text
{
j=read_eeprom(i)-32; //Lay gia tri ASCII cua ky tu
if (j<=51)
copy_2_ram1(j);
else
{
j=j-52;
copy_2_ram2(j);
}
}
}
}

illusion 22-02-2014 09:42 PM

pác nào cho em xin 1 đoạn code mẫu về nap vào 595 này với ạ, e nghĩ hoài mà làm ko ra. em muốn hiện 4 kí tự mnpq lên 4 led ma trận dùng 4 595. mà em không hiểu viết làm sao để dịch bit vào 595 hết.. em hiểu là có 1 xung clock thì nó dịch vào một bit nhưng em không biết làm sao cho nó liên tiếp nhau ạ. ai cho em xin đoạn code để nghiên cứu thêm a


Múi giờ GMT. Hiện tại là 08:51 PM.

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