Ⅰ mcs-51/52系列單片機內部包含哪些主要邏輯功能部件
8051單片機內部由以下幾個邏輯部件組成:碼基
1)1個8位中央處理單元CPU;
2)1個片內絕清振盪器及時鍾發生器;
3)128B的數據RAM;
3)21個特殊功能寄存器SFR;
5)4KB程序ROM;
6)4個8位I/O並行埠P0----P3;
7)1個全雙工竄行埠;
8)2個16位可編程定時計數器T1、T2;
9)1個可管理5個中斷源、2級優先嵌套的中斷管理系統;
10)1個可定址64KB外部程序ROM和64KB外部數據RAM空間的控制電路;
ANL邏輯與運算、ORL邏輯或運算、XRL是邏輯異或指令!根據這些運算來作判斷控制!當然還有加、減、乘、除。以上是MSC單片機的邏輯功能並模前!
Ⅱ MSC-51單片機交通燈論文
單片機交通燈控制系統設計--帶模擬的論文編號:JD943 論文字數:7687,頁數:29摘要
本設計是交通信號燈控制系統,隨著社會的不斷的進步,社會的不斷發展。交通也日漸復雜,交通的自動化也不斷更新,交通的一些指揮系統光靠人來完成是遠遠不夠的,這就需要設計各種交通指揮自動化系統來完成這些復雜的工作。從而使交通指揮系統更加有秩序,更加安全。至此本人設計了交通信號燈控制系統,來指揮十字路口車輛的停通,使紅綠燈指揮系統實現自動化,無人化。
該交通燈控制系統控制的是東西和南北兩個方向上的車輛通行,系統共採用6個發光二極體來模擬各路交通信號燈,4個LED七段數碼管以倒計時的方式顯示各個方向上允許通行或禁止通行的信號燈剩餘的時間。停35S,准備5S,之後通行30S,並在東西和南北兩個方向上這兩種狀態不斷循環。此系統核心元件為單片機AT89C51,單片機)的低電壓,高性能CMOS8位微處理器,俗稱單片機。該器件採用ATMEL高密度非易失存儲器製造技術製造,與工業標準的MCS-51指令集和輸出管腳相兼容。由於將多功能8位CPU和閃爍存儲器組合在單個晶元中,ATMEL的AT89C51是一種高效微控制器,為很多嵌入式控制系統提供了一種靈活性高且價廉的方案。對其編寫相關程序來控制交通信號燈和數碼管的時間顯示,並採用外部中斷來控制緊急情況。此設計的硬體電路不是很復雜,關鍵在於軟體的設計,即程序的編寫。本設計採用的程序編寫語言為現在流行的C語言,簡單又便於閱讀。編寫程序的原則是:1.滿足設計的要求。2.盡量採用最好,最有效的演算法。3.編寫時應盡量用最簡潔的語言。編寫好源程序後,採用keil軟體對其進行編譯,使其生成單片機可以識別的.hex文件,再把此文件導入單片機89C51中即可。
硬體電路和源程序及目標文件都設計完後,我們可以採用相關軟體進行模擬,以使交通信號燈控制系統的設計更加准確,可靠。設計者採用PROTUES軟體進行模擬調試,模擬時注意此軟體使用,從而進一步熟悉並學習此軟體。模擬成功後,就做好本次設計報告,寫出此次設計的心得與體會。
關鍵詞:交通指示燈;單片機;控制
目錄
1 概述 3
1.1 交通燈設計方案選擇與論證: 3
1.2設計要求及目的: 3
1.2.1基本要求: 3
1.2.2提高要求: 3
1.2.3設計目的: 4
1.3交通燈控制系統的簡單說明: 4
2 系統總體方案及硬體設計 5
2.1 硬體電路各元件介紹: 5
2.1.1核心晶元AT89C51單片機的說明 5
2.1.2兩位八段式數碼管 7
2.1.3其它元件的說明 9
2.2總電路的設計及過程說明 10
2.2.1設計基本框架圖:(如圖6所示) 10
2.2.2總體電路的工作原理: 10
2.2.3各埠控製作用: 11
2.2.4復位和時鍾電路: 12
2.3設計思想: 13
3 軟體設計 14
3.1交通燈狀態的分析: 14
3.2主程序流程圖:(如圖一,圖二所示) 15
3.3中斷程序流程圖:(如圖三所示) 17
4 Proteus軟體模擬 18
4.1模擬過程: 18
(1)南北紅,東西綠 18
4.2檢測與調試: 20
5課程設計體會 22
5.1心得體會: 22
參考文獻 22
附1:源程序代碼 23
附2:系統原理圖 28 答案來自:http://www.lwtxw.com/html/42-5/5746.htm
Ⅲ MSC51和89C51有什麼區別
MCS51系列單片機是美國Intel公司於1980年推出的一種8位單片機系列。該系列的基本型產品是8051、8031和8751。這3種產品之間的區別只是在片內程序存儲器方面。8051的片內程序存儲器(ROM)是掩膜型的,即在製造晶元時已將應用程序固化進去;8031片內沒有程序存儲器;8751內部包含有用作程序存儲器的4KB的EPROM。由於8051的編程需要製造商的支持,8751的價格昂貴,因此8031獲得了更為廣泛的使用。
89c51是msc51系列中的一個成員。如果只是編程的話,完全可以通過該書來學習;如果需要自己設計電路的話,還需要去閱讀89c51的datasheet。
Ⅳ msc51單片機控制器:背後的魔法
msc51單片機控制器由一系列精密的部件組成,包括指令寄存器、指令解碼器、復位電路、時鍾發生器等。本文將深入探究這些部件的工作原理,幫助讀者更好地了解msc51單片機控制器。
📝指令寄存器和指令解碼器
指令寄存器和指令解碼器是msc51單片機控制器的核心部件。指令寄存器存儲指令代碼,指令解碼器將指令代碼翻譯成可執行的操作碼。
🕰️時鍾發生器
時鍾發生器是msc51單片機控制器的重要組成部分。它有兩種模式:內部方式和外部方式。內部方式利用內部的振盪電路和石英晶振,而外部方式則直接接收0.5~16mhz的外部振盪信號。
🔌復位電路
復位電路是msc51單片機控制器的保障。它確保系統始終從穩定狀態開始運行。無論是上電、人工還是系統復位,都能確保系統的穩定運行。但請注意,如果cpu和外部i/o介面不同步,可能會出現問題。這時,可以通過延時初始化或調整復位電路來解決。
⏰定時功能
別忘了cpu的定時功能。從振盪周期到機器周期,每一個環節都有其獨特的意義。一條指令的執行時間,也就是指令周期,可以是一個或多個機器周期。
Ⅳ 8031和8051主要有什麼區別各有什麼特點
健康貝貝BABY 魔法學徒 一級(32) | 我的提問 | 我的回答 | 個人中心 | 退出 資訊 網頁 貼吧 知道 MP3 圖片 網路 幫助
單片機 8031
生產廠家:Intel公司
特性:
8031單片機是Intel公司生產的MCS-51系列單片機中的一種,除無片內ROM外,其餘特性與MCS-51單片機基本一樣。
MCS-51單片機的引腳描述及片外匯流排結構
一、晶元的引腳描述
HMOS製造工藝的MCS-51單片機都採用40引腳的直插封裝(DIP方式),製造工藝為CHMOS的80C51/80C31晶元除採用DIP封裝方式外,還採用方型封裝工藝,引腳排列如圖。其中方型封裝的CHMOS晶元有44隻引腳,但其中4隻引腳(標有NC的引腳1、12、23、34)是不使用的。在以後的討論中,除有特殊說明以外,所述內容皆適用於CHMOS晶元。
如圖,是MCS-51的邏輯符號圖。在單片機的40條引腳中有2條專用於主電源的引腳,2條外接晶體的引腳,4條控制或與其它電源復用的引腳,32條輸入/輸出(I/O)引腳。
下面按其引腳功能分為四部分敘述這40條引腳的功能。
1、主電源引腳VCC和VSS
VCC——(40腳)接+5V電壓;
VSS——(20腳)接地。
2、外接晶體引腳XTAL1和XTAL2
XTAL1(19腳)接外部晶體的一個引腳。在單片機內部,它是一個反相放大器的輸入端,這個放大器構成了片內振盪器。當採用外部振盪器時,對HMOS單片機,此引腳應接地;對CHMOS單片機,此引腳作為驅動端。
XTAL2(18腳)接外晶體的另一端。在單片機內部,接至上述振盪器的反相放大器的輸出端。採用外部振盪器時,對HMOS單片機,該引腳接外部振盪器的信號,即把外部振盪器的信號直接接到內部時鍾發生器的輸入端;對XHMOS,此引腳應懸浮。
3、控制或與其它電源復用引腳RST/VPD、ALE/PROG、PSEN和EA/VPP
①RST/VPD(9腳)當振盪器運行時,在此腳上出現兩個機器周期的高電平將使單片機復位。推薦在此引腳與VSS引腳之間連接一個約8.2k的下拉電阻,與VCC引腳之間連接一個約10μF的電容,以保證可靠地復位。
VCC掉電期間,此引腳可接上備用電源,以保證內部RAM的數據不丟失。當VCC主電源下掉到低於規定的電平,而VPD在其規定的電壓范圍(5±0.5V)內,VPD就向內部RAM提供備用電源。
②ALE/PROG(30腳):當訪問外部存貯器時,ALE(允許地址鎖存)的輸出用於鎖存地址的低位位元組。即使不訪問外部存儲器,ALE端仍以不變的頻率周期性地出現正脈沖信號,此頻率為振盪器頻率的1/6。因此,它可用作對外輸出的時鍾,或用於定時目的。然而要注意的是,每當訪問外部數據存儲器時,將跳過一個ALE脈沖。ALE端可以驅動(吸收或輸出電流)8個LS型的TTL輸入電路。
對於EPROM單片機(如8751),在EPROM編程期間,此引腳用於輸入編程脈沖(PROG)。
③PSEN(29腳):此腳的輸出是外部程序存儲器的讀選通信號。在從外部程序存儲器取指令(或常數)期間,每個機器周期兩次PSEN有效。但在此期間,每當訪問外部數據存儲器時,這兩次有效的PSEN信號將不出現。PSEN同樣可以驅動(吸收或輸出)8個LS型的TTL輸入。
④EA/VPP(引腳):當EA端保持高電平時,訪問內部程序存儲器,但在PC(程序計數器)值超過0FFFH(對851/8751/80C51)或1FFFH(對8052)時,將自動轉向執行外部程序存儲器內的程序。當EA保持低電平時,則只訪問外部程序存儲器,不管是否有內部程序存儲器。對於常用的8031來說,無內部程序存儲器,所以EA腳必須常接地,這樣才能只選擇外部程序存儲器。
對於EPROM型的單片機(如8751),在EPROM編程期間,此引腳也用於施加21V的編程電源(VPP)。
4、輸入/輸出(I/O)引腳P0、P1、P2、P3(共32根)
①P0口(39腳至32腳):是雙向8位三態I/O口,在外接存儲器時,與地址匯流排的低8位及數據匯流排復用,能以吸收電流的方式驅動8個LS型的TTL負載。
②P1口(1腳至8腳):是准雙向8位I/O口。由於這種介面輸出沒有高阻狀態,輸入也不能鎖存,故不是真正的雙向I/O口。P1口能驅動(吸收或輸出電流)4個LS型的TTL負載。對8052、8032,P1.0引腳的第二功能為T2定時/計數器的外部輸入,P1.1引腳的第二功能為T2EX捕捉、重裝觸發,即T2的外部控制端。對EPROM編程和程序驗證時,它接收低8位地址。
③P2口(21腳至28腳):是准雙向8位I/O口。在訪問外部存儲器時,它可以作為擴展電路高8位地址匯流排送出高8位地址。在對EPROM編程和程序驗證期間,它接收高8位地址。P2可以驅動(吸收或輸出電流)4個LS型的TTL負載。
④P3口(10腳至17腳):是准雙向8位I/O口,在MCS-51中,這8個引腳還用於專門功能,是復用雙功能口。P3能驅動(吸收或輸出電流)4個LS型的TTL負載。
作為第一功能使用時,就作為普通I/O口用,功能和操作方法與P1口相同。
作為第二功能使用時,各引腳的定義如表所示。
值得強調的是,P3口的每一條引腳均可獨立定義為第一功能的輸入輸出或第二功能。
表 P3各口線的第二功能定義
口線 引腳 第二功能
P3.0 10 RXD(串列輸入口)
P3.1 11 TXD(串列輸出口)
P3.2 12 INT0(外部中斷0)
P3.3 13 INT1(外部中斷1)
P3.4 14 T0(定時器0外部輸入)
P3.5 15 T1(定時器1外部輸入)
P3.6 16 WR(外部數據存儲器寫脈沖)
P3.7 17 RD(外部數據存儲器讀脈沖)
二、MCS-51單片機的片外匯流排結構
綜合上面的描述可知,I/O口線都不能當作用戶I/O口線。除8051/8751外真正可完全為用戶使用的I/O口線只有P1口,以及部分作為第一功能使用時的P3口。如圖,是MCS-51單片機按引腳功能分類的片外匯流排結構圖。
由圖我們可以看到,單片機的引腳除了電源、復位、時鍾接入,用戶I/O口外,其餘管腳是為實現系統擴展而設置的。這些引腳構成MCS-51單片機片外三匯流排結構,即:
①地址匯流排(AB):地址匯流排寬為16位,因此,其外部存儲器直接定址為64K位元組,16位地址匯流排由P0口經地址鎖存器提供8位地址(A0至A7);P2口直接提供8位地址(A8至A15)。
②數據匯流排(DB):數據匯流排寬度為8位,由P0提供。
③控制匯流排(CB):由P3口的第二功能狀態和4根獨立控制線RESET、EA、ALE、PSEN組成。
下表列出各個子系列的配製情況供讀則參考。
晶元種類 片內存儲器 中斷源 定時/計數器 串列口 電源消耗(mA) 製造工藝
ROM/EPROM RAM
8051(8751,8031) 4K 128 5 2 同、非同步方式,8位或10位可程序控制 125 HMOS
8052(8752,8032) 8K 256 6 3 同、非同步方式,8位或10位可程序控制 100 HMOS
80C51(87C51,80C31) 4K 128 5 2 同、非同步方式,8位或10位可程序控制 24 CHMOS
80C52(87C52,80C32) 8K 256 7 3 同、非同步方式,8位或10位可程序控制 24 CHMOS
8044(8744,8344) 4K 192 5 2 S.L.U 200 HMOS
MSC-51單片機中央處理器
中央處理器是單片機內部的核心部件,它決定了單片機的主要功能特性。中央處理器主要由運算部件和控制部件組成。下面我們把中央處理器功能模塊和有關的控制信號線聯系起來加以討論,並涉及相關的硬體設備(如振盪電路和時鍾電路)。
1、運算部件:它包括算術、邏輯部件ALU、布爾處理器、累加器ACC、寄存器B、暫存器TMP1和TMP2、程序狀態字寄存器PSW以及十進制調整電路等。運算部件的功能是實現數據的算術邏輯運算、位變址處理和數據傳送操作。
MCS-51單片機的ALU功能十分強,它不僅可對8位變數進行邏輯「與」、「或」、「異或」、循環、求補、清零等基本操作,還可以進行加、減、乘、除等基本運算。為了乘除運算的需要,設置了B寄存器。在執行乘法運算指令時,用來存放其中一個乘數和乘積的高8位數;在執行除法運算指令時,B中存入除數及余數。MCS-51單片機的ALU還具有一般微機ALU,如Z80、MCS-48所不具備的功能,即布爾處理功能。單片機指令系統中的布爾指令集、存儲器中的位地址空間與CPU中的位操作構成了片內的布爾功能系統,它可對位(bit)變數進行布爾處理,如置位、清零、求補、測試轉移及邏輯「與」、「或」等操作。在實現位操作時,借用了程序狀態標志器(PSW)中的進位標志Cy作為位操作的「累加器」。
運算部件中的累加器ACC是一個8位的累加器(ACC也可簡寫為A)。從功能上看,它與一般微機的累加器相比沒有什麼特別之處,但需要說明的是ACC的進位標志Cy就是布爾處理器進行位操作的一個累加器。
MCS-51單片機的程序狀態PSW,是一個8位寄存器,它包含了程序的狀態信息。
2、控制部件
控制部件是單片機的神經中樞,它包括時鍾電路、復位電路、指令寄存器、解碼以及信息傳送控制部件。它以主振頻率為基準發出CPU的時序,對指令進行解碼,然後發出各種控制信號,完成一系列定時控制的微操作,用來控制單片機各部分的運行。其中有一些控制信號線能簡化應用系統外圍控制邏輯,如控制地址鎖存的地址鎖存信號ALE,控製片外程序存儲器運行的片內外存儲器選擇信號EA,以及片外取指信號PSEN。
替換型號:80C31、8032、80C32。
8031最小系統板,全工藝雙面板,原與64路輸出板配套。
本人早期使用,全工藝雙面板,P1口由74xx244(可省略且搭接焊盤直接輸出)驅動,P3口直接輸出。74xx373鎖存驅動地址線,8031通過插座與74xx244層疊安裝,ROM2764通過插座與74xx373層疊安裝,晶振裝於底面,故面積僅4.8cm*7.2cm,原與由8隻74xx373鎖存、8隻ULN2804驅動組成的64路輸出板配套。
http://www.a-v-o.com/index/procts/mini8031/mini8031.htm
⊙8031用戶系統
根據調查研究.單片機應用系統大致可分為如下幾大類,
1.模擬量採集,模擬量輸出,PID調節,程序控制可選用我廠生產的SCB-31-5.
2.智能儀表,實時控制,顯示調整系數.可加選我廠生產的通用鍵盤顯示板.
3.特殊要求的用戶,可專為用戶設計加工專用的控制板.
☆SCB-31-5
1)資源配有
8031,74LS373,2764,6264,74LS139,8155,74LS04,MC1413,ADC0809,DAC0832
時鍾為6MHz.由以上硬體構成了一個最小的控制板板上提供了:
2764 EPROM 8K 地址為0000-1FFF 6264 ROM 8K 地址為4000-5FFF
I/0 P1口 地址為90 8155 命令口 地址為7900
A口 地址為 7901 B口 地址為7902 C口 地址為7903
定時器(低) 地址為7904 定時器(高) 地址為7905
256位元組RAM 地址為7800-78FF
0809 AD 地址為6800 0832 DA 地址為6000
2)硬體設計思想:
1.為使控制板能適應現場需要,提高抗干擾性能,解碼電路採用了片選法.
2.考慮到用戶能直接控制繼電器電路,在8155的PA1-PA7上配備MC1413,能直
接驅動50V,500MA以下的負載.
3.在使用電源上,採用單正+5V供電,以提高電源的穩定度,在整機設計時可
以忽略對電源引線的壓降所帶來的麻煩,同時也可以在系統中保持相對
的獨立性.
4.考慮到用戶可方便地增加各種功能,將所有數據匯流排,地址匯流排,控制總
線 I/O線全部引出.
3)SCB-31-5引線:
A面(元件面) B面(焊點面)
VCC A1 B1 VCC GND A2 B2 GND A3 B3 P0.0 P0.2 P0.4 P0.6 P1.0
P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 CS0 CS1 GND +12V
PB7 PB6 PB5 PB4 PB3 PB2 PB1 PB0 PA7 PA6
PA5 PA4 PA3 PA2 PA1 PA0 A4 A5 A6 A7 A8 A9 A10 A11
A12 A13 A14 A15 A16 A17 A18 A19 A20 A21 A22 A23 A24 A25 A26 A27
A28 A29 A30 A31 A32 A33 A34 A35 A36 B4 B5 B6 B7 B8 B9 B10
B11 B12 B13 B14 B15 B16 B17 B18 B19 B20 B21 B22 B23 B24 B25 B26
B27 B28 B29 B30 B31 B32 B33 B34 B35 B36
P0.1 P0.3 P0.5 P0.7 RXD P3.0 TXD P3.1 INT0 P3.2 INT1 P3.3
T0 P3.4 T1 P3.5 WR P3.6 RD P3.7 RESET GND -12V D/A
定時器出 定時器入
PC5 PC4 PC3 PC2 PC1 PC0 AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD0
4)SCB-31-5板上CZ1(DC2-20)引腳定義
1 CLK(ALE) 2 NC 3 WR 4 A0 5 D1 6 GND 7 RESET 8 NC
9 D7 10 GND 11 D6 12 D5 13 D4 14 D3 15 D2 16 D0
17 CS 18 RD 19 RESET 20 VCC
☆用開發機和SCB-31-5板聯機
1.連線
撥下SCB-31-5板上8031,用40線扁平模擬電纜連接SCB-31-5板和DICE系列開
發機.
2.讀寫RAM
DICE系列開發機進入P......態.SCB-31-5板上6264
地址為4000-5FFF,8155片內256個單元地址為7800-78FF
(1)寫6264或8155顯示內容
4000 XX 按 55 4000 55 按 NEXT 4001 XX 按 AA 4001 AA 按 NEXT
4002 XX 按 CC 40O2 CC
(2)讀6264或8155顯示內容
4000 按 ODRW 4000 55 按 NEXT 4001 AA 按 NEXT 4002 CC 按 NEXT
3.模擬
用戶程序在開發機內,進入模擬態P……態用戶程序假如為:
0000 904000 MOV DP TR,#4000H 0003 7488 MOV A , #88
0005 F0 MOVX @DPTR ,A 0006 A3 INC DPTR
0007 74FF MOV A,#OFFH 0009 FD MOVX @DPTR ,A
000A 80FE LP: SJMP LP
從0000地址開始執行單步,執行到000A,SCB-31-5板上6264片內4000H,4001H
中內容為88和FF.用非全速斷點,全速斷點,連續運行命令可得到同樣結果.
4.開發
把上述程序固化到EPROM或EEPROM中把該片插在SCB-31-5板上2764位置,
DICE系列開發機進入H……態,從0000H地址開始用連續運行,非全速斷點,
單步命令執行到000A地址,可得到模擬時同樣結果.
8031片內不帶程序存儲器ROM,使用時用戶需外接程序存儲器和一片邏輯電路373,外接的程序存儲器多為EPROM的2764系列。用戶若想對寫入到EPROM中的程序進行修改,必須先用一種特殊的紫外線燈將其照射擦除,之後再可寫入。寫入到外接程序存儲器的程序代碼沒有什麼保密性可言。
數字移相技術的分析和實現
--------------------------------------------------------------------------------
摘要:兩個同頻信號之間的移相,是電子行業繼電保護領域中模擬、分析事故的一個重要手段,利用移相原理可以製作校驗各種有關相位的儀器儀表、繼電保護裝置的信號源。因此,移相技術有著廣泛的實用價值。本文介紹兩種基於單片機的數字移相方法,藉以說明實現移相的原理,並對兩種移相方法進行性能分析和比較。
關鍵詞:移相 單片機 D/A轉換 計數器
兩個同頻信號之間的移相與實現方式
所謂移相是指兩種同頻的信號,以其中的一路為參考,另一路相對於該參考作超前或滯後的移動,即稱為是相位的移動。兩路信號的相位不同,便存在相位差,簡稱相差。若我們將一個信號周期看作是3600,則相差的范圍就在0°~360°。
要實現移相,通常有兩個途徑:
一是直接對模擬信號進行移相,如阻容移相,變壓器移相等,早期的移相通常採用這種方式。採用這種方式製造的移相器有許多不足之處,如:輸出波形受輸入波形的影響,移相操作不方便,移相角度隨所接負載和時間等因素的影響而產生漂移等.在此不予討論.另一個是隨電子技術的發展,特別是單片機技術的發展而興起的數字移相技術,是目前移相技術的潮流。數字移相技術的核心是:先將模擬信號或移相角數字化,經移相後再還原成模擬信號。
數字移相主要有兩種形式:
一種是先將正弦波信號數字化成,並形一張數據表存入ROM晶元中,此後可通過兩片D/A轉換晶元在單片機的控制下連續地循環輸出該數據表,就可獲得兩路正弦波信號,當兩片D/A轉換晶元所獲得的數據序列完全相同時,則轉換所得到的兩路正弦波信號無相位差,稱為同相。當兩片D/A轉換晶元所獲得的數據序列不同時,則轉換所得到的兩路正弦波信號就存在著相位差。相位差的值與數據表中數據的總個數及數據地址的偏移量有關。這種處理方式的實質是將數據地址的偏移量映射為信號間的相位值。
另一種是先將參考信號整形為方波信號,並以此信號為基準,延時產生另一個同頻的方波信號,再通過波形變換電路將方波信號還原成正弦波信號。以延時的長短來決定兩信號間的相位值。這種處理方式的實質是將延時的時間映射為信號間的相位值。
利用D/A轉換實現移相
圖1給出了一個設計實例。單片機為8031,D/A轉換晶元採用兩片8位字長的DAC0832,由於DAC0832的輸出信號為電流型,故需加運算放大器將電流型信號轉換成電壓型信號。該設計中運算放大器採用雙極型雙運放4558。轉換所用的數據為256個8位字長的數據,隨程序一起存入ROM存儲器中,即一個信號周期有256個轉換值。
在進行D/A轉換的程序中,數據表中數據共有256個,每兩個相鄰數據之間的相位差為360o÷256=1.4o。我們只需改變R1中的值就可改變兩路正弦波的相位差。程序中R1=8,故第一路正弦波滯後第二路正弦波1.4o×8=11.2o。
利用單片機進行方波信號的移相
利用單片機進行方波信號的移相則是數字移相的另一個途經,已有多種成功之作,有些偏重硬體,有些偏重軟體。總體說來,偏重硬體的精度較高,但製造及調試較復雜;偏重軟體,的結構簡單,成本較低,但往往精度受影響。本文介紹一種己獲得較為理想效果的設計。設計的原理框圖如圖2所示。
工作原理:作為參考信號的A,經整形後得到方波信號a,再利用鎖相技術對a作3600倍頻,並將此倍頻信號作為單片機中CTC的計數脈沖,以此來產生相移和測量移相的實際值。由於計數脈沖是通過鎖相環產生的,在鎖相環允許的頻率范圍內,計數脈沖始終是a信號的3600倍,因此,可以看成是將a信號的一個信號周期分為了3600份,且允許a的頻率可在一個小的范圍內波動。若一個信號周期為360o,那麼在一個信號周期內每個計數脈沖即代表0.1o。我們只需以a信號為參考,延時若干個計數脈沖的時間來產生c信號即可做到移相,改變延時計數脈沖的個數即可改變移相值,亦可記錄兩個信號的上沿(或下沿)間的脈沖個數來獲得兩信號的相位差。正是由於鎖相環的存在,才使得移相信號B與參考信號A的頻率完全相同。比起由軟體測得A信號的周期後再來產生B信號的方式來,其精度要高得多。鎖相環倍頻的頻率愈高則移相的最小單位愈小,若作7200倍頻,那麼在一個信號周期內每個計數脈沖即代表0.05o。
圖3是以上述方式進行移相的時序圖,設計數脈沖的頻率是a信號的360o倍,那麼從a信號的上沿開始經N個計數脈沖後產生c信號的上沿,則有a信號超前c信號 N×0.1o。但我們需要的是A信號與B信號之間的移相。A信號與a信號的相位是相同的,但c信號與B信號的相位,由於波形轉換電路的存在而不相同,其相位差視波形轉換電路的參數而定。故A信號與B信號之間的實際移相值無法由N×0.1o來計算。要獲得A信號與B信號之間的實際移相值,可將B信號整形成b信號(兩信號相位相同)後反饋給單片機,由單片機測量出a信號與b信號之間的計數脈沖個數n即可,實際移相值為n×0.10。改變N的值即可改變移相值。
要實現上述設計,除需要用鎖相環產生計數脈沖外,還需要三個16位的計數器,分別用來計N,n及180o的值。筆者將8032中的計數器作如下分配:T0計N的值、T1計n的值、T2計180o的值。T0、T1及T2的啟停全部由中斷服務程序控制。接線如圖2所示。具體是:
① a信號的上沿產生INT0中斷,其中斷服務程序分別將-N及0賦給TH0TL0和TH1TL1;然後使T0、T1開始計數。
② T0歸零,其中斷服務程序關閉T0;置P3.0;-1800賦TH2TL2;使T2開始計數。
③ T2歸零,其中斷服務程序清P3.0;關閉T2。
④ b信號的上沿產生INT0中斷,其中斷服務程序關閉T1;讀取TH1TL1的計數值n。
兩種移相方式的性能比較
通過以上介紹,我們可以看出:以D/A轉換方式實現的移相,雖然所用元件少,但輸出信號的頻率難以細調,特別是移相的最小單位太大(1.4o/步)。在50Hz頻率下,要達到0.1o/步移相細度難以辦到。因此,該方式只適合於對頻率要求不高,且移相角度固定的場合。
以延時輸出方波的方式實現的移相,其硬體電路比較復雜(鎖相及波形變換電路)。輸出信號的頻率以參考信號的頻率為准,而參考信號的頻率則可以精確給定。移相的最小單位可小於0.1o/步,這就為無級移相提供了基礎。因此,該方式可用於對頻率要求高,且需360o無級移相的場合。