第03章第一个样例程序及CodeWarrior工程组织课件.ppt

上传人(卖家):晟晟文业 文档编号:5066485 上传时间:2023-02-07 格式:PPT 页数:31 大小:3.99MB
下载 相关 举报
第03章第一个样例程序及CodeWarrior工程组织课件.ppt_第1页
第1页 / 共31页
第03章第一个样例程序及CodeWarrior工程组织课件.ppt_第2页
第2页 / 共31页
第03章第一个样例程序及CodeWarrior工程组织课件.ppt_第3页
第3页 / 共31页
第03章第一个样例程序及CodeWarrior工程组织课件.ppt_第4页
第4页 / 共31页
第03章第一个样例程序及CodeWarrior工程组织课件.ppt_第5页
第5页 / 共31页
点击查看更多>>
资源描述

1、第第3 3章章 第一个样例程序及第一个样例程序及 CodeWarriorCodeWarrior工程组织工程组织主要内容主要内容v3.1 3.1 通用通用I/OI/O接口基本概念及连接方法接口基本概念及连接方法v3.2 AW603.2 AW60的的GPIOGPIOv3.3 3.3 开发套件开发套件CodeWarriorCodeWarrior开发环境与开发环境与 S08/S12/ColdFireS08/S12/ColdFire写入器写入器v3.4 CW3.4 CW环境环境C C语言工程文件的组织语言工程文件的组织v3.5 3.5 第一个第一个C C语言工程:控制小灯闪烁语言工程:控制小灯闪烁v3.

2、6 3.6 第一个汇编语言工程:控制小灯闪烁第一个汇编语言工程:控制小灯闪烁3.1 通用通用I/OI/O接口基本概念及连接方法接口基本概念及连接方法1.I/O1.I/O接口的概念接口的概念 I/OI/O接口,即输入输出接口,是微控制器同外界进行交互的接口,即输入输出接口,是微控制器同外界进行交互的重要通道。这里的接口英文是重要通道。这里的接口英文是portport,也可以翻译为,也可以翻译为“端口端口”,另一个英文单词是另一个英文单词是interfaceinterface,也翻译为接口。在嵌入式系统中,也翻译为接口。在嵌入式系统中,接口千变万化,种类繁多,有显而易见的人机交互接口,如操接口千变

3、万化,种类繁多,有显而易见的人机交互接口,如操纵杆、键盘、显示器;也有无人介入的接口,如网络接口、机纵杆、键盘、显示器;也有无人介入的接口,如网络接口、机器设备接口器设备接口2 2通用通用I/OI/O 所谓通用所谓通用I/OI/O,也记为,也记为GPIOGPIO(General Purpose I/OGeneral Purpose I/O),即基),即基本的输入本的输入/输出,有时也称并行输出,有时也称并行I/OI/O,或普通,或普通I/OI/O,它是,它是I/OI/O的最的最基本形式基本形式通用通用I/OI/O接口一般应具备接口一般应具备 放置输入或输出控制字的寄存器放置输入或输出控制字的寄

4、存器放置工作方式控制字的寄存器放置工作方式控制字的寄存器放置要交换数据的寄存器放置要交换数据的寄存器放置反映工作状态的寄存器放置反映工作状态的寄存器3 3上拉下拉电阻与输入引脚的基本接法上拉下拉电阻与输入引脚的基本接法 输入引脚有三种不同的连接方式:带上拉电阻的连接、输入引脚有三种不同的连接方式:带上拉电阻的连接、带下拉电阻的连接和带下拉电阻的连接和“悬空悬空”连接。连接。若若MCUMCU的某个引脚通过一个电阻接到电源(的某个引脚通过一个电阻接到电源(VccVcc)上,这)上,这个电阻被称为个电阻被称为“上拉电阻上拉电阻”。与之相对应,若。与之相对应,若MCUMCU的某个引的某个引脚通过一个电

5、阻接到地(脚通过一个电阻接到地(GNDGND)上,则相应的电阻被称为)上,则相应的电阻被称为“下拉电阻下拉电阻”。悬空的芯片引脚被上拉电阻或下拉电阻初。悬空的芯片引脚被上拉电阻或下拉电阻初始化为高电平或低电平。始化为高电平或低电平。I/OI/O输入电路输入电路4.4.输出引脚的基本接法输出引脚的基本接法 作为通用输出引脚,作为通用输出引脚,MCUMCU内部程序内部程序向该引脚输出高电平或低电平来驱动向该引脚输出高电平或低电平来驱动器件工作,即开关量输出。如图所示。器件工作,即开关量输出。如图所示。其中其中O1O1引脚是发光二极管引脚是发光二极管LEDLED的驱动引的驱动引脚,当脚,当O1O1引

