導航:首頁 > 操作系統 > 單片機模擬電路元件對齊功能

單片機模擬電路元件對齊功能

發布時間:2025-06-29 01:46:58

『壹』 請各位高手講解一下單片機中ADC模塊中的數據左對齊和右對齊是啥意思把大概的工作原理講下啦.謝謝啦!

一般高於八位的ADC才會出現這種情況
比如說AD轉換後數字量保存在ADCH,ADCL兩個寄存器中
左對齊就是AD值的最高位就是ADCH的最高位了,ADCL的低位就會有的用不到,讀出來就為0
右對齊就是AD值的最低位是ADCL的最低位,而ADCH的高位就會有的用不到,讀出來也為0
左對齊:11111111 11110000
MSB LSB
右對齊:00001111 11111111
MSB LSB

『貳』 懇求各位高手:幫忙看一下這個單片機課設題目唄。題目為 ADC0808轉換 謝謝!謝謝!

27. ADC0809A/D轉換器基本應用技術
1. 基本知識
ADC0809是帶有8位A/D轉換器、8路多路開關以及微處理機兼容的控制邏輯的CMOS組件。它是逐次逼近式A/D轉換器,可以和單片機直接介面。
(1). ADC0809的內部邏輯結構

由上圖可知,ADC0809由一個8路模擬開關、一個地址鎖存與解碼器、一個A/D轉換器和一個三態輸出鎖存器組成。多路開關可選通8個模擬通道,允許8路模擬量分時輸入,共用A/D轉換器進行轉換。三態輸出鎖器用於鎖存A/D轉換完的數字量,當OE端為高電平時,才可以從三態輸出鎖存器取走轉換完的數據。
(2). 引腳結構
IN0-IN7:8條模擬量輸入通道
ADC0809對輸入模擬量要求:信號單極性,電壓范圍是0-5V,若信號太小,必須進行放大;輸入的模擬量在轉換過程中應該保持不變,如若模擬量變化太快,則需在輸入前增加采樣保持電路。
地址輸入和控制線:4條
ALE為地址鎖存允許輸入線,高電平有效。當ALE線為高電平時,地址鎖存與解碼器將A,B,C三條地址線的地址信號進行鎖存,經解碼後被選中的通道的模擬量進轉換器進行轉換。A,B和C為地址輸入線,用於選通IN0-IN7上的一路模擬量輸入。通道選擇表如下表所示。
C B A 選擇的通道
0 0 0 IN0
0 0 1 IN1
0 1 0 IN2
0 1 1 IN3
1 0 0 IN4
1 0 1 IN5
1 1 0 IN6
1 1 1 IN7
數字量輸出及控制線:11條
ST為轉換啟動信號。當ST上跳沿時,所有內部寄存器清零;下跳沿時,開始進行A/D轉換;在轉換期間,ST應保持低電平。EOC為轉換結束信號。當EOC為高電平時,表明轉換結束;否則,表明正在進行A/D轉換。OE為輸出允許信號,用於控制三條輸出鎖存器向單片機輸出轉換得到的數據。OE=1,輸出轉換得到的數據;OE=0,輸出數據線呈高阻狀態。D7-D0為數字量輸出線。
CLK為時鍾輸入信號線。因ADC0809的內部沒有時鍾電路,所需時鍾信號必須由外界提供,通常使用頻率為500KHZ,
VREF(+),VREF(-)為參考電壓輸入。
2. ADC0809應用說明
(1). ADC0809內部帶有輸出鎖存器,可以與AT89S51單片機直接相連。
(2). 初始化時,使ST和OE信號全為低電平。
(3). 送要轉換的哪一通道的地址到A,B,C埠上。
(4). 在ST端給出一個至少有100ns寬的正脈沖信號。
(5). 是否轉換完畢,我們根據EOC信號來判斷。
(6). 當EOC變為高電平時,這時給OE為高電平,轉換的數據就輸出給單片機了。
3. 實驗任務
如下圖所示,從ADC0809的通道IN3輸入0-5V之間的模擬量,通過ADC0809轉換成數字量在數碼管上以十進制形成顯示出來。ADC0809的VREF接+5V電壓。
4. 電路原理圖

