FSL+08系列单片机开发及C语言编程简介

合集下载

单片机的编程语言及开发环境介绍

单片机的编程语言及开发环境介绍

单片机的编程语言及开发环境介绍在单片机的开发中,编程语言及开发环境是至关重要的一部分。

单片机是一种集成电路,它能够实现特定功能的微处理器系统,通常用于控制嵌入式系统中的各种设备。

而对单片机进行编程就是为单片机写入程序,使其按照预先设定的规则来完成各种功能。

接下来将介绍常用的单片机编程语言及开发环境。

一、C语言C语言是目前单片机最常用的编程语言之一,它是一种高级编程语言,具有良好的可移植性和通用性。

使用C语言编程可以使得单片机的程序结构清晰,编写起来比较简单。

在单片机中,C语言通常通过嵌入式C编译器来进行编译,生成单片机可以执行的机器代码。

常见的嵌入式C编译器有Keil、IAR等。

二、汇编语言汇编语言是一种低级编程语言,直接面向硬件,可以更加精确地控制单片机的各个部件。

在单片机编程中,使用汇编语言可以实现更高效的程序,但编写起来相对困难,适合有一定经验的开发人员。

汇编语言也需要借助特定的汇编器来将源代码转换为机器码。

三、基于图形化编程环境对于初学者来说,图形化编程环境可能是更好的选择。

这类编程环境通常采用类似拖拽式的界面,使得编程更加直观和简单。

通过这种方式可以避免一些繁琐的语法和逻辑,更侧重于功能的实现。

常见的图形化编程环境有LabVIEW、Blockly等。

开发环境:在单片机开发中,除了选择合适的编程语言外,还需要选择适用的开发环境。

开发环境包括编译器、调试器、仿真器等工具,可以帮助开发人员更高效地进行单片机程序的开发。

1. 编译器编译器是将源代码编译成可执行程序的工具。

在单片机开发中,常用的编译器有Keil、IAR、CCS等。

这些编译器通常提供了丰富的库函数和调试工具,可以大大简化开发过程。

2. 调试器调试器是用来调试程序的工具,可以监控程序的执行过程,查看内存和寄存器的值,帮助开发人员分析和解决程序中的bug。

常见的调试器有ST-Link、J-Link等。

3. 仿真器仿真器可以模拟单片机的运行环境,帮助开发人员在没有硬件的情况下进行程序的调试和测试。

单片机编程语言介绍

单片机编程语言介绍

单片机编程语言介绍单片机(Microcontroller,简称MCU)是一种完整的计算机系统,由中央处理器(CPU)、内存、输入输出引脚和一些外设集成在一块芯片上。

它广泛应用于嵌入式系统中,控制各种电子设备。

而单片机编程语言则是用来编写单片机程序的语言,常见的单片机编程语言包括汇编语言、C语言以及基于C语言改进的高级语言等。

I. 汇编语言汇编语言是一种底层的编程语言,直接使用机器指令来编写程序。

在汇编语言中,每条指令被映射到特定的机器码,通过对寄存器和内存进行操作,实现对硬件的控制。

汇编语言的编写相对繁琐和复杂,需要对硬件细节有深入的了解。

汇编语言具有较高的灵活性和效率,可直接对硬件进行操作,对于一些对性能要求较高且对程序大小要求较小的应用场景较为适用。

然而,由于其复杂性和可读性较差,编写和维护汇编语言程序相对困难,且对开发人员的技术要求较高。

II. C语言C语言是一种高级的编程语言,被广泛应用于单片机编程中。

相比于汇编语言,C语言更易于学习和使用,具有更好的可读性和可移植性。

C语言不需要直接接触机器码,而是通过编译器将代码转换为机器码。

C语言具有丰富的库函数和语法特性,能够方便地实现各种功能。

它提供了丰富的结构和数据类型,如条件语句、循环语句、函数等,使得编写和调试程序更加便捷。

C语言在单片机编程中得到广泛应用,特别适合中小型项目和对开发周期要求较短的应用。

III. 基于C语言的高级语言除了C语言,还有一些基于C语言改进的高级语言,如C++、C#、Python等,也可以用于单片机编程。

