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 Tìm Kiếm Bài Trong Ngày Ðánh Dấu Ðã Ðọc 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 11-11-2009, 11:34 PM   #1
Delfy_Coltech
Đệ tử 4 túi
 
Delfy_Coltech's Avatar
 
Tham gia ngày: Nov 2008
Nơi Cư Ngụ: Hanoi, Vietnam
Bài gửi: 78
:
Bạn post cái Project lên đây cho mọi người cùng kiểm tra nào!
Thực mục sở thị sẽ dễ bắt lỗi hơn đó. :')
__________________
Mechatronics Department
University of Engineering and Technology, VNUH.
Delfy_Coltech vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 11-11-2009, 11:55 PM   #2
pk178
Đệ tử 5 túi
 
Tham gia ngày: Jan 2009
Bài gửi: 100
:
Đây là code của mình :

Code:
//==============================================================================
// Project 3
// Author : pk
// Date 26/10/2009
// Description : ...........
/* Function :
      - Su dung ngat ngoai RB0 de cho phep viec nhap du lieu     
*/      
//==============================================================================

#include <16f877A.h>
#device *=16, ADC = 10
#use delay(clock = 4000000)
//#include <LCD420.c>
//#include <lcd4x20.c>
#include <lcd.h>
#include <keypad_input.c>

#FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT

#use fast_io(d)
#use fast_io(b)
#use fast_io(c)

int32 so_bao;     // So bao dat
int khoi_luong;   // Khoi luong moi bao
int32 so_bao_ok;  // So bao da can xong

//==============================================================================

void hien_thi_thong_so(){  // Hien thi cac thong so tren LCD
   lcd_putc("\f");
   lcd_putc("SO LUONG : ");
   //lcd_putc("\n");
   lcd_put_int(so_bao);
   lcd_putc("\n");
   
   lcd_putC("KHOI LUONG : ");
   lcd_put_int(khoi_luong);   
   
/*   lcd_putc("SO BAO DA XUAT : ");
   lcd_put_int(so_bao_ok);
   lcd_putc("\n");
   
   //lcd_putc("KHOI LUONG LIEU TRONG THUNG : ");
*/   
}

//==============================================================================

#int_ext
void interrupt_rb0(){  
   
   lcd_putc("\f");
   
   //Nhap so bao yeu cau  

   lcd_putc("SO LUONG : ");
   so_bao = input_key();
   while(!so_bao){         // Neu khong nhap phim nao => nhap lai
      lcd_putc("\f");
      lcd_putc("SO LUONG : ");      
      so_bao = input_key();
   }           
   lcd_putc("\f");
   
   // Nhap khoi luong moi bao
   
   lcd_putc("KHOI LUONG : ");
   khoi_luong = input_key();
   while(!khoi_luong){         // Neu khong nhap phim nao => nhap lai
      lcd_putc("\f");
      lcd_putc("KHOI LUONG : ");
      khoi_luong = input_key();
   }         
   lcd_putc("\f");
   hien_thi_thong_so();
}

//==============================================================================

void khoi_dong(){
   int i;
   
   lcd_init();
   lcd_putc("STARTING");
   for(i = 1; i < 9; i++){
      lcd_putc(".");
      delay_ms(100);
   }
   lcd_putc("\f"); 

   // Nhap gia tri lan dau  
   
   lcd_putc("\f");
   
   //Nhap so bao yeu cau 

   lcd_putc("SO LUONG : ");
  // lcd_putc("\n");
   so_bao = input_key();
   while(!so_bao){         // Neu khong nhan phim nao => nhap lai
      lcd_putc("\f");
      lcd_putc("SO LUONG : ");      
      so_bao = input_key();
   }           
   lcd_putc("\f");
   

   lcd_putc("KHOI LUONG :");
  // lcd_putc("\n");
   khoi_luong = input_key();
   while(!khoi_luong){         // Neu khong nhan phim nao => nhap lai
      lcd_putc("\f");
      lcd_putc("KHOI LUONG :");
      //lcd_putc("\n");
      khoi_luong = input_key();
   }         
   lcd_putc("\f");
      
   hien_thi_thong_so();
}

//==============================================================================

void main(){  
   
   set_tris_C(0x07); 
   set_tris_D(0x00);
   set_tris_B(0x01);
  
   output_b(0x00);
   setup_adc(ADC_CLOCK_DIV_32);   // sample time = IC clock 
   setup_adc_ports(AN0_AN1_AN3);        // Set PIN_A0 as analog input 1  
   enable_interrupts ( int_ext ) ; 
   enable_interrupts ( global ) ; 
   
   khoi_dong();
   lcd_putc("\n");
  
  
}

//==============================================================================
Hàm keypad_input là để quyét phím, nó sẽ trả về giá trị sau khi nhập xong !!!

Rất mong được các bạn giúp đỡ. Xin cảm ơn rất nhiều !!!
pk178 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 12-11-2009, 12:10 AM   #3
Delfy_Coltech
Đệ tử 4 túi
 
Delfy_Coltech's Avatar
 
Tham gia ngày: Nov 2008
Nơi Cư Ngụ: Hanoi, Vietnam
Bài gửi: 78
:
Exclamation Lưu ý thứ tự code

Nếu bạn gửi kèm cả file mạch mô phỏng để check thì tốt!
Bạn thử chuyển hàm khoidong() lên trước ngat #int_ext xem sao!
(Để hàm ngắt ngay trên hàm main()).
__________________
Mechatronics Department
University of Engineering and Technology, VNUH.
Delfy_Coltech 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à 10:54 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