圖1.27.1
5. 系統板上硬體連線
(1). 把「單片機系統板」區域中的P1埠的P1.0-P1.7用8芯排線連接到「動態數碼顯示」區域中的A B C D E F G H埠上,作為數碼管的筆段驅動。
(2). 把「單片機系統板」區域中的P2埠的P2.0-P2.7用8芯排線連接到「動態數碼顯示」區域中的S1 S2 S3 S4 S5 S6 S7 S8埠上,作為數碼管的位段選擇。
(3). 把「單片機系統板」區域中的P0埠的P0.0-P0.7用8芯排線連接到「模數轉換模塊」區域中的D0D1D2D3D4D5D6D7埠上,A/D轉換完畢的數據輸入到單片機的P0埠
(4). 把「模數轉換模塊」區域中的VREF端子用導線連接到「電源模塊」區域中的VCC端子上;
(5). 把「模數轉換模塊」區域中的A2A1A0端子用導線連接到「單片機系統」區域中的P3.4P3.5P3.6端子上;
(6). 把「模數轉換模塊」區域中的ST端子用導線連接到「單片機系統」區域中的P3.0端子上;
(7). 把「模數轉換模塊」區域中的OE端子用導線連接到「單片機系統」區域中的P3.1端子上;
(8). 把「模數轉換模塊」區域中的EOC端子用導線連接到「單片機系統」區域中的P3.2端子上;
(9). 把「模數轉換模塊」區域中的CLK端子用導線連接到「分頻模塊」區域中的/4端子上;
(10). 把「分頻模塊」區域中的CK IN端子用導線連接到「單片機系統」區域中的ALE端子上;
(11). 把「模數轉換模塊」區域中的IN3端子用導線連接到「三路可調壓模塊」區域中的VR1端子上;
6. 程序設計內容
(1). 進行A/D轉換時,採用查詢EOC的標志信號來檢測A/D轉換是否完畢,若完畢則把數據通過P0埠讀入,經過數據處理之後在數碼管上顯示。
(2). 進行A/D轉換之前,要啟動轉換的方法:
ABC=110選擇第三通道
ST=0,ST=1,ST=0產生啟動轉換的正脈沖信號
7. 匯編源程序
CH EQU 30H
DPCNT EQU 31H
DPBUF EQU 33H
GDATA EQU 32H
ST BIT P3.0
OE BIT P3.1
EOC BIT P3.2

ORG 00H
LJMP START
ORG 0BH
LJMP T0X
ORG 30H
START: MOV CH,#0BCH
MOV DPCNT,#00H
MOV R1,#DPCNT
MOV R7,#5
MOV A,#10
MOV R0,#DPBUF
LOP: MOV @R0,A
INC R0
DJNZ R7,LOP
MOV @R0,#00H
INC R0
MOV @R0,#00H
INC R0
MOV @R0,#00H
MOV TMOD,#01H
MOV TH0,#(65536-4000)/256
MOV TL0,#(65536-4000) MOD 256
SETB TR0
SETB ET0
SETB EA
WT: CLR ST
SETB ST
CLR ST
WAIT: JNB EOC,WAIT
SETB OE
MOV GDATA,P0
CLR OE
MOV A,GDATA
MOV B,#100
DIV AB
MOV 33H,A
MOV A,B
MOV B,#10
DIV AB
MOV 34H,A
MOV 35H,B
SJMP WT
T0X: NOP
MOV TH0,#(65536-4000)/256
MOV TL0,#(65536-4000) MOD 256
MOV DPTR,#DPCD
MOV A,DPCNT
ADD A,#DPBUF
MOV R0,A
MOV A,@R0
MOVC A,@A+DPTR
MOV P1,A
MOV DPTR,#DPBT
MOV A,DPCNT
MOVC A,@A+DPTR
MOV P2,A
INC DPCNT
MOV A,DPCNT
CJNE A,#8,NEXT
MOV DPCNT,#00H
NEXT: RETI
DPCD: DB 3FH,06H,5BH,4FH,66H
DB 6DH,7DH,07H,7FH,6FH,00H
DPBT: DB 0FEH,0FDH,0FBH,0F7H
DB 0EFH,0DFH,0BFH,07FH
END

