⑴ 51單片機電路圖和元件情況
1.內部振盪典型電路。
理論上來說,振盪頻率越高表示單片機運行速度越快,但同時對存儲器的速度和印刷電路板的要求也就越高。如同木桶原理。同時單片機性能的好壞,不僅與CPU運算速度有關,而且與存儲器的速度、外設速度等都有很大關系。因此一般選用6~12MHZ。並聯諧振電路對電容的值沒有嚴格要求,但會影響振盪器的穩定、振盪器頻率高低、起振快速性等。所以一般C1、C2選值20~100pF,在60~70pF時振盪器有較高的頻率穩定性。陶瓷封裝電容可以進一步提高溫度穩定性。
內部振盪典型電路
2.上電復位與按鍵復位典型電路。
(摘自網路知道的解答)51單片機是高電平復位,所以先看給單片機加5V電源(上電)啟動時的情況:這時電容充電相當於短路(電容特性:通交流,隔直流,上電瞬間相當於交流),你可以認為RST上的電壓就是VCC,這是單片機就是復位狀態。隨著時間推移電容兩端電壓升高,即造成RST上的電壓降低,當低至閾值電壓時,即完成復位過程。
如果按下SW(按鍵復位中的帽子按鍵),的確就是按鈕把C短路了,這時電容放電,兩端電壓都是VCC,即RST引腳電壓為VCC,如果超過規定的復位時間,單片機就復位了。當按鈕彈起後,RST引腳的電壓為0,單片機處於運行狀態。
51單片機復位要求是:RST上加高電平時間大於2個機器周期,你用的12MHz晶振,所以一個機器周期就是1us,要復位就加2us的高電平即可。
圖中的RC常數是51K×1uF=51ms(這是網路的配圖計算,能夠推算R和C的取值,取值僅供參考,以元件常見值為佳),即51毫秒,這個常數足夠大了。
⑵ 8051單片機的內部硬體結構包括哪五大部分
8051單片機的內部硬體結構包括:
1、中央處理器CPU:它是單片機內部的核心部件,決定了單片機的主要功能特性,由運算器和控制器兩大部分組成。
2、存儲器:8051單片機在系統結構上採用了哈佛型,將程序和數據分別存放在兩個存儲器內,一個稱為程序存儲器,另一個為數據存儲器在物理結構上分程序存儲器和數據存儲器,有四個物理上相互獨立的存儲空間,即片內ROM和片外ROM,片內RAM和片外RAM。
3、定時器/計數器(T/C):8051單片機內有兩個16位的定時器/計數器,每個T/C既可以設置成計數方式,也可以設置成定時方式,並以其定時計數結果對計算機進行控制。
4、並行I/O口:8051有四個8位並行I/O介面(P0~P3),以實現數據的並行輸入輸出。
5、串列口:8051單片機有一個全雙工的串列口,可實現單片機和單片機或其他設備間的串列通信。
6、中斷控制系統:8051共有5個中斷源,非為高級和低級兩個級別它可以接收外部中斷申請、定時器/計數器申請和串列口申請,常用於實時控制、故障自動處理、計算機與外設間傳送數據及人機對話等。
(2)51單片機執行指令的硬體電路擴展閱讀:
單片機不是完成某一個邏輯功能的晶元,而是把一個計算機系統集成到一個晶元上。相當於一個微型的計算機,和計算機相比,單片機只缺少了I/O設備。
概括的講:一塊晶元就成了一台計算機。它的體積小、質量輕、價格便宜、為學習、應用和開發提供了便利條件。同時,學習使用單片機是了解計算機原理與結構的最佳選擇。
單片機的使用領域已十分廣泛,如智能儀表、實時工控、通訊設備、導航系統、家用電器等。
⑶ 51單片機最小系統原理圖
單片機的最小系統是由組成單片機系統必需的一些元件構成的,除了單片機之外,還需要包括電源供電電路、時鍾電路、復位電路。單片機最小系統電路(單片機電源和地沒有標出)如圖2-7所示。
圖2-7 單片機最小系統
下面著重介紹時鍾電路和復位電路。
1)時鍾電路
單片機工作時,從取指令到解碼再進行微操作,必須在時鍾信號控制下才能有序地進行,時鍾電路就是為單片機工作提供基本時鍾的。單片機的時鍾信號通常有兩種產生方式:內部時鍾方式和外部時鍾方式。
內部時鍾方式的原理電路如圖2-8所示。在單片機XTAL1和XTAL2引腳上跨接上一個晶振和兩個穩頻電容,可以與單片機片內的電路構成一個穩定的自激振盪器。晶振的取值范圍一般為0~24MHz,常用的晶振頻率有6MHz、12 MHz、11.0592 MHz、24 MHz等。一些新型的單片機還可以選擇更高的頻率。外接電容的作用是對振盪器進行頻率微調,使振盪信號頻率與晶振頻率一致,同時起到穩定頻率的作用,一般選用20~30pF的瓷片電容。
外部時鍾方式則是在單片機XTAL1引腳上外接一個穩定的時鍾信號源,它一般適用於多片單片機同時工作的情況,使用同一時鍾信號可以保證單片機的工作同步。
時序是單片機在執行指令時CPU發出的控制信號在時間上的先後順序。AT89C51單片機的時序概念有4個,可用定時單位來說明,包括振盪周期、時鍾周期、機器周期和指令周期。
振盪周期:是片內振盪電路或片外為單片機提供的脈沖信號的周期。時序中1個振盪周期定義為1個節拍,用P表示。
時鍾周期:振盪脈沖送入內部時鍾電路,由時鍾電路對其二分頻後輸出的時鍾脈沖周期稱為時鍾周期。時鍾周期為振盪周期的2倍。時序中1個時鍾周期定義為1個狀態,用S表示。每個狀態包括2個節拍,用P1、P2表示。
機器周期:機器周期是單片機完成一個基本操作所需要的時間。一條指令的執行需要一個或幾個機器周期。一個機器周期固定的由6個狀態S1~S6組成。
指令周期:執行一條指令所需要的時間稱為指令周期。一般用指令執行所需機器周期數表示。AT89C51單片機多數指令的執行需要1個或2個機器周期,只有乘除兩條指令的執行需要4個機器周期。
了解了以上幾個時序的概念後,我們就可以很快的計算出執行一條指令所需要的時間。例如:若單片機使用12MHz的晶振頻率,則振盪周期=1/(12MHz)=1/12us,時鍾周期=1/6us,機器周期=1us,執行一條單周期指令只需要1us,執行一條雙周期指令則需要2us。
2)復位電路
無論是在單片機剛開始接上電源時,還是運行過程中發生故障都需要復位。復位電路用於將單片機內部各電路的狀態恢復到一個確定的初始值,並從這個狀態開始工作。
單片機的復位條件:必須使其RST引腳上持續出現兩個(或以上)機器周期的高電平。
單片機的復位形式:上電復位、按鍵復位。上電復位和按鍵復位電路如下。
圖2-9 單片機復位電路
上電復位電路中,利用電容充電來實現復位。在電源接通瞬間,RST引腳上的電位是高電平(Vcc),電源接通後對電容進行快速充電,隨著充電的進行,RST引腳上的電位也會逐漸下降為低電平。只要保證RST引腳上高電平出現的時間大於兩個機器周期,便可以實現正常復位。
按鍵復位電路中,當按鍵沒有按下時,電路同上電復位電路。如在單片機運行過程中,按下RESET鍵,已經充好電的電容會快速通過200Ω電阻的迴路放電,從而使得RST引腳上的電位快速變為高電平,此高電平會維持到按鍵釋放,從而滿足單片機復位的條件實現按鍵復位。
單片機復位後各特殊功能寄存器的復位值見表2-11。
表2-11 單片機特殊功能寄存器復位值
寄存器 復位值 寄存器 復位值 寄存器 復位值
PC 0000H SBUF 不確定 TMOD 00H
B 00H SCON 00H TCON 00H
ACC 00H TH1 00H PCON 0***0000B
PSW 00H TH0 00H DPTR 0000H
IP ***00000B TL1 00H SP 07H
IE 0**00000B TL0 00H P0~P3 FFH
註:*表示無關位。
⑷ 急求:基於MCS-51單片機的溫度控制器匯編語言軟體設計和硬體電路圖
第2章 硬體電路詳細設計
DS18B20的性能特點:1、採用單匯流排專用技術,既可通過串列口線,也可通過其它I/O口線與微機介面,無須經過其它變換電路,直接輸出被測溫度值(9位二進制數,含符號位),2、測溫范圍為-55℃-+125℃,測量解析度為0.0625℃,3、內含64位經過激光修正的只讀存儲器ROM,4、適配各種單片機或系統機,5、用戶可分別設定各路溫度的上、下限,6、內含寄生電源。溫度感測器DS18B20連接方式:在寄生電源供電方式下,DS18B20從單線信號線上汲取能量,在信號線DQ處於高電平期間把能量儲存在內部電容里,在信號線處於低電平期間消耗電容上的電能工作,直到高電平到來再給寄生電源(電容)充電。如圖2.3所示。
2.4 復位電路的設計
本設計採用人工復位,將一個按扭開關並聯於上電自動復位電路按一下開關就在RST端出現一段時間的高電平,即器件復位。
2.5 晶振電路的設計
2.6 DS18B20溫度感測器與單片機的介面電路
DS18B20可以採用兩種方式供電,一種是採用電源供電方式,此時DS18B20的1腳接地,2腳作為信號線,3腳接電源。另一種是寄生電源供電方式,如所示單片機埠接單線匯流排,為保證在有效的DS18B20時鍾周期內提供足夠的電流,可用一個MOSFET管來完成對匯流排的上拉。
當DS18B20處於寫存儲器操作和溫度A/D轉換操作時,匯流排上必須有強的上拉,上拉開啟時間最大為10us。採用寄生電源供電方式時VDD端接地。由於單線制只有一根線,因此發送介面必須是三態的。
2.7 溫度測量系統整體硬體電路
Wei1 BIT P3.0 ;;數碼管第1位
Wei2 BIT P3.1 ;;數碼管第2位
Wei3 BIT P3.2 ;;數碼管第3位
Wei4 BIT P3.3 ;;數碼管第4位
Dian EQU 20H ;;小數點狀態狀態保存位元組
DisData1 EQU 30H ;;第1位顯示數據
DisData2 EQU 31H ;;第2位顯示數據
DisData3 EQU 32H ;;第3位顯示數據
DisData4 EQU 33H ;;第4位顯示數據
DisTime EQU 34H ;;設置顯示幾次後讀取溫度值
;;溫度數據存儲單元標號定義
TempL EQU 35H ;;溫度高位
TempH EQU 36H ;;溫度低位
;;與DS18B20通迅部分存儲單元及標號定義
DS18B20 BIT P1.0 ;;與DS18B20通迅的位地址
RFail BIT 21H.0 ;;復位失敗標記
Var EQU 22H ;;變數位元組,溫度數據處理時用到
Var2 EQU 3FH ;;變數位元組
主程序部分:
ORG 00H
LJMP START
ORG 100H
START: ;;-----初始化
MOV SP,#60H ;;初始化堆棧指針
Set18B20:;;-----DS18B20初始化
;;DS18B20復位
ACALL Reset
JB RFail,LOOP ;;復位失敗則直接跳至顯示部分
;;對DS18B20發出Skip ROM命令
MOV A,#0CCH
ACALL Write
;;對DS18B20發出溫度轉換命令
MOV A,#44H
ACALL Write
SetDisT:MOV DisTime,#3 ;;設置下一個循環體的循環8次
LOOP:
ACALL Display ;;顯示
JB RFail,Set18B20 ;;DS18B20復位失敗時,在顯示完一次後重新復位
DJNZ DisTime,LOOP
JNB DS18B20,$ ;;判斷DS18B20是否已完成溫度轉換
ACALL GetTemp ;;從DS18B20讀出溫度值
ACALL DealTemp ;;溫度值處理
ACALL SendDisDT ;;根據當前系統狀態設置顯示內容
SJMP SetDisT ;;;;;;;
;;根據當前狀態給顯示模塊設置顯示參數
SendDisDT:
MOV Dian,#7FH ;;最高位為0代表顯示小數點
;;傳送溫度值
MOV A,TempH ;;送高位數據
MOV VAR,TempL ;;送低位數據
ACALL TransData
RET
;;A中保存高位值,Var中保存低位值
TransData:
;;取個位值
MOV B,#10
DIV AB
MOV DisData2,B
;;取十位值
JZ HavNot1 ;;判斷商是否為0
MOV B,#10
DIV AB
MOV DisData3,B
JZ HavNot2 ;;判斷商是否為0
MOV DisData4,A
SJMP XiaoShu ;;跳至百位符號處理部分
HavNot1:MOV DisData3,#10 ;;十位開始沒有數字
HavNot2:MOV DisData4,#10 ;;百位開始沒有數字
SignJudge:;;符號處理部分
JNB VAR.7,XiaoShu ;;當為負數顯示符號
MOV A,#10
CJNE A,DisData3,BWSign
MOV DisData3,#11 ;;負號在十位
SJMP XiaoShu
BWSign:MOV DisData4,#11 ;;負號在百位
XiaoShu:;;小數處理部分,用查表法獲取小數值,精確到小數點後1位
MOV A,VAR
ANL A,#0FH
MOV DPTR,#XSTab
MOVC A,@A+DPTR
MOV DisData1,A
RTransTemp:
RET
XSTab: DB 0,1,1,2,3,3,4,4,5,6,6,7,8,8,9,9
DS18B20通迅模塊組
-------復位模塊
Reset: ;;3微秒高電平
SETB DS18B20
MOV R7,#250
CLR RFail ;;清0復位失敗標記
CLR DS18B20
;;延遲501uS
DJNZ R7,$
SETB DS18B20 ;;釋放匯流排(拉高數據線)
;;等待DS18B20作出復位成功反應,最大等待時間為69uS
MOV R7,#17
Wait:
JNB DS18B20,RReset ;;若DS18B20在作出復位成功反應,不再等待
DJNZ R7,Wait
SETB RFail ;;70uS內DS18B20作出復位成功反應,置1復位失敗標記
RReset:
;;延遲350Us
MOV R7,#174
DJNZ R7,$
SETB DS18B20
RET
/
;;-------向DS18B20寫一個字的模塊,要寫的內容提前裝入ACC中
Write:
MOV R6,#8 ;寫8位
WriteBit:
;;2微秒高電平
SETB DS18B20
MOV R7,#3
;;7微秒低電平
CLR DS18B20
DJNZ R7,$
;;ACC低位送至DS18B20
RRC A
MOV DS18B20,C
;;延遲60Us
MOV R7,#28
DJNZ R7,$
;;是否已寫完8位
DJNZ R6,WriteBit
RWrite:
SETB DS18B20
RET
; /
;;-------從DS18B20讀回一個位元組的內容,讀回的內容裝入ACC中
Read:
MOV R6,#8 ;;讀回8位
MOV A,#0 ;;讀回的內容裝入ACC中
ReadBit:
;;2微秒高電平
SETB DS18B20
MOV R7,#7
;;2微秒低電平
CLR DS18B20
NOP
;;16微秒高電平
SETB DS18B20
DJNZ R7,$
;;讀回一位數據放入ACC中
MOV C,DS18B20
RRC A
;;延遲66Us
MOV R7,#33
DJNZ R7,$
;;是否已讀完8位
DJNZ R6,ReadBit
RRead:
SETB DS18B20
RET
/
;;-------與DS18B20通迅,讀回兩位元組溫度值,並裝入ACC中TempL和TempH中
GetTemp:
ACALL Reset ;;復位
JB RFail,RGetTemp ;;判斷復位是否成功
;;復位成功
;;對DS18B20發出Skip ROM命令
MOV A,#0CCH
ACALL Write
;;對DS18B20發出讀命令
MOV A,#0BEH
ACALL Write
;;從DS18B20讀回低8位溫度值
ACALL Read
MOV TempL,A
;;從DS18B20讀回高8位溫度值
ACALL Read
MOV TempH,A
ACALL Reset ;;復位
JB RFail,RGetTemp ;;判斷復位是否成功
;;對DS18B20發出Skip ROM命令
MOV A,#0CCH
ACALL Write
;;對DS18B20發出溫度轉換命令
MOV A,#44H
ACALL Write
RGetTemp:
RET
溫度數據處理模塊
DealTemp:
;;將整數的二進制數部分移到一個位元組,符號位和小數部分移到一個位元組
MOV R1,#Var
MOV Var,TempH
MOV A,TempL
XCHD A,@R1 ;;符號位、小數部分至VAR(@R1),整數部分至ACC
SWAP A
;;整數部分處理
JNB Var.7,NotNeg ;;判斷是否為負數
CPL A ;;為負數,取反後加1得其絕對值
;;小數部分取反
XRL Var,#1FH ;;
INC Var
NotNeg:
MOV TempH,A
MOV TempL,Var
RET
顯示模塊
-------顯示DisData(30H)從開始的三個位元組保存顯示信息
Display:
MOV DPTR,#Tab
;;**顯示小數部分
MOV A,DisData1
MOVC A,@A+DPTR
MOV P2,A
CLR Wei1
ACALL Delay
SETB Wei1
;;**顯示個位
MOV A,DisData2
MOVC A,@A+DPTR
;;小數點處理
ANL A,Dian
MOV P2,A
CLR Wei2
ACALL Delay
SETB Wei2
;;**顯示十位
MOV A,DisData3
MOVC A,@A+DPTR
MOV P2,A
CLR Wei3
ACALL Delay
SETB Wei3
;;**顯示百位
MOV A,DisData4
MOVC A,@A+DPTR
MOV P2,A
CLR Wei4
ACALL Delay
SETB Wei4
RET
Tab: ;;0~9、空白、負號的編碼
DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH,0BFH
;;延遲
Delay:
MOV R6,#6
DD1:MOV R5,#250
DJNZ R5,$
DJNZ R6,DD1
RET
END
這裡面插不了圖,我有這個的整套課程設計報告,想要找我,[email protected]
⑸ m c s -51單片機主要是有哪些硬體組成
你說的是最小系統吧,那就不算硬體電路啦,而是算單片機內部結構。
MCS-51單片機內部結構:
一個8位CPU;
一個片內振盪器及時鍾電路;
4KB ROM程序存儲器;
可定址64KB外部數據存儲器和64KB外部程序存儲空間的控制電路;
32條可編程的I/0線(4個8位並行I/0埠);
兩個16位的定時/計數器;
5個中斷源、兩個優先順序嵌套中斷結構.
⑹ 51單片機內部包含哪些主要功能部件各功能部件的主要作用是什麼
部件、功能如下:
運算器:由算術邏輯單元ALU、累加器ACC、B寄存器、兩個暫存寄存器、程序狀態寄存器組成PSW;8位,可以進行算術雲算(加,減,乘,除,乘除運算與寄存器B有關)、邏輯運算及移位運算等。
控制器:由指令寄存器IR、指令解碼器ID、定時及控制邏輯電路、程序計數器PC組成,使單片機的運行控制中心。PC的結構與功能:16位的程序寄存器,控製程序的執行。IR,ID的功能;
ROM:4KB,地址0000H--0FFFH(使用時)
RAM:128B,地址00H--7FH三、8051的I/O埠電路四、定時器/計數器:2個16位的定時器/計數器五、中斷控制系統:5個中斷源,其中兩個外部中斷、兩個定時/計數器中斷、1個串列口中斷。
⑺ 51單片機控制器組成與功能簡介
MSC51單片機的控制器由指令寄存器、指令解碼器、復位電路、時鍾發生器、定時控制邏輯、程序計數器、程序地址寄存器、數據指針、堆棧指針等組成。
1、 時鍾發生器。
1) 內部方式:MCS-51 有內部振盪電路,只要在XTAL1、XTAL2引腳上外接定時反饋電路(一般為石英晶振和電容組成的並聯迴路)內部振盪器便自激振盪--稱為內部方式。在XTAL2有3V左右的正弦波輸出。
2) 外部方式:由XTAL1或XTAL2輸入一外部振盪信號(0。5~16MHZ方波)。
2、復位電路
1) 上電復位
2) 人工復位
3) 系統復位(單片機本身與外部擴展的I/O介面電路需要一個同步復位信號,若不同步,則CPU對I/O介面電路的初始化編程無效,使系統不能正常工作,(1)這可通過延時一段時間以後對外部I/O電路進行初始化來解決,(2)或接不同的復位電路通過調節RC常數使CPU和外部電路同步復位)。
3、CPU定時(時序)
1) 振盪周期(1/fosc)振盪器輸出的脈沖周期
2) 時鍾周期 振盪脈沖經2分頻後的內部時鍾信號周期(也稱狀態周期)。(S)
3) 機器周期 6個時鍾周期組成一個機器周期,或1個機器周期=12振盪周期。
4) 指令周期 以機器周期為單位,一條指令執行的時間;有單周期指令、雙周期指令、4周期指令。
⑻ 求51單片機內部電路構造圖
這個你要去找半導體生產商了,一般人不需要了解這么深,要了解這么深只會浪費時間,除非你是搞半導體的、微電子的。
⑼ 51單片機的硬體結構
本文主要講解51單片機的硬體結構,而且只介紹重點知識。
由上圖可以看出,51單片機組成結構包括以下幾個部分:
時序信號:一類用於片內各功能的部件的控制,另一類用於片外存儲器或IO埠的控制(這個對用戶來說是比較重要的,在定時器部分會講)
通過修改PSW中的RS1、RS0兩位的狀態,就能任選一個工作寄存器區。這個特點提高了MCS-51現場保護和現場恢復的速度。對於提高CPU的工作效率和響應中斷的速度是很有利的。若在一個實際的應用系統中,不需要四組工作寄存器,那麼這個區域中多餘單元可以作為一般的數據緩沖器使用。
按存儲結構可分為二類:一類是哈佛結構,另一類是普林斯頓結構。
①哈佛結構
哈佛結構是程序存儲器地址空間與數據存儲器地址空間分開的單片機結構,如80C51單片機採用哈佛結構,所以80C51單片機的程序存儲器地址空間與數據存儲器地址空間是分開的,各有64K存儲空間。
②普林斯頓結構
普林斯頓結構是程序存儲器地址空間與數據存儲器地址空間合並的單片機結構,如MCS-96單片機採用普林斯頓結構,所以MCS-96單片機的程序存儲器地址空間與數據存儲器地址空間是合並的,共有64K存儲空間。
P3口還有第二功能,表如下:
若TI 或 RI 被置位,必須用軟體清零,硬體不能將其清零。
在不設置IP優先順序寄存器的話,單片機內部會按這個默認順序優先順序去響應各個中斷。
上電復位後除埠鎖存器,堆棧指針,SBUF外,單片機內部的復位電路向所有的特殊功能寄存器寫入00H。SBUF的值是不能確定的。
復位還使ALE和PSEN信號變為無效(高電平),而內部RAM不受影響。但由於VCC上電復位後,RAM內容不定,除非是退回低功耗方式的復位。
⑽ 51單片機控制兩個發光二極體的電路圖 和程序
你好!很高興能為你回答!如有疑問可以聯系!如圖所示:在P1.0、P1.1埠上各接一個發光二極體L1、L2,使L1、L2在不停地一亮一滅,一亮一滅的時間間隔為0.2秒。
如圖所示的石英晶體為12MHz,因此,1個機器周期為1微秒
機器周期
微秒
MOV
R6,#20
2個機器周期
2
D1:
MOV
R7,#248
2個機器周期
22+2×248=49820×
DJNZ
R7,$
2個機器周期
2×248
498
DJNZ
R6,D1
2個機器周期2×20=4010002
因此,上面的延時程序時間為10.002ms。
由以上可知,當R6=10、R7=248時,延時5ms,R6=20、R7=248時,延時10ms,以此為基本的計時單位。如本實驗要求0.2秒=200ms,10ms×R5=200ms,則R5=20,延時子程序如下:
DELAY:
MOV
R5,#20
D1:
MOV
R6,#20
D2:
MOV
R7,#248
DJNZ
R7,$
DJNZ
R6,D2
DJNZ
R5,D1
RET
(2).
輸出控制
如圖所示,當P1.0埠輸出高電平,即P1.0=1時,根據發光二極體的單向導電性可知,這時發光二極體L1熄滅;當P1.0埠輸出低電平,即P1.0=0時,發光二極體L1亮;我們可以使用SETBP1.0指令使P1.0埠輸出高電平,使用CLRP1.0指令使P1.0埠輸出低電平。P1.1同理;
5.
程序框圖
如圖4.1.2所示
圖4.1.2
6.
匯編源程序
ORG
0
START:
CLR
P1.0SETB
P1.1
LCALL
DELAY
SETB
P1.0CLR
P1.1
LCALL
DELAY
LJMP
START
DELAY:
MOV
R5,#20
;延時子程序,延時0.2秒
D1:
MOV
R6,#20
D2:
MOV
R7,#248
DJNZ
R7,$
DJNZ
R6,D2
DJNZ
R5,D1
RET
END
7.
C語言源程序
#include
<AT89X51.H>
sbit
L1=P1^0;sbit
L2=p1^1;
void
delay02s(void)
//延時0.2秒子程序
{
unsigned
char
i,j,k;
for(i=20;i>0;i--)
for(j=20;j>0;j--)
for(k=248;k>0;k--);
}
void
main(void)
{
while(1)
{
L1=0;L2=1;
delay02s();
L1=1;L2=0;
delay02s();
}
}