![小功率直流電機(jī)調(diào)速論文_第1頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2021-12/15/48128faf-713e-4e05-b6da-2c742e047f2c/48128faf-713e-4e05-b6da-2c742e047f2c1.gif)
![小功率直流電機(jī)調(diào)速論文_第2頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2021-12/15/48128faf-713e-4e05-b6da-2c742e047f2c/48128faf-713e-4e05-b6da-2c742e047f2c2.gif)
![小功率直流電機(jī)調(diào)速論文_第3頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2021-12/15/48128faf-713e-4e05-b6da-2c742e047f2c/48128faf-713e-4e05-b6da-2c742e047f2c3.gif)
![小功率直流電機(jī)調(diào)速論文_第4頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2021-12/15/48128faf-713e-4e05-b6da-2c742e047f2c/48128faf-713e-4e05-b6da-2c742e047f2c4.gif)
![小功率直流電機(jī)調(diào)速論文_第5頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2021-12/15/48128faf-713e-4e05-b6da-2c742e047f2c/48128faf-713e-4e05-b6da-2c742e047f2c5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、小功率溫控直流電機(jī)調(diào)速工程實(shí)踐課題論文院 別: 控制工程學(xué)院 課程名稱: 工程實(shí)踐 指導(dǎo)教師: 伍瑾斐 專業(yè)班級(jí): 2011級(jí)電氣工程及其自動(dòng)化2班 小組成員(姓名,學(xué)號(hào)): 趙宇琪(2011072090) 張永強(qiáng)(2011072091) 陳德全(2011072092) 楊世偉(2011072089) 王明軍(2011072087) 矯正綱(2011072088) 目錄摘 要11 引言21.1課題背景及意義21.2本課題研究方法和目標(biāo)31.2.1 硬件部分31.2.2 軟件部分31.3主要技術(shù)介紹42 方案研究與主要芯片選擇52.1 總體方案原理及設(shè)計(jì)框圖52.2 系統(tǒng)主要芯片介紹52.2.1
2、 主控芯片STC89C52RC52.2.2 DS18B20數(shù)字溫度傳感器62.2.3 BTS7960驅(qū)動(dòng)模塊72.2.4 液晶顯示模塊設(shè)備73 硬件電路設(shè)計(jì)83.1 單片機(jī)最小系統(tǒng)83.1.1單片機(jī)晶振電路:83.1.2單片機(jī)復(fù)位電路93.1.3 系統(tǒng)供電模塊93.2 溫度傳感電路93.3 LCD1602液晶顯示103.4 按鍵輸入電路113.5 BTS7960驅(qū)動(dòng)電路123.6 系統(tǒng)整體原理圖及其PCB圖144單片機(jī)程序設(shè)計(jì)144.1 軟件編譯方法144.2 程序算法流程圖144.3模塊化程序注解155調(diào)試及其仿真255.1 硬件的調(diào)試255.2 軟件調(diào)試265.3仿真部分266.總結(jié)27參
3、考文獻(xiàn)282溫控小功率直流電動(dòng)機(jī)調(diào)速系統(tǒng)設(shè)計(jì)摘 要本設(shè)計(jì)就是基于溫度變化控制PWM信號(hào)從而對(duì)直流電機(jī)進(jìn)行調(diào)速,以STC89C52RC單片機(jī)為系統(tǒng)控制的核心,以DS18B20數(shù)字溫度傳感器作為測(cè)溫模塊,以驅(qū)動(dòng)芯片BTS7960組成電機(jī)的驅(qū)動(dòng)模塊,采集實(shí)時(shí)的環(huán)境溫度,并把該溫度值在LCD1602上顯示,組成了一個(gè)小型的閉環(huán)的溫控小功率直流電機(jī)調(diào)速的系統(tǒng)。為了實(shí)現(xiàn)電機(jī)調(diào)速的穩(wěn)定和快速,PWM控制方式配合BTS7960電機(jī)驅(qū)動(dòng)芯片對(duì)小功率直流電機(jī)進(jìn)行驅(qū)動(dòng)和調(diào)速是較好的調(diào)速系統(tǒng)解決方案。其中BTS7960內(nèi)部集成兩路H橋式驅(qū)動(dòng)電路。本系統(tǒng)中利用STC89C52RC單片機(jī)控制其產(chǎn)生的PWM信號(hào)占空比大小,
4、DS18B20用來檢測(cè)環(huán)境溫度,LCD1602液晶上會(huì)顯示當(dāng)前溫度和用戶設(shè)置的溫度。在本設(shè)計(jì)中編寫了C52調(diào)速程序、鍵盤輸入程序、測(cè)溫程序、 LCD1602顯示程序。經(jīng)測(cè)試,系統(tǒng)調(diào)速效果良好,測(cè)溫比較精確,能夠快速的使電機(jī)的轉(zhuǎn)速以溫度的變化而改變。本設(shè)計(jì)用的元器件比較少,結(jié)構(gòu)簡(jiǎn)單,維護(hù)方便于應(yīng)用到實(shí)際工業(yè)生產(chǎn)中。1 引言 1.1課題背景及意義 在現(xiàn)代的工業(yè)生產(chǎn)及應(yīng)用中,電動(dòng)機(jī)發(fā)揮著越來越重要的作用,由電動(dòng)機(jī)和生產(chǎn)機(jī)械組成的系統(tǒng)稱為電力拖動(dòng)系統(tǒng),電動(dòng)機(jī)是其重要的組成器件,電動(dòng)機(jī)的作用是將電能轉(zhuǎn)換為機(jī)械能,為生產(chǎn)機(jī)械提供動(dòng)力,是生產(chǎn)機(jī)械的原動(dòng)力,是生產(chǎn)機(jī)械的原動(dòng)機(jī),為生產(chǎn)提供了動(dòng)力。直流電機(jī)傳動(dòng)效
5、率高、運(yùn)行經(jīng)濟(jì)、操作簡(jiǎn)便,因而得到了越來越廣泛的應(yīng)用,特別是在現(xiàn)在的工業(yè)企業(yè)中,幾乎所有的生產(chǎn)機(jī)械都是由電動(dòng)機(jī)來拖動(dòng)的,例如各種機(jī)床、各種生產(chǎn)線、風(fēng)機(jī)、水泵,等等??梢院敛豢鋸埖恼f,沒有電動(dòng)機(jī)、沒有直流電機(jī),就沒有現(xiàn)代工業(yè)。這樣,電動(dòng)機(jī)在我國(guó)國(guó)民經(jīng)濟(jì)中得重要作用就不言而喻了,所以說電動(dòng)機(jī)在的日常的生活中是必不可少的。所以設(shè)計(jì)中非常有必要研究一下直流電機(jī)。電動(dòng)機(jī)是主要的動(dòng)力設(shè)備,直流電動(dòng)機(jī)就是將直流電能轉(zhuǎn)換成機(jī)械能(直流電動(dòng)機(jī))或?qū)C(jī)械能轉(zhuǎn)換為直流電能(直流發(fā)電機(jī))的旋轉(zhuǎn)電機(jī)。近年來,隨著科技的進(jìn)步,直流電機(jī)得到了越來越廣泛的應(yīng)用,直流電機(jī)具有優(yōu)良的調(diào)速特性,調(diào)速平滑,方便,調(diào)速范圍廣,過載能力
6、強(qiáng),能承受頻繁的沖擊負(fù)載,可實(shí)現(xiàn)頻繁的無極快速起動(dòng)、制動(dòng)和反轉(zhuǎn),由于在需要用到變速的場(chǎng)合有很多的應(yīng)用,所以需要滿足生產(chǎn)過程自動(dòng)化系統(tǒng)各種不同的特殊要求,從而對(duì)直流電機(jī)提出了較高的要求。這就使研究直流電機(jī)的轉(zhuǎn)速變的非常有意義,對(duì)日常的生活也有很大的幫助。1.2本課題研究方法和目標(biāo) 1.2.1 硬件部分 1、首先確定電機(jī)驅(qū)動(dòng)的電路,以及控制驅(qū)動(dòng)電路的方式。 2、要使其驅(qū)動(dòng)電路工作,則需要給驅(qū)動(dòng)電路信號(hào),也就是PWM控制信號(hào),這個(gè)信號(hào)就得要C52單片機(jī)產(chǎn)生。這就需要設(shè)計(jì)一下C52核心控制模塊,還有按鍵輸入門限溫度的模塊。 3、電機(jī)轉(zhuǎn)動(dòng)以后需要測(cè)量環(huán)境溫度,這時(shí)要用到測(cè)溫模塊來測(cè)量溫度,用實(shí)際的溫度來
7、控制C52單片機(jī)調(diào)節(jié)占空比,控制電機(jī)轉(zhuǎn)速的快慢。 4、本設(shè)計(jì)需要用到顯示模塊來進(jìn)行顯示預(yù)設(shè)門限溫度和實(shí)際溫度。1.2.2 軟件部分 1、 鍵盤輸入預(yù)設(shè)門限溫度程序,通過按鍵讓C52單片機(jī)保存一個(gè)門限溫度值。 2、C52單片機(jī)產(chǎn)生PWM信號(hào)的程序,這個(gè)占空比大小是可調(diào)的,設(shè)計(jì)為測(cè)溫模塊采集的實(shí)際環(huán)境溫度與用戶設(shè)置溫度之間的比較,從而決定輸出波形的占空比,然后產(chǎn)生要求的觸發(fā)信號(hào)(PWM信號(hào))去控制電機(jī)按照設(shè)計(jì)中要求的轉(zhuǎn)速工作。3、C52單片機(jī)控制LCD1602顯示的程序,顯示預(yù)置門限溫度和實(shí)際環(huán)境溫度。 本設(shè)計(jì)將實(shí)現(xiàn)直流電機(jī)閉環(huán)調(diào)速,溫度預(yù)置,實(shí)際環(huán)境溫度顯示的基本功能。1.3主要技術(shù)介紹 本設(shè)計(jì)
8、核心技術(shù)是脈寬調(diào)制(Pulse Width Modulation)控制技術(shù),該技術(shù)通常簡(jiǎn)稱為PWM控制技術(shù)。PWM(脈沖寬度調(diào)制)是通過控制固定電壓的直流電源開關(guān)頻率,改變負(fù)載兩端的電壓,從而達(dá)到控制要求的一種電壓調(diào)整方法。PWM可以應(yīng)用在許多方面,比如:電機(jī)調(diào)速、溫度控制、壓力控制等等。在PWM驅(qū)動(dòng)控制的調(diào)整系統(tǒng)中,按一個(gè)固定的頻率來接通和斷開電源,并且根據(jù)需要改變一個(gè)周期內(nèi)“接通”和“斷開”時(shí)間的長(zhǎng)短。通過改變直流電機(jī)電樞上電壓的“占空比”來達(dá)到改變平均電壓大小的目的,從而來控制電動(dòng)機(jī)的轉(zhuǎn)速。研究PWM是非常有實(shí)際意義的。 脈沖寬度調(diào)制(PWM)是一種對(duì)模擬信號(hào)電平進(jìn)行數(shù)字編碼的方法。通過
9、高分辨率計(jì)數(shù)器的使用,方波的占空比被調(diào)制用來對(duì)一個(gè)具體模擬信號(hào)的電平進(jìn)行編碼。PWM信號(hào)仍然是數(shù)字的,因?yàn)樵诮o定的任何時(shí)刻,滿幅值的直流供電要么完全有(ON),要么完全無(OFF)。電壓或電流源是以一種通(ON)或斷(OFF)的重復(fù)脈沖序列被加到模擬負(fù)載上去的。通的時(shí)候即是直流供電被加到負(fù)載上的時(shí)候,斷的時(shí)候即是供電被斷開的時(shí)候。只要帶寬足夠,任何模擬值都可以使用PWM進(jìn)行編碼。2 方案研究與主要芯片選擇2.1 總體方案原理及設(shè)計(jì)框圖本設(shè)計(jì)是基于STC89C51單片機(jī)為核心處理芯片來控制整個(gè)系統(tǒng)進(jìn)行運(yùn)行,系統(tǒng)的結(jié)構(gòu)框圖如下。圖2-1 系統(tǒng)框圖如圖所示,本設(shè)計(jì)的方案是,從輸入模塊的三個(gè)按鍵(個(gè)、
10、十、確定)設(shè)定門限溫度交單片機(jī)保存,我們用的數(shù)字溫度傳感器DS18B20(測(cè)溫范圍55+125,在-10+85時(shí)精度為±0.5)將采集到的環(huán)境溫度,轉(zhuǎn)換成數(shù)字信號(hào),通過單總線串行輸入的方式傳送到單片機(jī)中。單片機(jī)會(huì)將實(shí)際的環(huán)境溫度和用戶自己設(shè)定的環(huán)境溫度進(jìn)行比較,通過單片機(jī)程序確定該溫度對(duì)應(yīng)的占空比,然后通過定時(shí)器中斷的方式輸出PWM波給驅(qū)動(dòng)模塊,驅(qū)動(dòng)模塊用兩塊半橋芯片BTS7960組成的H橋電路組成,同時(shí)單片機(jī)還會(huì)通過寄存器操控的方式來控制LCD1602液晶,將環(huán)境的實(shí)時(shí)溫度顯示出來。全套系統(tǒng)采用9V外接電壓,信號(hào)模塊電壓通過LM7805將9V轉(zhuǎn)換為5V得到。2.2 系統(tǒng)主要芯片介紹
11、2.2.1 主控芯片STC89C52RCSTC89C52是STC公司生產(chǎn)的一種低功耗、高性能CMOS8位微控制器,具有 8K 在系統(tǒng)可編程Flash存儲(chǔ)器。STC89C52使用經(jīng)典的MCS-51內(nèi)核,但做了很多的改進(jìn)使得芯片具有傳統(tǒng)51單片機(jī)不具備的功能。在單芯片上,擁有靈巧的8 位CPU 和在系統(tǒng)可編程Flash,使得STC89C52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。 具有以下標(biāo)準(zhǔn)功能: 8k字節(jié)Flash,512字節(jié)RAM, 32 位I/O 口線,看門狗定時(shí)器,內(nèi)置4KB EEPROM,MAX810復(fù)位電路,3個(gè)16 位定時(shí)器/計(jì)數(shù)器,4個(gè)外部中斷,一個(gè)7向量4級(jí)中斷結(jié)
12、構(gòu)(兼容傳統(tǒng)51的5向量2級(jí)中斷結(jié)構(gòu)),全雙工串行口。另外 STC89C52 可降至0Hz 靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU 停止工作,允許RAM、定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。最高運(yùn)作頻率35MHz,6T/12T可選。下面是它的引腳圖。圖2-2-1 STC89C52RC芯片在本設(shè)計(jì)中STC89C52RC89是主控芯片,他負(fù)責(zé)處理外部電路輸入的信號(hào),也負(fù)責(zé)根據(jù)程序要求輸出相應(yīng)的控制信號(hào)。本設(shè)計(jì)選用此芯片作為主控芯片的主要原因是:其自帶的3個(gè)定時(shí)器可申請(qǐng)中斷,我們可
13、以根據(jù)程序設(shè)定使其輸出任何占空比的方波;STC89C52RC89具有抗干擾能力強(qiáng),保密性好,適合于工業(yè)控制,軍事應(yīng)用等方面;I/O口功能豐富,帶負(fù)載能力較強(qiáng)。2.2.2 DS18B20數(shù)字溫度傳感器溫度傳感器的種類眾多,在應(yīng)用與高精度、高可靠性的場(chǎng)合時(shí)DALLAS(達(dá)拉斯)公司生產(chǎn)的DS18B20溫度傳感器當(dāng)仁不讓。超小的體積,超低的硬件開消,抗干擾能力強(qiáng),精度高,附加功能強(qiáng),使得DS18B20成為我們的首選。圖2-2-2-1 DS18B20引腳圖在本設(shè)計(jì)中,我們采用DS18B20數(shù)字溫度傳感器來測(cè)量環(huán)境溫度,并將此溫度模擬量轉(zhuǎn)換為數(shù)字信號(hào)交單片機(jī)處理。對(duì)外部的溫度采集采用DS18B20數(shù)字溫
14、度傳感器實(shí)現(xiàn),通過此內(nèi)部溫度傳感器將溫度的變化轉(zhuǎn)換為對(duì)頻率的影響,通過內(nèi)置的計(jì)數(shù)器將采集到的信號(hào)轉(zhuǎn)換為用16位符號(hào)擴(kuò)展的二進(jìn)制補(bǔ)碼讀數(shù)形式提供,以0.0625/LSB形式表達(dá),其中S為符號(hào)位。圖2-2-2-2 DS18B20的RAM這是12位轉(zhuǎn)化后得到的12位數(shù)據(jù),存儲(chǔ)在DS18B20的兩個(gè)8比特的RAM中如圖7所示,二進(jìn)制中的前面5位是符號(hào)位,如果測(cè)得的溫度大于0,這5位為0,只要將測(cè)到的數(shù)值乘于0.0625即可得到實(shí)際溫度;如果溫度小于0,這5位為1,測(cè)到的數(shù)值需要取反加1再乘以0.0625即可得到實(shí)際溫度。例如+125的數(shù)字輸出為07D0H,+25.0625的數(shù)字輸出為0191H,-25
15、.0625的數(shù)字輸出為FF6FH,-55的數(shù)字輸出為FC90H,溫度代碼對(duì)照如表所示。圖2-2-2-3溫度代碼對(duì)照2.2.3 BTS7960驅(qū)動(dòng)模塊BTS7960的工作原理是搭建H橋驅(qū)動(dòng)電路,由于BTS7960是半橋型芯片,所以需要用兩塊芯片搭建全橋。電流最高43A,動(dòng)力十足,驅(qū)動(dòng)電流穩(wěn)定,驅(qū)動(dòng)效果好。由于其內(nèi)阻較小,所以其發(fā)熱量也小。以下是其邏輯控制表。BTS7960邏輯控制表PWM1PWM2ENOUT1OUT2正轉(zhuǎn)0%100%5V10100%0%反轉(zhuǎn)5V0%100%1100%0%0停止XX0XX2.2.4 液晶顯示模塊設(shè)備液晶顯示屏主要用于數(shù)字型鐘表和其他字符和數(shù)字的顯示。其顯示使用了兩片
16、極化材料,在它們之間是液體水晶溶液。設(shè)計(jì)中用到的字符型液晶模塊時(shí)一種用5*7點(diǎn)陣圖形來顯示字符的液晶顯示器,根據(jù)顯示的容量可以分為1行16個(gè)字、2行16個(gè)字、2行20個(gè)字等等,本設(shè)計(jì)中要用到的是2行16個(gè)字的液晶顯示。下圖是LCD1602的實(shí)物圖:圖2-2-4LCD1602相比于其他顯示器件,液晶顯示器件具有很多獨(dú)到的優(yōu)異特性: (1)低壓、微功耗。極低的工作電壓,只要23V即可工作,而工作電流僅幾微安,這是其他任何顯示器件無法比擬的。 (2)平板型結(jié)構(gòu)。平板型結(jié)構(gòu)便于大批量、自動(dòng)化生產(chǎn)。 (3)被動(dòng)型顯示。液晶顯示器本身不能發(fā)光,它靠調(diào)制外界光達(dá)到顯示目的,因此稱為被動(dòng)型顯示。液晶顯示不僅可
17、以用于室外顯示,而且還可以用于在陽(yáng)光等強(qiáng)烈照明環(huán)境下顯示。對(duì)于黑暗中不能觀看的缺點(diǎn),只要配上背光源,就可以克服。 (4)顯示信息量大。液晶顯示在同樣大小的顯示窗面積內(nèi),可以容納更多的像素,顯示更多的信息。 (5)易于彩色化。液晶本身雖然一般是沒有顏色的,但它實(shí)現(xiàn)彩色化卻很容易,方法也很多。 (6)壽命長(zhǎng)。液晶材料是有機(jī)高分子材料,具有極高的純度,液晶的驅(qū)動(dòng)電壓很低,驅(qū)動(dòng)電流更是微乎其微,因此壽命很長(zhǎng)。 (7)無輻射,無污染。液晶顯示器件使用時(shí)不會(huì)產(chǎn)生軟射線及電磁波的輻射9。 液晶顯示有驅(qū)動(dòng)簡(jiǎn)單,耗電量小,無輻射危險(xiǎn),平面顯示以及影像穩(wěn)定不閃爍等優(yōu)勢(shì),顯示清晰直觀,并且其抗干擾能力強(qiáng)、顯示的信息
18、量大。3 硬件電路設(shè)計(jì)3.1 單片機(jī)最小系統(tǒng)圖3-1單片機(jī)最小系統(tǒng)3.1.1單片機(jī)晶振電路:?jiǎn)纹瑱C(jī)系統(tǒng)里都有晶振,如圖所示(圖為內(nèi)部振蕩方式)。在單片機(jī)系統(tǒng)里晶振作用非常大,全稱叫晶體振蕩器,它結(jié)合單片機(jī)內(nèi)部電路產(chǎn)生單片機(jī)所需的時(shí)鐘頻率,單片機(jī)晶振提供的時(shí)鐘頻率越高,那么單片機(jī)運(yùn)行速度就越快,單片接的一切指令的執(zhí)行都是建立在單片機(jī)晶振提供的時(shí)鐘頻率。圖3-1-1晶振電路單片機(jī)晶振的作用是為系統(tǒng)提供基本的時(shí)鐘信號(hào)。通常一個(gè)系統(tǒng)共用一個(gè)晶振,便于各部分保持同步。有些通訊系統(tǒng)的基頻和射頻使用不同的晶振,而通過電子調(diào)整頻率的方法保持同步。當(dāng)采用內(nèi)部時(shí)鐘時(shí),片外連接石英晶體(或陶瓷振蕩器)和微調(diào)電容C1
19、、C2接在放大器的反饋回路中構(gòu)成并聯(lián)振蕩電路。對(duì)外接電容C1、C2起穩(wěn)定振蕩頻率、快速起振的作用。雖然沒有十分嚴(yán)格的要求但電容容量的大小會(huì)輕微影響振蕩頻率的高低、振蕩工作的穩(wěn)定性、起振的難易程度及溫度穩(wěn)定性,如果使用石英晶體,推薦使用30pf±10pf,而如使用陶瓷振蕩器最好選擇40pf±10pf,產(chǎn)生原始的振蕩脈沖信號(hào)。本設(shè)計(jì)選用12M的晶振,外接電容C4,C5 20pf。3.1.2單片機(jī)復(fù)位電路單片機(jī)啟動(dòng)時(shí)或工作到一定狀態(tài)時(shí)人為的需要復(fù)位,復(fù)位的實(shí)質(zhì)是單片機(jī)進(jìn)行初始化工作STC89C52RC單片機(jī)9腳是單片機(jī)復(fù)位端口,出現(xiàn)2個(gè)機(jī)器周期以上的高電平時(shí),單片機(jī)就執(zhí)行復(fù)位操作
20、。如果RST持續(xù)為高電平,單片機(jī)就處于循環(huán)復(fù)位狀態(tài)。所以復(fù)位電路如圖所示,當(dāng)信號(hào)模塊上電時(shí),5V瞬間接通,從0V變到5V這是相當(dāng)于交流電,電容相當(dāng)于導(dǎo)線,則RST呈現(xiàn)高電平,單片機(jī)實(shí)現(xiàn)上電復(fù)位,內(nèi)部進(jìn)行初始化程序的運(yùn)行,當(dāng)C3充好電時(shí),對(duì)直流短路,RST通過電阻接地,這時(shí)RST為低電平,復(fù)位結(jié)束,單片機(jī)正常結(jié)束。當(dāng)人為的需要復(fù)位時(shí),按下按鍵S4,RST直接與Vcc相連,另外電容通過開關(guān)回路放電,所以RST為高電平。當(dāng)按鍵松開時(shí),重復(fù)上電復(fù)位的過程。3.1.3 系統(tǒng)供電模塊本設(shè)計(jì)信號(hào)模塊采用7V供電,并與驅(qū)動(dòng)模塊共用7V。輸入電流3A左右。7V外接電壓通過穩(wěn)壓電路,變?yōu)?V電壓,共單片機(jī)和其它功
21、能電路使用。穩(wěn)壓電路如圖所示,采用典型的電容結(jié)合LM7805穩(wěn)壓芯片的結(jié)構(gòu)實(shí)現(xiàn)穩(wěn)壓5V輸出。3.2 溫度傳感電路如圖所示,傳感器有三個(gè)腳,1腳電源,2腳DQ數(shù)字輸出端接入單片機(jī)P3.3外部中斷1,3腳接地。注意在信號(hào)的輸出端接了10K的上拉電阻。DS18B20和單片機(jī)之間是單總線通信的方式,傳輸數(shù)據(jù)的方法為串行輸入。3.3 LCD1602液晶顯示圖3-3LCD1602如圖所示,本設(shè)計(jì)液晶采用LCD1602液晶模塊。用來顯示電機(jī)的預(yù)設(shè)轉(zhuǎn)速和實(shí)際的轉(zhuǎn)速。管腳1接地,管腳2接5V電壓源,給整個(gè)模塊進(jìn)行供電。3腳的主要功能是調(diào)節(jié)對(duì)比度,當(dāng)接VCC時(shí)的時(shí)候?qū)Ρ榷茸畹?,?dāng)接GND的時(shí)候?qū)Ρ榷茸罡?,為了調(diào)節(jié)
22、該對(duì)比度,本設(shè)計(jì)通過一個(gè)滑動(dòng)變阻器接地,可以實(shí)現(xiàn)對(duì)比度的調(diào)節(jié)。4腳為RS腳,接到C51單片的P2.0的端口。5腳為讀寫信號(hào)的端口,接到P2.1口。6腳為使能端,接P2.2口。7-14腳為數(shù)據(jù)總線的端口,分別接C51單片機(jī)的P0.0-P0.7口。工作過程就是通過數(shù)據(jù)總線把單片機(jī)的數(shù)據(jù)給傳到顯示模塊中,并把單片機(jī)的數(shù)據(jù)給顯示出來。3.4 按鍵輸入電路按鍵輸入電路由右圖所示,沒有鍵被按下時(shí)相當(dāng)于斷路,限流電阻上沒有電流流過輸出端輸出高電平,當(dāng)按鍵被按下,輸出端直接和地接通,輸出低電平。單片機(jī)會(huì)掃描I/O的狀態(tài),如果有鍵被按下,會(huì)相應(yīng)的做出反應(yīng)。有三個(gè)按鍵個(gè)位,十位,確定,每按下一次會(huì)加1,加到10會(huì)
23、自動(dòng)返回。當(dāng)兩位數(shù)溫度設(shè)定好后,按下確認(rèn)鍵,便會(huì)進(jìn)入主界面。3.5 BTS7960驅(qū)動(dòng)電路本設(shè)計(jì)的驅(qū)動(dòng)控制電路的實(shí)質(zhì)就是由兩片驅(qū)動(dòng)芯片BTS7960來組成H橋,在2管腳輸入PWM信號(hào),7腳輸入6V的電壓,3腳相當(dāng)于輸入一個(gè)高電平,6腳和5腳通過電阻接地,1腳直接接地。4腳接電機(jī),這時(shí)根據(jù)占空比的大小來決定4腳輸出電壓值的大小,電壓值越大,電機(jī)轉(zhuǎn)的速度越快越快,電壓值越小,電機(jī)轉(zhuǎn)的越慢。以實(shí)現(xiàn)電機(jī)的驅(qū)動(dòng)和PWM信號(hào)對(duì)電機(jī)的控制,電壓值的大小就相當(dāng)于是PWM波形占空比的反映,PWM可以實(shí)現(xiàn)對(duì)電機(jī)的調(diào)速。 3.6 系統(tǒng)整體原理圖及其PCB圖說明:由于輸入電路和驅(qū)動(dòng)電路是獨(dú)立模塊故沒有在同一塊板子上,
24、此PCB只包含電源模塊,測(cè)溫模塊,顯示模塊,單片機(jī)最小系統(tǒng)。還有就是為了對(duì)本PCB供電方便后來又在板子上外加了圓孔電源插孔。4單片機(jī)程序設(shè)計(jì)4.1 軟件編譯方法經(jīng)過一學(xué)期的工作硬件部分已經(jīng)調(diào)試完成,這學(xué)期我們對(duì)設(shè)計(jì)的軟件部分進(jìn)行了一系列調(diào)試,通過調(diào)試我們發(fā)現(xiàn)軟件部分才是系統(tǒng)的核心,算法的好壞決定了系統(tǒng)的優(yōu)劣。在軟件的編寫過程中,我們用到的編程語言是C語言,C語言的對(duì)語法結(jié)構(gòu)的要求并不是很嚴(yán)格,寫法多種多樣,但邏輯性和構(gòu)架結(jié)構(gòu)很強(qiáng),其指針運(yùn)算和位運(yùn)算為底層硬件操作提供了強(qiáng)大的支持。函數(shù)調(diào)用為模塊化編程提供了支持,我們就是用模塊化編程的這一思想在對(duì)每個(gè)模塊的程序進(jìn)行設(shè)計(jì)。這里還必須說一下我們做軟件
25、開發(fā)用到的幾個(gè)工具軟件,Keil Uvision2,MS Visual C+6.0以及仿真軟件Proteus 7 Professional.其中MS Visual C+6.0只是用來編輯程序,因?yàn)樵谝郧按笠簧蠈W(xué)C語言的時(shí)候?qū)S Visual C+6.0的使用已經(jīng)相當(dāng)熟悉,其自動(dòng)換行的功能非常方便,編輯出來的程序格式非常整齊標(biāo)準(zhǔn)。Keil Uvision4不用說,強(qiáng)大的單片機(jī)軟件編譯及仿真工具,在上面建立新的工程,選定相對(duì)應(yīng)的芯片,加入相應(yīng)的程序,生成.HEX文件,下載到單片機(jī)中。本來Keil Uvision2具有一點(diǎn)的仿真功能,但也只是數(shù)值仿真,所以我們用了更加強(qiáng)大的Proteus 7 Pr
26、ofessional來進(jìn)行仿真,按照硬件的原理圖畫出仿真圖樣,在將Keil Uvision2編譯好的.HEX文件載入到仿真圖當(dāng)中的單片機(jī)中,運(yùn)行仿真即可。通常在做程序調(diào)試的時(shí)候我們是將Keil Uvision4和Proteus 7 Professional配合使用。4.2 程序算法流程圖中斷觸發(fā)開始NOYESYESNONO重載定時(shí)器初值+ClickClick>=10?Click<=D?返回P1.0=0P1.0=1Click=0=1NOYEST<10?D=0YESYESNOT>=set-T?mpD=1020<=T<set-T?10<T<20?D=3
27、D=7YESNOYES顯示初始化定時(shí)器初始化是否確定?顯示設(shè)定溫度讀取并顯示溫度溫度設(shè)定等待中斷等待中斷等待中斷等待中斷說明:圖中set_T為用戶設(shè)定溫度的變量,D為占空比變量,T為實(shí)際測(cè)得的溫度值,Click為占空比變量。4.3模塊化程序注解說明:程序主要分三個(gè)模塊,顯示模塊,測(cè)溫模塊,主函數(shù),中斷函數(shù)。、顯示模塊顯示模塊分為顯示初始化函數(shù),顯示延遲函數(shù),寫寄存器函數(shù),讀寄存器函數(shù),初始化顯示函數(shù),顯示字符串函數(shù);/*-LCD1602初始化設(shè)置-*/void lcd_init()delay1ms(15);/*延時(shí)15微秒*/wr_com(0x38);delay1ms(5);/*38H設(shè)置顯示
28、模式*/wr_com(0x08);delay1ms(5); /*08H關(guān)閉顯示*/ wr_com(0x01);delay1ms(5); /*01H顯示清屏*/ wr_com(0x06);delay1ms(5);/*06H顯示光標(biāo)移動(dòng)設(shè)置*/ wr_com(0x0c);delay1ms(5);/*0cH顯示開機(jī)光標(biāo)設(shè)置*/*-寫數(shù)據(jù)LCD1602寄存器函數(shù)-*/(RS=H;RW=L;EN=)void wr_dat(unsigned char dat) /*dat為入口數(shù)據(jù)參數(shù)*/ delay1ms(1);/*延時(shí)1毫秒*/RS=1;RW=0;EN=0;P0=dat;/*數(shù)據(jù)寫入P0口*/dela
29、y1ms(1);EN=1;delay1ms(1);EN=0;/*-寫指令LCD1602寄存器函數(shù)-*/(RS=L;RW=L;EN=)void wr_com(unsigned char com)/*com為入口指令參數(shù)*/ delay1ms(1); /*延時(shí)1毫秒*/RS=0;RW=0;EN=0;P0=com; /*指令寫入P0口*/delay1ms(1);EN=1;delay1ms(1);EN=0;/*-LCD1602顯示字符串函數(shù)-*/void display(unsigned char *p)/* p待顯示字符串首指針*/while(*p!='0')/*當(dāng)字符串沒結(jié)束的時(shí)候
30、執(zhí)行*/wr_dat(*p);/*寫單字符*/p+;/*指針每次移動(dòng)1*/delay1ms(1);/*-LCD1602初始化顯示設(shè)置-*/void init_play() lcd_init();/*顯示初始化*/wr_com(0x80);/*在屏幕上80H的位置*/display(str1);/*寫字符串str1*/wr_com(0xc0); /*在屏幕上C0H的位置*/display(str2); /*寫字符串str2*/DS18B20模塊DS18B20模塊分為:測(cè)溫延時(shí)函數(shù)(單位微秒),ROM讀函數(shù),ROM寫函數(shù),溫度值讀取并轉(zhuǎn)換函數(shù),溫度值顯示函數(shù),DS18B20復(fù)位函數(shù)。/* -DS1
31、8B20復(fù)位函數(shù)-*/void ds1820rst()/*只是做復(fù)位處理,并未檢驗(yàn)復(fù)位*/ DQ = 1; /*DQ復(fù)位*/delay_18B20(4); /*延時(shí)*/DQ = 0; /*DQ拉低*/delay_18B20(100); /*精確延時(shí)大于480us*/DQ = 1; /*拉高*/delay_18B20(40); /* -寫ROM函數(shù)-*/void ds1820wr(uchar wdata)/* wdata 為入口指令形參*/unsigned char i;/*循環(huán)變量*/ for (i=8; i>0; i-)/*一個(gè)字節(jié)8位,循環(huán)8次寫入,每次寫一個(gè)字*/ DQ = 0;/
32、*拉低總線,開始時(shí)序*/DQ = (bit)wdata&0x01;/*指令的最后一位與00000001相與,如果指令最后一位是0,則位變量DQ=0寫入單片機(jī),若是1,則位變量DQ=1寫入單片機(jī)*delay_18B20(10);/*延時(shí)*/DQ = 1;/*釋放總線,為下次循環(huán)準(zhǔn)備*/wdata>>=1; /*指令次低位右移到最后一位*/*注:通過8次右移循環(huán),指令字節(jié)的每一位與00000001相與得到為變量DQ通過一條總線被串行輸入到DS18B20中。/* -讀ROM函數(shù)-*/uchar ds1820rd()/*最后需要返回讀到的數(shù)據(jù)*/ unsigned char i;/
33、*循環(huán)變量*/unsigned char dat = 0;/*數(shù)據(jù)變量,初值00000000*/for (i=8;i>0;i-)/*一個(gè)字節(jié)8位,8次循環(huán)讀出,每次讀一個(gè)字*/ DQ = 0; /*拉低總線,開始時(shí)序*/dat>>=1;/*dat右移1位*/DQ = 1; /*釋放總線*/if(DQ)/*如果位變量DQ=1,否則跳過*/dat|=0x80;/*dat或上10000000,并保存在dat上*/delay_18B20(10);/*延時(shí)*/return(dat);/返回?cái)?shù)據(jù)/注:?jiǎn)纹瑱C(jī)是從DS18B20的ROM中,從低位讀到高位,如果DQ=1,通過每次與100000
34、00相或得到數(shù)據(jù)的相應(yīng)位,再通過8次右移循環(huán),組成一個(gè)字節(jié),最后返回的到的字節(jié),即返回?cái)?shù)據(jù)。/* -讀取溫度并轉(zhuǎn)換函數(shù)-*/uint read_temp()/*讀取溫度值并轉(zhuǎn)換*/uchar a,b;ds1820rst();/*復(fù)位DS18B20*/ds1820wr(0xcc);/*跳過讀序列號(hào)*/ds1820wr(0x44);/*啟動(dòng)溫度轉(zhuǎn)換*/ds1820rst();/*復(fù)位DS18B20*/ds1820wr(0xcc);/*跳過讀序列號(hào)*/ ds1820wr(0xbe);/*讀取溫度*/EA=0;/*單片機(jī)使能端拉低關(guān)中斷*/a=ds1820rd();/*讀低4位*/b=ds1820rd
35、();/*度高4位*/EA=1;/*使能端釋放,開中斷*/tvalue=b;tvalue<<=8;tvalue=tvalue|a;/*以上是將ba組成一個(gè)12位二進(jìn)制的數(shù),給溫度變量*/ if(tvalue<0x0fff)/*判斷符號(hào),如果為正*/tflag=0; /*則符號(hào)標(biāo)志為0*/ else/*如果為負(fù)*/tvalue=tvalue+1;/*溫度值取反再加1*/tflag=1;/*符號(hào)標(biāo)志為負(fù)*/tvalue=tvalue*(0.0625*10);/*16進(jìn)制轉(zhuǎn)換為10進(jìn)制溫度值后并擴(kuò)大10倍*/Temp_value=tvalue/10;/*得到準(zhǔn)確的溫度值,精確到小數(shù)
36、點(diǎn)后1位*/return(tvalue);/*返回溫度值*/* -溫度值顯示函數(shù)-*/void ds1820disp()/溫度值顯示 uchar flagdat; disdata0=tvalue/1000+0x30;/百位數(shù) disdata1=tvalue%1000/100+0x30;/*十位數(shù)*/ disdata2=tvalue%100/10+0x30;/*個(gè)位數(shù)*/ disdata3=tvalue%10+0x30;/*小數(shù)位*/ wr_com(0xc6);if (tflag = 0)/*如果符號(hào)為正,則顯示空格*/flagdat = 0x20;/*顯示空格,0x20是液晶屏字符庫(kù)的該符號(hào)地
37、址碼*/else/*否則顯示'-'號(hào)*/flagdat = 0x2d;/*顯示'-',0x2d是液晶屏字符庫(kù)的該符號(hào)地址碼*/wr_dat(flagdat);/*顯示符號(hào)*/ wr_com(0xc7);if (disdata0 = 0x30)/*如果百位數(shù)為0,則顯示空格*/disdata0 = 0x20;wr_dat(disdata0);/*顯示百位數(shù)*/ wr_com(0xc8); wr_dat(disdata1);/*顯示十位*/ wr_com(0xc9); wr_dat(disdata2);/*顯示個(gè)位*/ wr_com(0xca); wr_dat(0x
38、2e);/*顯示小數(shù)點(diǎn)*/ wr_com(0xcb); wr_dat(disdata3);/*顯示小數(shù)位*/ wr_com(0xcd); wr_dat(0xdf);/*顯示溫度的C符號(hào),0xdf是液晶屏字符庫(kù)的該符號(hào)地址碼*/wr_com(0xce); wr_dat(0x43);/*顯示溫度的小圓圈符號(hào),0x43是液晶屏字符庫(kù)的該符號(hào)地址碼*/ 、按鍵輸入模塊/*-按鍵掃描-*/void keyscan()if (GW = 0)/*如果各位被按下*/delay_nms(10);/*消抖*/if (GW = 0)/*如果確實(shí)被按下*/while (!GW);/*等待釋放*/ge+;/個(gè)位數(shù)+1/
39、 if (ge = 10)/*等于10則返回0*/ge = 0;setdata1 = ge + '0'/*個(gè)位顯示變量*/else if (SW = 0)/*如果十位鍵被按下*/delay_nms(10);/*消抖*/if (SW = 0)/*確實(shí)被按下*/while (!SW);/*等待釋放*/shi+;if (shi = 10) /*等于10則返回0*/shi = 0;setdata0 = shi + '0' /*十位顯示變量*/else if (OK = 0)/確定鍵被按下/delay_nms(10); /*消抖*/if (OK = 0) /*確實(shí)被按下*
40、/while (!OK); /*等待釋放*/set_temp = shi * 10 + ge;/*計(jì)算設(shè)定的門限溫度*/set_ok = 1;/*確定標(biāo)志置1*/主函數(shù)主函數(shù)包括顯示器、定時(shí)器的初始化溫度的判斷,占空比變量的賦值。/* -主函數(shù)(main)-*/void main() init_play();/*初始化顯示*/TMOD=0x01;/*定時(shí)器模式選擇*/TH0=0xfc; /*定時(shí)器初值設(shè)定*/TL0=0x40;TR0=1;/*啟動(dòng)定時(shí)器*/ET0=1;/*開定時(shí)器中斷*/EA=1;/*開總中斷*/wr_com(0x01); wr_com(0x80); display("
41、;Please set Temp:"); wr_com(0xc0); display("your set Temp:");/*以上是顯示設(shè)置界面*/while (set_ok = 0)/*當(dāng)確定鍵沒有被按下*/keyscan();/*循環(huán)掃描按鍵*/wr_com(0xce);display(setdata);/*顯示設(shè)定溫度*/wr_com(0x01);/*當(dāng)確認(rèn)鍵被按下跳出上面循環(huán),顯示清屏*/while (set_ok = 1)/*顯示用戶輸入溫度確認(rèn)界面*/wr_com(0x80);display("your set Temp is");
42、wr_com(0xc5);display(setdata);wr_com(0xc7);wr_dat(0xdf);wr_com(0xc8);wr_dat(0x43);wr_com(0xc9);display(" ");delay_nms(1000);/*停留1s*/wr_com(0x01);set_ok = 2;/*標(biāo)志位置2,顯示完畢,跳出循環(huán)*/wr_com(0xc0);display(str2);while(set_ok = 2)wr_com(0x80);/*在屏幕*80H的地方*/display(str1);/*顯示字符串str1*/warning = 0;/*報(bào)警變
43、量初值為0*/read_temp();/*讀取溫度*/ds1820disp();/*顯示溫度*/if ( Temp_value >= set_temp)/*如果溫度大于等于設(shè)定溫度*/duty = 10;/*占空比變量為10*/warning = 1;/*溫度報(bào)警變量高電平*/else if(Temp_value >= 20 && Temp_value < set_temp)/*如果溫度大于等于20小于set_temp */duty = 7; /*占空比變量為7*/warning = 0;/*溫度報(bào)警變量低電平*/else if(Temp_value >
44、 10 && Temp_value < 20)/*如果溫度大于等于10小于20*/duty = 3;/*占空比變量為3*/warning = 0;/*溫度報(bào)警變量低電平*/else if ( Temp_value <= 10 )/*如果溫度小于等于10*/duty = 0;/*占空比變量為0*/warning = 0;/*溫度報(bào)警變量低電平*/中斷函數(shù)void timer0(void) interrupt 1 using 2 static uchar click=0; TH0=0xfc;/*定時(shí)器初值重載*/ TL0=0x40;+click;/*計(jì)數(shù)*/if (cl
45、ick>=10)/*如果加到10后,重新計(jì)數(shù)*/click=0;return;if (click <= duty)/*當(dāng)小于占空比值時(shí)輸出低電平,高于時(shí)是高電平,從而實(shí)現(xiàn)占空比的調(diào)整*/ PWM=0;else PWM=1; 5調(diào)試及其仿真5.1 硬件的調(diào)試我們對(duì)硬件的調(diào)試是分模塊進(jìn)行的,重點(diǎn)對(duì)電源模塊、測(cè)溫模塊和信號(hào)模塊進(jìn)行了調(diào)試。然后待各個(gè)模塊都可以正常工作時(shí),我們進(jìn)行整機(jī)聯(lián)調(diào)調(diào)試的過程中我們發(fā)現(xiàn),單片機(jī)運(yùn)行的情況和供電模塊的電能質(zhì)量有太大的關(guān)系,我們通過修改供電模塊的電容參數(shù)使其紋波系數(shù)減小,電壓穩(wěn)定。對(duì)于測(cè)溫模塊的調(diào)節(jié)非常艱難,開始不知道DS18B20的單總線需要上拉電阻,于是直接將DS18B20的信號(hào)線接入P3.3,后來才發(fā)現(xiàn)溫度信號(hào)根本不能傳輸,P3.3的狀態(tài)一為高電平,于是我們?cè)诰W(wǎng)上去查了資料才發(fā)現(xiàn)在信號(hào)線上要加上拉電阻。否則不會(huì)產(chǎn)生低電平。加了上拉電阻后,發(fā)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年岳陽(yáng)貨運(yùn)從業(yè)資格考試
- 2025年晉城貨運(yùn)資格證考試有哪些項(xiàng)目
- 2025年南京貨運(yùn)資格考試答案
- 2025年天津貨運(yùn)從業(yè)資格證考試題技巧答案詳解
- 電梯維護(hù)保養(yǎng)合同(2篇)
- 電力用戶協(xié)議(2篇)
- 2025年市婦聯(lián)執(zhí)委會(huì)議上的工作報(bào)告
- 浙教版數(shù)學(xué)七年級(jí)上冊(cè)2.5《有理數(shù)的乘方》聽評(píng)課記錄1
- 徐州報(bào)關(guān)委托協(xié)議
- 幼兒園后勤總務(wù)工作計(jì)劃范本
- 北京市房山區(qū)2024-2025學(xué)年七年級(jí)上學(xué)期期末英語試題(含答案)
- 2025年南陽(yáng)科技職業(yè)學(xué)院高職單招數(shù)學(xué)歷年(2016-2024)頻考點(diǎn)試題含答案解析
- 加油站復(fù)工復(fù)產(chǎn)方案
- 2025-2030年中國(guó)增韌劑(MBS高膠粉)行業(yè)發(fā)展現(xiàn)狀及前景趨勢(shì)分析報(bào)告
- 《鋼筋焊接及驗(yàn)收規(guī)程》(JGJ18)
- 2025年高考物理復(fù)習(xí)新題速遞之萬有引力與宇宙航行(2024年9月)
- 2025年首都機(jī)場(chǎng)集團(tuán)公司招聘筆試參考題庫(kù)含答案解析
- 2025云南省貴金屬新材料控股集團(tuán)限公司面向高校畢業(yè)生專項(xiàng)招聘144人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 蘇州市區(qū)2024-2025學(xué)年五年級(jí)上學(xué)期數(shù)學(xué)期末試題一(有答案)
- 暑期預(yù)習(xí)高一生物必修二知識(shí)點(diǎn)
- 醫(yī)院人體器官捐獻(xiàn)及獲取流程
評(píng)論
0/150
提交評(píng)論