View Full Version : Anh nào có code dùng pic 16f887 với 74hc595
quangsangpro
10-08-2012, 02:29 PM
em ko biết cách đưa tín hiệu ra với pic 16f887 và con 74hc595 ai bik cách và code thì chỉ em với.em cảm ơn trc nha ^_^
binhbk247
10-08-2012, 05:49 PM
16f887 thì cũng như 16f877a thôi, còn xuất ra bằng 595 bằng thử dùng 2 hàm này nhé
//ser: chan 14
//rck: chan 12
//sck: chan 11
void init_595()
{
ser=0;
rck=0;
sck=0;
}
void out_595(unsigned char so)
{
int i, data;
data=so;
for(i=1;i<=8;i++)
{
if(data & 0x80)
ser=1;
else
ser=0;
sck=1;
sck=0;
data=data<<1;
}
rck=1;
rck=0;
}
quangsangpro
10-08-2012, 10:45 PM
đây hình như chỉ cho 1 con 74hc595 thui phải ko anh..như em nối 3 or 4 con 74hc595 thì sao anh......
binhbk247
10-08-2012, 10:56 PM
ví dụ 2 con 595 thì hàm xuất ra 595 sẽ như sau:
void out_595(unsigned char so1,unsigned char so2)
{
int i;
int16 data;
data=so1;
data=(data<<8)+so2;
for(i=1;i<=16;i++)
{
if(data & 0x8000)
ser=1;
else
ser=0;
sck=1;
sck=0;
data=data<<1;
}
rck=1;
rck=0;
}
3,4 con thì e cứ theo thuật toán tương tự vậy mà làm nhé
quangsangpro
10-08-2012, 11:06 PM
cái này cần khai báo ji ko anh sao em build mah nó báo lỗi
Error [192] F:\project\timer2\Untitled.c; 68.1 undefined identifier "ser"
Error [192] F:\project\timer2\Untitled.c; 69.1 undefined identifier "rck"
Error [192] F:\project\timer2\Untitled.c; 70.1 undefined identifier "sck"
Error [192] F:\project\timer2\Untitled.c; 80.1 undefined identifier "ser"
Error [192] F:\project\timer2\Untitled.c; 83.1 undefined identifier "sck"
Error [192] F:\project\timer2\Untitled.c; 87.1 undefined identifier "rck"
quangsangpro
10-08-2012, 11:41 PM
nếu anh làm với con 16f877 rùi thì share cho em với.... em đang cần
mail em là : prince_black_mask@yahoo.com
binhbk247
11-08-2012, 12:58 AM
báo lỗi là đúng rồi, vì đây chỉ là đoạn chương trình thôi chứ có phải là toàn bộ chương trình đâu, e phải định nghĩa các chân ser,rck,sck chứ, các chân này sẽ nối với chân của vđk
ví dụ ở đây chân ser nối với rb0, rck nối với rb1, sck nối với rb2 thì e khai báo
#byte portb = 0x06 // địa chỉ của thanh ghi portb, e coi lại thử 887 cái đúng là địa chỉ này ko
#bit ser = portb.0
#bit rck = portb.1
#bit sck = portb.2
còn ser,rck,sck là chân số mấy của 74hc595 thì a đã nói ở trên rồi đấy
CHIPKUTI
11-08-2012, 11:13 AM
em cũng đang kiếm code làm led cube với hướng dẫn anh binhbk247 thì em là thế này mah nó van bao loi
#byte portb = 0x06
#bit ser = portb.0
#bit rck = portb.1
#bit sck = portb.2
dù em copy đoạn trên để chổ nào nó cũng báo lỗi như bạn đó
#include<htc.h>
__CONFIG( INTIO & MCLREN & WDTDIS & UNPROTECT & DUNPROTECT & BORDIS & LVPDIS & IESODIS & PWRTDIS);
#byte PORTB = 0x06
#bit ser = PORTB.0
#bit rck = PORTB.1
#bit sck = PORTB.2
void main ()
{TRISB=0X00;
while (1)
{
}
}
void init_595()
{
ser=0;
rck=0;
sck=0;
}
void out_595(unsigned char so)
{
int i, data;
data=so;
for(i=1;i<=8;i++)
{
if(data & 0x80)
ser=1;
else
ser=0;
sck=1;
sck=0;
data=data<<1;
}
rck=1;
rck=0;
}
CHIPKUTI
11-08-2012, 11:26 AM
anh naod làm với con pic16f887&& 595 cho em xin code c
nguyên lý càng tốt
quangsangpro
14-08-2012, 04:21 PM
sao chẳng có ai giúp vậy ta ^_^
binhbk247
14-08-2012, 04:24 PM
e cần thì gởi code qua, có time anh sửa cho, chứ a ko có code lập trình sẵn cái ni. e gởi qua mail congbinhdbk@gmail.com nhé
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.