这些高级语言相比于C语言,提供了更多的面向对象编程(OOP)特性和库函数,使得开发更加高效和便捷。

C++是一种扩展自C语言的面向对象编程语言,通过封装、继承和多态等特性,使程序具有更好的可维护性和扩展性。

C#则是微软推出的面向对象编程语言,提供了强大的框架和库,可用于开发Windows平台的应用。

而Python则以其简洁、灵活和易读的代码著称,适合于快速原型开发和开发周期较短的项目。

单片机基础C语言(二)2024

单片机基础C语言(二)2024

单片机基础C语言(二)引言概述:单片机是嵌入式系统中广泛使用的一种微型计算机,其基础编程语言是C语言。

本文将进一步介绍单片机基础C语言的相关知识,包括输入输出控制、条件语句、循环语句、函数以及数组的应用。

正文内容:一、输入输出控制1. 使用C语言实现单片机输入输出的基本方法2. 掌握如何配置和操作单片机的输入输出引脚3. 如何通过编程实现数字信号的输入和输出4. 探讨模拟信号的输入和输出控制5. 实例演示单片机输入输出的应用场景二、条件语句1. 介绍条件语句的基本概念和语法结构2. 掌握if语句的使用方法及其扩展形式3. 嵌套if语句的使用和注意事项4. 介绍switch语句的使用场景和语法规则5. 实例演示条件语句在单片机中的应用三、循环语句1. 介绍循环语句的基本概念和语法结构2. 掌握while循环、do-while循环和for循环的使用方法3. 循环语句中的break和continue关键字的作用和用法4. 循环语句与条件语句的结合应用5. 实例演示循环语句在单片机程序中的应用四、函数1. 函数的概念和作用2. 函数的定义和声明3. 函数的参数传递方法4. 递归函数的特点和应用场景5. 实例演示函数在单片机程序中的应用五、数组的应用1. 介绍数组的基本概念和存储结构2. 数组的声明、初始化和访问方式3. 一维数组的特点和应用4. 多维数组的使用方法和注意事项5. 实例演示数组在单片机程序中的应用总结:本文深入讲解了单片机基础C语言的相关知识,包括输入输出控制、条件语句、循环语句、函数以及数组的应用。

通过学习这些内容,读者可以掌握单片机编程的基本技巧,提升自己在嵌入式系统开发中的能力。

同时,本文也通过实例演示了这些知识在实际应用中的场景,帮助读者更好地理解和运用所学知识。

希望读者通过本文的学习,能够在单片机编程领域取得更大的进步。

单片机c语言教程

单片机c语言教程

单片机c语言教程单片机(Microcontroller)是一种集成电路芯片,内部包含了处理器、存储器、输入/输出端口以及其他辅助设备,可以完成各种控制、计算和通信任务。

单片机广泛应用于嵌入式系统中,是实现各种电子设备的核心部件。

C语言是一种通用的高级编程语言,具有结构化和模块化的特点,易于学习和实践。

在单片机编程中,C语言往往是首选的编程语言,因为它能够提供许多便利的程序开发和调试工具。

单片机C语言教程对于初学者来说非常重要。

首先,教程介绍了C语言的基础知识,如变量、数据类型、运算符等。

这些知识是理解和编写C语言程序的基础。

接着,教程会详细介绍C语言的控制结构,如条件语句、循环语句和选择语句等。

这些结构对于实现单片机控制逻辑非常重要。

除了基础知识,单片机C语言教程还会介绍如何使用C语言编写单片机的输入/输出程序。

单片机的输入/输出是与外部设备进行交互的关键部分。

教程会介绍如何使用C语言读取和写入单片机的输入/输出端口,控制外部设备的状态。

此外,教程还会介绍C语言中的位操作,以及如何通过位操作实现对单片机的灵活控制。

单片机C语言教程还会介绍如何使用C语言编写中断服务程序。

中断是单片机处理外部事件的重要机制,可以实现实时响应和高效处理。

教程会详细讲解中断的原理和使用方法,以及如何在C语言中编写中断服务程序。

