Chia sẻ Đồ án đo tốc độ động cơ hiển thị LED 7 đoạn

vuphong

Học sinh phổ thông
#21
E mới học mà thầy bắt làm bài tập lớn về cái này mà chưa biết làm a giúp e vs
 

chinh140

Học sinh phổ thông
#22
bạn ơi có code nào chuẩn hơn ko vậy, code này chỉ chạy 15,30,45 ko à. nếu có cho mình xin nhá
 

ngocdieu

Học sinh phổ thông
#23
caí này hiển thị lên LCD thì như thế nào các bác nhỉ. em có code LCD rồi mà không kết hợp được với nó
 

daotruongpro

http://vtechpro.vn
#24
caí này hiển thị lên LCD thì như thế nào các bác nhỉ. em có code LCD rồi mà không kết hợp được với nó
LCD thì chỉ thay đổi phần hiển thị thôi bạn, nó còn đơn giản hơn nhiều ấy chứ
 

ngocdieu

Học sinh phổ thông
#25
/**********DO TAN SO TIN HIEU CAO TU NGOAI VAO HIEN THI LEN LCD*********/
/**********SU DUNG TIMER0 DINH THOI 1S VA TIMER 1 DE DEM SO XUNG TIN HIEU*************/
#include <REGX51.H>

unsigned char Time,tanso,ts=0;
#define RS P2_0
#define RW P2_1
#define EN P2_2
#define D4 P2_4
#define D5 P2_5
#define D6 P2_6
#define D7 P2_3
/***********************************************************
chuong trinh ngat
************************************************************/
void ngat_trantimer0() interrupt 1
{
TH0=0xFC;
TL0=0x2B;
Time++;
if(Time==1000)
{
Time=0; // dinh thoi 1s
TR1=0;
tanso= (((TH1&0x00ff)<<8)|(TL1&0x00ff)); //tan so bang so xung dem duoc trong 1s
ts=tanso;
TH1=0;
TL1=0;
TR1=1;
}
TF0=0;
}

/***********************************************************
chuong trinh delay
************************************************************/
void delay_us(unsigned int time)
{
unsigned int i;
for(i=0;i<time;i++)
{
;// khong lam gi ca
}
}
//-----------void delay_ms(unsigned char x)------------

void delay_ms(unsigned time)
{
unsigned int i,j;
for(i=0;i<time;i++)
for(j=0;j<125;j++)
{
;// khong lam gi ca
}
}
/***********************************************************
chuong trinh hien thi LCD
************************************************************/
void LCD_Enable(void)
{
EN=1;
delay_us(30);
EN=0;
delay_ms(5);
}
void LCD_send_4bit(unsigned char Data)
{
D4=Data&0x01;
D5=(Data>>1)&1;
D6=(Data>>2)&1;
D7=(Data>>3)&1;
}
void LCD_send_command(unsigned char command)
{
LCD_send_4bit(command>>4);//4 bit cao
LCD_Enable();
LCD_send_4bit(command);//4 bit thap
LCD_Enable();
}
void LCD_Init(void)
{
LCD_send_4bit(0x00);
delay_us(200);
RS=0;
RW=0;
EN=0;
LCD_send_4bit(0x03);
LCD_Enable();
LCD_Enable();
LCD_Enable();
LCD_send_4bit(0x02);
delay_us(70);
LCD_Enable();
LCD_send_command(0x28);
LCD_send_command(0x80);
LCD_send_command(0x0c);
LCD_send_command(0x06 );
LCD_send_command(0x01);
delay_ms(10);
}
void LCD_gotoxy(unsigned char x,unsigned char y)
{
unsigned char vitri;
if(!y)
{
vitri= 0x80+x;
}
else
{
vitri= 0xc0+x;
}
delay_ms(3);
LCD_send_command(vitri);
delay_ms(10);
}
void LCD_Clear()
{
LCD_send_command(0x01);
}
void LCD_putchar(unsigned char Cx)
{
RS=1;
LCD_send_command(Cx);
RS=0;
}
void LCD_puts(char *s)
{
while(*s)
{
LCD_putchar(*s);
s++;
}
}
void lcd_print_var (signed int Data)
{
unsigned char dvi,chuc,tram,nghin;
if(Data >= 0)
{
dvi = (Data % 10) + 0x30;
chuc = ((Data % 100) / 10) + 0x30;
tram = ((Data % 1000) / 100)+ 0x30;
nghin = ((Data % 10000) / 1000)+ 0x30;
LCD_putchar(nghin);
LCD_putchar(tram);
LCD_putchar(chuc);
LCD_putchar(dvi);
}

else
{
Data = -Data;
dvi = (Data % 10) + 0x30;
chuc = ((Data % 100) / 10) + 0x30;
tram = ((Data % 1000) / 100)+ 0x30;
nghin = ((Data % 10000) / 1000)+ 0x30;
LCD_putchar('-');
LCD_putchar(nghin);
LCD_putchar(tram);
LCD_putchar(chuc);
LCD_putchar(dvi);
}

}
/***********************************************************
chuong trinh main
************************************************************/

void main()
{

TMOD=0x51;
IE=0x82; //thiet lap ngat timer 0
TR0=1;
LCD_Init();
LCD_gotoxy(0,0);
LCD_puts(" BUI NGOC DIEU ");
LCD_gotoxy(2,1);
LCD_puts("DO TOC DO DC");
delay_ms(300);
LCD_Clear();
LCD_gotoxy(1.5,0);
LCD_puts("TAN SO TIN HIEU ");
while(1)
{
lcd_print_var(tanso);
LCD_gotoxy(6,2);
delay_ms(200);
}
}
 

ngocdieu

Học sinh phổ thông
#26
ghép nối các chương trình lại như thế này nhưng hiển thị không được. bác nào giúp với
 

daotruongpro

http://vtechpro.vn
#28
Mình chưa thử nhưng chắc phải thiết kế mạch kiểu khác
 

dainv

http://vntech24h.com/
#29
nghieu bạn không thế kết nối cái này với mobin xe máy, vì phương pháp đo vận tốc của xe máy là chuyển ra điện áp. Cách đơn giản là bạn đọc điện áp mà công tơ hiển thị rồi nội suy lại ra vận tốc.
 

Quảng cáo Google