版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
附錄二程序源代碼#include<reg51.h>#defineuintunsignedint#defineucharunsignedcharsbitled=P0^1;//led燈顯示,低電平亮sbitspeaker=P1^0;//蜂鳴器,低電平報警sbitlcd_rs=P0^7;//1602數據選擇命令端sbitlcd_rw=P0^6; //1602讀寫選擇端sbitlcd_enable=P0^5;//1602使能端定義sbitkey_up=P3^0;//pwm速度調整端口,電機速度加一sbitkey_down=P3^1; //pwm速度調整端口,電機速度減一sbitmonter=P1^1;//電機驅動端口,pwm操縱輸出sbitwater_normal=P1^6;//水位過高傳感器模擬按鍵端口,低電平報警sbitwater_low=P1^7;//水位過低傳感器模擬按鍵端口,低電平報警ucharcodepwm_t[]={45,90,100,130};//模式下的pwm值,人為差不多設定的時刻是100,能夠調整上限值uintmodel=1,pwmT=150,time_count=0;voidkey_scan();//按鍵掃描函數voidcheck_water_level();//檢測水位是否正常函數voiddelay(uintz) //延時函數{uintx,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}//*******************1602液晶顯示函數************************// voidlcd_write_comd(ucharcomd) //1602寫指令函數{lcd_rs=0;//選擇指令lcd_rw=0;//選擇寫 delay(5); P2=comd;//取命令delay(8); lcd_enable=1;//使能有效 delay(8); lcd_enable=0;}voidlcd_write_data(uchardate)//1602寫數據函數{ lcd_rs=1; //選擇數據lcd_rw=0; //選擇寫操作 delay(5); P2=date; //取數據操作 delay(8); lcd_enable=1; //使能有效 delay(8); lcd_enable=0;}voidlcd_set_xy(ucharx,uchary)//定位具體位置{uintaddress;if(y==1)address=0x80+x; //第一行的位置 else address=0xc0+x; //第二行的位置 lcd_write_comd(address);}voidlcd_write_char(ucharx,uchary,uchardate) //寫一個字符函數{ lcd_set_xy(x,y); //設定位置 lcd_write_data(date); //寫入數據}voidlcd_write_string(ucharx,uchary,uchar*s) //寫一個字符串函數{ lcd_set_xy(x,y); //設定位置while(*s) //循環(huán)寫入數據 { lcd_write_data(*s); s++; } }//********電機PWM調速函數及程序主函數*******//voidinit() //初始化函數{ uchari,count=25; led=1; //開機led燈閃耀for(i=0;i<15;i++){ led=~led; delay(count); count=count+5; }led=0; lcd_write_comd(0x38);//設置16*2行顯示,5*7點陣,8位數據接口lcd_write_comd(0x0c);//開顯示lcd_write_comd(0x01);//清屏lcd_write_comd(0x80);//設定初始位置lcd_write_string(0,1,"WaterLev:Normal");lcd_write_string(0,0,"MonterSpeed:1");speaker=0; //蜂鳴器鳴響一聲delay(1000);speaker=1; TMOD=0X02; //定時0,定時時刻為150us,工作在方式2TH0=(256-150)%256; TL0=TH0;EA=1; //開總中斷ET0=1; //開定時器0的中斷TR0=0; //定時器0不啟動}voidmain()//主函數{init();while(1) { key_scan(); check_water_level();//檢測水位是否正常函數 }}voidtimre_0()interrupt1 //定時器0的中斷子函數{time_count++;if(time_count==pwmT) //和PWM脈寬的時刻比較,時刻到了定時器清零,重新開始{time_count=0;}if(time_count<pwm_t[model-1]) //當計數器在PWM定制時刻內的時候,輸出相關的pwm操縱信號{ monter=0; }else { monter=1; }}voidcheck_water_level()//檢測水位是否正常函數{uchari; if(water_normal==0) //水位是否正常狀態(tài)檢測 {led=1; TR0=0; monter=1; //關閉電機 speaker=0; //蜂鳴器報警 lcd_write_string(0,1,"WaterLev:Normal");//液晶屏顯示 for(i=0;i<20;i++) //燈閃耀報警 { led=~led; delay(100); } led=0; speaker=1; } if(water_low==0) //水位過低檢測 {led=1; TR0=1; //開啟電機 monter=0; speaker=0; //蜂鳴器報警 lcd_write_string(0,1,"WaterLev:Low");//液晶屏顯示 for(i=0;i<20;i++)//燈閃耀報警 { led=~led; delay(100); } led=0; speaker=1; }}voidkey_scan() //按鍵掃描函數{uchari;if(key_up==0) //檢測是否增加按鍵按下 {delay(15); if(key_up==0) {TR0=0; //有按鍵按下,電機一定要停止轉動 model++; //pwm速度定制值調整加大 if(model==5) model=1; i=model+0x30; lcd_write_char(14,0,i);//液晶顯示變化 while(!key_up); //按鍵是否釋放檢測 } } if(key_down==0) //檢測是否減少按鍵按下 {delay(15); if(key_down==0) { TR0=0;//有按鍵按下,電機一定要停止轉
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度浙江省公共營養(yǎng)師之二級營養(yǎng)師能力檢測試卷B卷附答案
- 2024年度海南省公共營養(yǎng)師之三級營養(yǎng)師基礎試題庫和答案要點
- 春節(jié)期間餐飲業(yè)停業(yè)及復工計劃
- 綠化養(yǎng)護預算編制流程
- 2025年秋季學期高校實習安排與計劃
- 用友實施顧問崗位職責
- 建筑學專業(yè)實習總結報告范文
- 網絡管理與維護制度
- 人教部編版一年級語文復習策略
- IT行業(yè)員工述職報告范文
- (二統(tǒng))大理州2025屆高中畢業(yè)生第二次復習統(tǒng)一檢測 物理試卷(含答案)
- 影視作品價值評估-洞察分析
- 公司員工出差車輛免責協(xié)議書
- 2023年浙江杭州師范大學附屬醫(yī)院招聘聘用人員筆試真題
- 江蘇某小區(qū)園林施工組織設計方案
- 口腔執(zhí)業(yè)醫(yī)師定期考核試題(資料)帶答案
- 2024人教版高中英語語境記單詞【語境記單詞】新人教版 選擇性必修第2冊
- 能源管理總結報告
- 藥店醫(yī)保政策宣傳與執(zhí)行制度
- 勘察工作質量及保證措施
- 體外膜肺氧合(ECMO)并發(fā)癥及護理
評論
0/150
提交評論