微机原理及应用实验报告课件.doc

上传人:wj 文档编号:646674 上传时间:2023-04-29 格式:DOC 页数:17 大小:2.41MB
下载 相关 举报
微机原理及应用实验报告课件.doc_第1页
第1页 / 共17页
微机原理及应用实验报告课件.doc_第2页
第2页 / 共17页
微机原理及应用实验报告课件.doc_第3页
第3页 / 共17页
微机原理及应用实验报告课件.doc_第4页
第4页 / 共17页
微机原理及应用实验报告课件.doc_第5页
第5页 / 共17页
微机原理及应用实验报告课件.doc_第6页
第6页 / 共17页
微机原理及应用实验报告课件.doc_第7页
第7页 / 共17页
微机原理及应用实验报告课件.doc_第8页
第8页 / 共17页
微机原理及应用实验报告课件.doc_第9页
第9页 / 共17页
微机原理及应用实验报告课件.doc_第10页
第10页 / 共17页
微机原理及应用实验报告课件.doc_第11页
第11页 / 共17页
微机原理及应用实验报告课件.doc_第12页
第12页 / 共17页
微机原理及应用实验报告课件.doc_第13页
第13页 / 共17页
微机原理及应用实验报告课件.doc_第14页
第14页 / 共17页
微机原理及应用实验报告课件.doc_第15页
第15页 / 共17页
微机原理及应用实验报告课件.doc_第16页
第16页 / 共17页
微机原理及应用实验报告课件.doc_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

微机原理及应用实验报告课件.doc

《微机原理及应用实验报告课件.doc》由会员分享,可在线阅读,更多相关《微机原理及应用实验报告课件.doc(17页珍藏版)》请在冰点文库上搜索。

微机原理及应用实验报告课件.doc

微机原理及应用实验报告

班级:

机械1301班

姓名:

黄佳清

学号:

0801130117

座位号:

中南大学机电工程学院

实验一单片机仿真开发机操作和MCS-51指令系统应用

一.实验目的

1、熟悉MCS-51单片机仿真开发机和开发调试软件的操作使用和调整;

2、学会编写和输入汇编语言源程序、对输入的源程序进行汇编;

3、掌握程序的调试和运行的各种方法。

二.实验设备

台式微型计算机

MCS-51仿真开发机THKSCM-2A

三.实验内容及步骤(完成分值:

60分)

本实验秩序运行KeiluVersion2程序,设置为keil为纯软件仿真

1.新建工程项目

2.设置工程文件参数

3.编写新程序事例

4.调试程序直至能够运行出结果。

四.实验程序

AJMPMAININCR0

ORG0030HINCDPTR

MAIN:

MOVR0,#20HDJNZR2,A2

MOVR2,#0FHMOVR0,#030H;

MOVA,#00H

断点,观察并记录!

A1:

MOV@R0,AMOVDPTR,#7000H

INCR0MOVR2,#0FH

A3:

MOVXA,@DPTR

INCAMOVX@R0,A

INCR0

DJNZR2,A1INCDPTR

MOVR0,#20H;DJNZR2,A3

暂停,观察并记录!

DO:

LJMPDO

MOVDPTR,#7000HEND;内部存储器数

MOVR2,#0FH

据块赋值,搬运数据块到外部存储

A2:

MOVA,@R0

器,再搬运回内部数据存储器。

MOVX@DPTR,A

五、附加题

1.将光标移到想要暂停的地方,MOVR0,#20H所在行,选择“执行到光

标处”功能,程序快速执行到光标所在行。

观察运行情况,并记录下表。

R0R2A20H21H22H23H24H25H

0x2f0x000x0f00H01H02H03H04H05H

26H27H28H29H2AH2BH2CH2DH2EH

06H07H08H09H0AH0BH0CH0DH0EH

2.在MOVR0,#0A0H行设置断点,全速执行,暂停后观察并记录以下单元

内容

R0DPL7000H7001H7002H7003H7004H7005H7006H

0X2F0FH00H01H02H03H04H05H06H

7007H7008H7009H700AH700BH700CH700DH700EH

