PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > Các ngôn ngữ lập trình khác (CCS C, HT 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

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 18-04-2011, 04:30 PM   #1
vunam1990
Nhập môn đệ tử
 
Tham gia ngày: Apr 2011
Bài gửi: 2
:
[Help]Dùng ic 74HC595 quet led matrix hiện chữ chạy

Đề tài mình viết để hiện chữ chạy trên 4 con led matrix dùng ic ghi dịch 74HC595. Nhưng sao chạy 1 lúc nó lại chạy ko đúng ý mình. Mong Các tiền bối cho ý kiến
Đây là file code và mô phỏng của mình
http://www.mediafire.com/?jgb8gyiub6bkj66
vunam1990 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 18-04-2011, 11:33 PM   #2
vunam1990
Nhập môn đệ tử
 
Tham gia ngày: Apr 2011
Bài gửi: 2
:
Không ai cho ý kiến gì thế
vunam1990 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 19-04-2011, 01:35 PM   #3
tdm
Đệ tử 7 túi
 
Tham gia ngày: May 2005
Bài gửi: 258
:
Trích:
Nguyên văn bởi vunam1990 View Post
Không ai cho ý kiến gì thế
bạn lên đưa dữ liệu ra 32 cột rồi quét theo hàng thì sẽ khả thi hơn.
__________________
viết chương trình cho vdk chạy ổn định là cả một vấn đề.
tdm vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 19-04-2011, 01:45 AM   #4
bongbk
Nhập môn đệ tử
 
Tham gia ngày: Apr 2010
Bài gửi: 3
:
e cũng đang bị mắc cái này , có pro nào giúp e cái
bongbk vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 22-04-2011, 12:33 AM   #5
friend_1990
Đệ tử 3 túi
 
Tham gia ngày: Apr 2011
Bài gửi: 56
:
Trích:
Nguyên văn bởi vunam1990 View Post
Đề tài mình viết để hiện chữ chạy trên 4 con led matrix dùng ic ghi dịch 74HC595. Nhưng sao chạy 1 lúc nó lại chạy ko đúng ý mình. Mong Các tiền bối cho ý kiến
Đây là file code và mô phỏng của mình
http://www.mediafire.com/?jgb8gyiub6bkj66
sao protuse mình mở ko lên bạn mình là protuse 7.4 sp3 của bạn là bao nhiêu thế
friend_1990 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 23-04-2011, 03:00 PM   #6
tdm
Đệ tử 7 túi
 
Tham gia ngày: May 2005
Bài gửi: 258
:
Trích:
Nguyên văn bởi vunam1990 View Post
Đề tài mình viết để hiện chữ chạy trên 4 con led matrix dùng ic ghi dịch 74HC595. Nhưng sao chạy 1 lúc nó lại chạy ko đúng ý mình. Mong Các tiền bối cho ý kiến
Đây là file code và mô phỏng của mình
http://www.mediafire.com/?jgb8gyiub6bkj66
phần cứng kết nối sai ở con matrix thứ 4.
phần cứng và code đã sửa lại:
Hình Kèm Theo
File Type: jpg matrix.jpg (193.0 KB, 91 lần tải)
File Kèm Theo
File Type: zip matrix.zip (78.1 KB, 624 lần tải)
__________________
viết chương trình cho vdk chạy ổn định là cả một vấn đề.

thay đổi nội dung bởi: tdm, 23-04-2011 lúc 03:08 PM.
tdm vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 24-04-2011, 01:53 AM   #7
duchoadt
Nhập môn đệ tử
 
Tham gia ngày: Nov 2010
Bài gửi: 9
:
Mình chạy thử và thấy có báo lỗi không bít là sai ở đâu nữa . Báo lỗi #bit d7=send_reg.31
nếu có thể giải thích từng dòng lệnh jum em dc khong các anh. Cảm ơn các anh nhiều

Trong chuỗi dữ liệu . EM đang làm đồ án mong mọi nguòi giúp đỡ
#include <16f877a.h>
#include <def_877a.h>
#FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG,NOBROWNOUT, NOLVP, NOCPD, NOWRT
#use fast_io(b)
#use fast_io(d)
#use delay(clock=20000000)
int32 send_reg;
int8 m,l,x,lap;

int32 const chay[]={0x80000000,0x40000000,0x20000000,0x10000000,
0x08000000,0x04000000,0x02000000,0x01000000,0x0080 0000,0x00400000,0x00200000,0x00100000,0x00080000,0 x00040000,0x00020000,0x00010000,
0x00008000,0x00004000,0x00002000,0x00001000,0x0000 0800,0x00000400,0x00000200 ,0x00000100,
0x00000080,0x00000040,0x00000020,0x00000010,0x0000 0008,0x00000004,0x00000002,0x00000001};
int8 const data[]={255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,25 5,255,255,255,255,255,255,
247,176,182,190,193,
128,239,247,251,128,
224,215,183,215,224,
128,239,247,251,128,255,
128,
224,215,183,215,224,
191,191,128,191,191,255,
129,254,254,129,
185,182,182,206,255,
128,
190,221,235,128,
255,255,255,255,255,255,255,255,255,255,255,255,25 5,255,255255,255,255,255,255,255,255,255,255,255,2 55,255,255,255,255,255};
#bit d7=send_reg.31
void serout(){
int8 n;
for(n=0;n<32;n++)
{
output_low(pin_b0);
if(d7!=0) output_high(pin_b0);
output_low(pin_b1);
output_high(pin_b1);
send_reg=send_reg<<1;
}
}
void display(){
set_tris_b(0xf0);
output_low(pin_b2);
output_high(pin_b2);
serout();
output_low(pin_b3);
output_high(pin_b3);
}
void hc595(){
m=0;
for(m=0;m<32;m++){
x=m+l;
if(x<109){
send_reg=chay[m];
display();
output_d(data[x]);
delay_ms(2);

}
else {
send_reg=chay[m];
display();
output_d(data[x-109]);
delay_ms(2);

}
}
}
void main(){
set_tris_d(0);
output_d(255);
while(1){
l=0;
for(l=109;l>0;l--){
for(lap=0;lap<3;lap++)
{
hc595();
}
}
}
}
duchoadt vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 06-04-2012, 07:31 AM   #8
Huynh Thanh San
Nhập môn đệ tử
 
Huynh Thanh San's Avatar
 
Tham gia ngày: Oct 2008
Bài gửi: 8
:
Smile Re : PIC HC595

Trích:
Nguyên văn bởi duchoadt View Post

#bit d7=send_reg.31

}
----------------

