📄 csb.c
字号:
#include <intrins.h>
#include <SerialLcd.h>
#include <reg51f.h>
//#include <reg52.h>
//晶振22.1184 一个机器周期0.5425us
sbit csbout1 = P1^0;
sbit INT = P1^2;
uint TimeL,TimeN;
float k ,h;
#define uchar unsigned char
#define uint unsigned int
void delaycsb( uint n )
{
while( n-- );
}
void CsbSend ( uchar k )
{
uchar i = 0;
for( i = 0; i < k; i++ )//一个40KHZ的方波
{
csbout1 = 0;
_nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
_nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
csbout1 = 1;
_nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
_nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
}
}
void inital( void )
{
TMOD = 0x01;
ET0 = 0;//定时器中断关闭 //dd
IT0 = 1;//下降沿中断
EA = 0;
TR0 = 0;//dd
}
void ddCsb(void)
{
k = 0;
TimeL = 0;
TimeN = 0;
INT = 1;
TH0 = 0;
TL0 = 0;
TR0 = 1;
CsbSend ( 3 );
while( INT == 1); //等待下降沿
{
TimeN += TH0;
TimeN <<= 8;
TimeN += TL0;
k = ( ( ( TimeN ) * 0.5425 ) * 17.0 ) / 100;
DispNum( 0x94,k,TimeN ,0x9c );
TR0 = 0;
}
while( INT == 0); // 等待下降沿结束
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -