![]() |
![]() |
#1 |
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 |
![]() |
![]() |
![]() |
#2 |
Nhập môn đệ tử
Tham gia ngày: Apr 2011
Bài gửi: 2
: |
Không ai cho ý kiến gì thế
![]() |
![]() |
![]() |
![]() |
#3 |
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
|
![]() |
![]() |
![]() |
#4 |
Đệ tử 7 túi
Tham gia ngày: May 2005
Bài gửi: 258
: |
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 đề. |
![]() |
![]() |
![]() |
#5 | |
Đệ tử 3 túi
Tham gia ngày: Apr 2011
Bài gửi: 56
: |
Trích:
|
|
![]() |
![]() |
![]() |
#6 | |
Đệ tử 7 túi
Tham gia ngày: May 2005
Bài gửi: 258
: |
Trích:
phần cứng và code đã sửa lạ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. |
|
![]() |
![]() |
![]() |
#7 |
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(); } } } } |
![]() |
![]() |
![]() |
#8 |
Nhập môn đệ tử
Tham gia ngày: Oct 2008
Bài gửi: 8
: |
![]() ----------------
#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 ![]()
__________________
THS thay đổi nội dung bởi: Huynh Thanh San, 10-04-2012 lúc 04:35 AM. |
![]() |
![]() |
![]() |
#9 |
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 ? |
![]() |
![]() |
![]() |
#10 |
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
|
![]() |
![]() |
![]() |
#11 |
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
|
![]() |
![]() |
![]() |
Ðiều Chỉnh | |
Xếp Bài | |
|
|