




下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
PWM調速電機正反轉加速停止3““““““““““““““““““““““““““““““““““““““““““““““““““““““““““““““““““““/**********************************************************************本實驗是基于普中科技的開發(fā)板設計直流電動機PWM調速實驗。*設計要求:k1控制電機正轉,k2控制電機反轉,k3控制電機加*速,k4控制電機減速,k5控制電機停止。數碼管顯示電機轉向,*速度和所轉圈數。并將速度發(fā)送到上位機。實驗所用電機為12V*自帶增量式光電編碼器。外部中斷0觸發(fā)方式為高電平觸發(fā)方式效果更好。**********************************************************************/#include<reg52.h>#include<intrins.h>#defineucharunsignedchar#defineuintunsignedintsbitBRA=P2A5;//剎車sbitDIR=P2A6;//轉向sbitPWM=P2A7;//調速sbitk1=P1A0;//正轉sbitk2=P1A1;//反轉sbitk3=P1A2;//加速sbitk4=P1A3;//減速sbitk5=P1A4;//停止sbitls138a=P2A2;sbitls138b=P2A3;sbitls138c=P2A4;ucharflag; 〃方向標志位ucharspeed=50; //初始轉速uintquan_num; //圈數ucharcodetable[]=(0x3f,0x06,0x5b,0x4f,0x66,// 0 1 2 3 40x6d,0x7d,0x07,0x7f,0x6f,0x40};// 5 6 7 8 9 -voiddelay(uintx){uchari;while(x--){for(i=0;i<110;i++);}}/*****************************************************************名稱:init()*功能:初始化函數,設置串口,定時器0,定時器1*輸入:無*輸出:無****************************************************************/voidinit(){SCON=0x50;//允許串接收發(fā)送TMOD=0x21;//定時器1工作在模式2,為串口提供波特率;定時器0工作在模式1,產生PWM波TH0=0xff;//定時100usTL0=0xa4;TH1=0xfd;//波特率為9600TL1=0xfd;IT0=1;//IT0=0低電平觸發(fā),IT0=1下降沿觸發(fā)TR0=1;//開定時器0TR1=1;//開定時器1ET0=1;//開定時器0中斷EA=1;〃開總中斷3“““““““““““““““““““““““““““““““““““““““““““““““““““““““““““““““/*****************************************************************名稱:display()*功能:顯示子函數,顯示圈數,轉速和轉向*輸入:圈數,轉速,轉向*輸出:無****************************************************************/voiddisplay_sum(uintnum)//|圈數顯示{P0=table[num%1000/100];〃顯示圈數百位ls138a=1;ls138b=0;ls138c=1;delay(1);P0=table[num%100/10];//顯示圈數十位ls138a=0;ls138b=1;ls138c=1;delay(1);P0=table[num%10]; 〃顯示圈數個位ls138a=1;ls138b=1;ls138c=1;delay(1);}voiddisplay_speed(ucharnum) 〃轉速顯示{P0=table[num%100/10];//顯示轉速十位ls138a=1;ls138b=1;ls138c=0;delay(1);P0=table[num%10]; 〃顯示轉速個位ls138a=0;ls138b=0;ls138c=1;delay(1);
}voiddisplay_dir(ucharnum)//方向顯示{P0=table[num];ls138a=0;ls138b=1;ls138c=0;delay(1);}/*****************************************************************名稱:dispose()*功能:正反轉加減速子函數*輸入:無*輸出:無****************************************************************/PWM=1;flag=1;PWM=1;flag=1;}while(k2==0);if((k3==0)&&(speed<=90)){//加速voiddispose(){if(k5==0){EX0=0;BRA=1;}if(k1==0){EX0=1;BRA=0;DIR=1;PWM=1;flag=0;}while(k1==0);if(k2==0){EX0=1;BRA=0;DIR=0;
//按鍵處理//停止〃關外部中斷0//剎車//正轉〃開外部中斷0//關剎車〃電機正轉〃開電機〃電機正轉標志//反轉〃開外部中斷0//關剎車//電機反轉//開電機//電機反轉標志delay(100);if((k3==0)&&(speed<=90))EX0=1; 〃開外部中斷0{speed=speed+10;}
while(k3==0);if((k4==0)&&(speed>=10)) 〃減速{delay(100); //延時去抖if((k4==0)&&(speed>=10))EX0=1; 〃開外部中斷0{speed=speed-10;}if(speed==0)EX0=0; 〃如果速度為0,關外部中斷0}while(k4==0); //等待按鍵松開}voidmain(){init();PWM=0;P3=0xff;〃按鍵處理〃顯示速度〃顯示圈數〃按鍵處理〃顯示速度〃顯示圈數〃顯示轉向〃關串口//送圈數//送速度//送方向標志位〃開串口dispose();display_speed(speed);display_sum(quan_num);display_dir(flag);ES=0;SBUF=quan_num;SBUF=speed;SBUF=flag;ES=1;}}3“““““““““““““““““““““““““““““““““““““““““““““““““““““““““““““““/*****************************************************************名稱:timer0()*功能:定時器0子函數,產生PWM波*輸入:無*輸出:無****************************************************************/voidtimer0()interrupt1//PWM頻率為1/(100us*100)=10kHz{ucharcount;TH0=0xff;//100usTL0=0xa4;if(count==speed){PWM=0;〃關電count++;if(count==100){count=0;if(speed!=0)//如果時間是0,保持原來狀態(tài)PWM=1; 〃開電}}3“““““““““““““““““““““““““““““““““““““““““““““““““““““““““““““““/*****************************************************************名稱:int0()*功能:外部中斷0子函數*輸入:脈沖*輸出:電機旋轉圈數****************************************************************/voidint0()interrupt0{uinta;if(++a>=5120)〃記每圈的脈沖數{a=0;quan_num++;if(quan_num>=999){quan_num=0;}}}3“““““““““““““““““““““““““““““““““““““““““““““““““““““““““““““““/*****************************************************************名稱:sever()*功能:串口子函數*輸入:無*輸出:無****************************************************************/voidsever()interrupt4〃串口中斷{TI=0;■11 s:**-9RXDlb::TW:一::[NTOIE1314■-C13■::■■Htr犯pF"C3',京r1617IS15PL7ATX9(,2U2LED11615121174HCBSLh'4106(,'onnector9MAX232<10■:P2.2也.1P2.0—4039P2.3Pli1413DIRECTIONINPUTBRAKEINPUTPWMtNPUT干5Te—.23d.5.67s3.n.3.ap3.?.%R,p*Hptp-p?:XTAL2:XTALl:GXD::日日「日」vcc?PO.OPQ.l典2::P0.4:心PQ.6:PG.7'EA%3534313o~AI.I5VIUH;PSEN:P3.fP2.6rz.5:r—-i-Re$Pack4U3A:: vet:B YOC YJG2A Y2GWYMGI:::::::Y4WHHh¥5GXDY6:m::.:vcc:vs+■-:?GNDT1OUT「二+RUNRimr?VS-■■■tunT2OUT::T21N」切Mimrr「伊■~?T"T3「11X1〉:11TED16.1-2--1110~Y3Y4Y5Y6■■■7-~3~
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 網絡維護述職報告
- 胯骨骨裂臥床輔助護理
- 腎內科治療講課
- 創(chuàng)新創(chuàng)業(yè)關于攝影
- 新課標背景下小學語文作業(yè)設計的優(yōu)化策略
- 四川省德陽市高中2022級(2025屆)高三質量監(jiān)測考試(二)(德陽二診)政治試卷答案
- 職業(yè)安全防護護理查房
- 河南省部分示范性高中2025屆高三上學期12月聯(lián)考數學試題(解析版)
- 眼科地縣一體化管理
- 電工實訓習題及答案 4.2項目四 模塊二 安裝家庭用電裝置
- 第16課數據管理與編碼(教案)四年級全一冊信息技術人教版
- 特殊作業(yè)安全管理監(jiān)護人專項培訓課件
- 《節(jié)水評價技術導則》
- 課件:《中華民族共同體概論》第一講 中華民族共同體基礎理論
- 2024年貴州省貴陽市中考生物試題(含答案逐題解析)
- 中考英語不規(guī)則動詞變化表
- 中醫(yī)師承跟師筆記60篇(共1頁)
- BM 帶小葉片的高壓比壓氣機葉輪設計BladeGen實例
- 輸變電工程建設管理程序指南
- 運營管理部績效考核表
- 國內外材料牌號對照表非常有用
評論
0/150
提交評論