最后,单片机C语言教程还会介绍如何使用C语言进行调试和优化。

调试是程序开发中不可或缺的环节,可以帮助我们找出程序中的错误和问题。

教程会介绍如何使用调试工具和技术来调试单片机的C语言程序。

此外,教程还会介绍一些优化技巧,以提高单片机程序的运行效率和响应速度。

总之,单片机C语言教程是学习和应用单片机的关键资料。

通过学习教程,我们可以了解C语言的基础知识、控制结构、输入/输出编程、中断编程以及调试和优化技巧。

这些知识将帮助我们更好地理解和应用单片机,实现各种电子设备的功能和控制。

第2章FreescaleHC(s)08系列单片机概述

第2章FreescaleHC(s)08系列单片机概述

第2章FreescaleHC(s)08系列单片机概述是《嵌入式技术基础与实践》这本书的配套课件,帮助大家更好的学习飞思卡尔的住款单片机。

《嵌入式技术基础与实践》嵌入式技术基础与实践》第二章FreescaleHC08/S08系列FreescaleHC0 C08/S08系列单片机概述主要内容 2.1 08系列单片机简介 2.2 HC08系列单片机 2.3 HCS08系列单片机 2.4 RS08系列单片机 2.5 进一步讨论是《嵌入式技术基础与实践》这本书的配套课件,帮助大家更好的学习飞思卡尔的住款单片机。

《嵌入式技术基础与实践》嵌入式技术基础与实践》2.1 08系列单片机简介08系列单片机简介Freescale的08系列单片机主要有HC08, HCS08和RS08三种类型.HC08推出比较早,种类也比较多,针对不同的场合都可以HC08 选到合适的型号. HCS08是最近推出的新型的08 08系列单片机,性价比很高,是HCS08 08 08系列单片机的发展趋势. 08 RS08是HCS08 RS08 HCS08架构的简化版,其内核体积小,带有精简指令HCS08 集,满足用户对体积更小,更加经济高效地解决方案的需求.是《嵌入式技术基础与实践》这本书的配套课件,帮助大家更好的学习飞思卡尔的住款单片机。

《嵌入式技术基础与实践》嵌入式技术基础与实践》Freescale单片机单片机, 2.1.1 Freescale单片机,基本命名规则хх х хх х х хх х хх ① ② ③ ④ ⑤ ⑥ ⑦①指产品状态存储器类型标志. ② 存储器类型标志. 芯片内核. ③ 芯片内核. 型号标志.④ 型号标志. 存储器大小. ⑤ 存储器大小. 工作温度范围标志.⑥ 工作温度范围标志. 封装标志. ⑦ 封装标志.特别说明: HC08芯片以前命名中包含了68HC“部分芯片以前命名中包含了" 部分, 特别说明:Freescale HC08芯片以前命名中包含了"68HC 部分,如: *****32芯片以前的名称是*****08GP32,在很多资料中对于HC08 芯片以前的名称是*****08GP32 HC08芯*****32芯片以前的名称是*****08GP32,在很多资料中对于HC08芯片都沿用了这种方法. 片都沿用了这种方法.是《嵌入式技术基础与实践》这本书的配套课件,帮助大家更好的学习飞思卡尔的住款单片机。

单片机c语言基础知识

单片机c语言基础知识

单片机c语言基础知识随着电子技术的不断发展,单片机已经广泛应用于各个领域。

而在单片机的程序设计中,C语言被广泛使用,因为它具有丰富的语法和强大的功能。

本文将介绍单片机C语言基础知识,帮助读者了解如何使用C语言进行单片机的程序设计。

1. C语言的基本语法C语言是一种结构化的编程语言,其语法相对简单易懂。

下面列举几个C语言的基本语法要点:1.1 变量与数据类型在C语言中,我们首先需要定义变量和数据类型。

例如,可以使用int类型来定义一个整数变量,使用float类型来定义一个浮点数变量。

1.2 运算符和表达式C语言支持各种运算符,包括算术运算符、逻辑运算符、关系运算符等。

使用这些运算符可以进行各种复杂的数学计算和逻辑判断。

