亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码
標題:
在這個超聲波測距程序中,單片機定時/計數器T0實現的是定時功能還是計數功能
[打印本頁]
作者:
523633035
時間:
2018-5-25 17:12
標題:
在這個超聲波測距程序中,單片機定時/計數器T0實現的是定時功能還是計數功能
我想問一下再給程序中定時器/計數器T0到底是執(zhí)行的定時功能還是計數功能。當發(fā)射超聲波時開始計數接收到超聲波后停止計數,要按這樣說的話應該是定時功能吧?墒钱擡CHo端接收到一個信號后它會輸出一個持續(xù)的高電平,可這時候定時器/計數器T0已經停止計數了,但ECHo端輸出了一個持續(xù)的高電平就是超聲波測傳播時間,是不是該程序沒有用到該高電平,如果用到的話應該就是計數功能了吧,有點迷求大佬解釋一下。
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit Lcd1602_RS = P2^6;
sbit Lcd1602_RW = P2^5;
sbit Lcd1602_EN = P2^7;
sbit Trig = P2^1;
sbit Echo = P2^0;
sbit beep = P2^3;
unsigned char code ASCII[15] = {'0','1','2','3','4','5','6','7','8','9','.','-','M'};
unsigned int time=0;
unsigned long S=0;
bit flag =0;
uchar disdat[4] ={0,0,0,0,};
void delayms(uint ms)
{
uchar i=100,j;
for(;ms;ms--)
{
while(--i)
{
j=10;
}
}
}
void Lcd1602_Write_com(uchar cmd)
{
Lcd1602_RS=0;
P0=cmd;
delayms(1);
Lcd1602_EN =1;
delayms(1);
Lcd1602_EN =0;
delayms(1);
}
void Lcd1602_Write_Data(uchar shu)
{
Lcd1602_RS=1;
P0=shu;
delayms(1);
Lcd1602_EN =1;
delayms(1);
Lcd1602_EN =0;
delayms(1);
}
void write_1602(uchar add,uchar sj)
{
Lcd1602_Write_com(0x80+0x40+add);
Lcd1602_Write_Data(sj) ;
}
void zifuchuan(uchar *ch)
{
while(*ch!=0)
Lcd1602_Write_Data(*ch++);
delayms(5);
} void LcdInit()
{
Lcd1602_EN =0;
Lcd1602_RW =0;
Lcd1602_Write_com(0x38);
Lcd1602_Write_com(0x0c);
Lcd1602_Write_com(0x06);
Lcd1602_Write_com(0x80);
Lcd1602_Write_com(0x01);
zifuchuan("cejujuli") ;
}
void Conut(void)
{
time=TH0*256+TL0;
TH0=0;
TL0=0;
S=(time*1.7)/100;
disdat[0]=S%1000/100;
disdat[1]=S%1000%100/10;
disdat[2]=S%1000%10%10;
write_1602(1,disdat[0]+0x30);
write_1602(2,disdat[1]+0x30);
write_1602(3,disdat[2]+0x30);
write_1602(5,'c');
write_1602(6,'m');
}
void zd0() interrupt 1
{
flag=1;
}
void StartModule()
{
Trig=1;
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
Trig=0;
}
void main(void)
{
delayms(5);
LcdInit();
TMOD=0x01;
TH0=0;
TL0=0;
ET0=1;
EA=1;
beep = 0;
delayms(150);
while(1)
{
StartModule();
while(!Echo);
TR0=1;
while(Echo);
TR0=0 ;
delayms(5);
}
}
復制代碼
歡迎光臨 (http://www.denmoz.com/bbs/)
Powered by Discuz! X3.1