MCS51单片机实验及课程设计指导书文档格式.docx
《MCS51单片机实验及课程设计指导书文档格式.docx》由会员分享,可在线阅读,更多相关《MCS51单片机实验及课程设计指导书文档格式.docx(31页珍藏版)》请在冰豆网上搜索。
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
一、打开WAVE见面,新建一个文件后输入实例一程序内容,并保留在我的文档名为,执行编译按钮或项目菜单中的编译
二、编译后,如正确扫描过去,不正确提示犯错信息修改后再编译直到不提示错误为止。
3、打开窗口中的CPU窗口和数据窗口的CODE和DADE写出每条指令的机械操作代码。
4、打开窗口中的平排窗口,如此程序窗口、CPU窗口、数据存储器窗口就并排在整个屏幕。
五、点击单步按钮或F8键进行单步操作。
六、观测CPU窗口的A、P0和数据存储器窗口R0的状态并列表1记录每循环一次以下寄放器的值。
表一
循环次数
起始R0
A
P0
结束R0
八、新建一个文件后输入实例二程序内容,并保留在我的文档名为,执行编译按钮或项目菜单中的编译
九、重复上述2-6步填写下表二
起始A
P2
结束A
三、实验报告要求
1、写出上述两实验程序各条指令的含义(与预习时相较是不是一致)。
2、整理表一和表二的数据,分析他们各自实现的功能。
3、写出CPU窗口20个特殊功能寄放器及其功能。
一、在WAVE软件平台下学习经常使用指令的特点。
二、写出下面二实例各条指令的含义
3、写出二实例实现的功能
实例一
ORG0000H指令的含义机械操作代码
MOVPSW,#08H
MOV30H,#25
MOVR0,#30H
MOVA,@R0
MOVDPTR,#0006H
MOVA,#35H
MOVX@DPTR,A
MOVA,R0
MOVCA,@A+DPTR
SJMP$
功能:
一、将程序输入编辑器,保留文件名为
二、对源程序进行编译,修改语法错误
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
五、单步执行依照CPU窗口信息、写出每条指令的值(在程序后)。
1、写出上述两实验程序各条指令的含义(与预习时相较是不是一致),整理实验一实验二的结果。
2、区分实例一各条传输指令的不同。
3、写出指令在执行调历时堆栈SP的转变进程和堆栈在堆栈区所保留内容。
1)把握循环程序的结构。
(循环变量初值、循环变量的修改、循环体执行的条件)。
2)循环程序的执行进程
3)了解循环的嵌套。
二、写出下面二实例各条指令的含义。
3、试写出各实例实现的功能和实验一DELAY子程序的延不时刻为多少。
实例一:
实验内容实验题目:
流水灯
程序清单:
指令的含义。
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
实验步骤:
二、对源程序进行编译,修改语法错误。
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
SETB00H
NEXT:
DJNZR7,LOOP
JB00H,START
SJMP$
一、在WAVE软件中输入上述程序并保留为*.ASM文件,编译后,打开窗口中数据窗口的DATA,并使程序窗口与数据窗口DATA的并排。
二、在数据窗口DATA中30H---37H填入8个两位十六进制数。
存储单元
30H
31H
32H
33H
34H
35H
36H
37H
排列前
65H
58H
56H
42H
78H
20H
排列后
3、用单步执行观测30H---37H单元内容的转变。
1、出上述两实验程序各条指令的含义(与预习时相较是不是一致),整理实例一、实例二的结果。
2、试分析在实例一如何实现霓虹灯(彩灯)的操纵。
把握顺序程序中查表程序的经常使用指令和其特点。
3、试写出各实例实现的功能。
实例一平方表
•在程序存储器的一片存储单元中成立起该变量的平方表。
用数据指针DPTR指向平方表的首址,那么变量与数据指针之和的地址单元中的内容确实是变量的平方值。
程序段如下:
指令的含义
MOVA,30H
ACALLSQR
MOVR1,A
MOVA,31H
ADDA,R1
MOV32H,A
SJMP$
SQR:
MOVDPTR,#TAB
MOVCA,@A+DPTR;
TAB:
DB0,1,4,9,16,25,36,49,64,81
二、在数据窗口DATA中30H---32H填入8个两位十六进制数将执行后的结果填入下表。
执行前
03H
06H
00H
执行后
3、写出DB数据表格在程序存储器的地址
地址
数据
25
36
49
64
81
实例二
一、七段显示器的原理
二、代码转换显示(共阴)
LJMPSTART
ORG0030H
MOVA,R3
MOVDPTR,#TABLE
MOVCA,@A+DPTR
SJMP$
TABLE:
DB3FH,06H,5BH,4FH,66H
DB6DH,7DH,07H,7FH,6FH
一、在WAVE软件中输入上述程序并保留为*.ASM文件,编译后,打开CPU窗口和数据窗口的DATA,并使程序窗口、数据窗口DATA和CODE、CPU窗口并排。
二、在DATE窗口R3(03H)单元填入00。
3、用单步执行到SJMP$观测P0口的数据并记录。
4、修改R3的内容从头编译在执行第二、三步填写下表。
R3
02H
04H
08H
05H
0AH
10H
1、写出上述两实验程序各条指令的含义(与预习时相较是不是一致),整理实例一、实例二的结果。
2、试分析在实例一如何采纳MOVCA,@A+PC指令也能够实现查表功能,(且不破坏DPTR的内容,从而能够减少爱惜DPTR的内容所需的开销。
但表格只能寄存在MOVCA,@A+PC指令后的256字节内,即表格寄存的地址和空间有必然限制)。
3、在实例二如采纳共阳数码管数据表DB应什么缘故?
一、写出下面二实例各条指令的含义
二、各实例实现的功能.
3、试写出各实例实现的功能
单字节十六进制整数转换成单字节BCD码整数
入口条件:
待转换的单字节十六进制整数在累加器A中。
出口信息:
转换后的BCD码整数(十位和个位)仍在累加器A中,百位在R3中。
阻碍资源:
PSW、A、B、R3堆栈需求:
2字节
HBCD:
MOVB,#100;
DIVAB
MOVR3,A
MOVA,#10;
XCHA,B
SWAPA
ORLA,B;
RET
一、在WAVE软件中输入上述程序并保留为*.ASM文件,编译后,打开CPU窗口和数据窗口的DATA,并使程序窗口、数据窗口DATA、CPU窗口并排。
二、在CPU窗口A单元写入55H或填入“01010101”。
3、用单步执行到SJMP$观测A的数据和R3单元内容并记录。
4、修改A的内容从头编译在执行第二、三步填写下表。
执行前A
FEH
98H
76H
83H
69H
85H
执行后A
实例二、
双字节二进制数转换成BCD码。
设(R2R3)为双字节二进制数,(R4R5R6)为转换完的紧缩型BCD码。
十进制数B与一个8位的二进制数的关系能够表示为:
只要依十进制运算法那么,将bi(i=7,6,……,1,0)按权相加,就能够够取得对应的十进制数B。
(逐次取得:
b7×
20;
21+b6×
22+b6×
21+b5×
20;
…)。
DCDTH:
CLRA
MOVR4,A
MOVR5,A
MOVR6,A
MOVR7,#16
MOVA,R3
RLCA
MOVR3,A
MOVA,R2
MOVR2,A
MOVA,R6
ADDCA,R6
DAA
MOVA,R5
ADDCA,R5
MOVA,R4
ADDCA,R4
DJNZR7,LOOP
二、在单元中填入如下表格数据,用单步执行到SJMP$观测R3、R4、R5单元的内容并记录填写下表。
R2
01H
FFH
84H
4BH
R4
R5
R6
54H
79H
E0H
一、写出上述两实验程序各条指令的含义(与预习时相较是不是一致),整理实例一、实例二的结果。
2、试分析在实例一采纳实例二的算法来编写程序
3、试分析在实例二采纳实例一的算法来编写程序
1、学习单片机编程器的利用
二、写出下面实例各条指令的含义
3、各实例实现的功能
LABTOOL-48编程器的利用
编程器菜单和工具兰按钮如以下图1所示操作步骤如下:
一、选择(所要编程芯片的类型、厂家、设备)见图2
二、擦除(擦除芯片的数据,读出出后程序存储单元全为FFH)
3、调入(调入的程序扩展名为BIN将写入代编程的程序存储器)
4、编辑(看到将写入程序存储器单元的机械代码)见图3
五、编程(机械代码写入程序存储器单元)
六、读出、编辑后将看到写入程序存储器单元的机械代码
图1
图2
图3
二、实验内容指令的含义
实验题目:
CSEGAT0100H
MOVR2,#01H
MOVA,R2
LOOP:
SJMPSTART
一、在WAVE软件中输入上述程序并保留为*.ASM文件,编译后,打开CPU窗口和数据窗口的DATA,并使程序窗口、数据窗口DATA、CPU窗口并排,进行调试。
二、调试无误后,用编程器把程序(在WAVE编译后形成相应扩展名为BIN文件)写入单片机的程序存储器。
3、实验电路板硬件连接,用排线将P1口经驱动器输出到LED显示。
P0
一、写出上述实验程序各条指令的含义(与预习时相较是不是一致),整理实验的结果。
二、试分析改变R2的值将阻碍什么?
3、试分析改变R五、R6的值将阻碍什么?
一、写出下面实例各条指令的含义
二、试写出实验实现的功能
产生方波
实验目的:
1把握按时/计数器的工作原理。
2把握按时/计数器的初始化进程。
3把握中断申请、中断响应及中断返回的进程。
实验要求:
从输出周期为100ms的方波。
用T0工作在方式1。
已知fosc=6MHz.
1从引一根导线到1个发光二极管。
2计算初值X=216-2μs=40536=9e58H
3将程序输入编辑器,保留文件名为
ORG0000H指令的含义
CSEG AT000BH
LJMPZHDUAN
ORG0100H
MOVTMOD,#01H
MOVTH0,#9EH
MOVTL0,#58H
SETBEA
SETBET0
SETBTR0
ZHDUAN:
CPL
RETI
4对源程序进行编译,修改语法错误。
5运行程序以,观看现象。
,
一、写出上述实验程序各条指令的含义(与预习时相较是不是一致),整理实的结果。
二、中断程序中MOVTH0,#9EH和MOVTL0,#58H指令可去掉吗?
什么缘故?
3、试分析改变TMOD数据的值将阻碍什么?
输入检测与输出显示
一、学习单片机编程器的利用
二、写出下面实例各条指令的含义和在DB后填入适合的数据
3、写出下实例实现的功能
按键输入与代码转换显示
实验板数码管的实际状态(e表示小数点)
指令的含义
MOVR3,#00H
MOVP1,#0FFH
PD:
MOVA,P1
CJNEA,#0FFH,SB
SJMPPD
SB:
CLRC
RRCA
INCR3
JNCSB
DB
DB
二、模拟调试与实际功能是不是一致并修改。
3、调试无误后,用编程器把程序写入单片机的程序存储器。
4、实验电路板硬件连接,用排线将8个微动开关接入P1口,P0口经驱动器输出到数码管显示。
硬件连接框图
按动
开关
显示
一、写出上述两实验程序各条指令的含义(与预习时相较是不是一致),整理实验结果。
二、试分析改变R3的值将阻碍什么?
3、试分析改变DB数据的值将阻碍什么?
课设
一、课程设计目的和意义
课程设计是一个综合应用课程知识的教学环节,要求学生能够将课程知识系统的联系起来,依照任务要求,科学合理地选择相应理论知识,培育学生应用课程知识解决实际问题的能力,提高对课程内容的熟悉和明白得,培育学生分析问题、解决问题的思维能力。
提高学生全局考虑问题、综合应用专业知识的能力。
要完成设计任务,学生必需全局考虑单片机的软件、硬件知识,学习相应功能的实现方式,把握简单的外部电路功能,了解单片机和外部电路的接口电路,设计接口协议,合理分派硬件、软件资源,综合利用专业知识。
单片机课程设计要求学生进一步了解单片机的硬件结构。
依照设计任务和单片机的功能,分析用单片机的功能实现设计任务的方式,充分考虑单片机的各类功能,最大限度的利用单片机软件、硬件资源,考虑硬件、软件资源的分派,力求以最低的本钱实现设计任务要求的功能。
通过单片机课程设计要求学生能够更好的明白得单片机的组成,明白得单片机各个组成部份的功能和应用,了解单片机的普遍应用,学习单片机的应用方式。
通过单片机课程设计,能够提高学生的编程能力。
课程设计的题目都是日常生活中常常见到的内容,学生容易同意和明白得设计任务的要求,如何科学合理的应用单片机知识实现设计任务是单片机课程设计的要紧目的。
依照设计任务全面考虑课程知识,依照设计要求将任务分解,设计操纵流程,表现了模块化设计的大体思想。
组织学过的各类语句实现相应的功能操纵,既能够学习程序编制方式,又能够进一步加深对每一个语句的明白得,巩固各条语句的利用语法,提高学生的编程水平。
单片机课程设计能够提高学生的实际操作水平。
电路板包括了单片机最小系统和课程设计各项目所需的要紧元件,学生需要依照电路板上提供的元件进行硬件选择,分派硬件资源和软件资源,画出硬件原理图和连接图,依照硬件原理图和题目要求编写设计框图和相关程序,用仿真软件进行调试和连接,调试成功后用编程器将程序烧写到单片机的内部ROM中,进行硬件和软件的别离调试和统一调试,提高学生实际操作能力。
通过本次课设使学生能够把握用单片机进行实际产品开发的大体进程,增强模块化设计思想的培育,养成良好的设计、编程适应,同时也增加了学生对本专业的爱好,培育学生实际操作和编程技术,为尔后专业课程的