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