1.3 控制语句C语言提供了多种控制语句,例如if语句、for循环语句、while循环语句等。

这些控制语句可以根据条件执行相应的操作,实现各种程序控制功能。

2. 单片机开发环境搭建在进行单片机程序设计之前,我们首先需要搭建相应的开发环境。

以下是一些常用的单片机开发环境:2.1 Keil CKeil C是一款集成开发环境(IDE),常用于编写和调试单片机程序。

通过Keil C,我们可以方便地编写C语言程序,并进行调试和下载到单片机进行运行。

2.2 MPLAB XMPLAB X是一款由Microchip公司提供的集成开发环境,主要用于PIC系列单片机的程序设计。

通过MPLAB X,我们可以使用C语言编写程序,并将其下载到PIC单片机上。

3. 单片机C语言程序设计有了基本的C语言知识和开发环境,我们就可以进行单片机的程序设计了。

以下是一些常见的单片机C语言程序设计内容:3.1 输入和输出在单片机程序设计中,输入和输出是最基本的操作之一。

我们可以使用printf函数进行输出,使用scanf函数进行输入。

这样可以实现与用户进行交互的功能。

3.2 逻辑控制逻辑控制是单片机程序设计中非常重要的一部分。

CW经典教程

1.CodeWarrior中建立新项目运行CodeWarrior(CW)集成开发平台,如图1-1所示在File菜单下点击New,弹出建立新项目的模板对话框,见图1-2。

一般的简便做法是在图1-2对话框左面的选择列表中选择“HC(S)08 New Project Wizard”,然后在右面的项目名“Project Name”输入条中,输入你要建立的新项目名字,再在“Location”一栏中用确定项目存放的文件夹路经,完成后按“OK”进入下一步。

你也可以在图1-2对话框左侧列表中选择“Empty Project”,这样生成的项目不包含任何文件,你必须在CodeWarrior中自己添加所有相关的文件内容。

我想除非有特殊理由,实际项目开发过程中很少采用这种麻烦的方式来建立自己的项目。

接下去是选择项目开发所用的编程语言,见图1-3。

最常用的当然是C语言编程。

有时因具体项目要求,除了C编程外还需要编写独立的汇编语言模块,那就再加选汇编工具(Assembly)。

C++编程在免费版和标准版CW下都不支持,只有在专业版下才可以使用。

编程语言选择完毕后按“Next”。

图1-1图1-2图1-3这时将出现如图1-4的对话框,让你选择项目开发对应的MCU 型号。

在CW5.x 版本下支持几乎所有的HC08和大部分HCS08单片机型号。

在最新的CW6.x 中,增加了飞思卡尔最低端的8位机(RS08系列)和低端32位处理器(Coldfire V1系列)的支持,但HC08系列的有些型号没有被包含在内。

由于HC08为比较老的产品系列,已经不推荐在新项目设计中选用,因此影响不会太大。

对于新用户来说,请尽量直接安装CW6.x 或以后推出的更新版本。

以典型的9S08系列为例,当你选择了一个MCU 型号后,在图1-4右侧会显示出所有针对该型号芯片可用的项目调试场景。

其中:∙ “Full Chip Simulator ”是芯片全功能模拟仿真,即无需任何目标系统的硬件资源,直接在你的PC 机上模拟运行单片机的程序,在模拟运行过程中可以观察调试程序的各项控制和运行流程,分析代码运行的时间,观察各种变量,等等。

单片机程序语言

单片机程序语言一、介绍单片机程序语言是一种用于编写单片机(microcontroller)的软件语言,用于控制单片机的操作和功能。

单片机是一种集成电路,内置了处理器、存储器和各种外设,可用于实现各种电子设备的控制和功能。

二、常见的单片机程序语言2.1 C语言C语言是最常用的单片机程序语言之一。

它具有高度的可移植性、灵活性和底层控制能力,广泛应用于嵌入式系统。

C语言可以通过各种编译器将代码转换为机器码,然后下载到单片机中执行。

2.2 汇编语言汇编语言是一种低级语言,直接与计算机硬件相关。

