版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
單片機(jī)的顯示技術(shù)-數(shù)碼管一、 任務(wù)書:二、 基礎(chǔ)知識(shí):在各種電子儀器或裝置中顯示部分屬于人機(jī)對(duì)話部分,也是電子裝置設(shè)計(jì)技術(shù)內(nèi)容之一,常用的顯示裝置有發(fā)光二極管、數(shù)碼管、液晶顯示器等。一般在不需要顯示字母或漢字的場(chǎng)合經(jīng)常使用數(shù)碼管作為顯示原件。數(shù)碼管顯示的優(yōu)點(diǎn)是技術(shù)較簡(jiǎn)單、硬件成本低和顯示效果好(主要指亮度)。數(shù)碼管的顯示原理:常用的數(shù)碼管為7段(7個(gè)筆畫)或8段(7個(gè)筆畫加一個(gè)小數(shù)點(diǎn))。一個(gè)顯示筆畫均是一個(gè)或多個(gè)(較大的數(shù)碼管,但仍為一個(gè)顯示單元,需要的驅(qū)動(dòng)能力不相同)LED作為發(fā)光原件。數(shù)碼管的分類:按尺寸大小分(以一位數(shù)碼管為例):字高框高LED數(shù)字高框高LED數(shù)英寸mmmm段英寸mmmm段0.28710110.410.1618.7110.37.819110.431118.8110.32811110.512.719110.369.114110.5213.217.5110.399.913110.5614.21911字高框高LED數(shù)字高框高LED數(shù)英寸mmmm段英寸mmmm段0.61525111.84556310.820.3227.711250.85442125.433212.356.869.7421.230.640.821375.6110621.538.144214101.612262注意:一般體積較大的數(shù)碼管的一個(gè)段可能不是一個(gè)LED構(gòu)成,而且組成一個(gè)字符段與小數(shù)點(diǎn)的LED數(shù)也不盡相同。以某公司產(chǎn)品紅色數(shù)碼管為例確定段電壓時(shí)可采用1.2-1.5*LED數(shù)為工作電壓。如4英寸的一個(gè)段的工作電壓約為1?2-1?5*6=7-9V。各公司數(shù)碼管內(nèi)一段的LED數(shù)不盡相同。所以當(dāng)不能確定時(shí)可以通過(guò)查閱生產(chǎn)企業(yè)的技術(shù)資料或通過(guò)試驗(yàn)得到合理的工作電壓。按內(nèi)部接線分:共陰極、共陽(yáng)極;按顏色分:發(fā)光原件(LED)分為紅色、高亮紅、黃綠色、黃色、藍(lán)色等。以紅色較常見(jiàn)。按字符內(nèi)容分:8字型、米字型和專用數(shù)碼管等。但無(wú)論外表怎樣改變其發(fā)光機(jī)理是相同的,只是改變發(fā)光單元的形狀和位置而形成不同的產(chǎn)品。當(dāng)你的需要特殊而且用量較大時(shí)也可以專門定做你所要的產(chǎn)品,但成本較高。
按組合方式分:分一位、兩位、三位、四位。一位 兩位 三位EHBH1四位
兩位數(shù)碼管段與內(nèi)部接線圖兩位數(shù)碼管段與內(nèi)部接線圖數(shù)碼管的檢測(cè):其一是判斷是共陰極還是共陽(yáng)極,其二是判斷一位數(shù)碼管的各斷是否良好。以一位數(shù)碼管為例:判斷共陰極還是共陽(yáng)極的簡(jiǎn)單辦法是用萬(wàn)用表的 檔位,紅表頭接觸數(shù)碼管的公共極,黑表頭接觸另外任何一個(gè)段的引腳,該段亮則說(shuō)明這個(gè)數(shù)碼管是共陽(yáng)極。如果不亮,然后將紅黑表頭換位該段亮則說(shuō)明該數(shù)碼管是共陰極。判斷各段是否正常的辦法與判斷共陰極和共陽(yáng)極的辦法相同,將公共端確定后用紅(黑)表筆輪流接觸所有的段的引腳各段均亮說(shuō)明正常,哪個(gè)段不亮說(shuō)明哪個(gè)段不正常。但此方法只能檢驗(yàn)較小的數(shù)碼管,尺寸較大的數(shù)碼管的一個(gè)段可能不是一個(gè)LED時(shí)萬(wàn)用表的 就不能用來(lái)點(diǎn)亮數(shù)碼管的段,此時(shí)需要使用穩(wěn)壓電源并調(diào)到合適的電壓進(jìn)行檢驗(yàn),所謂合適的電壓就是從小調(diào)節(jié)輸出電壓使數(shù)碼管的段的亮度達(dá)到最大值然后再調(diào)小的最大值電壓的大約80-90%即可。注意:在最亮的時(shí)間一定要短,否則可能燒壞數(shù)碼管。為了保險(xiǎn)起見(jiàn)可讓LED的亮度相對(duì)較低,即用亮度換壽命。、數(shù)碼管的種類及其引腳注意:LED公共端一般為3、8,1、5,1、8等。不要認(rèn)為L(zhǎng)ED引腳排列都完全相同。1、一位七段數(shù)碼管引腳圖:
共陽(yáng)y共陰共陽(yáng)y共陰ykkikikikBCDEFGDPABCDEFGDPJL1 1:1.J1.j■ccJccJc5cj764219105 764219105數(shù)碼管使用條件(僅使用與各段均為一個(gè)LED的數(shù)碼管):a、 段及小數(shù)點(diǎn)上加限流電阻(注意:由于體積較大的數(shù)碼管的段和小數(shù)點(diǎn)的LED數(shù)量不相同。因此,所需要加的限流電阻的阻值也不相同)b、 使用電壓:段:根據(jù)發(fā)光顏色決定;小數(shù)點(diǎn):根據(jù)發(fā)光顏色決定c、 使用電流:靜態(tài):總電流80mA(每段10mA);動(dòng)態(tài):平均電流4-5mA峰值電流100mA數(shù)碼管使用注意事項(xiàng)說(shuō)明:數(shù)碼管表面不要用手觸摸,不要用手去弄引角;焊接溫度:260度;焊接時(shí)間:5S表面有保護(hù)膜的產(chǎn)品,可以在使用前撕下來(lái)。2、四位七段數(shù)碼管:內(nèi)部第四個(gè)數(shù)碼管共用a-dp,、數(shù)碼管靜態(tài)顯示方式數(shù)碼管靜態(tài)顯示方式是當(dāng)LED數(shù)碼管顯示器顯示某個(gè)字符時(shí),相應(yīng)的段(發(fā)光二極管)恒定地導(dǎo)通或截止,直到顯示另一個(gè)字符為止。LED數(shù)碼管顯示器工作于靜態(tài)顯示方式時(shí),若為共陰數(shù)碼管,各位的共陰極接地;若為共陽(yáng)極數(shù)碼管,則接正電壓,電壓根據(jù)LED數(shù)碼管的具體要求定。每位的段選線分別與一個(gè)8位鎖存器的輸出口相連,顯示器中的各位相互獨(dú)立,而且各位的顯示字符一經(jīng)確定,相應(yīng)鎖存的輸出將維持不變。正因?yàn)槿绱?,靜態(tài)顯示器的亮度較高。這種顯示方式編程容易,管理也較簡(jiǎn)單。靜態(tài)顯示典型方案:?編碼器?串口?I/OIIIIIII?編碼器 ?編碼器?串口 ?串口*I/O *I/OIIIIIII ?編碼器?串口?I/OIIIIIII?編碼器 ?編碼器?串口 ?串口*I/O *I/OIIIIIII IIIIIII*7600-GO0-600-電電總
???圖1:靜態(tài)顯示典型應(yīng)用方案方案描述:下面分別對(duì)數(shù)碼管的字段控制和數(shù)碼管的位(com)連接方法進(jìn)行描述。數(shù)碼管的字段控制常用的方法有編碼器輸出方式(如CD4511)、串行口輸出方式、單片機(jī)通用I/O接口輸出方式。當(dāng)顯示狀態(tài)為靜態(tài)顯示方式時(shí),在數(shù)據(jù)輸出后的一段時(shí)間內(nèi)顯示狀態(tài)不會(huì)發(fā)生變化,在此應(yīng)當(dāng)采用鎖存器將狀態(tài)保持住,直到顯示狀態(tài)發(fā)生改變?yōu)橹埂@鏑D4511就是帶有鎖存器的編碼器。為了能讓數(shù)碼管保持一定的亮度,一般的I/O口或鎖存器不能達(dá)到預(yù)定的要求,所以在此應(yīng)當(dāng)加上字段的驅(qū)動(dòng)電路。驅(qū)動(dòng)電路可以采用專用的集成電路或是功率三極管。數(shù)碼管的位連接常用方法:對(duì)于共陽(yáng)數(shù)碼管接正電源,對(duì)于共陰的數(shù)碼管接地。如果是多位數(shù)碼管顯示方式,字段控制采用的是串口輸出字段碼方式,為了防止閃爍,在數(shù)碼管的公共極采用開關(guān)控制方式。當(dāng)字段碼輸出時(shí),暫時(shí)中斷數(shù)碼管公共端的開關(guān),當(dāng)數(shù)據(jù)發(fā)送完成以后,由于鎖存器保存數(shù)碼管字段信息,這時(shí)關(guān)閉數(shù)碼管公共極開關(guān),數(shù)碼管開始接通,并顯示字段信息。(3)、數(shù)碼管動(dòng)態(tài)顯示方式在多位LED數(shù)碼管顯示器顯示時(shí),為了簡(jiǎn)化電路,降低成本,將所有位的段選線并聯(lián)在一起,由一個(gè)8位I/O口控制。而共陰(或共陽(yáng))極公共端分別由相應(yīng)的I/O線控制,實(shí)現(xiàn)各位的分時(shí)選通方法。這就構(gòu)成了動(dòng)態(tài)顯示方式。段選碼、位選碼每送入一次后延時(shí)1ms,因人眼的視覺(jué)暫留時(shí)間為0.1s(100ms),所以每位顯示的間隔不能超過(guò)20ms,并保持延時(shí)一段時(shí)間,以造成視覺(jué)暫留效果,給人看上去每個(gè)數(shù)碼管總在亮。動(dòng)態(tài)顯示典型方案:?編碼器*I/O串口、I/O、編碼器一位選圖2:動(dòng)態(tài)顯示典型應(yīng)用方案方案描述:下面分別對(duì)數(shù)碼管的字段控制和數(shù)碼管的位(com)掃描方法進(jìn)行描述。數(shù)碼管的字段控制常用方法有編碼器方式和I/O控制方式。在動(dòng)態(tài)掃描顯方式下,由于每一位數(shù)碼管供電的時(shí)間是比較短(1mm)的,為了讓數(shù)碼管達(dá)到預(yù)期的顯示亮度,在此對(duì)字段的驅(qū)動(dòng)要求在功率和效率上比較靜態(tài)顯示時(shí)都要高。一般采用大功率 三極管(TIP127、8050或?qū)S眉呻娐罚║LN2003)進(jìn)行驅(qū)動(dòng)。數(shù)碼管的位掃描常用串口掃描、I/O掃描或是74ls138編碼器掃描方法。在以后的實(shí)驗(yàn)中,我們會(huì)有實(shí)例進(jìn)行說(shuō)明。(4)、LED數(shù)碼管顯示驅(qū)動(dòng)技術(shù)僅依靠單片機(jī)I/O口的驅(qū)動(dòng)能力是不能夠驅(qū)動(dòng)數(shù)碼管正常工作的。因此,需要選擇的驅(qū)動(dòng)原件設(shè)計(jì)出合適的驅(qū)動(dòng)電路使得數(shù)碼管正常工作,對(duì)于靜態(tài)顯示方式和動(dòng)態(tài)顯示方式,驅(qū)動(dòng)方法有明顯的不同。靜態(tài)顯示方式的驅(qū)動(dòng),由于數(shù)碼管的公共極接地或接正電壓,所以只考慮段的驅(qū)動(dòng)就可以。對(duì)于動(dòng)態(tài)顯示方式,由于一位數(shù)據(jù)的顯示是由段和位選信號(hào)共同配合完成的,因此必須同時(shí)考慮段和位的驅(qū)動(dòng)能力,而且段的驅(qū)動(dòng)能力決定位的驅(qū)動(dòng)能力。段的驅(qū)動(dòng)能力是由顯示器的亮度決定的,通過(guò)發(fā)光二極管的電流越大,其亮度也越高。對(duì)于靜態(tài)顯示器,當(dāng)某位點(diǎn)亮?xí)r,此位中點(diǎn)亮的段通過(guò)恒定電流,而對(duì)于動(dòng)態(tài)顯示器,此電流卻是以一定脈沖方式出現(xiàn)的,其峰值電流不能真實(shí)地反映二極管的發(fā)光亮度,而必須以與脈沖占空比有關(guān)的平均值電流來(lái)考慮。理論上分析表明,同樣的驅(qū)動(dòng)器,當(dāng)其驅(qū)動(dòng)靜態(tài)顯示器時(shí),其亮度為驅(qū)動(dòng)動(dòng)態(tài)顯示器的N倍,N近似為顯示位數(shù)。所以要使動(dòng)態(tài)顯示器達(dá)到靜態(tài)顯示器的亮度,必須將驅(qū)動(dòng)器的驅(qū)動(dòng)能力提高N倍。段的驅(qū)動(dòng)能力確定之后,位的驅(qū)動(dòng)能力也隨之確定。當(dāng)然必須考慮極端的情況,即位中各段均點(diǎn)亮,則位的驅(qū)動(dòng)電流為各段驅(qū)動(dòng)電流之和,此電流應(yīng)為峰值電流。、相關(guān)知識(shí)
⑴、NPN三極管8050T8050是一個(gè)NPN的電路,應(yīng)用于音頻驅(qū)動(dòng)和轉(zhuǎn)換電路。在本教材中,應(yīng)用于大功率電流驅(qū)動(dòng)開關(guān)電路。其相關(guān)參數(shù)如下:、溫度范圍:-55°C~125°CTOC\o"1-5"\h\z、Vcbo-發(fā)射極到基極電壓 30V、Vceo-發(fā)射極到集電極電流 25V、V?bo-集電極到基集電流 6V、Ic-發(fā)射極電流 1.5A做為開關(guān)使用,在此關(guān)心的參數(shù)有溫度、Vceo和Ic是否能達(dá)到設(shè)計(jì)要求就可以。⑵、3-8譯碼器74ls138,74ls238①、3-8譯碼器管腳說(shuō)明圖3:3-8譯碼器的邏輯圖74LS23874ls138和74ls238做為3線-8線譯碼器,在使能允許的條件下,可將地址端(A0、A1、A2)的二進(jìn)制編碼在一個(gè)對(duì)應(yīng)的輸出端以低電平(①、3-8譯碼器管腳說(shuō)明圖3:3-8譯碼器的邏輯圖74LS238表1:管腳定義表管腳符號(hào)功能1、2、3A0、A1、A2地址輸入4、5/E1、/E2使能輸入(低電平使能)6E3使能輸入(高電平使能)8GND地15、14、13、12、11、10、9、7Y0、Y1、Y2、Y3、Y4、Y5、Y6、Y7、譯碼輸出(741S138低有效,741S238高有效)16電源②、3-8解碼器的真值表表2:74ls238使用真值表INPUTOUTPUT/E1/E2烏AA1A2YoY1Y2y3y4y5y6y7HXXXXXLLLLLLLLXHXXXXLLLLLLLLXXLXXXLLLLLLLLLLHLLLHLLLLLLLLLHHLLLH
INPUTOUTPUT/Ei/E2E3AoAiAYoYiY2Y3Y4Y5丫6Y7HX'XXXXLLLLLLLLXHXXXXLLLLLLLLXXLXXXLLLLLLLLLLHLLLLHHHHHHHLLHHLLHLLLHLHLHLLLHHHLHLLLHLLHHLLLHHLHHLLLHLHHHLLLHHHHHL表1和表2分別描述了74LS238和74LS138的管腳控制、輸出信息以及輸出信息的真值表。對(duì)于74LS238和74LS138的區(qū)別只在輸出時(shí)的差別,其它參數(shù)是一致的。、其它譯碼器I、 2-4譯碼器74ls139,兩位地址,四位輸出。控制真值表如下:II、 4-16譯碼器74ls154,四位地址,十六位輸出。控制真值表如下:、譯碼器擴(kuò)展方法⑶、字段編碼器CD4511CD4511做為一個(gè)段碼專用集成電路,集成驅(qū)動(dòng)、鎖存和編碼功能。將一組8421BCD碼編輯成通用的七段碼通過(guò)高電平輸出。在電路應(yīng)用中,只需將共陰極數(shù)碼管的對(duì)應(yīng)管腳連接到CD4511上就可以了。圖4CD4511管腳定義和數(shù)碼管標(biāo)識(shí)定義圖表4:CD4511使用真值表INPUTOUTPUTLE/BI/LTDCBAabcdefgdisplayXX0XXXXB-X01XXXX011000011111100011000101100001011001011011012011001111110013
011010001100114011010110110115011011000111116011011111100007011100011111118011100111100119⑷、大電流驅(qū)動(dòng)集成電路ULN2003A(ULN2800系列)ULN2003A電路是美國(guó)TexasInstruments公司和Sprague公司開發(fā)的高壓、大電流達(dá)林頓晶體管陣列電路,由7組達(dá)林頓晶體管陣列和相應(yīng)的電阻網(wǎng)絡(luò)以及鉗位二極管網(wǎng)絡(luò)構(gòu)成,具有同時(shí)驅(qū)動(dòng)7組負(fù)載的能力,為單片雙極型大功率高速集成電路,發(fā)射極電流可以達(dá)到0.5A,輸出電壓可以達(dá)到50V,具有電流增益高、工作電壓高、溫度范圍寬、帶負(fù)載能力強(qiáng)等特點(diǎn),適應(yīng)于各類要求高速大功率驅(qū)動(dòng)的系統(tǒng)。(5)、總線驅(qū)動(dòng)集成電路74LS24474LS244(5)、總線驅(qū)動(dòng)集成電路74LS24474LS244是一個(gè)集成緩沖、驅(qū)動(dòng)于一體的集成電路,可應(yīng)用于時(shí)鐘驅(qū)動(dòng)、地址驅(qū)動(dòng)、PC機(jī)板的總線收發(fā)總線。①、管腳圖和真值表SN74LS244SN74LS244也可以是低電平,Z-高阻狀態(tài)注:L—低電平,H—也可以是低電平,Z-高阻狀態(tài)②、主要電氣參數(shù)符號(hào)說(shuō)明最小值典型值最大值單位Vcc工作電壓4.755.05.25VTa工作溫度02570°CIoh輸出電流-高電平-15mAIol輸出電流-低電平24mAIOH、IOl圖例說(shuō)明(6)、移位寄存器74HC59574HC595具有8位串入并出的移位寄存器和一個(gè)8位輸出鎖存器,而且移位寄存器和輸出鎖存器的控制是各自獨(dú)立的,可以實(shí)現(xiàn)在輸出的同時(shí),傳送下一組移位數(shù)據(jù),而不影響以前的輸出狀態(tài)。①、管腳圖和真值表QB[11QB[11vccQC[2150qd[314jSERQe[413]OE°F[512]RCLK處[611]SRCLK□h[710]SRCLRGND[89i甜RCLKSRCLKDIP74HC595管腳圖表:74HC595真值表輸入功能SERSRCLK/SRCLRRCLKOEXXXXH禁止QA~QH輸出XXXXL允許QA~QH輸出XXLXX移位寄存器清零L1HXX移位寄存器的第一位變底,其它位和鎖存器的輸出保持不變。HtHXX移位寄存器的第一位變高,其它位和鎖存器的輸出保持不變。XIHXX不改變移位寄存器數(shù)據(jù)狀態(tài)XXXtX移位寄存器數(shù)據(jù)放入鎖存器中XXX_1X不改變鎖存器輸出狀態(tài)
②、主要電氣參數(shù)工作電壓:4.75V5.25V;輸出電流:70mA;工作溫度:0°C70°C。⑻、大功率驅(qū)動(dòng)三極管TIP42C、封裝和引腳說(shuō)明、主要電氣參數(shù)I、 溫度范圍:-55C~125CTOC\o"1-5"\h\zII、Vcbo-發(fā)射極到基極電壓 100VIII、 Vceo-發(fā)射極到集電極電流 100VvIV、Vebo-集電極到基集電流 5VV、Ic-發(fā)射極電流 6A三、實(shí)驗(yàn)?zāi)康恼莆諉纹瑱C(jī)多位LED數(shù)碼管靜態(tài)、動(dòng)態(tài)顯示方法和驅(qū)動(dòng)應(yīng)用。四、實(shí)現(xiàn)功能⑴、通過(guò)兩個(gè)BCD轉(zhuǎn)7段編碼器芯片(CD4511)分別驅(qū)動(dòng)兩位共陰極數(shù)碼管,實(shí)現(xiàn)靜態(tài)的顯示方式。P1.0P1.3、P1.4P1.7分別為兩個(gè)CD4511輸出數(shù)據(jù)的BCD碼,通過(guò)按鍵提示改變數(shù)碼管顯示數(shù)據(jù)。⑵、通過(guò)兩個(gè)串轉(zhuǎn)并數(shù)據(jù)移位芯片(74LS164),分別驅(qū)動(dòng)兩位共陽(yáng)數(shù)碼管實(shí)現(xiàn)靜態(tài)顯示方式。顯示數(shù)據(jù)通過(guò)串口發(fā)送給兩個(gè)74ls164,通過(guò)按鍵提示,改變數(shù)碼管顯示數(shù)據(jù)。⑶、用P1口做為L(zhǎng)ED數(shù)碼管段碼輸出,集成電路74LS244做為段碼輸出的驅(qū)動(dòng)電路;P2.0P2.2驅(qū)動(dòng)74ls238做為多位數(shù)碼管的位選控制芯片,驅(qū)動(dòng)四位數(shù)碼管動(dòng)態(tài)掃描顯示數(shù)據(jù),通過(guò)按鍵方式改變顯示數(shù)據(jù)。⑷、通過(guò)P2口驅(qū)動(dòng)七個(gè)功率三極管8050,做為段碼輸出的驅(qū)動(dòng)電路,串口輸出移位信號(hào)做為位選控制信號(hào),驅(qū)動(dòng)兩片串轉(zhuǎn)并芯片(741S164),ULN2003做為位選的驅(qū)動(dòng)電路。在這里每片ULN2003任選兩兩位做為兩個(gè)數(shù)碼管的驅(qū)動(dòng)位,一共四位數(shù)碼管。通過(guò)按鍵輸入信號(hào),改變數(shù)碼管的顯示數(shù)據(jù)。五、實(shí)驗(yàn)(一)⑴、實(shí)驗(yàn)說(shuō)明(實(shí)驗(yàn)的描述)在一些項(xiàng)目中,為了節(jié)約單片機(jī)I/O和程序資源的開支,單片機(jī)系統(tǒng)采用數(shù)碼管靜態(tài)顯示方式。單片機(jī)只需向I/O口輸出顯示數(shù)據(jù)的BCD碼,顯示部分經(jīng)過(guò)鎖存器將數(shù)據(jù)的顯示方式保持在一定的狀態(tài)下,單片機(jī)就可以進(jìn)行其它工作,而無(wú)需處理顯示功能,除非是更換顯示數(shù)據(jù)。CD4511復(fù)位電路Pl89C51B£D鎖存器日CD-段碼轉(zhuǎn)換電路O振蕩電路按鍵電路電源圖1:方案設(shè)計(jì)圖在這個(gè)實(shí)驗(yàn)中采用CD4511是因?yàn)檫@個(gè)芯片是一個(gè)BCD碼轉(zhuǎn)段碼的專用芯片,將四位的BCD碼轉(zhuǎn)換并輸出標(biāo)準(zhǔn)的段碼信息,給共陰數(shù)碼管做為顯示數(shù)據(jù),另外片內(nèi)集成了鎖存器和驅(qū)動(dòng)器(詳細(xì)參數(shù)請(qǐng)參照附件中的CD4511說(shuō)明)。這不僅節(jié)約了程序的數(shù)碼管段信息的編寫,也節(jié)約的I/O口的資源,是一個(gè)比較理想的靜態(tài)顯示應(yīng)用芯片,CD4511的具體使用方法,可根據(jù)其真值表進(jìn)行操件。實(shí)驗(yàn)一電路中,按鍵電路做為信息輸入,兩位靜態(tài)顯示的數(shù)碼管做為數(shù)據(jù)的顯示器。當(dāng)上電時(shí),單片機(jī)初始化,顯示數(shù)據(jù)為0,當(dāng)有單片機(jī)檢測(cè)到按鍵信號(hào)時(shí),顯示器的數(shù)據(jù)進(jìn)行更換,顯示方式是從0到99依次遞增顯示,當(dāng)顯示到99時(shí),如果再有一次按鍵,則顯示為0,依次類推進(jìn)行循環(huán)顯示。在數(shù)碼管顯示排列中,U7數(shù)碼管顯示數(shù)據(jù)的個(gè)位信息,U10顯示數(shù)據(jù)的十位信息。⑵、實(shí)驗(yàn)工具硬件:電腦、電源DC5V、仿真器、燒寫器、演示板、示波器軟件:Keil51編譯器,Protel99SE、仿真器軟件、燒寫器軟件⑶、元器件列表名稱規(guī)格數(shù)量名稱規(guī)格數(shù)量瓷片電容1041電阻10K233PF230014電解電容100UF/16V1復(fù)位開關(guān)四腳110UF/16VCD4511DIP2發(fā)光二極管紅,05189C51DIP1電源座1數(shù)碼管共陰,0.82電阻2K1晶振12M,直插1⑷、原理圖原理圖說(shuō)明:實(shí)驗(yàn)一原理圖是為實(shí)現(xiàn)單片機(jī)通過(guò)BCD碼轉(zhuǎn)段碼芯片實(shí)現(xiàn)數(shù)碼管靜態(tài)顯示功能而設(shè)計(jì)的。采用DC5V供電,發(fā)光二極管D2做為電源指示,R3做為D2的限流分壓電阻,電容C3和電解電容C7做為電源濾波電容,電阻R2和按鍵S1組成按鍵電路,信號(hào)由P3.2輸入,電容C8、電容C9和晶振Y2組成單片機(jī)外圍晶振電路,電容C10和電容R6組成單片機(jī)的復(fù)位電路,CD4511(U6、U9)和數(shù)碼管(U7、U10)以及限流電阻組成靜態(tài)顯示電路,數(shù)碼管公共極共陰極接地,P1.0P1.3向CD4511(U6)輸出BCD碼,P1.4P1.7向CD4511(U9)輸出BCD碼。CD4511集鎖存、驅(qū)動(dòng)功能于一體,是一個(gè)BCD[碼轉(zhuǎn)段碼的專用芯片。圖3:實(shí)驗(yàn)一原理圖⑸、軟件流程圖流程1:實(shí)驗(yàn)一程序流程圖⑹、源程序代碼(匯編);方案選用P1.0?P1.3和P1.4?P1.7分別做為兩個(gè)CD4511的BCD碼輸入口,每一個(gè)CD4511驅(qū)動(dòng)一個(gè)共陰的數(shù)碼;管做為靜態(tài)顯示。;P3.2做為按鍵輸入端,每次按鍵,程序處理顯示由0~99之間循環(huán)進(jìn)行顯示,P1.0?P1.3和P1.4?P1.7分別輸出低;位和高位數(shù)據(jù)。;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;FLAG0BIT20.0FLAG1BIT20.1FLAG0BIT20.0FLAG1BIT20.1FALG2BIT20.2;定義一位識(shí)別標(biāo)志位;定義一個(gè)專用作顯示的寄存器;定義一個(gè)專用作顯示的寄存器;主程序入口DISPLAYEQU21HDISPLAYTEMPEQU22HORG0000HSTART:AJMPMAINMAIN:
;初始化程序,顯示數(shù)據(jù)為00MOVA,#0MOVDISPLAYA ;初始化顯示寄存器為0MOVDISPLAYTEMP,AMOVP1,A ;將0輸出給CD4511,顯示數(shù)據(jù)為0;檢測(cè)是否有按鍵,如果有按鍵,將顯示寄存器的數(shù)據(jù)變換成BCD碼輸出。MAIN_LOOP1:JBK1,MAIN_LOOP1ACALLDELAY12msJBK1,MAIN_LOOP1;是按鍵SETBK1 ;查看是否有按鍵;JBK1,MAIN_LOOP1ACALLDELAY12msJBK1,MAIN_LOOP1;是按鍵;再看是否為低電平,如果是則確認(rèn)為按鍵,如果不是,則確認(rèn)不是按鍵,則變換數(shù)據(jù)進(jìn)行顯示INCDISPLAYTEMPMOVA,DISPLAYTEMPINCDISPLAYA ;顯示數(shù)據(jù)加1MOVA,#0MOVR0,A ;用R0存十位數(shù)。MOVA,DISPLAYDISP_GET:CJNEA,#10,DISP_OPERDISP_OPER:JCCYDISP_OUT ;如果處理后的數(shù)據(jù)A小于10,則為個(gè)位數(shù),送顯SUBBA,#10 ;如果大于10,則再減,直到小于10為止INCR0 ;取十位數(shù)AJMPDISP_GETDISP_OUT: ;R0存十位數(shù),A存?zhèn)€位數(shù)MOVDISPLAYA ;將個(gè)位數(shù)存入顯示寄存器中MOVA,R0CLRC ;清除C寄存器RLCA ;將A數(shù)據(jù)向左移4位,到高位顯示區(qū),低四位為0RLCARLCARLCAORLA,DISPLAY;整合高位和低位顯示數(shù)據(jù)MOVP1,A;通過(guò)P1口送出BCD碼,給CD4511AJMPMAINDELAY12ms:MOVR1,#0FH;延時(shí)子程序,延時(shí)時(shí)間賦值LOOP12:MOVR2,#0FFHLOOP120:DJNZR2,LOOP120DJNZR1,LOOP12RETENDC語(yǔ)言程序/******************************************************************************//*此程序是單片機(jī)靜態(tài)顯示的處理程序。/*針對(duì)P1口高四位和低四位分別接一片CD4511而設(shè)計(jì)的。/******************************************************************************/#include"reg52.h”sbitKEY=P3A2;〃定義按鍵的輸入腳#defineucharunsignedchar#defineuintunsignedint/******************************************************************************//*延時(shí)程序,每個(gè)函數(shù)延時(shí)1ms/*輸入?yún)?shù)為:t/******************************************************************************/
Delay1ms(uchart)(uintCount0,Count1;for(Count0=0;Count0<t;Count0++)(for(Count1=0;Count1<60;Count1++)(;}}}main()(P0=0xff; //I/O初始化P1=0xff;P2=0xff;P3=0xff;〃定義一個(gè)和顯示對(duì)應(yīng)寄存器〃初始化為〃定義一個(gè)和顯示對(duì)應(yīng)寄存器〃初始化為0〃初始化兩位數(shù)碼管顯示數(shù)據(jù)為0DisplayBuf=0;P1=DisplayBuf;while(1)(if(!KEY)( 〃如果有按鍵輸入Delay1ms(10); 〃延時(shí)10msif(!KEY){ 〃確認(rèn)按鍵if(DisplayBuf++>99) 〃如果顯示的數(shù)據(jù)超過(guò)99,超出兩位數(shù)碼管的顯示范圍DisplayBuf=0;Temp=DisplayBuf;Temp%=10; 〃取顯示寄存器的個(gè)位數(shù)Temp&=0x0f; 〃清除高四位的數(shù)據(jù)DisplayBuf/=10; 〃取顯示寄存器的十位數(shù)DisplayBuf<<=4; 〃將十位數(shù)向左移四位,對(duì)于第二個(gè)數(shù)碼管進(jìn)行輸出。Temp&=0xf0; 〃清除底四位的數(shù)據(jù)DisplayBuf|=Temp; 〃將顯示寄存器的十位BCD碼和個(gè)位的BCD碼組合P1=DisplayBuf; 〃同時(shí)送出給兩位數(shù)碼管}}}}⑺、實(shí)驗(yàn)步驟、依次接收仿真器、仿真板、電源、打開電源并打開仿真軟件、調(diào)入調(diào)試程序、運(yùn)行程序,觀察數(shù)碼管顯示是否為0。、如果有按鍵操作,數(shù)碼管數(shù)據(jù)由0~99依次輪流進(jìn)行顯示。⑻、實(shí)驗(yàn)總結(jié)⑼、實(shí)驗(yàn)體會(huì)六、實(shí)驗(yàn)(二)⑴、實(shí)驗(yàn)說(shuō)明(實(shí)驗(yàn)的描述)本實(shí)驗(yàn)為了實(shí)現(xiàn)多位數(shù)碼管靜態(tài)顯示方式而設(shè)計(jì)的方案。本方案采用串口級(jí)連的通信方式和集成串入并出移位寄存器和鎖存器專用芯片,通過(guò)串口輸出多位數(shù)碼管的段碼信息,并通過(guò)控制輸出段碼信息。本方案數(shù)碼管驅(qū)動(dòng)數(shù)目可以達(dá)到300位以上。方案框圖如下:+電源+電源74HC595具有8位串入并出的移位寄存器和一個(gè)8位輸出鎖存器,而且移位寄存器和輸出鎖存器的控制是各自獨(dú)立的,可以實(shí)現(xiàn)在輸出的同時(shí),傳送下一組移位數(shù)據(jù),而不影響以前的輸出狀態(tài)。所以這種芯片是實(shí)現(xiàn)本方案功能的最佳芯片。74HC595級(jí)連的方式做為段碼輸出電路,采用四個(gè)共陽(yáng),0.6寸的數(shù)碼管做為顯示器,數(shù)碼管的共陽(yáng)極接電源正極。段碼信息通過(guò)串口輸出給74HC595級(jí)連電路,通過(guò)移位到達(dá)每一個(gè)輸出管腳。74HC595內(nèi)部集成一個(gè)8位串入并出的移位寄存器和一個(gè)8位輸出鎖存器,而移位寄存器和輸出鎖存器的控制是各自獨(dú)立的,可以在顯示不改變的同時(shí)進(jìn)行移位,這樣可以保證顯示不閃爍。在74HC595和數(shù)碼管之間沒(méi)有加驅(qū)動(dòng)器,是因?yàn)椴捎玫臄?shù)碼的功率比較小,74HC595的驅(qū)動(dòng)能力能夠滿足數(shù)碼管的需要,每位輸出電流為20mA。單片機(jī)系統(tǒng)串口設(shè)置成工作方式0,輸出8位數(shù)據(jù),即數(shù)碼管的段碼信息。單片機(jī)系統(tǒng)用來(lái)實(shí)現(xiàn)以下功能:當(dāng)上電時(shí),初始化顯示為0000,如果有按鍵操作,依次循環(huán)顯示:1234,4321,2367,4567,7689,3267,8546,4574,1296等信息。這是一個(gè)靜態(tài)顯示的典型應(yīng)用方案,LED數(shù)碼管可以擴(kuò)充到上百位。⑵、實(shí)驗(yàn)工具硬件:電腦、電源DC5V、仿真器、燒寫器、演示板、示波器軟件:Keil51編譯器,Protel99SE、仿真器軟件、燒寫器軟件⑶、元器件列表名稱規(guī)格數(shù)量名稱規(guī)格Mr曰.數(shù)量瓷片電容1041電阻2K133P210K2電解電容100UF/16V14.7K110UF/16V110032發(fā)光二極管紅,051復(fù)位開關(guān)1電源座189C51DIP1三極管T8050,直插174LS163DIP4數(shù)碼管共陽(yáng),0.84晶振12M,直插1
⑷、原理圖⑷、原理圖圖4:實(shí)驗(yàn)二原理圖原理圖說(shuō)明:實(shí)驗(yàn)二原理圖是為實(shí)現(xiàn)單片機(jī)通過(guò)串口向數(shù)碼管輸出顯示信息靜態(tài)顯示功能而設(shè)計(jì)的電路。采用DC5V供電,發(fā)光二極管D2做為電源指示,R3做為D2的限流分壓電阻,電容C3和電解電容C7做為電源濾波電容,電阻R2和按鍵S1組成按鍵電路,信號(hào)由P3.2輸入,電容C8、電容C9和晶振Y2組成單片機(jī)外圍晶振電路,電容C10和電容R6組成單片機(jī)的復(fù)位電路,74HC595(U1、U2、U5、U7)和數(shù)碼管(U3、U4、U6、U9)以及電阻組成靜態(tài)顯示電路。數(shù)碼管的字段信息采用串口方式發(fā)送,通過(guò)于74LS164進(jìn)行移位輸出。數(shù)碼管都采用共陽(yáng)公共極都接正電源,如圖中所示。在此采用P2.0操作74HC595的RCLK端,控制將移位結(jié)果輸入到鎖存器中,P2.1連接74HC595的移位狀態(tài)清除端,在通過(guò)串口輸入數(shù)據(jù)移位之前,應(yīng)當(dāng)清除所有74HC595的移位狀態(tài)。⑸、軟件流程圖
流程2:實(shí)驗(yàn)一程序流程圖⑹、源程序代碼(匯編);方案選用4個(gè)74HC595級(jí)連的方式控制四位數(shù)碼管,由串口輸出字形碼的靜態(tài)顯示方式。;P3.2做為按鍵輸入端,每次按鍵,程序處理顯示由0~99之間循環(huán)進(jìn)行顯示,P1.0為移位寄存器;向鎖存器送入數(shù)據(jù)的控制位RCLK;P1.1做為移位寄存器清零的控制位/SRCLK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
KEYBITP3.2RCLK_595BITP1.0;定義移位寄存器向鎖存器送入數(shù)據(jù)的控制位SRCLK_CLR_595BITP1.1;定義移位寄存器清零的控制位DISPHIGHBIT20H;定義數(shù)碼管顯示寄存器的高位HHxxH為有效DISPLOWBIT21H;定義數(shù)碼管顯示寄存器的低位xxLLL為有效DISPTEMPBIT22HORG0000H;主程序入口START:AJMPMAINMAIN:;SCON7 6 5 4 3 2 1 0MOVSCON,#00H ;SM0SM1SM2RENTB8RB8TIRI;設(shè)置串口中斷工作方式0;IE7 6 5 4 3 2 1 0MOVIE,#90H EA ESET1EX1ET0EX0;設(shè)置允許總中斷和串口中斷;初始化顯示寄存器和數(shù)碼管顯示數(shù)據(jù)以及I/O口MOVA,#0MOVDISPHIGH,AMOVDISPLOW,AMOVA,#4MOVR0,A ;通過(guò)串口向外輸出四個(gè)數(shù)據(jù)SEND_INIT_DATA: ;送出初始化數(shù)據(jù)DJNZR0,MAIN_LOOPMOVDPTR,#DISP_TABLE ;表格地址送數(shù)據(jù)指針MOVA,#0MOVCA,@A+DPTR ;從字形碼DISPUTABLE中獲取串口輸出字形數(shù)據(jù)MOVSBUF,A ;通過(guò)串口輸出。DECR0AJMPSEND_INIT_DATAMAIN_LOOP:MAIN_LOOP1:;等待按鍵SETBKEY ;查看是否有按鍵JBK1,MAIN_LOOP1則確認(rèn)不是按鍵ACALLDELAY12ms;延時(shí)12ms,防抖動(dòng)則確認(rèn)不是按鍵JBK1,MAIN_LOOP1 ;再看是否為低電平,如果是則確認(rèn)為按鍵,如果不是,;處理按鍵INCDISPTEMP ;將高位顯示的寄存器數(shù)據(jù)加1MOVA,DISPTEMPINCDISPLOW,A ;將低位顯示的寄存器數(shù)據(jù)加2MOVDISPHIGH,AMOVA,DISPHIGH ;檢查是否超出99顯示范圍CJNEA,#100,MAIN_DISP_OUTJNCMAIN_DISP_OUTMOV A,#0 ;如果大于99,則清零。MOV DISPHIGH,AMOV DISPLOW,AMAIN_DISP_OUT:MOV A,#0MOV R0,A ;存取高位數(shù)據(jù)MOVA,DISPHIGHDISP_GET:CJNEA,#10,DISP_OPER;如果不等于10DISP_OPER:JCCYDISP_OUT;如果處理后的數(shù)據(jù)A小于10,則為個(gè)位數(shù),送顯SUBBA,#10 ;如果大于10,則再減,直到小于10為止INCR0 ;取十位數(shù)AJMPDISP_GETDISP_OUT: ;R0存十位數(shù),A存?zhèn)€位數(shù)MOVR4,A ;將個(gè)位數(shù)寄存下來(lái)
MOVA,R4;XXLLMOVC A,@A+DPTR;指向表格地址MOVSBUF,A;通過(guò)串口輸出第一個(gè)數(shù)據(jù)的個(gè)位數(shù)段碼MOVA,R0MOVCA,@A+DPTR;指向表格地址MOVSBUF,A;通過(guò)串口輸出第一個(gè)數(shù)據(jù)的十位數(shù)段碼MOVA,R4;取高位數(shù)的個(gè)位數(shù)的BCD碼HHXXMOVC A,@A+DPTR;指向表格地址MOVSBUF,A;通過(guò)串口輸出第一個(gè)數(shù)據(jù)的個(gè)位數(shù)段碼MOVA,R0MOVCA,@A+DPTR;指向表格地址MOVSBUF,A;通過(guò)串口輸出第一個(gè)數(shù)據(jù)的十位數(shù)段碼AJMPMAIN_LOOP;將數(shù)據(jù)輸出后,重新進(jìn)入等待按鍵狀態(tài)DELAY12ms:MOVR1,#0FH 涎時(shí)子程序,延時(shí)時(shí)間賦值LOOP12:MOVR2,#0FFHLOOP120:DJNZR2,LOOP120DJNZR1,LOOP12RET;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;串口輸出控制74HC595的字形碼;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;DISP_TABLE:DBC0H;字型碼表0DBF9H;1DBA4H;2DBB0H;3DB99H;4DB92H;5DB82H;6DBF8H;7DB80H;8DB90H;9DB91H;FEND;程序結(jié)束DPTR,#DISP_TABLE;表格地址送數(shù)據(jù)指針MOVMAINRUN:3/******************************************************************************//*此程序是單片機(jī)靜態(tài)顯示的處理程序。/*針對(duì)串口輸出段碼信息,采用帶鎖存器和移位寄存器分開的串入并出芯片74HC595。/******************************************************************************/#include"reg52.h"sbitsbitsbitsbitsbitsbitKEY=P3A2;REG_WRITE=P1.0;CLR_595=P1.1;〃定義數(shù)碼管電源控制開關(guān)〃定義164清除位#defineucharunsignedchar#defineuintunsignedint〃定義段碼ucharLEDSegCode[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};uintLEDDispCode[9]={1234,1321,2367,1567,1689,3267,1546,1574,1296};/******************************************************************************//*延時(shí)程序,每個(gè)函數(shù)延時(shí)1ms/*輸入?yún)?shù)為:t/******************************************************************************/Delay1ms(uchart)(uintCount0,Count1;for(Count0=0;Count0<t;Count0++)(for(Count1=0;Count1<60;Count1++)(;}}}main()(P0=0xff; //I/O初始化P1=0xff;P2=0xff;P3=0xff;〃串口中斷初始化-定義為0方式SCON=0x0; 〃設(shè)置串口中斷方式0IE=0x90 〃允許單片機(jī)總中斷和串口中斷0ucharCount,CountTemp;//定義兩個(gè)計(jì)數(shù)器ucharDisplayBuf;〃定義一個(gè)和顯示對(duì)應(yīng)寄存器CLR_595=1; 〃使595CLR端置高DisplayBuf=LEDSegCode[0];〃初始化方案四位數(shù)碼管為0for(Count=0;Count<4;Count++)(//通過(guò)串口輸出四個(gè)0的段碼,分別送給四個(gè)數(shù)碼管,送到595移位寄存器中SBUF=DisplayBuf;}REG_WRITE=1; 〃將移位寄存器的數(shù)據(jù)寫入鎖存器Delay1ms(1);REG_WRITE=0;CountTemp=0;while(1)(if(!KEY)( 〃如果有按鍵輸入Delay1ms(10); 〃延時(shí)10msif(!KEY){ 〃確認(rèn)按鍵LED_POWER=0; 〃斷開數(shù)碼管電源,防止出現(xiàn)顯示閃爍CLR_595=0; 〃給74ls164輸出一個(gè)2ms的低電平脈沖,清除輸出狀態(tài)Delay1ms(1);CLR_595=1;DisplayBuf=LEDSegCode[Count];//取出要顯示的數(shù)據(jù)for(Count=0;Count<4;Count++){//通過(guò)串口輸出四個(gè)0段碼,分別送給四個(gè)數(shù)碼管SBUF=DisplayBuf%10; 〃分別取出個(gè)位、十位、百位、千位數(shù)交送到串口輸出。DisplayBuf/=10;}if(CountTemp++>9)CountTemp=0;//如果9個(gè)數(shù)據(jù)都顯示完了,再重復(fù)從第一個(gè)數(shù)據(jù)開始顯示REG_WRITE=1; 〃將移位寄存器的數(shù)據(jù)寫入鎖存器Delay1ms(1);REG_WRITE=0;}}}}⑺、實(shí)驗(yàn)步驟⑺、實(shí)驗(yàn)步驟
、依次接收仿真器、仿真板、電源、打開電源并打開仿真軟件、調(diào)入調(diào)試程序、運(yùn)行程序,觀察數(shù)碼管顯示是否為0。、有按鍵輸入,數(shù)碼管數(shù)據(jù)按1234,4321,2367,4567,7689,3267,8546,4574,1296依次輪流顯示。⑻、實(shí)驗(yàn)總結(jié)⑼、實(shí)驗(yàn)體會(huì)七、實(shí)驗(yàn)(三)⑴、實(shí)驗(yàn)說(shuō)明(實(shí)驗(yàn)的描述)實(shí)驗(yàn)三通過(guò)單片機(jī)I/O對(duì)多位數(shù)碼管進(jìn)行位掃描的顯示方式而設(shè)計(jì)的典型應(yīng)用方案。方案如圖所方案中電路為了保證數(shù)碼管有足夠的亮度,采用總線驅(qū)動(dòng)集成電路74LS244做為段碼的驅(qū)動(dòng)器。74LS244每位可以吸收3454mA電流,而數(shù)碼管每段的電流為20mA,74LS244足以做數(shù)碼管的字段驅(qū)動(dòng)器;采用大功率三極管T8050做為數(shù)碼管公共極的驅(qū)動(dòng),對(duì)于數(shù)碼管峰值電流為140mA,而T8050的輸出電流可以達(dá)到1500mA,是數(shù)碼管峰值電流的十倍以上,所以也滿足數(shù)碼管公共極的驅(qū)動(dòng)需要。方案采用四個(gè)單位共陽(yáng)極,0.8的數(shù)碼管做為顯示器。一個(gè)復(fù)位按鍵電路,按鍵信號(hào)由P3.2口輸入。P2.0P2.6做為段碼的輸出,P1.0P1.2做為74LS238地址位的輸出口,掃描每一位數(shù)碼管。對(duì)于74LS238輸出口可以接八個(gè)單位的數(shù)碼管,在此方案中只接四位,對(duì)應(yīng)74LS238的輸出口分別為:Y0、Y1、Y2、Y3,而Y4、Y5、Y6、Y7懸空。方案的功能是剛上電時(shí),四位數(shù)碼管顯示數(shù)據(jù)為0。檢測(cè)是否有按鍵,如果沒(méi)有,則保持以前的狀態(tài)顯示,如果有按鍵,則更換顯示數(shù)據(jù)。顯示的數(shù)據(jù)依次為1234,4321,2367,4567,7689,3267,8546,4574,1296。⑵、實(shí)驗(yàn)工具
硬件:電腦、電源DC5V、仿真器、燒寫器、演示板、示波器軟件:Keil51編譯器,Protel99SE、仿真器軟件、燒寫器軟件sn.tZ」LKlii_Ljsn.tZ」LKlii_Lj二: LHTi_CE3LHLi_feJLi FlATHLTMl.Fl2fla風(fēng)彳PHFl5FIEPOaFl7MlB7L89C51臾LFJJTl.TOF2-IF25~rTF27XIX2SJ3XTKXDTXD而心:-4.7KJMLED』]JU.__d4.7KLED』]LHTi_CB3.__d4.7KILED_B3HIJ k—1⑶、元器件列表名稱規(guī)格數(shù)量名稱規(guī)格數(shù)量瓷片電容1041電阻2K133P210K2電解電容100UF/16V14.7K410UF/16V12007發(fā)光二極管紅,051復(fù)位開關(guān)1電源座189C51DIP1三極管T8050,直插4ULN2003ADIP1數(shù)碼管共陽(yáng),0.84晶振12M,直插174LS238DIP1⑷、原理圖圖5:實(shí)驗(yàn)三原理圖原理圖說(shuō)明:實(shí)驗(yàn)三原理圖是為實(shí)現(xiàn)單片機(jī)控制數(shù)碼管動(dòng)態(tài)驅(qū)動(dòng)顯示功能而設(shè)計(jì)的電路。采用DC5V供電,發(fā)光二極管D2做為電源指示,R3做為D2的限流分壓電阻,電容C3和電解電容C7做為電源濾波電容,電阻R2和按鍵S1組成按鍵電路,信號(hào)由P3.2輸入,電容C8、電容C9和晶振Y2組成單片機(jī)外圍晶振電路,電容C10和電容R6組成單片機(jī)的復(fù)位電路,U1(74LS244)做為字段的驅(qū)動(dòng)集成電路,Q1、Q2、Q3和Q4做為共陽(yáng)極數(shù)碼管的位掃描控制電路和驅(qū)動(dòng)電路。P2.0P2.6做為段碼的輸出口,P1.0P1.2做為74LS238的地址輸出位,控制掃描四位數(shù)碼管顯示,在此只接74LS238的底四位。在此處用74LS238的原因是74LS238輸出的有效電平為高電平,剛好符合數(shù)碼管顯示掃描控制的功能!⑸、軟件流程圖流程1流程1:實(shí)驗(yàn)一程序流程圖⑹、源程序代碼/******************************************************************************//*此程序是單片機(jī)動(dòng)態(tài)顯示的處理程序。/*⑹、源程序代碼/******************************************************************************//*此程序是單片機(jī)動(dòng)態(tài)顯示的處理程序。/*針對(duì)P2.0P2.6輸出段碼信息,P1.0P1.2向74ls238輸出掃描地址而設(shè)計(jì)的。/******************************************************************************/#include"reg52.h”sbitKEY=P3AsbitKEY=P3A2;〃定義按鍵的輸入腳#defineucharunsignedchar#defineuintunsignedint//定義段碼ucharLEDScanCode[8]={0x0,0x1,0x2,0x3,0x4,0x5,0x6,0x7};ucharLEDSegCode[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};uintLEDDispCode[9]={1234,1321,2367,1567,1689,3267,1546,1574,1296};/******************************************************************************//*延時(shí)程序,每個(gè)函數(shù)延時(shí)1ms/*輸入?yún)?shù)為:t/******************************************************************************/Delay1ms(uchart){uintCount0,Count1;for(Count0=0;Count0<t;Count0++)(for(Count1=0;Count1<60;Count1++)(;}}}main()(P0=0xff; //I/O初始化P1=0xff;P2=0xff;P3=0xff;ucharCount,CountTemp,CountTemp2; 〃定義一個(gè)計(jì)數(shù)器ucharDisplayBuf[4],DisplayTemp; 〃定義一個(gè)和顯示對(duì)應(yīng)寄存器for(Count=0;Count<4;Count++)(DisplayBuf[Count]=LEDSegCode[0];〃初始化方案四位數(shù)碼管為0}Count=0; 〃從第一個(gè)數(shù)碼管開始顯示和掃描CountTemp=0;//從LEDDispCode[]M一個(gè)要顯示的數(shù)據(jù)進(jìn)行顯示while(1)(if(!KEY)( 〃如果有按鍵輸入Delay1ms(10); 〃延時(shí)10msif(!KEY){ 〃確認(rèn)按鍵DisplayTemp=LEDDispCode[CountTemp]; 〃將要顯示的數(shù)據(jù)取出,分別放在四個(gè)寄存中for(CountTemp2=0;CountTemp2<4;CountTemp2++){〃通過(guò)串口輸出四個(gè)0段碼,分別送給四個(gè)數(shù)碼管DisplayBuf[CountTemp2]=DisplayTemp%10; 〃分別取出個(gè)位、十位、百位、千位數(shù)交送到串口輸出。DisplayTemp/=10;}if(CountTemp++>9)CountTemp=0;//如果9個(gè)數(shù)據(jù)都顯示完了,再重復(fù)從第一個(gè)數(shù)據(jù)開始顯示}}P2=DisplayBuf[Count]; 〃將字段碼輸出P1=LEDScanCode[Count];//輸出掃描地址Delay1ms();//延時(shí)1ms時(shí)間,這個(gè)比較重要。if(Count++>=4)Count=0;//只針對(duì)四位數(shù)碼管進(jìn)行掃描}}⑺、實(shí)驗(yàn)步驟、依次接收仿真器、仿真板、電源、打開電源并打開仿真軟件、調(diào)入調(diào)試程序、運(yùn)行程序,觀察數(shù)碼管顯示是否為0。、有按鍵輸入,數(shù)碼管數(shù)據(jù)按1234,4321,2367,4567,7689,3267,8546,4574,1296依次輪流顯示。⑻、常見(jiàn)問(wèn)題
⑼、實(shí)驗(yàn)總結(jié)八、實(shí)驗(yàn)(四)⑴、實(shí)驗(yàn)說(shuō)明(實(shí)驗(yàn)的描述)實(shí)驗(yàn)四是針對(duì)多位(可達(dá)300位以上)不同大小(0.368英寸)的數(shù)碼管單片機(jī)串口掃描的顯示方式而設(shè)計(jì)的典型應(yīng)用方案。單片機(jī)單片機(jī)圖4:?jiǎn)纹瑱C(jī)掃描多位數(shù)碼管方案設(shè)計(jì)圖如方案圖所示,電路為了保證數(shù)碼管有足夠的亮度,采用達(dá)林頓管集成電路ULN2003做為數(shù)碼管段驅(qū)動(dòng)器,ULN2003每位驅(qū)動(dòng)腳驅(qū)動(dòng)電流可以達(dá)500mA,耐壓可達(dá)50V,如果按每位的每段電流為10mA,這樣可以驅(qū)動(dòng)50個(gè)數(shù)碼管。采用大功率三極管TIP42C做為共陽(yáng)極數(shù)碼管公共極驅(qū)動(dòng)驅(qū)動(dòng),驅(qū)動(dòng)電流為6A,耐壓可達(dá)100V,如果按數(shù)碼管的峰值電流為70mA計(jì)算,可以驅(qū)動(dòng)85個(gè)數(shù)碼管。總計(jì)行列計(jì)算:50x85=4250個(gè)數(shù)碼管。方案采用串口移位芯片74HC595芯片,通過(guò)串口輸出段碼信息,數(shù)據(jù)分別送到每行的數(shù)碼管中。采用74LS154,通過(guò)地址可以掃描驅(qū)動(dòng)每列的數(shù)碼管。此方案的顯示設(shè)定為兩行三列共六位數(shù)碼管。段控制做為行,共兩行,位控制做為列,共三列。方案的功能是剛上電時(shí),設(shè)置串口工作方式為0,四位數(shù)碼管顯示數(shù)據(jù)為0。檢測(cè)是否有按鍵,如果沒(méi)有,則保持以前的狀態(tài)顯示,如果有按鍵,則更換顯示數(shù)據(jù)。顯示的數(shù)據(jù)依次為1234,4321,2367,4567,7689,3267,8546,4574,1296。⑵、實(shí)驗(yàn)工具硬件:電腦、電源DC5V、仿真器、燒寫器、演示板、示波器軟件:Keil51編譯器,Protel99SE、仿真器軟件、燒寫器軟件⑶、元器件列表
名稱規(guī)格數(shù)量名稱規(guī)格數(shù)量瓷片電容1042電阻2K133P210K2電解電容100UF/16V14.7K710UF/16V130074700UF/50V174HC595DIP2發(fā)光二極管紅,中51復(fù)位開關(guān)1電源座189C51DIP1三極管TIP42C,直插3ULN2003ADIP2數(shù)碼管共陽(yáng),0.86晶振12M,直插17805174LS154DIP1⑷、原理圖JI==Cf!===Cf!insjtcixch^R(IXtMmSC3XCM05CMrgmV£(TO W1OIJT1.&2mn2&.1caminsjtcixch^R(IXtMmSC3XCM05CMrgmV£(TO W1OIJT1.&2mn2&.1cammnAme■■mnAW7mji?("L心甥ULN2003LH7DIn'll'IH'li'In'llLH7DD7TIPLIEOTIP42CsnCMsjtcixOlsji(ix0203Jtcix05CHIOCmiOIJT1.&2mn2&.1camea\ri4me.■■■-a\nAW7mji?("W甥LHnJrlDlLgTi3irCLHlCrllMLHTi-|lD7VC£BT4HCS9FULN2003TTPLIE]FIATFlLTPQLFI2Fl3MlPHFl5M5Fid-M也Fl7MLF2Q1'■■TflP2LF22Tl.PJ.IFJ-Ir岳FJ6F2?XIX2srsnJtXDTKD麗.■uj:rMIXLKlf^_QOTIPLmTIP42CtliTLlour.wv圖6:實(shí)驗(yàn)四原理圖原理圖說(shuō)明:實(shí)驗(yàn)四原理圖是為實(shí)現(xiàn)單片機(jī)串口通過(guò)串入并出芯片 74HC595輸出段碼信息,通過(guò)74LS145輸出動(dòng)態(tài)掃描功能而設(shè)計(jì)的電路。此電路為多位數(shù)碼管顯示的小型應(yīng)用電路。采用由穩(wěn)壓電源集成電路7805和電容共同組成一個(gè)穩(wěn)壓電源為整個(gè)電路供電并輸出DC5V電壓,采用DC9V-12V供電,在7805前端,采用電容C7和C8做為前端的濾波穩(wěn)壓的電路,C8一般采用容量比較大和耐壓較高的電容,目前是防止輸出電源不穩(wěn)定而設(shè)計(jì)的;在7805后端,采用C9和C10電容做為7805后端的穩(wěn)壓和濾波,在此參數(shù)要求不是很高。發(fā)光二極管D2做為電源指示,R7做為D2的限流分壓電阻,電阻R6和按鍵S2組成按鍵電路,信號(hào)由P3.2輸入,電容C3、電容C13和24M晶振Y2組成單片機(jī)外圍晶振電路,電容C14和電容R8組成單片機(jī)的復(fù)位電路。單片機(jī)串口接74HC595電路做為段碼輸出,74HC595具有移位寄存器和鎖存器相互獨(dú)立控制的功能,在移位時(shí),不會(huì)影響顯示,數(shù)碼管就不會(huì)出現(xiàn)顯示抖動(dòng)的現(xiàn)象。為了保證數(shù)碼管的亮度,在此采用專用集成電路ULN2003做為數(shù)碼管字段的電流驅(qū)動(dòng)電路,驅(qū)動(dòng)電流可達(dá)500mA,耐壓可達(dá)50V。在每位數(shù)碼管的公共極增加了大功率驅(qū)動(dòng)電路TIP42C,驅(qū)動(dòng)電流可達(dá)6A,耐壓可達(dá)100V。P2.1P2.4做為74LS154地址輸入口,P2.0做為74LS154的輸出控制位,74LS154是一
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 無(wú)利不起早的近義句
- 租戶轉(zhuǎn)讓合同(2篇)
- 提職考試復(fù)習(xí)題練習(xí)卷附答案
- 第1單元《快樂(lè)學(xué)習(xí)》說(shuō)課稿-2023-2024學(xué)年道德與法治三年級(jí)上冊(cè)統(tǒng)編版
- 西昌學(xué)院《出鏡記者現(xiàn)場(chǎng)報(bào)道》2021-2022學(xué)年第一學(xué)期期末試卷
- Module 1單元備課(說(shuō)課稿)-2024-2025學(xué)年外研版(一起)英語(yǔ)四年級(jí)上冊(cè)
- 教科版信息技術(shù)高一必修 7.1信息資源管理說(shuō)課稿
- 6 狼牙山五壯士 說(shuō)課稿-2024-2025學(xué)年六年級(jí)語(yǔ)文上冊(cè)(統(tǒng)編版)
- Unit 1 Honesty and responsibility Project 說(shuō)課稿-2023-2024學(xué)年高中英語(yǔ)譯林版(2020)選擇性必修第四冊(cè)
- 第三章 整式及其加減回顧與思考(第1課時(shí))說(shuō)課稿2024-2025學(xué)年北師大版數(shù)學(xué)七年級(jí)上冊(cè)
- 高壓交流電動(dòng)機(jī)試驗(yàn)報(bào)告
- 樓地面裂縫的原因及防治措施
- 阿爾卡特?cái)?shù)字程控交換機(jī)Omnipcx4400說(shuō)明
- 10000中國(guó)普通人名大全
- 銑削深攪水泥土攪拌墻技術(shù)規(guī)程-中國(guó)土木工程學(xué)會(huì)
- 寧德時(shí)代股權(quán)激勵(lì)計(jì)劃
- 倉(cāng)庫(kù)租賃合同電子版
- 倪海廈人紀(jì)之針灸 全
- 《學(xué)前教育專業(yè)導(dǎo)論》課程教學(xué)大綱
- trizol法組織DNARNA及蛋白提取方法
- 小腿免荷支具矯形器制作流程【培訓(xùn)課件】
評(píng)論
0/150
提交評(píng)論