西南大学 工程技术学院 机械专业 (机制、机化、车辆) 单片机原理 实验指导书 2012年10月修改
实验一 伟福编程软件、编程器、实验箱的使用
一、实验目的
1. 掌握仿真软件、编程器、实验箱的安装、使用方法 2. 学习P1口的使用方法
3. 学习延时子程序的编写和使用 二、实验说明
使用伟福仿真软件Wave6000、编程器、实验箱。 实验时间:3学时。 三、实验内容及步骤
1. 启动计算机,按照软件安装说明安装伟福仿真软件,进入开发环境。 2. 参照开发环境说明,掌握软件的使用。 3. P1.0 P1.1接发光二极管,参照如下结构,使用软件延时方式,编写程序,控制P1.0
以4Hz、P1.0以2Hz的频率闪烁。
4. 使用编程器、单片机开发实验箱,调试程序,观察发光二极管的闪烁。 5. 写实验报告,内容包括电路原理图,汇编程序,延时的计算,心得体会等 四、程序示例
;P1.0输出以某频率方波,P1.1以其1/2频率输出方波 ORG 00H SJMP MAIN ;跳转到主程序 ORG 30H
MAIN: MOV R0,#02H FP10: CALL DELAY
CPL P1.0
DJNZ R0, FP10 CPL P1.1 MOV R0,#02H SJMP FP10 DELAY: MOV R1,#100 DEL1: MOV R2,#50 DJNZ R2,$ NOP NOP DJNZ R1,DEL1 RET END
;思考:在此例中,P1.0、P1.1输出方波的频率究竟是多少?
实验二 程序设计实验
一、实验目的:
⑴ 熟练掌握80C51汇编语言程序设计方法。 ⑵ 熟练掌握80C51汇编语言程序的调试方法。
二、实验说明
实验时间:2学时。 三、实验内容:
完成从内部数据存储区20H开始的8个单字节数累加、计算平均程序的设计与调试。累加结果存放在29H(高字节)、2AH(低字节),平均数存放在2BH。 四、实验设备:
PC 机 五、思考:
如何使用软件Wave6000调试所编写的计算程序?
六、实验报告要求
1. 整理好执行正确的程序和数据;
2. 写实验报告,内容包括实验项目、内容,汇编程序及其相应的注释说明,实验完成情况,心得体会。
实验三、流水灯
一、实验目的
1. 掌握伟福软件、编程器、实验箱的使用。 2. 体验I/O口的使用。 3. 掌握软件延时的设计。 二、实验说明
实验时间:3学时。 三、实验内容及要求
实验内容:
(一)使用灌电流方式,P1口外接8个发光二极管。编程序,控制发光二极管按一定的频率(2~5赫兹)循环点亮。
(二)发光二极管按一定的频率(2~5赫兹)向左循环点亮50次后,向右左循环点亮50次后,往复进行。
实验要求:
1.补充完整电路原理图。
2.编写相应完整的汇编程序,并完成软件模拟调试。 3.使用编程器、实验箱调试程序。
四、实验设备:
PC机、编程器、THDPJ—1单片机开发综合实验箱
五、部分电路原理图
请自行补充最小系统,及P1口未画完的部分
Vcc P1.0 R1 680欧 LED1 8051
六、实验报告要求
1. 整理好执行正确的程序;
2. 写实验报告,内容包括实验项目、内容,电路原理图,汇编程序,计算说明,实验要求完成情况,心得体会。
实验四、数据段搬移程序设计
一、 实验目的
1. 掌握伟福仿真软件使用。
2. 掌握数据搬移程序的设计。
二、实验说明
实验时间:2学时。 三、实验内容及要求
实验内容:
编程序,将内部数据存储区从地址30H开始的连续16个字节搬到片内数据存储区地址40H开始的连续16个字节,并将地址30H开始的连续16个字节清零。
实验要求:
1.编写程序;
2.先将30H开始的连续16个字节填上数据,再逐步、断点等方法调试程序; 2.编写实验报告。
四、实验设备:
PC机、伟福仿真软件。
实验五、累加程序设计/修改:算术运算程序设计
一、 实验目的
1. 掌握伟福仿真软件使用。 2. 掌握多字节累加程序设计。
二、实验说明
实验时间:2学时。 三、实验内容及要求
实验内容:
编程序,将内部数据存储区从地址30H开始的连续4个双字节数(30H高字节31H低字节、32H高字节33H低字节、34H高字节35H低字节、36H高字节37H低字节)累加,结果存放在38H、39H、3AH(低字节),并计算平均数,存放在3BH、3CH(低字节)。
实验要求:
1.编写程序;
2.先将30H开始的连续4个双字节数数据,再调试程序,多次填上不同数值
观察计算是否正确; 2.编写实验报告。
四、实验设备:
PC机、伟福仿真软件。
实验六、定时器的使用(查询方式)
一、 实验目的
1. 掌握编程器使用。
2. 掌握定时/计数器初始化程序的设计。
3. 掌握使用定时/计数器的方式1、方式2的编程方法。 二、实验说明
实验时间:2学时。 三、实验内容及要求
实验内容
1、选择定时器T1为工作方式1,产生100mS定时,使P1口的八个发光
二极管循环闪亮。
2、选择定时器T1为工作方式2,产生100mS定时,使P1口的八个发光
二极管循环闪亮。
实验要求:
1.补充完整电路原理图; 2.查询方式使用中断;
2.编写相应完整的汇编程序,并完成软件模拟调试; 3.使用编程器、实验箱调试程序。
四、实验设备:
PC机、编程器、THDPJ—1单片机开发综合实验箱
五、部分电路原理图
请自行补充最小系统,及P1口未画完的部分。
Vcc P1.0 R1 680 欧 LED1 8051
六、实验报告要求
1. 整理好执行正确的程序;
2. 写实验报告,内容包括实验项目、内容,电路原理图,汇编程序,定时器的初使化说明,初值计算说明,实验要求完成情况,心得体会。
实验七、定时器的使用(中断方式)
一、实验目的
1. 掌握伟福仿真软件、编程器使用。
2. 掌握定时/计数器初始化程序的设计。
3. 掌握使用定时/计数器的方式1、方式2的编程方法。 二、实验说明
实验时间:2学时。 三、实验内容及要求
实验内容
1、选择定时器T1为工作方式1,产生100mS定时,使P1口的八个发光
二极管循环闪亮。
2、选择定时器T1为工作方式2,产生100mS定时,使P1口的八个发光
二极管循环闪亮。
实验要求:
1.补充完整电路原理图; 2.用中断方式使用定时器;
2.编写相应完整的汇编程序,并完成软件模拟调试; 3.使用编程器、实验箱调试程序。
四、实验设备:
PC机、编程器、THDPJ—1单片机开发综合实验箱
五、部分电路原理图
请自行补充最小系统,及P1口未画完的部分。
Vcc P1.0 R1 680 欧 LED1 8051
六、实验报告要求
1. 整理好执行正确的程序;
2. 写实验报告,内容包括实验项目、内容,电路原理图,汇编程序,定时器的初使化说明,初值计算说明,实验要求完成情况,心得体会。
实验八 同步串口应用于LED静态显示
一、 实验目的
1. 掌握同步串口应用于接口扩展。
2. 掌握七段数码显示设计的基本方法。 二、实验说明
实验时间:3学时。 三、实验内容及要求
实验内容
使用MCS-51单片机的同步串口功能,利用三片8位并行输出串行移位寄存器74LS164,实现000到999的循环显示,每隔100ms将显示数字加一。 实验要求:
1.画出完整电路原理图,并进行实验箱电路连接。 2.编写相应完整的汇编程序,并完成软件模拟调试。 3.使用编程器、实验箱调试程序。
四、实验设备:
PC机、编程器、THDPJ—1单片机开发综合实验箱
六、实验报告要求
1. 整理好执行正确的程序;
2. 写实验报告,内容包括实验项目、内容,电路原理图,汇编程序以及相应当说明注释,实验要求的完成情况,心得体会。
实验九 按键控制LED静态显示
一、 实验目的
1. 掌握同步串口应用于接口扩展。
2. 掌握七段数码显示设计的基本方法。 3. 掌握独立按键查询方式的使用 二、实验说明
实验时间:1学时。 三、实验内容及要求
实验内容
使用MCS-51单片机的同步串口功能,利用三片8位并行输出串行移位寄存器74LS164,实现000到999的循环显示,每按一次按键将显示数字加一。 实验要求:
1.画出完整电路原理图,并进行实验箱电路连接。 2.编写相应完整的汇编程序,并完成软件模拟调试。 3.使用编程器、实验箱调试程序。
四、实验设备:
PC机、编程器、THDPJ—1单片机开发综合实验箱
六、实验报告要求
1. 整理好执行正确的程序;
2. 写实验报告,内容包括实验项目、内容,电路原理图,汇编程序以及相应当说明注释,实验要求的完成情况,心得体会。
实验十 跑表设计
一、 实验目的
1. 掌握同步串口应用于接口扩展。
2. 掌握七段数码显示设计的基本方法。 3. 掌握独立按键中断方式的使用 二、实验说明
实验时间:1学时。 三、实验内容及要求
实验内容
使用MCS-51单片机的同步串口功能,利用五片8位并行输出串行移位寄存器74LS164,实现X分到XX秒XX的显示,按键按下从0分00秒00开始计时,再按按键,时间停止,再按按键,显示数值清零。 实验要求:
1.画出完整电路原理图,并进行实验箱电路连接。 2.编写相应完整的汇编程序,并完成软件模拟调试。 3.使用编程器、实验箱调试程序。
四、实验设备:
PC机、编程器、THDPJ—1单片机开发综合实验箱
六、实验报告要求
1. 整理好执行正确的程序;
2. 写实验报告,内容包括实验项目、内容,电路原理图,汇编程序以及相应当说明注释,实验要求的完成情况,心得体会。
实验二
ORG 0000H SUM: MOV R0,#20H MOV R1,#8 MOV R2,#3 MOV 29H,#00H MOV 2AH,#00H MOV 2BH,#00H LOOP1: MOV A,2AH ADD A,@R0 MOV 2AH,A CLR A
ADDC A,29H MOV 29H,A INC R0
DJNZ R1,LOOP1 MOV 2CH,29H MOV 2DH,2AH LOOP2:CLR C
MOV A,2CH RRC A
MOV 2CH,A MOV A,2DH RRC A
MOV 2DH,A DJNZ R2,LOOP2 MOV 2BH,A RET
实验三 (一)
ORG 0000H SJMP START ORG 30H
START: MOV A,#0FEH NEXT: MOV P1,A
ACALL DELAY RL A
SJMP NEXT DELAY: MOV R3,#10 DEL1: MOV R4,#100 DEL2: MOV R5,#200 DEL3: DJNZ R5,DEL3 DJNZ R4,DEL2 DJNZ R3,DEL1 RET END
(二)
ORG 0000H SJMP START ORG 30H
START: MOV A,#0FEH NEXT: MOV R0,#50 MOV R1,#50 LOOP1: ACALL DELAY MOV P1,A RL A
DJNZ R0,LOOP1 LOOP2: ACALL DELAY MOV P1,A RR A
DJNZ R1,LOOP2 SJMP NEXT DELAY: MOV R3,#10 DEL1: MOV R4,#100 DEL2: MOV R5,#200 DEL3: DJNZ R5,DEL3 DJNZ R4,DEL2 DJNZ R3,DEL1 RET END
实验四
ORG 0000H MOVE:MOV R0,#30H MOV R1,#40H MOV R2,#16 LOOP:MOV A,@R0 MOV @R1,A MOV @R0,#00H INC R0 INC R1
DJNZ R2,LOOP RET
实验五
ORG 0000H
START: MOV R0,#30H MOV R1,#31H MOV R2,#4 MOV R3,#4 MOV R4,#2 MOV 3AH,#00H MOV 39H,#00H MOV 38H,#00H MOV 3CH,#00H MOV 3BH,#00H LOOP1: MOV A,39H ADD A,@R0 MOV 39H,A CLR A
ADDC A,38H MOV 38H,A INC R0 INC R0
DJNZ R2,LOOP1 CLR C
LOOP2: MOV A,3AH ADD A,@R1 MOV 3AH,A
CLR A
ADDC A,39H MOV 39H,A INC R1 INC R1
DJNZ R3,LOOP2 MOV 3DH,38H MOV 3EH,39H MOV 3FH,3AH LOOP3: CLR C
MOV A,3DH RRC A
MOV 3DH,A CLR A MOV A,3EH RRC A
MOV 3EH,A CLR A
MOV A,3FH RRC A
MOV 3FH,A DJNZ R4,LOOP3 MOV 3BH,3EH MOV 3CH,3FH RET
实验六(晶振频率为6MHz) (一)
ORG 0000H
START: MOV TMOD,#10H MOV A,#0FEH SETB TR1
LOOP: MOV TL1,#0B0H MOV TH1,#3CH MOV P1,A JNB TF1,$ CLR TF1 RL A
SJMP LOOP END
(二)
ORG 0000H
START: MOV TMOD,#20H MOV A,#0FEH MOV TH1,#06H MOV TL1,#06H SETB TR1 LOOP1: MOV R0,#200 LOOP2: JNB TF1,$ CLR TF1
DJNZ R0,LOOP2 RL A
MOV P1,A SJMP LOOP1 END
实验七(晶振频率为6MHz) (一)
ORG 0000H SJMP START ORG 001BH SJMP SERV ORG 0030H START: MOV SP,#60H MOV TMOD,#10H MOV TH1,#3CH MOV TL1,#0B0H MOV A,#0FEH MOV P1,A SETB EA SETB ET1 SETB TR1 SJMP $
SERV: MOV TH1,3CH MOV TL1,0B0H RL A
MOV P1,A RETI END
(二)
ORG 0000H
SJMP START ORG 001BH SJMP SERV ORG 0030H START: MOV SP,#60H MOV TMOD,#20H MOV TH1,#06H MOV TL1,#06H MOV A,#0FEH MOV P1,A SETB EA SETB ET1 SETB TR1 MOV R0,#200 LOOP: SJMP $ SERV: CLR TF1
DJNZ R0,LOOP1 RL A
MOV P1,A RETI LOOP1: RETI END
实验八
ORG 0000H
MAIN: MOV SCON,#00H MOV 4AH,#00H MOV 4BH,#00H MOV 4CH,#00H
MOV DPTR,#TAB MOV R0,#10 MOV R1,#10 MOV R2,#10 LOOP:ACALL OT ACALL DELAY
MOV A,4AH INC A
MOV 4AH,A DJNZ R0,LOOP MOV 4AH,#00H MOV R0,#10 MOV A,4BH INC A
MOV 4BH,A DJNZ R1,LOOP MOV 4BH,#00H MOV R1,#10 MOV A,4CH INC A
MOV 4CH,A DJNZ R2,LOOP MOV 4CH,#00H MOV R2,#10 SJMP LOOP OT: MOV A,4CH
MOVC A,@A+DPTR MOV SBUF,A JNB TI,$ CLR TI
MOV A,4BH
MOVC A,@A+DPTR MOV SBUF,A JNB TI,$ CLR TI
MOV A,4AH
MOVC A,@A+DPTR MOV SBUF,A JNB TI,$ CLR TI
MOV A,#00H
MOVC A,@A+DPTR MOV SBUF,A JNB TI,$ CLR TI
MOV A,#00H
MOVC A,@A+DPTR MOV SBUF,A JNB TI,$ CLR TI RET
DELAY: MOV R3, #10 DEL1: MOV R4, #2 DEL2: MOV R5, #25 DEL3: DJNZ R5, DEL3 DJNZ R4, DEL2 DJNZ R3, DEL1 RET TAB: DB
0FCH,60H,0DAH,0F2H,66H,0B6H,0BEH,0E0H DB
0FEH,0F6H,0EEH,3EH,9CH,7AH,9EH,0DEH
实验九
ORG 0000H SETB P3.3
MAIN: MOV 4AH,#00H MOV 4BH,#00H MOV 4CH,#00H MOV DPTR,#TAB
MOV R0,#10 MOV R1,#10 MOV R2,#10 LOOP: MOV A,4CH
MOVC A,@A+DPTR MOV SBUF,A JNB TI,$ CLR TI
MOV A,4BH
MOVC A,@A+DPTR MOV SBUF,A JNB TI,$ CLR TI
MOV A,4AH
MOVC A,@A+DPTR MOV SBUF,A JNB TI,$ CLR TI
MOV A,#00H
MOVC A,@A+DPTR MOV SBUF,A JNB TI,$ CLR TI
MOV A,#00H
MOVC A,@A+DPTR
MOV SBUF,A JNB TI,$ CLR TI JB P3.3,$ JNB P3.3,$
MOV A,4AH INC A
MOV 4AH,A DJNZ R0,LOOP MOV 4AH,#00H MOV R0,#10 MOV A,4BH INC A
MOV 4BH,A DJNZ R1,LOOP MOV 4BH,#00H MOV R1,#10 MOV A,4CH INC A
MOV 4CH,A DJNZ R2,LOOP MOV 4CH,#00H MOV R2,#10 SJMP LOOP TAB: DB
0FCH,60H,0DAH,0F2H,66H,0B6H,0BEH,0E0H DB
0FEH,0F6H,0EEH,3EH,9CH,7AH,9EH,0DEH
实验十 MOV 4CH,A ORG 0000H DJNZ R2,TJ SETB P3.3 MOV 4CH,#00H MAIN: MOV 4AH,#00H MOV R2,#10 MOV 4BH,#00H MOV A,4DH MOV 4CH,#00H INC A MOV 4DH,#00H MOV 4DH,A MOV 4EH,#00H DJNZ R3,TJ MOV R0,#10 MOV 4DH,#00H MOV R1,#10 MOV R3,#6 MOV R2,#10 MOV A,4EH MOV R3,#6 INC A MOV R4,#10 MOV 4EH,A MOV DPTR,#TAB DJNZ R4,TJ ACALL OT MOV 4EH,#00H JB P3.3,$ MOV R4,#10 JNB P3.3,$ TJ: JB P3.3,LOOP LOOP:ACALL OT JNB P3.3,$ ACALL DELAY JB P3.3,$ MOV A,4AH JNB P3.3,$ INC A SJMP MAIN MOV 4AH,A OT: MOV A,4EH DJNZ R0,TJ MOVC MOV 4AH,#00H A,@A+DPTR MOV R0,#10 MOV SBUF,A MOV A,4BH JNB TI,$ INC A CLR TI MOV 4BH,A MOV A,4DH DJNZ R1,TJ MOVC MOV 4BH,#00H A,@A+DPTR MOV R1,#10 MOV SBUF,A MOV A,4CH JNB TI,$ INC A CLR TI
ORG 0000H
START:MOV P1,#00H ACALL DELAY
MOV P1,#0FFH ACALL DELAY SJMP START
DELAY: MOV R3,#0FFH DEL2: MOV R4,#0FFH
DEL1: NOP DJNZ R4,DEL1
MOV A,4CH MOVC A,@A+DPTR
MOV SBUF,A JNB TI,$ CLR TI
MOV A,4BH MOVC A,@A+DPTR
MOV SBUF,A JNB TI,$ CLR TI
MOV A,4AH MOVC A,@A+DPTR
MOV SBUF,A JNB TI,$ CLR TI RET
DELAY: MOV R5, #10 DEL1: MOV R6, #5 DEL2: MOV R7, #25 DEL3: DJNZ R7, DEL3 DJNZ R6, DEL2 DJNZ R5, DEL1 RET TAB: DB
0FCH,60H,0DAH,0F2H,66H,0B6H,0BEH,0E0H DB
0FEH,0F6H,0EEH,3EH,9CH,7AH,9EH,0DEH
DJNZ R3,DEL2 RET END
ORG 0000H SJMP START ORG 30H
START: MOV A,#0FEH ;送显示模式字
NEXT: MOV P1,A ;点亮二极管 ACALL DELAY RL A 改变显示模式字
SJMP NEXT DELAY: MOV R3,#0FFH DEL2: MOV R4,#0FFH DEL1: NOP DJNZ R4,DEL1 DJNZ R3,DEL2 RET END
;左移一位,下面一个二极管 ;延时子程序开始 ;
因篇幅问题不能全部显示,请点此查看更多更全内容