![]() |
|
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ử 5 túi
Tham gia ngày: Jan 2009
Bài gửi: 100
: |
Cám ơn các bạn đã giúp đỡ !
Mình vừa sửa lại rồi, đổi hết các chân nối với LCD vào cổng D, nhưng nó vẫn báo lỗi như vậy bạn ạ !!! Đúng là trong ngắt mình có sử dụng hàm của LCD, nhưng mình nghĩ chắc ko ảnh hưởng gì cả, mình dùng thư viện of CCS thì vẫn dùng bình thường mà. Trong thiết kế of mình, bắt buộc phải sử dụng ngắt, mình ko hiểu lỗi trên là do đâu nữa !!! Rất mong các bạn giúp đỡ !!! |
|
|
|
|
|
#2 |
|
Đệ 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. |
|
|
|
|
|
#3 |
|
Đệ 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 !!! |
|
|
|
|
|
#4 |
|
Đệ 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 | |
|
|