用JLINK V6 調(diào)試STM32的教程:針STM3210B-LK1評(píng)估板需要改動(dòng)或設(shè)置的地方有3點(diǎn):第一:STM3210B-LK1評(píng)估板的BOOT0及BOOT1跳線(xiàn)請(qǐng)?zhí)?位置. 第二:STM3210B-LK1評(píng)估板上的JTAG接口的第1,2腳請(qǐng)接上3.3V(手工飛線(xiàn))。第三:JLINK 用SWD方式調(diào)試此款板子時(shí),需要把板子上的R4,R5斷開(kāi)(因其板子上有STLINK II)否則調(diào)試不成功喲 一 設(shè)置仿真器類(lèi)型----JLINK或JTRACE二 JLINK仿真器相關(guān)設(shè)置三 JTAG/SWD 兩種方式的調(diào)試
標(biāo)簽: JLINK STM 32 調(diào)試
上傳時(shí)間: 2013-10-13
上傳用戶(hù):標(biāo)點(diǎn)符號(hào)
基于單片機(jī)的LED漢字顯示屏設(shè)計(jì)與制作:在大型商場(chǎng)、車(chē)站、碼頭、地鐵站以及各類(lèi)辦事窗口等越來(lái)越多的場(chǎng)所需要用LED點(diǎn)陣顯示圖形和漢字。LED行業(yè)已成為一個(gè)快速發(fā)展的新興產(chǎn)業(yè),市場(chǎng)空間巨大,前景廣闊。隨著信息產(chǎn)業(yè)的高速發(fā)展,LED顯示作為信息傳播的一種重要手段,已廣泛應(yīng)用于室內(nèi)外需要進(jìn)行服務(wù)內(nèi)容和服務(wù)宗旨宣傳的公眾場(chǎng)所,例如戶(hù)內(nèi)外公共場(chǎng)所廣告宣傳、機(jī)場(chǎng)車(chē)站旅客引導(dǎo)信息、公交車(chē)輛報(bào)站系統(tǒng)、證券與銀行信息顯示、餐館報(bào)價(jià)信息豆示、高速公路可變情報(bào)板、體育場(chǎng)館比賽轉(zhuǎn)播、樓宇燈飾、交通信號(hào)燈、景觀照明等。顯然,LED顯示已成為城市亮化、現(xiàn)代化和信息化社會(huì)的一個(gè)重要標(biāo)志。 本文基于單片機(jī)(AT89C51)講述了16×16 LED漢字點(diǎn)陣顯示的基本原理、硬件組成與設(shè)計(jì)、程序編譯與下載等基本環(huán)節(jié)和相關(guān)技術(shù)。2 硬件電路組成及工作原理本產(chǎn)品擬采用以AT89C51單片機(jī)為核心芯片的電路來(lái)實(shí)現(xiàn),主要由AT89C51芯片、時(shí)鐘電路、復(fù)位電路、列掃描驅(qū)動(dòng)電路(74HC154)、16×16 LED點(diǎn)陣5部分組成,如圖1所示。 其中,AT89C51是一種帶4 kB閃爍可編程可擦除只讀存儲(chǔ)器(Falsh Programmable and Erasable Read OnlyMemory,F(xiàn)PEROM)的低電壓、高性能CMOS型8位微處理器,俗稱(chēng)單片機(jī)。該器件采用ATMEL高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲(chǔ)器組合在單個(gè)芯片中,能夠進(jìn)行1 000次寫(xiě)/擦循環(huán),數(shù)據(jù)保留時(shí)間為10年。他是一種高效微控制器,為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。因此,在智能化電子設(shè)計(jì)與制作過(guò)程中經(jīng)常用到AT89C51芯片。時(shí)鐘電路由AT89C51的18,19腳的時(shí)鐘端(XTALl及XTAL2)以及12 MHz晶振X1、電容C2,C3組成,采用片內(nèi)振蕩方式。復(fù)位電路采用簡(jiǎn)易的上電復(fù)位電路,主要由電阻R1,R2,電容C1,開(kāi)關(guān)K1組成,分別接至AT89C51的RST復(fù)位輸入端。LED點(diǎn)陣顯示屏采用16×16共256個(gè)象素的點(diǎn)陣,通過(guò)萬(wàn)用表檢測(cè)發(fā)光二極管的方法測(cè)試判斷出該點(diǎn)陣的引腳分布,如圖2所示。 我們把行列總線(xiàn)接在單片機(jī)的IO口,然后把上面分析到的掃描代碼送人總線(xiàn),就可以得到顯示的漢字了。但是若將LED點(diǎn)陣的行列端口全部直接接入89S51單片機(jī),則需要使用32條IO口,這樣會(huì)造成IO資源的耗盡,系統(tǒng)也再無(wú)擴(kuò)充的余地。因此,我們?cè)趯?shí)際應(yīng)用中只是將LED點(diǎn)陣的16條行線(xiàn)直接接在P0口和P2口,至于列選掃描信號(hào)則是由4-16線(xiàn)譯碼器74HC154來(lái)選擇控制,這樣一來(lái)列選控制只使用了單片機(jī)的4個(gè)IO口,節(jié)約了很多IO資源,為單片機(jī)系統(tǒng)擴(kuò)充使用功能提供了條件。考慮到P0口必需設(shè)置上拉電阻,我們采用4.7 kΩ排電阻作為上拉電阻。
標(biāo)簽: LED 單片機(jī) 漢字 顯示屏設(shè)計(jì)
上傳時(shí)間: 2013-10-16
上傳用戶(hù):ywcftc277
如何使用高級(jí)觸發(fā)測(cè)量程序跑飛:LA系列邏輯分析儀內(nèi)部集成了32位的定時(shí)器、32位的計(jì)數(shù)器和高速比較模塊,高效的使用以上模塊資源可以使您的測(cè)量事半功倍。邏輯分析儀在實(shí)際應(yīng)用中主要作用有:1.觀察波形,看看測(cè)量波形中是否存在毛刺、干擾、頻率是否正確等;2.時(shí)序測(cè)量,對(duì)被測(cè)信號(hào)進(jìn)行時(shí)序校對(duì),看看操作時(shí)序是否符合要求。3.輔助分析,利用邏輯分析儀完善的協(xié)議分析功能來(lái)進(jìn)行輔助分析;4.查錯(cuò)功能,利用邏輯分析儀強(qiáng)大的觸發(fā)功能來(lái)進(jìn)行錯(cuò)誤捕獲。當(dāng)單片機(jī)的PC值(程序計(jì)數(shù)器)對(duì)沒(méi)有程序的地方進(jìn)行取指時(shí),稱(chēng)為程序跑飛。程序跑飛的原因有多種,主要有以下原因:1) 客觀原因:?jiǎn)纹瑱C(jī)受到外界強(qiáng)干擾造成PC值寄存器改變;2)程序Bug:用戶(hù)程序調(diào)用函數(shù)指針,對(duì)非程序空間進(jìn)行對(duì)用。以80C51單片機(jī)為例子,當(dāng)程序跑到非用戶(hù)程序區(qū)時(shí),單片機(jī)使用PSEN對(duì)外部程序進(jìn)行取指,使用邏輯分析儀可以設(shè)置觸發(fā)條件,當(dāng)使用PSEN對(duì)外部程序進(jìn)行取指時(shí)進(jìn)行記錄,把出錯(cuò)情況前后的狀態(tài)記錄下來(lái)進(jìn)行分析,查找出錯(cuò)原因。如80C51的取指范圍正確為0x0000~0x3fff,則當(dāng)對(duì)0x3fff以上地址進(jìn)行取指時(shí)為程序跑飛。分析80C51對(duì)外部程序取指的時(shí)序,如圖1所示。
標(biāo)簽: 如何使用 觸發(fā) 測(cè)量程序
上傳時(shí)間: 2013-10-11
上傳用戶(hù):panpanpan
量熱儀是能源生產(chǎn)和能耗企業(yè)必備的重要測(cè)量?jī)x器,其測(cè)量精度和效率直接影響著經(jīng)濟(jì)效益。為了提高量熱儀的測(cè)量精度,整個(gè)量熱系統(tǒng)的測(cè)溫精度、準(zhǔn)確性、穩(wěn)定性等諸多方面都需要得到改善和提高。本文給出了采用單片機(jī)及鉑電阻PT1000 為核心器件的高精度恒溫式自動(dòng)量熱儀設(shè)計(jì)。燃料的價(jià)值就在于燃燒過(guò)程中能夠發(fā)熱,因此燃燒熱量就成為評(píng)估燃料質(zhì)量最重要的指標(biāo),而燃燒熱量通常是由量熱儀來(lái)測(cè)量的。因此,量熱儀是能源生產(chǎn)和能耗企業(yè)必備的重要儀器,其測(cè)量精度和效率直接影響著經(jīng)濟(jì)效益。量熱儀可分別用于電力、煤炭、焦炭、石油、化工、水泥、軍工、糧食、飼料、木材、木炭以及科研等行業(yè)測(cè)量固體、液體等可燃物資的發(fā)熱量。由于其應(yīng)用范圍很廣,因此研制出更高測(cè)量精度和效率的量熱儀具有很好的發(fā)展前景及經(jīng)濟(jì)效益。我國(guó)是產(chǎn)煤大國(guó),而衡量煤炭質(zhì)量的最重要指標(biāo)之一是其燃燒發(fā)熱量。因而,目前國(guó)內(nèi)普遍采用以發(fā)熱量作為動(dòng)力煤計(jì)價(jià)的主要依據(jù)。由于煤炭的發(fā)熱量主要是利用量熱儀來(lái)測(cè)定,因此,目前恒溫式自動(dòng)量熱儀在包括煤炭生產(chǎn)以及用煤?jiǎn)挝蝗珉娏Φ认到y(tǒng)廣泛應(yīng)用。但由于其在測(cè)溫過(guò)程中不可避免地會(huì)受到客觀和人為干擾,準(zhǔn)確性受到一定影響。為了解決這一問(wèn)題并根據(jù)現(xiàn)有量熱儀存在的其它缺點(diǎn),本文所設(shè)計(jì)的量熱儀采用了以單片機(jī)為控制單元,選用更高精度的鉑電阻PT1000 作為溫度傳感器,精心設(shè)計(jì)相關(guān)電路,增加信號(hào)處理單元,采用LabVIEW 設(shè)計(jì)操作界面等,不僅提升了量熱儀的測(cè)量精度,而且具有良好的性?xún)r(jià)比。
標(biāo)簽: 用單片機(jī) 恒溫 自動(dòng) 量熱
上傳時(shí)間: 2013-11-07
上傳用戶(hù):oojj
介紹用PIC16C73 自帶的八位A/D 轉(zhuǎn)換器擴(kuò)展為十二位A/D 轉(zhuǎn)換器,給出了具體的設(shè)計(jì)方案和程序流程。它是用以 PIC16C73 為MCU 構(gòu)成的海水有機(jī)磷測(cè)控儀A/D 轉(zhuǎn)換部分的一種解決方案。為監(jiān)測(cè)海洋生態(tài)環(huán)境,研制了用于海水有機(jī)磷農(nóng)藥現(xiàn)場(chǎng)監(jiān)測(cè)的生物傳感器。為測(cè)定生物傳感器的信號(hào),使傳感器可用于船載及臺(tái)站的海洋生態(tài)環(huán)境現(xiàn)場(chǎng)自動(dòng)監(jiān)測(cè),需要對(duì)整個(gè)的采樣和排液裝置進(jìn)行控制以及對(duì)傳感器來(lái)的信號(hào)進(jìn)行實(shí)時(shí)采集處理,形成有機(jī)磷的濃度傳給上位機(jī)。為此,開(kāi)發(fā)了以PIC16C73 單片機(jī)為核心的小型測(cè)控儀器,很好的完成了上述功能。PIC1673 單片機(jī)自帶8 位的A/D 轉(zhuǎn)換器,但不能滿(mǎn)足系統(tǒng)對(duì)精度的要求,本設(shè)計(jì)在單片機(jī)自帶8 位A/D 基礎(chǔ)上加少量的硬件和軟件開(kāi)銷(xiāo),使其擴(kuò)展為十二位A/D 轉(zhuǎn)換器,滿(mǎn)足了系統(tǒng)的要求。
上傳時(shí)間: 2013-10-30
上傳用戶(hù):a296386173
用單片機(jī)AT89C51改造普通雙桶洗衣機(jī):AT89C2051作為AT89C51的簡(jiǎn)化版雖然去掉了P0、P2等端口,使I/O口減少了,但是卻增加了一個(gè)電壓比較器,因此其功能在某些方面反而有所增強(qiáng),如能用來(lái)處理模擬量、進(jìn)行簡(jiǎn)單的模數(shù)轉(zhuǎn)換等。本文利用這一功能設(shè)計(jì)了一個(gè)數(shù)字電容表,可測(cè)量容量小于2微法的電容器的容量,采用3位半數(shù)字顯示,最大顯示值為1999,讀數(shù)單位統(tǒng)一采用毫微法(nf),量程分四檔,讀數(shù)分別乘以相應(yīng)的倍率。電路工作原理 本數(shù)字電容表以電容器的充電規(guī)律作為測(cè)量依據(jù),測(cè)試原理見(jiàn)圖1。電源電路圖。 壓E+經(jīng)電阻R給被測(cè)電容CX充電,CX兩端原電壓隨充電時(shí)間的增加而上升。當(dāng)充電時(shí)間t等于RC時(shí)間常數(shù)τ時(shí),CX兩端電壓約為電源電壓的63.2%,即0.632E+。數(shù)字電容表就是以該電壓作為測(cè)試基準(zhǔn)電壓,測(cè)量電容器充電達(dá)到該電壓的時(shí)間,便能知道電容器的容量。例如,設(shè)電阻R的阻值為1千歐,CX兩端電壓上升到0.632E+所需的時(shí)間為1毫秒,那么由公式τ=RC可知CX的容量為1微法。 測(cè)量電路如圖2所示。A為AT89C2051內(nèi)部構(gòu)造的電壓比較器,AT89C2051 圖2 的P1.0和P1.1口除了作I/O口外,還有一個(gè)功能是作為電壓比較器的輸入端,P1.0為同相輸入端,P1.1為反相輸入端,電壓比較器的比較結(jié)果存入P3.6口對(duì)應(yīng)的寄存器,P3.6口在AT89C2051外部無(wú)引腳。電壓比較器的基準(zhǔn)電壓設(shè)定為0.632E+,在CX兩端電壓從0升到0.632E+的過(guò)程中,P3.6口輸出為0,當(dāng)電池電壓CX兩端電壓一旦超過(guò)0.632E+時(shí),P3.6口輸出變?yōu)?。以P3.6口的輸出電平為依據(jù),用AT89C2051內(nèi)部的定時(shí)器T0對(duì)充電時(shí)間進(jìn)行計(jì)數(shù),再將計(jì)數(shù)結(jié)果顯示出來(lái)即得出測(cè)量結(jié)果。整機(jī)電路見(jiàn)圖3。電路由單片機(jī)電路、電容充電測(cè)量電路和數(shù)碼顯示電路等 圖3 部分組成。AT89C2051內(nèi)部的電壓比較器和電阻R2-R7等組成測(cè)量電路,其中R2-R5為量程電阻,由波段開(kāi)關(guān)S1選擇使用,電壓比較器的基準(zhǔn)電壓由5V電源電壓經(jīng)R6、RP1、R7分壓后得到,調(diào)節(jié)RP1可調(diào)整基準(zhǔn)電壓。當(dāng)P1.2口在程序的控制下輸出高電平時(shí),電容CX即開(kāi)始充電。量程電阻R2-R5每檔以10倍遞減,故每檔顯示讀數(shù)以10倍遞增。由于單片機(jī)內(nèi)部P1.2口的上拉電阻經(jīng)實(shí)測(cè)約為200K,其輸出電平不能作為充電電壓用,故用R5兼作其上拉電阻,由于其它三個(gè)充電電阻和R5是串聯(lián)關(guān)系,因此R2、R3、R4應(yīng)由標(biāo)準(zhǔn)值減去1K,分別為999K、99K、9K。由于999K和1M相對(duì)誤差較小,所以R2還是取1M。數(shù)碼管DS1-DS4、電阻R8-R14等組成數(shù)碼顯示電路。本機(jī)采用動(dòng)態(tài)掃描顯示的方式,用軟件對(duì)字形碼譯碼。P3.0-P3.5、P3.7口作數(shù)碼顯示七段筆劃字形碼的輸出,P1.3-P1.6口作四個(gè)數(shù)碼管的動(dòng)態(tài)掃描位驅(qū)動(dòng)碼輸出。這里采用了共陰數(shù)碼管,由于AT89C2051的P1.3-P1.6口有25mA的下拉電流能力,所以不用三極管就能驅(qū)動(dòng)數(shù)碼管。R8-R14為P3.0-P3.5、P3.7口的上拉電阻,用以驅(qū)動(dòng)數(shù)碼管的各字段,當(dāng)P3的某一端口輸出低電平時(shí)其對(duì)應(yīng)的字段筆劃不點(diǎn)亮,而當(dāng)其輸出高電平時(shí),則對(duì)應(yīng)的上拉電阻即能點(diǎn)亮相應(yīng)的字段筆劃。
上傳時(shí)間: 2013-12-31
上傳用戶(hù):ming529
用AT89C2051單片機(jī)制作的數(shù)字電容表:AT89C2051作為AT89C51的簡(jiǎn)化版雖然去掉了P0、P2等端口,使I/O口減少了,但是卻增加了一個(gè)電壓比較器,因此其功能在某些方面反而有所增強(qiáng),如能用來(lái)處理模擬量、進(jìn)行簡(jiǎn)單的模數(shù)轉(zhuǎn)換等。本文利用這一功能設(shè)計(jì)了一個(gè)數(shù)字電容表,可測(cè)量容量小于2微法的電容器的容量,采用3位半數(shù)字顯示,最大顯示值為1999,讀數(shù)單位統(tǒng)一采用毫微法(nf),量程分四檔,讀數(shù)分別乘以相應(yīng)的倍率。
上傳時(shí)間: 2013-11-19
上傳用戶(hù):wuyuying
用單片機(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
單片機(jī)系統(tǒng)軟件抗干擾方法:在提高硬件系統(tǒng)抗干擾能力的同時(shí),軟件抗干擾以其設(shè)計(jì)靈活、節(jié)省硬件資源、可靠性好越來(lái)越受到重視。下面以MCS-51單片機(jī)系統(tǒng)為例,對(duì)微機(jī)系統(tǒng)軟件抗干擾方法進(jìn)行研究。1、軟件抗干擾方法的研究在工程實(shí)踐中,軟件抗干擾研究的內(nèi)容主要是: 消除模擬輸入信號(hào)的嗓聲(如數(shù)字濾波技術(shù)); 程序運(yùn)行混亂時(shí)使程序重入正軌的方法。本文針對(duì)后者提出了幾種有效的軟件抗干擾方法。1.1 指令冗余CPU取指令過(guò)程是先取操作碼,再取操作數(shù)。當(dāng)PC受干擾出現(xiàn)錯(cuò)誤,程序便脫離正常軌道“亂飛”,當(dāng)亂飛到某雙字節(jié)指令,若取指令時(shí)刻落在操作數(shù)上,誤將操作數(shù)當(dāng)作操作碼,程序?qū)⒊鲥e(cuò)。若“飛”到了三字節(jié)指令,出錯(cuò)機(jī)率更大。在關(guān)鍵地方人為插入一些單字節(jié)指令,或?qū)⒂行巫止?jié)指令重寫(xiě)稱(chēng)為指令冗余。通常是在雙字節(jié)指令和三字節(jié)指令后插入兩個(gè)字節(jié)以上的NOP。這樣即使亂飛程序飛到操作數(shù)上,由于空操作指令NOP的存在,避免了后面的指令被當(dāng)作操作數(shù)執(zhí)行,程序自動(dòng)納入正軌。此外,對(duì)系統(tǒng)流向起重要作用的指令如RET、RETI、LCALL、LJMP、JC等指令之前插入兩條NOP,也可將亂飛程序納入正軌,確保這些重要指令的執(zhí)行。1.2 攔截技術(shù)所謂攔截,是指將亂飛的程序引向指定位置,再進(jìn)行出錯(cuò)處理。通常用軟件陷阱來(lái)攔截亂飛的程序。因此先要合理設(shè)計(jì)陷阱,其次要將陷阱安排在適當(dāng)?shù)奈恢谩?.2.1 軟件陷阱的設(shè)計(jì)當(dāng)亂飛程序進(jìn)入非程序區(qū),冗余指令便無(wú)法起作用。通過(guò)軟件陷阱,攔截亂飛程序,將其引向指定位置,再進(jìn)行出錯(cuò)處理。軟件陷阱是指用來(lái)將捕獲的亂飛程序引向復(fù)位入口地址0000H的指令。通常在EPROM中非程序區(qū)填入以下指令作為軟件陷阱:
標(biāo)簽: 單片機(jī) 系統(tǒng)軟件 抗干擾
上傳時(shí)間: 2013-10-29
上傳用戶(hù):大三三
用C51寫(xiě)的普通拼音輸入法源程序代碼:原作使用了一個(gè)二維數(shù)組用以查表,我認(rèn)為這樣比較的浪費(fèi)空間,而且每個(gè)字表的索引地址要手工輸入,效率不高。所以我用結(jié)構(gòu)體將其改寫(xiě)了一下。就是大家現(xiàn)在看到的這個(gè)。 因?yàn)榇a比較的大,共有6,000多漢字,這樣就得要12,000 byte來(lái)存放GB內(nèi)碼,所以也是沒(méi)辦法的.編譯結(jié)果約為3000h,因?yàn)榇蟛糠质撬饕恚a優(yōu)化幾乎無(wú)效。 在Keil C里仿真芯片選用的是華邦的W77E58,它有32k ROM, 256B on-chip RAM, 1K on-chip SRAM (用DPTR1指針尋址,相當(dāng)于有1K的片上x(chóng)data)。條件有限,沒(méi)有上片試驗(yàn),仿真而已。 打算將其移植到AVR上,但CodeAVRC與IAR EC++在結(jié)構(gòu)體、指針的定義使用上似乎與C51不太一樣,現(xiàn)在還未搞定。還希望在這方面有經(jīng)驗(yàn)的網(wǎng)友能給予指導(dǎo)。 #include<stdio.h> char * py_ime(char *); void main(void){ while(1) { char input_string[]="yI"; xdata char chinese_string[255]; sprintf(chinese_string,"%s",py_ime(input_string)); }}
上傳時(shí)間: 2013-10-30
上傳用戶(hù):cainaifa
蟲(chóng)蟲(chóng)下載站版權(quán)所有 京ICP備2021023401號(hào)-1