導航:首頁 > 操作系統 > 單片機實驗二

單片機實驗二

發布時間:2022-04-25 02:28:54

單片機實驗注意事項

單片機開發規則與注意事項

隨著大規模集成電路技術的發展,單片微型計算機也隨之大發展,各種新穎的單片機層出不窮。單片機具有體積小、重量輕、應用靈活且價格低廉等特點,廣泛地應用於人類生活的各個領域,成為當今科學技術現代化不可缺少的重要工具。

單片機系統的開發融合了硬體和軟體的相關技術。要完成單片機系統的開發,用戶不僅需要掌握編程技術,還需要針對實際應用選擇合理的單片機晶元和外圍器件,以此為基礎,設計硬體電路。

正確估計單片機的能力,知道單片機能做什麼,最大程度的挖掘單片機的潛力對一個單片機系統設計者來說是至關重要的。單片機的能力的關鍵就在軟體設計者編寫的軟體上。只有充分地了解到單片機的能力,才不會做出「冗餘」的系統設計。而採用許多的外圍晶元來實現單片機能實現的功能。這樣做,即增加了系統成本,也可能會降低了系統的可靠性。

要完成單片機系統的開發,用戶不僅需要掌握編程技術,還需要針對實際應用選擇合理的單片機晶元和外圍器件,以此為基礎,設計硬體電路。

單片機開發規則與注意事項

設計滿足要求的最精簡的系統

正確估計單片機的能力,知道單片機能做什麼,最大程度的挖掘單片機的潛力對一個單片機系統設計者來說是至關重要的。單片機的能力的關鍵就在軟體設計者編寫的軟體上。只有充分地了解到單片機的能力,才不會做出「冗餘」的系統設計。而採用許多的外圍晶元來實現單片機能實現的功能。這樣做,即增加了系統成本,也可能會降低了系統的可靠性。

看門狗電路通常是一塊在有規律的時間間隔中進行更新的硬體。更新一般由單片機來完成,如果在一定間隔內沒能更新看門狗,那看門狗將產生復位信號,重新復位單片機。更新看門狗的具體形式多是給看門狗晶元相關引腳提供一個電平上升沿或讀寫它的某個寄存器。使用看門狗電路將在單片機發生故障進行死機狀態時,重新復位單片機,像EN8F154本身就帶有看門狗。

確定系統的復位信號可靠

一般在單片機的數據手冊(Datasheet)中都會提到該單片機需要的復位信號的要求。一般復位信號的寬度應為。復位電平的寬度和幅度都應滿足晶元的要求,並且要求保持穩定。還有特別重要的一點就是復位電平應與電源上電在同一時刻發生,即晶元一上電,復位信號就已產生。不然,由於沒有經過復位,單片機中的寄存器的值為隨機值,上電時就會按PC寄存器中的隨機內容開始運行程序,這樣很容易進行誤操作或進入死機狀態。

確定系統的初始化有效

系統中的晶元以及器件從上電開始到正常工作的狀態往往有一段時間,程序開始時延時一段時間,是讓系統中所有器件到達正常工作狀態。究竟延時多少才算合適?這取決於系統的各晶元中到達正常工作狀態的時間,通常以最慢的為准。一般來說,EN8F154的延時20-100毫秒已經足夠。對於系統中使用嵌入式MODEM等「慢熱」型的器件來說,則應更長。當然,這都需要在系統實際運行中進行調整。

當然,模擬是單片機開發過程中非常重要的一個環節,除了一些極簡單的任務,一般產品開發過程中都要進行模擬,模擬的主要目的是進行軟體調試,當然藉助模擬機,也能進行一些硬體排錯。一塊單片機應用電路板包括單片機部份及為達到使用目的而設計的應用電路,模擬就是利用模擬機來代替應用電路板(稱目標機)的單片機部份,對應用電路部份進行測試、調試。模擬有CPU模擬和ROM模擬兩種,所謂CPU模擬是指用模擬機代替目標機的CPU,由模擬機向目標機的應用電路部份供給各種信號、數據,進行調試的辦法。

Ⅱ 單片機有哪些設計實驗

51單片機的設計實驗比較多,先以下推薦幾個入門級的
1、流水燈實驗;
2、數碼管顯示實驗;
3、外部中斷實驗;
4、液晶屏1602或者12864實驗;
5、定時器實驗;

Ⅲ 單片機實驗 二進制到BCD轉換

51匯編不熟,給你寫個C的吧(轉非壓縮的BCD),加上注釋,你自己改成51匯編吧.

