单片机不挂科4程序设计_第1页
单片机不挂科4程序设计_第2页
单片机不挂科4程序设计_第3页
单片机不挂科4程序设计_第4页
单片机不挂科4程序设计_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

4.单片机程序设计(下模块 模块 模块 数据排序检索

4.单片机程序设计(下

1.算术运算程序

⼩节

4.单片机程序设计(下

1.算术运算程

1.算术运算程序

4.单片机程序设计(下

1.算术运算程

1.算术运算程序例题4-

假设有3个单字节数,依次存放在外部RAM21H开始的连续单元中。设计程序,计算它们的和,同时要求把计算结果存放在R1和R2中(假定相加的和为2字节数)。其中R1为字节。MOVMOVMOVMOV;MOV;字节个数为3MOV;和的字MOV;ADD;;MOVJNC;加法的和送;若CY=0,转移到INC;有进位,则和的高八位INCDJNZ;SJMP

4.单片机程序设计(下

1.算术运算程

算术运算程序例题4-

设有两个N字节数分别放在内部RAM单元中,低字节,高字节在后;计算它们的差,由R0指定被减数地址,解析4-

CLRCMOVR2,#NMOVR0,#50HMOVR1,#70HMOVA,@R0SUBBA,@R1MOV@R0,AINCR0INCDJNZ

;进位位;字节数为;R0;R1;把被减数的低位放到A;;;R0+1被减数准备做的减;R1+1减数准备做的减;判断做了多少字节的减法,如果还没做完,就跳回LOOPJCQAZ

;

4.单片机程序设计(下

代码转换类程序

⼩节 ⼩节

4.单片机程序设计(下

2.代码转换类程序

⼩节 ⼩节

4.单片机程序设计(下

2.代码转换类程

二进制与BCD码之间转换

4.单片机程序设计(下

代码转换类程

二进制与BCD码之间转换例题4-

假设中存放某一单字节二进制数,编写程序实现单字节二进制数转换为双字节数0),解析4-

MOVB,#100DIVABMOV@R0,AINCR0MOVA,#10

;A=;假设R0;XCHA,BDIVABSWAPAADDA,B

十十个;A=十位数;B=个位数(余数十十个个十;个十百十个;A的高版字节表示十位、低半字节表示个位,即压缩的百十个;

4.单片机程序设计(下

代码转换类程序

⼩节 ⼩节

4.单片机程序设计(下

2.代码转换类程

2.二进制码与ASCII码之间转换解析4-

编写程序,将ASCII

MOVA,R2CLRCSUBBA,#30HMOVR2,ASUBBA,#0AHJCLOOPMOVA,R2SUBBA,#07HMOVR2,A

;假设ASCII数存放在R2;清进位标志位;ASCII码减去30H,实现0-9;;结果是否大于;若<=9;若>9则减

4.单片机程序设计(下

2.代码转换类程

2.二进制码与ASCII码之间转换例题4-

10H和11H单元中存放了两个ASCII码的数,将其转化为十六进制数并存放在50H解析4-

MOVMOV11H,#43HMOVR0,#10HMOVR1,#30HCLRCSUBBA,#3AHJNCAS_HEXAFSJMP

;10H和11H单元中存放两个ASCII;10H单元中存,11H单元中为低位,假设对应十六进制数;R0存放10H;;判断是否大于3AH,如果大于,则在A~F之间;否则,在0~9;C=0,表示在A~F之间,跳转到;否则在0~9之间,跳转

4.单片机程序设计(下

2.代码转换类程

2.二进制码与ASCII码之间转换解析4-

10H和11H单元中存放了两个ASCII码的数,将其转化为十六进制数并存放在50H MOVCLRSUBBA,#30HMOV@R1,AINCR1INCR0SJMPLOOP

;;;存到30H;; MOVCLRSUBBA,#37HMOV@R1,AINCR1INCR0SJMPLOOP

;不借位减去37H即得到对应十六进制的A~F;

4.单片机程序设计(下

代码转换类程

2.二进制码与ASCII码之间转换例题4-

10H和11H单元中存放了两个ASCII码的数,将其转化为十六进制数并存放在50H解析4-

MOVMOV11H,#43HMOVR0,#10HMOVR1,#30H

;10H和11H单元中存放两个ASCII;10H单元中 ,11H单元中为低位,假设对应十六进制数;R0存放10H;LOOP:VA,@R0H;;3,于,则在A~F之间;否则,在0~9

;C=0,表示在A~F之间,跳转到 9成;否001H09

4.单片机程序设计(下

代码转换类程

二进制码与ASCII码之间转换例题4-

10H和11H单元中存放了两个ASCII码的数,将其转化为十六进制数并存放在50H解析4-

MOV

MUX:MOVMOV

;30H单元中存了的十六进制CLRSUBBA,#30HMOV@R1,AINCR1INCR0SJMPLOOP

;;;存到30H

SWAPAINCR0MOV50H,ASJMP$

;将其换到;;最后结果搬到 MOVCLRSUBBA,#37HMOV@R1,AINCR1INCR0SJMPLOOP

;不借位减去37H即得到对应十六进制的A~F;暂时存到30H或者31

4.单片机程序设计(下

3.数据排序检索

⼩节 ⼩节

4.单片机程序设计(下

数据排序检索

⼩节 ⼩节

单片机程序设计(下

数据排序检

1.数据极值查找解析4-

内部RAM20H单元开始存放8个数,找出其中的最大值。假定在比较过程中,以A存放大数,与之逐个比较的START:MOVMOVR7,#07H ;R0START:MOVMOVR7,#07H ;R0记录内部RAM20H;比较次数为7INC CJNE;比较A与2AH单元的值(减法操作)JNC;CY=0,A比较大,转移到 DJNZ;MOV;将A内的数据保存到2BHSJMP

单片机程序设计(下

3.数据排序检

1.数据极值查找例题4-

找出30H~32H三个单元中的最大值,放在累加器ACJNER0,#32H,LOOPSJMP$CJNER0,#32H,LOOPSJMP$INCR0CLRSUBBJCBIG1MOVA,R2;C=1,R0大,跳到;否则,A大,复原CJNE SJMPORG0030H MOVR0,#30HMOVLOOP:MOV ;保存A的值到 MOV ;把大的递给ORGLJMP解析4-

4.单片机程序设计(下

数据排序检索

⼩节 ⼩节

单片机程序设计(下

3.数据排序检

2.数据检索例题4-

假定数据区首地址是内部RAM20H,数据区长度为8,关键字放在2BH单元,把检索成功的数据序号放在2CH单元中。解析4-

MOVR0,#20HMOVR7,#08HMOVR2,#00HMOV2BH,#KEYINCR2CLRCM

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论