PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > Cơ bản về vi điều khiển và 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

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

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 26-07-2008, 10:06 AM   #16
quocanh_bmt
Nhập môn đệ tử
 
Tham gia ngày: Jul 2008
Bài gửi: 1
:
có bạn nào co tài liệu lập trình cho pic bằng tiếng việt ko
quocanh_bmt vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 27-07-2008, 05:12 AM   #17
minhsondaklak
Đệ tử 5 túi
 
Tham gia ngày: Jan 2008
Bài gửi: 96
:
Tìm Pic

Trích:
Nguyên văn bởi dark_electron View Post
Bác này ở đâu vậy? Nếu mua ko được liên hệ tui nhé Tui ở Nha Trang nè. 16F84 cũng có số chân như 16F628A mà con kia lại thêm được nhiều chức năng hơn, giá cả cũng ngang nhau sao ko xài 16F628A cho nó sướng?
Có gì liên lạc qua mail: hhai.le@gmail.com
Xin chào và cám ơn Dark_electron nhé!
Từ sáng hôm qua mình đã nhờ mua ở Đà Nẵng được 2 con Pic 16F84 rồi, giá hơi cao (hàng hiếm mà) thế mới đau chứ ! Bác là nhà cung cấp hay dân chơi Pic vậy ? Em xin liên hệ Bác sau nhé.
Trao đổi với các bác mới thấy mình lạc hậu quá !!!

Mình ở Đăk Lăk, mail: minhsondaklak@yahoo.com. Hẹn gặp lại !

thay đổi nội dung bởi: minhsondaklak, 27-07-2008 lúc 06:36 AM.
minhsondaklak vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 27-07-2008, 05:17 AM   #18
minhsondaklak
Đệ tử 5 túi
 
Tham gia ngày: Jan 2008
Bài gửi: 96
:
Thiết kế mạch có dùng pin dự phòng cho Pic

Có Huynh nào đã làm mạch có dùng Pin dự phòng cho Pic không, chỉ giúp với, cả phần cứng lẫn phần mềm. Có gì xin cám ơn trước !
đ/c mail: minhsondaklak@yahoo.com, mong hồi âm.

thay đổi nội dung bởi: minhsondaklak, 27-07-2008 lúc 05:30 AM.
minhsondaklak vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 27-07-2008, 09:34 AM   #19
lion
Đệ tử 6 túi
 
lion's Avatar
 
Tham gia ngày: May 2007
Bài gửi: 127
:
bác tham khao mach này nhé :

mạch này sẽ tự động cấp điện = PIN khi mất nguồn cấp chính,
ngược lại khi có nguốn cấp chính thì nguồn từ PIN bị vô hiệu hóa
File Kèm Theo
File Type: rar NGUON DU PHONG CHO PIC.rar (9.5 KB, 245 lần tải)

thay đổi nội dung bởi: lion, 27-07-2008 lúc 09:18 PM.
lion vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 27-07-2008, 09:59 AM   #20
minhsondaklak
Đệ tử 5 túi
 
Tham gia ngày: Jan 2008
Bài gửi: 96
:
Định dạng file MDI

Cám ơn Lion!
Mà file MDI mình chưa xem được, nó là file hình hay file text vậy, bạn có thể chỉ cách xem được file này với.
minhsondaklak vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 27-07-2008, 09:12 PM   #21
lion
Đệ tử 6 túi
 
lion's Avatar
 
Tham gia ngày: May 2007
Bài gửi: 127
:
nó là file " Microsoft Office Document Image" . bạn cứ cài Microsoft Office Word 2003 (2007)
đầy đủ ra là đọc được
lion vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 31-07-2008, 12:23 PM   #22
minhsondaklak
Đệ tử 5 túi
 
Tham gia ngày: Jan 2008
Bài gửi: 96
:
Gởi Lion

Trích:
Nguyên văn bởi lion View Post
Trích dẫn ý kiến of bác minhsondaklak : " Mình lên PicVietnam mới làm quen với PIC, vớ được cái "lịch vạn niên" của bác Thép, thế là theo MikroC luôn (Tất nhiên cũng đã qua CCS để học Pic trên diễn đàn này rồi mới đọc được cái "lịch vạn niên" ấy chứ ! mà mình thấy MikroC nó hổ trợ sẵn các hàm I2C sướng quá, mần luôn). "


