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

正文內(nèi)容

基于51單片機的紅外遙控控制電機轉(zhuǎn)速設(shè)計畢業(yè)設(shè)計-資料下載頁

2025-07-02 12:36本頁面

【導(dǎo)讀】直流電機具有良好的調(diào)速特性。調(diào)速簡單,平滑,調(diào)速范圍大,過載能力強的特點。能滿足工業(yè)和生活中各種不同的要求,在近代社。會發(fā)展中起著重要的作用。電機采用紅外遙控功能控制后,整個電機??刂聘唵?、方便、且易于操作。信號,然后通過單片機對直流電動機的控制,實現(xiàn)對電動機的啟動,降速、升速和停止功能。其它部分的結(jié)構(gòu)和原理....

  

【正文】 sbit P16 = P1^6。 sbit P17 = P1^7。 define M_EN1 M_ENA=1。M_IN1=0。M_IN2=1 //電機控制 正轉(zhuǎn)定義 define M_EN2 M_ENA=1。M_IN1=1。M_IN2=0 //電機控制 反轉(zhuǎn)定義 define M_DIS M_ENA=0。 //電機控制 停止定義 bit Start_flag=0。 //電機轉(zhuǎn)動標(biāo)志位 bit Stop_flag=0。 //電機停止標(biāo)志位 bit dirflag=0。 //方向標(biāo)志位 sbit M_ENA=P2^4。 //電機端口定義 sbit M_IN1=P2^3。 sbit M_IN2=P2^2。 uchar PWM_ON。 //全局變量 uchar timer_num=0。 //全局變量 void timer0init() //定時器 0初始化 { //256*12*(1/12)= 每中斷一次需要的時間 TMOD=0x12。 //定時器初始化 鄭州 /****/大學(xué) 畢業(yè)設(shè)計 .24. TH0=0x00。 //定時器 1工作方式 1 TL0=0x00。 //定時器 0工作方式 2 EA=1。 //開總中斷 ET0=1。 //開定時器 0 中斷 TR0=1。 TH1=(655361000)/256。 //設(shè)置處置 TL1=(655361000)%256。 ET1=1。 //開定時器 1中斷 TR1=1。 } void delay(uint x) //延遲函數(shù) { uint z,i。 for(z=x。z0。z) { for(i=120。i0。i)。 } } void ir_process() //*2/256 = 紅外處理 解碼儲存 { uchar num_1,z,k,i。 //局部變量定義 z=1。 for(i=0。i4。i++) { for(k=0。k8。k++) { num_1=num_11。 //+=+= if(irdata[z]6) { num_1=num_1|0x80。 } z++。 } ircode[i]=num_1。 } ir_pros_ok=1。 } void didi() //蜂鳴器 { beep=0。 delay(150)。 beep=1。 } void ir_display(void) //執(zhí)行處理部分 { if((ircode[2]==0x0c)amp。amp。(Start_flag==0)amp。amp。(Stop_flag==0)) //取操作碼 作數(shù)字開關(guān) 開啟電機 { didi()。 //按鍵檢測 Start_flag=1。 PWM_ON=0。 Stop_flag=0。 鄭州 /****/大學(xué) 畢業(yè)設(shè)計 .25. P10=0。 P11=1。 P12=1。 P13=1。 P14=1。 P15=1。 } else if((ircode[2]==0x18)amp。amp。Start_flag) //關(guān)閉電機 { didi()。 Start_flag=0。 Stop_flag=0。 k_flag=0。 P10=1。 P11=1。 P12=1。 P13=1。 P14=1。 P15=1。 } else if((ircode[2]==0x5e)amp。amp。Start_flag) //電機正轉(zhuǎn) 默認一檔調(diào)速 { didi()。 dirflag=0。 Stop_flag=1。 k_flag=1。 PWM_ON=1。 P10=0。 P11=0。 P12=1。 P13=1。 P14=1。 P15=1。 } else if((ircode[2]==0x08)amp。amp。Start_flag) //電機反轉(zhuǎn) 默認一檔調(diào)速 { didi()。 dirflag=1。 k_flag=1。 Stop_flag=1。 PWM_ON=1。 P10=0。 P11=1。 P12=0。 P13=1。 P14=1。 P15=1。 } else if((ircode[2]==0x1c)amp。amp。Start_flagamp。amp。k_flagamp。amp。(Stop_flag==1)) //2 檔調(diào)速 { didi()。 PWM_ON=2。 P10=0。 P13=0。 P14=1。 P15=1。 鄭州 /****/大學(xué) 畢業(yè)設(shè)計 .26. } else if((ircode[2]==0x5a)amp。amp。Start_flagamp。amp。k_flagamp。amp。(Stop_flag==1)) //3檔調(diào)速 { didi()。 PWM_ON=4。 P10=0。 P13=1。 P14=0。 P15=1。 } else if((ircode[2]==0x42)amp。amp。Start_flagamp。amp。k_flagamp。amp。(Stop_flag==1)) //4 檔調(diào)速 { didi()。 PWM_ON=8。 P10=0。 P13=1。 P14=1。 P15=0。 } } void int0init() //中斷初始化 { EA=1。 EX0=1。 //打開外部中斷 IT0=1。 //下降沿觸發(fā) } void main() //主函數(shù) { timer0init()。 int0init()。 // beep=0。 while(1) { // if(ir==0) //按鍵檢測 修改放到 irwork 中 提高實時性 // { // beep=0。 // delay(100)。 // beep=1。 // } if(ir_ok==1) { ir_process()。 ir_ok=0。 } if(ir_pros_ok==1) { ir_display()。 ir_pros_ok=0。 } } } void int0() interrupt 0// //外部中斷響應(yīng)函數(shù) { 鄭州 /****/大學(xué) 畢業(yè)設(shè)計 .27. if(startflag) // { if(irtime32amp。amp。irtime63) //816ms 認定引導(dǎo)碼 { bitnum=0。 //標(biāo)志位清零 } irdata[bitnum]=irtime。 irtime=0。 bitnum++。 if(bitnum==33) //最多儲存 33 數(shù) { bitnum=0。 //清零 ir_ok=1。 //此幀數(shù)據(jù)接受完成 } } else { irtime=0。 //計數(shù)次數(shù)清零 startflag=1。 } } void timer0() interrupt 1 //定時器中斷次數(shù) 中斷次數(shù) *=時間 { irtime++。 //計數(shù)次數(shù)自加 } void timer1() interrupt 3 //定時器中斷函數(shù) { TH1=(655361000)/256。 // 定時器設(shè)處置 TL1=(655361000)%256。 timer_num++。 if(Start_flagamp。amp。Stop_flag) { if(timer_num10) //設(shè)定計數(shù)周期為 10 { timer_num=0。 //大于 10 清零 if(dirflag==0) //方向標(biāo)志位為 0時 { M_EN1。 //電機驅(qū)動芯片使能 正轉(zhuǎn) } else //否則方向標(biāo)志位為 1 { M_EN2。 //電機驅(qū)動芯片使能 反轉(zhuǎn) } } else if(timer_numPWM_ON ) //根據(jù) PWM 的值調(diào)速分級 { M_DIS。 //電機驅(qū)動芯片非使能 停止 } } else { M_DIS。 //電機驅(qū)動芯片非使能 停止 } } //注:為焊接方便,本程序端口接法以實物為主(即 LED 指示燈接 P0 口,蜂鳴器接 口,電機驅(qū)動芯片L293d 控制端分別接 , 口,其它不變)
點擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1