int i = 100; // i 用來做被除數,初值"100".
int idx = 0; // idx 用來確定存儲位置的偏移,初值"0".
while( i ) // 循環條件,被除數不為"0",則繼續循環.
{
Result[idx] = A / i; // Result 第 idx 偏移位置保存 A 整除 i 的值.
A -= Result[idx]*i; // A 的值 減 Result 第 idx 偏移位置 * i 的值.
i/=10; // 將 i 的值除以"10"
idx++; // Result的偏移值 加"1".
}

以上的思想是
A 整除 100 作為 百位上的BCD
(A-百位上的值) 整除 10 作為 十位上的BCD
(A-百位上的值和十位上的值) 作為個們上的BDC.

Ⅳ 單片機實驗

你只要知道怎麼控制IO就可以了。不知道你的LED是採用什麼方式接入P1口的,如果是LED正極經過限流電阻接正電源,負極接P1口的話,那麼就是當P1口某個引腳為低電平時,LED點亮。
這樣的話,你這個1357,2468不知道是先亮1,然後1滅了換3,在3滅換5亮。。還是1357同時亮,然後2468同時亮,不過我告訴你思路你自己就編程了

先使P1=0XFF這樣所有LED均熄滅。
然後因為1357實際對應的P1口IO是P1.0,P1.2,P1.4,P1.6, 那麼如果需要他們點亮,因為上面我說的是P1的某個IO為低電平,LED點亮,那麼給P1口我上面說的這幾個IO變為低電平就可以了。
即二進制的P1.7->P1.0(高->低)10101010.換算為16進制就是0XAA(如果是要1亮,然後變成1滅3亮。。。。這樣的話只需要P1.0先為低電平,即二進制的11111110 16進制的0xFE然後P1.0變為高電平P1.2為低電平,即二進制的11111011,16進制的0xFB,依次算出16進制對應的數,當7單獨亮時就是01111111,16進制的0x7F,2,4,6,8一樣,我就不在說了)
這樣讓P1口=0xAA就可以實現你所說的1,3,5,7亮了
同理,2,4,6,8就是P1.1,P1.3,P1.5,P1.7換算為二進制就是01010101即16進制的0x55.
讓P1口=0x55就可以了
另外因為單片機執行程序的速度很快,所以你如果是
P1=0XAA
P1=0X55這樣的話可以說你看來根本就是8個LED同時亮著。所以需要在每句下面加個延時函數使每個亮0.幾秒鍾,使眼睛可以看到他們的變化
所以要做個延時函數
void delay(unsigned char i)
{
unsigned char j,k;
for (j=i,j>0,j--)
{
for(k=255,k>0,k--);
}
}
調用時只需要給delay函數賦值就可以了
比如
P1=0XAA;
delay(200);
P1=0X55;
delay(200);
其他的就你自己寫了。。
我靠。。剛看你寫的是要匯編的。。
那麼上面P1=0XAA這些就要改成
MOV P1,#AAH
MOV P1,#55H
延時就需要這樣了
DELAY:
MOV R0,#200
DELAY1:
MOV R1,#255
DELAY:
DJNZ R1,DELAY
DJNZ R0,DELAY1
RET
這樣你上面就是
MAIN:
MOV P1,#AAH
CALL DELAY
MOV P1,#55H
CALL DELAY
SJMP MAIN

Ⅳ 急求:單片機實驗

:
ORG 0030H
MOV 30H, #34H
MOV 31H, #56H
MOV 32H, #23H
MOV 33H, #90H
MOV 34H, #32H
MOV 35H, #68H
MOV 36H, #09H
MOV 37H, #75H
CALL SORT
SJMP $
;-----------------------------------------------------
SORT: ;最簡短、高效的排序程序.
MOV B, #7 ;第一輪排序時,比較7次.
S1: MOV R0, #30H ;數據區的起始地址.
MOV R7, B
CLR PSW.5 ;清除"交換"標志位.
S2: MOV A, @R0 ;取前一個數.
INC R0
CLR C
SUBB A, @R0 ;減後一個數,前<後時,Cy=1
S3: JC S4 ;有借位時,不用交換,轉移.
MOV A, @R0 ;取後一個數,准備交換.
DEC R0
XCH A, @R0 ;交換到前一個.
INC R0
XCH A, @R0 ;交換到後一個.
SETB PSW.5 ;設定"交換"標志位.
S4: DJNZ R7, S2 ;繼續本輪比較.
JNB PSW.5, ENDS ;如本輪沒有進行過交換,可提前結束.
DJNZ B, S1 ;下一輪,比較次數少一次.
ENDS:
RET
;-----------------------------------------------------
END

