基于单片机电机转速检测测速报警设计-学习笔记
功能:
本设计中,我采用了AT89C51单片机,芯片工作电压约为5V左右,从
左到右我设计的依次是电容滤波的三相桥式不可控整流电路,直流电机H桥驱动电路,中间穿插了电压、电流检测,转速和温度检测。
其中我比较详细的制作了转速检测报警电路,主要通过AD0809进行模数转换显示数码管上,可以设置报警上下限;另外一个就是直流电机PWM调速,通过示波器观察波形和转速变化。

#include<reg52.h>
#include<intrins.h>
#include<stdio.h>
#define uchar unsigned char
#define uint unsigned int
unsigned int temp;
unsigned char getdata;
unsigned char d;
unsigned char DSY_CODE[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //共阴数码管的段选0~9显示
unsigned char DSY_IDX[]={0xF7,0xFB,0xFD,0xFE}; //共阴数码管的低四位的位选
unsigned char Temperature[]={0,0,0,0}; //定义把采集到的转速数据个位十位百位千位放到该数组。该数组初值为0;
sbit ST=P2^5; //AD0809转换启动信号与地址所存允许引脚注意:在使用时ALE和STRT信号引脚连在一起
sbit OE=P2^7; //AD0808输出允许信号
sbit E0C=P2^6; //ADC0808转换结束信号引脚
sbit CLK=P2^4; //ADC0808的时钟引脚
sbit H_LED=P3^0; //转速超过1600时的灯光指示
sbit L_LED=P3^1; //转速低于400时的灯光指示
sbit SPK=P3^7; //转速超过1600和低于400时的蜂鸣器报警
bit Flag0;
bit Flag1;
unsigned int cnta;
unsigned int cntb;


浙公网安备 33010602011771号