6、脚输出高电平时,引脚输出高电平时,LEDLED不亮;不亮;当当O1O1引脚输出低电平时,引脚输出低电平时,LEDLED点亮。点亮。O2O2引脚接蜂鸣器驱动电路,当引脚接蜂鸣器驱动电路,当O2O2脚输出高脚输出高电平时,蜂鸣器响;电平时,蜂鸣器响;O2O2脚输出低电平时,脚输出低电平时,蜂鸣器不响蜂鸣器不响 I/O I/O口输出电路口输出电路3.2 AW603.2 AW60的的GPIOGPIO3.2.1 AW60 GPIO3.2.1 AW60 GPIO编程的基本原理与编程基本方法编程的基本原理与编程基本方法 AW60AW60的大部分引脚具有多的大部分引脚具有多重功能,可以通过编程设定使重功能,可

7、以通过编程设定使用其中一种功能。用其中一种功能。AW60AW60有有7 7个个GPIOGPIO口,每个口,每个GPIOGPIO口的名称由口的名称由一位英文字母组成,分别是一位英文字母组成,分别是A A、B B、C C、D D、E E、F F、G G。右图给出。右图给出了了AW60AW60的的7 7个个GPIOGPIO口的引脚分布口的引脚分布情况。情况。GPIOGPIO模块框图模块框图GPIOGPIO的基本编程方法:的基本编程方法:通过通过“数据方向寄存器数据方向寄存器”设置相应引脚为输入或输出设置相应引脚为输入或输出 若是输出引脚,则设置若是输出引脚,则设置“端口引脚数据寄存器端口引脚数据寄存

8、器”引脚输出引脚输出高电平或低电平高电平或低电平 若是输入引脚,则通过若是输入引脚,则通过“端口引脚数据寄存器端口引脚数据寄存器”获得引脚获得引脚的状态的状态3.2.2 GPIO GPIO模块寄存器模块寄存器 GPIO GPIO模块的每个口最多对应模块的每个口最多对应8 8个个GPIOGPIO引脚,但各个引脚,但各个GPIOGPIO口口的编程寄存器均为的编程寄存器均为8 8位,没有对应引脚的位无效。位,没有对应引脚的位无效。GPIO GPIO模块寄模块寄存器的命名有一定的规范,所有寄存器都在存器的命名有一定的规范,所有寄存器都在AW60AW60芯片寄存器及芯片寄存器及相关位定义头文件相关位定义

9、头文件AW60.hAW60.h中定义。其中中定义。其中“端口数据寄存器端口数据寄存器”是是PT+PT+该端口的名称该端口的名称+D+D。“端口输出方向寄存器端口输出方向寄存器”是是PT+PT+该端口的该端口的名称名称+DD+DD。所有寄存器的位编号从。所有寄存器的位编号从0 0开始,且最低位编号为开始,且最低位编号为0 0。例如,一个例如,一个8 8位寄存器的最低位编号为位寄存器的最低位编号为0 0,最高位编号为,最高位编号为7 7。1 1操作操作GPIOGPIO的基本寄存器的基本寄存器 端口数据方向寄存器端口数据方向寄存器DDRDDR(Port Data Direction Register

10、Port Data Direction Register)这些位分别控制着端口引脚是输入还是输出,若为这些位分别控制着端口引脚是输入还是输出,若为0 0,则引,则引 脚为输入,若为脚为输入,若为1 1,则引脚为输出。复位时为,则引脚为输出。复位时为0 x000 x00 端口数据寄存器端口数据寄存器PORTPORT(Port Data RegisterPort Data Register)若引脚被配置为输出,若引脚被配置为输出,PORTn PORTn 寄存器中每一位数据决定了对寄存器中每一位数据决定了对 应引脚的输出电平。复位时应引脚的输出电平。复位时PORTn PORTn 寄存器的所有被使用的

11、位寄存器的所有被使用的位为为1 12 2GPIOGPIO的基本编程方法举例的基本编程方法举例 以以D D口第口第3 3脚的脚的GPIOGPIO功能为例功能为例u 为了程序通用性,对要设置的引脚进行宏定义为了程序通用性,对要设置的引脚进行宏定义l#define RUN_PORT PORT_D /#define RUN_PORT PORT_D /灯使用的端口灯使用的端口l#define#define RUNpinRUNpin 3 /3 /用用RUNpinRUNpin代替代替“3”3”u 当需要对寄存器的具体位进行设置,通常会使用位操作当需要对寄存器的具体位进行设置,通常会使用位操作l RUN_PO

12、RT&=0b11110111 /RUN_PORT&=0b11110111 /表示将表示将RUN_PORTRUN_PORT的第的第3 3位设置为位设置为0 0l RUN_PORT|=0b00001000 /RUN_PORT|=0b00001000 /表示将表示将RUN_PORTRUN_PORT的第的第3 3位设置为位设置为1 1u 为了程序通用性,以上两行代码需要写成:为了程序通用性,以上两行代码需要写成:l RUN_PORT&=RUN_PORT&=(0 x01(0 x01 RUNpinRUNpin)/)/将将RUN_PORTRUN_PORT的第的第3 3位设置为位设置为0 0l RUN_POR

