Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.43 MB, 32 trang )
BTL VXL & VĐK
GVHD: Ts. Phạm Văn Hùng
Vào Project->New Project:
Chọn đường dẫn để lưu và đặt tên cho project:
Nhóm : 1
Page 22
BTL VXL & VĐK
GVHD: Ts. Phạm Văn Hùng
Sau đó ấn Save.
Tiếp theo ta chọn loại Chip: ở đây ta lựa chọn Atmel->chọn AT89C51
Nhóm : 1
Page 23
BTL VXL & VĐK
GVHD: Ts. Phạm Văn Hùng
Ấn Yes và ta đã hoàn thành bước 1 – tạo 1 project mới.
2.Tạo File.C
Nhóm : 1
Page 24
BTL VXL & VĐK
GVHD: Ts. Phạm Văn Hùng
Tiếp theo ta cần tạo 1 File.C để viết chương trình cho Chip lên file đó.
Vào File->New:
Nhóm : 1
Page 25
BTL VXL & VĐK
GVHD: Ts. Phạm Văn Hùng
Sau đó chọn Save:
Chọn đường dẫn vào cùng thư mục với Project vừa tạo ở bước 1. Sau đó đặt tên,
với phần đuôi mở rộng là .C:
Nhóm : 1
Page 26
BTL VXL & VĐK
GVHD: Ts. Phạm Văn Hùng
Chọn Save, và ta đã hoàn thành xong bước 2 – Tạo File.C.
3. 3. Add File.C vào Project
Ta cần phải liên kết File.C với Project vừa tạo với nhau:
Trong giao diện Keil C, ở không gian làm việc của Project: Chuột phải vào
phần “Source Group 1” -> Add files to Group “Source Group 1”:
Nhóm : 1
Page 27
BTL VXL & VĐK
GVHD: Ts. Phạm Văn Hùng
Chọn đường dẫn đến thư mục Project -> chọn file.C vừa tạo ở bước 2 -> Add:
Vậy là project mới đã được tạo.
Nhóm : 1
Page 28
BTL VXL & VĐK
GVHD: Ts. Phạm Văn Hùng
b. Giải pháp đo.
Vì tần số lưới điện khá nhỏ nên nếu sử dụng biện pháp đếm xung trong 1
khoảng thời gian sẽ gây sai số khá lớn. Vì thế nên ta sẽ sử dụng giải pháp đo
chu kỳ xung. Dùng timer0 ở chế độ 16 bit, đếm xem 1 chu kỳ xung hết bao
nhiêu thời gian. Sau đó lấy nghịch đảo chu kỳ sẽ ra tần số.
c. Chương trình
#include
#include
sbit
sbit
sbit
Xung=0x90;
LED1=0x96;
LED2=0x97;
sbit RUN
=0xB7;
sbit STOP =0xB6;
char MaBCD(unsigned char ThapPhan)
{
return(ThapPhan/10)|((ThapPhan%10)<<4);
}
void HienThi(unsigned int DuLieu)
{
P0=MaBCD((unsigned char)(DuLieu/100));//Hien thi hang nghin,tram cua DuLieu
P2=MaBCD((unsigned char)(DuLieu%100));//Hien thi hang chuc,Don vi cua DuLieu
}
unsigned int ChuKy=0;//micro giay
unsigned int TanSo=0,k=0;
bit run=0;
void main(void)
{
char n=0;
TMOD=0x01; //Timer 0 che do timer 16 bit
LED1=0;
LED2=0;
HienThi(TanSo);
while(1)
{
if(RUN==0)
{
while(RUN==0);
run=1;
}
if(STOP==0)
{
Nhóm : 1
Page 29
BTL VXL & VĐK
GVHD: Ts. Phạm Văn Hùng
while(STOP==0);
run=0;
}
TH0=TL0=0;
ChuKy=0;
if(Xung==0)
{
while(!Xung);
TR0=1;
while(Xung);
while(!Xung);
TR0=0;
ChuKy=((TH0*256+TL0)-4);
k +=100000000/ChuKy;
n++;
}
if(n>9)
{
TanSo=k/10;
if(run==1)
{
HienThi(TanSo);
if(TanSo<4500)
LED1=1;
else
LED1=0;
if(TanSo>5500)
else
}
LED2=1;
LED2=0;
n=0;
k=0;
}
}
}
PHẦN 3: PHẦN KẾT LUẬN
Sau một thời gian làm đồ án, dưới sự hướng dẫn
của thầy Phạm Văn Hùng, đến nay, về cơ bản chúng em
đã hoàn thành nội dung đồ án môn học này. Do thời gian
và trình độ hiểu biết của chúng em có hạn nên không thể
tránh khỏi những thiếu sót, những sai phại khi làm bài
vậy nên chúng em rất mong được sự chỉ bảo, giúp đỡ của
các thầy cô để đồ án này của chúng em được hoàn thiện
Nhóm : 1
Page 30
BTL VXL & VĐK
GVHD: Ts. Phạm Văn Hùng
hơn. Đồng thời giúp chúng em nâng cao trình độ chuyên
môn, đáp ứng nhiệm vụ công tác sau này.Em xin chân
thành cảm ơn thầy Phạm Văn Hùng đã giúp em hoàn
thành đồ án này!
Tài liệu tham khảo:
- Giáo trình vi điều khiển
- Giáo trình khí cụ điện
- Hướng dẫn lập trinh vi xư lý
Lời nhận xét của thầy cô:
…………………………………………………
…………………………………………………
…………………………………………………
Nhóm : 1
Page 31
BTL VXL & VĐK
GVHD: Ts. Phạm Văn Hùng
…………………………………………………
…………………………………………………
…………………………………………………
…………………………………………………
…………………………………………………
…………………………………………………
…………………………………………………
…………………………………………………
…………………………………………………
…………………………………………………
…………………………………………………
…………………………………………………
…………………………………………………
…………………………………………………
…………………………………………………
…………………………
Nhóm : 1
Page 32