em chưa tìm hiểu về phần mềm MikroC nên ko biết nó hỗ trợ những hàm gì .
còn CCS bản 4.068 hỗ trợ đầy đủ các hàm thoải mái cho các bác dùng .
Ừ nhỉ, xin lỗi mọi người vì lúc đó mình cũng chưa kịp biết rõ về trình dịch nào cả, chỉ thấy đề tài "lịch vạn niên" bác Thép trình bày dễ tiếp thu, áp dụng cho người mới bắt đầu (trong khi đó mình đang làm bài LCD, phải loay hoay tìm file cấu hình LCD đưa vào mới xong, còn I2C thì chỉ seach được toàn hợp ngữ, đọc hoa cả mắt).
Mà cơ bản cũng giống nhau: kỹ năng dùng C và cùng thao tác trên Pic

Àm mà sao cả tuần rồi mình không thể truy cập vào Picvietnam thế nhỉ, không biết có chuyện gì không ? đằng ấy có bị như thế không. Cảm ơn nhiều về mạch nguồn dự phòng cho PIC !
minhsondaklak vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 31-07-2008, 12:31 PM   #23
minhsondaklak
Đệ tử 5 túi
 
Tham gia ngày: Jan 2008
Bài gửi: 96
:
Tài liệu tiếng việt cho Pic

Trích:
Nguyên văn bởi quocanh_bmt View Post
có bạn nào co tài liệu lập trình cho pic bằng tiếng việt ko
Trên này mà không có thì ở đâu có ? bạn phải chịu khó tìm xem một tí đi. Vào được đây rồi thì cứ bình tỉnh mà nghiên cứu về Pic nhé !
minhsondaklak vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 04-08-2008, 07:25 AM   #24
minhsondaklak
Đệ tử 5 túi
 
Tham gia ngày: Jan 2008
Bài gửi: 96
:
Talking Ứng dụng nhỏ với Pic _ Chỉ sử dụng Timer0

Theo gợi ý của anh Namqn, mình làm lại mạch điều khiển cho cái bơm nước hồ cá, dùng Pic 18 chân, chỉ dùng timer0 - vừa rẻ vừa gọn, rất cạnh tranh (he he).



A. Hoat dong:
- Dieu khien : Ban dem OFF. Ban ngay ON 10 phut, OFF 10 phut (PORTA.F3)
- Moi phut bao gio 1 lan, duoi dang ma nhi phan BCD, xuat tren cong B.
- Chinh gio: Dung 19 gio, nhan vao nut SET_19h de lay 19h cho dong ho, thay vi dung LCD
B.Cau hinh phan cung: Pic 16F84A (hoặc Pic 16f88/16f628A với CMCON = 0x07), Thach anh 4Mhz
- Su dung Timer0 lam dong ho, bo tri mach nguon du phong cho Pic = 3v.
- PORTA.F0 la ngo vao noi voi nut nhan SET_19h, cho dong ho ve dung 19 h
- PORTA.F1 noi voi den bao giay
- PORTA.F2 noi voi den bao phut
- PORTA.F3 la ngo ra dieu khien Relays, dong mo thiet bi may bom (ON = 0, OFF = 1)
- PORTB ngo ra 8 bit bao gio, phut dang ma nhi phan BCD
- Ngat Time0: Cung cap xung 65,5 ms cho dong ho.
Sau moi giay nhay den giay, 1 phut cho nhay led phut va xem xet ON_OFF chan PORTA.F3

C. Giai thich cac bien:
- gio, phut : cac bien luu thoi gio
- flag: co bao theo chu ky phut, dung de xu ly cong viec ngoai ham ngat mikroC
- delay1s, delay1p: bien dem ngat tran, tinh chu ky giay, phut
Trình dịch MikroC:

Code:
unsigned short tem1, tem2, phut, gio, flag, delay1s = 0, delay1p = 0; 

void INIT_MAIN() // Khoi tao cac PORT, NGAT, I2C
{
/* Khoi tao cong B -----------------------------------------------------------*/
  TRISB = 0x00;             
  PORTB = 0x00;
/* Khoi tao cong A ----------------------------------------------------*/
  TRISA = 0x01;          
  PORTA = 0x08;          
/* Khoi tao Timer0 ---------------------------------------------*/
  INTCON = 0b10100000; 
  OPTION_REG = 0b10000111;  
  TMR0 = 0x00;       //Xoa thanh dem Timer0 (cho dem tu 0 den 256 -> 256 chu ky may)
  //Voi Fta=4Mhz -> Chukymay =4/4Mhz=1 us, hesochia = 256 -> T =1x256x256=65536 us =~ 65,5 ms
  //Vay ta can: 1000 / 65,5 =` 15 lan tran de co 1 s, 15 x 60 = 900 lan tran de co 1 phut
}

