em làm mạch đếm sản phẩm
yêu cầu như sau:
Chọn tần số thạch anh là 4Mhz
sử dụng nút nhấn để giả lập xung đếm sản phẩm (kết nối với ngõ vào điều khiển int ngắt RB0)
phải sử dụng ngắt để đếm sản phẩm (em học xong vxl vẫn không hiểu phần interrupt này )
giá trị mặc định là 00 (giá trị từ 00 - 55)
và đây là phần code của em
Trích:
#include <htc.h>
#include <pic.h>
__CONFIG(WDTDIS & PWRTEN & UNPROTECT & BORDIS & LVPDIS);
#define _XTAL_FREQ 4000000
int dem=0;
int ch,dv;
int ma;
int ma7d(int a)
{
switch(a)
{
case 0:
ma=0xC0;
break;
case 1:
ma=0xF9;
break;
case 2:
ma=0xA4;
break;
case 3:
ma=0xB0;
break;
case 4:
ma=0x99;
break;
case 5:
ma=0x92;
break;
case 6:
ma=0x82;
break;
case 7:
ma=0xF8;
break;
case 8:
ma=0x80;
break;
case 9:
ma=0x90;
break;
}
return ma;
}
void interrupt()
{
dem++;
if (dem = =56) //
dem = 0;
}
void main()
{
TRISD = 0x00;
PORTC = 0x00;
TRISC =0x00;
PORTC=0x00;
//OPTION_REG
ADON=1;
RBPU=0;
INTEDG=0;
// INTCON
/*
BIT7 GIE (Global Interrupt Enable bit) : Ngat toan cuc
=1: cho phep tat ca cac ngat
=0: Khong cho phep tat ca cac ngat
BIT6 PEIE (Pheripheral Interrupt enable bit)
=1: Cho phep tat ca cac ngat ngoai vi
=0: khong cho phep tat ca cac ngat ngoai vi
BIT5 TMROIE (Timer0 Overflow Interrupt Enable bit)
=1: Cho phep ngat Timer0
=0: Khong cho phep ngat Timer0
BIT4 INTE (RB0/INT External Interrupt enable bit)
=1: Cho phep ngat ngoai vi RB0/INT
=0: Khong cho phep ngat ngoai vi RB0/INT
BIT2 TMROIF (Timer0 Interrupt flag bit)
=1: Thanh ghi Timer0 bi tran phai xoa bang chuong trinh
=0: chua tran
BIT1 INTF RB0/INT External Interrupt Flag bit
=1: ngat RB0/INT xay ra , phai xoa co hieu bang chuong trinh
=0: Ngat RB0/INT chua xay ra
BIT0 RBIF RB Port change Interrupt Flag bit
=1: it nhat 1 chan RB4:RB7 co su thay doi trang thai, phai duoc xoa bang chuong trinh
=0: khong co su thay doi
*/
INTF=0; //XOA CO NGAT INT/RB0
INTE=1; //CHO PHEP NGAT NGOAI RB0/INT
GIE=1; //CHO PHEP NGAT TOAN CUC
while(1);
{
ch=dem/10;
dv=dem-dem*10;
PORTC=ma7d(ch);
PORTD=ma7d(dv);
}
}
|
may bao loi nhu sau:
Trích:
Error [285] C:\Documents and Settings\Administrator\Desktop\bt vxl\bai 1\bai1.c; 46.1 no identifier in declaration
Error [314] C:\Documents and Settings\Administrator\Desktop\bt vxl\bai 1\bai1.c; 46.1 ";" expected
Error [285] C:\Documents and Settings\Administrator\Desktop\bt vxl\bai 1\bai1.c; 48.1 no identifier in declaration
Warning [374] C:\Documents and Settings\Administrator\Desktop\bt vxl\bai 1\bai1.c; 48.1 missing basic type; int assumed
Error [314] C:\Documents and Settings\Administrator\Desktop\bt vxl\bai 1\bai1.c; 48.1 ";" expected
Error [285] C:\Documents and Settings\Administrator\Desktop\bt vxl\bai 1\bai1.c; 50.1 no identifier in declaration
Warning [374] C:\Documents and Settings\Administrator\Desktop\bt vxl\bai 1\bai1.c; 50.1 missing basic type; int assumed
Error [314] C:\Documents and Settings\Administrator\Desktop\bt vxl\bai 1\bai1.c; 50.1 ";" expected
********** Build failed! **********
|
xem giúp em với