版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
實驗1閃爍燈
實驗2模擬開關(guān)燈
實驗3多路開關(guān)狀態(tài)指示
實驗4廣告燈設計
實驗5廣告燈(利用取表方式)
實驗6報警器
實驗7I/O并行口直接驅(qū)動LED顯示
實驗8按鍵識別方法之一
實驗900~99計數(shù)器
實驗10動態(tài)數(shù)碼顯示技術(shù)第八章單片機應用實驗
1.實驗目的
2.實驗設備
3.實驗原理
(1)延時程序的設計方法。圖8-1所示石英晶體的晶振頻率為12MHz,因此,1個機器周期為1μs。實驗1閃爍燈機器周期微秒
MOVR6,#202個2
D1:
MOVR7,#2482個2
2+2×248=49820×498
DJNZR7,$2個2×248
+2+40
DJNZR6,D12個2×20=40
=10002
因此,上面的延時程序時間為10.002ms。
由以上可知,當R6=10、R7=248時,延時5ms;當R6=20、R7=248時,延時10ms。以此為基本的計時單位,如本實驗要求0.2s=200ms,10ms×R5=200ms,則R5=20,那么延時子程序如下:
DELAY:MOVR5,#20
D1:
MOVR6,#20
D2:MOVR7,#248
DJNZR7,$
DJNZR6,D2
DJNZR5,D1
RET
(2)輸出控制。如圖8-1所示,當P1.0端口輸出高電平,即P1.0=1時,根據(jù)發(fā)光二極管的單向?qū)щ娦钥芍?這時發(fā)光二極管L1熄滅;當P1.0端口輸出低電平,即P1.0=0時,發(fā)光二極管L1亮;我們可以使用SETB
P1.0指令使P1.0端口輸出高電平,使用CLR
P1.0指令使P1.0端口輸出低電平。圖8-1
4.實驗線路(見圖8-1)
5.實驗步驟
把“單片機系統(tǒng)”區(qū)域中的P1.0端口用導線連接到“8路發(fā)光二極管指示模塊”區(qū)域中的L1端口上。
6.程序框圖與參考程序
(1)程序框圖如圖8-2所示。圖8-2
(2)參考程序。
①匯編程序如下:
ORG0
START:CLRP1.0
LCALLDELAY
SETBP1.0
LCALLDELAY
LJMPSTART
DELAY:MOVR5,#20;延時子程序,延時0.2s
D1: MOVR6,#20
D2: MOVR7,#248
DJNZR7,$
DJNZR6,D2
DJNZR5,D1
RET
END②C語言源程序如下:
#include〈AT89X51.H〉
sbitL1=P1^0;
voiddelay02s(void)//延時0.2s子程序
{
unsignedchari,j,k;
for(i=20;i>0;i--)
for(j=20;j>0;j--)
for(k=248;k>0;k--);
}voidmain(void)
{
while(1)
{
L1=0;
delay02s();
L1=1;
delay02s();
}
}
1.實驗目的
2.實驗設備
3.實驗原理
(1)開關(guān)狀態(tài)的檢測過程。
(2)輸出控制。
4.實驗線路(見圖8-3)實驗2模擬開關(guān)燈圖8-3
5.實驗步驟
(1)把“單片機系統(tǒng)”區(qū)域中的P1.0端口用導線連接到“8路發(fā)光二極管指示模塊”區(qū)域中的L1端口上;
(2)把“單片機系統(tǒng)”區(qū)域中的P3.0端口用導線連接到“8路撥動開關(guān)”區(qū)域中的S1端口上。
6.程序框圖與參考程序
(1)程序框圖如圖8-4所示。圖8-4
(2)參考程序。
①匯編源程序如下:
ORG00H
START:JBP3.0,LIG
CLRP1.0
SJMPSTART
LIG:
SETBP1.0
SJMPSTART
ENDA②C語言源程序如下:
#include〈AT89X51.H〉
sbitK1=P3^0;
sbitL1=P1^0;
voidmain(void)
{
while(1)
{
if(K1==0)
{
L1=0;//燈亮
}
else
{
L1=1;//燈滅
}
}
}
1.實驗目的
2.實驗設備
3.程序原理
(1)開關(guān)狀態(tài)檢測。
(2)輸出控制。
4.實驗線路(見圖8-5)實驗3多路開關(guān)狀態(tài)指示圖8-5
5.實驗步驟
(1)把“單片機系統(tǒng)”區(qū)域中的P1.0~P1.3用導線連接到“8路發(fā)光二極管指示模塊”區(qū)域中的L1~L4端口上;
(2)把“單片機系統(tǒng)”區(qū)域中的P1.4~P1.7用導線連接到“8路撥動開關(guān)”區(qū)域中的S1~S4端口上。
6.程序框圖與參考程序
(1)程序框圖如圖8-6所示。圖8-6
(2)參考程序。
方法一:
①匯編源程序如下:
ORG00H
START:
MOVA,P1
ANLA,#0F0H
RRA
RRA
RRA
RRA
XORA,#0F0H
MOVP1,A
SJMPSTART
END②C語言源程序如下:
#include〈AT89X51.H〉
unsignedchartemp;
voidmain(void)
{
while(1)
{
temp=P1>>4;
temp=temp|0xf0;
P1=temp;
}
}方法二:
①匯編源程序如下:
ORG00H
START:
JBP1.4,NEXT1
CLRP1.0
SJMPNEX1
NEXT1:
SETBP1.0
NEX1:
JBP1.5,NEXT2
CLRP1.1
SJMPNEX2
NEXT2:
SETBP1.1
NEX2:
JBP1.6,NEXT3
CLRP1.2
SJMPNEX3 NEXT3:SETBP1.2
NEX3:
JBP1.7,NEXT4
CLRP1.3
SJMPNEX4
NEXT4:SETBP1.3
NEX4:SJMPSTART
END②C語言源程序如下:
#include〈AT89X51.H〉
voidmain(void)
{
while(1)
{
if(P1_4==0)
{
P1_0=0;
}
else{
P1_0=1;
}
if(P1_5==0)
{
P1_1=0;
}
else
{
P1_1=1;
}
if(P1_6==0)
{
P1_2=0;
}
else
{
P1_2=1;
}
if(P1_7==0)
{
P1_3=0;
}
else
{
P1_3=1;
}
}
}
1.實驗目的
(1)了解單片機最小系統(tǒng);
(2)熟悉并掌握P1口的使用方法;
(3)學習單片機實驗系統(tǒng)的使用方法和程序的調(diào)試方法。
2.實驗設備
單片機最小系統(tǒng)試驗箱,導線若干,計算機。實驗4廣告燈設計
3.實驗原理
我們可以通過執(zhí)行輸出端口指令MOV
P1,A或MOV
P1,#DATA,即可達到輸出控制的動作。
每次送出的數(shù)據(jù)不同,具體的數(shù)據(jù)如表所示。
4.實驗步驟
把“單片機系統(tǒng)”區(qū)域中的P1.0~P1.7用8芯排線連接到“8路發(fā)光二極管指示模塊”區(qū)域中的L1~L8端口上,要求:P1.0對應著L1,P1.1對應著L2,…,P1.7對應著L8。
5.實驗線路(見圖8-7)圖8-7
6.程序框圖和參考程序
(1)程序框圖如圖8-8所示。圖8-8
(2)參考程序。
①匯編源程序如下:
ORG0
START:MOVR2,#8
MOVA,#0FEH
SETBC
LOOP:
MOVP1,A
LCALLDELAY
RLCA
DJNZR2,LOOP
MOVR2,#8 LOOP1:
MOVP1,A
LCALLDELAY
RRCA
DJNZR2,LOOP1
LJMPSTART
DELAY:MOVR5,#20;
D1:
MOVR6,#20
D2:
MOVR7,#248
DJNZR7,$
DJNZR6,D2
DJNZR5,D1
RET
END②C語言源程序如下:
#include〈AT89X51.H〉
unsignedchari;
unsignedchartemp;
unsignedchara,b;
voiddelay(void)
{
unsignedcharm,n,s;
for(m=20;m>0;m--)
for(n=20;n>0;n--)
for(s=248;s>0;s--);
}voidmain(void)
{
while(1)
{
temp=0xfe;
P1=temp;
delay();
for(i=1;i<8;i++)
{
a=temp<<i;
b=temp>>(8-i);
P1=a|b;
delay();
}
for(i=1;i<8;i++)
{
a=temp>>i;
b=temp<<(8-i);
P1=a|b;
delay();
}
}
}
1.實驗目的
(1)了解單片機最小系統(tǒng):
(2)熟悉并掌握P1口的使用方法;
(3)學習單片機實驗系統(tǒng)的使用方法和程序的調(diào)試方法。
2.實驗設備
單片機最小系統(tǒng)試驗箱,導線若干,計算機。
3.實驗原理實驗5廣告燈(利用取表方式)
4.實驗線路(見圖8-9)
圖8-9
5.實驗步驟
把“單片機系統(tǒng)”區(qū)域中的P1.0~P1.7用8芯排線連接到“8路發(fā)光二極管指示模塊”區(qū)域中的L1~L8端口上,要求:P1.0對應著L1,P1.1對應著L2,…,P1.7對應著L8。
6.程序框圖與參考程序
(1)程序框圖如圖8-10所示。圖8-10
(2)參考程序。
①匯編源程序如下:
ORG0
START:MOVDPTR,#TABLE
LOOP:CLRA
MOVCA,@A+DPTR
CJNEA,#01H,LOOP1
JMPSTART
LOOP1:MOVP1,A
MOVR3,#20
LCALLDELAY
INCDPTR
JMPLOOP
DELAY:MOVR4,#20
D1:
MOVR5,#248
DJNZR5,$
DJNZR4,D1
DJNZR3,DELAY
RET TABLE:DB0FEH,0FDH,0FBH,0F7H
DB0EFH,0DFH,0BFH,07FH
DB0FEH,0FDH,0FBH,0F7H
DB0EFH,0DFH,0BFH,07FH
DB07FH,0BFH,0DFH,0EFH
DB0F7H,0FBH,0FDH,0FEH
DB07FH,0BFH,0DFH,0EFH
DB0F7H,0FBH,0FDH,0FEH
DB00H,0FFH,00H,0FFH
DB01H
END②C語言源程序如下:
#include〈AT89X51.H〉
unsignedcharcodetable[]={0xfe,0xfd,0xfb,0xf7,
0xef,0xdf,0xbf,0x7f,
0xfe,0xfd,0xfb,0xf7,
0xef,0xdf,0xbf,0x7f,
0x7f,0xbf,0xdf,0xef,
0xf7,0xfb,0xfd,0xfe,
0x7f,0xbf,0xdf,0xef,
0xf7,0xfb,0xfd,0xfe,
0x00,0xff,0x00,0xff,
0x01};
unsignedchari;voiddelay(void)
{
unsignedcharm,n,s;
for(m=20;m>0;m--)
for(n=20;n>0;n--)
for(s=248;s>0;s--);
}
voidmain(void)
{
while(1)
{
if(table[i]!=0x01)
{
P1=table[i];
i++;
delay();
}
else
{
i=0;
}
}
}
1.實驗目的
利用開關(guān)控制報警器,當開關(guān)閉合報警信號報警,當開關(guān)斷開告警信號停止,并編寫程序。
2.實驗設備
單片機最小系統(tǒng)試驗箱,導線若干,計算機。
3.實驗原理
500Hz音頻信號的周期為2ms,信號電平為每1ms變反1次;1kHz的信號周期為1ms,信號電平每500μs變反1次。實驗6報警器
4.實驗線路(見圖8-11)
圖8-11
5.實驗內(nèi)容與步驟
(1)把“單片機系統(tǒng)”區(qū)域中的P1.0端口用導線連接到“揚聲器模塊”區(qū)域中的MIC-IN端口上;
(2)把“單片機系統(tǒng)”區(qū)域中的P1.7/RD端口用導線連接到“8路撥動開關(guān)”區(qū)域中的S1端口上。
6.程序框圖與參考程序
(1)程序框圖如圖8-12所示。圖8-12
(2)參考程序。
①匯編源程序如下:
FLAG BIT00H
ORG00H
START:JBP1.7,START
JNBFLAG,NEXT
MOVR2,#200
DV:CPLP1.0
LCALLDELY500
LCALLDELY500
DJNZR2,DV
CPLFLAG NEXT: MOVR2,#200
DV1: CPLP1.0
LCALLDELY500
DJNZR2,DV1
CPLFLAG
SJMPSTART
DELY500:MOVR7,#250
LOOP: NOP
DJNZR7,LOOP
RET
END②C語言源程序如下:
#include〈AT89X51.H〉
#include〈INTRINS.H〉
bitflag;
unsignedcharcount;
voiddely500(void)
{
unsignedchari;
for(i=250;i>0;i--){
_nop_();
}
}
voidmain(void)
{
while(1)
{
if(P1_7==0)
{
for(count=200;count>0;count--){
P1_0=~P1_0;
dely500();
}
for(count=200;count>0;count--)
{
P1_0=~P1_0;
dely500();
dely500();
}
}
}
}
1.實驗目的
掌握LED數(shù)碼管的工作原理。
2.實驗設備
單片機最小系統(tǒng)實驗箱,計算機,導線若干。
實驗7I/O并行口直接驅(qū)動LED顯示
3.實驗原理
(1)LED數(shù)碼顯示原理。共陰極的字形碼見下表。
(2)由于顯示的數(shù)字0~9的字形碼沒有規(guī)律可循,只能采用查表的方式來完成我們所需的要求了。我們按數(shù)字0~9的順序,把每個數(shù)字的筆段代碼按順序排好,如下所示:
TABLE
DB
3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
4.實驗線路(見圖8-13)
圖8-13
5.實驗步驟與內(nèi)容
6.程序框圖與參考程序
(1)程序框圖如圖8-14所示。圖8-14
(2)參考程序:
①匯編源程序如下:
ORG0
START:MOVR1,#00H
NEXT:MOVA,R1
MOVDPTR,#TABLE
MOVCA,@A+DPTR
MOVP0,A
LCALLDELAY
INCR1
CJNER1,#10,NEXT
LJMPSTART DELAY:MOVR5,#20
D2:MOVR6,#20
D1:MOVR7,#248
DJNZR7,$
DJNZR6,D1
DJNZR5,D2
RET
TABLE:DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
END②C語言源程序如下:
#include〈AT89X51.H〉
unsignedcharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,
0x6d,0x7d,0x07,0x7f,0x6f};
unsignedchardispcount;
voiddelay02s(void)
{
unsignedchari,j,k;
for(i=20;i>0;i--)
for(j=20;j>0;j--)
for(k=248;k>0;k--);
}voidmain(void)
{
while(1)
{
for(dispcount=0;dispcount<10;dispcount++)
{
P0=table[dispcount];
delay02s();
}
}
}
1.實驗目的
熟悉并掌握按鍵的工作原理及其編程方法。
2.實驗設備及器材
單片機最小系統(tǒng)實驗箱,計算機,導線若干。
3.實驗原理實驗8按鍵識別方法之一
4.實驗線路(見圖8-15)
圖8-15
5.實驗步驟與內(nèi)容
(1)把“單片機系統(tǒng)”區(qū)域中的P3.7/RD端口連接到“低脈沖鍵盤”區(qū)域中的SP1端口上。
(2)把“單片機系統(tǒng)”區(qū)域中的P1.0~P1.4端口用8芯排線連接到“8路發(fā)光二極管指示模塊”區(qū)域中的“L1~L8”端口上;要求:P1.0連接到L1,P1.1連接到L2,P1.2連接到L3,P1.3連接到L4。
每按下一次開關(guān)SP1,計數(shù)值加1,通過AT89S51單片機的P1端口的P1.0到P1.3顯示出其的二進制計數(shù)值。
6.程序框圖與參考程序
(1)程序框圖如圖8-16所示。圖8-16
(2)參考程序:
①匯編源程序如下:
ORG0
START:MOVR1,#00H ;初始化R7為0,表示從0開始計數(shù)
MOVA,R1 ;
CPLA ;取反指令
MOVP1,A ;送出P1端口由發(fā)光二極管顯示
REL: JNBP3.7,REL ;判斷SP1是否按下
LCALLDELAY10MS ;若按下,則延時10ms左右
JNBP3.7,REL ;再判斷SP1是否真得按下
INCR7 ;若真按下,則進行按鍵處理,使
MOVA,R7 ;計數(shù)內(nèi)容加1,并送出P1端口由
CPLA ;發(fā)光二極管顯示 MOVP1,A ;
JNBP3.7,$ ;等待SP1釋放
SJMPREL ;繼續(xù)對K1按鍵掃描
DELAY10MS:MOVR6,#20 ;延時10ms子程序
L1: MOVR7,#248
DJNZR7,$
DJNZR6,L1
RET
END②C語言源程序如下:
#include〈AT89X51.H〉
unsignedcharcount;
voiddelay10ms(void)
{
unsignedchari,j;
for(i=20;i>0;i--)
for(j=248;j>0;j--);
}voidmain(void)
{
while(1)
{
if(P3_7==0)
{
delay10ms();
if(P3_7==0)
{
count++;
if(count==16)
{
count=0;
}
P1=~count;
while(P3_7==0);
}
}
}
}
1.實驗目的
(1)熟悉并掌握數(shù)碼管動態(tài)掃描顯示及按鍵的工作原理;
(2)掌握簡單計數(shù)器的編程方法。
2.實驗設備及器材
單片機最小系統(tǒng)實驗箱,計算機,導線若干。
3.實驗原理實驗900~99計數(shù)器
4.實驗線路(見圖8-17)
圖8-17
5.實驗步驟與內(nèi)容
6.程序框圖和參考程序
(1)程序框圖如圖8-18所示。圖8-18(2)參考程序。
①匯編源程序如下:
Count EQU30H
SP1 BITP3.7
ORG0
START: MOVCount,#00H
NEXT: MOVA,Count
MOVB,#10
DIVAB
MOVDPTR,#TABLE
MOVCA,@A+DPTR MOVP0,A
MOVA,B
MOVCA,@A+DPTR
MOVP2,A
WT: JNBSP1,WT
WAIT: JBSP1,WAIT
LCALLDELY10MS
JBSP1,WAIT
INCCount
MOVA,Count
CJNEA,#100,NEXT
LJMPSTARTDELY10MS: MOVR6,#20
D1: MOVR7,#248
DJNZR7,$
DJNZR6,D1
RET
TABLE: DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,
7FH,6FH
END②C語言源程序如下:
#include〈AT89X51.H〉
unsignedcharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,
0x6d,0x7d,0x07,0x7f,0x6f};
unsignedcharCount;
voiddelay10ms(void)
{
unsignedchari,j;
for(i=20;i>0;i--)
for(j=248;j>0;j--);
}voidmain(void)
{
Count=0;
P0=table[Count/10];
P2=table[Count%10];
while(1)
{
if(P3_7==0)
{
delay10ms();
if(P3_7==0)
{
Count++;
if(Count==100){
Count=0;
}
P0=table[Count/10];
P2
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年調(diào)脂抗動脈粥樣硬化藥項目合作計劃書
- 獸藥店專業(yè)人才聘用合同模板
- 印刷行業(yè)采購合同指南
- 酒店服務質(zhì)保金條款
- 中小企業(yè)財務風險防范與控制
- 2024年金融擔保協(xié)議欺詐行為識別與法律應對一
- 水產(chǎn)養(yǎng)殖白蟻防治工程整治合同
- 墻板施工合同工廠車間整修
- 皮革廠大型設備用電安全規(guī)程
- 專業(yè)版二手房買賣合同模板文本
- 醫(yī)藥行業(yè)合規(guī)培訓
- 2024年低壓電工資格考試必考題庫及答案(共400題)
- MOOC 數(shù)字邏輯電路實驗-東南大學 中國大學慕課答案
- 齊魯名家 談方論藥智慧樹知到期末考試答案2024年
- 南京工業(yè)大學橋梁工程課程設計
- 2024年華電甘肅大基地煤電分公司招聘筆試參考題庫含答案解析
- 入團志愿書(2016版本)(可編輯打印標準A4) (1)
- 路基試驗段成果總結(jié)報告
- 鋼筋植筋施工方案(完整版)
- 反時限計算小軟件
- 企業(yè)慶典詩朗誦
評論
0/150
提交評論