8. C語言源程序
#include <AT89X52.H>
unsigned char code dispbitcode[]={0xfe,0xfd,0xfb,0xf7,
0xef,0xdf,0xbf,0x7f};
unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,0x66,
0x6d,0x7d,0x07,0x7f,0x6f,0x00};
unsigned char dispbuf[8]={10,10,10,10,10,0,0,0};
unsigned char dispcount;

sbit ST=P3^0;
sbit OE=P3^1;
sbit EOC=P3^2;
unsigned char channel=0xbc;//IN3
unsigned char getdata;

void main(void)
{
TMOD=0x01;
TH0=(65536-4000)/256;
TL0=(65536-4000)%256;
TR0=1;
ET0=1;
EA=1;

P3=channel;

while(1)
{
ST=0;
ST=1;
ST=0;
while(EOC==0);
OE=1;
getdata=P0;
OE=0;
dispbuf[2]=getdata/100;
getdata=getdata%10;
dispbuf[1]=getdata/10;
dispbuf[0]=getdata%10;
}
}

void t0(void) interrupt 1 using 0
{
TH0=(65536-4000)/256;
TL0=(65536-4000)%256;
P1=dispcode[dispbuf[dispcount]];
P2=dispbitcode[dispcount];
dispcount++;
if(dispcount==8)
{
dispcount=0;
}
}

『叄』 Proteus 是什麼

Proteus是目前最好的模擬單片機外圍器件的工具,真的很不錯。可以模擬51 系列、AVR,PIC 等常用的MCU 及其外圍電路(如LCD,RAM,ROM,鍵盤,馬達,LED,AD/DA,部分SPI 器件,部分IIC 器件,...) 其實proteus 與 multisim比較類似,只不過它可以模擬MCU!當然,軟體模擬精度有限,而且不可能所有的器件都找得到相應的模擬模型,用開發板和模擬器當然是最好選擇,可是估計初學者有的可能性比較小吧?如果你在學51 單片機,如果你想自己動手做做LCD,LED,AD/DA,直流馬達,SPI,IIC,鍵盤,...的小實驗的話,試一下吧,不會讓你失望的! 用51 不管你是用匯編或是C 編程當然要用keil 啦,uvisoin3 有不少新特性呢! 使用keil c51 v7.50 + proteus 6.7 可以像使用模擬器一樣調試程序,一般而言,微機實驗中用萬利模擬器+電工系自己做的實驗板的實驗都可以做得到吧! 當然,硬體實踐還是必不可少的!!!

本方案只是在沒有硬體的情況下讓你能像pspice 模擬模擬/數字電路那樣模擬MCU 及外圍電路。另外,即使有硬體,在程序編寫早期用軟體模擬一下也不錯的!

1 Proteus 介紹
Proteus 與其它單片機模擬軟體不同的是,它不僅能模擬單片機CPU 的工作情況,也能模擬單片機外圍電路或沒有單片機參與的其它電路的工作情況。因此在模擬和程序調試時,關心的不再是某些語句執行時單片機寄存器和存儲器內容的改變,而是從工程的角度直接看程序運行和電路工作的過程和結果。對於這樣的模擬實驗,從某種意義上講,是彌補了實驗和工程應用間脫節的矛盾和現象。

(1)proteus 的工作過程
運行proteus 的ISIS 程序後,進入該模擬軟體的主界面。在工作前,要設置view 菜單下的捕捉對齊和system下的顏色、圖形界面大小等項目。通過工具欄中的p(從庫中選擇元件命令)命令,在pick devices 窗口中選擇電路所需的元件,放置元件並調整其相對位置,元件參數設置,元器件間連線,編寫程序;在source 菜單的Definecode generation tools 菜單命令下,選擇程序編譯的工具、路徑、擴展名等項目;在source 菜單的Add/removesource files 命令下,加入單片機硬體電路的對應程序;通過debug 菜單的相應命令模擬程序和電路的運行情況。

