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 Tìm Kiếm Bài Trong Ngày Ðánh Dấu Ðã Ðọc Vi điều khiển

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 28-08-2009, 09:50 AM   #1
Hard
Đệ tử 2 túi
 
Tham gia ngày: May 2006
Nơi Cư Ngụ: Huế
Bài gửi: 26
:
Send a message via Yahoo to Hard
Hi,
CCS là một trình biên dịch cự kỳ dễ sử dụng, hỗ trợ hầu hết các hàm giúp người lập trình nhanh chóng phát triển ứng dụng. Nếu các bác muốn học thì chỉ việc cài lên, mở một ví dụ bất kỳ rồi bấm phím F1 để biết thêm chi tiết. Nếu bác nào đã từng làm việc với ngôn ngữ C thì chỉ cần 1 tuần là có thể làm chủ được CCS và dùng CCS để phát triển mọi ứng dụng.
Đối với lập trình phần mềm thì ai cũng bắt đầu bằng chương trình "Hello" còn đối với lập trình VDK thì ai cũng bắt đầu bằng chương trình "BlinkLed". Đối với CCS nếu viết chương trình BlinkLed sử dụng các hàm dựng sẵn (build in) của nó thì coi như là đã đi được 1/2 chặng đường. Tiếp theo là chỉ việc bấm phím F1 để phát triển ứng dụng thôi.
Thân ái.
Hard vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 19-10-2009, 05:42 PM   #2
Rbm_13
Nhập môn đệ tử
 
Tham gia ngày: Oct 2009
Bài gửi: 2
:
Help me??? Mình đang dùng CCSC 4.084, phiên bản này cho phép nạp chíp trực tiếp, bạn nào đã sử dụng thì giúp mình dùng với....
Rbm_13 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 21-10-2009, 11:42 AM   #3
vungchua
Nhập môn đệ tử
 
Tham gia ngày: Sep 2006
Bài gửi: 1
:
Hi Rbm_13
Bạn sử dụng CCSC trong MPLAB IDE sẽ có nhiều lựa chọn cho các kit nạp. Mình đang sử dụng bản CCSC này và chỉ thấy nó cho phép kết nối với ICD.
vungchua vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 06-11-2009, 11:13 AM   #4
nhamdtk4
Đệ tử 3 túi
 
nhamdtk4's Avatar
 
Tham gia ngày: Feb 2009
Bài gửi: 47
:
Code:
#BIT TMR0I=0X0B.2
- Đặt tên cho địa chỉ 0x0B.2 trong RAM là: TMR0I (Đây chính là địa chỉ cờ ngắt của timer0).
Trích:
Nguyên văn bởi meovang View Post
nếu bây giờ mình cần cho chân nhận nút bấm là chấn khác của PORTA thì sao? Giả sử là chân RA5.
- Còn chỗ này thì bạn đã nhầm: Đây là CT đếm xung chân RA4 là chân nhận xung ngoài của timer0 nên khi dùng timer0 đếm xung thì làm sao mắc vào RA5 đc.
nhamdtk4 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 10-11-2009, 06:32 PM   #5
nhamdtk4
Đệ tử 3 túi
 
nhamdtk4's Avatar
 
Tham gia ngày: Feb 2009
Bài gửi: 47
:
Trích:
Nguyên văn bởi meovang View Post
dùng 2 button hiển thị trên led 7 đoạn, một tăng một giảm được không
Muốn làm đc như vậy thì CT cần nhận biết đc phím nào đc bấm, cách dễ dàng nhất đó là dùng ngắt ngoài (hoặc ngắt RB) và ADC. Bạn đọc cách sử dụng tập lệnh của 2 modul này thì sẽ giải quyết đc thôi, có j thì cứ hỏi mọi người sẽ giúp bạn.
Chúc thành công!
nhamdtk4 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 18-11-2009, 08:51 AM   #6
hangocminh1989
Đệ tử 6 túi
 
Tham gia ngày: Apr 2009
Bài gửi: 132
:
em vẫn chưa khai báo được cái nút nhấn,hum ny em không mang theo code và cái sơ đồ,cả nhà có ai đã làm thành công nhiều về vấn đề này xin giúp đỡ em với,có code và sơ đồ luôn thi càng tốt,hic,mệt cái này quá,
thanks
hangocminh1989 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 18-11-2009, 09:31 AM   #7
nhamdtk4
Đệ tử 3 túi
 
nhamdtk4's Avatar
 
Tham gia ngày: Feb 2009
Bài gửi: 47
:
Trích:
Nguyên văn bởi hangocminh1989 View Post
em vẫn chưa khai báo được cái nút nhấn,hum ny em không mang theo code và cái sơ đồ,cả nhà có ai đã làm thành công nhiều về vấn đề này xin giúp đỡ em với,có code và sơ đồ luôn thi càng tốt,hic,mệt cái này quá,
thanks
It's here:
Code:
#include<16f877a.h>
#fuses nowdt,hs,noprotect,nodebug
#use delay(clock=20M)

