四川大学出版社 西华大学黄惟公等老师编写的单片机实验答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验1 红黄绿灯控制
ORG 0000H
RED EQU P1.0
YELLOW EQU P1.1
GREEN EQU P1.2
MAIN: CLR RED
SETB YELLOW
SETB GREEN
MOV R0,#40
ACALL DELAY
SETB RED
CLR YELLOW
SETB GREEN
MOV R0,#20
ACALL DELAY
SETB RED
CLR YELLOW
CLR GREEN
MOV R0,#10
ACALL DELAY
SETB RED
SETB YELLOW
CLR GREEN
MOV R0,#30
ACALL DELAY
AJMP MAIN DELAY: MOV A,R0
MOV R7,A
DEL0: MOV R6,#200
DEL1: MOV R5,#250
DEL2: DJNZ R5,DEL2
DJNZ R6,DEL1
DJNZ R7,DEL0
RET
END
实验2 LED、LCD显示LED:
ORG 0000H
AJMP MAIN
ORG 0030H
MAIN: CLR P2.4
SETB P2.5
LOOP: MOV R0,#00H
MOV R4,#0AH
LP: MOV A,R0
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV P0,A
LCALL DELAY
INC R0
DJNZ R4,LP
AJMP LOOP
DELAY: MOV R7,#10
DEL0: MOV R6,#200
DEL1: MOV R5,#250
DEL2: DJNZ R5,DEL2
DJNZ R6,DEL1
DJNZ R7,DEL0
RET
TAB:DB 0C0h,0F3h,98h,92h,0A3h,86H,84H,0D3H,80H,82H END
LCD:
ORG 0000H
AJMP MAIN
DA T EQU P2.7
CLK EQU P2.6
MOV R1,#00
MAIN: MOV 79H,#10
MOV 78H,#10
MOV 77H,#10
MOV 76H,#10
MOV 75H,R1
LCALL DISPLAY
LCALL DELAY
INC R1
CJNE R1,#10,MAIN
MOV R1,#00
AJMP MAIN
DISPLAY: MOV R0,#79H
SETB CLK
MOV DPTR,#TAB
LOOP: MOV A,@R0
MOVC A,@A+DPTR
ACALL DIS
DEC R0
CJNE R0,#74H,LOOP
SETB DA T
SETB CLK
RET
DIS: MOV R7,#8
DIS1: CLR CLK
RRC A
MOV DA T,C
SETB CLK
DJNZ R7,DIS1
CLR CLK
SETB DA T
RET
DELAY: MOV R4,#10
DEL0: MOV R6,#200
DEL1: MOV R5,#250
DEL2: DJNZ R5,DEL2
DJNZ R6,DEL1
DJNZ R4,DEL0
RET
TAB: DB 90H,0F3H,89H,0A1H,0E2H,0A4H DB 84H,0F1H,80H,0A0H,0FFH
END
实验3 键盘实验
ORG 0000H
AJMP MAIN
ORG 0030H
MAIN: MOV P0,#0C0H
CLR P2.4
SETB P2.5
MOV R1,#00H
KEY1: SETB P2.2
JB P2.2,KEY2
ACALL DELAY
KEY11:SETB P2.2
JNB P2.2,KEY11
LCALL OPENLED
CLR P1.0
SETB P1.1
SETB P1.2
KEY2: SETB P2.1
JB P2.1,KEY3
ACALL DELAY
KEY22:SETB P2.1
JNB P2.1,KEY22
CLR P1.1
SETB P1.0
SETB P1.2
KEY3: SETB P2.0
JB P2.0,KEY1
ACALL DELAY
KEY33:SETB P2.0
JNB P2.0,KEY33
CLR P1.2
SETB P1.0
SETB P1.1
AJMP KEY1
OPENLED:INC R1
MOV A,R1
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV P0,A
CJNE R1,#0AH,LOOP
MOV R1,#0
LOOP: JNC MAIN
RET
DELAY:MOV R2,#200;延时子程序,约10ms
DEL0: MOV R3,#125
DEL1: DJNZ R3,DEL1
DJNZ R2,DEL0
RET
TAB:DB 0C0h,0F3h,98h,92h,0A3h,86H,84H,0D3H,80H,82H END
实验4 定时器中断实验
LED:0~9
ORG 0000H
DIGIT1 EQU P2.5
DIGIT2 EQU P2.4
AJMP MAIN
ORG 000BH
AJMP INTR0
ORG 0030H
MAIN: MOV R0,#00H
MOV R2,#100 ;中断100次为1s
MOV P0,#0FFH
SETB DIGIT1 ;点亮右边的LED
CLR DIGIT2
MOV TMOD,#01H ;T0定时,工作方式1
MOV TH0,#0E0H ;T0计数初值
MOV TL0,#80H
SETB EA
SETB ET0
SETB TR0
AJMP $ ;等待中断
INTR0: MOV TH0,#0E0H ;T0重赋初值
MOV TL0,#80H
DJNZ R2,LP;是否中断100次
MOV DPTR,#TAB
MOV A,R0
MOVC A,@A+DPTR
MOV P0,A
MOV R2,#100
INC R0
CJNE R0,#0AH,LP
MOV R0,#00H
LP: RETI
TAB:DB 0C0H,0F3H,98H,92H,0A3H,86H,84H,0D3H,80H,82H END
LED:00~99
ORG 0000H