在計算機控制應用中直接開發單片機的一種方法
摘要:針對沒有單片機開發系統或EPROM寫入器無法對單片機進行開發的問題,設計了利用PC機對單片機進行直接簡便開發的方法。詳細介紹了80C31單片機為對象,利用PC機直接開發單片機的原理及步驟。通過PC機與單片機最小系統的異步通信,實現EPROM寫入器功能。反向由單片機向PC機發送數據,使得PC機的監視器和存儲器成為單片機的監視器和存儲器。該方法節省了單片機開發系統和EPROM寫入器等“必需品”,具有簡單新穎,可靈活配置等特點,有較高的實用價值。
本文引用地址:http://www.j9360.com/article/201610/307638.htm0 引言
單片機開發可采用PC機編輯源程序,交叉匯編,產生目標代碼,再利用開發系統或EPROM寫入器寫入EPROM。拋開單片機開發系統或EPROM寫入器,直接利用PC機開發單片機,可簡化系統。
1 80C31單片機結構及原理
1.1 內部結構
80C31單片機是8位單片機,屬標準MCS-51的HCMOS產品,結合了HMOS的高速高密度及CMOS的低功耗特性。其引腳圖如圖1所示。

80C31引腳圖中:P0.0~P0.7,P0口為8位雙向口線(引腳39~32);P1.0~P1.7,P1口為8位雙向口線(引腳1~8);P2.0~P2.7,P2口為8位雙向口線(引腳21~28);P3.0~P3.7,P3口為8位雙向口線(引腳10~17)。
1.2 并行I/O口
(1)P1口:外部擴展存儲器作數據總線或地址總線;作一般I/O口,需外接上拉電阻。
(2)P2口:擴展外部存儲器作地址總線;作一般I/O口,內部有上拉電阻。
(3)P3口:除作I/O口使用(內部有上拉電阻),由特殊寄存器設置其他功能。
1.3 定時/計數器
工作方式包括方式0、方式1、方式2和方式3。方式0為16位定時/計數;方式1為16位定時/計數;方式2為8位自動重裝時間常數定時/計數;方式3為用于定時/計數器0。TL0用于8位定時/計數,TH0只用于8位定時。
1.4 串行接口
工作方式有:方式0、方式1、方式2和方式3。
(1)方式0:8位移位寄存器同步傳送,波特率固定為fose/12。
(2)方式1:10位異步傳送(異步接收/發送器:UART)。TXD:發送數據;RXD:接收數據。
字符(幀)格式:1位起始位,8位數據位,1位停止位。
波特率=(2SMOD×T1溢出率)/32
T1溢出率=fose/[12(256-x)]
(3)方式2:11位異步傳送
字符(幀)格式:1位起始位,8位數據位,1位可編程位,1位停止位。
波特率=2SMOD×fose/64
(4)方式3:同方式2,但波特率可調。
波特率=(2SMOD×T1溢出率/32)
2 由單片機最小系統構成EPROM寫入器
如圖2所示,單片機最小系統通過電平轉換器和PC機串行口RS 232相連組成EPROM寫入器。8031串行口輸出為TTL電平,PC機串行口采用RS 232標準。該電平轉換電路用于RS 232標準與TTL電平的轉換。

8031串行口是全雙工通信接口,能同時進行信號收發。串行口緩沖器SBUF是可直接尋址專用寄存器。串行口控制器用于控制和監視串行口工作狀態,在工作模式1時傳送10位。特殊功能寄存器PCON只與串行口D7位有關,SMOD=0波特率為fose/64,SMOD=1波特率為fose/32。PC機與單片機通信程序如下:
10 OPEN“COM1:1200.N,8>1.RS,CS,DS,CD”AS#1
20 INPUT“FILE NAME:”;FILE$
30 OPEN FILE$ FOR INPUT AS#2
40 B$=INPUT$(1,#2)
50 PRINT B$
60 PRINT#1,B$;
70 IF EOF(2)THEN GOTO 100
80 GOTO 40
100 CLOSE:END
本程序中,PC機串行口初始化為波特率1200b/s,無校驗,10位傳送數據。8031單片機串行口設置工作模式1,定時器1置為工作方式2。
3 利用PC機直接開發單片機
具體步驟如下:
(1)將單片機接收程序固化在2764 EPROM中。
(2)利用單片機進行源程序編輯,交叉匯編,產生目標代碼。
(3)將2764插入ROM槽,2864插入RAM槽。
(4)運行發送程序,將應用程序目標代碼寫入2864。
(5)將2864插入ROM槽,6264插入槽,運行應用程序。
此方法較為簡單,無需預設地址,由內部通信程序自動完成,使用方便。
4 結語
PC機向單片機最小系統發送程序和數據,構成EPROM寫入器;單片機向PC機發送數據,使PC機的監視器和存儲器成為單片機的監視器和存儲器,達到用PC機直接開發單片機的目的。此法節省了單片機開發系統和EPROM寫入器等“必需品”,隨單片機應用的發展,將發揮重要作用。
評論