#bit button2   =0x008.2
#bit button1   =0x008.0

void main()
{
   int a=5;
   set_tris_b(0x00);
   set_tris_d(0xff);
   output_b(0);
   while(true)
   {
      if(button1) {delay_ms(40); while(button1){}; a++;}
      if(button2) {delay_ms(40); while(button2){}; a--;}      
      output_b(a);
   }
}
File Kèm Theo
File Type: rar Button_T_G_16F.rar (13.8 KB, 52 lần tải)

thay đổi nội dung bởi: nhamdtk4, 18-11-2009 lúc 09:37 AM.
nhamdtk4 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 25-11-2009, 09:42 AM   #8
ngoyeungoc
Nhập môn đệ tử
 
Tham gia ngày: Nov 2007
Bài gửi: 8
:
Dùng PIC điều khiển động cơ bước

Chào mọi người !Mình đang viết chương trình điều khiển Step Motor nhưng đang mắc kẹt lại ở chỗ này không tìm được cách giải quyết mấy ngày nay rồi.Đã cố gắng nhưng không ra nên rất mọi người giúp đỡ mình với.Đây là code của mình
Code:
#include <16F877A.h>
#fuses NOWDT,PUT,XT,NOPROTECT
#use delay(clock=4000000)
#use fast_io(b)
#byte portb=0x06
#byte intcon=0x000B
#bit RB4=portb.4
#bit RB5=portb.5
#bit RB6=portb.6
#bit RB7=portb.7
#bit RBIF=intcon.0 //dinh nghia co ngat RB
#bit RBIE=intcon.3 //dinh nghia bit cho phep ngat RB
int a=0x11,speed=1000;
// Chuong trinh ngat
#int_RB
void ngat_RB()
{
if((RBIF)&&(RBIE)) 
   { 
      //Quay nguoc chieu kim dong ho
      {
      if(RB4==0)
         while (true)
            {
               rotate_left(&a,1);
               portb=a;
               delay_ms(1000);
            }
          
      }      
      //Quay cung chieu kim dong ho
      {
      if(RB5==0)
         while (true)
            {
               rotate_right(&a,1);
               portb=a;
               delay_ms(1000);
            } 
      }
      //Quay nguoc chieu kim dong ho nhanh dan
      {
      if(RB6==0)
         {
            speed=-50;
            while (true)
               {
                  rotate_left(&a,1);
                  portb=a;
                  delay_ms(speed);
               }
         } 
      }
      //Quay cung chieu kim dong ho nhanh dan
      {
      if(RB7==0)
         {
            speed=-50;
            while (true)
               {
                  rotate_right(&a,1);
                  portb=a;
                  delay_ms(speed);
               }
         } 
      }
   RBIF=0; //Xoa co ngat RB      
   }
}
// Chuong trinh chinh
main()
{
set_tris_b(0xF0);
portb=0x0F;
enable_interrupts(global);
enable_interrupts(int_RB);
ext_int_edge(H_to_L);
while(true)
   {
  
   }
}
Nội dung của bài mình là điều khiển chiều quay và tốc độ của động cơ(mình đã chú thích trên đoạn code).Lỗi mình gặp phải là khi mình ấn SW để động cơ quay nhanh dần thì nó quay nhanh thật nhưng nhấn nữa thì tốc độ không tăng nữa mà vẫn giữ nguyên tốc độ.Các bạn có thể giúp mình sữa lại sao cho mỗi lần mình nhấn SW để tăng tốc độ động cơ thì nó tăng dần .Và mình hỏi thêm 1 điều nữa sao mỗi lần mình cho quay cùng chiều đồng hồ thì lúc đầu nó quay ngược chiều một bước rồi mới quay cùng chiều(và ngược lại).Có cách nào khắc phục không giup mình với.
Mình cảm ơn các bạn nhiều.
Mình còn file mô phỏng mà không biết upload lên diễn đàn sao cả,đành up lên mediafire vậy.Mong các bạn chỉ bảo thêm.
Link download :

thay đổi nội dung bởi: ngoyeungoc, 25-11-2009 lúc 10:12 AM.
ngoyeungoc vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 30-11-2009, 10:29 PM   #9
ngoyeungoc
Nhập môn đệ tử
 
Tham gia ngày: Nov 2007
Bài gửi: 8
:
Ui,các bạn đâu rồi??? Sao không thấy ai giúp đỡ mình hết dzậy! Mình đang rất cần...Help me!
ngoyeungoc vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 01-12-2009, 03:47 AM   #10
0903579509
Đệ tử 4 túi
 
Tham gia ngày: Mar 2007
Nơi Cư Ngụ: Da Nang
Bài gửi: 69
:
Trích:
Nguyên văn bởi ngoyeungoc View Post
Ui,các bạn đâu rồi??? Sao không thấy ai giúp đỡ mình hết dzậy! Mình đang rất cần...Help me!
Tôi không hiểu lắm về Code của bạn, nhưng tôi thấy với đoạn code trên, vi điều khiển không bao giờ thoát khỏi chương trình ngắt khi chạy vòng lặp while(1). Thêm vào đó ngắt xãy ra rất nhanh, chỉ cần một động tác nhấn phím, ngắt đã xãy ra nhiều lần do rung phím, kết quả hàm delay_ms() trở thành giá trị tối thiểu -> chỉ nhấn 1 lần tốc độ động cơ đã lên tối đa.
Thân!
0903579509 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 08-12-2009, 01:44 PM   #11
vinhlec4
Banned
 