07H08H09H0AH0BH0CH0DH0EH

3.画出程序流程图

开始

赋值R0←20HR2←0FHA←00H

(R0)←(A)

R0←R0+1

A←A+1

R2←R2-1

N

R2=0?

Y

赋值R0←20HDPTR←7000HR2←0FH

(A)←(R0)

(DPTR)←(A)

R0←R0+1

DPTR←DPTR+1R2←R2-1

NR2=0?

Y

赋值R0←30HR2←0FHDPTR←7000H

(A)←(DPTR)

(R0)←(A)

DPTR←DPTR+1R0←R0+1

R2←R2-1

N

R2=0?

Y

结束

4.修改程序,实现新功能

实现倒序数据转移程序

AJMP

MAIN

ORG0030H

MAIN:

MOVR0,#40H

MOVR2,#0FH

MOVA,#00H

A1:

MOV@R0,A

DECR0

INCA

DJNZR2,A1

MOVR0,#30H

MOVDPTR,#7000H

MOVR2,#0FH

A2:

MOVA,@R0

MOVX@DPTR,A

INCR0

INCDPTR

DJNZR2,A2

MOVR0,#030H

MOVDPTR,#7000H

MOVR2,#0FH

A3:

MOVXA,@DPTR

MOVX@R0,A

INCR0

INCDPTR

DJNZR2,A3

DO:

LJMPDO

END

实验二程序设计

一、实验目的

1、掌握MCS-51单片机指令系统及用汇编语言编程技巧;

2、了解和熟悉用MCS-51单片机仿真开发机调试程序的方法。

二、实验内容及步骤(完成分值:

30分/单个程序)

题目1、编写排序程序并上机调试通过。

已知8031内部RAM60H~69H单元中,依次存放了

0FH,09H,07H,0CH,03H,0DH,08H,0BH,04H,01H共10个字节无符号数,编程将它

们规律排序,最大数放在60H中,最小数放在69H中。

结果应该是

0FH,0DH,0CH,0BH,09H,08H,07H,04H,03H,01H。

题目2、编写多字节加法程序并上机调试通过。

8031内部RAM22、H21H、20H单元中,分别存放了3字节无符号被加数0FFH、

0FFH、0FFH(低字节在低地址),在32H、31H、30H单元中分别存放3字节无符

号加数22H、22H、22H(低字节在低地址),求两数之和,并将结果存入内部

RAM23H、22H、21H、20H单元中(低字节在低地址)。

结果应该是01H、22H、

22H、21H。

四、参考实验程序

题目1

ORG0000HMOVA,R2

LJMPmainMOVR4,A

ORG0100HLOOP1:

MOVA,@R1

main:

...将10个随机数送入内部RAM的CLRC

50~59H单元SUBBA,B

NOP可;在此处设置断点JCLOOP2;改为JNC即可逆

ACALLSELSORT调;用排序子程序

序排列

MOVB,@R1

HERE:

AJMPHERE;可在此处设置断MOVA,R1

点,观察每次排序结果MOVR3,A

NOPLOOP2:

INCR1

DJNZR4,LOOP1

;排序子程序MOVA,R3

DATEQU60H;排序数据首地MOVR1,A

址MOVA,@R1

NEQU10;排序个数XCHA,@R0

SELSORT:

MOVR0,#DATXCHA,@R1

MOVR2,#N-1INCR0

LOOP:

MOVB,@R0DJNZR2,LOOP

MOVA,R0RET

MOVR3,AEND

INCA

MOVR1,A

题目2

ORG0000HLJMPmain

ORG0100H([R0]+[R1])=([R0])

main:

MOVR0,#20H;入口:

R0,R1,R2

MOV@R0,#0FFH;占用资源:

ACC,B

INCR0;堆栈需求:

2字节

MOV@R0,#0FFH;出口:

R0存放结果高地址

INCR0MULTADD:

MOVR0,#20H;地址1

MOV@R0,#0FFHMOVR1,#30H;地址2

MOVR2,#03H;加法字节数

MOVR0,#30HNSUB:

CLRC

MOV@R0,#22HNSUB1:

