版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、哈爾濱工業(yè)大學(xué)(威海)生產(chǎn)實(shí)習(xí)報(bào)告生產(chǎn)實(shí)習(xí)報(bào)告姓名:張圣悅同組員:赫亮,金林,陳龍班級(jí):自動(dòng)化三班學(xué)號(hào):130210307指導(dǎo)教師:謝瑋,邵春濤2016年7月目錄1. 機(jī)器人控制器的焊接和調(diào)試31.1 控制器的原理圖分析31.2 印制板圖分析171.3 控制器主板的焊接201.4 控制器成品測(cè)試211.4 控制器外圍器件綜合測(cè)試1012. 自選項(xiàng)目式實(shí)訓(xùn)1293. 智能機(jī)器人的學(xué)習(xí)和操作1443.1 AGV小車(chē)的學(xué)習(xí)和操作1443.2 復(fù)雜智能機(jī)器人的學(xué)習(xí)和操作1454. K215電源柔性開(kāi)關(guān)自動(dòng)化生產(chǎn)線的參觀1465. 談?wù)勀鷮?duì)工業(yè)4.0的認(rèn)識(shí)1466.生產(chǎn)實(shí)習(xí)的收獲與體會(huì)(500字以內(nèi))1
2、471. 機(jī)器人控制器的焊接和調(diào)試控制器以STC89C52RC型號(hào)單片機(jī)為核心,并外接模塊以實(shí)現(xiàn)特定的功能。STC89C52RC是一個(gè)低功耗,高性能CMOS8位單片機(jī),片內(nèi)含4kBytesISP(In-systemprogrammable)的可反復(fù)擦寫(xiě)1000次的Flash只讀程序存儲(chǔ)器,器件采用STC公司的高密度、非易失性存儲(chǔ)技術(shù)制造,兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng)及80C51引腳結(jié)構(gòu)。STC89C52RC具有如下特點(diǎn):40個(gè)引腳,4kBytesFlash片內(nèi)程序存儲(chǔ)器,128bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM),32個(gè)外部雙向輸入/輸出(I/O)口,5個(gè)中斷優(yōu)先級(jí)2層中斷嵌套中斷,2個(gè)1
3、6位可編程定時(shí)計(jì)數(shù)器,2個(gè)全雙工串行通信口,看門(mén)狗(WDT)電路,片內(nèi)時(shí)鐘振蕩器??臻e模式下,CPU暫停工作,而RAM定時(shí)計(jì)數(shù)器,串行口,外中斷系統(tǒng)可繼續(xù)工作,掉電模式凍結(jié)振蕩器而保存RAM的數(shù)據(jù),停止芯片其它功能直至外中斷激活或硬件復(fù)位。同時(shí)該芯片還具有PDIP、TQFP和PLCC等三種封裝形式,以適應(yīng)不同產(chǎn)品的需求。外部資源共包括:4個(gè)擴(kuò)展I/O口、蜂鳴器、繼電器、ch340串口芯片、紅外接收器、外部rom、超聲波測(cè)距模塊、獨(dú)立按鍵、矩陣鍵盤(pán)、led燈、2個(gè)全雙工串行通信口、液晶顯示模塊、八位共陽(yáng)數(shù)碼管、isp下載口、18b20接口等。1.1 控制器的原理圖分析畫(huà)出控制器的電路原理圖,并對(duì)
4、每個(gè)部分進(jìn)行介紹,特別是對(duì)所用IC芯片的功能進(jìn)行分析和歸納。還有外圍模塊的介紹(1) 控制器總的原理圖如圖1.1.1所示。(2) 4個(gè)擴(kuò)展I/O口原理圖如圖1.1.2所示,用于與外部設(shè)備的連接。(3) +5v與GND接地如圖1.1.3所示,提供電源和共地端。(4) 繼電器模塊如圖1.1.4所示,實(shí)現(xiàn)小電流控制大電流電路。(5) CH340 USB轉(zhuǎn)串口模塊如圖1.1.5所示,其所用的CH340芯片是一個(gè)USB總線的轉(zhuǎn)接芯片,實(shí)現(xiàn)USB轉(zhuǎn)串口、USB轉(zhuǎn)IrDA紅外或者USB轉(zhuǎn)打印口。在串口方式下,CH340提供常用的MODEM聯(lián)絡(luò)信號(hào),用于為計(jì)算機(jī)擴(kuò)展異步串口,或者將普通的串口設(shè)備直接升級(jí)到US
5、B總線。(6) 無(wú)線模塊超聲波測(cè)距模塊如圖1.1.6所示,用于連接外部設(shè)備實(shí)現(xiàn)測(cè)距功能。(7) 跳線集中管理模塊如圖1.1.7所示,將需要在不同情況下斷開(kāi)和連接的接口集中在一起,用跳線帽控制通斷。(8) ROM模塊如圖1.1.8所示,其所用的CAT24C08芯片是一個(gè)8K位串行CMOS E2PROM,內(nèi)部含有1024個(gè)8位字節(jié),CATALYST公司的先進(jìn)CMOS技術(shù)實(shí)質(zhì)上減少了器件的功耗,CAT24C08有一個(gè)16字節(jié)頁(yè)寫(xiě)緩沖器,該器件通過(guò)I2C總線接口進(jìn)行操作有一個(gè)專(zhuān)門(mén)的寫(xiě)保護(hù)功能。(9) A/D和D/A轉(zhuǎn)換模塊如圖1.1.9所示,其所采用的PCF8591是單片、單電源、低功耗8位CMOS數(shù)
6、據(jù)采集器件,具有4個(gè)模擬輸入、1個(gè)模擬輸出和一個(gè)串行I2C總線接口。3個(gè)地址引腳A0 A1 A2用于編程硬件地址,允許最多將8個(gè)器件連接至總線而不需要額外的硬件。器件功能包括模擬輸入、片上跟蹤和保持、8位模數(shù)轉(zhuǎn)換和8位數(shù)模轉(zhuǎn)換,最大轉(zhuǎn)換速率取決于I2C總線的速率。(10) 蜂鳴器模塊如圖1.1.10所示。(11) 紅外接收器模塊如圖1.1.11所示,和附帶的遙控器配合使用來(lái)實(shí)現(xiàn)遙控。(12) Led燈模塊如圖1.1.12所示。(13) 4*4矩陣鍵盤(pán)模塊如圖1.1.13所示。通過(guò)軟件掃描實(shí)現(xiàn)擴(kuò)展16按鍵。(14) 獨(dú)立按鍵和中斷按鍵如圖1.1.14所示。(15) 液晶接口模塊如圖1.1.15所
7、示。(16) 8位共陽(yáng)數(shù)碼管模塊如圖1.1.16所示。(17) 電源指示和通信模塊如圖1.1.17所示。(18) 時(shí)鐘芯片模塊如圖1.1.18所示,DS1302是美國(guó)DALLAS公司推出的一種高性能、低功耗的實(shí)時(shí)時(shí)鐘芯片,附加31字節(jié)靜態(tài)RAM,采用SPI三線接口與CPU進(jìn)行同步通信,并可采用突發(fā)方式一次傳送多個(gè)字節(jié)的時(shí)鐘信號(hào)和RAM數(shù)據(jù)。實(shí)時(shí)時(shí)鐘可提供秒、分、時(shí)、日、星期、月和年,一個(gè)月小與31天時(shí)可以自動(dòng)調(diào)整,且具有閏年補(bǔ)償功能。工作電壓寬達(dá)2.55.5V。采用雙電源供電(主電源和備用電源),可設(shè)置備用電源充電方式,提供了對(duì)后背電源進(jìn)行涓細(xì)電流充電的能力。(19) 外部電源供電和usb供電
8、模塊如圖1.1.19所示。(20) 串口通訊模塊如圖1.1.20所示,其所用的MAX232是美信公司專(zhuān)門(mén)為電腦的RS-232標(biāo)準(zhǔn)串口設(shè)計(jì)的單電源電平轉(zhuǎn)換芯片,使用+5v供電。片載電荷泵具有升壓、電壓極性反轉(zhuǎn)能力,能夠產(chǎn)生+10V和-10V電壓,功耗低,典型供電電流5mA,內(nèi)部集成兩個(gè)RS-232C接收器,雙串口可以分別接單片機(jī)的串行通信口或者實(shí)驗(yàn)板的其它串行通信接口。(21) 18B20接口如圖1.1.21所示。(22) ISP下載口如圖1.1.22所示。(23) 復(fù)位電路如圖1.1.23所示。圖1.1.1總原理圖圖1.1.2 P0、P1、P2、P3口圖1.1.3 +5v擴(kuò)展和GND接地圖1.
9、1.4 繼電器圖1.1.5 CH340T USB轉(zhuǎn)串口圖1.1.6無(wú)線模塊超聲波測(cè)距模塊圖1.1.7 跳線集中管理模塊圖1.1.8 I2C ROM 24C08圖1.1.9 A/D、D/A轉(zhuǎn)換圖1.1.10 蜂鳴器圖1.1.11紅外接收器圖1.1.12 2*8位LED流水燈圖1.1.13 4*4矩陣鍵盤(pán)圖1.1.14 獨(dú)立按鍵和中斷按鍵圖1.1.15 液晶接口圖1.1.16 8位共陽(yáng)數(shù)碼管圖1.1.17 電源和通信指示圖1.1.18 時(shí)鐘芯片DS1302圖1.1.19 外部電源供電與USB供電圖1.1.20 MAX232串口通信圖1.1.21 18B20 接口圖1.1.22 ISP下載口圖1.1
10、.23 51/AVR復(fù)位電路1.2 印制板圖分析 印制電路設(shè)計(jì)分為兩部分,即電路設(shè)計(jì)和印制板圖設(shè)計(jì)。電路設(shè)計(jì)屬于電路原理圖或邏輯圖設(shè)計(jì)。包括根據(jù)產(chǎn)品性能相測(cè)試要求,進(jìn)行電路特性和參數(shù)的確定、元器件的選擇、電路原理圖和邏輯圖繪制和編制元器件表等。印制板圖是在PCB的電路設(shè)計(jì)基礎(chǔ)上,根據(jù)電路原理圖和計(jì)算機(jī)輔助設(shè)計(jì)(CAD)生成的網(wǎng)絡(luò)表按設(shè)計(jì)規(guī)則進(jìn)行設(shè)計(jì),設(shè)計(jì)的文件通常包括布設(shè)總圖、原版圖形(含導(dǎo)電圖形和非導(dǎo)電圖形)、加工圖和組裝圖等。PCB圖設(shè)計(jì)可以采用人工設(shè)計(jì)或計(jì)算機(jī)輔助設(shè)計(jì),當(dāng)采用CAD設(shè)計(jì)時(shí),在電子文件中應(yīng)包括鉆孔、布線、光繪圖形測(cè)試以且程序庫(kù)和特殊工具(如網(wǎng)印焊膏的模板)等用的數(shù)控?cái)?shù)據(jù)。設(shè)
11、計(jì)印制板圖時(shí),首先需要對(duì)所選用組件器及各種插座的規(guī)格、尺寸、面積等有完全的了解;對(duì)各部件的位置安排作合理的、仔細(xì)的考慮,主要是從電磁場(chǎng)兼容性、抗干擾的角度,走線短,交叉少,電源,地的路徑及去耦等方面考慮。各部件位置定出后,就是各部件的聯(lián)機(jī),按照電路圖連接有關(guān)引腳,完成的方法有多種,印刷線路圖的PCB設(shè)計(jì)有計(jì)算機(jī)輔助PCB設(shè)計(jì)與手工PCB設(shè)計(jì)方法兩種。 計(jì)算機(jī)輔助制圖,現(xiàn)在有多種繪圖軟件,功能各異,但總的說(shuō)來(lái),繪制、修改較方便,并且可以存盤(pán)貯存和打印。 接著,確定PCB板所需的尺寸,并按原理圖,將各個(gè)元器件位置初步確定下來(lái),然后經(jīng)過(guò)不斷調(diào)整使布局更加合理,PCB板中各組件之間的接線安排方式如下:
12、(1)印刷電路中不允許有交叉電路,對(duì)于可能交叉的線條,可以用“鉆”、“繞”兩種辦法解決。即,讓某引線從別的電阻、電容、三極管腳下的空隙處“鉆”過(guò)去,或從可能交叉的某條引線的一端“繞”過(guò)去,在特殊情況下如何電路很復(fù)雜,為簡(jiǎn)化PCB設(shè)計(jì)也允許用導(dǎo)線跨接,解決交叉電路問(wèn)題。(2)電阻、二極管、管狀電容器等組件有“立式”,“臥式”兩種安裝方式。立式指的是組件體垂直于電路板安裝、焊接,其優(yōu)點(diǎn)是節(jié)省空間,臥式指的是組件體平行并緊貼于電路板安裝,焊接,其優(yōu)點(diǎn)是組件安裝的機(jī)械強(qiáng)度較好。這兩種不同的安裝組件,PCB板上的組件孔距是不一樣的。(3)同一級(jí)電路的接地點(diǎn)應(yīng)盡量靠近,并且本級(jí)電路的電源濾波電容也應(yīng)接在該
13、級(jí)接地點(diǎn)上。特別是本級(jí)晶體管基極、發(fā)射極的接地點(diǎn)不能離得太遠(yuǎn),否則因兩個(gè)接地點(diǎn)間的銅箔太長(zhǎng)會(huì)引起干擾與自激,采用這樣“一點(diǎn)接地法”的電路,工作較穩(wěn)定,不易自激。(4)總地線必須嚴(yán)格按高頻中頻低頻一級(jí)級(jí)地按弱電到強(qiáng)電的順序排列原則,切不可隨便翻來(lái)復(fù)去亂接,級(jí)與級(jí)間寧肯可接線長(zhǎng)點(diǎn),也要遵守這一規(guī)定。特別是變頻頭、再生頭、調(diào)頻頭的接地線安排要求更為嚴(yán)格,如有不當(dāng)就會(huì)產(chǎn)生自激以致無(wú)法工作。調(diào)頻頭等高頻電路常采用大面積包圍式地線,以保證有良好的屏蔽效果。(5)強(qiáng)電流引線(公共地線,功放電源引線等)應(yīng)盡可能寬些,以降低布線電阻及其電壓降,可減小寄生耦合而產(chǎn)生的自激。(6)阻抗高的走線盡量短,阻抗低的走線可
14、長(zhǎng)一些,因?yàn)樽杩垢叩淖呔€容易發(fā)笛和吸收信號(hào),引起電路不穩(wěn)定。電源線、地線、無(wú)反饋組件的基極走線、發(fā)射極引線等均屬低阻抗走線,射極跟隨器的基極走線、收錄機(jī)兩個(gè)聲道的地線必須分開(kāi),各自成一路,一直到功效末端再合起來(lái),如兩路地線連來(lái)連去,極易產(chǎn)生串音,使分離度下降。此外,PCB板圖設(shè)計(jì)中應(yīng)注意下列幾點(diǎn):1布線方向:從焊接面看,組件的排列方位盡可能保持與原理圖相一致,布線方向最好與電路圖走線方向相一致,因生產(chǎn)過(guò)程中通常需要在焊接面進(jìn)行各種參數(shù)的檢測(cè),故這樣做便于生產(chǎn)中的檢查,調(diào)試及檢修(注:指在滿足電路性能及整機(jī)安裝與面板布局要求的前提下)。2各組件排列,分布要合理和均勻,力求整齊,美觀,結(jié)構(gòu)嚴(yán)謹(jǐn)?shù)墓?/p>
15、藝要求。3電阻,二極管的放置方式:分為平放與豎放兩種:(1)平放:當(dāng)電路組件數(shù)量不多,而且電路板尺寸較大的情況下,一般是采用平放較好;對(duì)于1/4W以下的電阻平放時(shí),兩個(gè)焊盤(pán)間的距離一般取4/10英寸,1/2W的電阻平放時(shí),兩焊盤(pán)的間距一般取5/10英寸;二極管平放時(shí),1N400X系列整流管,一般取3/10英寸;1N540X系列整流管,一般取45/10英寸。(2)豎放:當(dāng)電路組件數(shù)較多,而且電路板尺寸不大的情況下,一般是采用豎放,豎放時(shí)兩個(gè)焊盤(pán)的間距一般取12/10英寸。4電位器:IC座的放置原則(1)電位器:在穩(wěn)壓器中用來(lái)調(diào)節(jié)輸出電壓,故PCB設(shè)計(jì)電位器應(yīng)滿中順時(shí)針調(diào)節(jié)時(shí)輸出電壓升高,反時(shí)針調(diào)
16、節(jié)器節(jié)時(shí)輸出電壓降低;在可調(diào)恒流充電器中電位器用來(lái)調(diào)節(jié)充電電流折大小,PCB設(shè)計(jì)電位器時(shí)應(yīng)滿中順時(shí)針調(diào)節(jié)時(shí),電流增大。電位器安放位軒應(yīng)當(dāng)滿中整機(jī)結(jié)構(gòu)安裝及面板布局的要求,因此應(yīng)盡可能放軒在板的邊緣,旋轉(zhuǎn)柄朝外。(2)IC座:設(shè)計(jì)PCB板圖時(shí),在使用IC座的場(chǎng)合下,一定要特別注意IC座上定位槽放置的方位是否正確,并注意各個(gè)IC腳位是否正確,例如第1腳只能位于IC座的右下角線或者左上角,而且緊靠定位槽(從焊接面看)。5進(jìn)出接線端布置(1)相關(guān)聯(lián)的兩引線端不要距離太大,一般為23/10英寸左右較合適。(2)進(jìn)出線端盡可能集中在1至2個(gè)側(cè)面,不要太過(guò)離散。6PCB設(shè)計(jì)布線圖時(shí)要注意管腳排列順序,組件腳
17、間距要合理。7在保證電路性能要求的前提下,PCB設(shè)計(jì)時(shí)應(yīng)力求走線合理,少用外接跨線,并按一定順充要求走線,力求直觀,便于安裝,高度和檢修。8PCB設(shè)計(jì)布線圖時(shí)走線盡量少拐彎,力求線條簡(jiǎn)單明了。9布線條寬窄和線條間距要適中,電容器兩焊盤(pán)間距應(yīng)盡可能與電容引線腳的間距相符;10PCB設(shè)計(jì)應(yīng)按一定順序方向進(jìn)行,例如可以由左往右和由上而下的順序進(jìn)行。1.3 控制器主板的焊接(1)焊接前準(zhǔn)備 物料:留意焊接元件有否極性要求,元件腳有否氧化、油污等。數(shù)量要符合清單上面數(shù)量,取料不能超過(guò)2顆料,用剩的料要注意放回原處。 工具:視焊接元件而定,應(yīng)有錫線座、元件盒、焊槍、焊臺(tái)、鑷子、剪鉗等。 電路板:檢查板子線
18、路,是否有短路、斷路等。清單:請(qǐng)確認(rèn)好是正確的清單。 工作臺(tái):必須整潔,干凈,要有防靜電要求,應(yīng)注意采用防靜電工/器具,同時(shí)操作員應(yīng)戴好防靜電手腕帶。 (2)實(shí)施焊接 烙鐵的安全使用和科學(xué)使用,保持烙鐵頭的清潔,烙鐵頭的工作溫度:有鉛焊接一般溫度在350C,無(wú)鉛焊接一般溫度在380C,不使用時(shí)應(yīng)關(guān)閉電源。 焊接時(shí)不可施加壓力,一般焊點(diǎn)在大約23秒鐘完成,應(yīng)注意在焊錫尚未完全凝固以前不要晃動(dòng)接元件,以免造成虛焊,要正確使用助焊劑。 焊接操作的正確姿勢(shì),一般情況下,烙鐵到鼻子的距離應(yīng)該不少于20cm,通常以30cm為宜。 焊接元器件極性的判別,焊接元器件應(yīng)整齊,居中,貼板面。 其中器件焊接順序以先
19、焊接好的元件不影響后面元件的焊接為原則,一般先焊接體積較小的電阻電容等器件,后焊接體積較大的元件,接插件最后焊接。 要正確使用工具,工具使用完要放好。 焊接后廢料的處理,應(yīng)清理干凈,及時(shí)丟到垃圾桶里。 盡量避免重復(fù)焊接。我負(fù)責(zé)焊接電池、cpu底座部分。其中,有電池在焊接的時(shí)候需要區(qū)分正負(fù)極。通過(guò)老師的耐心解答,我知道了電池有“+”一面為正極。焊接過(guò)程中,我出現(xiàn)了一個(gè)錯(cuò)誤:把底座和旁邊的排阻焊在了一起,在同學(xué)的幫助下,我及時(shí)發(fā)現(xiàn)了錯(cuò)誤并在老師的指導(dǎo)下做出了改正。1.4 控制器成品測(cè)試1) LED等的測(cè)試測(cè)試結(jié)果為:LED燈循環(huán)左移閃爍。利用循環(huán)左移函數(shù)流水燈。其程序如下: #include#in
20、clude void delayms(unsigned char ms)/ 延時(shí)子程序unsigned char i;while(ms-)for(i = 0; i 120; i+);main()unsigned char LED;LED = 0xfe;P0 = LED;while(1)delayms(250);LED = _crol_(LED,1);/循環(huán)左移1位,點(diǎn)亮下一個(gè)LEDP0 = LED;2) 鍵盤(pán)的測(cè)試 測(cè)試結(jié)果為:根據(jù)掃描鍵盤(pán)返回的鍵值編碼查鍵值編碼表,從而得到鍵值并送數(shù)碼管顯示。開(kāi)機(jī)時(shí),數(shù)碼管顯示“”。當(dāng)鍵按下時(shí),數(shù)碼管顯示按下鍵的鍵值,蜂鳴器響一聲。 4*4矩陣鍵盤(pán)(查表法)
21、,其程序如下: #include #include #define uchar unsigned char#define uint unsigned intsbit BEEP = P36; /蜂鳴器驅(qū)動(dòng)線uchar key;unsigned char code disp_code= 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8, 0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xbf;unsigned char code key_code= 0xee,0xde,0xbe,0x7e,0xed,0xdd,0xbd,0x7d, 0x
22、eb,0xdb,0xbb,0x7b,0xe7,0xd7,0xb7,0x77 ;/* 延時(shí)子函數(shù)*/void delayms(uint ms) uchar t; while(ms-) for(t = 0; t 120; t+); /* x*0.14MS 延時(shí)子函數(shù)*/void delay0(uchar x) uchar i; while(x-) for (i = 0; i13; i+) ; /* 蜂鳴器驅(qū)動(dòng)子函數(shù)*/void beep() uchar i; for (i=0;i180;i+) delay0(5); BEEP=!BEEP; /BEEP取反 BEEP=1; /關(guān)閉蜂鳴器 delaym
23、s(250); /延時(shí) /*鍵盤(pán)掃描子函數(shù)*/uchar keyscan() uchar scan1,scan2,keycode,j; P1=0xf0; scan1=P1; if(scan1&0xf0)!=0xf0) /判鍵是否按下 delayms(30); /延時(shí)30ms scan1=P1; if(scan1&0xf0)!=0xf0) /二次判鍵是否按下 P1=0x0f; scan2=P1; keycode=scan1|scan2; /組合成鍵編碼 for(j=0;j=15;j+) if(keycode= key_codej) /查表得鍵值 key=j; return(key); else
24、P1=0xff; return (16);/* 判鍵是否按下子函數(shù)*/void keydown() P1=0xf0; if(P1&0xf0)!=0xf0) keyscan(); P0=disp_codekey; beep(); /*主函數(shù)*/main() P0 = 0xbf; P2 = 0x7f; /數(shù)碼管顯示- P1 = 0xff; while(1) keydown(); 3) 液晶顯示屏的測(cè)試 測(cè)試功能為:從右到左顯示字符。測(cè)試程序如下:#include #include LCD1602.h/*主函數(shù)*/uchar string= I LOVE YOU! C51 ; /這里是要顯示的字符v
25、oid main(void) uchar *cp; cp=string; LCD_init(); while(1) LCD_send_command(LCD_CLEAR_SCREEN); delay_ms(2); LCD_disp_string(0,0,cp); delay_ms(100); cp+; if(*cp=0) cp=string; /到達(dá)字符的尾部時(shí),改變指針,重新指向字符串的頭部 /*/*LCD1602的初始化*/void LCD_init(void) LCD_send_command(LCD_DISPLAY_DOUBLE_LINE); LCD_send_command(LCD_
26、AC_AUTO_INCREMENT|LCD_MOVE_DISENABLE); LCD_send_command(LCD_DISPLAY_ON|LCD_CURSOR_OFF); LCD_send_command(LCD_CLEAR_SCREEN);/*/ void LCD_check_busy(void) /檢測(cè)LCD狀態(tài),看它是不是還在忙呢 do LCD_EN=0; LCD_RS=0; LCD_RW=1; LCDIO=0xff; LCD_EN=1; while(LCD_BUSY=1); LCD_EN=0;/*LCD1602寫(xiě)命令*/void LCD_send_command(uchar com
27、mand) LCD_check_busy(); LCD_RS=LOW; LCD_RW=LOW; LCD_EN=HIGH; LCDIO=command; LCD_EN=LOW;/*/*LCD1602寫(xiě)數(shù)據(jù)*/void LCD_send_data(uchar dat) LCD_check_busy(); LCD_RS=HIGH; LCD_RW=LOW; LCD_EN=HIGH; LCDIO=dat; LCD_EN=LOW;/* void LCD_write_char(uchar x,uchar y,uchar dat) unsigned char address; if (y = LINE1) a
28、ddress = LINE1_HEAD + x; else address = LINE2_HEAD + x; LCD_send_command(address); LCD_send_data(dat);*LCD1602顯示字符串*/void LCD_disp_string(uchar x,uchar y,uchar *Data) if(y=LINE1) if(xLINE_LENGTH) LCD_send_command(LINE1_HEAD+x); for(;xLINE_LENGTH&*Data!=0;x+) LCD_send_data(*(Data+); if(*Data!=0) x=0;
29、 y=LINE2; if(y=LINE2) LCD_send_command(LINE2_HEAD+x); for(;x0;i-) for(j=0;j1140;j+) ;/*/ 4) A/D,D/A的測(cè)試A/D轉(zhuǎn)換:把模擬信號(hào)轉(zhuǎn)換成數(shù)字信號(hào)在4路數(shù)碼管上顯示。程序如下:#include delay.h/*- uS延時(shí)函數(shù),含有輸入?yún)?shù) unsigned char t,無(wú)返回值 unsigned char 是定義無(wú)符號(hào)字符變量,其值的范圍是 0255 這里使用晶振12M,精確延時(shí)請(qǐng)使用匯編,大致延時(shí) 長(zhǎng)度如下 T=tx2+5 uS -*/void DelayUs2x(unsigned char
30、t) while(-t);/*- mS延時(shí)函數(shù),含有輸入?yún)?shù) unsigned char t,無(wú)返回值 unsigned char 是定義無(wú)符號(hào)字符變量,其值的范圍是 0255 這里使用晶振12M,精確延時(shí)請(qǐng)使用匯編-*/void DelayMs(unsigned char t) while(t-) /大致延時(shí)1mS DelayUs2x(245); DelayUs2x(245); #includedisplay.h#includedelay.h#define DataPort P0 /定義數(shù)據(jù)端口 extern bit ReadADFlag;unsigned char code DuanMa1
31、0=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;/ 顯示段碼值09unsigned char code WeiMa=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f;/分別對(duì)應(yīng)相應(yīng)的數(shù)碼管點(diǎn)亮,即位碼unsigned char TempData8; /存儲(chǔ)顯示值的全局變量/*- 顯示函數(shù),用于動(dòng)態(tài)掃描數(shù)碼管 輸入?yún)?shù) FirstBit 表示需要顯示的第一位,如賦值2表示從第三個(gè)數(shù)碼管開(kāi)始顯示 如輸入0表示從第一個(gè)顯示。 Num表示需要顯示的位數(shù),如需要顯示99兩位數(shù)值則該值輸入2-*/void Display
32、(unsigned char FirstBit,unsigned char Num) static unsigned char i=0; DataPort=0xff; /清空數(shù)據(jù),防止有交替重影 P2=WeiMai+FirstBit; /取位碼 DataPort=TempDatai; /取顯示數(shù)據(jù),段碼 i+; if(i=Num) i=0;/*- 定時(shí)器初始化子程序-*/void Init_Timer0(void) TMOD |= 0x01; /使用模式1,16位定時(shí)器,使用|符號(hào)可以在使用多個(gè)定時(shí)器時(shí)不受影響 /TH0=0x00; /給定初值 /TL0=0x00; EA=1; /總中斷打開(kāi)
33、ET0=1; /定時(shí)器中斷打開(kāi) TR0=1; /定時(shí)器開(kāi)關(guān)打開(kāi)/*- 定時(shí)器中斷子程序-*/void Timer0_isr(void) interrupt 1 static unsigned int num; TH0=(65536-2000)/256; /重新賦值 2ms TL0=(65536-2000)%256; Display(0,8); / 調(diào)用數(shù)碼管掃描 num+; if(num=50) /大致100ms num=0; ReadADFlag=1; /讀標(biāo)志位置1#include i2c.h#include delay.h#define _Nop() _nop_() /定義空指令 bit
34、 ack; /應(yīng)答標(biāo)志位sbit SDA=P35;sbit SCL=P34;/*- 啟動(dòng)總線-*/void Start_I2c() SDA=1; /發(fā)送起始條件的數(shù)據(jù)信號(hào) _Nop(); SCL=1; _Nop(); /起始條件建立時(shí)間大于4.7us,延時(shí) _Nop(); _Nop(); _Nop(); _Nop(); SDA=0; /發(fā)送起始信號(hào) _Nop(); /起始條件鎖定時(shí)間大于4 _Nop(); _Nop(); _Nop(); _Nop(); SCL=0; /鉗住I2C總線,準(zhǔn)備發(fā)送或接收數(shù)據(jù) _Nop(); _Nop();/*- 結(jié)束總線-*/void Stop_I2c() SDA
35、=0; /發(fā)送結(jié)束條件的數(shù)據(jù)信號(hào) _Nop(); /發(fā)送結(jié)束條件的時(shí)鐘信號(hào) SCL=1; /結(jié)束條件建立時(shí)間大于4 _Nop(); _Nop(); _Nop(); _Nop(); _Nop(); SDA=1; /發(fā)送I2C總線結(jié)束信號(hào) _Nop(); _Nop(); _Nop(); _Nop();/*- 字節(jié)數(shù)據(jù)傳送函數(shù) 函數(shù)原型: void SendByte(unsigned char c);功能: 將數(shù)據(jù)c發(fā)送出去,可以是地址,也可以是數(shù)據(jù),發(fā)完后等待應(yīng)答,并對(duì) 此狀態(tài)位進(jìn)行操作.(不應(yīng)答或非應(yīng)答都使ack=0 假) 發(fā)送數(shù)據(jù)正常,ack=1; ack=0表示被控器無(wú)應(yīng)答或損壞。-*/vo
36、id SendByte(unsigned char c) unsigned char BitCnt; for(BitCnt=0;BitCnt8;BitCnt+) /要傳送的數(shù)據(jù)長(zhǎng)度為8位 if(cBitCnt)&0x80)SDA=1; /判斷發(fā)送位 else SDA=0; _Nop(); SCL=1; /置時(shí)鐘線為高,通知被控器開(kāi)始接收數(shù)據(jù)位 _Nop(); _Nop(); /保證時(shí)鐘高電平周期大于4 _Nop(); _Nop(); _Nop(); SCL=0; _Nop(); _Nop(); SDA=1; /8位發(fā)送完后釋放數(shù)據(jù)線,準(zhǔn)備接收應(yīng)答位 _Nop(); _Nop(); SCL=1;
37、 _Nop(); _Nop(); _Nop(); if(SDA=1)ack=0; else ack=1; /判斷是否接收到應(yīng)答信號(hào) SCL=0; _Nop(); _Nop();/*- 字節(jié)數(shù)據(jù)傳送函數(shù) 函數(shù)原型: unsigned char RcvByte();功能: 用來(lái)接收從器件傳來(lái)的數(shù)據(jù),并判斷總線錯(cuò)誤(不發(fā)應(yīng)答信號(hào)), 發(fā)完后請(qǐng)用應(yīng)答函數(shù)。 -*/unsigned char RcvByte() unsigned char retc; unsigned char BitCnt; retc=0; SDA=1; /置數(shù)據(jù)線為輸入方式 for(BitCnt=0;BitCnt8;BitCnt+)
38、 _Nop(); SCL=0; /置時(shí)鐘線為低,準(zhǔn)備接收數(shù)據(jù)位 _Nop(); _Nop(); /時(shí)鐘低電平周期大于4.7us _Nop(); _Nop(); _Nop(); SCL=1; /置時(shí)鐘線為高使數(shù)據(jù)線上數(shù)據(jù)有效 _Nop(); _Nop(); retc=retc1; if(SDA=1)retc=retc+1; /讀數(shù)據(jù)位,接收的數(shù)據(jù)位放入retc中 _Nop(); _Nop(); SCL=0; _Nop(); _Nop(); return(retc);/*- 應(yīng)答子函數(shù)原型: void Ack_I2c(void); -*/*void Ack_I2c(void) SDA=0; _Nop(); _Nop(); _Nop(); SCL=1; _Nop(); _Nop(); /時(shí)鐘低電平周期大于4 _Nop(); _Nop(); _Nop(); SCL=0; /清時(shí)鐘線,鉗住I2C總線以便繼續(xù)接收 _Nop(); _Nop(); */*- 非應(yīng)答子函數(shù)原型: void NoAck_I2c(void); -*/void NoAck_I2c(void) S
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度農(nóng)業(yè)科技成果轉(zhuǎn)化合同范本8篇
- 2025版明光幼兒園食堂改造與綠色校園建設(shè)合同4篇
- 二零二五年度平房產(chǎn)權(quán)繼承與贈(zèng)與合同范本4篇
- 二零二五年度企業(yè)員工停薪留職員工培訓(xùn)補(bǔ)貼合同
- 產(chǎn)前檢查講解
- 二零二五年度員工勞動(dòng)合同轉(zhuǎn)移至新公司員工晉升服務(wù)合同2篇
- 二零二五年度體育場(chǎng)館租賃及賽事組織合同3篇
- 二零二五版美容院美容產(chǎn)品安全檢測(cè)與認(rèn)證合同3篇
- 二零二五年度影視特效制作合同標(biāo)準(zhǔn)范本
- 2025版奶牛養(yǎng)殖場(chǎng)安全生產(chǎn)與應(yīng)急預(yù)案合同3篇
- 垃圾處理廠工程施工組織設(shè)計(jì)
- 天皰瘡患者護(hù)理
- 機(jī)電一體化系統(tǒng)設(shè)計(jì)-第5章-特性分析
- 2025年高考物理復(fù)習(xí)壓軸題:電磁感應(yīng)綜合問(wèn)題(原卷版)
- 2025年蛇年新年金蛇賀歲金蛇狂舞春添彩玉樹(shù)臨風(fēng)福滿門(mén)模板
- 《建筑制圖及陰影透視(第2版)》課件 4-直線的投影
- 2024-2030年中國(guó)IVD(體外診斷)測(cè)試行業(yè)市場(chǎng)發(fā)展趨勢(shì)與前景展望戰(zhàn)略分析報(bào)告
- 碎紙機(jī)設(shè)計(jì)說(shuō)明書(shū)
- 湖南省長(zhǎng)沙市青竹湖湘一外國(guó)語(yǔ)學(xué)校2021-2022學(xué)年八年級(jí)下學(xué)期期中語(yǔ)文試題
- 2024年股權(quán)代持協(xié)議經(jīng)典版(3篇)
- 四川省成都市青羊區(qū)石室聯(lián)中學(xué)2024年八年級(jí)下冊(cè)物理期末學(xué)業(yè)水平測(cè)試試題含解析
評(píng)論
0/150
提交評(píng)論