void HIEN_THI()     //Dung hien thi gio hien hanh, dang ma nhi phan BCD
{   
        PORTB = Dec2Bcd(gio); Delay_ms(5000); PORTB = 0; Delay_ms(1000);   
        PORTB = Dec2Bcd(phut); Delay_ms(5000); PORTB = 0; Delay_ms(1000);   
}

void SET_19h()  //Set dong ho ve 19 gio 00 phut, khi co nguoi bam SET_19h
{
     gio = 19; phut = 0;
     HIEN_THI();
}

void ON_OFF()   // cho ON, OFF chan dieu khien PORTA.F3:
  //Neu ban ngay (tu 6h den 20h) dong thoi so hang chuc cua phut la so chan (Mod 2 bang 0)thi ON, la so le (Mod 2 bang 1) thi OFF (ON 10 phut, OFF 10 phut)
  //Neu ban dem (21h den 5h)thi OFF
{
        if (6 <= gio && gio <= 21)      // An dinh thoi gian ON trong ngay
              {
              if ((phut / 10) % 2 == 0) 
                                        
                        {if (PORTA.F3 == 1) PORTA.F3 = 0;}   
              else
                        {if (PORTA.F3 == 0) PORTA.F3 = 1;}   
              }
        else                                             
             {if (PORTA.F3 == 0) PORTA.F3 = 1;}     
}

void SET_PHUT()    //Xu ly moi chu ky 1 phut
{
      PORTA.F2 = 1; Delay_ms(2000);  PORTA.F2 = 0;  //Lam den nhay theo nhip 1 phut
      phut++ ;
      if (phut == 60) 
      {
                gio++;
                if (gio == 24) gio = 0;
                phut = 0;
      }
}

void interrupt()      //Chuong trinh NGAT
{
     if (INTCON.T0IF)              
     {
          delay1s++;               
          if (delay1s == 15)
          {
                 delay1p++;
                 PORTA.F1 = ~PORTA.F1;  //Lam den nhay theo nhip 1 giay
                 delay1s = 0;
          }
          if (delay1p == 60)      //Neu du 900 lan tran = (60 x 15) x 65,5ms ~ 1 phut
          {
                 flag = 1;          //Tin hieu: Da du 1 phut -> SET_PHUT()
                 delay1p = 0;     //Sau khi bat co, xoa ve 0,  dem lai tu dau
          }
          INTCON.T0IF = 0;         //Xoa co ngat time0
      }
}                                //Het interrup

void MAIN() //CHUONG TRINH CHINH
{
  INIT_MAIN();                    //khoi tao cac PORT, NGAT, I2C
  Delay_ms(100);
  SET_19h();
  while (1)
        {
        if (flag == 1) {SET_PHUT(); HIEN_THI();ON_OFF(); flag = 0;} 
        if (PORTA.F0 == 0) SET_19h(); 
        }
}
Kèm theo file mô phỏng trên Proteus.
Nếu kiếm được ds1307, thì có thể khai thác thêm I2C bằng phần mềm cho em Pic 18 chân, coi như xài hết công suất (hết chân Pic) rồi nhé !
I2C mềm với MikroC đây: http://www.picvietnam.com/forum/showthread.php?t=2671
File Kèm Theo
File Type: rar Ung dung nho voi PIC _ Timer0.rar (67.7 KB, 195 lần tải)

thay đổi nội dung bởi: minhsondaklak, 19-09-2008 lúc 04:07 PM. Lý do: Khung code
minhsondaklak vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 08-08-2008, 06:26 PM   #25
minhsondaklak
Đệ tử 5 túi
 
Tham gia ngày: Jan 2008
Bài gửi: 96
:
Làm sao để cho xuất dữ liệu trên PortA

