1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

chương trình hiển thị tốc độ động cơ hiển thị ra 4 led 7 thanh bằng phương pháp quét led

2 151 2

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 2
Dung lượng 20,87 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

/*chuong trinh hien thi toc do dong co hien thi ra 4 led 7 thanh bang phuong phap quet led.. Để hiển thị chính xác số vòng/phút của động cơ bạn cần phải có nhiều xung cảm biến trong một

Trang 1

/*chuong trinh hien thi toc do dong co hien thi ra 4 led 7 thanh bang phuong phap quet led Để hiển thị chính xác số vòng/phút của động cơ bạn cần phải có nhiều xung cảm biến trong một vòng quay ví dụ như quay được 1 vòng cảm biến nhận được 50 xung chẳng hạn chương trình này viết bằng keilC */

#include<AT89x51.h>

#define LED4 P2_3 //den led hang nghin

#define LED3 P2_2 //den led hang tram

#define LED2 P2_1 //den led hang chuc

#define LED1 P2_0 //den led hang don vi

#define Hight 1

#define Low 0

#define Sensor P2_7 // tin hieu tu cam bien toc do

#define so_xung_mot_vong 10 //gia su mot vong dong co quay tao ra 10 xung

#define Clear P2|=0x0F //clear cac led

#define Data P0

unsigned long int so_xung = 0;

unsigned long int tick = 0;

unsigned long int so_vong_phut = 0; //toc do dong co vong/phut

char Old_Sensor = Low;

// =========khai bao su dung cac ham=======================================

void delay(unsigned int mm);

void hienthi();

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

//0 , 1 , 2 , 3 ,4 ,5 ,6 ,7 ,8

const char So[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,

0x98,0x88,0xC6,0x86,0x8E,0x82,0x89,0x7F,0xFF};

void delay(unsigned int ms) //tao tre

{

unsigned int m,n;

for(m=0;m<ms;m++)

for(n=0;n<100;n++);

}

void hienthi()

{

Clear; // tắt tất cả các LED trước khi cho hiển thị mơi

Data = So[so_vong_phut/1000]; //hien thi so hang nghin

LED4 = Low;

delay(1);

Clear;

Data = So[(so_vong_phut%1000)/100]; // hien thi so hang tram

LED3 = Low;

delay(1);

Clear;

Data = So[(so_vong_phut%100)/10]; // hien thi so hang chuc

Trang 2

LED2 = Low;

delay(1);

Clear;

Data = So[so_vong_phut%10]; // hien thi so hang don vi

LED1 = Low;

delay(1);

}

void ngat_100us(void)interrupt TF0_VECTOR // su dung ngat timer0

{

TH0=0x00;

TL0=0x9C;

tick++; //cu 100us tang len mot lan

if((Sensor == Hight)&&(Old_Sensor == Low)) //neu trang thai xung truoc la

{ //muc thap va trang thai xung hien

so_xung++;

//tai la muc cao thi coi la nhan duoc

Old_Sensor = Hight;

// mot xung

} else if(Sensor == Low)

Old_Sensor = Low;

if(tick>=10000) //lay mau trong khoang 1 giay {

so_vong_phut = (so_xung/so_xung_mot_vong)*60;

so_xung = 0; //reset lai

} }

void main(void)

{

TMOD=0x02; // che do 8 bit tu nap lai

TH0=0x00;

TL0=0x9C; //tran 100us

ET0=1;

P0=0xff;

P2=0xff;

TR0 = 1;

EA=1; //cho phep su dung ngat

while(1)

{

hienthi();

}

}

Ngày đăng: 22/04/2019, 07:48

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w