MOVA,@R0

INCR0ADDCA,@R1

MOV@R0,#22HMOV@R0,A

INCR0INCR0

MOV@R0,#22HINCR1

ACALLMULTADD调;用多字节加法子DJNZR2,NSUB1

程序CLRA

ADDCA,#00H;把进位

HERE:

AJMPHERE;可在此处设置断位C加到高8位去

点,观察结果MOV@R0,A

NOPRET

END

;N字节无符号数加法子程序

五、附加题

1.画出题目1的程序流程图。

开始

存入数据到60H~69H

R0←60HN←10HR2←60H

A←(R0)

R2←R2+1

B←(R2)

A>B?

Y

N

(R0)和(R2)交换

N

N

R2=69H?

Y

R0←R0+1

N

R0=69H?

Y

结束

2.将题目1的排序算法进行改变,采用另一种排序算法进行排序。

ORG0000H

LJMPmain

LOOP3:

INCR1

ORG0100HCJNER1,#6AH,LOOP2;

MAIN:

...;将10个随机数送入INCR0

LOOP2:

MOVA,@R0MOV51H,R0

MOV50H,@R1MOVR1,51H

CJNEA,50H,BIG;做减法。

INCR1

BIG:

JNCLESS;是0则跳转CJNER0,#69H,LOOP2;以此类推,直到剩最

LJMPLOOP3

后两个数比较完。

LESS:

XCHA,@R1;交换60与61中的内SJMP$

容END

XCHA,@R0

3.画出题目2的程序流程图。

开始

存入数据到20好

~22H,30H~32H

R0←20H

R1←30H

R2←3H

C清零

A←((R0))+((R1))

50

0

((R0))←A

R0←R0+1

R1←R1+1

R2R2-1←

N

R2=0?

Y

A←A+C

((R0))←A

结束

4.改为编写多字节减法程序。

ORG0000H;N字节无符号数加法子程序

LJMPmain([R0]+[R1])=([R0])

ORG0100H;入口:

R0,R1,R2

main:

MOVR0,#20H;占用资源:

ACC,B

MOV@R0,#0FFH;堆栈需求:

2字节

INCR0;出口:

R0存放结果高地址

MOV@R0,#0FFHMULTADD:

MOVR0,#20H;地址1

INCR0MOVR1,#30H;地址2

MOV@R0,#0FFHMOVR2,#03H;加法字节数

NSUB:

CLRC

MOVR0,#30HNSUB1:

MOVA,@R0

MOV@R0,#22HADDCA,@R1

INCR0MOV@R0,A

MOV@R0,#22HINCR0

INCR0INCR1

MOV@R0,#22HDJNZR2,NSUB1

ACALLMULTADD调;用多字节加法子CLRA

程序ADDCA,#00H;把进位

位C加到高8位去

HERE:

AJMPHERE;可在此处设置断MOV@R0,A

点,观察结果RET

NOPEND

实验三定时/计数器实验

一、实验目的

1、掌握MCS-51单片机内部定时/计数器的功能与特点,工作方式选择和编

程方法,中断功能的使用和中断服务程序的设计;

2、了解和熟悉MCS-51单片机实验板的功能。

二、实验内容及步骤(完成分值:

60分/单个程序)

本实验需要用到单片机最小应用系统(F1区)和十六位逻辑电平显示模块

(I4区)。

用P1口做输出口,接十六位逻辑电平显示,程序功能使发光二极管

从右到左轮流循环点亮。

三、参考流程图、电路图、参考程序

VCCU1FVCC

P0.0P1.0510*8L0

VCC

P0.1

P0.2

P1.1

P1.2

R2F

100

R1F

1K

C3F

10uF

P1.0

P1.1

P1.2

P1.3

P1.4

P1.5

P1.6

P1.7

P3.0

P3.1

P3.2

P3.3

P3.4

P3.5

P3.6

P3.7

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

P1.0

P1.1

P1.2

P1.3

P1.4

P1.5

P1.6

P1.7

RST

P3.0/RXD

P3.1/TXD

P3.2/INT0

P3.3/INT1