Ⅵ 單片機實驗內容及結果分析

熟悉單片機的原理、結構;學好數電、模電,為設計電路打好基礎;熟練使用C語言,多學習他人的程序;對操作系統原理有一定的了解,Protel有一定的基礎;培養實際動手調試電路的能力。一般可以通過專業的書籍和課程進行持之以恆的學習,注意理論與實踐並重,遇到問題耐心檢查並適當投資購買實驗器材。

Ⅶ 單片機定時/計數器實驗2-脈沖計數器

這是個簡易頻率計,程序如下:

;---------------------------------

ORG0000H

JMPSTART

ORG000BH

JMPT0_INT

;---------------------------------

START:

MOVTMOD,#51H;/*01010001T1計數,T0定時*/

MOVTH0,#HIGH(65536-50000);50ms@12MHz

MOVTL0,#LOW(65536-50000)

MOVTH1,#0

MOVTL1,#0

SETBTR0

SETBTR1

SETBET0

SETBEA

MOVR7,#20

SJMP$

;---------------------------------

T0_INT:;50ms執行一次

MOVTL0,#LOW(65536-50000);重新寫入初始值

MOVTH0,#HIGH(65536-50000);50ms@12MHz

DJNZR7,T0_END

MOVR7,#20

MOVP1,TL1

MOVP2,TH1

MOVTL1,#0

MOVTH1,#0

T0_END:

RETI

;---------------------------------

用PROTEUS模擬如下圖。

圖中信號的頻率是5000Hz,顯示的1388是16進制,這是題目中要求的形式。

Ⅷ 單片機實驗數據排序

原發布者:瀚海湛藍
實驗一、數據排序實驗一、實驗目的熟悉8031指令系統,掌握程序設計方法。二、實驗內容編寫並調試一個排序子程序,其功能為用冒泡法將內部RAM中幾個單元位元組無符號的正整數,按從小到大的次序重新排列。三、實驗程序框圖NNN四、實驗步驟1把8032片內RAM區50H—5AH中放入不等的數據(用寄存器讀寫方法)。2用連續運行方式從起始地址0100H開始運行程序(輸入0100後按EXEC鍵)。3排序結束,顯示「P.」。4用寄存器讀寫方法檢查50—5AH中內容應從小到大排列。五、參考程序DORDE:MOVSP,#60H;設置棧指針MOVR3,#50HDORDE1:MOVA,R3MOVR0,A;數據指針傳送到R0MOVR7,#0AH;長度送到R7CLR00H;清零標志位MOVA,@R0DORDE2:INCR0MOVR2,ACLRC;清零進位標志MOV22H,@R0CJNEA,22H,DORDE3;是否相等SETBCDORDE3:MOVA,R2JCDORDE4;小於或等於不交換SETB00HXCHA,@R0DECR0XCHA,@R0;大於交換位置INCR0DORDE4:MOVA,@R0DJNZR7,DORDE2JB00H,DORDE1;未完繼續MOVR0,#7EH;完,關顯示器前三位MOVA,#0FFHMOVR4,#06HDORDE5:MOV@RO,ADECR0DJNZR4,DORDE5MOV7EH,#0CH

閱讀全文

與單片機實驗二相關的資料

熱點內容
漢語詞典pdf下載 瀏覽:351
android公網ip 瀏覽:611
要塞1地圖放哪個文件夾 瀏覽:848
凡科建站怎麼弄伺服器 瀏覽:939
蘋果手機怎麼設置app播放 瀏覽:202
下載網站源碼用什麼瀏覽器 瀏覽:241
六線譜pdf 瀏覽:156
linuxmysqlsock 瀏覽:239
人教版數學pdf下載 瀏覽:460
文檔安全加密系統 瀏覽:491
數控銑床編程簡單數字 瀏覽:788
編程電纜如何重啟 瀏覽:121
myqq命令行發消息 瀏覽:365
日產逍客怎麼使用app升窗 瀏覽:503
安卓系統怎麼快速刪除微信內容 瀏覽:653
csharppython 瀏覽:409
程序員脖子按摩儀 瀏覽:563
小米桌面文件夾亂碼怎麼回事 瀏覽:858
點歌台app怎麼連接 瀏覽:318
大學電腦編程學什麼好 瀏覽:348