版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
PAGEPAGE39設(shè)計(jì)、旅行、影視、攝影、科技、音樂、藝術(shù)、人文、出版、飲食、漫畫游戲夢(mèng)想從相信開始創(chuàng)意從籌資起步基于單片機(jī)的直流電機(jī)測(cè)速、調(diào)速及顯示系統(tǒng)設(shè)計(jì)課程設(shè)計(jì)報(bào)告題目:基于單片機(jī)的直流電機(jī)測(cè)速、調(diào)速及顯示系統(tǒng)設(shè)計(jì)摘要本文主要研究了利用Quick51系列單片機(jī)控制PWM信號(hào)從而實(shí)現(xiàn)對(duì)直流電機(jī)轉(zhuǎn)速進(jìn)行控制的方法。單片機(jī)具有體積小、功能強(qiáng)、成本低、應(yīng)用面廣泛等優(yōu)點(diǎn),可以說,智能控制與自動(dòng)控制的核心就是單片機(jī)。目前,一個(gè)學(xué)習(xí)與應(yīng)用單片機(jī)的高潮在全社會(huì)大規(guī)模地興起.學(xué)習(xí)單片機(jī)的最有效方法就是理論與實(shí)踐并重,本文用8051單片機(jī)自制了一個(gè)采用了專門的芯片組成了PWM信號(hào)的發(fā)生系統(tǒng),并且對(duì)PWM信號(hào)的原理、產(chǎn)生方法以及如何通過軟件編程對(duì)PWM信號(hào)占空比進(jìn)行調(diào)節(jié),從而控制其輸入信號(hào)波形等均作了詳細(xì)的闡述。還對(duì)直流電機(jī)的速度進(jìn)行了測(cè)量和顯示。關(guān)鍵詞:單片機(jī)、PWM、調(diào)速、測(cè)速、顯示系統(tǒng)目錄TOC\o”1—3”\h\z\u摘要 1HYPERLINK\l”_Toc277444798”目錄 2HYPERLINK\l”_Toc277444799”第一章 概述 3HYPERLINK\l”_Toc277444800"1。1 概述 3_Toc277444802”1.2。1SmartSOPC與Quick51 3_Toc277444804"第二章總體方案設(shè)計(jì) 5HYPERLINK\l”_Toc277444805”2.18051單片機(jī)簡(jiǎn)介 6HYPERLINK\l”_Toc277444806”2.2PWM信號(hào)發(fā)生電路設(shè)計(jì) 12HYPERLINK\l”_Toc277444807"2.2.1PWM的基本原理 12HYPERLINK\l”_Toc277444808"2。3128*64液晶顯示 13_Toc277444810”3.1傳感器電路設(shè)計(jì) 14HYPERLINK\l”_Toc277444811”3。2信號(hào)處理電路設(shè)計(jì) 16HYPERLINK\l”_Toc277444812”3.3存儲(chǔ)器電路設(shè)計(jì) 17HYPERLINK\l”_Toc277444813"3。3.1I2C總線概述 17_Toc277444817”第四章軟件設(shè)計(jì) 20HYPERLINK\l”_Toc277444818”4.1系統(tǒng)軟件總流程圖 20HYPERLINK\l”_Toc277444819”4.2程序清單 21第五章結(jié)論與展望 31_Toc277444824”參考文獻(xiàn) 36\l”_Toc534483044”3.3.2存儲(chǔ)器電路圖3—12AT24CO2與單片機(jī)的接口電路
3.4顯示電路設(shè)計(jì)3.5PWM信號(hào)發(fā)生電路設(shè)計(jì)PWM波可以由具有PWM輸出的單片機(jī)通過編程來得以產(chǎn)生,也可以采用PWM專用芯片來實(shí)現(xiàn)。當(dāng)PWM波的頻率太高時(shí),它對(duì)直流電機(jī)驅(qū)動(dòng)的功率管要求太高,而當(dāng)它的頻率太低時(shí),其產(chǎn)生的電磁噪聲就比較大,在實(shí)際應(yīng)用中,當(dāng)PWM波的頻率在18KHz左右時(shí),效果最好。在本系統(tǒng)內(nèi),采用了兩片4位數(shù)值比較器4585和一片12位串行計(jì)數(shù)器4040組成了PWM信號(hào)發(fā)生電路。兩片數(shù)值比較器4585,即圖上U2、U3的A組接12位串行4040計(jì)數(shù)輸出端Q2—Q9,而U2、U3的B組接到單片機(jī)的P1端口。只要改變P1端口的輸出值,那么就可以使得PWM信號(hào)的占空比發(fā)生變化,從而進(jìn)行調(diào)速控制。12位串行計(jì)數(shù)器4040的計(jì)數(shù)輸入端CLK接到單片機(jī)C51晶振的振蕩輸出XTAL2。計(jì)數(shù)器4040每來8個(gè)脈沖,其輸出Q2—Q9加1,當(dāng)計(jì)數(shù)值小于或者等于單片機(jī)P1端口輸出值X時(shí),圖中U2的(A>B)輸出端保持為低電平,而當(dāng)計(jì)數(shù)值大于單片機(jī)P1端口輸出值X時(shí),圖中U2的(A〉B)輸出端為高電平。隨著計(jì)數(shù)值的增加,Q2—Q9由全“1"變?yōu)槿?”時(shí),圖中U2的(A〉B)輸出端又變?yōu)榈碗娖?這樣就在U2的(A〉B)端得到了PWM的信號(hào),它的占空比為(255—第四章軟件設(shè)計(jì)4.1系統(tǒng)軟件總流程圖開始開始設(shè)堆棧清標(biāo)志清暫存清顯示T0初始化串行口初始化CPU開中斷掃描鍵盤速度采樣顯示圖4。1系統(tǒng)軟件主程序流程圖4。2程序清單/* LCD。C 128×64LCD驅(qū)動(dòng)程序頭文件*/#ifndefLCD_H_#defineLCD_H_#include〈REG51。H>//定義背光控制信號(hào)sbitLCD_BL=P1^4;//點(diǎn)亮背光燈voidLcdLightOn();//熄滅背光燈voidLcdLightOff();//清屏voidLcdClear();//初始化voidLcdInit();//顯示ASCⅡ碼voidLcdPutChar(unsignedcharc);//顯示字符串voidLcdPuts(unsignedchar*s);#endif//LCD_H_/* LCD。C 128×64LCD驅(qū)動(dòng)程序*/#include<INTRINS。H〉#include<ABSACC.H〉//#include"LCD。H”//定義屏幕光標(biāo)(取值0~63,光標(biāo)本身不可見)unsignedcharLcdCursor;inti,j;/*函數(shù):LcdLightOn()功能:點(diǎn)亮背光燈*/voidLcdLightOn(){ LCD_BL=1;}/*函數(shù):LcdLightOff()功能:熄滅背光燈*/voidLcdLightOff(){ LCD_BL=0;}/*函數(shù):LcdGetBF()功能:讀出狀態(tài)位BF返回: BF=1,表示忙,不可進(jìn)行任何操作 BF=0,表示不忙,可以進(jìn)行正常操作*/bitLcdGetBF(){ unsignedchardat; dat=XBYTE[0xD002]; //XBYTE的定義見<ABSACC。H〉 return(bit)(dat&0x80);}/*函數(shù):LcdWriteCmd()功能:向LCD發(fā)送命令參數(shù): cmd:命令字,詳見器件的數(shù)據(jù)手冊(cè)*/voidLcdWriteCmd(unsignedcharcmd){ while(LcdGetBF()); XBYTE[0xD000]=cmd;}/*函數(shù):LcdWriteDat()功能:向LCD寫入數(shù)據(jù)參數(shù):dat,要寫入的數(shù)據(jù)說明:目標(biāo)地址由地址計(jì)數(shù)器AC隱含指定,寫完后AC自動(dòng)加1*/voidLcdWriteDat(unsignedchardat){ while(LcdGetBF()); XBYTE[0xD001]=dat;}/*函數(shù):LcdReadDat()功能:從LCD讀出數(shù)據(jù)返回:讀出的數(shù)據(jù)*//*unsignedcharLcdReadDat(){ volatileunsignedchardat; while(LcdGetBF()); dat=XBYTE[0xD003]; dat=XBYTE[0xD003]; //需要連續(xù)執(zhí)行兩次才能夠讀出真正的數(shù)據(jù) returndat;}*//*函數(shù):LcdSetAC()功能:設(shè)置DDRAM(顯示數(shù)據(jù)RAM)的AC(地址計(jì)數(shù)器)值參數(shù): ac:地址計(jì)數(shù)器值,范圍0~63*/voidLcdSetAC(unsignedcharac){ ac&=0x3F; ac|=0x80; LcdWriteCmd(ac);}/*函數(shù):LcdClear()功能:LCD清屏,并使光標(biāo)回到0*/voidLcdClear(){ LcdWriteCmd(0x01); //清屏命令 LcdCursor=0;}/*函數(shù):LcdDelay()功能:延時(shí)(t*100)個(gè)機(jī)器周期*/voidLcdDelay(unsignedchart){ unsignedcharn; do { n=49; while(--n!=0); }while(-—t!=0);}/*函數(shù):LcdInit()功能:LCD初始化*/voidLcdInit(){ LcdWriteCmd(0x30); //設(shè)置基本指令集 LcdDelay(3); LcdWriteCmd(0x30); //設(shè)置基本指令集(需要再執(zhí)行一次) LcdDelay(1); LcdWriteCmd(0x0C); //開啟顯示 LcdDelay(3); LcdClear(); //清屏 LcdDelay(250); LcdWriteCmd(0x06); //設(shè)置進(jìn)入點(diǎn) LcdDelay(10);}/*函數(shù):LcdCheckAC()功能:根據(jù)光標(biāo)位置調(diào)整AC*/voidLcdCheckAC(){ switch(LcdCursor) { case16: LcdSetAC(16); break; case32: LcdSetAC(8); break; case48: LcdSetAC(24); break; case64: LcdCursor=0; LcdSetAC(0); break; default: break; }}/*函數(shù):LcdPutChar()功能:顯示ASCII碼參數(shù): c為可顯示的ASCII碼(0x20~0x7F)*/voidLcdPutChar(unsignedcharc){ LcdWriteDat(c); LcdCursor++; LcdCheckAC();}/*函數(shù):LcdPutHZ()功能:顯示漢字參數(shù): ch,cl:漢字編碼*/voidLcdPutHZ(unsignedcharch,unsignedcharcl){ if(LcdCursor&0x01) {//顯示漢字時(shí),必須偶地址對(duì)準(zhǔn),即光標(biāo)位置不能是奇數(shù) LcdPutChar('’); //額外輸出一個(gè)空格 } LcdWriteDat(ch); LcdWriteDat(cl); LcdCursor+=2; LcdCheckAC();}/*函數(shù):LcdPuts()功能:顯示字符串參數(shù): *s:要顯示的字符串(可同時(shí)包含ASCII碼和漢字)*/voidLcdPuts(unsignedchar*s){ unsignedcharch,cl; for(;;) { ch=*s++; if(ch==’\0’)break; if(ch<0x80) { LcdPutChar(ch); } else { cl=*s++; LcdPutHZ(ch,cl); } }}/* 顯示主程序*///#include”LCD.H"#include<REG51.H〉//#include"DELAY。H”/*包含延時(shí)函數(shù)的頭部文件delay_us();delay_ms();*//*函數(shù):Delay()延時(shí)1ms65.53st>0時(shí),延時(shí)(t*0。001)st=0時(shí)。延時(shí)65.53s*//********************************************************/unsignedcharSD[4]={'1’,'2',’3’,'4'};//速度設(shè)定unsignedcharFK[4]={'2',’2’,'3’,'4’};//速度反饋intD=0;//方向控制中間變量 unsignedintPwm=0;//速度產(chǎn)生中間變量unsignedintp=0;unsignedintValue=0; unsignedintPwm_Value=0; unsignedintm;//unsignedinta,b,c,d;sbitKEY1=P2^0;sbitKEY2=P2^1;sbitKEY3=P2^2;sbitMotorA=P1^6;sbitMotorB=P1^7; bitSWTR;bitSWTF;unsignedintSWTV;#definePwm_MAX255voidDelay(unsignedintT){SWTV=T;SWTR=1;while(!SWTF);SWTR=0;SWTF=0;}voidKEY(){ if(KEY1==0) { Value=Value+1; } if(KEY2==0) { Value=Value-1; } if(KEY3==0) { if(D==0) { D=1; } else { D=0; } }}voidPWM_Init(){static unsignedchart=0; t++; if(t〉Pwm_MAX)t=0; if(t<=Pwm_Value) { Pwm=1; } else { Pwm=0; } if(D==0) { MotorA=0; MotorB=Pwm; } else { MotorA=Pwm; MotorB=0; }}voidShow_Value(unsignedcharCH[]){inti;for(i=0;i〈4;i++) { LcdPutChar(CH[i]); }}voidShow_Init(){LcdWriteCmd(0x80);LcdPuts("速度設(shè)定");LcdWriteCmd(0x90);LcdPuts("速度反饋");LcdWriteCmd(0x88);LcdPuts(”速度方向");LcdWriteCmd(0x98);LcdPuts("測(cè)控071”);LcdWriteCmd(0x9c);LcdPuts("14號(hào)");} voidT_int()//定時(shí)器初始化{TMOD&=0x00;TMOD=0x25;TH1=TL1=0xa4;TH0=TL0=0;ET1=1;TR1=1;EA=1;}voidMeasureSpeed(){TH0=TL0=0;TR0=1;Delay(2420);TR0=0;TF0=0;m=2*(TH0*255+TL0);if(m>Value){Pwm_Value=Pwm_Value-1;}if(m〈Value){Pwm_Value=Pwm_Value+1;}FK[3]=(m%10)+48;FK[2]=(m/10%10)+48;FK[1]=(m/100%10)+48;FK[0]=(m/1000%10)+48;SD[3]=(Value%10)+48;SD[2]=(Value/10%10)+48;SD[1]=(Value/100%10)+48;SD[0]=(Value/1000%10)+48;}voidmain(){ unsignedchari;MotorA=0; MotorB=0;EA=0; T_int();Delay(50);LcdInit();//LCD初始化/*****************************************/for(i=0;i〈2;i++) { LcdLightOff(); Delay(660); LcdLightOn(); Delay(660); }Delay(660);LcdClear();Delay(660);/****************************************/EA=1; Show_Init();Delay(20); Value=200;Pwm_Value=Value;for(;;) { KEY();//按鍵處理 MeasureSpeed(); LcdWriteCmd(0x94); Show_Value(FK); LcdWriteCmd(0x84); Show_Value(SD); LcdWriteCmd(0x8c); if(D==0) { LcdPuts("正向”); } if(D==1) { LcdPuts("反向"); } }}voidT1ZD()interrupt3{TR1=0; // KEY();//按鍵處理 PWM_Init();if(SWTR)//延時(shí) { if(——SWTV==0)SWTF=1; }TR1=1;}第五章結(jié)論與展望本設(shè)計(jì)以8051為核心,利用單片機(jī)的運(yùn)算和控制功能,并采用系統(tǒng)化LCD顯示模塊實(shí)時(shí)顯示所測(cè)速度的設(shè)計(jì)方案,以及串口數(shù)據(jù)存儲(chǔ)電路和系統(tǒng)軟件。傳感器也是實(shí)現(xiàn)測(cè)量與控制不可缺少的環(huán)節(jié),是測(cè)控系統(tǒng)的關(guān)鍵部件,如果沒有傳感器對(duì)原始被測(cè)信號(hào)進(jìn)行準(zhǔn)確可靠的捕捉和轉(zhuǎn)換,一切準(zhǔn)確的測(cè)量和控制都將無法實(shí)現(xiàn)。工業(yè)生產(chǎn)過程的自動(dòng)化測(cè)量和控制,幾乎主要依靠各種傳感器來檢測(cè)和控制生產(chǎn)過程中的各種參量,使設(shè)備和系統(tǒng)正常運(yùn)行在最佳狀態(tài),從而保證生產(chǎn)的高效率和高質(zhì)量。本方案基本實(shí)現(xiàn)了直流電機(jī)的速度即時(shí)顯示,并可通過控制按鍵顯示速度,并通過PWM方波對(duì)直流電機(jī)的速度與轉(zhuǎn)向進(jìn)行控制。這一方案可以在很多領(lǐng)域有很好的應(yīng)用,例如我們現(xiàn)在交通不可缺少的代步工具—-電動(dòng)車的車速表,采用數(shù)字式顯示不僅一目了然,還很精確。隨著科技的不斷發(fā)展,傳感器的廣泛應(yīng)用,各種智能儀表都會(huì)采用數(shù)字式顯示,不僅讀取方便,而且精度更高,更可靠。附錄附一速度控制子程序voidT_int();//定時(shí)器初始化{Tmod=0x00;Tmod=0x25;TH1=TL1=0xa4;TH0=TL0=0;}voidDelay(unsignedintt}){SWTV=T;SWTR=1;WHILE(!SWTF);SWTR=0;SWTF=0}voidMeasureSpeed();//速度計(jì)算{intm;TH0=TL0=0TR0=1Delay(2500);TR0=0;TF0=0;m=TH0*255+TH0;//已知速度不吵過100a=m%10;b=m/10%10;c=m/100%10;d=m/1000%10;FK[3]=’a’;FK[3]=’b';FK[3]='c’;FK[3]='d’;}voidShow_init();{LcdWriteCmd(0x83);LcdPuts("速度方向");LcdWriteCmd();LcdPuts("速度設(shè)定”);LcdWriteCmd();//速度反饋}voidShowValue(){inti;for(i=0;i〈4;i++) { LcdPutChar(s++); }}voidT1ZD(){unsignedcharm=0;staticunsignedchart=0;TR1=0;t++;if(t〉=Pwm_MAX) t=0;if(t<=PwmVlue) { Pwm=1; }else { Pwm=0; }if(SWTR) { IF(--SWTV==0)SWTF=1; }TR1=1;if(m%4==0) { MeasureSpeed(); }}voidmain(){T_init();Show_init();while(1) { Lcd(); Delay(?);//更新速度由這里決定 }}void key()//速度加減處理 {if(key1==0) { PwmValue=PwmValue+2;//2由實(shí)際決定 }if(key2==0) { PwmValue=PwmValue—2; }if(key3==0)d=~d;}voidShow_Value(unsignedchar*s){inti;for(i=0;i〈4;i++) { LcdPutChar(*(s+i)) }}voidShow_Value(unsignedcharFK[])voidCopy_String(char*from,char*to){for(;*form!=’\0’;from++)}voidPwm(){staticunsignedchart=0; t++; if(t〉=Pwm_MAX)t=0; if(t〈=PwmValue)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年協(xié)議離婚手續(xù)辦理及情感咨詢一體化服務(wù)合同2篇
- 二零二四年個(gè)人對(duì)個(gè)人二手電動(dòng)車交易購(gòu)銷合同6篇
- 2024年度外貿(mào)企業(yè)疫情期間供應(yīng)鏈金融支持合同3篇
- 2024年全新小漁船買賣合同含船舶性能檢測(cè)協(xié)議3篇
- 2024醫(yī)院藥品采購(gòu)與患者滿意度提升合同3篇
- 2024年大型商場(chǎng)商場(chǎng)裝修施工監(jiān)理合同規(guī)范3篇
- 2024年智能電網(wǎng)控制系統(tǒng)設(shè)計(jì)與施工合同
- 2024年度大數(shù)據(jù)擔(dān)保反擔(dān)保合同3篇
- 2024年新型第三方專利權(quán)抵押擔(dān)保合同范本3篇
- 2024學(xué)校網(wǎng)絡(luò)信息中心技術(shù)支持派遣合同范本3篇
- 鋁合金壓鑄件的標(biāo)準(zhǔn)
- QC小組活動(dòng)管理制度
- 浙美版三年級(jí)上冊(cè)美術(shù)試卷(共4頁)
- 航空開傘器機(jī)械大報(bào)告
- 關(guān)于人工費(fèi)結(jié)清證明
- 全國(guó)國(guó)防教育示范學(xué)校形象標(biāo)識(shí)、金屬牌匾樣式
- 《網(wǎng)吧證件轉(zhuǎn)讓協(xié)議推薦》
- 重慶氣體行業(yè)協(xié)會(huì)
- 公司走賬合同范本
- 企業(yè)中高層人員安全管理培訓(xùn)--責(zé)任、案例、管理重點(diǎn)
- 小學(xué)五年級(jí)思政課教案三篇
評(píng)論
0/150
提交評(píng)論