(2)Proteus 軟體所提供的元件資源Proteus 軟體所提供了30 多個元件庫,數千種元件。元件涉及到數字和模擬、交流和直流等。

(3)Proteus 軟體所提供的儀表資源
對於一個模擬軟體或實驗室,測試的儀器儀表的數量、類型和質量,是衡量實驗室是否合格的一個關鍵因素。在Proteus 軟體包中,不存在同類儀表使用數量的問題。Proteus 還提供了一個圖形顯示功能,可以將線路上變化的信號,以圖形的方式實時地顯示出來,其作用與示波器相似但功能更多。

(4)Proteus 軟體所提供的調試手段
Proteus 提供了比較豐富的測試信號用於電路的測試。這些測試信號包括模擬信號和數字信號。對於單片機硬體電路和軟體的調試,Proteus 提供了兩種方法:一種是系統總體執行效果,一種是對軟體的分步調試以看具體的執行情況。
對於總體執行效果的調試方法,只需要執行debug 菜單下的execute 菜單項或F12 快捷鍵啟動執行,用debug菜單下的pause animation 菜單項或pause 鍵暫停系統的運行;或用debug 菜單下的stop animation 菜單項或shift-break 組合鍵停止系統的運行。其運行方式也可以選擇工具欄中的相應工具進行。
對於軟體的分步調試,應先執行debug 菜單下的start/restart debugging 菜單項命令,此時可以選擇stepover 、step into 和 step out 命令執行程序(可以用快捷鍵F10、F11 和ctrl+F11),執行的效果是單句執行、進入子程序執行和跳出子程序執行。在執行了start / restart debuging 命令後,在debug 菜單的下面要出現模擬中所涉及到的軟體列表和單片機的系統資源等,可供調試時分析和查看。
2 實驗的組織
在單片機的理論教學和實驗中,所涉及到的內容包括了四方面,即單片機系統資源、軟體技術、硬體介面電路、軟體和硬體結合的應用系統。因此教師在進行教學時,應該充分考慮課程的特點並作合理的模塊劃分,在每次實驗課程前作適當的准備工作,以使教學任務能集中和突出。以下例子中所涉及到的單片機均為51 系列。

(1)系統資源的實驗教學
任何一種單片機均提供了一定的系統資源。對於51 系列單片機來講,其所提供的資源是以寄存器和存儲器的方式體現出來的。對於寄存器內容的查看,可以採用多種可以模擬模擬51 單片機的軟體來實現。對於Proteus軟體來講,可以執行在debug 菜單下registers 菜單項命令打開相應的窗口。對於系統內部存儲器的查看,同樣是執行debug 菜單下的 internal memory 菜單項命令打開相應的窗口。

(2)軟體技術
在軟體技術的實驗中所涉及到的內容主要包括對語言中具體語句的執行效果驗證、演算法的具體實現、程序中語法錯誤的檢查和邏輯錯誤的驗證等內容。對於純軟體的實驗教學內容,教師在實驗設置時應充分考慮到學生的能力並作好具體的准備工作,以達到預期的教學目的。例如,對於兩個16 位二進制數的乘法運算R4R5×R6R7=R3R4R5R6R7 的匯編語言實現。為了較為直觀地驗證程序執行的正確性,教師在之前應該設計一個硬體電路,能完成數據的輸入(帶顯示)和結果的輸出(顯示),並設計主程序、bcd 碼到二進制的轉換、二進制碼到bcd 碼的轉換、bcd 碼到顯示碼的轉換、顯示等程序的設計,學生只在實驗中進行乘法運算的演算法設計並作為子程序加入系統中即可。