它使用助记符来表示机器指令,具有极高的执行效率和对底层硬件的精细控制能力。

但汇编语言编写的程序可读性差、维护困难,一般只在特定场景下使用。

2.3 基于流程图的图形化编程语言为了简化单片机程序的编写,一些图形化编程语言应运而生。

这些语言基于流程图,通过拖拽和连接各种图形化元素,来表示程序执行的流程和操作。

这种方式的编程更加直观和易于理解,适用于初学者和简单的项目。

三、单片机程序语言的基本构成单片机程序语言具有一定的结构和语法规则,下面是单片机程序的基本构成: ### 3.1 引用头文件单片机程序通常需要引用一些头文件,以便使用其中定义的函数和常量。

头文件中包含了对单片机内部资源的定义和操作方式。

3.2 定义全局变量在程序开始处,可以定义一些全局变量。

这些变量的作用范围包括整个程序,可以在不同的函数中使用和修改。

3.3 初始化函数初始化函数在单片机上电后立即执行,用于初始化各种硬件资源和配置寄存器,以使单片机处于预期的工作状态。

初始化函数只在程序启动时执行一次。

3.4 主函数主函数是单片机程序的入口,包含了程序的主要逻辑和功能。

主函数可以由循环结构或条件判断来控制单片机的行为,读取输入、处理数据、控制输出等。

3.5 中断函数中断函数是在特定事件发生时自动执行的函数。

例如,当某个传感器检测到输入信号时,可以触发中断函数来处理这个事件,而不是通过轮询的方式不断地检测输入状态。

单片机编程语言简介

单片机编程语言简介指令个程序:欲使单片机工作,必须给它“下命令”,这里的“命令”称作指令,单片机执行不同的指令就可以完成不同的操作。

对于一些简单的任务,单片机执行一两条指令就可以完成,但是一些复杂的任务就需要执行很多条指令才可以完成。

我们把单片机执行特定控制任务的指令的总和叫做程序。

我们编写这些指令总和的过程叫做程序设计。

我们要单片机执行我需要的什么任务时,我们就对其写出任务指令,然后传达(编入)给单片机,让它执行我们的指令。

要设计单片机程序,除了要了解单片机指令的含义和用法外,还要掌握指令组合成程序的规则。

就跟我们学习英语一样,我们要学习英语的语法和用法规则,才能说好用好流利的英语。

编程语言:单片机常用的编程语言有:机器语言汇编语言和高级语言(主要是c 语言)1.机器语言单片机是一种大规模的数字集成电路,它只能识别0 和 1 这样的二进制代码。

以前在单片机开发过程中,人们用二进制代码编写程序,然后再把所编写的二进制代码程序写入单片机,单片机执行这些代码程序就可以完成相应的程序任务。

用二进制代码编写的程序称为机器语言程序。

在用机器语言编程时,不同的指令用不同的二进制代码代表,这种二进制代码构成的指令就是机器指令。

在用机器语言编写程序的时候,由于需要记住大量的二进制代码指令及这些代码代表的功能,很不方便且容易出错,现在基本上很少有人用机器语言对单片机进行编程了。

2.汇编语言由于及其语言编程很不方便,人们便用一些有意义并且容易记忆的符号来表示不同的二进制代码指令,这些符号称为助记符。

用助记符表示的指令称为汇编语言指令,用助记符编写出来的程序称为汇编语言程序。

01110100 00000010 (机器语言)MOV A,#02H (汇编语言)这两行程序。

08级单片机(基于C语言设计)组毕业设计任务书

08级单片机(基于C语言设计)组毕业设计任务书一、毕业设计目的1、训练学生综合运用C51芯片,结合外围电路,设计简单控制电路的能力。

2、训练学生使用C语言进行C51单片机编程。

3、训练学生使用Keil软件进行程序编写、调试与下载的能力。

4、训练学生使用Protel99SE软件绘制电路原理图及PCB版图5、训练学生使用Proteus软件和Keil软件进行联合调试和仿真二、时间安排1.2010年11月1日~11月5日毕业设计(论文)各项准备工作。

2. 2010年11月6日~11月10日毕业设计(论文)任务分配、调研阶段。