13、T|=0 x01 RUN_PORT|=0 x01New ProjectFile-New Project,弹出新建对话框,选择,弹出新建对话框,选择“S08 S08A Family AW60S08 S08A Family AW60”,点击,点击“下一步下一步”,选中,选中“C C”的选项,如果程序中有汇编代码则应该选中的选项,如果程序中有汇编代码则应该选中“RelocatableRelocatable assembly assembly”,在右侧,在右侧Project nameProject name中中输入工程名,在输入工程名,在LocationLocation中选择工程所在目录。单击中选择工

14、程所在目录。单击确定即可确定即可 第二种方法是使用已存的工程来建立另一个工程。第二种方法是使用已存的工程来建立另一个工程。当在已有工程的基础上,做另一个项目时,比如在当在已有工程的基础上,做另一个项目时,比如在LightLight工程的基础上编写工程的基础上编写LCDLCD程序,需要进行如下设置程序,需要进行如下设置l更改工程文件夹名为更改工程文件夹名为LCDLCDl更改更改Light.mcpLight.mcp为为LCD.mcpLCD.mcpl文件夹文件夹Light_DataLight_Data更改为更改为LCD_DataLCD_Datal将将binbin文件夹的所有内容删掉文件夹的所有内容删

15、掉3.5 第一个第一个C C语言工程:控制小灯闪烁语言工程:控制小灯闪烁3.5.1 GPIO3.5.1 GPIO构件构件 GPIOGPIO构件的头文件构件的头文件GPIO.hGPIO.h GPIOGPIO构件的程序文件构件的程序文件GPIO.cGPIO.c3.5.2 Light3.5.2 Light构件构件 LightLight构件的头文件构件的头文件Light.hLight.h LightLight构件的程序文件构件的程序文件Light.cLight.c3.5.3 Light3.5.3 Light测试工程主程序测试工程主程序3.5.4 3.5.4 理解第一个理解第一个C C工程的执行过程工程

16、的执行过程 系统上电系统上电 执行执行Start08.cStart08.c文件中的文件中的_Startup_Startup函数函数 中断程序的执行中断程序的执行3.6 第一个汇编语言工程:控制小灯闪烁第一个汇编语言工程:控制小灯闪烁 基于汇编语言编程给人的第一感觉是难,相对于其它的基于汇编语言编程给人的第一感觉是难,相对于其它的高级语言编程,汇编语言在编程的直观性、编程效率等方面高级语言编程,汇编语言在编程的直观性、编程效率等方面有所欠缺,但针对资源相对较少的单片机以及时序要求严格有所欠缺,但针对资源相对较少的单片机以及时序要求严格的硬件接口编程,掌握汇编语言还是必不可少的。使用汇编的硬件接口

17、编程,掌握汇编语言还是必不可少的。使用汇编语言编程是基本功,学习和掌握汇编语言编程可以增加编程语言编程是基本功,学习和掌握汇编语言编程可以增加编程者的者的“内力内力”,为使用高级语言编程打下坚实的基础。,为使用高级语言编程打下坚实的基础。3.6.1 3.6.1 汇编工程文件的组织汇编工程文件的组织 小灯闪烁汇编工程相关源文件的树型结构小灯闪烁汇编工程相关源文件的树型结构u主函数文件主函数文件(main.asm)(main.asm)主程序文件主程序文件main.asmmain.asm,包含有:,包含有:工程描述:工程名、硬件连接索引、程序描述、目的、说工程描述:工程名、硬件连接索引、程序描述、目

18、的、说明、注意、日期等明、注意、日期等总头文件总头文件主程序:主程序一般包括初始化与主循环两大部分。初始主程序:主程序一般包括初始化与主循环两大部分。初始化包括堆栈初始化、系统初始化、内存变量初始化、化包括堆栈初始化、系统初始化、内存变量初始化、I/OI/O端端口初始化、中断初始化等口初始化、中断初始化等内部直接调用子程序:若有不单独存盘的子程序,建议放内部直接调用子程序:若有不单独存盘的子程序,建议放在此处在此处外部子程序:若程序使用独立存盘的子程序,可在此处使外部子程序:若程序使用独立存盘的子程序,可在此处使用用“INCLUDEINCLUDE子程序文件名子程序文件名”将其包含。注意,独立存