(3)硬體介面電路
單片機的介面電路所涉及到的知識涵蓋了電子電路設計的相關領域,也涉及到單片機應用系統具體的工作需要。介面電路部分涉及到線路的連接、元器件的選擇、工作方式的設置、電路工作的穩定性和可靠性、電路的空間需求等等許多方面的知識和內容;但就學生實驗來講,所涉及到的並不需要這么全面。作為Proteus 模擬軟體,其模擬電路時所模擬的元件真實工作情況,和單片機應用系統的實際工作環境還是有一定的差別。因此只能根據教學的需要,讓學生自行設計電路並設置其工作方式。其實驗可以通過兩種方式組織實施,一是根據具體的要求,讓學生設計介面電路並編寫相應的程序;一是根據程序的要求,設計單片機介面電路。例如,對於鍵盤輸入和顯示(數碼管)介面電路的設計,可以採用比較多的方法來實現。選擇何種方法,與鍵盤中鍵的數量和數碼管的個數以及顯示的方式等都有關系。選擇一種採用幾種方法都能實現的鍵盤鍵數(如12個)和顯示位數(如4 位或4 位半),提出具體的諸如必須預留的口地址、成本控制等要求,讓學生自行設計介面電路。當然,對於如A/D 轉換等介面電路的設計,教師應該在事先設計出單片機電路的其它部分,並以模塊的方式進行處理,給學生提供電路的介面信號。

(4)軟體和硬體結合的應用系統
軟體和硬體的結合,就是一個單片機的應用系統了。這一步的實驗可以在課程設計中以課題的方式提出來處理,也可以將其分解成不同的介面部分在介面電路的多次實驗中分次完成。在這一階段,硬體電路的設計已經不是最為關鍵的了,而軟體系統的設計、調試和運行才是實驗的主要內容。因此可以以建議性的意見給出具體的硬體電路,並提出該電路所需要完成的具體工作,由學生進行軟體的設計和調試。

(5)觀摩實驗
學生自行設計的硬體系統和軟體,一般存在著某方面的不足,當給出了相應的實驗設計任務後,學生就算能順利的完成,但其中所涉及到的有些方式方法並不能在自己的設計中充分領悟。Protues 系統提供了相應的一些範例,比如單片機系統中的計算器示例,當教師講述了其中涉及到的所有(子)程序的功能並將其合理地組織在一起的時候,結合該系統的硬體,將對學生進行程序的設計和系統硬體的設計方法,產生比較大的影響。
3 用Proteus 軟體虛擬單片機實驗的優點
採用Proteus 模擬軟體進行虛擬單片機實驗,具有比較明顯的優勢,如涉及到的實驗實習內容全面、硬體投入少、學生可自行實驗、實驗過程中損耗小、與工程實踐最為接近等。當然其存在的缺點也是有的。

(1)內容全面
內容全麵包括其能實驗的內容包括軟體部分的匯編、C51 等語言的調試過程,也包括硬體介面電路中的大部分類型。對同一類功能的介面電路,可以採用不同的硬體來搭建完成,因此採用Protues 模擬軟體進行實驗教學,克服了用單片機實驗教學板教學中硬體電路固定、學生不能更改、實驗內容固定等方面的局限性,可以擴展學生的思路和提高學生的學習興趣。

(2)硬體投入少,經濟優勢明顯
對於傳統的採用單片機實驗教學板的教學實驗,由於硬體電路的固定,也就將單片機的CPU 和具體的介面電路固定了下來。在單片機的實際教學中,如果要涉及到51 系列,也要涉及到PIC16 系列,那麼為了教學必然要投入兩種單片機的實驗教學板;同時在教學過程中所涉及到的介面電路,也需要有較大的投入和儲備,以利於實驗的進行和在實驗過程中元件損毀後的更換。Protues 所提供的元件庫中,大部分可以直接用於介面電路的搭建,同時該軟體所提供的儀表,不管在質量還是數量上,都是可靠和經濟的。如果在實驗教學中投入這樣的真實的儀器儀表,僅儀表的維護來講,其工作量也是比較大的。因此採用軟體的方式進行教學,其經濟優勢是比較明顯的。