;3. 2010年11月11日~11月20日熟悉所用硬件,编写源程序。

4. 2010年11月21日~11月30日调试程序,实现功能,编写毕业论文。

5.2009年12 月 1日~ 12月10 日毕业答辩。

三、设计课题内容及要求硬件组:1、基于51单片机的数码管动态显示功能要求:利用动态扫描和定时器(如定时器1)在数码管上显示出从765432开始以1/10秒的速度往下递减直至765398并保持显示此数(上述数字可自行设置) 与此同时利用另一定时器(如定时器0)以500ms速度进行流水灯滚动显示 当数码管上数减至停止时,实验板上流水灯也停止然后全部开始闪烁,3秒后(用T0定时)流水灯全部关闭、数码管上显示出“HELLO”,至此保持住其它要求:◆用Protel99SE软件画出原理图和PCB版图◆在Keil开发环境下编写源程序,将程序烧写到开发板中◆画出流程图软件组:1、基于51单片机的公交语音自动报站系统功能要求:通过AT89C51 对各个模块的控制实现无线收发与识别、信息显示及语音报站任务,并利用Proteus软件进行仿真用JHD162A LCD作为信息显示平台用ISD1700系列语音芯片实现各种语音控制用DF无线收发模块及PT2262、PT2272编解码芯片实现信号的无线收发与识别其它要求:◆用Protel99SE软件画出原理图和PCB版图◆在Keil开发环境下编写源程序,联合Proteus软件进行仿真◆画出流程图。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.CodeWarrior中建立新项目运行CodeWarrior(CW)集成开发平台,如图1-1所示在File菜单下点击New,弹出建立新项目的模板对话框,见图1-2。

一般的简便做法是在图1-2对话框左面的选择列表中选择“HC(S)08 New Project Wizard”,然后在右面的项目名“Project Name”输入条中,输入你要建立的新项目名字,再在“Location”一栏中用确定项目存放的文件夹路经,完成后按“OK”进入下一步。

你也可以在图1-2对话框左侧列表中选择“Empty Project”,这样生成的项目不包含任何文件,你必须在CodeWarrior中自己添加所有相关的文件内容。

我想除非有特殊理由,实际项目开发过程中很少采用这种麻烦的方式来建立自己的项目。

接下去是选择项目开发所用的编程语言,见图1-3。

最常用的当然是C语言编程。

有时因具体项目要求,除了C编程外还需要编写独立的汇编语言模块,那就再加选汇编工具(Assembly)。

C++编程在免费版和标准版CW下都不支持,只有在专业版下才可以使用。

编程语言选择完毕后按“Next”。

图1-1图1-2图1-3这时将出现如图1-4的对话框,让你选择项目开发对应的MCU 型号。

在CW5.x 版本下支持几乎所有的HC08和大部分HCS08单片机型号。

在最新的CW6.x 中,增加了飞思卡尔最低端的8位机(RS08系列)和低端32位处理器(Coldfire V1系列)的支持,但HC08系列的有些型号没有被包含在内。

由于HC08为比较老的产品系列,已经不推荐在新项目设计中选用,因此影响不会太大。

对于新用户来说,请尽量直接安装CW6.x 或以后推出的更新版本。

以典型的9S08系列为例,当你选择了一个MCU 型号后,在图1-4右侧会显示出所有针对该型号芯片可用的项目调试场景。

其中:∙ “Full Chip Simulator ”是芯片全功能模拟仿真,即无需任何目标系统的硬件资源,直接在你的PC 机上模拟运行单片机的程序,在模拟运行过程中可以观察调试程序的各项控制和运行流程,分析代码运行的时间,观察各种变量,等等。

CW 提供了功能强大的模拟激励功能,可以在模拟运行时模拟一些外部事件的输入,配合程序调试;∙ “P&E Multilink/Cyclone Pro ”是基于P&E 公司的硬件调试工具实现实时在线硬件调试。

实际就是我们经常说的BDM 调试。

BDM 调试是基于芯片本身内含的在线调试功能,可实现程序下载,单步/全速运行,可以设若干个断点,可以观察和修改任意寄存器或RAM 内存空间。

