在計算機(jī)控制應(yīng)用中直接開發(fā)單片機(jī)的一種方法
摘要:針對沒有單片機(jī)開發(fā)系統(tǒng)或EPROM寫入器無法對單片機(jī)進(jìn)行開發(fā)的問題,設(shè)計了利用PC機(jī)對單片機(jī)進(jìn)行直接簡便開發(fā)的方法。詳細(xì)介紹了80C31單片機(jī)為對象,利用PC機(jī)直接開發(fā)單片機(jī)的原理及步驟。通過PC機(jī)與單片機(jī)最小系統(tǒng)的異步通信,實現(xiàn)EPROM寫入器功能。反向由單片機(jī)向PC機(jī)發(fā)送數(shù)據(jù),使得PC機(jī)的監(jiān)視器和存儲器成為單片機(jī)的監(jiān)視器和存儲器。該方法節(jié)省了單片機(jī)開發(fā)系統(tǒng)和EPROM寫入器等“必需品”,具有簡單新穎,可靈活配置等特點,有較高的實用價值。
本文引用地址:http://m.butianyuan.cn/article/201610/307638.htm0 引言
單片機(jī)開發(fā)可采用PC機(jī)編輯源程序,交叉匯編,產(chǎn)生目標(biāo)代碼,再利用開發(fā)系統(tǒng)或EPROM寫入器寫入EPROM。拋開單片機(jī)開發(fā)系統(tǒng)或EPROM寫入器,直接利用PC機(jī)開發(fā)單片機(jī),可簡化系統(tǒng)。
1 80C31單片機(jī)結(jié)構(gòu)及原理
1.1 內(nèi)部結(jié)構(gòu)
80C31單片機(jī)是8位單片機(jī),屬標(biāo)準(zhǔn)MCS-51的HCMOS產(chǎn)品,結(jié)合了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口:外部擴(kuò)展存儲器作數(shù)據(jù)總線或地址總線;作一般I/O口,需外接上拉電阻。
(2)P2口:擴(kuò)展外部存儲器作地址總線;作一般I/O口,內(nèi)部有上拉電阻。
(3)P3口:除作I/O口使用(內(nèi)部有上拉電阻),由特殊寄存器設(shè)置其他功能。
1.3 定時/計數(shù)器
工作方式包括方式0、方式1、方式2和方式3。方式0為16位定時/計數(shù);方式1為16位定時/計數(shù);方式2為8位自動重裝時間常數(shù)定時/計數(shù);方式3為用于定時/計數(shù)器0。TL0用于8位定時/計數(shù),TH0只用于8位定時。
1.4 串行接口
工作方式有:方式0、方式1、方式2和方式3。
(1)方式0:8位移位寄存器同步傳送,波特率固定為fose/12。
(2)方式1:10位異步傳送(異步接收/發(fā)送器:UART)。TXD:發(fā)送數(shù)據(jù);RXD:接收數(shù)據(jù)。
字符(幀)格式:1位起始位,8位數(shù)據(jù)位,1位停止位。
波特率=(2SMOD×T1溢出率)/32
T1溢出率=fose/[12(256-x)]
(3)方式2:11位異步傳送
字符(幀)格式:1位起始位,8位數(shù)據(jù)位,1位可編程位,1位停止位。
波特率=2SMOD×fose/64
(4)方式3:同方式2,但波特率可調(diào)。
波特率=(2SMOD×T1溢出率/32)
2 由單片機(jī)最小系統(tǒng)構(gòu)成EPROM寫入器
如圖2所示,單片機(jī)最小系統(tǒng)通過電平轉(zhuǎn)換器和PC機(jī)串行口RS 232相連組成EPROM寫入器。8031串行口輸出為TTL電平,PC機(jī)串行口采用RS 232標(biāo)準(zhǔn)。該電平轉(zhuǎn)換電路用于RS 232標(biāo)準(zhǔn)與TTL電平的轉(zhuǎn)換。
8031串行口是全雙工通信接口,能同時進(jìn)行信號收發(fā)。串行口緩沖器SBUF是可直接尋址專用寄存器。串行口控制器用于控制和監(jiān)視串行口工作狀態(tài),在工作模式1時傳送10位。特殊功能寄存器PCON只與串行口D7位有關(guān),SMOD=0波特率為fose/64,SMOD=1波特率為fose/32。PC機(jī)與單片機(jī)通信程序如下:
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機(jī)串行口初始化為波特率1200b/s,無校驗,10位傳送數(shù)據(jù)。8031單片機(jī)串行口設(shè)置工作模式1,定時器1置為工作方式2。
3 利用PC機(jī)直接開發(fā)單片機(jī)
具體步驟如下:
(1)將單片機(jī)接收程序固化在2764 EPROM中。
(2)利用單片機(jī)進(jìn)行源程序編輯,交叉匯編,產(chǎn)生目標(biāo)代碼。
(3)將2764插入ROM槽,2864插入RAM槽。
(4)運行發(fā)送程序,將應(yīng)用程序目標(biāo)代碼寫入2864。
(5)將2864插入ROM槽,6264插入槽,運行應(yīng)用程序。
此方法較為簡單,無需預(yù)設(shè)地址,由內(nèi)部通信程序自動完成,使用方便。
4 結(jié)語
PC機(jī)向單片機(jī)最小系統(tǒng)發(fā)送程序和數(shù)據(jù),構(gòu)成EPROM寫入器;單片機(jī)向PC機(jī)發(fā)送數(shù)據(jù),使PC機(jī)的監(jiān)視器和存儲器成為單片機(jī)的監(jiān)視器和存儲器,達(dá)到用PC機(jī)直接開發(fā)單片機(jī)的目的。此法節(jié)省了單片機(jī)開發(fā)系統(tǒng)和EPROM寫入器等“必需品”,隨單片機(jī)應(yīng)用的發(fā)展,將發(fā)揮重要作用。
評論