P3.4/T0

P3.5/T1

P3.6/WR

P3.7/RD

XTAL2

XTAL1

VSS

89C51

VCC40

39

P0.0

P0.138

37

P0.2

P0.336

35

P0.4

34

P0.5

33

P0.6

P0.732

EA31

30

29

ALE/PROG

PSEN

P2.728

27

P2.6

26

P2.5

25

P2.4

P2.324

23

P2.2

P2.122

21

P2.0

P0.5

P0.6

P0.7

ALE

P1.5

P1.6

P1.7

L2

L3

L4

RESET

L1

P0.3P1.3

P0.4P1.4

EA

PSEN

P2.7

P2.6

L5

P2.5

P2.4

L6

XTAL1A

P2.3

P2.2

L7

11.0592MHzP2.1

P2.0

C3AC2A

22pF22pF

程序:

Tickequ5000;100us记数次数,5000x100us=0.5s,十六进制#1388H

T100usequ156;100us时间常数(12MHz)

C100usequ5h;100us记数单元,05H、06H

org0000H

ljmpStart

org000BH

LJMPT0Int

;----------------------------------------

ORG0100H

Start:

movTMOD,#02h;方式2,定时器

movTH0,#T100us;100us时间常数(12MHz)

movTL0,#T100us;100us时间常数(12MHz)

movIE,#10000010b;EA=1,IT0=1

setbTR0;开始定时

movp1,#0FEH;由于电路原因,输出高电平为灭灯。

movC100us,#HIGH(Tick);05H<-#13H,初始化100us记数单元

movC100us+1,#LOW(Tick);06H<-#88H,初始化100us记数单元

Loop:

ljmpLoop

;----------------------------------------

ORG0300H

T0Int:

pushPSW

mova,C100us+1;100us高位记数单元06H

jnzGoon

decC100us;100us低位记数单元05H

Goon:

decC100us+1

mova,C100us;100us低位记数单元05H

orla,C100us+1

jnzExit;100us记数单元不为0,返回

movC100us,#HIGH(Tick);05H<-#13H,100us记数单元为0则初始化100us记数单

movC100us+1,#LOW(Tick);06H<-#88H,100us记数单元为0则初始化100us记数

单元

MOVA,P1;100us记数单元为0,位移!

RLA

MOVP1,A

Exit:

popPSW

reti

;----------------------------------------

End

五、附加题

1.修改程序,实现新功能

奇数偶数交换点亮

Tickequ5000T0Int:

T100usequ156pushPSW

C100usequ5hmova,C100us+1

org0000HjnzGoon

ljmpStartdecC100us

org000BHGoon:

LJMPT0IntdecC100us+1

;---------------------------------mova,C100us

-------orla,C100us+1

ORG0100HjnzExit

Start:

movTMOD,#02hmovC100us,#HIGH(Tick)

movTH0,#T100usmovC100us+1,

movTL0,#T100us#LOW(Tick)

movIE,#10000010bMOVA,P1

setbTR0RLA

movp1,#0AAHMOVP1,A

movC100usExit:

movC100us+1popPSW

Loop:

ljmpLoopreti

;---------------------------------;---------------------------------

--------------

ORG0300HEnd

2.用MCS-51单片机的内部定时器定时中断,编写一段电子秒表程

序,在静态数码管上实现显示。

TCNTAEQU30H;MOVA,KEYCNTDJNZR6,D1

TCNTBEQU31HCJNEA,#01H,KN1RET

SECEQU32HSETBTR0INT_T0:

KEYCNTEQU33HMOVTH0,#06HINCTCNTA

SP1BITP3.5MOVTL0,#06HMOVA,TCNTA

ORG00HMOVTCNTA,#00HCJNEA,#100,NEXT

LJMPSTARTMOVTCNTB,#00HMOVTCNTA,#00H

ORG0BHLJMPDKNINCTCNTB

LJMPINT_T0KN1:

CJNEA,#02H,KN2MOVA,TCNTB

START:

MOVCLRTR0CJNEA,#4,NEXT

KEYCNT,#00HLJMPDKNMOVTCNTB,#00H

