![]() |
|
Tài trợ cho PIC Vietnam |
Cơ bản về vi điều khiển và PIC Những bài hướng dẫn cơ bản nhất để làm quen với vi điều khiển PIC |
![]() |
|
Ðiều Chỉnh | Xếp Bài |
![]() |
#1 |
Đệ tử 2 túi
Tham gia ngày: Jan 2011
Bài gửi: 37
: |
![]() các bác cho em hỏi về 74595 được ko
em mới vào nghề nên chẳng biết j cả giúp em với em đang làm một mạch hiển thị led 7 thanh gồm 8 led và 2 ic 74595 em dùng pic 16f886 em làm mãi rùi mà nó ko chạy chán lắm mong các bác chỉ giáo cho thay đổi nội dung bởi: thanhtb_89, 08-07-2011 lúc 01:03 PM. |
![]() |
![]() |
![]() |
#2 |
Đệ tử 5 túi
Tham gia ngày: Dec 2010
Bài gửi: 101
: |
có gì pam vào mail mình mình gửi cho bạn.con này nói chung rất dể sài không khó lắm đâu.
tranvanphat1989@yahoo.com.vn |
![]() |
![]() |
![]() |
#3 |
Đệ tử 2 túi
Tham gia ngày: Jan 2011
Bài gửi: 37
: |
ko có ai giúp em ah
huuuuu |
![]() |
![]() |
![]() |
#4 |
Đệ tử 2 túi
Tham gia ngày: Jan 2011
Bài gửi: 37
: |
em cám ơn bác
em đang học cách lập trình bằng ngôn ngữ c mong bác giáp em vói và chỉ giùm em chỗ sai thanks |
![]() |
![]() |
![]() |
#5 |
Đệ tử 5 túi
Tham gia ngày: Dec 2010
Bài gửi: 101
: |
cu thể là bạn đã đưa dữ liệu ra 595 duọc chưa.bạn đưa code bạn lên thử xem để mọi người còn sửa code giúp bạn
|
![]() |
![]() |
![]() |
#6 |
Đệ tử 2 túi
Tham gia ngày: Jan 2011
Bài gửi: 37
: |
anh phatcddt08a ui
bây giờ anh có online trên yahoo ko nếu có thì em add nick của anh vào nhá |
![]() |
![]() |
![]() |
#7 |
Đệ tử 5 túi
Tham gia ngày: Dec 2010
Bài gửi: 101
: |
thế để nick bạn lại đi . mail trên đó cũng là nick mình đó.mình với bạn đồng tuổi thôi cứ kêu bạn là được
|
![]() |
![]() |
![]() |
#8 |
Đệ tử 2 túi
Tham gia ngày: Jan 2011
Bài gửi: 37
: |
vâng
đây là code của em #include <16F886.h> #device adc=10 #FUSES NOWDT //No Watch Dog Timer #FUSES INTRC_IO //Internal RC Osc, no CLKOUT #FUSES NOPUT //No Power Up Timer #FUSES MCLR //Master Clear pin enabled #FUSES PROTECT //Code not protected from reading #FUSES NOCPD //No EE protection #FUSES BROWNOUT //Reset when brownout detected #FUSES NOIESO //No Internal External Switch Over mode enabled #FUSES NOFCMEN //No Fail-safe clock monitor enabled #FUSES NOLVP //No Low Voltage Programming on B3(PIC16) or B5(PIC18) #FUSES NODEBUG //No Debug mode for ICD #FUSES WRT //Program memory write protected #FUSES BORV40 //Brownout reset at 4v #use delay(clock=4000000) #byte PORTB = 0x06 #byte TRISB = 0x86 //=============================== //define com //mant //=============================== //#define data PIN_B5 //#define //#define SHIFT_CLK_1 PORTB |= 0b00010000 //#define SHIFT_CLK_0 PORTB &= ~0b00010000 #define SHIFT_DTA_1 PORTB |= 0b00100000 #define SHIFT_DTA_0 PORTB &= ~0b00100000 #define MASK_LED_0 0b00101000 #define MASK_LED_1 0b10101111 #define MASK_LED_2 0b10011000 #define MASK_LED_3 0b10001010 #define MASK_LED_4 0b00001111 #define MASK_LED_5 0b01001010 #define MASK_LED_6 0b01001000 #define MASK_LED_7 0b10101110 #define MASK_LED_8 0b00001000 #define MASK_LED_9 0b00001010 //int16 n; const unsigned char dta[10] = {MASK_LED_0,MASK_LED_1,MASK_LED_2,MASK_LED_3,MASK_ LED_4, MASK_LED_5,MASK_LED_6,MASK_LED_7,MASK_LED_8,MASK_L ED_9}; //=============================== //dinh nghia cac ham //=============================== void sckc(); void lat(); void dichbit(); //=============================== //tao xung clock //=============================== void sckc() { //PORTB=0b11110111 output_high(PIN_B4); delay_us(200); output_low(PIN_B4); delay_us(200); } //=============================== //tao xung latch va hien thi //=============================== void lat() { //PORTB=0b11101111 output_high(PIN_B3); delay_us(200); output_low(PIN_B3); delay_us(200); } //=============================== //DICH BIT //n la so phan tu mang //i so lan lap dich bit //=============================== void main() { unsigned char mask,i,n; int8 dk; mask = 0x80; for(n=0;n<10;n++) { for(i=0;i<8;i++) { if( dta[n] & mask ) {SHIFT_DTA_1;} else {SHIFT_DTA_0;} sckc(); mask>>=1; } dk=0b00001111; if(dk & mask) {SHIFT_DTA_1;} else {SHIFT_DTA_0;} sckc(); mask>>=1; lat(); delay_ms(2000); } } |
![]() |
![]() |
![]() |
#9 |
Đệ tử 2 túi
Tham gia ngày: Jan 2011
Bài gửi: 37
: |
còn đây là nick của mình
chithanh_pro89 còn đây là mail của mình chithanhtb |
![]() |
![]() |
![]() |
#10 |
Đệ tử 2 túi
Tham gia ngày: Jan 2011
Bài gửi: 37
: |
mail của em là chithanhtb@gmail.com
|
![]() |
![]() |
![]() |
#11 | |
Đệ tử 5 túi
Tham gia ngày: Dec 2010
Bài gửi: 101
: |
Trích:
gợi ý nhé. int dulieu = 0x01,i,y; int1 value; for(i=8;i>=1;i--) { value = bit_test(dulieu,i-1); data = value; // data la chân dử liệu 595 ckl = 0; // chân xung nhip ckl=1; chot=0; // chân chốt chot=1; } ở đây chương trình chạy như sau bắt đầu lấy bít 7 dử liệu đưa ra rồi chốt liền ,lần thứ 2 sẽ là 6 và 5 dến 0 cứ thế . còn nếu bạn muốn đưa nguyên byte rồi chốt thì làm như sau: int dulieu = 0x01,i,y; int1 value; for(i=8;i>=1;i--) { value = bit_test(dulieu,i-1); data = value; // data la chân dử liệu 595 ckl = 0; // chân xung nhip ckl=1; } chot=0; // chân chốt chot=1; cái lệnh bit_test này tốn rất ít chu kỳ máy so với if mình thường đưa bít 7 vào trước để dữ liệu ra giống như dữ liệu vào,còn đưa bít 0 ra trước thì dữ liệu sẻ đảo lại. bản thân thanh ghi dịch bên trong 595 la dịch trái.đi ăn cái gì đã đói bụng thế thay đổi nội dung bởi: phatcddt08a, 08-07-2011 lúc 01:39 PM. |
|
![]() |
![]() |
![]() |
#12 |
Đệ tử 2 túi
Tham gia ngày: Jan 2011
Bài gửi: 37
: |
vâng
em gửi toàn bộ mạch in và chuơng trình vào mail của anh rùi |
![]() |
![]() |
![]() |
#13 |
Đệ tử 2 túi
Tham gia ngày: Jan 2011
Bài gửi: 37
: |
thế nói chung chuong trình của mình có đúng ko bạn
|
![]() |
![]() |
![]() |
#14 |
Đệ tử 2 túi
Tham gia ngày: Jan 2011
Bài gửi: 37
: |
cám ơn bạn nhiều
mình sẽ thay đổi theo cách của bạn nhưng sao mình nạp chuơng trình mình viết nó lại ko chạy được nhỉ |
![]() |
![]() |
![]() |
#15 |
Đệ tử 2 túi
Tham gia ngày: Jan 2011
Bài gửi: 37
: |
bạn có thể giải thích cho mình cái 0x01,i,y đẻ làm j ko?
và bit_test(dulieu,i-1); để làm gì ý nghĩa của nó được ko bạn giải thích giúp mình với |
![]() |
![]() |
![]() |
|
|