Keil5的基本使用

Keil5的基本使用
1、新建工程
首先注意到project文件夹,按图片方式打开
找到一个空文件夹,输入工程名,这样就创建成功了
在这里插入图片描述

2、新建.s文件
右击工程找到下图中的新建文件的选项
输入文件名创建.s文件,创建成功
在这里插入图片描述

3、配置options选项数值
找到途中选项
配置属性,勾选为use simualter属性这个值
选择芯片,这里可以选择你使用的芯片,也可以进行更换
勾选上.hex文件生成
在这里插入图片描述
在这里插入图片描述

4、实验调试
再main.s文件中输入一下内容
AREA EXAMPLE,CODE,READONLY
ENTRY
EXPORT __main
__main
LDR SP,=0X40000000
;ldr r4,=0x40000000
;SWAP
;ldr r5,[r4]
;ldr r6,[r4,#4]
;str r5,[r4,#4]
;str r6,[r4]
;ldr r5,[r4]
按照图中不走运行并调试,得到结果
;ldr r6,[r4,#4]
;R0,R2 INNITAIL
MOV R2,R0
LOOP_1 CMP R1,R0
BGE LOOP_END
ADD R1,R1,#1
SUB R2,R2,#1
MOV R3,#0
LDR R4,=0X40000000
B LOOP_2
LOOP_2 CMP R3,R2
BGE LOOP_1
ADD R3,R3,#1
LDR R5,[R4]
LDR R6,[R4,#4]
ADD R4,R4,#4
CMP R5,R6
BLS LOOP_2
SUB R4,R4,#4
STR R5,[R4,#4]
STR R6,[R4]
ADD R4,R4,#4
B LOOP_2
LOOP_END
MOV R2,R0,LSR#1
MOV R3,#4
MUL R1,R2,R3
LDR R1,[SP,R1]
END
调试成功
在这里插入图片描述

  • 4
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Keil C51使用详解 第一节 系统概述... 6 第二节 Keil C51单片机软件开发系统的整体结构... 6 第三节 Keil C51工具包的安装... 7 1. C51 for Dos 7 2. C51 for Windows的安装及注意事项:... 7 第四节 Keil C51工具包各部分功能及使用简介... 7 1. C51与A51. 7 2. L51和BL51. 8 3. DScope51,Tscope51及Monitor51. 8 4. Ishell及uVision. 9 第二章 Keil C51软件使用详解... 10 第一节 Keil C51编译器的控制指令... 10 1. 源文件控制类... 10 2. 目标文件(Object)控制类:... 10 3. 列表文件(listing)控制类:... 10 第二节 dScope51的使用... 11 1. dScope51 for Dos 11 2. dScope for Windows 12 第三节 Monitor51及其使用... 13 1. Monitor51对硬件的要求... 13 2. Mon51的使用... 13 3. MON51的配置... 13 4. 串口连接图:... 13 5. MON51命令及使用... 14 第四节 集成开发环境(IDE)的使用... 14 1. Ishell for Dos的使用... 14 2. uVision for windows的使用... 15 第三章 Keil C51 vs 标准C.. 15 第一节 Keil C51扩展关键字... 15 第二节 内存区域(Memory Areas):... 16 1. Pragram Area:... 16 2. Internal Data Memory: 16 3. External Data Memory. 16 4. Speciac Function Register Memory. 16 第三节 存储模式... 16 1. Small模式... 16 2. Compact模式... 17 3. large模式... 17 第四节 存储类型声明... 17 第五节 变量或数据类型... 17 第六节 位变量与声明... 17 1. bit型变量... 17 2. 可位寻址区说明20H-2FH.. 18 第七节 Keil C51指针... 18 1. 一般指针... 18 2. 存储器指针... 18 3. 指针转换... 18 第八节 Keil C51函数... 19 1. 中断函数声明:... 19 2. 通用存储工作区... 19 3. 选通用存储工作区由using x声明,见上例。... 19 4. 指定存储模式... 19 5. #pragma disable. 19 6. 递归或可重入函数指定... 19 7. 指定PL/M-51函数... 20 第四章 Keil C51高级编程... 20 第一节 绝对地址访问... 20 1. 绝对宏:... 20 2. _at_关键字... 21 3. 连接定位控制... 21 第二节 Keil C51与汇编的接口... 21 1. 模块内接口... 21 2. 模块间接口... 21 第三节 Keil C51软件包中的通用文件... 22 1. 动态内存分配... 22 2. C51启动文件STARTUP.A51. 22 3. 标准输入输出文件... 25 4. 其它文件... 25 第四节 段名协定与程序优化... 25 1. 段名协定(Segment Naming Conventions) 25 2. 程序优化... 25 第五章 Keil C51库函数参考... 26 第一节 本征库函数(intrinsic routines)和非本征证库函数... 26 第二节 几类重要库函数... 26 1. 专用寄存器include文件... 26 2. 绝对地址include文件absacc.h. 26 3. 动态内存分配函数,位于stdlib.h中... 27 4. 缓冲区处理函数位于“string.h”中... 27 5. 输入输出流函数,位于“stdio.h”中... 27 第三节 Keil C51库函数原型列表... 27 1. CTYPE.H.. 27 2. INTRINS.H.. 27 3. STDIO.H.. 28 4. STDLIB.H.. 28 5. STRING.H.. 28 第六章 Keil C51例子:Hello.c.. 29 第一节 uVision for Windows的使用步骤... 29 第二节 Ishell for Dos使用步骤... 30 第七章 Keil C51的代码效率... 30 第一节 存储模式的影响... 30 第二节 程序结构的影响... 31 第八章 dScope for Windows使用详解... 32 第一节 概述... 32 1. 主窗口(Mainframe Window)... 32 2. 调试窗口(DEBUG Window)... 32 3. 命令窗口(Command Window)... 32 4. 观察窗口(Watch Window)... 32 5. 寄存器窗口(Registe Window)... 32 6. 串口窗口(Serical Windows)... 32 7. 性能分析窗口... 32 8. 内存窗口(Memory Window)... 32 9. 符号浏览窗口(Symbol Browser Window)... 33 10. 调用线窗口(Call-Stack Window)... 33 11. 代码覆盖窗口... 33 12. 外围设备窗口(peripherals) 33 第二节 dScope for Windows基本操作... 33 1. 指定初始化文件... 33 2. 观察变量... 33 3. 显示RAM的值... 34 4. 观察堆栈... 34 5. 中断处理程序调试... 34 6. 性能分析(Performance Analyzer:PA)... 34 第三节 dScope for Windows命令文件的编制... 34 1. 地址空间及地址空间类型... 34 2. 常量... 35 3. 变量... 36 4. 运算符... 38 5. 表达式... 38 6. 数组... 38 7. 结构和联合... 38 8. 指针:... 38 9. dScope命令语句... 38 10. 函数... 43
单片机设计与KeilC编程总结  1基本原则   质量是关键。没有人会对很差的工作感到满足。当完成高质量的工作时,你会为此 而感到骄傲。不管你是否知道,你都会因为你的高质量工作而得到信誉。因此,要想为 自己所做的事感到骄傲,就需要建立个人标准,并为达到这一标准而努力奋斗。在达到 这些标准时,再提高标准并继续努力。挑战自己去完成更优良的工作,你将会为自己的 成就而感到惊讶。   1.1 了解单片机的能力   【规则1】设计满足要求的最精简的系统。   正确估计单片机的能力,知道单片机能做什么,最大程度的挖掘单片机的潜力对一 个单片机系统设计者来说是至关重要的。我们应该有这样一个认识,即单片机的处理能 力是非常强大的。早期的PC 机,其CPU(8086)处理能力和8051 相当,却能处理相当复杂的任务。单片机的能力的关键就在软件设计者编写的软件上。 只有充分地了解到单片机的能力,才不会做出"冗余"的系统设计。而采用许多的外围芯 片来实现单片机能实现的功能。这样做即增加了系统成本,也可能会降低了系统的可靠 性。   1.2 系统可靠性至关重要   【规则2】使用看门狗。   看门狗电路通常是一块在有规律的时间间隔中进行更新的硬件。更新一般由单片机 来完成,如果在一定间隔内没能更新看门狗,那看门狗将产生复位信号,重新复位单片 机。更新看门狗的具体形式多是给看门狗芯片相关引脚提供一个电平上升沿或读写它的 某个寄存器。使用看门狗电路将在单片机发生故障进行死机状态时,重新复位单片机。 当前有多种看门狗的芯片,如MAXIM 公司的MAX802,MAX813等。而且,有好多种单片机中本身就集成有看门狗。一个外部的 看门狗是最好的,因为它不依赖于单片机。如果可能的话,看门狗更新程序不应该放在 中断或是子程序中,原则上应该放在主程序中。我曾经见过一个工程师,他所调试的程 序在运行时偶而会引起看门狗的复位动作,于是他干脆在每10ms 就中断一次的时钟中断程序中清看门狗。我相信他也知道使看门狗失去作用,可他却没 有不是去查明引起这个现象的真正原因。因此,我想提醒大家:不论什么理由,绝对不 要忽略系统故障的真正原因。高质量的产品来自于高素质的工程师,高质量的产品造就 高素质的工程师。   【规则3】确定系统的复位信号可靠。   这是一个很容易忽略的问题。当你在设计单片机系统时,你脑中有这个概念吗?什么 样的复位信号才是可靠的吗?你用示波器查看过你设计的产品的复位信号吗?不稳定的复 位信号可能会产生什么样的后果?你有没有发现过你所设计的单片机系统,每次重新上电 启动后,数据变得乱七八糟,并且每一次现象并不相同,找不出规律,或者有时候干脆 不运行,或者有时候进入一种死机状态,有时候又一点事都没有正常运行?在这种情况下 ,你应该查一下你的系统的复位信号。一般在单片机的数据手册(Datasheet)中都会提到 该单片机需要的复位信号的要求。一般复位信号的宽度应为。复位电平的宽度和幅度都 应满足芯片的要求,并且要求保持稳定。还有特别重要的一点就是复位电平应与电源上 电在同一时刻发生,即芯片一上电,复位信号就已产生。不然,由于没有经过复位,单 片机中的寄存器的值为随机值,上电时就会按PC 寄存器中的随机内容开始运行程序,这样很容易进行误操作或进入死机状态。   【规则4】确定系统的初始化有效。   系统程序开始应延时一段时间。这是很多单片机程序设计中的常用方法,为什么呢 ?因为系统中的芯片以及器件从上电开始到正常工作的状态往往有一段时间,程序开始时 延时一段时间,是让系统中所有器件到达正常工作状态。究竟延时多少才算合适?这取决 于系统的各芯片中到达正常工作状态的时间,通常以最慢的为准。一般来说,延时20- 100 毫秒已经足够。对于系统中使用嵌入式MODEM 等"慢热"型的器件来说,则应更长。当然,这都需要在系统实际运行中进行调整。   【规则5】上电时对系统进行检测。   上电时对系统中进行检测是单片机程序中的一个良好设计。在硬件设计时也应该细 细考虑将各个使用到的芯片、接口设计成容易使用软件进行测试的模式。很多有经验的 单片机设计者都会在系统上电时(特别是第一次上电时)进行全面的检测,或者更进一步 ,将系统的运行状态中分为测试模式和正常运行模式,通过加入测试模式对系统进行详 细的检测,使得系统的批量检测更为方便容易。另外要注意的是,一个简单明了的故障 显示界面也是颇要费得心思的。比如:系统的外部RAM(数据存储器)是单片机系统中常用 的器件。外部RAM 如果存在问题,程序通常都会成为一匹脱缰的野马。因此,程序在启动时(至少在第一次 上电启动时)一定要对外部RAM 进行检测。检测内容包括:1)检测RAM 中的单元。这主要通过写入和读出的数据保持一致。   2)检测

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值