BDM 几乎是开发飞思卡尔8位(9S08和RS08系列)、16位(9S12系列)和32位(Coldfire V1系列)单片机的标准调试模式,运用最为广泛;∙ “SofTec HCS08”是另外一家SofTec 公司提供的硬件调试工具,国内使用较少;∙ “HCS08 Serial Monitor ”是基于芯片串口的监控调试开发模式。

由于开发效率较低,现在几乎无人使用。

注意不同系列,不同型号的芯片,或不同版本的CW ,其所对应或支持的开发场景可能不同,在图1-4的项目建立模板中都可以显现出来。

用户点击选择某一项场景后,该场景将在项目建立完成后作为首选配置。

你可以在稍后调试过程中随意切换开发场景,不必太在意在这里的选择。

到此你如果按“Finish ”,整个项目建立过程将完成,剩下的一些项目设定将自动用缺省配置。

如果你要自己选择调整,则按“Next ”进入下一步,往项目中添加现成的文件,见图1-5。

图1-4如果你以前编写了很多代码文件现在想重复利用,那么可以通过图1-5对话框左面的文件树选择对应的文件,按中间的“Add ”逐个添加到右侧的“Project Files ”列表中。

若加错了就用“Remove ”把列表中的文件移除。

注意此列表下方的两个选项:“Copy files to project ”选择是否将所选的文件拷贝到现在的项目文件夹中。

如果你准备在新的项目中修改这些文件,就选择拷贝,以免把原始的文件改变后而影响先前的一些项目;“Create main.c/main.asm file ”选择是否在本项目中生成全新的main.c 或main.asm 文件,一般的项目开发都需要生成新的main 文件。

按用户自己的要求和目的自由选取。

建议大家保留默认的选择状态。

如果没有什么现成的文件需要加入,就直接按“Next ”进入下一步,选择处理器专家(Processor Expert 或简称PE )。

PE 是CW 集成开发平台内带的可实现芯片内部各种资源模块配置并自动生成相关代码的一个软件工具。

不过只有专业版的CW 才支持该功能。

通过PE ,用户可以快速实现芯片初始化代码的自动生成工作,而且PE 还提供了大量的软件库可供用户开发时嵌入或调用。

因为8位单片机结构和功能相对简单,实现的控制项目复杂度也不是很高,故一般情况下8位机开发我们都不需要PE 的介入,自己直接编写程序代码即可。

关于PE 的详细介绍将耗费大量的文字,这里按下不提。

所以在图1-6的对话框中选择“None ”,并直接按“Next ”进入下一步。

这是项目建立模板的最后一步。

在这一步你可以决定有关C/C++的一些编译和代码生成模式,见图1-7。

启动代码选择。

所有C 编译器会自动生成一些启动代码。

单片机复位后的指令运行将首先执行这些启动代码,然后再进入到你自己的程序模块main 函数。

这些启动代码主要完成堆栈指针初始化、全局和静态变量自动清零图1-5图1-6图1-7或赋初值、调用main 函数等。

ANSI 标准初始化“ANSI startup code ”即完成上述工作,是项目开发的标准选择;最小初始化“Minimal startup code ”除了初始化堆栈指针外就直接调用main 函数,代码最少,进入main 函数最快,但变量的清零和赋初值必须由用户自己编写代码实现。

在这里请大家特别注意,即最小初始化将不会对全局或静态变量自动清零,这一点在单片机编程中有时非常重要。

在实际产品中当单片机出现异常复位程序重新开始运行时,我们往往希望原先的控制过程得以延续,因此一些关键变量的内容要在复位后保留而不能不分青红皂白地一概清零。

选择最小初始化代码可以实现这一特殊要求,但还有更合理更高级的方法,将在后面介绍prm 文件时详细说明。

∙ 编译内存模式选择。

“Tiny ”模式是指所有程序不超过64KB ,RAM 变量不超过内存地址最前面的256字节(有时也被称作第0页);“Small ”模式程序空间一样不超过64KB ,但RAM 不限于第0页,可以覆盖整个64K 地址空间。

