广东海洋大学单片机实验报告
实验一发光二极管流水灯实验
一、实验目的:
1.通过AT89C51单片机控制8个发光二极管,八个发光二极管分别接在单片机的P0.0-P0.7接口上,输出“0”时,发光二极管亮。开始时P0.0→P0.1….→P0.7,实现亮点以1HZ频率循环移动。
2.用PROTEUS 设计,仿真以AT89C51为核心的发光二极管流水灯实验装置。
3.掌握发光二极管的控制方法。
二、PROTEUS电路设计:
三、实验仪器和设备
PC机、PROTEUS软件或W-A-51综合开发学习板
四、源程序设计:
根据电路图自行编写并调试。
ORG 0000H
AJMP START
ORG 0030H
START: MOV P0,#0FFH
MOV A,#0FEH
AAA: MOV P0,A
LCALL DELAY
JNB P0.7,BBB
RL A
AJMP AAA
BBB: MOV A,#7FH
CCC: MOV P0,A
LCALL DELAY
JNB P0.0,START
RR A
AJMP CCC
DELAY: MOV R2,#123
DL3: MOV R1,#200
DL2: MOV R0,#20
DL1: DJNZ R0,DL1
DJNZ R1,DL2
DJNZ R2,DL3
RET
END
实验二开关控制LED数码管实验
一、实验目的:
1.通过AT89C51读入4位开关K1、K2、K3、K4的输入状态,并按照二进制编码关系0-F输出到数码管显示。(如K4K3K2K1全部按下,则显示F;若只有K2按下,则显示2。)
2.掌握LED数码管的静态显示。
3.掌握I/O口的控制方法。
二、PROTEUS电路设计:
三、实验仪器和设备
PC机、PROTEUS软件或W-A-51综合开发学习板
四、源程序设计:
根据电路图自行编写并调试。
CLR P1.0
MOV DPTR,#TABLE
START:CLR A
JNB P2.0,D1
INC A
D1:JNB P2.1,D2
ADD A,#2
D2:JNB P2.2,D3
ADD A,#4
D3:JNB P2.3,D4
ADD A,#8
D4:MOVC A,@A+DPTR
MOV P0,A
AJMP START
TABLE: DB
0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H,0C6H,0A1H,86H,8EH END
实验三外中断优先级实验
一、实验目的:
1.理解单片机中断优先级和优先权。
2.用PROTEUS 设计,仿真基于AT89C51单片机的中断优先级实验。
3.掌握中断编程方法。
单片机主程序控制P0口数码管循环显示0~8;外中断0、外中断1发生时分别在P2口、P1口依次显示0~8。通过实验可演示高优先级可中断低优先级,但低优先级的中断请求不能中断高优先级。
二、PROTEUS电路设计:
三、实验仪器和设备
PC机、PROTEUS软件或W-A-51综合开发学习板
四、源程序设计:
根据电路图自行编写并调试。
ORG 0000H
LJMP MAIN
ORG 0003H
LJMP INTER0
ORG 0013H
LJMP INTER1
ORG 0100H
MAIN: MOV SP,#30H
SETB EX0
SETB IT0
SETB PX0
SETB EX1
SETB IT1
CLR PX1
SETB EA
START: MOV R0,#00H
MOV A,R0
MOV R1,#9
AA: PUSH ACC
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P0,A
CALL DELAY
POP ACC
INC A
DJNZ R1,AA
LJMP START INTER0: PUSH PSW
PUSH ACC
SETB RS0
MOV R0,#00H
MOV R1,#9
BB: MOV DPTR,#TABLE
MOV A,R0
MOVC A,@A+DPTR
MOV P2,A
CALL DELAY
INC R0
DJNZ R1,BB
POP ACC
POP PSW
MOV P2,#0FFH
RETI
LJMP AA
INTER1: PUSH PSW
PUSH ACC
CLR RS0
SETB RS1
MOV R0,#00H
MOV R1,#9
CC: MOV DPTR,#TABLE
MOV A,R0
MOVC A,@A+DPTR
MOV P1,A
CALL DELAY
INC R0
DJNZ R1,CC
POP ACC
POP PSW
MOV P1,#0FFH
RETI
LJMP AA
DELAY: MOV R2,#50
D0: MOV R3,#50
D1: MOV R4,#50
D2: DJNZ R4,D2
DJNZ R3,D1
DJNZ R2,D0
RET
TABLE:DB 0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H,080H
END
实验四60S倒计时实验
一、实验目的:
1.通过AT89C51的定时器实现60S倒计时,显示采用两位数码管动态显示。
2.用PROTEUS 设计,仿真基于AT89C51单片机的60S倒计时实验。
二、PROTEUS电路设计:
三、实验仪器和设备
PC机、PROTEUS软件或W-A-51综合开发学习板
四、源程序设计:
根据电路图自行编写并调试。
ORG 0000H
AJMP MAIN
ORG 000BH ;T0中断入口
AJMP LOOP
ORG 0030H
MAIN:
MOV TMOD,#01H ;设置T0用于定时,模式1方式
MOV TH0,#3CH ;装入定时初值
MOV TL0,#0B0H
MOV IP,#02H
MOV IE,#82H ;T0中断允许
MOV DPTR,#TAB
MOV R0,#60
MOV R1,#16
SETB TR0
LOOP1:
MOV A,R0
MOV B,#10
DIV AB
MOVC A,@A+DPTR
MOV P2,#80H
MOV P0,A
ACALL DEL0
MOV A,B
MOVC A,@A+DPTR
MOV P2,#40H
MOV P0,A
ACALL DEL0
AJMP LOOP1
LOOP:
MOV TH0,#3CH
MOV TL0,#0B0H
DJNZ R1,LOOP2
MOV R1,#16
DEC R0
CJNE R0,#0FFH,LOOP2
MOV R0,#60
LOOP2:
RETI
DELAY:
MOV R2,#20
DEL0:
MOV R3,#50
DJNZ R3,$
DJNZ R2,DEL0
RET
TAB:DB 3FH,06H,5BH,4FH,66H
DB 6DH,7DH,07H,7FH,6FH
END
实验五矩阵式键盘的设计
一、实验目的:
1.掌握键盘设计中按键识别的原则。
2.用PROTEUS 设计一个常规4×4的矩阵键盘。
3.键盘编码规则自己定义,分别对应数字键0-9、A-F,按下对应的按
键显示在数码管上显示对应的数据。
二、PROTEUS电路设计:
三、实验仪器和设备
PC机、PROTEUS软件或W-A-51综合开发学习板
四、源程序设计:
根据电路图自行编写并调试。
ORG 0000H
AJMP START
ORG 30H
START:MOV DPTR,#TABLE
MOV P1,#07H
HH: MOV P2,#0F0H
H1: JB P2.4,H2
MOV A,#00H
LJMP LL
H2: JB P2.5,H3
MOV A,#01H
LJMP LL
H3: JB P2.6,H4
MOV A,#02H
LJMP LL
H4: JB P2.7,H1
MOV A,#03H
LL: MOV P2,#0FH
L1: JB P2.0,L2
MOV R0,#00H
LJMP CB
L2: JB P2.1,L3
MOV R0,#01H
LJMP CB
L3: JB P2.2,L4
MOV R0,#02H
LJMP CB
L4: JB P2.3,L1
MOV R0,#03H
CB: MOV B,#04H
MUL AB
ADD A,R0
MOVC A,@A+DPTR
CPL A
MOV P0,A
LJMP HH
TABLE:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H
DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H
END
实验六AD转换程序设计
一、实验目的:
1.掌握转换器ADC0809的使用。
2.用PROTEUS 设计,仿真基于AT89C51单片机的A/D转换实验。
3.通过改变电位器的值改变模拟量的输入,经转换为数字量在LED上
显示,比对模拟量和数字量的关系。
二、PROTEUS电路设计:
三、实验仪器和设备
PC机、PROTEUS软件或W-A-51综合开发学习板四、源程序设计:
根据电路图自行编写并调试。
ORG 0000H
LJMP START
ORG 0030H
TABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H
DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H
START:
MOV R1,#00H
MOV R2,#08H
MOV DPTR,#TABLE
CLR EX0
LOOP:
CLR P2.0
MOVX @R1,A
MOV R3,#20H
DELY: DJNZ R3,DELY
SETB P3.2
WAIT: JB P3.2,WAIT
MOVX A,@R1
MOV R5,A
ANL A,#0FH
MOVC A,@A+DPTR
CPL A
SETB P3.5
CLR P3.4
MOV P1,A
ACALL DLY
MOV A,R5
ANL A,#0F0H
SWAP A
MOVC A,@A+DPTR
CPL A
SETB P3.4
CLR P3.5
MOV P1,A
ACALL DLY
SJMP LOOP
DLY:MOV R4,#175
DL:MOV R6,#125
DL1:DJNZ R6,DL1
DJNZ R4,DL
RET
HERE: SJMP HERE
END
实验七双机通信实验
一、实验目的:
1.掌握单片机串口通信程序的设计。
2.了接RS232接口通信的特点。
3.双机通信:分别把接收到的对方通过逻辑开关输入的信息在本地数码管上显示,如下图甲机的逻辑开关数据为81H,乙机通过串口接收该数据并数码关管显示,而甲机显示乙机发送的数据88H。
二、PROTEUS电路设计:
三、实验仪器和设备
PC机、PROTEUS软件或W-A-51综合开发学习板
四、源程序设计:
根据电路图自行编写并调试。
ORG 0000H
LJMP START
ORG 0050H
START:
MOV TMOD,#20H
MOV TH1,#0FDH
MOV TL1,#0FDH
MOV SCON,#50H
MOV PCON,#00H
SETB TR1
AABB:MOV A,P1
MOV SBUF,A
L1:JBC TI,L2
SJMP L1
L2:JBC RI,NEXT2
JMP L2
EXT2:
OV A,SBUF
MOV P0,A
SJMP AABB
END