您的当前位置:首页正文

单片机原理实验指导书及其程序

2020-09-17 来源:易榕旅网


西南大学 工程技术学院 机械专业 (机制、机化、车辆) 单片机原理 实验指导书 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

;左移一位,下面一个二极管 ;延时子程序开始 ;

因篇幅问题不能全部显示,请点此查看更多更全内容