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

正文內(nèi)容

畢業(yè)設(shè)計-基于單片機(jī)的超聲波測距系統(tǒng)設(shè)計實(shí)驗報告__-_重(完整版)

2025-01-19 07:16上一頁面

下一頁面
  

【正文】 圖 22 系統(tǒng)硬件框圖 電源接口電路 顯示模塊 超聲波測距模 塊 鍵盤模塊 聲光報警電路 STC89C52 單片機(jī)最小系統(tǒng) 5 STC89C52 芯片 STC89C52是 STC公司生產(chǎn)的一種低功耗、高性能 CMOS8位微控制器,具有 8K 在系統(tǒng)可編程 Flash存儲器。最高運(yùn)作頻率 35MHz, 6T/12T 可選。 ( 3)動態(tài)顯示驅(qū)動: 數(shù)碼管動態(tài)顯示接口是單片機(jī)中應(yīng)用最為廣泛的一種顯示方式之一,動態(tài)驅(qū) 9 動是將所有數(shù)碼管的 8 個顯示筆劃 a,b,c,d,e,f,g,dp的同名端連在一起,另外為每個數(shù)碼管的 公共極 COM 增加位選通控制電路,位選通由各自獨(dú)立的 I/O 線控制,當(dāng)單片機(jī)輸出字形碼時,所有數(shù)碼管都接收到相同的字形碼,但究竟是那個數(shù)碼管會顯示出字形,取決于單片機(jī)對位選通 COM 端電路的控制,所以我們只要將需要顯示的數(shù)碼管的選通控制打開,該位就顯示出字形,沒有選通的數(shù)碼管就不會亮。 ( 6) 鍵盤電路的設(shè)計 鍵盤電路如圖 215 所示: 圖 215 鍵盤電路 13 ( 1)各主要模塊 ① 超聲波測距模塊。主要設(shè)置報警值。 T1定時器用于主程序掃 描時間的控制。 //測距離函數(shù) if(menu_1 == 0) //沒有鍵 按下時才給緩沖數(shù)組賦新值 smg_display()。 //按鍵處理函數(shù),修改報警設(shè)定值 } } } ( 3)主程序工作流程圖 圖 216 主程序流程圖 15 ( 4) 超聲波探測程序流程圖 圖 217 超聲波探測程序流程圖 16 三、 設(shè)計總結(jié) 17 四、參 考文獻(xiàn) [1] C 程序設(shè)計(第三版) . 譚浩強(qiáng) . 清華大學(xué)出版社 . [2] 新概念 51 單片機(jī) c 語言教程 . 郭天祥 . 電子工業(yè)出版社 [3] 傳感器與檢測技術(shù) . 胡向東 . 機(jī)械工業(yè)出版社 [4] 微控制其原理及應(yīng)用 . 向敏 . 人民郵電出版社 五、 附錄 附 錄 一:系統(tǒng)總體電路圖 圖 51 超聲波探測程序流程圖 18 附 錄 二:系統(tǒng)軟件源代碼 /* *************************************************** *課設(shè)名稱:基于 51 單片機(jī)的超聲波測距系統(tǒng)設(shè)計 *硬件平臺 : 超聲波模塊 +51 最小系統(tǒng) *顯示模塊: 4 個數(shù)碼管 *輸入模塊: 3 個按鍵 *實(shí)現(xiàn)的功能:用超聲波模塊把距離測量出來,用數(shù)碼管顯示,可通過按鍵設(shè)置要報警的距離,低于設(shè)置 * 的值則自動報警,一直按住調(diào)值的鍵會越加越快 ,超出量程( )則顯示 888 *接口說明:數(shù)碼管位 P3^4 P3^5 P3^6 P3^7 * 超聲波發(fā)射 =P3^2 * 超聲波接收 =P3^3 按鍵用的接口是 P2 口 *待改進(jìn)的地方:溫度補(bǔ)償,提 高精度 *當(dāng)前的缺陷: 不能測出 4m 的距離 *測量單位:米( m) ****************************************************/ include include include include define uchar unsigned char define uint unsigned int //數(shù)碼管段選定義 設(shè) 0 1 2 3 4 5 6 7 8 9 uchar code smg_duan[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}。 //超聲波接收 uchar flag_hc_value。 //超聲波超出量程 long flag_time0。 //定時器用,作為連加的中間變量 uchar menu_1。 smg_we2 = 0。 break。 if(i = smg_i) //smg_i=3, i = 0。 //讀出 set_d 值 set_d = 8。 //key_new、 key_old按鍵標(biāo)識符, key_new=0 表示有鍵 瞬 間按下, //檢測確認(rèn)按鍵后 ,key_old=1. key_value 按鍵檢測中間變量 if(key_new == 0) //初始有鍵按下 { if((P2 amp。 //連加變量清零 key_time = 0。 //連加使能 zd_break_en = 1。amp。 //得到 k4 鍵值(減) } } key_old = key_new。 smg_i = 3。 //A,設(shè)定值修改標(biāo)識符 } } if(menu_1 == 1) //設(shè)置報警值 { if(flag_lj_3_en == 0) //三次連加之后速度加快 menu_ljsd = 10 。 dis_smg[3] = 0x88。 //a } } } /*********************定時器 0、定時器 1 初始化 ******************/ void time_init() { EA = 1。i=0。 24 TR0 = 0。 flag_hc_value = 0。 //HCSR04 超聲波模塊 距離(厘米)=T*uS/ EA = 1。in1。 } } } /*******************測量距離處理及顯示函數(shù) **********************/ void smg_display() { int Buff[5]。 for(i = 0。 //取十分位(分米級) dis_smg[2] = smg_duan[distance / 100 % 10] amp。 //取消報警 } } void main() { send_wave()。 //處理距離顯示函數(shù) if(zd_break_en == 1) //自動退出設(shè)置界面程序 { zd_break_value ++。 TH1 = 0xf8。 key_500ms = 1。 if(flag_value = 3) { flag_value = 10。 //定時 2ms display()。 smg_i = 3。 //處理距離顯示函數(shù) time_init()。 //取個 位(米級) EA = 1。 i++) Buff[i] = iBuff[i]。 if(distance == 95)return。 //給記號賦值 for(j=i+1。 } } EA = 0。 } else { flag_csb_juli = 1。 while(!c_recive)。 //執(zhí)行一條 _nop_()指令就是 1us } } /*********************超聲波測距程序 *****************************/ void send_wave() { lon
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1