Mình nạp chương trình trên (viết cho Pic 16f84A, xuất dữ liệu trên PortA) nạp cho Pic 628A, Pic 16f88 thì thấy chương trình vẫn chạy nhưng không xuất dữ liệu ra PortA được.
Loay hoay mãi thì mới ngộ ra: Riêng chân RA4 thì có thể cho xuất dữ liệu nếu có mắc thêm điện trở kéo lên, như lý thuyết đã nêu. Còn lại các chân khác có kéo lên cũng không xuất dữ liệu được.
Xem sơ đồ mạch bên trong PortA thấy cũng tương tự PortC, trong khi PortC thì xuất bình thường.
Huynh nào biết xử lý thế nào để có thể dùng các chân của PortA xuất dữ liệu, xin chỉ giúp.
minhsondaklak vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 08-08-2008, 09:38 PM   #26
namqn
Trưởng lão PIC bang
 
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
Send a message via Yahoo to namqn
Trích:
Nguyên văn bởi minhsondaklak View Post
Mình nạp chương trình trên (viết cho Pic 16f84A, xuất dữ liệu trên PortA) nạp cho Pic 628A, Pic 16f88 thì thấy chương trình vẫn chạy nhưng không xuất dữ liệu ra PortA được.
Loay hoay mãi thì mới ngộ ra: Riêng chân RA4 thì có thể cho xuất dữ liệu nếu có mắc thêm điện trở kéo lên, như lý thuyết đã nêu. Còn lại các chân khác có kéo lên cũng không xuất dữ liệu được.
Xem sơ đồ mạch bên trong PortA thấy cũng tương tự PortC, trong khi PortC thì xuất bình thường.
Huynh nào biết xử lý thế nào để có thể dùng các chân của PortA xuất dữ liệu, xin chỉ giúp.
Ở PIC16F84A thì các chân RA0..RA3 chỉ làm nhiệm vụ xuất/nhập số (digital), còn ở PIC16F628A hay PIC16F88 thì các chân này còn làm nhiệm vụ ngõ vào tương tự (analog) cho các module so sánh. Do đó, để dùng các chân RA0..RA3 của PIC16F628A, chẳng hạn, như những ngõ vào/ra số, cần tắt các module so sánh, bằng cách đặt 3 bit thấp nhất của thanh ghi CMCON lên mức '1' (OR thanh ghi CMCON với 0x07 chẳng hạn).

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
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 13-09-2008, 09:30 PM   #27
minhsondaklak
Đệ tử 5 túi
 
Tham gia ngày: Jan 2008
Bài gửi: 96
:
Nhập dữ liệu số vào PORTA ?

Anh Nam ơi !
Theo hướng dẫn của anh, em đặt CMCON = 0x07 thì cho PORTA xuất được dữ liệu số rồi. Em nghĩ thế là xong cái vụ xuất nhập qua PORTA, ai dè hôm nay em gặp trường hợp cần nhập nhập dữ liệu số vào PORTA, đặt CMCON = 0x07 vẫn không nhập được anh à.
Vậy phải làm sao để nhập được dữ liệu số vào PORTA hả anh ?
Mong được anh hướng dẫn thêm, xin cám ơn anh rất nhiều !

----------------------------------------------------
Update 19/9/2008: Đã giải quyết bằng cách đặt ADCON1 = 0x06;

thay đổi nội dung bởi: minhsondaklak, 19-09-2008 lúc 03:49 PM.
minhsondaklak vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 14-09-2008, 10:15 AM   #28
chiataytuday
Nhập môn đệ tử
 
Tham gia ngày: Jun 2008
Bài gửi: 5
:
chào bạn!
cho mình hỏi cách dùng ngắt trong PIC mình dùng trình dịch SDCC trong LINUX, bạn có biết cách dùng SDCC hay là tài liệu không? cho mình với.
thanks
chiataytuday vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 14-09-2008, 11:54 AM   #29
minhsondaklak
Đệ tử 5 túi
 
Tham gia ngày: Jan 2008
Bài gửi: 96
:
Ngắt

Mỗi trình dịch mỗi khác, mình dùng MikroC nên không giúp được cho bạn rồi.
Bạn xem trong Hepl của nó, có thể cũng như CCS hoặc MikroC thôi.
MikroC thì chỉ có 1 hàm ngắt chung, tên hàm ngắt phải đúng theo chuẫn.
CCS thì mỗi ngắt 1 hàm, tên hàm ngắt đặt tuỳ ý nhưng trước mỗi hàm ngắt phải có dòng khai báo tương ứng, theo chuẫn.
Chúc vui !
minhsondaklak 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:27 AM.


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