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

正文內(nèi)容

基于51單片機(jī)的超聲波測距系統(tǒng)的設(shè)計(jì)-閱讀頁

2024-09-16 15:42本頁面
  

【正文】 小地線噪聲的影響。 ,即凈輸入電流 I? 0,如把它理想化,則有 0?I ,但不是斷開,故常稱為虛斷。電路的電壓放大倍數(shù)為 : 23RRUUAiuf ???? (35) 利用反相比例放大器可實(shí)現(xiàn)對交直流輸入信號的放大,且電路結(jié)構(gòu)簡單,只需要調(diào)節(jié) 2R 和 3R 阻值即可實(shí)現(xiàn)調(diào)節(jié)電壓放大倍數(shù)。 根據(jù)本設(shè)計(jì)系統(tǒng)需要,接收傳感器輸出電壓很小 ( 數(shù)十毫伏 ),故分別取?? KR 12 。 ?? KRP 1 ,即放大電路將輸入信號放大 200 倍。最簡單的顯示器可以使 LED發(fā)光二極管,給出一個簡單的開關(guān)量信息,而復(fù)雜的較完整的顯示器應(yīng)該是 CRT 監(jiān)視器或者屏幕較大的 LCD 于顯示的距離范圍在 4 米之內(nèi),選用 3 位 LED 示,表示距離的XXXcm 數(shù)值。綜合課題的實(shí)際要求由數(shù)碼管,通過單片機(jī)編程實(shí)現(xiàn) 顯示,表示距離的 XXXcm數(shù)值。如圖 34( a)所示數(shù)碼管,每個數(shù)碼管內(nèi)部,由 8 個發(fā)光二極管組成,其中七個組成 8 字形的七段筆劃,分別編號為 a、 b、 c、 d、 e、 f、 g,還有一個為小數(shù)點(diǎn),標(biāo)為 DP。發(fā)光二極管的陰極連在一起的稱為共陰極數(shù)碼管,如圖 34( b)所示;發(fā)光二極管的陽極連在一起的稱為共陽,如圖 34( c)所示。 12 圖 34 數(shù)碼管結(jié)構(gòu)圖 問題 2 軟件譯碼是將各數(shù)碼的筆劃信息構(gòu)成一個表格預(yù)儲于內(nèi)存,以后根據(jù)要顯示的每一數(shù)碼執(zhí)行一段查表程序,查得相應(yīng)筆劃信息再送數(shù)碼管顯示 。 問題 3 動態(tài)掃描顯示接口是單片 機(jī)中應(yīng)用最為廣泛的一種顯示方式之一。 CPU 向字段輸出口送出字形碼時(shí),所有顯示器接收到相同的字形碼,但究竟是那個顯示器亮,則取決于 COM 端,而這一端是由 I/O 控制的,所以我們就可以自行決定何時(shí)顯示哪一位了。在輪流點(diǎn)亮掃描過程中,每位顯示器的點(diǎn)亮?xí)r間是極為短暫的 (約 1ms),但由于人的視覺暫留現(xiàn)象及發(fā)光二極管 的余輝效應(yīng),盡管實(shí)際上各位顯示器并非同時(shí)點(diǎn)亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),不會有閃爍感。每數(shù)碼管應(yīng)顯示數(shù)碼的筆劃信息也分路同時(shí)送給。靜態(tài)掃描顯示編程容易,顯示比較清晰,亮度一般較高 。因此,動態(tài)掃描用得更多。 74HC574 為三態(tài)輸出 D 型上升沿觸發(fā)器,圖 36 為其引腳圖,在輸入使能端 OE 有效時(shí),當(dāng)時(shí)鐘脈沖 CK 有上升沿跳變,觸發(fā)器發(fā)生翻轉(zhuǎn),將鎖存的 8 路輸入數(shù)據(jù) (即單片機(jī) P2 口送出的字符數(shù)據(jù) )送出顯示。 OE 1 20 Vcc 1B 1 16 1C 1D 2 19 1Q 2B 2 15 2C 2D 3 18 2Q 3B 3 14 3C 3D 4 17 3Q 4B 4 13 4C 4D 5 16 4Q 5B 5 12 5C 5D 6 15 5Q 6B 6 11 6C 6D 7 14 6Q 7B 7 10 7C 7D 8 13 7Q 8B 8 9 COM 8D 9 12 8Q 9D 10 11 CLK 圖 36 74HC574引腳圖 圖 37 ULN2020引腳圖 表 31 74HC574功能表 INPUTS OUTPUT Q OE CLK D L ↑ H L ↑ L L H or L X H X X H L Q0 Z ULN2020 為顯示驅(qū)動芯片,抬升單片機(jī)的輸出電流,提高負(fù)載驅(qū)動能力。輸入為低電平時(shí),輸出為高電平。 由于聲音的速度在不同的溫度下有所不同,為提高系統(tǒng)的精度,采用了溫度補(bǔ)償功能 。將 DS18B20 數(shù)據(jù)線與單片機(jī)的 口相連,就可以實(shí)現(xiàn)溫度測量,如圖 38 所示。 TC1602 顯示的容量為 2行 16 個字。使用時(shí),可將 P0 與 LCD 的數(shù)據(jù)線相連, P2口與 LCD 的控制線相連,如圖所示 。第 7~ 14 腳: D0~ D7 為 8 位雙向數(shù)據(jù)線。 圖 38 DS18B20 溫度測量電路 圖 39 TC1602 液晶顯示電路 16第 4章 軟件設(shè)計(jì)和測量結(jié)果分析 系統(tǒng)軟件設(shè)計(jì) 系統(tǒng)程序結(jié)構(gòu): (1)DS18B20溫度傳感器接口模塊,分為初始化程序、寫入命令以及讀取 子程序等部分; (2)基于 YB1602 的顯示模塊,分為初始化子程序、寫入子程序以及顯示子程序; (3)溫度補(bǔ)償與距離計(jì)算模塊、分為超聲波發(fā)送控制程序、接收處理程序、溫度補(bǔ)償子程序等; (4)本次設(shè)計(jì)使用 C 語言編寫程序, C 語言相比匯編有許多的優(yōu)勢;編譯器使用 Keil ? Version2 進(jìn)行程序編譯, Keil 功能強(qiáng)大使用方便。 如圖 41 所示描述了各個模塊的關(guān)系: 圖 41 系統(tǒng)軟件方框圖 系 統(tǒng)主程序: 17本設(shè)計(jì)主程序的思想如下: (1)溫度為兩位顯示,距離為四位顯示單位為 mm; (2)溫度每隔 900ms 采樣一次, DS18B20在 12位精度下轉(zhuǎn)換周期為 750ms ,故 900ms 滿足該速度要求;超聲波每隔 60ms 發(fā)送一次。所以系統(tǒng)最小測量約為 112mm; 系統(tǒng)主程序如下: void main(void) { uchar i,j。i255。j255。 sys_init()。 sta_flag=0。 for(i=0。i++) delay1ms()。 BUZZER=0。 while(i)。 i=100000。 TR0=1。 testtemp()。 TR1=0。 jsl=TL1。 count=0。 display()。 hextobcd()。 } } } void sys_init(void) { uchar i。i29。} TMOD=0x11。 TL0=0xA0。 CNT=0。 EA=1。 20} 實(shí)現(xiàn)重要功能的程序分析 實(shí)現(xiàn)溫度讀取功能 uint Read_Temperature(void) { uint c。 tu=0。 write(0xBE)。 reset()。 write(0x44)。tu=1。 return c。 } } 實(shí)現(xiàn)根據(jù)溫度轉(zhuǎn)化聲速 int C_speed(void) { uchar y。 if(r){ { T_C=y。 else speed=332T_C*。 return speed。 cm=TH1*256+TL1。 cm*=speed。 return cm。 uchar numcode[10]={39。,39。,39。,39。,39。,39。,39。,39。,39。,39。}。 uchar jsh,jsl。 //10 秒計(jì)次數(shù) uint distance。 //溫度變量 uchar bdata flag。 //LCD RS sbit RW=P2^1。 //LCD E sbit DQ=P2^7。 //LCD 忙 void Delay(uint time)。 void delay()。 void BUMA(void)。 uchar B20_RDAT(void)。 //初始化 18B20 void Write_Comm(uchar)。 //寫入 LCD數(shù)據(jù) void Init_LCD(void)。 //10MS 到標(biāo)準(zhǔn)位, flag 即通用標(biāo)志位,當(dāng)sta_flag=1 時(shí),表示到了 10ms sbit fuhao =flag^1。 //啟動測距 sbit CNT =P2^5。 //返回信號 sbit BUZZER =P3^7。} //關(guān)閉定時(shí)器 /計(jì)數(shù)器 1 /*********定時(shí)器 0溢出中斷函數(shù),每 60MS 溢出 ****************/ void timer0(void)interrupt 1 using 0 //定時(shí)器 0 { TH0=0x15。 //定時(shí)器 0設(shè)定初值 TH1=0。 //計(jì)數(shù)器 1清零 sta_flag=1。 _nop_()。 _nop_()。 CNT=1。_nop_()。_nop_()。_nop_()。_nop_()。_nop_()。_nop_()。 _nop_()。 _nop_()。 TR1=1。 } /***************系統(tǒng)初始化 *************************/ void SYS_INIT() { uchar i。i29。} TMOD=0x11。 TL0 =0xA0。 24CNT=0。 EA =1。 uint t。 else c=*temp*。 d=(c*t*)/2。 s=。 /} /****************轉(zhuǎn)換成 2 進(jìn)制 ***************/ void HEXtoBCD() { float tp。 fuhao=0。 else { BUMA()。 fuhao=1。 tmp=tp。 if(fuhao) 25num[12]=num[12]|0x80。 tmp=distance。 tmp%=1000。 tmp%=100。 tmp%=10。 } /**************溫度轉(zhuǎn)換函數(shù) ***************************/ void TESTTEMP() { Init_18B20()。 B20_WDAT(0x44)。 Init_18B20()。 B20_WDAT(0xBE)。 b = B20_RDAT()。 t = 8。 return (t)。 Delay(10)。 Delay(80)。 Delay(10)。 else flag=1。 } /*******************讀數(shù)據(jù) ******************************/ uchar B20_RDAT(void) //讀取一個字節(jié) { uchar i = 0。 for (i = 8。 i) { DQ = 0。 DQ = 1。 Delay(15)。 } /*********************寫數(shù)據(jù) ****************************/ void B20_WDAT(uchar dat) { uchar i = 0。 i 0。 27DQ = datamp。 Delay(5)。 dat=1。 temp+=1。 Init_LCD()。 Write_Comm(0x80)。a16。 if((a11)amp。(a14)) { d=numcode[num[a]]。 } Write_Data(d)。 for(b=16。b++) { d=dispBUF[b]。amp。 } Write_Data(d)。 RW = 1。
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1