freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于單片機(jī)的超聲波測(cè)距儀的設(shè)計(jì)參考論文1-資料下載頁(yè)

2025-06-27 19:50本頁(yè)面
  

【正文】 efined for signed 8bits integer variable 有符號(hào)8位整型變量 */typedef unsigned int U16。 /* defined for unsigned 16bits integer variable 無(wú)符號(hào)16位整型變量 */typedef signed int S16。 /* defined for signed 16bits integer variable 有符號(hào)16位整型變量 */typedef unsigned long U32。 /* defined for unsigned 32bits integer variable 無(wú)符號(hào)32位整型變量 */typedef signed long S32。 /* defined for signed 32bits integer variable 有符號(hào)32位整型變量 */typedef float F32。 /* single precision floating point variable (32bits) 單精度浮點(diǎn)數(shù)(32位長(zhǎng)度) */typedef double F64。 /* double precision floating point variable (64bits) 雙精度浮點(diǎn)數(shù)(64位長(zhǎng)度) *///定時(shí)器0的定時(shí)值為1mS,即11059/12=922個(gè)時(shí)鐘脈沖,其補(bǔ)為65536922=64614define SYSTEMCLK 921600 //11059200/12define T0CLK 921600 //11059200/12define T1CLK 921600 //11059200/12define T1PERIOD 1000000/921600 //T1周期時(shí)間,以微秒為單位,define TIMER0H 0xFC //64614/256=252define TIMER0L 0x66 //54447%256=102 //管腳定義sbit Trig = P1^2。sbit Echo = P3^2。 //回波必須接在外部中斷引腳上sbit LedAlarm = P3^6。 //報(bào)警燈,低電平亮sbit Beep = P3^7。 //報(bào)警蜂鳴器//定義標(biāo)志volatile bit FlagSucceed = 0。 //測(cè)量成功標(biāo)志volatile bit FlagDisplay = 0。 //顯示標(biāo)志//定義全局變量U16 DisplayCount=0。U32 time=0。U32 distance=0。 //函數(shù)聲明void delay_20us()。void Start_Module()。void INT0_Init(void)。void Data_Init()。void Timer0_Init()。void Timer1_Init()。//20us延時(shí)程序,不一定很準(zhǔn)void delay_20us(){ U16 bt 。 for(bt=0。bt200。bt++)。 //8M晶振是100} //數(shù)據(jù)初始化void Data_Init(){ Trig = 0。 distance = 0。 DisplayCount = 0。}//外部中斷初始化函數(shù)void INT0_Init(void){ IT0 = 0。 //負(fù)邊沿觸發(fā)中斷 EX0=0。 //關(guān)閉外部中斷}//外部中斷處理用做判斷回波電平void INT0_ISR (void) interrupt 0{ time =TH1*256+TL1。 //取出定時(shí)器的值 FlagSucceed = 1。 //置成功測(cè)量的標(biāo)志 EX0=0。 //關(guān)閉外部中斷}//定時(shí)器0初始化,16位定時(shí)模式,初始化為1ms中斷一次。void Timer0_Init(){ TMOD = 0x11。 //定時(shí)器0和1工作在16位方式 TH0 = TIMER0H。 TL0 = TIMER0L。 TR0 = 1。 //啟動(dòng)定時(shí)器 ET0 = 1。 //允許定時(shí)器0中斷}//定時(shí)器0中斷,用做顯示計(jì)時(shí)void Timer0_ISR(void) interrupt 1 // 定時(shí)器0中斷是1號(hào){ TH0 = TIMER0H。 TL0 = TIMER0L。 DisplayCount ++。 if (DisplayCount = 200) // { FlagDisplay = 1。 DisplayCount = 0。 }}//定時(shí)器1初始化,16位計(jì)數(shù)模式,時(shí)鐘為11059200/12=921600Hz//60ms計(jì)數(shù)為55296,即0xD800void Timer1_Init(){ TMOD = 0x11。 //定時(shí)器0和1工作在16位方式 TH1 =0。 TL1= 0。 ET1 = 1。}//啟動(dòng)模塊,Trig管腳20us正脈沖void Start_Module() //啟動(dòng)模塊{ Trig=1。 //啟動(dòng)一次模塊 delay_20us()。 Trig=0。}/********************************************************************* 名稱(chēng) : Main()* 功能 : 主函數(shù)***********************************************************************/void main(){ U16 i, j,H。 EA = 0。 INT0_Init()。 Timer0_Init()。 //定時(shí)器0初始化 Timer1_Init()。 //定時(shí)器1初始化 Data_Init()。 EA = 1。 L1602_init()。 L1602_string(1,1,Wele to my )。 L1602_string(2,1,distance meter! )。 //延時(shí) for (i=0。i1000。i++) for (j=0。j1000。j++) {。} while(1) { EA= 0。 //以下為一次檢測(cè)過(guò)程:先發(fā)出Trig電平,打開(kāi)外部中斷,清零T1, //最后在外部中斷下降沿觸發(fā)時(shí)取出T1當(dāng)前值,計(jì)算出Trig脈沖寬度。 while (Echo == 1) 。 Start_Module()。 while(Echo==0) 。//等待Echo回波引腳變高電平 FlagSucceed = 0。 EX0=1。 TH1= 0。 TL1= 0。 TF1= 0。 TR1=1。 //啟動(dòng)定時(shí)器1開(kāi)始計(jì)數(shù) EA = 1。 while (TH183) 。 //盲區(qū) TR1 = 0 。 //關(guān)閉定時(shí)器1 EX0 = 0。 //關(guān)閉外部中斷 if(FlagSucceed==1) //一次測(cè)試成功,則計(jì)算距離,單位為厘米 { distance = time * 。 //計(jì)算得到脈沖時(shí)間(以微秒為單位) //將微秒時(shí)間轉(zhuǎn)變成厘米距離的算法: Y米=(X秒*344)/2 // X秒=( 2*Y米)/344 ==》X秒=*Y米 ==》厘米=微秒/58 distance /=58。 //如果距離小于20cm,則聲光報(bào)警 //if ((FlagSucceed == 1) amp。amp。 (distance 50)) //{ //LedAlarm = 0。 // Beep = 0。 //} // else //{ // LedAlarm = 1。 // Beep = 1。 // } } if (FlagDisplay == 1) //1秒顯示時(shí)間到 { if(FlagSucceed==0) { //LCD提示無(wú)回波 L1602_string(1,1,OutOfRange(04m))。 L1602_string(2,1, )。 } else { //LCD顯示數(shù)據(jù) L1602_string(1,1,Distance Result:)。 L1602_string(2,1, cm )。 if(distance50) { if(20distance=50) { Beep = 1。 for(H=0。H30*distance。H++)。 Beep = 0。 } else { Beep=0。 } } if(distance50) { Beep=1。 } L1602_int(2, 5, distance )。 } FlagDisplay = 0。 } } }
點(diǎn)擊復(fù)制文檔內(nèi)容
電大資料相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1