19、盘的将其包含。注意,独立存盘的子程序必须与主程序在同一个目录中子程序必须与主程序在同一个目录中u中断处理程序文件中断处理程序文件(isr.asm(isr.asm)u框架程序文件框架程序文件u汇编软件构件文件汇编软件构件文件u通用程序文件通用程序文件3.6.2 3.6.2 LightLight构件汇编程序构件汇编程序包含:包含:uLightLight构件的汇编头文件构件的汇编头文件Light.incLight.incuLightLight构件的汇编程序文件构件的汇编程序文件Light.asmLight.asm3.6.3 Light3.6.3 Light测试工程主程序测试工程主程序 首先调用首先调

20、用LightInitLightInit函数,初始化所需的每一盏指示灯。注函数,初始化所需的每一盏指示灯。注意初始化时,要让每一盏灯初始状态为意初始化时,要让每一盏灯初始状态为“暗暗”。随后,通。随后,通过过Light_L_ALight_L_A函数控制指示灯亮、暗。在指示灯亮暗之间增函数控制指示灯亮、暗。在指示灯亮暗之间增加适当的延时后,就能够在程序运行时,较明显的看到指加适当的延时后,就能够在程序运行时,较明显的看到指示灯闪烁的现象示灯闪烁的现象3.6.4 3.6.4 理解第一个汇编工程的执行过程理解第一个汇编工程的执行过程 系统上电系统上电 系统在加电过后,芯片内的硬件机制会产生加电复位中断

21、,系统在加电过后,芯片内的硬件机制会产生加电复位中断,这时系统到向量表中查找复位向量地址,并转向这个地址继续这时系统到向量表中查找复位向量地址,并转向这个地址继续执行。在本书所有工程样例,到执行。在本书所有工程样例,到*.prmprm文件中都可以找到异常文件中都可以找到异常向量表,在该表的第一行是复位中断向量地址:向量表,在该表的第一行是复位中断向量地址:VECTOR 0 _Startup /VECTOR 0 _Startup /复位向量复位向量 堆栈指针初始化及芯片初始化堆栈指针初始化及芯片初始化 执行执行main.asmmain.asm文件中的文件中的_Startup_Startup函数,

22、对堆栈指针进行初始函数,对堆栈指针进行初始化,以及芯片及所用到的模块进行初始化化,以及芯片及所用到的模块进行初始化 中断程序的执行中断程序的执行 当某个中断发生后,当某个中断发生后,MCUMCU将转到中断向量表文件将转到中断向量表文件isr.asmisr.asm所指所指定的中断入口地址处开始执行中断服务程序(定的中断入口地址处开始执行中断服务程序(ISRISR,Interrupt Interrupt Service RoutineService Routine)。在这个过程中,系统必然会保存)。在这个过程中,系统必然会保存“上下上下文文”(CPUCPU寄存器的内容),在中断处理结束前,必须恢复

23、该寄存器的内容),在中断处理结束前,必须恢复该“上下文上下文”,以便继续执行原来的程序。中断的执行实际上是,以便继续执行原来的程序。中断的执行实际上是在抢夺主程序的执行时间在抢夺主程序的执行时间第第3章章 练习题练习题1 1什么叫通用什么叫通用I/OI/O口?口?2 2什么叫上拉电阻与下拉电阻?它们的作用是什么?如何选择上什么叫上拉电阻与下拉电阻?它们的作用是什么?如何选择上拉电阻与下拉电阻的拉电阻与下拉电阻的 阻值?哪些情况下使用上拉电阻阻值?哪些情况下使用上拉电阻?哪些情况下使用下拉电阻哪些情况下使用下拉电阻?3 3什么是什么是OCOC输出?为什么输出?为什么OCOC输出的输出的I/OI/

24、O口一定要上拉?口一定要上拉?4 4为什么在无操作系统的嵌入式系统软件主程序中使用无限循环?为什么在无操作系统的嵌入式系统软件主程序中使用无限循环?5 5找出样例子工程的机器码文件,解释找出样例子工程的机器码文件,解释S19S19文件的含义。文件的含义。6 6举例给出举例给出CWCW环境环境C C语言工程文件的组织结构图。语言工程文件的组织结构图。7 7分析分析Project.prmProject.prm文件的功能。文件的功能。8 8如何查看一个文件如何查看一个文件.LST.LST文件,举例分析一个文件,举例分析一个LSTLST文件。文件。9 9如何能知道一段或一句如何能知道一段或一句C C语言源程序的汇编代码与机器码,举语言源程序的汇编代码与机器码,举例之。例之。1010给出一个给出一个C C语言控制三盏小灯的程序,并调试,功能自定。语言控制三盏小灯的程序,并调试,功能自定。1 11 1给出一个给出一个S08S08汇编语言控制三盏小灯的程序,并调试,功能自汇编语言控制三盏小灯的程序,并调试,功能自定。定。1212分析一个分析一个mapmap文件,简要说明文件,简要说明mapmap文件给了我们什么信息?文件给了我们什么信息?

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(第03章第一个样例程序及CodeWarrior工程组织课件.ppt)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|