用單片機(jī)制作多功能莫爾斯碼電路:用單片機(jī)制作多功能莫爾斯碼電路莫爾斯電碼通信有著悠久的歷史,盡管它已被現(xiàn)代通信方式所取代,但在業(yè)余無(wú)線(xiàn)電通信和特殊的專(zhuān)業(yè)場(chǎng)合仍具有重要的地位,這是因?yàn)榈确姶a通信的抗干擾能力是其它任何一種通信方式都無(wú)法相比的。在短波波段用幾瓦的功率即可進(jìn)行國(guó)際間的通信,收發(fā)射設(shè)備簡(jiǎn)單易制成本低廉,所以深受業(yè)余無(wú)線(xiàn)電愛(ài)好者的喜愛(ài),是業(yè)余無(wú)線(xiàn)電高手必備的技能。要想熟練掌握莫爾斯電碼的收發(fā)技術(shù)除了持之以恒的毅力外,還需要相關(guān)的設(shè)備。設(shè)計(jì)本電路的目的就是給愛(ài)好者提供一個(gè)實(shí)用和訓(xùn)練的工具。 一、功能簡(jiǎn)介 本電路可以配合自動(dòng)鍵體和手動(dòng)鍵體,產(chǎn)生莫爾斯碼控制信號(hào),設(shè)有16種速度,從初學(xué)者到操作高手都能適用。監(jiān)聽(tīng)音調(diào)也有16種,均可以通過(guò)功能鍵進(jìn)行選擇。可以按程序中設(shè)定好的呼號(hào)自動(dòng)呼叫,設(shè)有聽(tīng)抄練習(xí)功能,聽(tīng)抄練習(xí)有短碼和混合碼兩種模式,分別對(duì)10個(gè)數(shù)字和常用的38個(gè)混合碼模擬隨機(jī)取樣,產(chǎn)生分組報(bào)碼,供愛(ài)好者提高抄收水平之用,速度低4檔的聽(tīng)抄練習(xí)是專(zhuān)為初學(xué)者所設(shè),內(nèi)容是時(shí)間間隔較長(zhǎng)的單字符。設(shè)有PTT開(kāi)關(guān)鍵,可以決定是否控制發(fā)射機(jī)工作,不需要反復(fù)通斷控制線(xiàn)。無(wú)論當(dāng)前處于呼叫狀態(tài)還是聽(tīng)抄狀態(tài)只要電鍵接點(diǎn)接通則自動(dòng)轉(zhuǎn)到人工發(fā)報(bào)程序。4分鐘內(nèi)不使用電路將自動(dòng)關(guān)閉電源,只有按復(fù)位鍵才能重新開(kāi)始工作。先按住聽(tīng)抄練習(xí)鍵復(fù)位則進(jìn)入短碼練習(xí)狀態(tài),其它功能不變。從開(kāi)機(jī)到自動(dòng)關(guān)機(jī)執(zhí)行每個(gè)功能都有不同的莫爾斯碼提示音。本電路具有較強(qiáng)的抗高低頻干擾的能力和使用方便的大電流開(kāi)關(guān)接口,以適應(yīng)不同的發(fā)射設(shè)備。 二、硬件電路原理硬件電路如圖1所示。設(shè)計(jì)電路的目的在于方便實(shí)用,以免在緊張的操作中失誤,所以除了聽(tīng)抄練習(xí)鍵外其它鍵沒(méi)有定義復(fù)用功能。各鍵的作用在圖中已經(jīng)標(biāo)出。PTT控制在每次復(fù)位時(shí)處于關(guān)閉狀態(tài),每按動(dòng)一次PTT功能鍵則改變一次狀態(tài),這樣可以使用軟件開(kāi)關(guān)控制發(fā)射。 PTT處于控制狀態(tài)時(shí)發(fā)光二極管隨控制信號(hào)閃亮。考慮到自制設(shè)備及淘汰軍用設(shè)備與高檔設(shè)備控制電流的不同,PTT開(kāi)關(guān)管采用了2SC2073,可以承受500mA的電流,同時(shí)還增加了無(wú)極性PTT開(kāi)關(guān)電路,無(wú)論外部被控制的端口直流極性如何加到VT3的極性始終不變,供有興趣的愛(ài)好者實(shí)驗(yàn)。應(yīng)該注意,如果被控制的負(fù)載是感性,則電感兩端必須并聯(lián)續(xù)流二極管,除自制設(shè)備外成品機(jī)在這方面一般沒(méi)有什么問(wèn)題。手動(dòng)鍵只有一個(gè)接點(diǎn),接通后產(chǎn)生連續(xù)的音頻和發(fā)射控制信號(hào)。在本電路中手動(dòng)鍵的輸入端是P1.5 ,程序不斷檢測(cè)P1.5電平,當(dāng)按鍵按下時(shí)P1.5電平為0,程序轉(zhuǎn)入手動(dòng)鍵子程序。 自動(dòng)鍵的接點(diǎn)分別接到P1.3和P1.4 ,同樣當(dāng)程序檢測(cè)到有接點(diǎn)閉合時(shí)便自動(dòng)產(chǎn)生“點(diǎn)”或“劃”。音頻信號(hào)從P輸出,經(jīng)VT1放大后推動(dòng)揚(yáng)聲器發(fā)音。單片機(jī)的I/O口在輸入狀態(tài)下阻抗較高,容易受到高低頻信號(hào)干擾,所以在每個(gè)輸入端口和三極管的be端并聯(lián)電阻和高頻旁路電容,確保在較長(zhǎng)的電鍵連線(xiàn)和大功率發(fā)射時(shí)電路工作穩(wěn)定。圖2是印刷電路版圖,尺寸為110mmX85mm,揚(yáng)聲器用粘合劑直接粘接在電路版有銅箔的面。 三、軟件設(shè)計(jì)方法 “點(diǎn)”時(shí)間長(zhǎng)度是莫爾斯電碼中的基本時(shí)間單位。按規(guī)定“劃”的時(shí)間長(zhǎng)度不小于三個(gè)“點(diǎn)”,同字符中“點(diǎn)”與“劃”的間隔不小于一個(gè)“點(diǎn)”,字符之間不小于一個(gè)“劃”,詞與詞之間不應(yīng)小于五個(gè)“點(diǎn)”。在本程序中用條件轉(zhuǎn)移指令來(lái)產(chǎn)生“點(diǎn)”時(shí)間長(zhǎng)度。通過(guò)速度功能鍵功可以設(shè)置16種延時(shí)參數(shù)。用T0中斷產(chǎn)生監(jiān)聽(tīng)音頻信號(hào),并將中斷設(shè)為優(yōu)先級(jí),保證在聽(tīng)覺(jué)上純正悅耳。T1用于自動(dòng)關(guān)機(jī)計(jì)時(shí),如果不使用任何功能四分鐘后將向PCON 位寫(xiě)1,單片機(jī)進(jìn)入休眠狀態(tài),此時(shí)耗電量?jī)H有幾個(gè)微安。自動(dòng)鍵的“點(diǎn)”或“劃”以及手動(dòng)鍵的連續(xù)發(fā)音都是子程序的反復(fù)調(diào)用。P1.2對(duì)地短接時(shí)自動(dòng)呼叫可設(shè)定為另一內(nèi)容。為了便于熟悉匯編語(yǔ)言的讀者對(duì)發(fā)音內(nèi)容進(jìn)行修改,這里介紹發(fā)音字符的編碼方法。莫爾斯碼的信息與計(jì)算機(jī)中二進(jìn)制恰好相同,我們可以用0表示“點(diǎn)”,用1表示“劃”。提示音、自動(dòng)呼叫、聽(tīng)抄內(nèi)容等字符是預(yù)先按一定編碼方式存儲(chǔ)在程序中的常數(shù)。每個(gè)字符的莫爾斯碼一般是由1至6位“點(diǎn)”、“劃”組成,也就是發(fā)音次數(shù)最多6次。程序中每個(gè)字符占用1個(gè)字節(jié),字符時(shí)間間隔不占用字節(jié),但更長(zhǎng)的延時(shí)或發(fā)音結(jié)束信息占用一個(gè)字節(jié)。我們用字節(jié)的低三位表示字節(jié)的性質(zhì),對(duì)于5次及5次以下發(fā)音的字符我們用存儲(chǔ)器的高5位存儲(chǔ)發(fā)音信息,發(fā)音順序由高位至低位,用低3位存儲(chǔ)發(fā)音次數(shù),發(fā)音時(shí)將數(shù)據(jù)送入累加器A,先得到發(fā)音次數(shù),然后使A左環(huán)移,對(duì)E0進(jìn)行位尋址,判斷是發(fā)“點(diǎn)”還是“劃”,環(huán)移次數(shù)由發(fā)音次數(shù)決定。對(duì)于6次發(fā)音的字符不能完全按照上述編碼規(guī)則,否則會(huì)出現(xiàn)信息重疊,如果是6次發(fā)音且最后一次是“劃”我們把發(fā)音次數(shù)定義為111B,因?yàn)檫@時(shí)第6次位尋址得到的是1。如果第6次發(fā)音是“點(diǎn)”,那么這個(gè)字符的低三位定義為000B。字符間隔時(shí)間由程序自動(dòng)產(chǎn)生,更長(zhǎng)的時(shí)間隔或結(jié)束標(biāo)志由字節(jié)低三位110B來(lái)定義,高半字節(jié)表示字符間隔的倍數(shù),例如26H表示再加兩倍時(shí)間間隔。如果字節(jié)為06H則表示讀字符程序結(jié)束,返回主程序。更詳細(xì)的內(nèi)容不再贅述,讀者可閱讀源程序。四、使用注意事項(xiàng)手動(dòng)鍵的操作難度相對(duì)大一些,時(shí)間節(jié)拍全由人掌握,其特點(diǎn)是發(fā)出的電碼帶有“人情味”。自動(dòng)鍵的“點(diǎn)”、“劃”靠電路產(chǎn)生,發(fā)音標(biāo)準(zhǔn),容易操作,而且可以達(dá)到相當(dāng)快的速度,長(zhǎng)時(shí)間工作也不易疲勞。在干擾較大、信號(hào)微弱的條件下自動(dòng)鍵碼的辨別程度好于手動(dòng)鍵碼。初學(xué)者初次使用手動(dòng)鍵練習(xí)發(fā)報(bào)要有老師指導(dǎo),且不可我行我素,一旦養(yǎng)成不正確的手法則很難糾正。在電臺(tái)上時(shí)常聽(tīng)到一些讓對(duì)方難以抄收的電碼,這可能會(huì)使對(duì)方反感而拒絕回答。使用自動(dòng)鍵也應(yīng)在一定的聽(tīng)抄基礎(chǔ)上再去練習(xí)。在暫時(shí)找不老師的情況下可多練習(xí)聽(tīng)力,這對(duì)于今后能夠發(fā)出標(biāo)準(zhǔn)正確的電碼非常有益。
上傳時(shí)間: 2013-10-31
上傳用戶(hù):sdq_123
電子密碼鎖的設(shè)計(jì)與實(shí)現(xiàn)一、實(shí)驗(yàn)?zāi)康?nbsp;1.進(jìn)一步掌握鍵盤(pán)掃描和LED顯示的程序設(shè)計(jì)。 2.了解按鍵消抖的方法。 3.綜合運(yùn)用微機(jī)原理的軟硬件知識(shí)。 二、實(shí)驗(yàn)內(nèi)容與要求 1.基本要求 (1)具有密碼輸入功能,密碼最多為6位;(2)設(shè)置退格鍵,以便刪除輸入錯(cuò)誤的密碼;(3)在輸入的密碼時(shí)數(shù)碼管上只顯示8,并根據(jù)輸入位數(shù)依次橫移;(4)設(shè)置確認(rèn)鍵,當(dāng)確認(rèn)鍵按下后,判斷輸入密碼是否正確;(5)當(dāng)輸入密碼正確時(shí),點(diǎn)亮發(fā)光二極管;當(dāng)輸入密碼不正確時(shí),發(fā)光二極管不亮并且蜂鳴器報(bào)警,重新輸入,當(dāng)三次密碼輸入不正確時(shí),系統(tǒng)應(yīng)鎖定鍵盤(pán)10s。2.提高要求 將用戶(hù)分為管理者和使用者,管理者擁有超級(jí)密碼,可以修改其他人的密碼。使用者不能修改密碼。 三、實(shí)驗(yàn)報(bào)告要求 1.設(shè)計(jì)目的和內(nèi)容 2.總體設(shè)計(jì) 3.硬件設(shè)計(jì):原理圖(接線(xiàn)圖)及簡(jiǎn)要說(shuō)明 4.軟件設(shè)計(jì)框圖及程序清單5.設(shè)計(jì)結(jié)果和體會(huì)(包括遇到的問(wèn)題及解決的方法) 四、總體設(shè)計(jì) 電子密碼鎖的原理是:從鍵盤(pán)輸入一組密碼,CPU把該密碼和設(shè)置密碼比較,對(duì)則將鎖打開(kāi)(不同鎖的控制方式不一樣,比如加電控制電磁鐵抽回,從而打開(kāi)),錯(cuò)則要求重新輸入,并記錄錯(cuò)誤次數(shù),如果三次錯(cuò)誤,則被強(qiáng)制鎖定并報(bào)警,除非超級(jí)密碼或者其他的手段打開(kāi),比如延時(shí)一段時(shí)間。 初步設(shè)計(jì)思路如下: 1.輸入密碼用矩形鍵盤(pán),包括數(shù)字鍵和功能鍵,功能鍵包括退格鍵和確認(rèn)鍵。 2.LED數(shù)碼管顯示輸入密碼,但是只是輸出顯示符號(hào)8 。采用動(dòng)態(tài)掃描輸出。 3.用發(fā)光二極管模擬鎖的情況,鎖關(guān)時(shí)發(fā)光二極管滅,打開(kāi)時(shí)發(fā)光二極管亮。 4.輸入密碼錯(cuò)誤時(shí)報(bào)警,3次輸入錯(cuò)誤時(shí)鍵盤(pán)鎖定10s,鍵盤(pán)無(wú)法接收數(shù)據(jù)。 軟件的設(shè)計(jì)主要包括矩形鍵盤(pán)鍵值的讀取、LED動(dòng)態(tài)掃描輸出程序、密碼判斷程序和報(bào)警程序。 五、硬件設(shè)計(jì) 根據(jù)設(shè)計(jì)思路,硬件電路可通過(guò)實(shí)驗(yàn)平臺(tái)上的一些功能模塊電路組成,由于實(shí)驗(yàn)平臺(tái)上的各個(gè)功能模塊已經(jīng)設(shè)計(jì)好,用戶(hù)在使用時(shí)只要設(shè)計(jì)模塊間電路的連接,因此,硬件電路的設(shè)計(jì)及實(shí)現(xiàn)相對(duì)簡(jiǎn)單。完整系統(tǒng)的硬件連接如圖1所示。硬件電路由LED數(shù)碼管顯示模塊、按鍵模塊、發(fā)光二極管電路和蜂鳴器模塊組成。各個(gè)模塊的詳細(xì)說(shuō)明:1.LED數(shù)碼管模塊實(shí)驗(yàn)平臺(tái)上提供一組六個(gè)LED數(shù)碼管。插孔CS1用于數(shù)碼管段選的輸出選通,插孔CS2用于數(shù)碼管位選信號(hào)的輸出選通。本設(shè)計(jì)用6個(gè)數(shù)碼管來(lái)動(dòng)態(tài)顯示時(shí)分秒,動(dòng)態(tài)顯示的定時(shí)時(shí)間由8253定時(shí)/計(jì)數(shù)器來(lái)實(shí)現(xiàn)。8253主要是實(shí)現(xiàn)每位顯示時(shí)間1ms,由8253的計(jì)數(shù)器0來(lái)實(shí)現(xiàn)。Clk0接實(shí)驗(yàn)平臺(tái)分頻電路輸出Q6,f=46875hz。GATE0接8255的PA0,由8255的PA0輸出來(lái)控制計(jì)數(shù)器的起停。OUT0接8259的IRQ2,定時(shí)完成請(qǐng)求中斷,進(jìn)入中斷服務(wù)程序。軟件在中斷服務(wù)程序中LED數(shù)碼管顯示。
標(biāo)簽: 電子密碼鎖
上傳時(shí)間: 2013-10-16
上傳用戶(hù):15070202241
給初學(xué)單片機(jī)的40個(gè)實(shí)驗(yàn)(含電路圖和源程序) 1. 閃爍燈 1. 實(shí)驗(yàn)任務(wù) 如圖4.1.1所示:在P1.0端口上接一個(gè)發(fā)光二極管L1,使L1在不停地一亮一滅,一亮一滅的時(shí)間間隔為0.2秒。 2. 電路原理圖 . 模擬開(kāi)關(guān)燈 1. 實(shí)驗(yàn)任務(wù) 如圖4.2.1所示,監(jiān)視開(kāi)關(guān)K1(接在P3.0端口上),用發(fā)光二極管L1(接在單片機(jī)P1.0端口上)顯示開(kāi)關(guān)狀態(tài),如果開(kāi)關(guān)合上,L1亮,開(kāi)關(guān)打開(kāi),L1熄滅。 2. 電路原理圖 5. 廣告燈(利用取表方式) 1. 實(shí)驗(yàn)任務(wù) 利用取表的方法,使端口P1做單一燈的變化:左移2次,右移2次,閃爍2次(延時(shí)的時(shí)間0.2秒)。 2. 電路原理圖
標(biāo)簽: 單片機(jī) 實(shí)驗(yàn) 電路圖 源程序
上傳時(shí)間: 2013-11-29
上傳用戶(hù):frank1234
紅外遙控接收;=================================================;; zsMCU51實(shí)驗(yàn)板配套學(xué)習(xí)例程;; 中山單片機(jī)學(xué)習(xí)網(wǎng) 智佳科技;; 作者:逸風(fēng) QQ:105558851;; http://www.zsmcu.com; E-mail:info@zsmcu.com;=================================================ORG 0000HLJMP START;轉(zhuǎn)入主程序ORG 0010HSTART:MAIN:JNB P2.2,IRLJMP MAIN;以下為進(jìn)入P3.2腳外部中斷子程序,也就是解碼程序IR:MOV R6,#9SB:ACALL DELAY882 ;調(diào)用882微秒延時(shí)子程序JB P2.2,EXIT ;延時(shí)882微秒后判斷P3.2腳是否出現(xiàn)高電平如果有就退出解碼程序DJNZ R6, SB ;重復(fù)10次,目的是檢測(cè)在8820微秒內(nèi)如果出現(xiàn)高電平就退出解碼程序;以上完成對(duì)遙控信號(hào)的9000微秒的初始低電平信號(hào)的識(shí)別。JNB P2.2, $ ;等待高電平避開(kāi)9毫秒低電平引導(dǎo)脈沖ACALL DELAY2400JNB P2.2,IR_Rp ;ACALL DELAY2400 ;延時(shí)4.74毫秒避開(kāi)4.5毫秒的結(jié)果碼MOV R1,#1AH ;設(shè)定1AH為起始RAM區(qū)MOV R2,#4PP:MOV R3,#8JJJJ:JNB P2.2,$ ;等待地址碼第一位的高電平信號(hào)LCALL DELAY882 ;高電平開(kāi)始后用882微秒的時(shí)間尺去判斷信號(hào)此時(shí)的高低電平狀態(tài)MOV C,P2.2 ;將P3.2引腳此時(shí)的電平狀態(tài)0或1存入C中 JNC UUU ;如果為0就跳轉(zhuǎn)到UUULCALL DELAY1000UUU:MOV A,@R1 ;將R1中地址的給ARRC A ;將C中的值0或1移入A中的最低位MOV @R1,A ;將A中的數(shù)暫時(shí)存放在R1中DJNZ R3,JJJJ ;接收地址碼的高8位INC R1 ;對(duì)R1中的值加1,換下一個(gè)RAMDJNZ R2,PP ;接收完16位地址碼和8位數(shù)據(jù)碼和8位數(shù)據(jù),存放在1AH/1BH/1CH/1DH的RAM中MOV P1,1DH ;將按鍵的鍵值通過(guò)P1口的8個(gè)LED顯示出來(lái)!CLR P2.3 ;蜂鳴器鳴響-嘀嘀嘀-的聲音,表示解碼成功LCALL DELAY2400LCALL DELAY2400LCALL DELAY2400SETB P2.3;蜂鳴器停止LJMP MAINIR_Rp:LJMP MAINEXIT:LJMP MAIN ;退出解碼子程序;=============================882DELAY882: ;1.085x ((202x4)+5)=882MOV R7,#202DELAY882_A:NOPNOPDJNZ R7,DELAY882_ARET;=============================1000DELAY1000: ;1.085x ((229x4)+5)=999.285MOV R7,#229DELAY1000_A:NOPNOPDJNZ R7,DELAY1000_ARET;=============================2400
上傳時(shí)間: 2013-11-01
上傳用戶(hù):2525775
4位八段數(shù)碼管的十進(jìn)制加計(jì)數(shù)仿真實(shí)驗(yàn),程序采用匯編語(yǔ)言編寫(xiě)。此程序在仿真軟件上與EDN-51實(shí)驗(yàn)板上均通過(guò)。仿真圖中的數(shù)碼管位驅(qū)動(dòng)采用74HC04,如按EDN-51板上用想同的PNP三極管驅(qū)動(dòng)在仿真軟件上則無(wú)法正常顯示。程序共分5塊,STAR0為數(shù)據(jù)初始化,STAR2為計(jì)數(shù)子程序,STAR3為4位數(shù)碼管動(dòng)態(tài)顯示子程序,STAR4為按鍵掃描子程序,STS00是延時(shí)子程序。由于EDN-51實(shí)驗(yàn)板上沒(méi)裝BCD譯碼器,所以編寫(xiě)程序比較煩瑣。 程序如下: ORG 0000H LJMP STAR0 ;轉(zhuǎn)程序 SRAR0ORG 0200H ;程序地址 0200HSTAR0: CLR 00 ;位 00 清 0 MOV P1,#0FFH ;#0FFH-->P1 MOV P2,#0FH ;#0FH-->P2 MOV P0,#0FFH ;#0FFH-->P0 MOV 30H,#00H ;#00H-->30H MOV 31H,#00H ;#00H-->30H MOV 32H,#00H ;#00H-->30H MOV 33H,#00H ;#00H-->30H LJMP STAR3 ;轉(zhuǎn)程序 SRAR3STAR2: MOV A,#0AH ;#0AH-->A INC 30H ;30H+1 CJNE A,30H,STJE ;30H 與 A 比較,不等轉(zhuǎn)移 STJE MOV 30H,#00H ;#00H-->30H INC 31H ;31H+1 CJNE A,31H,STJE ;31H 與 A 比較,不等轉(zhuǎn)移 STJE MOV 31H,#00H ;#00H-->31H INC 32H ;32H+1 CJNE A,32H,STJE ;32H 與 A 比較,不等轉(zhuǎn)移 STJE MOV 32H,#00H ;#00H-->32H INC 33H ;33H+1 CJNE A,33H,STJE ;33H 與 A 比較,不等轉(zhuǎn)移 STJE MOV 33H,#00H ;#00H-->33H MOV 32H,#00H ;#00H-->32H MOV 31H,#00H ;#00H-->31H MOV 30H,#00H ;#00H-->30HSTJE: RET ;子程序調(diào)用返回STAR3: MOV R0,#30H ;#30H-->R0 MOV R6,#0F7H ;#0F7H-->R6SMG0: MOV P1,#0FFH ;#0FFH-->P1 MOV A,R6 ;R6-->A MOV P1,A ;A-->P1 RR A ;A向右移一位 MOV R6,A ;A-->R6 MOV A,@R0 ;@R0-->A ADD A,#04H ;#04H-->A MOVC A,@A+PC ;A+PC--> MOV P0,A ;A-->P0 AJMP SMG1 ;轉(zhuǎn)程序 SMG1SDATA: DB 0C0H,0F9H,0A4H,0B0H,99H DB 92H,82H,0F8H,80H,90H SMG1: LCALL STAR4 ;轉(zhuǎn)子程序 SRAR4 LCALL STS00 ;轉(zhuǎn)子程序 STS00 INC R0 ;R0+1 CJNE R6,#07FH,SMG0 ;#07FH 與 R6 比較,不等轉(zhuǎn)移 SMG0 AJMP STAR3 ;轉(zhuǎn)程序 SRAR3STAR4: JNB P2.0,ST1 ;P2.0=0 轉(zhuǎn) ST1 CLR 00 ;位 00 清 0 SJMP ST3 ;轉(zhuǎn)ST3ST1: JNB 00,ST2 ;位 00=0 轉(zhuǎn) ST2 SJMP ST3 ;轉(zhuǎn) ST3ST2: LCALL STAR2 ;調(diào)子程序 STAR2 SETB 00 ;位 00 置 1ST3: RET ;子程序調(diào)用返回ORG 0100H ;地址 0100HSTS00: MOV 60H,#003H ;#003H-->60H (211)DE001: MOV 61H,#0FFH ;#0FFH-->61H (255)DE002: DJNZ 61H,DE002 ;61H 減 1 不等于 0 轉(zhuǎn) DE002 DJNZ 60H,DE001 ;60H 減 1 不等于 0 轉(zhuǎn) DE001 RET ;子程序調(diào)用返回 END ;結(jié)束 上次的程序共有293句,經(jīng)小組成員建議,本人經(jīng)幾天的研究寫(xiě)了下面的這個(gè)程序,現(xiàn)在的程序用了63句,精簡(jiǎn)了230句。功能沒(méi)有減。如誰(shuí)有更簡(jiǎn)練的程序,請(qǐng)發(fā)上來(lái),大家一起學(xué)習(xí)。 4位八段數(shù)碼管的十進(jìn)制加計(jì)數(shù)仿真實(shí)驗(yàn)(含電路圖和仿真文件)
標(biāo)簽: 數(shù)碼管 十進(jìn)制 仿真實(shí)驗(yàn) 仿真
上傳時(shí)間: 2013-10-11
上傳用戶(hù):sssl
三種方法讀取鍵值 使用者設(shè)計(jì)行列鍵盤(pán)介面,一般常採(cǎi)用三種方法讀取鍵值。 中斷式 在鍵盤(pán)按下時(shí)產(chǎn)生一個(gè)外部中斷通知CPU,並由中斷處理程式通過(guò)不同位址讀資料線(xiàn)上的狀態(tài)判斷哪個(gè)按鍵被按下。 本實(shí)驗(yàn)採(cǎi)用中斷式實(shí)現(xiàn)使用者鍵盤(pán)介面。 掃描法 對(duì)鍵盤(pán)上的某一行送低電位,其他為高電位,然後讀取列值,若列值中有一位是低,表明該行與低電位對(duì)應(yīng)列的鍵被按下。否則掃描下一行。 反轉(zhuǎn)法 先將所有行掃描線(xiàn)輸出低電位,讀列值,若列值有一位是低表明有鍵按下;接著所有列掃描線(xiàn)輸出低電位,再讀行值。 根據(jù)讀到的值組合就可以查表得到鍵碼。4x4鍵盤(pán)按4行4列組成如圖電路結(jié)構(gòu)。按鍵按下將會(huì)使行列連成通路,這也是見(jiàn)的使用者鍵盤(pán)設(shè)計(jì)電路。 //-----------4X4鍵盤(pán)程序--------------// uchar keboard(void) { uchar xxa,yyb,i,key; if((PINC&0x0f)!=0x0f) //是否有按鍵按下 {delayms(1); //延時(shí)去抖動(dòng) if((PINC&0x0f)!=0x0f) //有按下則判斷 { xxa=~(PINC|0xf0); //0000xxxx DDRC=0x0f; PORTC=0xf0; delay_1ms(); yyb=~(PINC|0x0f); //xxxx0000 DDRC=0xf0; //復(fù)位 PORTC=0x0f; while((PINC&0x0f)!=0x0f) //按鍵是否放開(kāi) { display(data); } i=4; //計(jì)算返回碼 while(xxa!=0) { xxa=xxa>>1; i--; } if(yyb==0x80) key=i; else if(yyb==0x40) key=4+i; else if(yyb==0x20) key=8+i; else if(yyb==0x10) key=12+i; return key; //返回按下的鍵盤(pán)碼 } } else return 17; //沒(méi)有按鍵按下 }
上傳時(shí)間: 2013-11-12
上傳用戶(hù):a673761058
如同今天的許多通用單片機(jī)(MCU)已經(jīng)把USB、CAN和以太網(wǎng)作為標(biāo)準(zhǔn)外設(shè)集成在芯片內(nèi)部一樣,越來(lái)越多的無(wú)線(xiàn)網(wǎng)絡(luò)芯片和無(wú)線(xiàn)網(wǎng)絡(luò)解決方案也在向集成SoC 方向發(fā)展,比如第一代產(chǎn)品,Nordic公司nRF905,Chipcon公司cc1010 他們集成了8051兼容的單片機(jī).這些無(wú)線(xiàn)單片機(jī)適合一般的點(diǎn)對(duì)點(diǎn)和點(diǎn)對(duì)多點(diǎn)的私有網(wǎng)絡(luò)應(yīng)用,如單一產(chǎn)品的遙控器和抄表裝置等。無(wú)線(xiàn)通訊技術(shù)給智能裝置的互連互通提供了便捷的途徑,工業(yè)無(wú)線(xiàn)網(wǎng)絡(luò)作為面向工業(yè)和家庭自動(dòng)化的網(wǎng)絡(luò)技術(shù)也正在向著智能,標(biāo)準(zhǔn)和節(jié)能方向發(fā)展。 目前在工業(yè)控制和消費(fèi)電子領(lǐng)域使用的無(wú)線(xiàn)網(wǎng)絡(luò)技術(shù)有ZigBee、無(wú)線(xiàn)局域網(wǎng)(Wi-Fi)、藍(lán)牙(Blutooth)、GPRS通用分組無(wú)線(xiàn)業(yè)務(wù)、 ISM、IrDA等, 未來(lái)還能有3G、超寬頻(UWB)、無(wú)線(xiàn)USB、Wimax等。 當(dāng)然還有大量的私有和專(zhuān)用無(wú)線(xiàn)網(wǎng)絡(luò)在工業(yè)控制和消費(fèi)電子裝置中使用,其中ZigBee、GPRS是在目前在國(guó)內(nèi)工業(yè)控制中討論和使用比較多的兩種,藍(lán)牙和無(wú)線(xiàn)局域網(wǎng)是在消費(fèi)電子產(chǎn)品如手機(jī)、耳機(jī)、打印機(jī)、照相機(jī)和家庭中小企業(yè)網(wǎng)絡(luò)中廣泛使用的無(wú)線(xiàn)協(xié)議(個(gè)別工業(yè)產(chǎn)品也有應(yīng)用,如無(wú)線(xiàn)視頻監(jiān)控和汽車(chē)音響系統(tǒng)),當(dāng)然私有無(wú)線(xiàn)網(wǎng)絡(luò)技術(shù)和產(chǎn)品在工業(yè)也有很多的應(yīng)用。 ZigBee是一個(gè)低功耗、短距離和低速的無(wú)線(xiàn)網(wǎng)絡(luò)技術(shù),工作在2.4GHz國(guó)際免執(zhí)照的頻率,在IEEE標(biāo)準(zhǔn)上它和無(wú)線(xiàn)局域網(wǎng)、藍(lán)牙同屬802家族中的無(wú)線(xiàn)個(gè)人區(qū)域網(wǎng)絡(luò), ZigBee是有兩部分組成,物理和鏈路層符合IEEE802.15.4, 網(wǎng)絡(luò)和應(yīng)用層符合ZigBee聯(lián)盟的規(guī)范。ZigBee聯(lián)盟是在2002年成立的非盈利組織,有包括TI、霍尼威爾、華為在內(nèi)兩百多家成員, ZigBee聯(lián)盟致力推廣兼容802.15.4和ZigBee協(xié)議的平臺(tái), 制定網(wǎng)絡(luò)層和應(yīng)用架構(gòu)的公共規(guī)范,希望在樓宇自動(dòng)化、居家控制、家用電器、工業(yè)自動(dòng)控制和電腦外設(shè)等多方面普及ZigBee標(biāo)準(zhǔn)。 GPRS是在現(xiàn)有的GSM 網(wǎng)絡(luò)發(fā)展出來(lái)的分組數(shù)據(jù)承載業(yè)務(wù),它工作在標(biāo)準(zhǔn)的GSM頻率,由于是一個(gè)分組交換系統(tǒng),它適合工業(yè)上的突發(fā),少量的數(shù)據(jù)傳輸,還因?yàn)镚SM網(wǎng)絡(luò)覆蓋廣泛,永遠(yuǎn)在線(xiàn)的特點(diǎn),GPRS特點(diǎn)適合工業(yè)控制中的遠(yuǎn)程監(jiān)控和測(cè)量系統(tǒng)。在工業(yè)控制應(yīng)用中GPRS 芯片一般是以無(wú)線(xiàn)數(shù)傳模塊形式出現(xiàn)的,它通過(guò)RS232全雙工接口和單片機(jī)連接,軟件上這些模塊都內(nèi)置了GPRS,PPP和TCP/IP協(xié)議,單片機(jī)側(cè)通過(guò)AT指令集向模塊發(fā)出測(cè)試,連接和數(shù)據(jù)收發(fā)指令,GPRS模塊通過(guò)中國(guó)移動(dòng)cmnet進(jìn)入互聯(lián)網(wǎng)和其他終端或者服務(wù)器通訊。目前市場(chǎng)常見(jiàn)的模塊有西門(mén)子G24TC45、TC35i,飛思卡爾G24,索愛(ài)GR47/48, 還有Wavecom 的集成了ARM9核的GPRS SoC模塊WMP50/100。GPRS模塊有區(qū)分自帶TCP/IP協(xié)議和不帶協(xié)議兩種,一般來(lái)講,如果是單片機(jī)側(cè)有嵌入式操作系統(tǒng)和TCP/IP協(xié)議支持的話(huà)或者應(yīng)用的要求只是收發(fā)短信和語(yǔ)音功能的話(huà),可以選擇不帶協(xié)議的模塊。 先進(jìn)的SoC技術(shù)正在無(wú)線(xiàn)應(yīng)用領(lǐng)域發(fā)揮重要的作用。德州儀器收購(gòu)了Chipcon公司以后發(fā)布的CC2430 是市場(chǎng)上首款SoC的ZigBee單片機(jī), 見(jiàn)圖1,它把協(xié)議棧z-stack集成在芯片內(nèi)部的閃存里面, 具有穩(wěn)定可靠的CC2420收發(fā)器,增強(qiáng)性的8051內(nèi)核,8KRAM,外設(shè)有I/O 口,ADC,SPI,UART 和AES128 安全協(xié)處理器,三個(gè)版本分別是32/64/128K的閃存,以128K為例,扣除基本z-stack協(xié)議還有3/4的空間留給應(yīng)用代碼,即使完整的ZigBee協(xié)議,還有近1/2的空間留給應(yīng)用代碼,這樣的無(wú)線(xiàn)單片機(jī)除了處理通訊協(xié)議外,還可以完成一些監(jiān)控和顯示任務(wù)。這樣無(wú)線(xiàn)單片機(jī)都支持通過(guò)SPI或者UART與通用單片機(jī)或者嵌入式CPU結(jié)合。 2008年4月發(fā)表CC2480新一代單片ZibBee認(rèn)證處理器就展示出和TI MSP430 通用的低功耗單片機(jī)結(jié)合的例子。圖1 CC2430應(yīng)用電路 工業(yè)控制領(lǐng)域的另一個(gè)芯片巨頭——飛思卡爾的單片ZigBee處理器MC1321X的方案也非常類(lèi)似,集成了HC08單片機(jī)核心, 16/32/64K 閃存,外設(shè)有GPIO, I2C和ADC, 軟件是Beestack 協(xié)議,只是最多4K RAM 對(duì)于更多的任務(wù)顯得小了些。但是憑借32位單片機(jī)Coldfire和系統(tǒng)軟件方面經(jīng)驗(yàn)和優(yōu)勢(shì), 飛思卡爾在滿(mǎn)足用戶(hù)應(yīng)用的彈性需求方面作的更有特色,它率先能夠提供從低-中-高各個(gè)層面的解決方案,見(jiàn)圖2。
標(biāo)簽: 單片機(jī) 工業(yè)無(wú)線(xiàn)網(wǎng)絡(luò)
上傳時(shí)間: 2013-11-02
上傳用戶(hù):momofiona
載波相移正弦脈寬調(diào)制(SPWM)技術(shù)是一種適用于大功率電力開(kāi)關(guān)變換裝置的高性能開(kāi)關(guān)調(diào)制策略,在有源電力濾波器中有良好的應(yīng)用前景。本文介紹了如何利用高性能數(shù)字信號(hào)處理器TMS320F28335的片內(nèi)外設(shè)事件管理器(EV)模塊產(chǎn)生三相SPWM波,給出了程序流程圖及關(guān)鍵程序源碼。該方法采用不對(duì)稱(chēng)規(guī)則采樣算法,參數(shù)計(jì)算主要采用查表法,計(jì)算量小,實(shí)時(shí)性高。在工程實(shí)踐中表明,該方法既能滿(mǎn)足控制精度要求,又能滿(mǎn)足實(shí)時(shí)性要求,可以很好地控制逆變電源的輸出。
標(biāo)簽: F28335 28335 SPWM 320F
上傳時(shí)間: 2013-11-05
上傳用戶(hù):tzrdcaabb
目前利用DDS技術(shù)產(chǎn)生信號(hào)源的方法得到了廣泛的應(yīng)用,dds技術(shù)已經(jīng)成為頻率合成技術(shù)的發(fā)展的主流方向!
標(biāo)簽: FPGA DDS 移相 信號(hào)發(fā)生器
上傳時(shí)間: 2013-10-16
上傳用戶(hù):xcy122677
This application note describes how to build a system that can be used for determining theoptimal phase shift for a Double Data Rate (DDR) memory feedback clock. In this system, theDDR memory is controlled by a controller that attaches to either the OPB or PLB and is used inan embedded microprocessor application. This reference system also uses a DCM that isconfigured so that the phase of its output clock can be changed while the system is running anda GPIO core that controls that phase shift. The GPIO output is controlled by a softwareapplication that can be run on a PowerPC® 405 or Microblaze™ microprocessor.
上傳時(shí)間: 2013-10-15
上傳用戶(hù):euroford
蟲(chóng)蟲(chóng)下載站版權(quán)所有 京ICP備2021023401號(hào)-1