华中科技大学单片机实验二报告.docx

上传人:b****2 文档编号:996526 上传时间:2022-10-15 格式:DOCX 页数:20 大小:145.90KB
下载 相关 举报
华中科技大学单片机实验二报告.docx_第1页
第1页 / 共20页
华中科技大学单片机实验二报告.docx_第2页
第2页 / 共20页
华中科技大学单片机实验二报告.docx_第3页
第3页 / 共20页
华中科技大学单片机实验二报告.docx_第4页
第4页 / 共20页
华中科技大学单片机实验二报告.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

华中科技大学单片机实验二报告.docx

《华中科技大学单片机实验二报告.docx》由会员分享,可在线阅读,更多相关《华中科技大学单片机实验二报告.docx(20页珍藏版)》请在冰豆网上搜索。

华中科技大学单片机实验二报告.docx

华中科技大学单片机实验二报告

《单片机实验》报告

实验名称分支程序设计

指导教师刘冬牛

专业班级

学号

联系方式

任务要求

熟练掌握KeilC环境下汇编语言程序的调试方法,加深对汇编语言指令、机器码、寻址

方式等基本内容的理解,掌握分支程序和简单程序的设计与调试方法,了解并行10口的使

用。

1.设有8bits符号数X存于外部RAM单元,按以下方式计算后的结果Y也存于外部RAM元,请按要求编写程序。

X2当X40

YX/2当20X40

X当X20

2•利用51系列单片机设计一个24小时制电子时钟,电子时钟的时、分、秒数值分别通过PO、P1、P2端口输出(以压缩BCD码的形式)。

为低电平时开始计时,为高电平时停止计时。

提高部分(选做):

a.实现4位十进制加、减1计数,千位、百位由P1口输出;十位、个位由P2口输出。

利用状态选择加、减计数方式。

b.利用P3口低四位状态控制开始和停止计数,控制方式自定。

2.设计思路

1•分段函数设计

对于第一个任务,根据变量X的值的不同进行相应的计算。

所以我们首先要判断X的

值属于那个范围。

我们可利用比较转移指令CJNE来判断X是否等于临界值20,40,若不等,

再根据执行CJNE指令后的进位位CY的值来判断X与临界值的的大小关系,如:

CY=0则X

大于临界值,CY=1则X小于临界值;然后根据X的值所在的区间进行相应的计算。

应该注意的是,除法计算中可能产生余数,商和余数应该分开存储,若乘方运算结果大于255,高

八位与低八位应分开存储

2.24进制时钟

本程序须可以构建两部分循环。

首先构建一个三重循环实现“一秒延时”,循环体利用

NOP指令(单字节指令,1卩s)经多次循环达到延时一秒的效果。

再利用已经构建好的“一秒延时”部分,设计计时系统的三重循环,秒(0-59)、分(0-59)、时(0-23)。

秒和分计

60次,小时计24次,但,是从0开始计,所以在分、秒达到59,小时达到23时,下一次应该为零。

程序运行时修改的值可以实现暂停和继续的功能

3.资源分配

1.分段函数

根据题目的条件,首先,设该8位无符号数为30H,把片外地址4000H分配给它,把

片外地址4001H和4002H分配给经分段函数计算得到的结果Y。

按位取反计算结果存于

4001H单元,而除法计算结果的商与余数和乘方计算中结果的高、低八位分开存储于4001H-4002H单元。

用寄存器A,B来存放在乘除运算中所得的中间结果。

2.二十四进制时钟

工作寄存器R0R1、R2分别用于秒、分、时循环次数的设定,R3R4分别用于分与时

的循环计数,R5-R7用于“一秒延时”中三重循环的循环次数设定。

秒、分、时数值分别由P2、P1、P0端口输出。

4.流程图

c仔1

1.分段函数

ORG0000H

LJMPMAIN

ORG0100H

;将8位无符号数赋给A

;定义数据指针

;将X存于片外RAM

MAIN:

MOVA,#29H

MOVDPTR,#4000H

MOVX@DPTR,A

KIND1:

CJNEA,#14H,KIND2

;将A与14H比较,若不等于14H,跳转至KIND2

OUT1:

CPLA

;对A中内容取反

;将进位位清零

CLRC

MOVDPTR,#4001H

;定义数据指针

MOVX@DPTR,A

;将计算结果存于片外地址4001H

SJMPDONE

 

KIND2:

JNCKIND3

;判断进位位CY是否为0,若为0,跳转至KIND3

SJMPOUT1

;否则跳转至OUT1

KIND3:

CLRC

;将进位位清零

CJNEA,#28H,KIND4

;将A中内容与28H比较,若不等于28H,跳转至KIND4

OUT2:

MOVB,A

;将A中内容赋给B

MULAB

;计算X的平方,将结果高八位存于B,低八位存于A

MOVDPTR,#4001H

;定义数据指针

MOVX@DPTR,A

;将结果低八位存于片外地址4001H

INCDPTR

;数据指针加一

MOVA,B

;将B中内容赋给A

MOVX@DPTR,A

;将结果高八位存于片外地址4002H

SJMPDONE

 

KIND4:

JNCOUT2

;判断进位位是否为0,若为0,跳转至OUT2

