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 24-04-2011, 01:53 AM   #1
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   #2
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
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à 08:45 PM.


Đượ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