单片机实验报告1lbsv20文档格式.docx
- 文档编号:16107951
- 上传时间:2022-11-20
- 格式:DOCX
- 页数:26
- 大小:514.19KB
单片机实验报告1lbsv20文档格式.docx
《单片机实验报告1lbsv20文档格式.docx》由会员分享,可在线阅读,更多相关《单片机实验报告1lbsv20文档格式.docx(26页珍藏版)》请在冰豆网上搜索。
20
软件实验一数据传送实验
一、实验目的
1.熟悉单片机仿真开发器的使用
2.掌握编程方法;
掌握8051内部RAM的数据操作
二、内容
内部RAM40H到4FH单元置数A0H到AFH,然后将40H到4FH中内容送到内部RAM50H到5FH中。
编辑、编译、运行程序,检查内部RAM中的结果。
三、程序代码
ORG0000H
RESET:
AJMPMAIN
ORG003FH
MAIN:
MOVR0,#40H
MOVR2,#10H
MOVA,#0A0H
A1:
MOV@R0,A
INCR0
INCA
DJNZR2,A1
MOVR1,#50H
A2:
MOVA,@R0
MOV@R1,A
INCR1
DJNZR2,A2
A3:
SJMPA3
四、分析以上程序,运行程序后(暂停),检查并记录相关单元内容。
答:
运行程序后,内部RAM40H到4FH单元中的存储内容A0H~AFH,被传送到了内部RAM50H到5FH中。
五、修改程序,将所置的数改为00H到1FH,置数单元和传送单元为别改为内部RAM的40H到5FH和60H到7FH
实验修改程序如下:
ORG0000H
AJMPMAIN
MOVR2,#20H;
修改
MOVA,#00H;
MOVR1,#60H;
MOVR2,#20H;
软件实验二多字节十进制加法实验
掌握MCS-51汇编语言程序设计方法
多字节十进制加法。
加数存储单元首地址由R0指出,被加数和结果的存储单元首地址由R1指出,字节数由R2指出。
加数存储单元为:
31H、30H,被加数存储单元为:
21H、20H,结果存储单元为22H、21H、20H。
ORG0000H
ORG0100H
MOVSP,#60H
MOVR0,#31H
MOV@R0,#22H
DECR0
MOV@R0,#33H
MOVR1,#21H
MOV@R1,#44H
DECR1
MOV@R1,#55H
MOVR2,#02H
ACALLDACE
HERE:
SJMPHERE
DACE:
CLRC
DAL:
ADDCA,@R1
DAA
DJNZR2,DAL
CLRA
MOVACC.0,C
MOV@R1,A
RET
四、分析以上程序
五、运行程序后暂停,检查并记录
加数存储单元为:
六、修改加数和被加数(十进制),重复以上过程
MOV@R0,#40H;
MOV@R0,#30H;
MOV@R1,#20H;
MOV@R1,#10H;
七、填写下列单元地址及内容
加数单元地址(31H)(30H)
加数单元地址(21H)(20H)
结果单元地址(22H)(21H)(20H)
加数数值(22H)(33H)
加数数值(44H)(55H)
结果数值(00H)(66H)(88H)
八、按以上步骤,验证作业中程序设计的习题
运行结果见修改程序后。
加数数值(40H)(30H)
加数数值(20H)(10H)
结果数值(00H)(60H)(40H)
软件实验三十进制数排序实验
一、目的
掌握十进制数排序方法
本程序用的是“冒泡排序”法,是将一个数与后面的数相比较,如果比后面的数大,则交换,如此将所有的数比较一遍后,最大的数就会在数列的最后面。
再进行下一轮比较,找出第二大数据,知道全部数据有序,即从小到大排序。
SIZEEQU10
ARRAYEQU50H
MOV50H,#9
MOV51H,#7
MOV52H,#2
MOV53H,#8
MOV54H,#4
MOV55H,#6
MOV56H,#0
MOV57H,#3
MOV58H,#1
MOV59H,#5
CHANCEEQU0
SORT:
MOVR0,#ARRAY
MOVR7,#SIZE-1
CLRCHANCE
GOOD:
MOVR2,A
MOVB,@R0
CJNEA,B,NOTEQUAL
SJMPNEXT
NOTEQUAL:
JCNEXT
SETBCHANCE
XCHA,@R0
XCHA,@R0
NEXT:
DJNZR7,GOOD
JBCHANCE,SORT
LJMP$
END
五、运行程序后(暂停),检查并记录相关单元内容
程序运行后结果为00,01,02,03,04,05,06,07,08,09从小到大排序。
六、修改需排序的十进制数,重复以上过程
将数据修改为:
02,04,08,09,12,14,16,13,89,77后,运行程序,结果为
02,04,08,09,12,13,14,16,77,89。
七、修改程序,按照从大到小的顺序排序
将原程序中的“JNCNEXT”修改为“JNCNEXT”
MOV50H,#9
MOV51H,#7
MOV52H,#2
MOV53H,#8
MOV54H,#4
MOV55H,#6
MOV56H,#0
MOV57H,#3
MOV58H,#1
MOV59H,#5
JNCNEXT;
●程序运行后结果为09,08,07,06,05,04,03,02,01,00,从大到小排序。
硬件实验一I/O口输入/输出及控制实验
、I/O口输入/输出实验
一、目的:
学习单片机I/O口的使用方法;
学习延时子程序的编写和使用
二、内容
1.I/O口输出:
P1口做输出口,接八只发光二极管,编写程序使发光二极管循环点亮。
2.I/O口输入/输出:
P1.0、P1.1作输入口接两个拨动开关;
P1.2、P1.3作输出口,接两个发光二极管。
编写程序读取开关状态,将此状态在发光二极管显示出来。
编写程序时应注意P1.0、P1.1作为输入口是应先置1,才能正确读入值。
三、实验步骤
1、I/O口输出硬件连接
连线
连接孔1
连接孔2
1
P1.0
L0
2
P1.1
L1
P1.2
L2
4
P1.3
L3
P1.4
L4
6
P1.5
L5
7
P1.6
L6
P1.7
L7
MCS51的P1口循环点灯
2、I/O口输入/输出硬件连接
K4
K5
MCS51的P1口输入/输出
3.实验说明
(1)对于MCS51,P1是准双向口。
它作为输出口时与一般的双向口使用方法相同;
但准双向口用作输入口时,因其结构特点必须先对它置“1”,否则读入的数据容易产生错误。
(2)8051的延时子程序的延时计算问题,对于程序
Delay:
MOVR6,#0H
MOVR7,#0H
DelayLoop:
DJNZR6,DelayLoop
DJNZR7,DelayLoop
查指令表可知MOV和DJNZ指令均需要两个机器周期,在12MHz晶振时,一个机器周期时间为:
12/12MHz=1ms,该延时子程序延时:
(256*255+2)*2*12/12
130ms。
4.分别连接硬件并执行相关程序,记录结果。
四、提高要求
修改I/O口输出程序,改成先1,3,5,7灯亮,再2,4,6,8灯亮。
五、程序框图
六、程序代码
1.I/O口输出(P1口循环点灯)汇编版.asm
LOOP:
MOVA,#01H
MOVR2,#8
OUTPUT:
MOVP1,A
RLA
CALLDELAY
DJNZR2,OUTPUT
LJ
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 实验 报告 lbsv20