SJMPOUT3

;否则跳转至OUT3

 

OUT3:

MOVB,#02H

DIVAB

;计算X/2,将商存于A,余数存于B

MOVDPTR,#4001H

;定义数据指针

MOVX@DPTR,A

;将商存于片外地址4001H

INCDPTR

;数据指针加1

 

MOVA,B

MOVX@DPTR,A

;将余数存于片外地址4002H

SJMPDONE

DONE:

SJMP$

END

2.24小时时钟

ORG0000H

LJMPMAIN

ORG0100H

MAIN:

MOVR0,#00H

MOVP0,#00H;时钟位清零

MOVP1,#00H;分钟位清零

MOVP2,#00H;秒钟位清零

START:

JB,START;为低电平开始计数,高电平停止计数

MOVR2,P2;P2的值存入R2

CJNER2,#60H,DEL;秒钟达到60继续,不足60跳转

MOVP2,#00H;秒钟清零

MOVA,P1

ADDA,#01H;分钟位加1

DAA;分钟位改为BCD码

MOVP1,A

MOVR1,P1;P1的值存入寄存器R1

CJNER1,#60H,DE;分钟达到60继续,不足60跳转

MOVP1,#00H;分钟清零

MOVA,R0

ADDA,#01H;时钟位加1

DAA;时钟位改为BCD码

MOVR0,A

MOVP0,A

CJNER0,#24H,DE;时钟达到24继续,不足24跳转

MOVP0,#00H;时钟位清零

MOVR0,#00H

DEL:

LOOP1:

LOOP2:

MOVR7,#24;延时程序

MOVR6,#61

MOVR5,#170

LOOP3:

NOP

NOP

DJNZR5,LOOP3

DJNZR6,LOOP2

DJNZR7,LOOP1

MOVA,P2

ADDA,#01H;秒钟位加1

DAA

MOVP2,A

SJMPSTART

END

六.程序测试方法与结果、软件性能分析

1.分段函数

改变X的值,分别在不同的X值时运行程序,结果如下截图

(1)X=29H

Ptojeet^Jarkspace▼

K*gisMr

ViLllt

rO

OkOO

:

““”rl

OmOO

r2

OkOO

「3

OkOD

r4

OkOO

『5

OkOO

r6

OmOO

rT

0x00

-Sys

0s06

b

OhOB

s>

OnOT

£p_mo

OkOT

dptr

Ok4002

FC$

cm.,.

stales

62

sec

0.00.

田-…1D£呼

0^04

T

g|K(Q)

*0|零

 

X-gxQ^gwi:

W

gg

OD

og

QD

DQ

g

QQ

□Q

QQ

QQ

QQ

OQ

go

ao

QD

go

00

QQ

g

QQ

QO

口暫

0Q

00Q\

J46gg饲鸽

00

OQ

OQ

OQ

OQ

00

00

OQ

90

00

CO

QO

QO

OQ

oa

00

00

OQ

00

00

00

00

QQ

00

CD

OQ

00

0

X;0x0^067;

DO

3C

03

OD

00

00

□0

□0

00

CO

DO

・「

00

oa

ao

OD

O0

00

oo

00

□0

00

□0

DO

CO

30

00

r

xm萱QCMds

DO

00

00

oo

re

GO

00

GO

00

00

CO

DO

DO

00

aa

ao

00

00

CIO

00

00

00

00

00

CO

QG

ao

a

ert

nn

iftiM

*、j-

AA

H"iA

KR

mA

眄H%

j*%m

■"■HR

ain

K耳

i"*ih

f

KsK

■na

.■hH

•n

#1匚沪Memory=4

 

如*注|初训D02

X^Ok口匚耳

g€

DO

00

口。

go

gg

□o

DO

□a

■O'3

OD

03

oo

CD

30

□q

D3

QO

OU

DO

00

口口

30

00

go

oo

30

DO

口亡

£:

0x004059:

05

co

no

50

CIO

00

02

DO

00

00

A

0-:

30

OC

1:

53

00

0:

&0

no

00

03

■3

00

DC

K9OaDD

DQ

CQ

口。

g

00

00

QG

00

OD

OD

oc

90

oa

g

g

OD

□0

oa

ao

DQ

CQ

00

as

QO

00

QG

KaQaDOiOWi

aa

DQ

OQ

DO

00

g

□0

00

QD

ao

00

QO

口D

□Q

m

□a

DD

K

OD

□D

QQ

QO

DO

OQ

DO

00

as

DO

□Q

oa

nm

m

nFk

nn

run

nr

m

i~■rt

m

rtin

rnn

nn

nn-fc

jn^i

rsn

fi

'L、i~\

nn

JTii~1

rm

cn

iTfcm

nr"i

nn

MpnOfV*AMlw章吟

*wv*]

(2)X=21H

Rm理istar

|"aly|A

-Re养

rO

OjcOO

rl

QxOD

r2

OkOO

r3

OkED

r4

0x00

r5

DM

rG

0x00

■"S'■

OkCO

-Sys

'j

OkOI

.b

0x01

OjcOT

汕“…邓」血

0x0T

dptr

0x4002

PC$

C:

OKx..

69

0.00.

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

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1