![]() |
![]() |
#121 |
Đệ tử 2 túi
Tham gia ngày: Oct 2007
Bài gửi: 29
: |
quét 8 led 7 đoạn
em mới chuyển qua viết bằng ccs, em dang có phần cứng là 8 led 7 đoạn, dung hai port của 16f877a cua xuất mã 7 đoạn và mã quét. quét bằng mức 0, led anot chung. cho 8 led hiện thị từ 0-7, nhưng ko biết viết như thế nào, mấy bác giúp em với
|
![]() |
![]() |
![]() |
#122 |
Đệ tử 3 túi
Tham gia ngày: Apr 2006
Bài gửi: 54
: |
bạn nào giúp mình với, mình lấy hàm flex_lcd ở trên diễn đàn của CCS, vấn đề của mình là, mình xuất được chữ ra LCD rồi, nhưng trong while(1) mình viết 1 đoặn nháy led đơn giản, nhung led nháy dc 1 lúc đúng theo code, rồi sáng mãi 1 lúc, rồi lại nháy cứ thế mãi, lúc led sáng mãi đồng thời các kí tự trên LCD xuất hiẹn loạn cả lên, mình nghĩ vì 1 lí do nào đó mà vdk bị reset lại, mình đã tắt WDT rồi, ai xem giúp mình với, có ai gặp trường hợp này chưa. Mình dùng 30F4011, dùng bản PCWHD 4.068
Chương trình mình gửi kèm theo |
![]() |
![]() |
![]() |
#123 |
Nhập môn đệ tử
Tham gia ngày: Aug 2008
Bài gửi: 5
: |
Ai có code của bài giải mã bàn phím 4x4 hiển thị ra LCD thì giúp mình(Bàn phím nối vào 8 chân portb còn LCD nối kiểu 4 bit)? Thank!
|
![]() |
![]() |
![]() |
#124 |
Nhập môn đệ tử
Tham gia ngày: Jul 2008
Bài gửi: 5
: |
![]() xin chào các bạn, các anh chị trong diễn đàn picvietnam
em mới bắt đầu làm quen với pic, và đang tập làm bài thực hành điều khiển động cơ dùng pid mà anh Falleaf đã phát động sau khi tham khảo các luồng về CCS cũng như các TUT trên diễn đàn, em có viết 1 đoạn code dùng ccs để hiển thị tốc độ cần đặt lên 4 led 7 đoạn với hướng làm như sau: khởi đầu hiển thị giá trị 0000, dùng 2 nút INC và DEC lần lượt tăng giảm giá trị ở hàng ngàn, rồi dùng Move để chuyển sang hàng trăm và tiếp tục dùng INC và DEC để tăng giảm giá trị mong muốn.... do mới bắt đầu viết bằng CCS nên tất nhiên code sai nhiều. mong các bạn và các anh chị góp ý giúp em để em có thể học hỏi được nhiều hơn thank for reading, rất mong được sự hồi âm của các bạn và các anh chị àh quên, các anh cho em hỏi: - em định làm 1 chương trình con để đọc giá trị tốc độ từ encoder về timer 0 ở chế độ đếm xung: mỗi khi có ngắt timer 1 thì tính tốc độ động cơ và khi đó gọi 1 hàm con để hiển thị tốc độ vừa tính được lên led 7 đoạn. em ko biết xử lý thế nào? vì khi đó phải quét cả 4 led mà gọi hàm con đó trong ngắt timer 1 thì có vấn đề gì ko. mong các anh giúp giùm em thay đổi nội dung bởi: longphi_batbai, 26-11-2008 lúc 05:37 PM. |
![]() |
![]() |
![]() |
#125 | |
Đệ tử 6 túi
Tham gia ngày: May 2007
Bài gửi: 127
: |
Trích:
phương pháp này chỉ để học mà thực tế chắc chẳng ai dùng . Thường thì người ta dùng thanh ghi dich + chốt đầu ra . VD : 74HC595 dùng IC đệm 74HC595 chỉ mất 3 chân của PIC mà số lượng LED 7 thanh có thể có thể mở rộng bao nhiêu cũng được. tui đã dùng phương pháp này để điều khiển 103 con LED 7 thanh |
|
![]() |
![]() |
![]() |
#126 |
Nhập môn đệ tử
Tham gia ngày: Jul 2008
Bài gửi: 5
: |
cám ơn góp ý của Lion nhá, theo như Lion nói, thì mình phải xử lý ngắt để đếm xung và tính tốc độ nên chắc chắn Led bị nhấp nháy. bạn có thể cho mình xin 1 đoạn code mẫu dùng ic đệm 74595 để tham khảo cách viết được ko? nếu được thì cảm ơn Lion lắm lắm.
|
![]() |
![]() |
![]() |
#127 | |
Đệ tử 3 túi
Tham gia ngày: Aug 2008
Bài gửi: 53
: |
Trích:
__________________
Hãy cho trước khi nhận |
|
![]() |
![]() |
![]() |
#128 |
Đệ tử 6 túi
Tham gia ngày: May 2007
Bài gửi: 127
: |
đây là 1 đoạn code viết cho 74hc595 :
Code:
//-------------------------------------------------------------- #define DATA RB7 #define CLK RB6 #define STR RB5 void display_used_74hc595(unsigned char x) { unsigned char i ; for(i=0;i<8;i++) { if( bit_test(x,0) == 1 ) { DATA=1 ; } else { DATA=0 ; }; CLK=0; CLK=1; x = x>>1 ; }; } //-------------------------------------------------- void main(void) { TRISA=0xff; TRISB=0x00; TRISC=0xff; TRISD=0xff; while(true) { display_used_74hc595( 1 ) ; STR=1; STR=0; }; } thay đổi nội dung bởi: namqn, 04-12-2008 lúc 02:08 AM. |
![]() |
![]() |
![]() |
#129 | |
...Damned...
Tham gia ngày: Apr 2006
Nơi Cư Ngụ: Hồ Chí Minh
Bài gửi: 522
: |
Trích:
|
|
![]() |
![]() |
![]() |
#130 |
Đệ tử 3 túi
Tham gia ngày: Nov 2007
Nơi Cư Ngụ: Vietnam
Bài gửi: 48
: |
Ccs_pcwhd4.084
Cho mục đích thử nghiệm:
http://www.mediafire.com/file/jtyxvz...WHD_v4.084.RAR
__________________
More friends more foods |
![]() |
![]() |
![]() |
#131 |
Đệ tử 5 túi
Tham gia ngày: Mar 2008
Nơi Cư Ngụ: Bình Thạnh, TPHCM
Bài gửi: 98
: |
hii cho thử nghiệm là sao vậy pác?
__________________
------------------------------------------------------------------- Cung cấp bo mạch thực hành Arduino và các mạch sáng tạo. Mời tham quan: https://www.facebook.com/eshop1109 Cung cấp dịch vụ order hàng từ Aliexpress Liên hệ: https://www.facebook.com/Mua-h%E1%BB...5265931515571/ |
![]() |
![]() |
![]() |
#132 |
Đệ tử 3 túi
Tham gia ngày: Nov 2007
Nơi Cư Ngụ: Vietnam
Bài gửi: 48
: |
Gọi là thử nghiệm vì là sử dụng c***k. Có thể phát sinh lỗi không mong muốn trong quá trình sử dụng. Nếu sử dụng bản này và phát sinh lỗi, có thể chia sẻ với mọi người.
__________________
More friends more foods |
![]() |
![]() |
![]() |
#133 |
Đệ tử 2 túi
Tham gia ngày: Jun 2007
Bài gửi: 30
: |
Các bác cho em hỏi tại sao em lập trình với 16f887 trên CCS 4.068 thì khi cho nhấp nháy portb.3 và portb.2 cùng lúc nhưng chỉ có portb.3 là nhấp nháy còn portb.2 thì không ??
Thanks !! |
![]() |
![]() |
![]() |
#134 | |
Trưởng lão PIC bang
|
Trích:
Thân,
__________________
Biển học mênh mông, sức người có hạn. Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau: http://www.picvietnam.com/forum/showthread.php?t=1263 |
|
![]() |
![]() |
![]() |
#135 |
Đệ tử 2 túi
Tham gia ngày: Jun 2007
Bài gửi: 30
: |
em đã thử cả trên proteus và trên mạch thật. Đây là code của em :
Code:
#include <16F887.h> #include <DEF_887.h> #device *=16adc=10 #fuses HS,NOWDT,NOPROTECT,NOLVP #use DELAY(clock=20000000) #include <lcd.c> void init_main(void) { //khoi tao ADC setup_adc(adc_clock_internal); setup_adc_ports(all_analog); //khoi tao pwm setup_timer_2(T2_DIV_BY_1,250, 1); setup_ccp1(ccp_pwm); setup_ccp2(ccp_pwm); //khoi tao I/O TRISB2 = 0; TRISB3 = 0; trisb0 = 1; trisd = 0x00; trisc = 0x00; portb = 0xff ; } void main (void) { init_main(); while (1) { rb2 = 1; rb3= 1; delay_ms(1000); rb2= 0 ; rb3 = 0; delay_ms(1000); } } thay đổi nội dung bởi: namqn, 10-01-2009 lúc 06:00 PM. |
![]() |
![]() |
![]() |
|
|