Tham gia ngày: Dec 2009
Bài gửi: 65
:
mình đang cân tập lệnh trong ccs để viết chương trình đây nhung không biết lam sao. ai có cho minh với?
cho mình hoi với:#FUSES NOWDT , HS , NOPROTECT
dòng tren co nghĩa là j? lam sao biết các chế độ đó
vinhlec4 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 08-12-2009, 01:46 PM   #12
vinhlec4
Banned
 
Tham gia ngày: Dec 2009
Bài gửi: 65
:
ai co đã dùng pic8f4331 roi chỉ dạy em với? làm sao để viết chuong trình pwm 4331 day?vì mình chưa biết tập lệnh mà:
các bác dạy e với
vinhlec4 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 11-12-2009, 07:32 AM   #13
ngoyeungoc
Nhập môn đệ tử
 
Tham gia ngày: Nov 2007
Bài gửi: 8
:
Question

Không biết mình hỏi không rõ ràng hay các cao thủ ít vào luồng này nữa hay sao mà chẳng thấy ai giúp mình hết vậy?Tại mình đang làm đồ án về điều khiển động cơ bước với 5 switch:
SW1: stop
SW2: quay cùng chiều kim đồng hồ(KDH).
SW3: quay ngược chiều KDH.
SW4: quay cùng chiều KDH có tốc độ tăng dần mỗi lần ấn.
SW5: quay ngược chiều KHD tốc độ tăng dần sau mỗi lần ấn.
Mình mới tìm hiểu về PIC, mình đã tự tìm hiểu, đã cố gắng lập trình nhưng chỉ làm được 3 điều khiển đầu tiên, điều khiển tốc độ động cơ tăng dần mình chưa làm được.Vì sắp bảo vệ đồ án rồi nên mình rất mong các bạn có thể giúp mình.Mình không hi vọng các bạn sẽ làm tất cả cho mình: viết code,vẽ mạch,...(phải có cái gì đó của mình nữa chứ), mình chỉ mong các bạn có thể hướng dẫn cho mình cách dùng chức năng PWM của con PIC để điều khiển tốc độ tăng dần cho step motor.Rất mong các bạn có thể giúp mình sớm sớm.Thời gian không còn nhiều nữa.Mình thực sự bó tay rồi.Chưa có tiền mua mạch nạp nữa chứ,hỏi mượn nhưng chờ đứa bạn làm xong mới cho mình mượn.Mình cảm ơn các bạn rất nhiều.
ngoyeungoc vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 13-12-2009, 10:59 AM   #14
8051topic
Đệ tử 4 túi
 
Tham gia ngày: Apr 2006
Bài gửi: 71
:
Hic, mình cũng đang tìm hiểu về PWM (CCP), mình có đoạn code này bạn thử xem sao nha.
Code:
   // Setup the CCP1 for PWM
   setup_ccp1(CCP_PWM);
   setup_timer_2(T2_DIV_BY_1, 255, 1);
   set_pwm1_duty(100);    //cái này là giá trị duty, bạn thay đổi giá trị này nhé, từ 0 -> 255
Về mạch nạp bạn có thể làm mạch PG2C để dùng, mạch này đơn giản lại không cần chip Master chỉ có điều PC của bạn phải có cổng COM, cáp USB-COM không dùng được với mạch này nha.
Chúc bạn sớm hoàn thành đề tài.
8051topic vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 14-12-2009, 09:59 AM   #15
lkkt_group
Nhập môn đệ tử
 
Tham gia ngày: Sep 2008
Bài gửi: 3
:
Unhappy Giup xem xet loi trong code giup em voi

Em đang làm mạch điện điều khiển motor bằng ngắt timer.Em đang dùng Pic C 4.069Em dùn. g timer0 de ngat. Tuy nhiên không hiểu sao không thấy hiển thị ra led sau thời gian 6 giay em đã set (đã test thử các chương trình in put output mấy cổng đó thấy ok) chắc tại ngắt timer có vấn đề nhưng không tìm ra lỗi. Các sư huynh nào biết tham khảo rồi chỉ dùm với. Cảm ơn rất nhiều http://www.picvietnam.com/forum/images/icons/icon9.gif

Em gửi file lập trình và sơ đồ mạch cho các sư huynh tham khảo

http://www.4shared.com/file/17243005...ter_PicC1.html
http://www.4shared.com/file/17243006...lap_trinh.html
http://www.4shared.com/file/17243005..._roaster1.html

Các sư huynh chịu khó down về nghen
lkkt_group vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lời

Ðiều Chỉnh
Xếp Bà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à 12:46 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