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

正文內(nèi)容

智能儀器-酒精濃度檢測儀設(shè)計-閱讀頁

2025-07-22 14:27本頁面
  

【正文】 令,進(jìn)入休眠模式后,芯片中程序未涉及到的數(shù)據(jù)存儲器和特殊功能寄存器中的數(shù)據(jù)都將保持原值。本文中則采用硬件復(fù)位喚醒單片機(jī)。以STC89系列單片機(jī)為例,當(dāng)單片機(jī)正常工作時的功耗通常為4mA~7mA,進(jìn)入空閑模式時其功耗降至2mA。7 軟件設(shè)計圖71主程序流程圖為了能讓主函數(shù)分清是執(zhí)行執(zhí)行待機(jī)程序還是檢測程序報警程序,引進(jìn)標(biāo)志數(shù)flag。當(dāng)flag為0時執(zhí)行檢測報警程序. 在初始化函數(shù)中先將flag置1,上電后則進(jìn)入待機(jī)狀態(tài)。按鍵k2后使flag置1,又執(zhí)行待機(jī)程序,kk2均為開關(guān)【7】。這時用定時器零產(chǎn)生中斷,讓其計時。當(dāng)時間到一定時,它就產(chǎn)生定時中斷,讓主程序讓執(zhí)行定時器中斷函數(shù)。心得與體會本文給出了基于單片機(jī)的便攜式酒精濃度檢測儀的設(shè)計方法,設(shè)計過程包括了硬件電路設(shè)計和軟件程序的編寫兩部分。軟件部分采用模塊化設(shè)計思想,各個子程序的功能相對獨(dú)立,便于調(diào)試和修改。本設(shè)計編程采用c語言,本人非常認(rèn)真地且獨(dú)立地完成了本課程設(shè)計的全部工作,有電路圖的設(shè)計,原理圖的繪制,程序的編寫與調(diào)試、論文的撰寫。致謝本次課程設(shè)計設(shè)計是在指導(dǎo)老師李雅梅老師的悉心指導(dǎo)下,還有許多同學(xué)的幫助下完成的。此外,我周圍的同學(xué)也在我為一些問題困惑時,給予了我很大的幫助,教會了我許多知識,例如繪圖軟件的應(yīng)用等等。sbit d1=P1^1。sbit db=P1^3。sbit k1=P2^0。sbit lcdrs=P2^5。sbit lcden=P2^7。sbit rd=P1^6。/******************************************//*******************定義字符數(shù)組***********************/uchar code str[]=AC value:。uchar code table[]=0123456789: 。/******************************************//******************子函數(shù)聲明************************/void init()。 //有無符號整型形參的延時函數(shù)void write_str(uchar *)。 //液晶寫命令函數(shù)void write_data(uchar)。 //AD轉(zhuǎn)換函數(shù)void display()。 //調(diào)用初始化函數(shù) while(1) { if(k1==0) //檢測按鍵是否按下 { delay(5)。 //寫入要進(jìn)行的操作,這里是將標(biāo)志數(shù)flag置零 while(!k1)。 //消抖,將程序的執(zhí)行暫停五毫秒 if(k2==0) //再檢測按鍵是否按下 flag=1。 //松手檢測 } while(flag==0) //執(zhí)行檢測報警程序 { TR0=0。 //發(fā)光二極管1為高電平,待機(jī)指示燈為關(guān)狀態(tài) write_(1)。 //液晶初始化指令,讓液晶按每行顯示16個字符,顯示兩行 write_str(str)。 write_str(str0)。 display()。 db=0。 dc=0。 //未飲酒區(qū) da=0。 if(k1==0) flag=0。 } if(k2==0) //按鍵檢測 { delay(5)。 while(!k2)。 da=1。 dc=1。 a=0。 c=0。 write_(1)。//待機(jī)指示燈為開狀態(tài) TH0=(6553650000)/256。 TR0=1。 //將數(shù)據(jù)寫在第一行,第七個字符處 write_data(table[a])。 //將數(shù)據(jù)寫在第一行,第八個字符處 write_data(table[b])。 //將數(shù)據(jù)寫在第一行,第九個字符處 write_data(table[c])。 //將數(shù)據(jù)寫在第一行,第十個字符處 write_data(table[d])。 if(k1==0) flag=0。 } if(k2==0) //按鍵檢測 {delay(5)。 while(!k2)。 lcden=0。//液晶初始化指令,讓液晶按每行顯示16個字符,顯示兩行,并且每個字符顯示處的點(diǎn)陣為5X7; write_(0x0c)。 //在寫入一個數(shù)據(jù)后地址自動加一,顯示不移動 cs=0。 b=10。 //定時器零工作方式為方式一 EA=1。 }/******************************************//********************延時子函數(shù)**********************/void delay(uint z){ uint x,y。x0。y0。}void write_str(uchar *p) // 寫字符串子程序{ while(*p) write_data(*p++)。 //將RS拉低,說明對指令操作, 上電時是默認(rèn)高電平 P0=。 //延時約五毫秒 lcden=1。 //延時約五毫秒,讓液晶忙完再對其操作,防止數(shù)據(jù)丟失 lcden=0。 //將RS拉低高,說明對數(shù)據(jù)操作 P0=da。 //延時約五毫秒 lcden=1。 //延時約五毫秒,讓液晶忙完再對其操作,防止數(shù)據(jù)丟失 lcden=0。 //將WR拉低,讓芯片開始讀7號引腳電壓值 delay(1)。 //將WR拉高,上升沿到來時,AD轉(zhuǎn)換開始 delay(5)。 //將P3口全部拉高,等待測試數(shù)據(jù) delay(1)。 //將RD拉低,芯片送出數(shù)據(jù) delay(1)。 //將數(shù)據(jù)存入temp rd=1。 uchar a,b,c。 a=value/100。 c=value%10。 write_data(0x30+a)。 write_data(0x30+b)。 write_data(0x30+c)。 //定時器工作方式設(shè)置為定時器0,方式1 TH0=(6553650000)/256。 //計數(shù)寄存器低8位 TR0=1。 //開定時器0中斷 tt++。 if(b==10) b=11。 d++。 c++。 a++。 //關(guān)定時器 PCON=0X02。//IDL=1,進(jìn)入空閑模式 } } } }}/*****************休眠喚醒程序*************************/ void huan_xing() interrupt 2 //采用硬件復(fù)位喚醒單片機(jī),按鍵K1{ PCON=0。 //開定時器0}
點(diǎn)擊復(fù)制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1