首页 单片机例题

单片机例题

举报
开通vip

单片机例题【例4-1】片内RAM的21H单元存放一个十进制数据十位的ASCII码,22H单元存放该数据个位的ASCII码。编写程序将该数据转换成压缩BCD码存放在20H单元。 ORG  0040H START:MOV  A,21H  ;取十位ASCII码 ANL  A,#0FH  ;保留低半字节 SWAP  A      ;移至高半字节 MOV  20H,A  ;存于20H单元 MOV  A,22H  ;取个位ASCII码 ANL  A,#0FH  ;保留低半字节 ORL  20H,A  ;合并到结果单元 SJMP  $ ...

单片机例题
【例4-1】片内RAM的21H单元存放一个十进制数据十位的ASCII码,22H单元存放该数据个位的ASCII码。编写程序将该数据转换成压缩BCD码存放在20H单元。 ORG  0040H START:MOV  A,21H  ;取十位ASCII码 ANL  A,#0FH  ;保留低半字节 SWAP  A      ;移至高半字节 MOV  20H,A  ;存于20H单元 MOV  A,22H  ;取个位ASCII码 ANL  A,#0FH  ;保留低半字节 ORL  20H,A  ;合并到结果单元 SJMP  $ END 【例4-2】设变量x以补码的形式存放在片内RAM的30H单元,变量y与x的关系是:当x大于0时,y=x;当x=0时,y=20H;当x小于0时,y=x+5。编制程序,根据x的大小求y并送回原单元。 ORG  0040H START:MOV  A,30H    ;取x至累加器 JZ    NEXT    ;x = 0 ,转NEXT ANL  A,#80H  ;否,保留符号位 JZ    DONE    ;x >0 ,转结束 MOV  A,#05H  ;x <0 ,处理Y=X+5 ADD  A,30H MOV  30H,A    ;X+05H送Y SJMP  DONE NEXT:MOV  30H,#20H ;x = 0 ,20H送Y DONE:SJMP  DONE                                END 【例4-3】根据R7的内容x(转移序号)转向相应的处理程序。 设R7内容为0~4,对应的处理程序入口地址分别为PP0~PP4。 START:MOV  R7,#3      ;以转移序号3为例 ACALL JPNUM AJMP  START JPNUM:MOV  DPTR,#TAB  ;置分支入口地址 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 首址 MOV  A,R7 ADD  A,R7        ;乘2,调整偏移量 MOV  R3,A        MOVC  A,@A+DPTR  ;取地址高字节,暂存于R3 XCH  A,R3  INC  A MOVC  A,@A+DPTR  ;取地址低字节 MOV  DPL,A      ;处理程序入口地址低8位送DPL MOV  DPH,R3      ;处理程序入口地址高8位送DPH CLR  A JMP  @A+DPTR TAB:DW    PP0 DW    PP1 DW    PP2 DW    PP3 DW    PP4 PP0:MOV  30H,#0  ;转移序号为0时,置功能号“0”于30H单元 RET PP1:MOV  30H,#1  ;转移序号为1时,置功能号“1”于30H单元 RET PP2:MOV  30H,#2  ;转移序号为2时,置功能号“2”于30H单元 RET PP3:MOV  30H,#3  ;转移序号为3时,置功能号“3”于30H单元 RET PP4:MOV  30H,#4  ;转移序号为4时,置功能号“4”于30H单元 RET    【例4-4】将内部RAM的30H至3FH单元初始化为00H。 MAIN:MOV  R0,#30H ;置初值 MOV  A,#00H  ; MOV  R7,#16  ; LOOP:MOV  @R0,A  ;循环处理 INC  R0      ; DJNZ  R7,LOOP ;循环修改,判结束 SJMP  $      ;结束处理 【例4-5】将内部RAM起始地址为60H的数据串传送到外部RAM中起始地址为1000H的存储区域,直到发现‘$’字符停止传送。 MAIN:MOV  R0,#60H      ;置初值 MOV  DPTR,#1000H LOOP0:MOV  A,@R0        ;取数据 CJNE  A,#24H,LOOP1 ;循环结束? SJMP  DONE        ;是 LOOP1:MOVX  @DPTR,A      ;循环处理 INC  R0          ;循环修改 INC  DPTR SJMP  LOOP0        ;继续循环 DONE:SJMP  DONE        ;结束处理 【例4-6】实现两个8位的十六进制无符号数求和的子程序。 入口:(R3)=加数;      出口:(R3)=和的高字节; (R4)=被加数。        (R4)=和的低字节。 SADD:MOV  A,R3      ;取加数(在R3中) CLR  C ADD  A,R4      ;被加数(在R4中)加A JC  PP1 MOV    R3,#00H ;结果小于255时,高字节R3内容为00H SJMP  PP2 PP1:MOV    R3,#01H ;结果大于255时,高字节R3内容为01H PP2:MOV    R4,A    ;结果的低字节在R4中 RET 【例4-7】将内部RAM 中两个4字节无符号整数相加,和的高字节由R0指向。数据采用大端模式存储。 入口:(R0)=加数低字节地址;  出口:(R0)=和的高字节起始地址。 (R1)=被加数低字节地址。 NADD:MOV    R7,#4    ;字节数4送计数器 CLR    C        ; NADD1:MOV    A,@R0    ;利用指针,取加数低字节 ADDC  A,@R1    ;利用指针,被加数低字节加A MOV    @R0,A    ; DEC    R0 DEC    R1 DJNZ  R7,NADD1 INC    R0        ;调整指针,指向出口 RET  【例4-8】 将内部RAM中20H单元中的1个字节十六进制数转换为2位ASCII码,存放在R0指示的两个单元中。 HEASC:MOV  R1,SP      ;借用R1为堆栈指针 DEC  R1 DEC  R1        ;R1指向被转换数据 XCH  A,@R1      ;取被转换数据 ANL  A,#0FH    ;取一位十六进制数 ADD  A,#2      ;偏移调整,所加值为MOVC与DB间总字节数 MOVC  A,@A+PC    ;查表 XCH  A,@R1      ;1字节指令,存结果于堆栈中 RET              ;1字节指令 ASCTAB:DB    30H,31H,32H,33H,34H,35H,36H,37H DB    38H,39H,41H,42H,43H,44H,45H,46H MAIN:MOV    A,20H    ;取被转换数至A SWAP  A PUSH  ACC      ;预转换的数据(在低半字节)入栈 ACALL  HEASC POP    ACC      ;弹出栈顶结果于ACC中 MOV    @R0,A    ;存转换结果高字节 INC    R0        ;修改指针 PUSH  20H      ;预转换的数据(在低半字节)入栈 ACALL  HEASC POP    ACC      ;弹出栈顶结果于ACC中 MOV    @R0,A    ;存转换结果低字节 SJMP  $ [例4-9]  已知BLOCK1和BLOCK2为起始地址的存储区中分别有5字节无符号被减数和减数(低位在前,高位在后)。请编制一个减法子程序,令它们相减,并把差值放入BLOCK1为起始地址的存储单元。 解:用减法指令从低字节开始相减。相应程序为: ORG  1000H SBYTESUB:  MOV  R0,#BLOCK1        ;被减数始址送R0 MOV  R1,#BLOCK2        ;减数始址送R1 MOV  R2,#05H              ;字节长送R2 CLR    C                          ;Cy清零 LOOP:    MOV  A,@R0                ;被减数送A SUBB  A,@R1                ;相减 MOV  @R0,A                  ;存差 INC    R0                          ;修改被减数地址指针
本文档为【单片机例题】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_358746
暂无简介~
格式:doc
大小:22KB
软件:Word
页数:9
分类:理学
上传时间:2019-05-11
浏览量:78