標題: 單片機原理實驗總結(word格式文檔下載) [打印本頁]
作者: tutuwxy2 時間: 2018-8-15 12:14
標題: 單片機原理實驗總結(word格式文檔下載)
單片機實驗原理包含八個基礎實驗
1.LED燈循環點亮
2.外部中斷計數,BCD碼轉換
3.四位一體數碼管動態靜態顯示
4.四位秒表
5.脈沖寬度與周期測量
6.串行口和異步通信
7.外部RAM擴展
8.自主設計點陣字符
附件中包含protues仿真設計,程序流程圖,匯編代碼,以及實驗心得體會。
實驗一
本實驗要求在P1端口接8個LED,并編程依次循環點亮。要求用軟件延時程序控制LED的亮滅時間,并能精確地計算和用軟件測量延時時間。
圖1.1.1 仿真原理圖
圖1.1.2 仿真原理圖細節
Protues中已默認添加了復位電路,其中R1-R8是限流電阻,將普通二極管的正極接到VCC,負極接到P0口,運行結果:D1-D8依次導通,導通時方點變紅。
圖1.1.3 程序流程圖
ORG 0000H
LJMP MAIN
ORG 0100H
MAIN: MOV A,#10000000B
LOOP0:MOV P1,A
MOV R0,#0FFH
LOOP1:MOV R1,#0FFH
LOOP2:NOP
NOP
DJNZ R1,LOOP2
DJNZ R2,LOOP1
RR A
SJMP LOOP0
END
(1)number1和number2的作用是什么;
R0=number1,R1=number2是設置循環次數,其中,R1為LOOP2循環的次數,R0為LOOP1循環的次數。
(2)燈相鄰兩次變化之間的延遲時間是多少,如何控制,如何計算?
R1為LOOP2循環的次數,即t1=255*2=510us,R0為LOOP1循環的次數,t2=255*2*255=130050us,所以總的延遲時間為T=t1+t2=130560us。
控制延遲時間可通過增加循環次數或者增加循環層數實現,又因為80C52中Rn寄存器最大值為255,所以在此實驗基礎上,可增加循環層數:
MOV R3,#07H
LOOP1:MOV R2,#0FFH
LOOP2:MOV R1,#0FFH
LOOP3:NOP
NOP
DJNZ R1,LOOP3
DJNZ R2,LOOP2
考慮到單片機的晶振為11.0592MHz,及一個機器周期為1.085us,經過計算當第三層循環次數為7時,延遲約等于1s。
初次使用實驗箱和相關軟件還不甚熟練,應加強練習。
實驗前,應先在Protues軟件上進行仿真,能很大程度上增大實驗成功概率;插電路的過程中要小心導線間是否短路,導線非絕緣部分不應剪得過長,對待實驗要有耐心,按照一定的順序從源頭和細節處檢查電路,比如單片機是否和實驗箱共地,是否有導線脫落等等。
若燒入程序出現問題,可先關閉實驗箱電源再次燒錄,或者重新插入串口。
總之,實驗過程中會遇到各種意想不到的情況,一定要沉心靜氣,不然就浪費了時間,又難以發現錯誤。
實驗二
1.功能要求
本實驗要求:
(1)P0口接8個燈,INT0引腳接一下開關K0。
(2)K0用于引發外部中斷,在外部中斷子程序中,對K0按下的次數進行計數,然后以BCD碼形式,通過P0口的8個燈輸出計數結果。
2.硬件原理
圖1.2.1 仿真原理圖
此時按鍵16次,紅色發光二極管從左到右前四位表示十進制數的十位,后四位表示十進制數的各位,從仿真結果和試驗結果看,當按鍵99次,計數清零,重新開始計數。
3.軟件程序流程
圖1.2.2 程序流程圖
4.程序清單
ORG 0000H
LJMP MAIN
ORG 0003H
LJMP INT0P
ORG 0013H
LJMP INT1P
ORG 0020H
MAIN: MOV P0,#00H
MOV R0,#00H
MOV A,#00H
SETB IT0
SETB IT1
SETB EX0
SETB EX1
SETB PX0
CLR PX1
SETB EA
SJMP $
ORG 0050H
INT0P: INC A
DA A
MOV P0,A
RETI
END
5.實驗的問題及討論
關于Protues使用的一些問題:
(1)在Protues仿真時,若要用到P0口,要記得加上拉電阻,否則發光二極管不會發光,而實驗箱中已加可不考慮;
(2)排阻使用時,應注意其使用條件,及阻值的設置。
6.實驗心得及建議
單片機能實現的某種功能有多種編程方法,我覺得作為初學者,應該先嘗試自己編程,哪怕編出來程序冗長,至少在這個過程中練習了匯編語言的使用,自己編完之后,可以查閱相關資料,看看網上成熟的程序的優點;多和同學們討論思路,有時間的情況下互相看以下程序,能學到很多知識,拓寬思考問題的角度。
建議:做Protues仿真時,如果沒有系統地學習過Protues,遇到問題要努力嘗試解決,并記錄下來這些問題和解決辦法,有利于今后的學習。
實驗三
1.功能要求
本實驗要求P1口通過驅動芯片控制斷碼輸出信號線,P0口通過驅動芯片控制位選線,并實現以下功能:
(1)當開關K0接低電平時,第一位依次顯示0~F,然后第二位、第三位、第四位,再循環回第一位。
(2)當開關K0接高電平時,四位動態顯示“HELP”。
2.硬件原理
圖1.3.1 74LS244引腳圖及功能表
在光學元件(optoelectronics)分類里,有各種數碼管和液晶。7段對應英文是7SEG,4位一體的英文是MPX4,共陰極CC,共陽極CA,最后的英文是顏色的意思。所以7SEG-MPX4-CA-BLUE為7段4位一體共陽極藍色數碼管顯示器。
圖1.3.2 仿真原理圖
P2.2接地時,每位均依次顯示0,1,2,3,4,5,6,7,8,9,A,b,C,d,E,F
圖1.3.3 仿真原理圖
P2.2接高電平時,顯示“HELP”
3.軟件程序流程
圖1.3.4 程序流程圖
4.程序清單
ORG 0000H
LJMP MAIN
ORG 0010H
MAIN: MOV P0,#10001000B
JNB P2.2,LOOP4
JB P2.2,NEXT0
NEXT0:LJMP LOOP5
LOOP4:MOV P1,#0C0H
LCALL DELAY
JB P2.2,NEXT0
MOV P1,#0F9H
LCALL DELAY
JB P2.2,NEXT0
MOV P1,#0A4H
LCALL DELAY
JB P2.2,NEXT0
MOV P1,#0B0H
LCALL DELAY
JB P2.2,NEXT0
MOV P1,#99H
LCALL DELAY
JB P2.2,NEXT0
MOV P1,#92H
LCALL DELAY
JB P2.2,NEXT0
MOV P1,#82H
LCALL DELAY
JB P2.2,NEXT0
MOV P1,#0F8H
LCALL DELAY
JB P2.2,NEXT0
MOV P1,#80H
LCALL DELAY
JB P2.2,NEXT0
MOV P1,#90H
LCALL DELAY
JB P2.2,NEXT0
MOV P1,#88H
LCALL DELAY
JB P2.2,NEXT0
MOV P1,#83H
LCALL DELAY
JB P2.2,NEXT0
MOV P1,#0C6H
LCALL DELAY
JB P2.2,NEXT0
MOV P1,#0A1H
LCALL DELAY
JB P2.2,LOOP5
MOV P1,#86H
LCALL DELAY
JB P2.2,LOOP5
MOV P1,#8EH
LCALL DELAY
JB P2.2,LOOP5
MOV A,P0
RL A
MOV P0,A
LJMP LOOP4
ORG 0100H
DELAY:MOV R0,#10H
LOOP1:MOV R1,#10H
LOOP2:MOV R2,#0FFH
LOOP3:NOP
NOP
DJNZ R2,LOOP3
DJNZ R1,LOOP2
DJNZ R0,LOOP1 ;2*255+50*255*2+10*50*255*2us
RET
LOOP5:MOV R5,P0
MOV P0,#10001000B
MOV P1,#89H
LCALL DELAY1
JNB P2.2,NEXT1
MOV P1,#86H
LCALL DELAY1
JNB P2.2,NEXT1
MOV P1,#0C7H
LCALL DELAY1
JNB P2.2,NEXT1
MOV P1,#8CH
LCALL DELAY1
JNB P2.2,NEXT1
LJMP LOOP5
ORG 0150H
DELAY1:MOV R3,#05H
LOOP7:MOV R4,#0FFH
LOOP6:NOP
NOP
DJNZ R4,LOOP6
DJNZ R3,LOOP7
MOV A,P0
RR A
MOV P0,A
RET
NEXT1:MOV P0,R5
LJMP LOOP4
END
5.實驗的問題及討論
(1)由于程序中沒有使用DB查表命令,導致程序冗長,由高到低的變化時還不能緊接著上一字母讀數,僅能實現由低到高的自然變化。
(2)在和同學們的討論中,使用DB指令,縮短了程序長度;在不使用查表指令的條件下,若將HELP循環放入子程序中,由于子程序執行完成后返回之前的節點,可繼續讀數。
6. 實驗心得及建議
盡快熟記以及熟練使用匯編指令,寫程序前應先把思路捋順,做好程序流程圖,這樣程序寫起來就會得心應手一些。
實驗四
1.功能要求
(1) 用T0定時器實現1秒定時,控制一個LED亮1秒,滅1秒,并不斷循環。
(2) 實現一個4位秒表:
① 用開關K0模擬秒表的啟動、停止、清零功能,K0觸發外部中斷INT0,按一次啟動計時,按一次停止,再按一次清零,在三個狀態中循環。
②定時采用T0定時器中斷完成,最低位按1/10秒計數,依次計數單位為1分、10秒、1秒、1/10秒。
③要求外部中斷INT0的優先級高于T0的優先級。
2.硬件原理
圖1.4.1 硬件原理圖(仿真顯示)
3.軟件程序流程
圖1.4.2 程序流程圖
4.程序清單
;剛開始未顯示,當第一次按K0時,開始計時;
;進一次中斷是1/20秒 50MS 問題在于用51輸入的無符號整數最大實現255然后清零,所以顯示一直為零。
ORG 0000H
LJMP MAIN
ORG 0003H
LJMP INT0P
ORG 000BH
LJMP T0P
ORG 0050H
MAIN: MOV P0,#00000001B
MOV TMOD,#00000001B
MOV TL0,#0B0H ;循環2次最佳,誤差小 ,1/10 second
MOV TH0,#3CH
SETB ET0
SETB IT0
SETB EX0
SETB EA
MOV R1,#00H
MOV R2,#00H
MOV R3,#00H
MOV R4,#00H
MOV R5,#00H
MOV R6,#00H
MOV R7,#00H
MOV DPTR,#0400H
W: LCALL XIANSHI
SJMP W ;在主程序中一直顯示
T0P: INC R3
MOV TL0,#0B0H ;循環2次最佳,誤差小 ,1/10 second
MOV TH0,#3CH
CJNE R3,#2,BACK
INC R2
MOV R3,#00H
CJNE R2,#10,BACK
INC R4
MOV R2,#00H
CJNE R4,#10,BACK
INC R5
MOV R4,#00H
CJNE R5,#06,BACK
INC R7
MOV R5,#00H
CJNE R7,#10,BACK
MOV R7,#00H
BACK: RETI
INT0P: INC R6
CJNE R6,#01H,CLR0
SETB TR0
CLR0: CJNE R6,#03H,TIMER
MOV R1,#00H
MOV R2,#00H
MOV R3,#00H
MOV R4,#00H
MOV R5,#00H
MOV R6,#00H
MOV R7,#00H
LJMP STOP1
TIMER: CJNE R6,#02H,STOP1
CLR TR0
MOV TH1,#3CH
MOV TL1,#0B0H
STOP1: RETI
ORG 0250H
XIANSHI: MOV A,R2
MOVC A,@A+DPTR
MOV P1,A
LCALL DELAY
MOV P0,#00000010B
MOV A,R4
MOVC A,@A+DPTR
MOV P1,A
LCALL DELAY
MOV P0,#00000100B
MOV A,R5
MOVC A,@A+DPTR
MOV P1,A
LCALL DELAY
MOV P0,#00001000B
MOV A,R7
MOVC A,@A+DPTR
MOV P1,A
LCALL DELAY
MOV P0,#00000001B
RET
ORG 0350H
DELAY: MOV R0,#05H ;2*255+2*255*5=3060US
LOOP0: MOV R1,#0FFH
LOOP1: NOP
NOP
DJNZ R1,LOOP1
DJNZ R0,LOOP0
RET
ORG 0400H
DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H
DB 80H,90H ;0~9
END
(1)實驗通過計時器0工作方式一實現四位秒表計時功能,使TH0、TL0初始值盡可能小,減少跳入計時器中斷的次數,以減少誤差。
(2)應注意晶振頻率,盡可能精確計時。
實驗前捋清思路很重要,注意中斷不可寫的過長,過長可能會導致單片機運行錯誤。
實驗五
1.功能要求
① 自主設計測量方法,編程連續測量輸入脈沖寬度,并用七段LED顯示結果。
② 自主設計測量方法,編程連續測量輸入脈沖周期,并用七段LED顯示結果。
③ 自主設計測量方法,同時測量脈沖寬度和周期,由開關K0選擇顯示脈沖寬度還是顯示脈沖周期。
2.硬件原理
圖1.5.1 硬件原理圖
圖1.5.2 硬件原理圖
3.軟件程序流程
圖1.5.3 程序流程圖
4.程序清單
ORG 0000H
LJMP MAIN
ORG 0003H
LJMP INT0P
ORG 000BH
LJMP T0P
ORG 0100H
MAIN: MOV R1,#0
MOV R2,#0
MOV R3,#0
MOV R4,#0
MOV R5,#0
MOV R6,#0
MOV R7,#0
MOV 30H,#0C0H
MOV 31H,#0C0H
MOV 32H,#0C0H
MOV 33H,#0C0H
MOV 21H,#0
SETB IT0
SETB EX0
SETB ET0
SETB EA
XIAN0: LCALL XIANSHI
LJMP XIAN0
T0P: INC R3
CJNE R3,#10,BACK
MOV R3,#0
INC R4
CJNE R4,#10,BACK
MOV R4,#0
INC R5
CJNE R5,#10,BACK
MOV R5,#0
INC R6
CJNE R6,#10,BACK
MOV R6,#0
INC R7
BACK: RETI
INT0P: INC 21H
MOV A,21H
CJNE A,#1,ER2
JB P3.3,WIDTH
TIME: MOV TMOD,#02H
SJMP START
WIDTH: JNB P3.3,TIME
MOV TMOD,#0AH
START: MOV TH0,#164
MOV TL0,#164
SETB TR0
ER2: CJNE A,#2,BACK1
CLR TR0
MOV A,TL0
SUBB A,TH0
MOV B,#10
DIV AB
MOV R2,A
MOV R1,B
CJNE R7,#0,DDIAN3
CJNE R6,#0,DDIAN2
CJNE R5,#0,DDIAN1
MOV R0,#1
LJMP CUN
DDIAN3: MOV R0,#4
LJMP CUN
DDIAN2: MOV R0,#3
LJMP CUN
DDIAN1: MOV R0,#2
CUN: LCALL CHA
MOV 30H,A
INC R0
LCALL CHA
MOV 31H,A
INC R0
LCALL CHA
MOV 32H,A
INC R0
LCALL CHA
MOV 33H,A
MOV 21H,#0
MOV R3,#0
MOV R4,#0
MOV R5,#0
MOV R6,#0
MOV R7,#0
BACK1: RETI
XIANSHI:MOV DPTR,#TAB
MOV P0,#01H
MOV P1,30H
LCALL DELAY
MOV P0,#02H
MOV P1,31H
LCALL DELAY
MOV P0,#04H
MOV P1,32H
LCALL DELAY
MOV P0,#08H
MOV P1,33H
LCALL DELAY
RET
CHA: MOV A,@R0
MOVC A,@A+DPTR
CJNE R0,#4,BACK2
ADD A,#0AH ;加十,加小數點
BACK2: RET
DELAY: MOV 23H,#03H
LOP1: MOV 22H,#0FFH
LOOP: NOP
DJNZ 22H,LOOP
DJNZ 23H,LOP1
RET
TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
END
5.實驗的問題及討論
用查詢法發現數碼管的顯示會受測量脈沖頻率的影響,然后選用中斷法,在檢測到脈沖下降沿時開始計時,利用門控位方式二測脈沖寬度,方式二測脈沖周期。
6.實驗心得及建議
實驗中遇到測量脈沖周期為100us的倍數時,會出現較大誤差,分析發現是因為當計時達到100us時由于誤差造成跳入中斷失敗,100微秒位計數少一,為解決這一問題,適當加大微秒位誤差以減小總體誤差。
實驗六
①利用串行口方式0實現一個七段數碼管的顯示控制,輪流顯示0~9十個數碼。
②兩人一組,利用異步通信功能將一方的8個按鍵的高低電平狀態傳到另一方,并利用另一方的8個LED顯示其開關狀態,要求雙向通信,互相顯示。
2.硬件原理
圖1.6.1 硬件原理圖
圖1.6.2 硬件原理圖
圖1.6.3 74LS164引腳圖 表1.6.1 74LS164功能表
3.軟件程序流程
圖1.6.4 實驗1流程圖圖1.6.5 實驗2流程圖
4.程序清單
實驗1:輪流顯示0-9
ORG 0000H
LJMP MAIN
ORG 0100H
MAIN: MOV SCON,#00H ;SM0,SM1,SM2,REN,TB8,RB8,TI,RI
MOV DPTR,#TAB
TRAM1: MOV R3,#00H
TRAM: MOV A,R3
MOVC A,@A+DPTR
MOV SBUF,A
CJNE R3,#0AH,WAIT
MOV R3,#00H
LJMP TRAM1
WAIT: JBC TI,NEXT
SJMP WAIT
NEXT: INC R3
LCALL DELAY
LJMP TRAM
ORG 0200H
DELAY: MOV R2,#03H
LOOP2: MOV R0,#09FH
LOOP0: MOV R1,#0FFH
LOOP1: NOP
NOP
DJNZ R1,LOOP1
DJNZ R0,LOOP0
DJNZ R2,LOOP2 ;2*255+2*255*255+2*255*255*8~1S
RET
ORG 0300H
TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
END
實驗2:雙向通信,互相顯示
ORG 0000H
LJMP MAIN
ORG 0030H
MAIN: MOV SCON,#50H ;方式1,且接收到的數據均要保存
MOV TMOD,#20H ;T1做波特率發生器
MOV PCON,#80H ;波特率加倍
MOV TH1,#0F4H ;bps:(2^1/32)*1/(2^8-244)*12/11.0592=4800
MOV TL1,#0F4H
SETB TR1
SETB EA
TRAN: MOV SBUF,P1
WAIT: JBC TI,NEXT
SJMP WAIT
NEXT: JNB RI,TRAN
MOV P2,SBUF
CLR RI
LJMP TRAN
END
5.實驗的問題及討論
- 實驗1的難點在于對74LS164的掌握,使用串口方式0時,單片機TXD接芯片時鐘脈沖端CLK,而CLR為低電平有效清零端,在本實驗中可直接接高電平。
- 串口傳輸先輸出最低位,通過移位寄存器在QH端輸出。
- 實驗2要注意單片機發送和接收的條件,當TI置1時,發送完畢;當RI置1時,開始接收。此外,在搭建硬件電路時要注意兩個單片機相互共地。
6.實驗心得及建議
做實驗不可眼高手低,即使仿真成功,在實際電路中仍會遇到各種問題,要不斷總結經驗,提高動手能力。
實驗七
1.功能要求
本實驗要求利用74LS573進行總線擴展,連接兩片62256,并用74LS138完成地址分配;將一片62256的前10個字節的內容加1后存入另一片62256中,讀出并用8個LED顯示。
2.硬件原理
給出實驗的硬件原理圖,并分析電路原理(用仿真代替硬件電路設計)
1.74LS138引腳圖
圖1.7.1 74LS138引腳圖表1.7.1 74LS138功能
2.62系列SRAM引腳
圖1.7.2 62系列SRAM引腳
3.74LS573
圖1.7.3 74LS573引腳圖表1.7.2 74LS573功能表
4.Protues仿真
圖1.7.4 仿真全圖
圖1.7.5 仿真部分細節圖
3.軟件程序流程
圖1.7.6 程序流程圖
4.程序清單
ORG 0000H
LJMP MAIN
ORG 0030H
MAIN: MOV R0,#00H
MOV DPTR,#0000H
WRITE: MOV A,R0
MOVX @DPTR,A
MOV @R0,A
INC R0
INC DPTR
CJNE R0,#0AH,WRITE ;第一片62256,寫入0~9
MOV DPTR,#8000H ;62256 32K*8,第二片622556
READ: MOV P2,#00H
MOV R0,#00H
LOOP0: MOV A,@R0
INC A
MOVX @DPTR,A
INC R0
INC DPTR
CJNE R0,#0AH,LOOP0 ;將第一片的前10個字節加一存入第二片
MOV DPTR,#8000H ;顯示1 2 3 4 5 6 7 8 9 10
MOV R0,#00H
LOOP3: MOVX A,@DPTR
MOV P1,A
LCALL DELAY
INC DPTR
INC R0
CJNE R0,#0AH,LOOP3
LJMP MAIN
ORG 0200H
DELAY: MOV 50H,#06H
LOOP1: MOV 51H,#0FFH
LOOP2: MOV 52H,#0FFH
DJNZ 52H,$
DJNZ 51H,LOOP2
DJNZ 50H,LOOP1
RET
END
5.實驗的問題及討論
實驗室沒有622569(32K*8)芯片,選用了6264(8K*8)芯片,只需將程序中的第二片6264外部擴展地址改為2000H,將A13(P2.5)接譯碼器的1腳且譯碼器2、3腳接地,A14(P2.6)、A15(P2.7)也接地即可。
6.實驗心得及建議
本實驗程序的編寫并不困難,難點在于線路的搭建,搭線時一定要細心,反復檢查,搭線前應先規劃好器件的擺放,有利于實驗的快速進行。
實驗八
1.功能要求
本實驗控制LED點陣模塊動態地顯示自設字符或圖形,設計循環顯示數字0-9。
2.硬件原理
圖1.8.1 硬件原理圖(用軟件仿真顯示)
圖1.8.2 硬件原理細節圖(用軟件仿真顯示)
圖1.8.3 SD411988內部結構 圖1.8.4 CD4049引腳圖及內部結構
3.軟件程序流
程圖 圖1.8.5 程序流程圖
4.程序清單
ORG 0000H
LJMP MAIN
ORG 0030H
MAIN: MOV P0,#0FFH
MOV P2,#0FFH
MOV R0,#00H ;顯示的幕次(即每一幕顯示的數)值0-9
MOV R1,#00H ;列碼序列號置0
MOV R2,#00H ;行碼序列號置初值
MOV R3,#00H
LOOP3:MOV 52H,#0FH
XIANS:MOV DPTR,#ROW ;取行碼表 首地址
MOV A,R2
MOVC A,@A+DPTR
MOV P2,A ;輸出行號
MOV DPTR,#COL ;取列碼表 首地址
MOV A,R1
MOVC A,@A+DPTR
MOV P0,A
LCALL DL0
INC R1
INC R2
CJNE R1,#08H,XIANS
MOV R1,#00H
MOV A,R3
MOV R2,A
DJNZ 52H,XIANS
INC R0 ;第R0個數
MOV A,R0
MOV B,#08H
MUL AB
MOV R3,A
MOV R2,A
CJNE R0,#10,LOOP3
LJMP MAIN
ORG 0650H
DL0: MOV 50H,#03H
LOOP0:MOV 51H,#0FFH
LOOP1:NOP
NOP
DJNZ 51H,LOOP1
DJNZ 50H,LOOP0 ;2*255+2*255*3=2040US
RET
ORG 0800H
COL: DB 01H,02H,04H,08H,10H,20H,40H,80H ;列值
ORG 0850H
ROW: DB 00H,00H,3EH,41H,41H,41H,3EH,00H ;0
DB 00H,00H,00H,00H,21H,7FH,01H,00H ;1
DB 00H,00H,27H,45H,45H,45H,39H,00H ;2
DB 00H,00H,22H,49H,49H,49H,36H,00H ;3
DB 00H,00H,0CH,14H,24H,7FH,04H,00H ;4
DB 00H,00H,72H,51H,51H,51H,4EH,00H ;5
DB 00H,00H,3EH,49H,49H,49H,26H,00H ;6
DB 00H,00H,40H,40H,40H,4FH,70H,00H ;7
DB 00H,00H,36H,49H,49H,49H,36H,00H ;8
DB 00H,00H,32H,49H,49H,49H,3EH,00H ;9
END
5.實驗的問題及討論
(1)實驗室使用的SD411988LED點陣是行高列低,即編寫程序過程中應先給每一行賦值,當行為高對應列為低時,對應的發光二極管被點亮。
(2)實驗時遇到點陣最后一列不會被點亮的情況,經檢查后發現,在連接時,器件引腳被折進端口下方并未插入端口。
(3)在仿真時,點陣亮度很暗,在加入了驅動74LS244后,情況得到明顯改善。
6. 實驗心得及建議
事實證明,實驗過程中不能局限于實驗講義列寫的器件,應根據實際情況調整電路以達到預期效果。
第二部分 單片機接口實驗
實驗一 基于8255的并口擴展實驗
1.功能要求
①了解8255芯片結構、工作方式。
②學習使用8255芯片實現單片機與外部設備傳輸。
2.硬件原理
圖2.1.1 硬件原理圖
3.軟件程序流程
圖2.1.2 程序流程圖
4.程序清單
ORG 0000H
LJMP MAIN
ORG 0030H
MAIN: MOV A,#90H ;1 0010 000 A方式0輸入,B方式0輸出
MOV DPTR,#7FFFH ;A0 A1均置1選擇控制口
MOVX @DPTR,A
MOV DPTR,#7CFFH
MOVX A,@DPTR ;A輸入
MOV DPTR,#7DFFH ;指向端口B
MOVX @DPTR,A
LCALL DELAY
LJMP MAIN
ORG 0200H
DELAY: MOV R0,#05FH
LOOP0: MOV R1,#0FFH
LOOP1: NOP
NOP
DJNZ R1,LOOP1
DJNZ R0,LOOP0
RET
END
5.實驗的問題及討論
注意應先選擇控制口,規定輸入輸出端口和輸入輸出方式。DPTR為I/O尋址16位寄存器,沒有用到的引腳賦1。
6.實驗心得及建議
在做接口實驗時,應充分學習和理解外部芯片作用以及連接方式。
嘗試盡量記憶芯片類型功能以及各引腳功能。
實驗十一 LCM控制實驗
1.功能要求
完成與LCM1602的接口,并嘗試各種顯示控制功能。
2.硬件原理
圖2.11.1 硬件原理圖
3.軟件程序流程
圖2.11.2 程序流程圖
4.程序清單
ORG 0000H
LJMP MAIN
ORG 0030H
MAIN: LCALL CSH
MOV R2,#00H
MOV R3,#00H
MOV R0,#80H
LCALL WRI
MOV DPTR,#TAB
FIRST:MOV A,R2
MOVC A,@A+DPTR
MOV R1,A
LCALL WRD
MOV 50H,#0FFH
LCALL DELAY
INC R2
CJNE R2,#14,FIRST
MOV R0,#0C0H
LCALL WRI
MOV DPTR,#TAB1
SEC: MOV A,R3
MOVC A,@A+DPTR
MOV R1,A
LCALL WRD
MOV 50H,#0FFH
LCALL DELAY
INC R3
CJNE R3,#16,SEC
LJMP MAIN
;********延時子程序******
ORG 0200H
DELAY:MOV 51H,#0FFH
DJNZ 51H,$
DJNZ 50H,DELAY
RET
;********寫指令代碼子程序******
ORG 0250H
WRI: CLR P2.0 ;RS=0 指令
SETB P2.1 ;RW=1,忙標志和地址計數器讀出,
LOP0: SETB P2.2 ;E=1,讀寫使能,高電平有效
MOV P0,#0FFH ;讀P0口狀態
MOV A,P0 ;讀P0口狀態,讀IR
CLR P2.2
ANL A,#80H
CJNE A,#0,LOP0 ;D7腳為高時,忙于內部操作,一直檢測
CLR P2.0
CLR P2.1
SETB P2.2
MOV P0,R0
MOV 50H,#2 ;延時約510Us
LCALL DELAY
CLR P2.2 ;RS=0,RW=0,E下降沿,寫指令代碼
RET
;********寫數據子程序******
ORG 0450H
WRD: CLR P2.0 ;RS=0 指令
SETB P2.1 ;RW=1,忙標志和地址計數器讀出,
LOP1: SETB P2.2 ;E=1,讀寫使能,高電平有效
MOV P0,#0FFH ;讀P0口狀態
MOV A,P0 ;讀P0口狀態,讀IR
CLR P2.2
ANL A,#10000000B
CJNE A,#0,LOP1 ;D7腳為高時,忙于內部操作,一直檢測
SETB P2.0
CLR P2.1
MOV P0,R1
MOV 50H,#2
LCALL DELAY
SETB P2.2
MOV 50H,#2
LCALL DELAY
CLR P2.2
RET
;********初始命令子程序******
ORG 0600H
CSH: MOV R0,#38H
LCALL WR ;L L L L H H(DL 8位數據接口模式) H(雙N) L(F) L L 雙列顯示,字形5*7
MOV R0,#0FH
LCALL WRI ;LL L L L L H H H H 開顯示,光標閃爍
MOV R0,#01H
LCALL WRI ;清除LCD顯示屏
RET
ORG 0800H
TAB: DB 57H,78H,79H,20H,69H,73H,20H,61H,20H,67H,69H,72H,6CH,2EH
;Wxy is a girl.
ORG 0850H
TAB1:
DB 57H,61H,6EH,67H,78H,79H,32H,30H,31H,36H,30H,31H,32H,33H,31H,32H
;Wangxy2016012312
END
5.實驗的問題及討論
(1)考慮到使程序方便用戶設置顯示功能,方便程序員執行寫指令、寫數據操作;將初始化顯示設置和寫指令數據程序編寫為子程序,在主程序中直接調用即可。
(2)注意在每次執行寫操作過程時,應先檢測部件是否正忙,若不忙執行相關指令,若忙循環檢測直至不忙。
(3)每次讀寫引腳前,應先置位E讀寫使能端。
6.實驗心得及建議
外部設備功能較多,指令也較復雜,實驗前要先捋清思路,仔細讀外部設備的相關功能介紹。
建議更新實驗中部分硬件以方便仿真,而且更有利于實驗的進行。
課程心得及建議
整個學期下來很難忘的一堂課就是《微機原理及接口技術》,自己上課很少跑神,一方面是知識點比較細碎,需要集中精神學習,另一方面在王老師的帶動下,課堂氛圍積極活躍,感覺每個同學都在很認真的思考,自己想不到或者剛想到的問題,也總會有同學及時提出來,下課更是有很多同學圍著老師問東問西,很感謝王老師一年來的認真授課,我們真的學到很多東西,當實驗做完后,成就感是難以言表的。
建議實驗室和實驗指導書能更新一些器件,淘汰一些老化不常用的芯片,擴展一些趣味實驗,可以是對基礎實驗知識的進一步運用,以增強同學們的學習興趣,激發同學們的實驗熱情。
完整的Word格式文檔51黑下載地址:
單片機原理實驗總結.doc
(1.24 MB, 下載次數: 10)
2018-8-15 12:04 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
歡迎光臨 (http://www.zg4o1577.cn/bbs/) |
Powered by Discuz! X3.1 |
主站蜘蛛池模板:
操操网站
|
国产真实精品久久二三区
|
久久久国产精品网站
|
欧美一区二区三区视频在线观看
|
中文字幕在线看人
|
日韩精品久久久久久
|
日韩精品中文字幕在线
|
美女啪啪国产
|
综合亚洲视频
|
看av电影|
久久国产精品无码网站
|
欧美日韩亚洲三区
|
久久99精品久久久久婷婷
|
国产精品久久一区
|
欧美日韩精品
|
亚洲国产精品人人爽夜夜爽
|
一区二区三区福利视频
|
欧洲精品一区
|
亚洲三级在线观看
|
丁香婷婷久久久综合精品国产
|
成人做爰www免费看视频网站
|
欧美日韩在线高清
|
视频一区 亚洲
|
中文福利视频
|
亚洲精品久久久一区二区三区
|
精品福利在线
|
97超碰在线播放
|
成人欧美一区二区
|
日韩中文一区二区三区
|
精品久久久久久亚洲精品
|
av激情在线
|
久久精品国产一区二区三区不卡
|
久草视频观看
|
97国产精品
|
男女爱爱福利视频
|
视频精品一区二区三区
|
操久久
|
久久久女女女女999久久
|
久久精品日产第一区二区三区
|
九九九久久国产免费
|
国产一区二区三区在线
|