×
单片机 > 单片机程序设计 > 详情

霍尔测速C程序

发布时间:2020-09-02 发布时间:
|
光传感器的分辨率为100000RPM,而牙科手机机芯转速为300000RPM~400000RPM左右。由此说来,光学传感器根本不能满足要求。

如今,在设计的霍尔测速也只能达到60000RPM左右,还非常不稳定。常想不稳定因素应该在软件方面下功夫。硬件已经用LM311芯片解决纯数字式传输,CPU能够完全识别的方波信号。

在软件方面还得下许多工夫。哎,我的C++,何时能灵活的派上用场,期待中......

 

/**************************************************
*姓名:         Yang Xiufeng                             *                                 *
*说明:        P3-5口接转速脉冲                    *
**************************************************/
#include    // 单片机内部专用寄存器定义
#define uchar unsigned char 
#define uint unsigned int      //数据类型的宏定义
sbit LS138A = P2^2;   //定义138译码器的输入A脚由P2.2控制 
sbit LS138B = P2^3;     //定义138译码器的输入脚B由P2.3控制
sbit LS138C = P2^4;  //定义138译码器的输入脚C由P2.4控制
//此表为 LED 的字模, 共阴数码管 0-9  - 
unsigned char code Disp_Tab[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40}; 
uint data z,counter;                //定义无符号整型全局变量
//====================================================
void init(void)    //定义名为init的初始化子函数
{                    //init子函数开始,分别赋值
 TMOD=0X51;            //GATE  C/T  M1  M0  GATE  C/T  M1  M0  计数器T1 定时器T0
                         //  0     1   0   1    0     0   0   1
    TH1=0;                //计数器初始值
    TL1=0;
    TH0=-(50000/256);    //定时器t0  定时50ms
    TL0=-(50000%256);    
   
    EA=1;                       // IE=0X00;      //EA  -  ET1  ES  ET1  EX1  ET0  EX0
    ET0=1;                                      // 1  0    0   0    0    0      1   0
    TR1=1;
    TR0=1;
    TF0=1;
}
//=============================================
void delay(uint k) //延时程序
{
 uint data i,j;
 for(i=0;i					
					
					



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
51单片机中断源的扩展方法