MOVSEC,#00HKN2:

CJNEA,#03HINCSEC

MOVA,SECMOVSEC,#00HMOVA,SEC

MOVB,#10MOVA,SECCJNEA,#100,DONE

DIVABMOVB,#10MOVSEC,#00H

MOVDPTR,#TABLEDIVABDONE:

MOVA,SEC

MOVCA,@A+DPTRMOVDPTR,#TABLEMOVB,#10

MOVP0,AMOVCA,@A+DPTRDIVAB

MOVA,BMOVP0,AMOVDPTR,#TABLE

MOVDPTR,#TABLEMOVA,BMOVCA,@A+DPTR

MOVCA,@A+DPTRMOVDPTR,#TABLEMOVP0,A

MOVP2,AMOVCA,@A+DPTRMOVA,B

MOVMOVP2,AMOVDPTR,#TABLE

TMOD,#02H;MOVKEYCNT,#00HMOVCA,@A+DPTR

SETBET0DKN:

JNBSP1,$MOVP2,A

SETBEALJMPWTNEXT:

RETI

WT:

JBSP1,WTDELY10MS:

TABLE:

DB

LCALLDELY10MSMOVR6,#203FH,06H,5BH,4FH,66H,6DH,7DH,07H,

JBSP1,WTD1:

MOVR7,#2487FH,6FH

INCKEYCNTDJNZR7,$END

实验四动态显示实验

一、实验目的

1、掌握七段LED数码管显示器工作原理,以及用动态扫描方法编程实现8

位LED数码管显示的方法;

2、进一步了解和熟悉MCS-51单片机实验板的功能。

二、实验内容及步骤(完成分值:

60分/单个程序)

本实验需要用到单片机最小应用系统(F1区)和动态扫描显示模块(I2区)。

1.用8P排线将单片机最小应用系统(F1区)的P2口和动态扫描显示的

位选JD1I相连,用8P排线将单片机最小应用系统(F1区)的P0口和动态扫

描显示模块的段码JD0I相连。

2.用串行数据通信线连接计算机与仿真器,把仿真器插到模块的锁紧插座

中,请注意仿真器的方向:

缺口朝上。

3.打开KeiluVision2仿真软件,首先建立本实验的项目文件,接着添加源

程序,进行编译,直到编译无误。

4.全速运行程序,直至显示效果为稳定的“123456”。

四、参考流程图、电路图、实验程序

电路接线图

程序:

ORG0000H

AJMPMAIN

ORG0080HMOVP0,#066H;显示4

MAIN:

CLRP2.2;选中第三个数码管

MOVP2,#0FFHLCALLDELAY

;MOVP0,#0FFH

MOVP0,#7DH;显示6SETBP2.2

CLRP2.0;选中第一个数码管

LCALLDELAY;调用延时

;MOVP0,#0FFH;关显示MOVP0,#4FH;显示3

SETBP2.0CLRP2.3;选中第四个数码管

LCALLDELAY

MOVP0,#6DH;显示5;MOVP0,#0FFH

CLRP2.1;选中第二个数码管SETBP2.3

LCALLDELAY

;MOVP0,#0FFH

SETBP2.1MOVP0,#5BH;显示2

CLRP2.4;选中第五个数码管;LCALLDELAY

LCALLDELAY;SETBP2.7

;MOVP0,#0FFH;MOVP0,#0FFH

SETBP2.4

AJMPMAIN;重新开始

MOVP0,#06H;显示1DELAY:

;延时子程序

CLRP2.5;选中第六个数码管MOVR7,#20H

LCALLDELAYD1:

MOVR6,#30H

;MOVP0,#0FFHD2:

DJNZR6,D2

SETBP2.5DJNZR7,D1

RET

;CLRP2.6;选中第七个数码管

;MOVP0,#21H;显示6;DISTAB:

DB3FH,06H,5BH,4FH

;LCALLDELAY;DB66H,6DH,7DH,07H

;MOVP0,#0FFH;DB7FH,6FH,77H,7CH

;SETBP2.6;DB39H,5EH,79H,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2