#bit id = x.y
id is a valid C identifier,
x is a constant or a C variable,
y is a constant 0-7.

--------- Nếu code đúng thì --------------------
#bit d7=send_reg.7
send_reg=send_reg <<1 dịch phải

-------------------------------

Để chạy mà theo kiểu sửa file mô phỏng thì các bạn sửa như sau :

sửa này lại xíu " #bit d7=send_reg.31 " thành " #bit d7=send_reg.0 " vậy là hết báo lổi thôi
và chỗ này " send_reg=send_reg << 1" thành " send_reg=send_reg >>1 " cho nó dịch trái -> phải .

----------------
Ở phần cứng, các bạn sửa lại . tại IC HC595 . Thứ tự trong file cũ ỡ phần trên thì PIC -> U1 -> U2 -> U3 -> U4.

- Zờ chỉ sửa lại tại chân ký hiệu (DS) .
- Từ Pic 16F877A (Rb0)--> Chân DS của U4 và tại chân ký hiệu Q7' thì đưa vào DS của U3 , tương tự lấy Q7' của U3 đưa vào DS của U2. .....
- Thêm 1 cái nữa đổi vị trí của các cột hết như trong mạch cũ là " d0 > d1> ..> d7 thì sữa lại d7>d6>...>d0. Tương tự các chân kia cũng vậy
Vậy là nó chạy từ phải sang trái rùi đó , chúc mọi người vui vẻ.
---------------------------
Hix chỉ biết vậy thui, nghiệp dư , nhờ các pro giải đáp dùm

" #bit d7=send_reg.31 " làm sao để gán vào , xin củm ơn nhiều
__________________
THS

thay đổi nội dung bởi: Huynh Thanh San, 10-04-2012 lúc 04:35 AM.
Huynh Thanh San vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 29-11-2012, 09:21 AM   #9
msh_mta
Nhập môn đệ tử
 
Tham gia ngày: Sep 2012
Bài gửi: 9
:
các bạn có thể giải thích câu lệnh #bit d7=send_reg.31 là gì không ? nó dùng để làm gì ?
if(d7!=0) output_high(pin_b0); câu lệnh này có phải là truyền bit có trọng số cao không ?
msh_mta vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 02-12-2012, 07:34 PM   #10
vb_bk
Nhập môn đệ tử
 
Tham gia ngày: Oct 2012
Bài gửi: 2
:
mọi người cho em hỏi với ạ..có thể đặt vòng lặp for() trong phần code xử lý ngắt timer0 được không ạ. e làm mãi không được, không biết lỗi do gì nữa..hix
vb_bk vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 25-12-2012, 10:25 PM   #11
cuongquy
Nhập môn đệ tử
 
Tham gia ngày: Dec 2012
Bài gửi: 2
:
ihjfporkg[ptegl'tr

cứu..........cứu........cứu.......! xin chào các bậc tiền bối chuyện là e mới nhập môn vdk mà sắp tới tụi e phải làm pài thuyết trình về led 7 thanh có ic 74hc595 giải mã nữa chứ? tụi em k pit phải lam ntn de lap trình đua dữ liệu zo thang 595 để led đếm tu 0----->.............. nên e mạo muội lên diễn đàn để gặp các tiền bối xin tài liệu về thằng 595 này hj vọng các tiền bối đi trước cho e xin ít tài liệu về học tiện thể cho em xin 1 đoạn code asm dua du lieu zo thằng 595 nay vì e mới nhập môn nên dang còn mu muội lắm nen các pác cho tài liệu cụ thể hì va sau mỗi dòng code cho e mấy lời giải thích nhé càng cu thể càng tốt. nhu vậy e mới hiu dc vì e mới nhập môn mà. hj vọng các bậc tiền bối jup e. mail e nak cuongquy90@gmail.com
cuongquy vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lời


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à 02:17 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