如果你选择的芯片有超过第0页空间的RAM 并想在设计中充分利用,就应该选择该缺省的“Small ”模式。

∙ 浮点运算库选择。

当你的程序设计决定用浮点运算时就应该选择加入浮点运算库。

浮点运算库有两种:一是标准浮点float 和双精度浮点double 都用32位精度表示,换句话说float 和double 都看成是float 。

这样做的目的是减少代码量,提高运算速度;另一种是double 用64位精度表示,毋庸置疑其运算精度将增加,但代码量也将增加,运算时间也会更长。

用户可以按实际计算需求酌情选取。

如果设计中无需浮点运算,就选择“None ”。

全部选择完成并确认后,按“Finish ”,恭喜你:你的项目已经成功建立,可以开始编写你自己的代码,调试你的目标系统了。

完成后的项目范例如图1-8,其中: ∙ Sources 栏目下包含所有你的原程序文件,可以是C ,也可以是asm ,或C++。

你可以在此栏下点击鼠标右键在弹出菜单中选择“Add Files ”添加其他源程序文件;∙ Includes 栏目下包含本项目所有被引用的头文件。

你可以自己编写项目相关的头文件并添加到本栏目下;∙ Libs 栏目所包含的是本项目开发用到的代码库,可以是目标代码型式或C 源程序型式; ∙ Project Setting 下放的全是项目的配置文件。

Startup Code 下是刚才建项目时自动生成的启动文件,你可以打开观察具体的程序代码,也可以在必要时自己添加或修改这些启动代码;Link Files 下的三个文件分别是:用于编程器下载的代码文件格式配置(bbl 文件)、机器代码连接定位用的内存说明和配置文件图1-8(prm文件)、生成的目标代码在内存中的映射文件(map文件)。

其中prm 文件最为关键,将在稍后重点专门介绍。

2.CodeWarrior中项目的基本管理和设定现在项目已经成功建立,应该可以开始编写自己的代码了。

但在写代码之前,先了解一下CW中最基本的项目管理和设定的方法还是很有必要。

在图1-8中项目窗口的右上角有一些小图标,这些图标代表了项目开发管理的最基本功能:∙该图标可以即时改变目标单片机型号和开发调试场景。

按下这一图标,将弹出图1-4所示的对话框,可以按照前面针对新项目建立模板的介绍,改变目标单片机的型号,或设定不同的当前目标开发调试场景。

对于调试场景的改变,也可以直接点击当前场景右边的下拉菜单按纽,直接用鼠标点击选择所需的新场景,如图2-1;∙该图标完成项目配置选项设定。

点击该图标会弹出一个对话框,里面所含的内容非常繁杂,这里只解释几个日常使用时最常用的选项配置:1.最终目标代码类型设定(Target Setting)。

在这里你可以选择最终编译连接生成的代码直接用于单片机程序运行(Link for HC08),或将各个源代码文件编译连接生成一个库文件(Libmaker for HC08)。

这些选择可以通过图2-2所示的下拉菜单选择;图2-1图2-2图2-32. C 编译选项设定(Complier for HC08),对话框内容如图2-3。

在这里你可以完成针对C 编译器的所有配置设定。

几个选项按纽解释如下:选择配置编译时产生的各种信息,其中包括普通一般信息(Information )、告警信息(Warning )、错误信息(Error )和致命信息(Fatal )。

出现一般或告警信息时编译能顺利完成,所以你可以有选择地将某些你不希望太关注的信息屏蔽掉(Disable );但如果有任何错误或致命信息出现,当前源程序的编译将立即终止,你必须按给出的信息提示解决这些错误,然后才能继续编译。

完成编译过程中代码生成的各类选项设定,所含内容也很多,最需要关注的是优化栏“Optimization ”。

你可以按实际需要打开或关闭某些特定的优化选项,但我们一般通过下面介绍的“Smart Sliders ”做综合的优化设定。

显示编译器当前设定的各类变量的长度和符号特性(针对字符和枚举型变量),无特殊原因一般都不用对这些变量长度做任何修改。

相关文档
最新文档