新聞詳情
單片機(jī)開(kāi)發(fā)設(shè)置控制瀏覽數(shù):2次
C語(yǔ)言是目前單片機(jī)開(kāi)發(fā)的必備編程語(yǔ)言。單片機(jī)軟件在N年前是用匯編語(yǔ)言開(kāi)發(fā)的,每種單片機(jī)的匯編語(yǔ)言都不一樣。由于采用匯編語(yǔ)言開(kāi)發(fā)單片機(jī)軟件太過(guò)于復(fù)雜,效率及其底下,現(xiàn)在基本上都用C語(yǔ)言開(kāi)發(fā)單片機(jī)軟件了,僅在一些很特殊的場(chǎng)合才需要用到匯編語(yǔ)言,例如要求精確控制CPU某段程序的執(zhí)行時(shí)長(zhǎng)。如果還沒(méi)有C語(yǔ)言基礎(chǔ),建議先學(xué)C語(yǔ)言再學(xué)單片機(jī)。學(xué) 2.單片機(jī)系統(tǒng)開(kāi)發(fā)基本條件 雖然世界上的單片機(jī)種類有上千種,但單片機(jī)技術(shù)基本上是相通的,只要掌握了一款單片機(jī)的開(kāi)發(fā),以后遇到其他品種的單片機(jī)就非常容易上手了。如果學(xué)習(xí)第一款單片機(jī)需要2個(gè)月時(shí)間,那么學(xué)習(xí)第二款單片機(jī)就只需要2天時(shí)間。 以上只是談到單片機(jī)系統(tǒng)開(kāi)發(fā)的最基本的條件,但我們知道單片機(jī)最終還是應(yīng)用于產(chǎn)品之內(nèi)的,單片機(jī)系統(tǒng)開(kāi)發(fā)最終還是為了產(chǎn)品開(kāi)發(fā)。因此,僅僅學(xué)會(huì)單片機(jī)軟件編程還是遠(yuǎn)遠(yuǎn)不夠的。www.yjdzi.com一款單片機(jī)系統(tǒng)產(chǎn)品從項(xiàng)目立項(xiàng)到最終實(shí)現(xiàn)產(chǎn)品量產(chǎn),其中涉及到的方方面面技術(shù)問(wèn)題還有很多很多,例如如何選擇最合適的單片機(jī)、硬件的電磁兼容問(wèn)題、軟件的bug調(diào)試和軟件可靠性、數(shù)字量和模擬量信號(hào)采集、一般高低電平輸出和PWM輸出、操作系統(tǒng)、產(chǎn)品成本…,太多太多了! 目前,很多人對(duì)匯編語(yǔ)言并不認(rèn)可。可以說(shuō),掌握用C語(yǔ)言單片機(jī)編程很重要,可以大大提高開(kāi)發(fā)的效率。不過(guò)初學(xué)者可以不了解單片機(jī)的匯編語(yǔ)言,但一定要了解單片機(jī)具體性能和特點(diǎn),不然在單片機(jī)領(lǐng)域是比較致命的。如果不考慮單片機(jī)硬件資源,在KEIL中用C 還記得大學(xué)里上單片機(jī)課程時(shí),選用的教材好像是《51單片機(jī)匯編》,老師講了一學(xué)期的匯編指令。直到期末考試,也沒(méi)有見(jiàn)過(guò)單片機(jī)長(zhǎng)什么樣子,也不知道單片機(jī)到底用什么環(huán)境開(kāi)發(fā),單片機(jī)有什么用。本來(lái)是一門實(shí)用、偏動(dòng)手的課程卻變成了理論冥想課。 (1)提供OC和OD門電路的驅(qū)動(dòng)能力。 比如OC(集電極開(kāi)路)電路: 例如,ULN2003.內(nèi)部電路的達(dá)林頓管(實(shí)際上是復(fù)合三級(jí)管)是一個(gè)集電極開(kāi)路電路。 在沒(méi)有拉電阻的情況下,其它設(shè)備無(wú)法進(jìn)行高電平驅(qū)動(dòng)。因?yàn)槿龢O管到市內(nèi)都沒(méi)有流通通 道,更談不上驅(qū)動(dòng)。此原理與單片機(jī)P0端口拉阻原理相同。 (2)提高高位電位: 單芯片P1口4×4基陣列鍵盤。另外,ULN2003的P1.0~P1.3還可以控制步進(jìn)電機(jī)的驅(qū)動(dòng)。 測(cè)試中遇到的問(wèn)題:接入U(xiǎn)LN2003后,鍵盤無(wú)法正常工作,在ULN2003下,鍵盤無(wú)法正常工作。ULN2003工作正常。(注意兩部分不同時(shí)工作) 問(wèn):由于鍵盤的結(jié)構(gòu),不外乎兩個(gè)金屬片聯(lián)接或斷開(kāi)。但是在接入U(xiǎn)LN2003后無(wú)法正常工作,說(shuō)明接入U(xiǎn)LN2003影響P1端口電平的變化。由萬(wàn)用表測(cè)得的電壓,單片機(jī)輸出高電常數(shù),P1.0~P1.3電壓約1V,P1.4~P1.7電壓為4.3V,高低電平的電位約為1.3V。所以P1.0~P1.3總是低電平,鍵盤根本不能實(shí)現(xiàn)掃描功能。 對(duì)策,只要增加P1口高電平時(shí)的電位,就可以正常工作, 1.將電阻串接到ULN2003上,P1端口作為分壓,從而提高電平。 2.連接拉電阻至P1端口,并聯(lián)到P1口內(nèi)部電阻,降低拉電阻,降低分配電壓,從而提高P0口的高電勢(shì)。 另一個(gè)方案是把水平提升到大約2.5V。鍵盤正常工作。 另外:我做LCD顯示實(shí)驗(yàn),數(shù)據(jù)線P0口使用,不能正常工作,不顯示字符。但是,隨機(jī)移動(dòng)的數(shù)據(jù)線可以顯示出來(lái),但是顯示不正常。角色不是一次寫(xiě),而是隨機(jī)移動(dòng)幾次以完成所有的任務(wù)。通常,所有的東西都應(yīng)該一次顯示出來(lái)。因?yàn)镻0口有6個(gè)端口,并聯(lián)了三個(gè)LED,并聯(lián)在一起。因?yàn)橘Y料表明,P0口每個(gè)端口最大吸收10MA電流,總電流不能超過(guò)26MA電流。這么算,我的總電流已經(jīng)達(dá)到40MA了,哈哈。大笑。所以猜疑是主因。因此,去除了一些二極管。展示一切正常。看來(lái)問(wèn)題已經(jīng)解決了,但總覺(jué)得問(wèn)題還沒(méi)有解決,于是又做了幾次試驗(yàn),發(fā)現(xiàn)只有在P0.7端口的并聯(lián)二極管被除去后,才能在其他端口上連接LED。這時(shí)也可以正常顯示。但是這種P0吸收電流為38MA,也大于26MA。所以,不是吸收電流太大。在端口并聯(lián)三個(gè)二極管外接時(shí),仔細(xì)分析相當(dāng)于增加了700歐電阻,因此將二極管移除,換成1k電阻,LCD就無(wú)法顯示。 經(jīng)認(rèn)真分析,認(rèn)為P0.7是液晶忙信號(hào)回路。如果端口恢復(fù)到高功率,LCD處理數(shù)據(jù),不能接收新數(shù)據(jù)。如果返回0,這意味著它是空的,可以接收新的數(shù)據(jù)。 所以,當(dāng)上拉電阻超過(guò)小時(shí),液晶回到低電平時(shí),可能會(huì)超過(guò)1.3V(AT89s52高低電平的判斷電位),而在接收到單片機(jī)之后,不會(huì)被視為低電平,當(dāng)然也不能顯示。(程序設(shè)計(jì)時(shí)檢測(cè)到繁忙信號(hào),繼續(xù)檢測(cè)) 文摘:對(duì)上拉電阻的選擇也有要求,哈哈。不是越高越好,也不是越低越好。按要求選擇。 或許也叫做阻抗匹配。 搞得大家一頭霧水。 條件之三:在PC機(jī)上安裝好單片機(jī)開(kāi)發(fā)平臺(tái)。單片機(jī)開(kāi)發(fā)平臺(tái)也叫單片機(jī)開(kāi)發(fā)環(huán)境,是單片機(jī)軟件代碼的編輯工具和代碼編譯工具的結(jié)合體。單片機(jī)品牌和系列不同,其開(kāi)發(fā)平臺(tái)也不一樣,例如STM8可以用IAR進(jìn)行軟件開(kāi)發(fā),也可以采用ST公司自己開(kāi)發(fā)的STVD進(jìn)行軟件開(kāi)發(fā)。 單片機(jī)的晶振為單片機(jī)提供時(shí)鐘頻率,相當(dāng)于單片機(jī)的心臟。目前多數(shù)單片機(jī)都有內(nèi)部震蕩電路可以提供一定的時(shí)鐘頻率,但是在對(duì)時(shí)鐘頻率要求很高的情況下,還是要使用外部晶振甚至是有源晶振。 這里指的是上電復(fù)位,51單片機(jī)是高電平復(fù)位,向Cotex-M3內(nèi)核的單片機(jī)多數(shù)是低電平復(fù)位。即當(dāng)復(fù)位管腳出現(xiàn)一定脈寬的高/低電平之后即可實(shí)現(xiàn)單片機(jī)的復(fù)位,單片機(jī)的程序從頭開(kāi)始執(zhí)行。 單片機(jī)的CPU吞吐量關(guān)系到處理信息和執(zhí)行控制的能力問(wèn)題。如果選用處理能力過(guò)強(qiáng)的單片機(jī)CPU,則浪費(fèi)了單片機(jī)資源,反之,單片機(jī)處理能力會(huì)不夠,無(wú)法正常工作 |