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