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

正文內(nèi)容

畢業(yè)論文超聲波測距器的設(shè)計(編輯修改稿)

2025-07-25 10:04 本頁面
 

【文章內(nèi)容簡介】 要的數(shù)字,因此根據(jù)數(shù)碼管的驅(qū)動方式的不同,可以分為靜態(tài)式和動態(tài)式兩類。 ?。?) 動態(tài)顯示驅(qū)動:數(shù)碼管動態(tài)顯示接口是單片機中應(yīng)用最為廣泛的一種顯示方式之一,動態(tài)驅(qū)動是將所有數(shù)碼管的8 個顯示筆劃“a, b, c, d, e, f, g, dp“的同名端連在一起,另外為每個數(shù)碼管的公共極COM 增加位選通控制電路,位選通由各自獨立的I/O 線控制,當單片機輸出字形碼時,所有數(shù)碼管都接收到相同的字形碼,但究竟是那個數(shù)碼管會顯示出字形,取決于單片機對位選通COM 端電路的控制,所以我們只要將需要顯示的數(shù)碼管的選通控制打開,該位就顯示出字形,沒有選通的數(shù)碼管就不會亮。通過分時輪流控制各個數(shù)碼管的的COM 端,就使各個數(shù)碼管輪流受控顯示,這就是動態(tài)驅(qū)動。在輪流顯示過程中,每位數(shù)碼管的點亮時間為1~2ms,由于人的視覺暫留現(xiàn)象及發(fā)光二極管的余輝效應(yīng),盡管實際上各位數(shù)碼管并非同時點亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),不會有閃爍感,動態(tài)顯示的效果和靜態(tài)顯示是一樣的,能夠節(jié)省大量的I/O 端口,而且功耗更低。(2)靜態(tài)顯示驅(qū)動:靜態(tài)驅(qū)動也稱直流驅(qū)動。靜態(tài)驅(qū)動是指每個數(shù)碼管的每一個段碼都由一個單片機的I/O 端口進行驅(qū)動,或者使用如BCD 碼二十進制譯碼器譯碼進行驅(qū)動。靜態(tài)驅(qū)動的優(yōu)點是編程簡單,顯示亮度高,缺點是占用I/O 端口多,如驅(qū)動5 個數(shù)碼管靜態(tài)顯示則需要58=40 根I/O 端口來驅(qū)動,要知道一個89S52單片機可用的I/O 端口才32 ,實際應(yīng)用時必須增加譯碼驅(qū)動器進行驅(qū)動,增加了硬件電路的復雜性。數(shù)碼管的8段,對應(yīng)一個字節(jié)的8位,a對應(yīng)最低位,dp對應(yīng)最高位。所以如果想讓數(shù)碼管顯示數(shù)字0,那么共陰數(shù)碼管的字符編碼為00111111,即0x3f;共陽數(shù)碼管的字符編碼為11000000,即0xc0??梢钥闯龉碴?,共陰數(shù)碼管兩個編碼的各位正好相反。圖34 數(shù)碼管驅(qū)動顯示電路Fig34 Digital driver display circuit 為此本設(shè)計中采用動態(tài)顯示驅(qū)動數(shù)碼管,并且軟件消影。每一位數(shù)碼管顯示了它前一位要顯示的字符和它本身要顯示的字符的重疊效果。要想避免“拖影”就必須在每位數(shù)碼管顯示完后將其關(guān)閉,我們可以加入“P0=0xff。”,這樣各位數(shù)碼管都不會選中,然后下一位再顯示時就不會有影響了,這就是所謂的消“影”。 74HC573    圖35 74HC573管腳圖Fig35 74H573pin map高性能硅門 CMOS 器件SL74HC573 跟 LS/AL573 的管腳一樣。器件的輸入是和標準 CMOS 輸出兼容的;加上拉電阻,他們能和 LS/ALSTTL 輸出兼容。 當鎖存使能端LE為高時,這些器件的鎖存對于數(shù)據(jù)是透明的(也就是說輸出同  步)。當鎖存使能變低時,符合建立時間和保持時間的數(shù)據(jù)會被鎖存。圖中1D到8D為數(shù)據(jù)輸入端,1Q到8Q為數(shù)據(jù)輸出端。LE為所存控制端。    HCSR04超聲波測距模塊采用IO口TRIG觸發(fā)測距,給至少10us的高電平信號;模塊自動發(fā)送8個40khz的周期電頻,自動檢測是否有信號返回;有信號返回,通過IO口ECHO輸出一個高電平,高電平持續(xù)的時間就是超聲波從發(fā)射到返回的時間。測試距離=(高電平*聲速(340M/S)/2.圖36 模塊實物圖Fig36 Module physical map 圖37 超聲波時序圖Fig37 Ultrasound timing diagram4 系統(tǒng)的軟件設(shè)計超聲波測距儀的軟件設(shè)計主要由主程序、超聲波發(fā)生子程序、超聲波接收中斷程序及顯示子程序組成。我們知道C語言程序有利于實現(xiàn)較復雜的算法,匯編語言程序則具有較高的效率且容易精細計算程序運行的時間,而超聲波測距儀的程序既有較復雜的計算(計算距離時),又要求精細計算程序運行時間(超聲波測距時),所以控制程序可采用C語言和匯編語言混合編程。該系統(tǒng)的信號產(chǎn)生與數(shù)據(jù)處理傳送部分,由AT89s52單片機主控芯片,方波信號產(chǎn)生,中斷程序,定時器計時,低電平檢測,數(shù)碼管顯示程序設(shè)計。系統(tǒng)功能的實現(xiàn)依賴于軟硬件的協(xié)同工作。軟件開發(fā)工作由單片機控制軟件來實現(xiàn)。 主程序流程圖= 0 測量斷碼轉(zhuǎn)換 開始 初始化 啟動定時器 測量標志 超聲波測距 距離上限值 顯示值 = CCC = N 距離盲區(qū)值 = N 顯示 顯示值= 設(shè)定斷碼轉(zhuǎn)換 = 1 = Y = Y 圖41 主程序流程圖Fig41 Main program flowchart 測距子程序流程圖 超聲波測距 時間=1s? 發(fā)送超聲波 啟動計時器T0 Y 延時避開盲區(qū) 收到回波否? 延時避開盲區(qū) 延時避開盲區(qū) 結(jié)束 預設(shè)時間 N N 圖42 測距子程序流程圖Fig42 Ranging subroutine flowchart 主要程序include //包括一個52標準內(nèi)核的頭文件define uchar unsigned char //定義一下方便使用define uint unsigned intdefine ulong unsigned long//***********************************************sfr CLK_DIV = 0x97。 //為STC單片機定義,系統(tǒng)時鐘分頻 //為STC單片機的IO口設(shè)置地址定義sfr P0M1 = 0X93。sfr P0M0 = 0X94。sfr P1M1 = 0X91。sfr P1M0 = 0X92。sfr P2M1 = 0X95。sfr P2M0 = 0X96。//***********************************************sbit Trig = P1^0。 //產(chǎn)生脈沖引腳sbit Echo = P3^2。 //回波引腳sbit test = P1^1。 //測試用引腳uchar code SEG7[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90}。//數(shù)碼管09uint distance[4]。 //測距接收緩沖區(qū)uchar ge,shi,bai,temp,flag,outeH,outeL,i。 //自定義寄存器bit succeed_flag。 //測量成功標志//********函數(shù)聲明void conversion(uint temp_data)。void delay_20us()。//void pai_xu()。void main(void) // 主程序{ uint distance_data,a,b。 uchar CONT_1。 CLK_DIV=0X03。 //系統(tǒng)時鐘為1/8晶振(pdf45頁) P0M1 = 0。 //將io口設(shè)置為推挽輸出 P1M1 = 0。 P2M1 = 0。 P0M0 = 0XFF。 P1M0 = 0XFF。 P2M0 = 0XFF。 i=0。 flag=0。 test =0。 Trig=0。 //首先拉低脈沖輸入引腳 TMOD=0x11。 //定時器0,定時器1,16位工作方式 TR0=1。 //啟動定時器0 IT0=0。 //由高電平變低電平,觸發(fā)外部中斷 ET0=1。 //打開定時器0中斷 //ET1=1。 //打開定時器1中斷 EX0=0。 //關(guān)閉外部中斷 EA=1。 //打開總中斷0 while(1) //程序循環(huán) { EA=0。 Trig=1。 delay_20us()。 Trig=0。 //產(chǎn)生一個20us的脈沖,在Trig引腳 while(Echo==0)。 //等待Echo回波引腳變高電平 succeed_flag=0。 //清測量成功標志 EX0=1。 //打開外部中斷 TH1=0。 //定時器1清零 TL1=0。 //定時器1清零 TF1=0。 // TR1=1。 //啟動定時器1 EA=1。 while(TH1 30)。//等待測量的結(jié)果,(可用中斷實現(xiàn)) TR1=0。 //關(guān)閉定時器1 EX0=0。 //關(guān)閉外部中斷 if(succeed_flag==1) { distance_data=outeH。 //測量結(jié)果的高8位 distance_data=8。 //放入16位的高8位 distance_data=distance_data|outeL。//與低8位合并成為16位結(jié)果數(shù)據(jù) distance_data*=12。 //因為定時器默認為12分頻 distance_data/=58。 //微秒的單位除以58等于厘米 } //為什么除以58等于厘米, Y米=(X秒*344)/2 // X秒=( 2*Y米)/344 ==》X秒=*Y米 ==》厘米=微秒/58 if(succeed_flag==0) { distance_data=0。 //沒有回波則清零 test = !test。 //測試燈變化 } /// distance[i]=distance_data。 //將測量結(jié)果的數(shù)據(jù)放入緩沖區(qū) /// i++。 /// if(i==3) /// { /// distance_data=(distance[0]+distance[1]+distance[2]+distance[3])/4。 ///
點擊復制文檔內(nèi)容
物理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1