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 03-01-2009, 11:54 AM   #16
dientudong
Đệ tử 5 túi
 
Tham gia ngày: Oct 2008
Bài gửi: 95
:
à mình hiểu rồi,phải đặt lệnh goto label trong một hàm i f
dientudong vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 03-01-2009, 12:44 PM   #17
dientudong
Đệ tử 5 túi
 
Tham gia ngày: Oct 2008
Bài gửi: 95
:
Các bạn à , mình muốn dùng 1 nút nhấn , nhấn lần 1 thì thực hiện cộng việc 1,nhấn lần 2 thì thực hiện công việc 2, nhấn lần 3 thì thực hiện công việc 3.Mình chưa biết giải thuật thế nào .Mong các bạn chỉ bảo.
dientudong vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 03-01-2009, 07:00 PM   #18
hung_nguyen
Nhập môn đệ tử
 
Tham gia ngày: Aug 2008
Bài gửi: 6
:
nhưng sau khi nhất lần 3 thì chip có cần reset lại không? bạn có thể dùng hỏi vòng để kiểm tra trạng thái trên một chân nào đó được nối tới nút nhấn của bạn, khi có một thay đổi trạng thái tức là nút được nhấn thì bạn dùng một biết đếm (count chẳng hạn) tăng lên một. Sau đó dùng if kiểm tra nếu count=1 thì thực hiện công việc 1, count=2 thực hiện công việc 2...
hung_nguyen vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 04-01-2009, 08:15 PM   #19
dientudong
Đệ tử 5 túi
 
Tham gia ngày: Oct 2008
Bài gửi: 95
:
Bạn à mình thấy lệnh set_tris_b(0x00) đâu có liên quan gì tới #use fast_io(b).Mình làm nhiều ví dụ và thấy vậy.Bạn có thể cho mình thấy ví dụ nào liên quan không .
dientudong vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 05-01-2009, 05:17 AM   #20
dientudong
Đệ tử 5 túi
 
Tham gia ngày: Oct 2008
Bài gửi: 95
:
Code:
#include "C:\Program Files\PICC\Examples\hienthiso.h"
#include "C:\Program Files\PICC\Drivers\LCD.C"
#use delay(clock=20000000)
#byte portD=0x08
#byte portB=0x06
#bit RB0=0x06.0
#use fast_io(b)
#use fast_io(d)
int8 mode,i,j;
  #INT_EXT
  
      void ext_isr()
        {
          
           mode++;
           delay_ms(1);
           if(mode==3)
              {
                 mode=0;
              }
        }
    void program1();
    void program2();
void main()
{ 
    mode=0;
   set_tris_b(0b00000001);
   portB=0x00;
   set_tris_d(0);
   portD=0x00;
   
   enable_interrupts(int_ext);
   ext_int_edge(H_TO_L);
   enable_interrupts(GLOBAL);
   
   
  while(1)
     { 
       
       switch(mode)
         {
            case 1:program1();break;
            case 2:program2();break;
         }
     }
}
       void program1()
          {
            if(mode==1)
               { 
                 lcd_putc('\f');
                    for(i=0;i<5;i++)
                      {
                       lcd_init();
                       lcd_gotoxy(1,1);
                       lcd_putc("NGUYEN VAN THANH");
                       delay_ms(20);
                       lcd_gotoxy(1,1);
                       lcd_putc('\f');
                       delay_ms(20);
                       
                      }
               }
          }

void program2()
          {
            if(mode==2)
               { 
                 lcd_putc('\f');
                   for(j=0;j<5;j++)
                     {
                       lcd_init();
                       lcd_gotoxy(1,1);
                       lcd_putc("HOANG THI HOAI MY");
                       delay_ms(20);
                       lcd_gotoxy(1,1);
                       lcd_putc('\f');
                       delay_ms(20);
                     }
                  
               }
          }
Các bạn cho mình hỏi : mình dùng 1 nút nhấn(chân RB0) ,khi nhấn lần 1 thì thực hiện chương trình 1,nhấn lần 2 thì thực hiện chương trình 2,mình dùng ngắt RB0.Mình không biết là phần khai báo ngắt có vấn đề gì không ? Mong các bạn chỉ giúp !MÌnh làm cả đêm rồi mà không chạy được.
File Kèm Theo
File Type: rar lcd.rar (2.4 KB, 6 lần tải)