(3)學生可自行實驗,鍛煉解決實際工程問題的能力
實驗能力和實驗設計能力的培養,是工科學生解決實際工程問題能力中較為重要的。傳統的實驗教學中,忽視了學生實驗能力的培養,對於實驗設計能力的培養,則很少涉及到。因此學生學習了理論,要想將其應用到實際的工程實踐中,其難度是比較大的。還有,學生畢業後想對單片機控制技術或智能儀表等有較深的研究和學習,如果採用傳統的實驗教學方法,則學生需要購置的設備比較多,增加了他們學習和研究的投入。採用模擬軟體後,學習的投入變得比較的小,而實際工程問題的研究,也可以先在軟體環境中模擬通過,再進行硬體的投入,這樣處理,不僅省時省力,也可以節省因方案不正確所造成的硬體投入的浪費。

(4)實驗過程中損耗小,基本沒有元器件的損耗問題
在傳統的實驗教學過程中,都涉及到因操作不當而造成的元器件和儀器儀表的損毀,也涉及到儀器儀表等工作時所造成的能源消耗。採用Protues 模擬軟體進行的實驗教學,則不存在上述的問題,其在實驗的過程中是比較安全的。

(5)與工程實踐最為接近,可以了解實際問題的解決過程
在進行課程設計或進行大實驗的時候,可以具體的在Protues 中做一個工程項目,並將其最後移植到一個具體的硬體電路中,讓學生了解將模擬軟體和具體的工程實踐如何結合起來,利於學生對工程實踐過程的了解和學習。

(6)大量的範例,可供學生參考處理在系統的設計時,存在對已有資源的借鑒和引用處理,而該模擬系統所提供的較多的比較完善的系統設計方法和設計範例,可供學生參考和借鑒。同時也可以在原設計上進行修改處理。

(7)協作能力的培養和鍛煉
一個比較大的工程設計項目,是由一個開發小組協作完成的。了解和把握別人的設計意圖和思維模式,是團結協作的基礎。在Proteus 中進行模擬實驗時,所涉及到的內容並不全是學生獨立設計完成的,因此對於鍛煉學生的團結協作意識,是有好處的。

但是由於該軟體也有一定的缺陷,如果想學好單片機,還是要買一塊學習板來學學。。。不然,根本就入不了門!!!

『肆』 c8051f020介紹

Cygnal出的一種混合信號系統級單片機。片內含CIP-51的CPU內核,它的指令系統與MCS-51完全兼容。其中的C8051F020單片機含有64kB片內Flash程序存儲器,4352B的RAM、8個I/O埠共64根I/O口線、一個12位A/D轉換器和一個8位A/D轉換器以及一個雙12位D/A轉換器、2個比較器、5個16位通用定時器、5個捕捉/比較模塊的可編程計數/定時器陣列、看門狗定時器、VDD監視器和溫度感測器等部分。C8051F020單片機支持雙時鍾,其工作電壓范圍為2.7~3.6V(埠I/O,RST和JTAG引腳的耐壓為5V)。與以前的51系列單片機相比,C8051F020增添了許多功能,同時其可靠性和速度也有了很大提高。

閱讀全文

與單片機模擬電路元件對齊功能相關的資料

熱點內容
微信分享購買返現源碼 瀏覽:77
php中文網怎麼樣 瀏覽:572
比澤爾壓縮機圖片 瀏覽:281
伺服器地址應該怎麼填寫 瀏覽:964
滴滴的滴滴車主app是什麼意思 瀏覽:343
js虛擬機加密 瀏覽:299
美團雲的伺服器怎麼樣 瀏覽:997
linuxshh 瀏覽:93
為什麼要用md5加密 瀏覽:865
pdf檔案 瀏覽:778
怎樣在文件夾中創建點陣圖文件 瀏覽:873
ping地址段命令 瀏覽:872
命令與征服電視劇凱恩 瀏覽:940
復工系統源碼 瀏覽:844
極致配音的音頻文件在哪個文件夾 瀏覽:271
linuxcentos7配置 瀏覽:152
我的世界如何免費創造一個伺服器 瀏覽:999
wr指標源碼詳解 瀏覽:441
android讀取sd卡文件許可權 瀏覽:378
解壓全能王怎麼保存圖庫 瀏覽:62