MCS51单片机实验及课程设计指导书.docx
- 文档编号:8195773
- 上传时间:2023-01-29
- 格式:DOCX
- 页数:32
- 大小:303KB
MCS51单片机实验及课程设计指导书.docx
《MCS51单片机实验及课程设计指导书.docx》由会员分享,可在线阅读,更多相关《MCS51单片机实验及课程设计指导书.docx(32页珍藏版)》请在冰豆网上搜索。
MCS51单片机实验及课程设计指导书
MCS—51单片机实验及课程设计指导书
电子工程系单片机教研组
杨打生康瑞芳王忠远编写
内蒙古电子信息职业技术学院
2006.3
实验
实验一:
WAVE软件使用
实验二:
常用指令的使用练习
实验三:
循环程序
实验四:
查表程序
实验五:
数制转换程序
实验六实用子程序:
(编程器的使用)
实验七:
中断/定时程序
实验八:
输入检测与输出显示程序
课设
一、课程设计目的和意义
二、实验电路系统的结构和使用方法
三、设计参考题目介绍和设计提示性思考题
四、设计任务书及要求
五、课程设计报告格式及要求
六、考核办法
七、课程设计内容及学时安排
实验一:
WAVE软件使用
一、预习内容
1、试验目的:
学习WAVE软件安装和基本使用。
2、WAVE软件的安装
选择WAVE文件夹下的SETUP.EXE文件并双击接着下一步最后到完成。
3、安装后写出软件窗口中工具栏中各按钮的名称。
参考说明书
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
4、写出下面二实例各条指令的含义
二、试验内容
实例一指令的含义
ORG0000H
MOVR0,#01H
L1:
MOVA,R0
MOVP0,A
INCR0
AJMPL1
END
实例二
ORG0000H指令的含义
MOVR0,#01H
L2:
MOVA,R0
MOVP2,A
RLA
MOVR0,A
LJMPL2
END
1、打开WAVE见面,新建一个文件后输入实例一程序内容,并保存在我的文档名为A1.ASM,执行编译按钮或项目菜单中的编译
2、编译后,如正确扫描过去,不正确提示出错信息修改后再编译直到不提示错误为止。
3、打开窗口中的CPU窗口和数据窗口的CODE和DADE写出每条指令的机器操作代码。
4、打开窗口中的平排窗口,这样程序窗口、CPU窗口、数据存储器窗口就并排在整个屏幕。
5、点击单步按钮或F8键进行单步操作。
6、观测CPU窗口的A、P0和数据存储器窗口R0的状态并列表1记录每循环一次下列寄存器的值。
表一
循环次数
1
2
3
4
5
6
7
8
9
起始R0
A
P0
结束R0
8、新建一个文件后输入实例二程序内容,并保存在我的文档名为A2.ASM,执行编译按钮或项目菜单中的编译
9、重复上述2-6步填写下表二
循环次数
1
2
3
4
5
6
7
8
9
起始R0
起始A
P2
结束A
结束R0
三、实验报告要求
1、写出上述两试验程序各条指令的含义(与预习时相比是否一致)。
2、整理表一和表二的数据,分析他们各自实现的功能。
3、写出CPU窗口20个特殊功能寄存器及其功能。
实验二:
常用指令的使用练习
一、预习内容
1、在WAVE软件平台下学习常用指令的特点。
2、写出下面二实例各条指令的含义
3、写出二实例实现的功能
二、试验内容
实例一
ORG0000H指令的含义机器操作代码
MOVPSW,#08H
MOV30H,#25
MOVR0,#30H
MOVA,@R0
MOVDPTR,#0006H
MOVA,#35H
MOVX@DPTR,A
MOVA,R0
MOVX@DPTR,A
MOVCA,@A+DPTR
SJMP$
功能:
1、将程序输入编辑器,保存文件名为MOV.ASM
2、对源程序进行编译,修改语法错误
3、打开窗口中的CPU窗口和数据窗口的CODE、DADE和XDATE写出每条指令的机器操作代码。
4、打开窗口中的平排窗口,这样程序窗口、CPU窗口、内外数据存储器窗口和程序存储器窗口就并排在整个屏幕。
5、单步执行写出R0在数据存储单元中的地址,执行到SJMP时R0.、DPTR、A的内容
实例二指令的含义机器操作代码A.P0
ORG0000H
mova,#34h
movp0,#56h
MOVB,#12H
LCALLPP
SJMP$
PP:
pusha
pushp0
mova,#78h
movp0,a
popp0
popa
RET
END
1、将程序输入编辑器,保存文件名为stack.ASM
2、对源程序进行编译,修改语法错误
3、打开窗口中的CPU窗口和数据窗口的CODE和DADE写出每条指令的机器操作代码。
4、打开窗口中的平排窗口,这样程序窗口、CPU窗口、数据存储器窗口就并排在整个屏幕。
5、单步执行根据CPU窗口信息、写出每条指令A.P0的值(在程序后)。
三、实验报告要求
1、写出上述两试验程序各条指令的含义(与预习时相比是否一致),整理试验一试验二的结果。
2、区分实例一各条传输指令的不同。
3、写出指令在执行调用时堆栈SP的变化过程和堆栈在堆栈区所保存内容。
实验三:
循环程序
一、预习内容
1、实验目的:
1)掌握循环程序的结构。
(循环变量初值、循环变量的修改、循环体执行的条件)。
2)循环程序的执行过程
3)了解循环的嵌套。
2、写出下面二实例各条指令的含义。
3、试写出各实例实现的功能和实验一DELAY子程序的延时时间为多少。
二、实验内容
实例一:
试验内容实验题目:
流水灯
程序清单:
指令的含义。
ORG0000H
LJMPSTART
ORG0100H
START:
MOVR7,#08H
MOVA,#01H
LOOP:
MOVP1,A
ACALLDELAY
RRA
DJNZR7,LOOP
SJMPLOOP
DELAY:
MOV R6,#100
LL2:
MOV R5,#255
LL1:
NOP
DJNZ R5,LL1
DJNZ R6,LL2
RET
END
实验步骤:
1、将程序输入编辑器,保存文件名为LSD.ASM
2、对源程序进行编译,修改语法错误。
3、运行程序使程序窗口和CPU窗口并排,观察CPU窗口P0口的变化状态现。
现象:
4、将指令RR A 改为RL A再编译运行,观察P0口现象。
现象:
5、将DELAY中MOVR6, #100中100分别改为10和200后编译运行,观察P0口现象。
现象:
结论:
实例二冒泡排序法
•数据排序常用的方法是冒泡排序法。
原则:
执行时从前向后进行相邻数的比较,如数据的大小次序与要求的顺序不符就将这两个数互换,否则不互换。
对于升序排序,通过这种相邻数的互换,使小数向前移动,大数向后移动。
从前向后进行一次冒泡(相邻数的互换),就会把最大的数换到最后。
再进行一次冒泡,就会把次大的数排在倒数第二的位置。
•无符号数排序程序。
设在片内RAM中,起始地址为30H的8个单元中存放有8个无符号数。
设R7为比较次数计数器,初始值为07H,位地址00H为数据互换标志位。
对这些无符号数进行升序排序。
程序清单:
START:
CLR00H
MOVR7,#07H
MOVR0,#30H
LOOP:
MOVA,@R0
MOV2BH,A
INCR0
MOV2AH,@R0
CLRC
SUBBA,@R0
JCNEXT
MOV@R0,2BH
DECR0
MOV@R0,2AH
INCR0
SETB00H
NEXT:
DJNZR7,LOOP
JB00H,START
SJMP$
1、在WAVE软件中输入上述程序并保存为*.ASM文件,编译后,打开窗口中数据窗口的DATA,并使程序窗口与数据窗口DATA的并排。
2、在数据窗口DATA中30H---37H填入8个两位十六进制数。
存储单元
30H
31H
32H
33H
34H
35H
36H
37H
排列前
65H
32H
58H
56H
42H
78H
36H
20H
排列后
3、用单步执行观测30H---37H单元内容的变化。
三、实验报告要求
1、出上述两试验程序各条指令的含义(与预习时相比是否一致),整理实例一、实例二的结果。
2、试分析在实例一如何实现霓虹灯(彩灯)的控制。
实验四:
查表程序
一、预习内容
1、试验目的:
掌握顺序程序中查表程序的常用指令和其特点。
2、写出下面二实例各条指令的含义。
3、试写出各实例实现的功能。
二、试验内容
实例一平方表
•在程序存储器的一片存储单元中建立起该变量的平方表。
用数据指针DPTR指向平方表的首址,则变量与数据指针之和的地址单元中的内容就是变量的平方值。
程序段如下:
START:
指令的含义
MOVA,30H
ACALLSQR
MOVR1,A
MOVA,31H
ACALLSQR
ADDA,R1
MOV32H,A
SJMP$
SQR:
MOVDPTR,#TAB
MOVCA,@A+DPTR;
RET
TAB:
DB0,1,4,9,16,25,36,49,64,81
1、在WAVE软件中输入上述程序并保存为*.ASM文件,编译后,打开窗口中数据窗口的DATA,并使程序窗口与数据窗口DATA的并排。
2、在数据窗口DATA中30H---32H填入8个两位十六进制数将执行后的结果填入下表。
存储单元
30H
31H
32H
执行前
03H
06H
00H
执行后
3、写出DB数据表格在程序存储器的地址
地址
数据
0
1
4
9
16
25
36
49
64
81
实例二
一、七段显示器的原理
共阴共阳
二、代码转换显示(共阴)
指令的含义
ORG0000H
LJMPSTART
ORG0030H
START:
MOVA,R3
MOVDPTR,#TABLE
MOVCA,@A+DPTR
MOVP0,A
SJMP$
TABLE:
DB3FH,06H,5BH,4FH,66H
DB6DH,7DH,07H,7FH,6FH
END
1、在WAVE软件中输入上述程序并保存为*.ASM文件,编译后,打开CPU窗口和数据窗口的DATA,并使程序窗口、数据窗口DATA和CODE、CPU窗口并排。
2、在DATE窗口R3(03H)单元填入00。
3、用单步执行到SJMP$观测P0口的数据并记录。
4、修改R3的内容重新编译在执行第二、三步填写下表。
R3
02H
04H
08H
03H
05H
0AH
10H
P0
三、实验报告要求
1、写出上述两试验程序各条指令的含义(与预习时相比是否一致),整理实例一、实例二的结果。
2、试分析在实例一如何采用MOVCA,@A+PC指令也可以实现查表功能,(且不破坏DPTR的内容,从而可以减少保护DPTR的内容所需的开销。
但表格只能存放在MOVCA,@A+PC指令后的256字节内,即表格存放的地点和空间有一定限制)。
3、在实例二如采用共阳数码管数据表DB应为什么?
实验五:
数制转换程序
一、预习内容
1、写出下面二实例各条指令的含义
2、各实例实现的功能.
3、试写出各实例实现的功能
二、试验内容
实例一
单字节十六进制整数转换成单字节BCD码整数
入口条件:
待转换的单字节十六进制整数在累加器A中。
出口信息:
转换后的BCD码整数(十位和个位)仍在累加器A中,百位在R3中。
影响资源:
PSW、A、B、R3堆栈需求:
2字节
HBCD:
指令的含义
MOVB,#100;
DIVAB
MOVR3,A
MOVA,#10;
XCHA,B
DIVAB
SWAPA
ORLA,B;
SJMP$
RET
1、在WAVE软件中输入上述程序并保存为*.ASM文件,编译后,打开CPU窗口和数据窗口的DATA,并使程序窗口、数据窗口DATA、CPU窗口并排。
2、在CPU窗口A单元写入55H或填入“01010101”。
3、用单步执行到SJMP$观测A的数据和R3单元内容并记录。
4、修改A的内容重新编译在执行第二、三步填写下表。
执行前A
65H
FEH
98H
76H
83H
69H
85H
执行后A
R3
实例二、
双字节二进制数转换成BCD码。
设(R2R3)为双字节二进制数,(R4R5R6)为转换完的压缩型BCD码。
十进制数B与一个8位的二进制数的关系可以表示为:
只要依十进制运算法则,将bi(i=7,6,……,1,0)按权相加,就可以得到对应的十进制数B。
(逐次得到:
b7×20;b7×21+b6×20;b7×22+b6×21+b5×20;…)。
DCDTH:
指令的含义
CLRA
MOVR4,A
MOVR5,A
MOVR6,A
MOVR7,#16
LOOP:
CLRC
MOVA,R3
RLCA
MOVR3,A
MOVA,R2
RLCA
MOVR2,A
MOVA,R6
ADDCA,R6
DAA
MOVR6,A
MOVA,R5
ADDCA,R5
DAA
MOVR5,A
MOVA,R4
ADDCA,R4
DAA
MOVR4,A
DJNZR7,LOOP
SJMP$
1、在WAVE软件中输入上述程序并保存为*.ASM文件,编译后,打开CPU窗口和数据窗口的DATA,并使程序窗口、数据窗口DATA、CPU窗口并排。
2、在R2.R3单元中填入如下表格数据,用单步执行到SJMP$观测R3、R4、R5单元的内容并记录填写下表。
R2
10H
01H
FFH
84H
76H
R3
00H
00H
00H
65H
4BH
R4
R5
R6
R2
56H
54H
79H
30H
FFH
R3
78H
65H
54H
54H
E0H
R4
R5
R6
三、实验报告要求
1、写出上述两试验程序各条指令的含义(与预习时相比是否一致),整理实例一、实例二的结果。
2、试分析在实例一采用实例二的算法来编写程序
3、试分析在实例二采用实例一的算法来编写程序
实验六实用子程序:
(编程器的使用)
一、预习内容
1、学习单片机编程器的使用
2、写出下面实例各条指令的含义
3、各实例实现的功能
LABTOOL-48编程器的使用
编程器菜单和工具兰按钮如下图1所示操作步骤如下:
1、选择(所要编程芯片的类型、厂家、设备)见图2
2、擦除(擦除芯片的数据,读出出后程序存储单元全为FFH)
3、调入(调入的程序扩展名为BIN将写入代编程的程序存储器)
4、编辑(看到将写入程序存储器单元的机器代码)见图3
5、编程(机器代码写入程序存储器单元)
6、读出、编辑后将看到写入程序存储器单元的机器代码
图1
图2
图3
二、试验内容指令的含义
实验题目:
流水灯
程序清单:
ORG0000H
LJMPSTART
CSEGAT0100H
START:
MOVR7,#08H
MOVR2,#01H
MOVA,R2
LOOP:
MOVP1,A
ACALLDELAY
RRA
DJNZR7,LOOP
SJMPSTART
DELAY:
MOV R6,#100
LL2:
MOV R5,#255
LL1:
NOP
DJNZ R5,LL1
DJNZ R6,LL2
RET
END
1、在WAVE软件中输入上述程序并保存为*.ASM文件,编译后,打开CPU窗口和数据窗口的DATA,并使程序窗口、数据窗口DATA、CPU窗口并排,进行调试。
2、调试无误后,用编程器把程序(在WAVE编译后形成相应扩展名为BIN文件)写入单片机的程序存储器。
3、试验电路板硬件连接,用排线将P1口经驱动器输出到LED显示。
驱
动
器
8路
发光
二极管
显示
AT89
C51
P0
三、实验报告要求
1、写出上述实验程序各条指令的含义(与预习时相比是否一致),整理实验的结果。
2、试分析改变R2的值将影响什么?
3、试分析改变R5、R6的值将影响什么?
实验七:
中断/定时程序
一、预习内容
1、写出下面实例各条指令的含义
2、试写出试验实现的功能
二、试验内容
实验题目:
产生方波
实验目的:
1掌握定时/计数器的工作原理。
2掌握定时/计数器的初始化过程。
3掌握中断申请、中断响应及中断返回的过程。
实验要求:
从P1.0输出周期为100ms的方波。
用T0工作在方式1。
已知fosc=6MHz.
实验步骤:
1从P1.0引一根导线到1个发光二极管。
2计算初值X=216-0.5ms/2μs=40536=9e58H
3将程序输入编辑器,保存文件名为FBO.ASM
程序清单:
ORG0000H指令的含义
LJMPSTART
CSEG AT000BH
LJMPZHDUAN
ORG0100H
START:
MOVTMOD,#01H
MOVTH0,#9EH
MOVTL0,#58H
SETBEA
SETBET0
SETBTR0
SJMP$
ZHDUAN:
CPLP1.0
MOVTH0,#9EH
MOVTL0,#58H
RETI
END
4对源程序进行编译,修改语法错误。
5运行程序以,观察现象。
现象:
,
三、实验报告要求
1、写出上述实验程序各条指令的含义(与预习时相比是否一致),整理实的结果。
2、中断程序中MOVTH0,#9EH和MOVTL0,#58H指令可去掉吗?
为什么?
3、试分析改变TMOD数据的值将影响什么?
实验八:
输入检测与输出显示
一、预习内容
1、学习单片机编程器的使用
2、写出下面实例各条指令的含义和在DB后填入合适的数据
3、写出下实例实现的功能
二、试验内容
实验题目:
按键输入与代码转换显示
实验板数码管的实际状态(e表示小数点)
ORG0000H
START:
指令的含义
MOVR3,#00H
MOVP1,#0FFH
PD:
MOVA,P1
CJNEA,#0FFH,SB
SJMPPD
SB:
CLRC
RRCA
INCR3
JNCSB
MOVA,R3
MOVDPTR,#TABLE
MOVCA,@A+DPTR
MOVP0,A
SJMP$
TABLE:
DB
DB
END
1、在WAVE软件中输入上述程序并保存为*.ASM文件,编译后,打开CPU窗口和数据窗口的DATA,并使程序窗口、数据窗口DATA、CPU窗口并排。
2、模拟调试与实际功能是否一致并修改。
3、调试无误后,用编程器把程序写入单片机的程序存储器。
4、试验电路板硬件连接,用排线将8个微动开关接入P1口,P0口经驱动器输出到数码管显示。
硬件连接框图
八个微动开关
AT89
C51
驱
动
器
数码管
显示
按动
开关
1
2
3
4
5
6
7
8
显示
三、实验报告要求
1、写出上述两试验程序各条指令的含义(与预习时相比是否一致),整理实验结果。
2、试分析改变R3的值将影响什么?
3、试分析改变DB数据的值将影响什么?
课设
一、课程设计目的和意义
课程设计是一个综合应用课程知识的教学环节,要求学生能够将课程知识系统的联系起来,根据任务要求,科学合理地选择相应理论知识,培养学生应用课程知识解决实际问题的能力,提高对课程内容的认识和理解,培养学生分析问题、解决问题的思维能力。
提高学生全局考虑问题、综合应用专业知识的能力。
要完成设计任务,学生必须全局考虑单片机的软件、硬件知识,学习相应功能的实现方法,掌握简单的外部电路功能,了解单片机和外部电路的接口电路,设计接口协议,合理分配硬件、软件资源,综合利用专业知识。
单片机课程设计要求学生进一步了解单片机的硬件结构。
根据设计任务和单片机的功能,分析用单片机的功能实现设计任务的方法,充分考虑单片机的各种功能,最大限度的利用单片机软件、硬件资源,考虑硬件、软件资源的分配,力求以最低的成本实现设计任务要求的功能。
通过单片机课程设计要求学生能够更好的理解单片机的组成,理解单片机各个组成部分的功能和应用,了解单片机的广泛应用,学习单片机的应用方法。
通过单片机课程设计,可以提高学生的编程能力。
课程设计的题目都是日常生活中经常见到的内容,学生容易接受和理解设计任务的要求,如何科学合理的应用单片机知识实现设计任务是单片机课程设计的主要目的。
根据设计任务全面考虑课程知识,按照设计要求将任务分解,设计控制流程,体现了模块化设计的基本思想。
组织学过的各种语句实现相应的功能控制,既可以学习程序编制方法,又可以进一步加深对每个语句的理解,巩固各条语句的使用语法,提高学生的编程水平。
单片机课程设计可以提高学生的实际操作水平。
电路板包含了单片机最小系统和课程设计各项目所需的主要元件,学生需要根据电路板上提供的元件进行硬件选择,分配硬件资源和软件资源,画出硬件原理图和连接图,根据硬件原理图和题目要求编写设计框图和相关程序,用仿真软件进行调试和连
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MCS51 单片机 实验 课程设计 指导书