
"Keil集成开发环境实验:单片机应用系统基本程序设计与转换方法"
下载需积分: 5 | 328KB |
更新于2024-01-02
| 20 浏览量 | 举报
收藏
本次实验的目的是学习Keil集成开发环境的操作,并且熟悉TD-51系统板的结构与使用,以及掌握不同进制数与编码相互转换的程序设计方法。此外,还需要学习查表程序的设计方法,进一步熟悉51的指令系统。
在实验中,我们需要准备一台PC机和TD-NMC教学实验系统作为实验设备。
实验步骤如下:
1. 首先,我们需要编写实验程序,并且对其进行编译,确保没有错误。之后,我们可以启动调试功能进行实验。
2. 在实验过程中,我们需要观察实验现象,并分析其原因。通过观察不同进制数与编码之间的转换结果,可以加深对数码转换的理解。
3. 在实验完成后,可以按下复位键退出调试状态。
实验内容主要是将BCD码整数0~255存入片内RAM的20H、21H、22H中,然后转换为二进制整数00H~FFH,并将结果保存到寄存器R4中。我们还可以修改20H、21H、22H单元的内容,例如将其改为00H、05H、08H,然后观察实验结果。
下面是参考程序:
```Assembly
;==============================================================
; 文件名称: Asm2-1.asm
; 功能描述: BCD整数转换为二进制整数(8位, X围从00H--FFH)
;==============================================================
ORG 0000H
MOV R0, #20H
MOV R1, #00H
MOV R2, #255
MOV R3, #20H
LOOP1:
MOV A, R1
MOV R4, #00H
MOV R5, #00H
LOOP2:
MOV B, A
JB ACC.4, HEXA
JB ACC.5, HEXB
JB ACC.6, HEXC
JB ACC.7, HEXD
HEXA:
ADD A, #0AH ;只要 A 中的数据为 '0'~'9'(0000 0000b~0000 1001b) ,
SJMP HEXE ;则增加 10(0000 1010b),不影响 C(进位标志)
HEXB:
ADD A, #4 ;只要 A 中的数据为 'A'~'F'(0000 1010b~0000 1111b),
SJMP HEXE ;则增加 04(0000 0100b),不影响 C(进位标志)
HEXC:
ADD A, #6 ;只要 A 中的数据为 'a'~'f'(0110 0001b~0110 0110b),
SJMP HEXE ;则增加 06(0000 0110b),不影响 C(进位标志)
HEXD:
ADD A, #00H ;保持如此的值不变
HEXE:
ADD R4, #01H
RRC A ;不停地右移数位,每右移一位,上述 RR A
;指令后面的运算结果将被送到 C(进位标志)
DJNZ R5, LOOP2
MOVC @R3, A ;将 A 指定的数据,送到 R3 指定的地址,in cyce +2
INC R3 ;指向下一个单元,in cyce +1
DJNZ R0, LOOP1 ;依次循环20H、21H、22H 3 次。共 241 次操作
LOOP3:
MOV A, R1
MOV R3, #0FFH
AJMP LOOP4
LOOP4:
MOVC A,@R3 ;将 R3 指定的数据,传送到 A,in cycle +2
MOV @R3, A ;将 A 传送到 R3 指定的单元,in cycle +2
DEC R3 ;依次将 A 指定的数据传送到 R3 指定的 RAM 单元,共 256 次操作
JBC ACC.0,LOOP3
END
```
通过以上实验步骤和参考程序,我们可以完成本次实验,并且加深对单片机应用系统的认识与基本程序设计的理解。这些实验对于提高我们的嵌入式系统开发能力具有重要意义。
相关推荐


















智慧安全方案
- 粉丝: 3921
最新资源
- 51单片机stdlib.h库函数应用及Proteus仿真教程
- 蓝桥杯赛事编程题:运动员分组参考代码解析
- 浙江未来品质住宅社区规划与试点实施详案
- 全面升级的Xshell7:Linux远程管理新体验
- PB编程资源:源码与书籍合集
- 微信小程序医疗保健项目:全技术栈源码及文档
- Linux云基础复习指南
- SpringBoot结合Sa-Token实现前后端分离登录注销教程
- 电动车数据集的下载与应用
- ERP沙盘模拟实训教程:手工、信息化与新商战策略
- Axure元件库2022合集:UI设计师和产品经理的利器
- MFC扫雷程序设计教程:经典游戏界面实现
- 梅州十年PM2.5浓度数据报告
- 黄小平粒子滤波MATLAB代码实现与仿真应用
- yolov5在openvino2022版本的win10系统部署及实时预览
- 微信小程序商城uniapp源码完整版下载
- PB表达式计算验证源码的深度解析
- 微信小程序页面自动生成工具(学习版)介绍
- STM32与ESP8266结合,实现温湿度数据上传阿里云物联网平台
- STM32F103C8T6单片机串口通信实战开发教程
- 大学生就业服务平台SSM设计实现攻略
- MATE算法:高效解决VRPSPDTW问题的创新研究
- 群发邮件功能的计算机软件编程源码套装
- Silverlight在线几何绘图工具的商业源码发布