AT89S51單片機開(kāi)發(fā)板的設計
1 引言
單片機系統傳統的編程方式是將單片機先從電路板上取下,放入專(zhuān)用的編程器進(jìn)行編程,再放人電路板進(jìn)行調試。其缺點(diǎn)是頻繁的拔插器件容易損壞器件的引腳;如果頻繁的調試程序,必須重復拔插,大大降低了開(kāi)發(fā)效率。ISP技術(shù)是未來(lái)發(fā)展的方向,其優(yōu)勢是無(wú)需編程器就可進(jìn)行單片機的實(shí)驗和開(kāi)發(fā),單片機器件可直接焊接到電路板上,調試結束即為成品,免去調試時(shí)由于頻繁插入取出對器件和電路板造成的損壞和帶來(lái)的不便。 ISP可降低研發(fā)成本;縮短從設計、制造到現場(chǎng)調試的時(shí)間,簡(jiǎn)化生產(chǎn)流程,大大提高工作效率;在試驗新品或學(xué)生試驗等常需用不同的程序調試器件的場(chǎng)合中,在線(xiàn)編程技術(shù)尤為重要。
設計AT89S51單片機開(kāi)發(fā)板,采用ISP下載線(xiàn)實(shí)現在Keil C軟件開(kāi)發(fā)環(huán)境下調試的匯編語(yǔ)言程序機器碼能即時(shí)下載到AT89S51單片機片內Flash中,并可在線(xiàn)修改。
2 單片機開(kāi)發(fā)板硬件設計
AT89S51單片機開(kāi)發(fā)板南AT89S51單片機最小系統、ISP下載編程器、上位機與下位機之間的串行通信電路、4×4矩陣鍵盤(pán)鍵號的識別與顯示電路4部分組成,如圖1所示。
2.1 單片機ISP下載編程器
在系統可編程ISP(In-System Programmable),指電路板上的空白器件可編程寫(xiě)入最終用戶(hù)代碼,而無(wú)需從電路板取下器件,已編程的器件也可用ISP方式擦除或再編程。ISP 的工作原理:?jiǎn)纹瑱C可通過(guò)SPI或其他串行接口接收上位機傳來(lái)的數據并寫(xiě)入存儲器中。所以即使將器件焊接在電路板上,只要留出和上位機接口的串口,配合 ispdown的下載電纜,就可實(shí)現器件內部存儲器的改寫(xiě),而無(wú)需取下器件。ISP的提出改變了傳統硬件系統開(kāi)發(fā)的流程,大大方便了開(kāi)發(fā)者,加快了開(kāi)發(fā)速度。下載電纜是一種使用計算機的并行端口通過(guò)軟件的仿零點(diǎn)實(shí)現ATAG或ISP接口協(xié)議,訪(fǎng)問(wèn)可編程器件的廉價(jià)工具。
圖2為下載線(xiàn)電路圖。AT89S51單片機的ISP接口通過(guò)指令輸入MISO(P1.5引腳)、數據輸入MOSI(P1.6引腳)、時(shí)鐘輸入SCK(P1.7引腳)3根信號線(xiàn),以串行模式為系統提供對MCU器件的編程寫(xiě)入和讀出功能。
2.2 串行通信接口
上位機PC機與下位機單片機通過(guò)RS-232C串行接口總線(xiàn)進(jìn)行的串行通信。80C51系列單片機帶有一個(gè)全雙工的串行接口,因此用RS-232C串行接口總線(xiàn)非常方便。PC機配置RS-232C標準接口,RS-232C信號電平為負邏輯(邏輯“0”:+12 V;邏輯“1”:-12 v),80C51單片機輸入、輸出電平為,TTL電平(邏輯“0”:≤0.5 V;邏輯“1”:≥2.4 V)。所以8051與PC機間點(diǎn)對點(diǎn)異步通信需加電平轉換電路,否則將燒壞TTL電路。MAX232器件是MAXIM公司生產(chǎn)的具有兩路接收器和驅動(dòng)器的 IC器件,其內部有一個(gè)電源電壓變換器,可將輸入的+5 V電壓變換成RS-232C輸出電平所需的±12 V電壓。MAX232器件的引腳1~6(C1+、V+、C1-、C2+、C2-、V-)用于電源電壓轉換,只需在外部接入相應電解電容即可;引腳7~10 和引腳11~14構成兩組,TTL信號電平與RS-232C信號電平的轉換電路,對應引腳可直接與單片機串行口的TTL電平引腳和PC機的RS232電平引腳相連。
2.3 矩陣鍵盤(pán)鍵號的識別與顯示電路
在A(yíng)T89S51單片機的I/O口設計4×4行列式鍵盤(pán),采用程序掃描法識別按下的鍵,當有按鍵按下時(shí),其鍵號顯示在共陰極LED數碼管上。其電路如圖4所示。
一個(gè)4×4的行、列結構可構成一個(gè)含有16個(gè)按鍵的鍵盤(pán)。按鍵的位置由行號和列號唯一確定。將圖4中的4×4鍵盤(pán)鍵號編碼為:01H、02H、03H、…、0EH、0FH、10H16個(gè)鍵號。
(1)用全掃描法判斷有無(wú)鍵按下行線(xiàn)在無(wú)鍵按下時(shí)處在高電平,按鍵按下時(shí),與此鍵相連的行線(xiàn)與列線(xiàn)導通。如果讓所有列線(xiàn)處于低電平。當無(wú)鍵按下時(shí),則讀人的行信息全為1;有鍵按下時(shí),讀入的行信息不全為1,按下鍵所在的行電平會(huì )由高電平變?yōu)榈碗娖?。CPU根據行電平的變化,便能判定相應的行有鍵按下。
(2)用逐列置0掃描法確定具體鍵按為進(jìn)一步確定具體鍵,在某一時(shí)刻只讓一條列線(xiàn)處于低電平,其余列線(xiàn)均處于高電平,另一時(shí)刻,讓下一列處在低電平,依此循環(huán),實(shí)現鍵盤(pán)掃描。
鍵盤(pán)工作在編程掃描方式,單片機在完成其他工作后的空閑時(shí)間調用鍵盤(pán)掃描子程序響應鍵盤(pán)輸入的要求,在執行鍵功能程序時(shí)CPU不再響應鍵輸入要求,直到CPU重新掃描鍵盤(pán)。
3 系統軟件設計
系統軟件采用匯編語(yǔ)言編寫(xiě),鍵盤(pán)編程掃描子程序采用全掃描法判斷有無(wú)鍵按下,采用逐列置0掃描法確定具體哪個(gè)鍵按下,計算閉合鍵的鍵號,等鍵釋放后將鍵號存入內RAM30H單元。
鍵號顯示子程序采用查表法將30H單元中閉合鍵鍵號轉換為共陰極數碼管的字段碼并將其送至P3端口顯示。主程序通過(guò)反復調用鍵盤(pán)掃描子程序和鍵號顯示子程序實(shí)現閉合鍵的鍵號實(shí)時(shí)顯示。該系統設計的主程序流程如圖5所示,系統的鍵盤(pán)掃描子程序流程如圖6所示。
4 結論
AT89S51單片機開(kāi)發(fā)板采用ISP技術(shù),實(shí)現了程序代碼的在線(xiàn)寫(xiě)入和修改,代替傳統的編程器完成程序代碼燒寫(xiě),免去了反復插拔單片機器件的麻煩,降低了單片機引腳的損壞機率,具有成本低、使用方便、可靠等優(yōu)點(diǎn)。通過(guò)設計矩陣鍵盤(pán)的鍵號識別與顯示應用系統,證明該開(kāi)發(fā)板在 Keil C軟件環(huán)境下可實(shí)現程序調試,容易在線(xiàn)寫(xiě)入程序代碼。
評論