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

正文內容

畢業(yè)設計-基于單片機的超聲波測距系統(tǒng)設計實驗報告__-_重(文件)

2024-12-26 07:16 上一頁面

下一頁面
 

【正文】 四、參 考文獻 [1] C 程序設計(第三版) . 譚浩強 . 清華大學出版社 . [2] 新概念 51 單片機 c 語言教程 . 郭天祥 . 電子工業(yè)出版社 [3] 傳感器與檢測技術 . 胡向東 . 機械工業(yè)出版社 [4] 微控制其原理及應用 . 向敏 . 人民郵電出版社 五、 附錄 附 錄 一:系統(tǒng)總體電路圖 圖 51 超聲波探測程序流程圖 18 附 錄 二:系統(tǒng)軟件源代碼 /* *************************************************** *課設名稱:基于 51 單片機的超聲波測距系統(tǒng)設計 *硬件平臺 : 超聲波模塊 +51 最小系統(tǒng) *顯示模塊: 4 個數碼管 *輸入模塊: 3 個按鍵 *實現的功能:用超聲波模塊把距離測量出來,用數碼管顯示,可通過按鍵設置要報警的距離,低于設置 * 的值則自動報警,一直按住調值的鍵會越加越快 ,超出量程( )則顯示 888 *接口說明:數碼管位 P3^4 P3^5 P3^6 P3^7 * 超聲波發(fā)射 =P3^2 * 超聲波接收 =P3^3 按鍵用的接口是 P2 口 *待改進的地方:溫度補償,提 高精度 *當前的缺陷: 不能測出 4m 的距離 *測量單位:米( m) ****************************************************/ include include include include define uchar unsigned char define uint unsigned int //數碼管段選定義 設 0 1 2 3 4 5 6 7 8 9 uchar code smg_duan[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}。 sbit smg_we3 = P3^6。 //超聲波接收 uchar flag_hc_value。 //主程序 300ms 處理一次的標識符 bit key_500ms 。 //超聲波超出量程 long flag_time0。 //用來控制連加的速度 bit flag_lj_en。 //定時器用,作為連加的中間變量 uchar menu_1。 smg_we3 = 1。 smg_we2 = 0。 case 1: smg_we1 = 1。 break。 smg_we4 = 0。 if(i = smg_i) //smg_i=3, i = 0。 byte_write(0x2021, set_d % 256)。 //讀出 set_d 值 set_d = 8。 //先讀 if(a_a != 1) //新的單片機初始單片機內問 EEPOM { set_d = 100。 //key_new、 key_old按鍵標識符, key_new=0 表示有鍵 瞬 間按下, //檢測確認按鍵后 ,key_old=1. key_value 按鍵檢測中間變量 if(key_new == 0) //初始有鍵按下 { if((P2 amp。 key_new = 1。 //連加變量清零 key_time = 0。 else key_value = 0。 //連加使能 zd_break_en = 1。 key_new = 0。amp。 //得到 k2 鍵值(設定鍵) case 0x05: key_can = 2。 //得到 k4 鍵值(減) } } key_old = key_new。 //連加速度控制變量(復位為 500ms) dis_smg[0] = smg_duan[distance % 10]。 smg_i = 3。 dis_smg[2] = smg_duan[set_d / 100 % 10] amp。 //A,設定值修改標識符 } } if(menu_1 == 1) //設置報警值 { if(flag_lj_3_en == 0) //三次連加之后速度加快 menu_ljsd = 10 。 dis_smg[0] = smg_duan[set_d % 10]。 dis_smg[3] = 0x88。 //設定值顯示 dis_smg[1] = smg_duan[set_d / 10 % 10] 。 //a } } } /*********************定時器 0、定時器 1 初始化 ******************/ void time_init() { EA = 1。 //允許定時器 0 定時 ET1 = 1。i=0。 //10us 的高電平觸發(fā) delay()。 24 TR0 = 0。 while(c_recive) //當 c_recive 為 1 計數并等待 { flag_time0 = TH0 * 256 + TL0。 flag_hc_value = 0。 //關定時器 0 定時 EA = 0。 //HCSR04 超聲波模塊 距離(厘米)=T*uS/ EA = 1。 //距離 EA = 1。in1。j++) if(a[k]a[j]) k=j。 } } } /*******************測量距離處理及顯示函數 **********************/ void smg_display() { int Buff[5]。 iBuff[3] = iBuff[2]。 for(i = 0。 //調用 choise 函數,冒泡排序 distance = (long)Buff[2]。 //取十分位(分米級) dis_smg[2] = smg_duan[distance / 100 % 10] amp。 if(distance = set_d) { value ++。 //取消報警 } } void main() { send_wave()。 //初始化 eepom(讀取 set_d) while(1) { if(flag_300ms == 1) //300ms 執(zhí)行一次 { flag_300ms = 0。 //處理距離顯示函數 if(zd_break_en == 1) //自動退出設置界面程序 { zd_break_value ++。 zd_break_value = 0。 TH1 = 0xf8。 if(value = 150) //300ms 中斷一次 { value = 0。 key_500ms = 1。 //3 次后 秒后連加大些 } } } } } 。 if(flag_value = 3) { flag_value = 10。 } if(value % 25 == 0) { if(flag_lj_en == 1) //按下按鍵使能 50ms { key_time ++。 //定時 2
點擊復制文檔內容
公司管理相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1