thay đổi nội dung bởi: namqn, 05-01-2009 lúc 05:29 AM.
dientudong vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 05-01-2009, 07:48 AM   #21
kimhuynguyen
Đệ tử 3 túi
 
Tham gia ngày: Nov 2007
Nơi Cư Ngụ: Vietnam
Bài gửi: 48
:
Trích:
Nguyên văn bởi dientudong View Post
Bạn à mình thấy lệnh set_tris_b(0x00) đâu có liên quan gì tới #use fast_io(b).Mình làm nhiều ví dụ và thấy vậy.Bạn có thể cho mình thấy ví dụ nào liên quan không .
Những khai báo này là dẫn hướng cho trình biên dịch. Bạn có thể sẽ không "cảm nhận" được sự khác biệt.

Tham khảo chi tiết thêm phần Help của CCS.
__________________
More friends more foods
kimhuynguyen vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 05-01-2009, 10:11 AM   #22
dientudong
Đệ tử 5 túi
 
Tham gia ngày: Oct 2008
Bài gửi: 95
:
còn vấn đề #20 ở trên của mình thì sao,các bạn chỉ giúp mình với
dientudong vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 05-01-2009, 10:40 AM   #23
nguyenquoctoan
Đệ tử 6 túi
 
Tham gia ngày: Nov 2007
Nơi Cư Ngụ: BK TP HCM
Bài gửi: 136
:
-set_tris_b(0x00) là lấy port b là ngõ ra, giả sử khi đọc encoder hoặc đọc adc ngõ vào kô set làm ngõ vào sao mà chạy,...(theo em là như vậy kô biết các bác như nào)
- #20 ổ chổ nào đâu kô thấy ở đâu hít
nguyenquoctoan vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 05-01-2009, 10:43 AM   #24
dientudong
Đệ tử 5 túi
 
Tham gia ngày: Oct 2008
Bài gửi: 95
:
file lcd.rar của mình và code ở trên đó mà
dientudong vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 05-01-2009, 10:48 AM   #25
dientudong
Đệ tử 5 túi
 
Tham gia ngày: Oct 2008
Bài gửi: 95
:
ý của mình là không có lệnh #use fast_io(b) thi lenh set_tris_b(0x00) van co hieu luc
dientudong vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 05-01-2009, 11:13 AM   #26
nguyenquoctoan
Đệ tử 6 túi
 
Tham gia ngày: Nov 2007
Nơi Cư Ngụ: BK TP HCM
Bài gửi: 136
:
- trong filelcd.rar có hình mô phỏng ah
- #use fast_io(b) khi trong chương trình dùng các lệng như output_low(),...nó chỉ set chỉ với lệnh, nhanh hơn so với khi không dùng chỉ thị này (trích tài liệu ccs)
- trong hàm main() bạn phải dùng hàm set_tris_x() chỉ rõ chân vào ra
-- có nghĩa là sao, bạn có thể bỏ kô ảnh hưởng tới chương trình, nhưng phải có dòng lệnh set_tris_x() để chỉ rõ chân vào ra cho pic hỉu, kô có thì chương trình kô chạy
nguyenquoctoan vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 05-01-2009, 11:22 AM   #27
dientudong
Đệ tử 5 túi
 
Tham gia ngày: Oct 2008
Bài gửi: 95
:
bạn giúp mình xem code cho mạch trong file lcd.rar.xem có vấn đề gì không
dientudong vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 05-01-2009, 11:26 AM   #28
nguyenquoctoan
Đệ tử 6 túi
 
Tham gia ngày: Nov 2007
Nơi Cư Ngụ: BK TP HCM
Bài gửi: 136
:
trong file lcd.rar kô có code chỉ có hình mô phỏng bằng protues, bạn xem lại,...
nguyenquoctoan vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 05-01-2009, 11:29 AM   #29
dientudong
Đệ tử 5 túi
 
Tham gia ngày: Oct 2008
Bài gửi: 95
:
code mình post cùng chỗ với file lcd.rar đó mà
dientudong vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 05-01-2009, 11:41 AM   #30
nguyenquoctoan
Đệ tử 6 túi
 
Tham gia ngày: Nov 2007
Nơi Cư Ngụ: BK TP HCM
Bài gửi: 136
:
code của bạn chưa chạy hay sao, bạn đã nạp và mô phỏng chưa, ở đây mình kô có điều kiện để test thử trực tiếp,
nguyenquoctoan 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à 11:16 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