![]() |
|
Tài trợ cho PIC Vietnam |
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 |
![]() |
|
Ðiều Chỉnh | Xếp Bài |
|
![]() |
#1 |
Đệ tử 4 túi
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. |
![]() |
![]() |
![]() |
#2 |
Đệ 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"); } //============================================================================== Rất mong được các bạn giúp đỡ. Xin cảm ơn rất nhiều !!! |
![]() |
![]() |
![]() |
#3 |
Đệ tử 4 túi
Tham gia ngày: Nov 2008
Nơi Cư Ngụ: Hanoi, Vietnam
Bài gửi: 78
: |
![]() 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. |
![]() |
![]() |
![]() |
Ðiều Chỉnh | |
Xếp Bài | |
|
|