第六章-通用IO与第一个汇编程序课件.ppt

上传人(卖家):晟晟文业 文档编号:4383601 上传时间:2022-12-04 格式:PPT 页数:32 大小:171.50KB
下载 相关 举报
第六章-通用IO与第一个汇编程序课件.ppt_第1页
第1页 / 共32页
第六章-通用IO与第一个汇编程序课件.ppt_第2页
第2页 / 共32页
第六章-通用IO与第一个汇编程序课件.ppt_第3页
第3页 / 共32页
第六章-通用IO与第一个汇编程序课件.ppt_第4页
第4页 / 共32页
第六章-通用IO与第一个汇编程序课件.ppt_第5页
第5页 / 共32页
点击查看更多>>
资源描述

1、第六章第六章 通用通用I/O与第一个汇编程序与第一个汇编程序 主要内容v MC68HC908GP32的普通I/O v 汇编程序编程框架 v 08汇编语言编译过程所涉及的文件 v SD-HC08嵌入式MCU在线编程集成开发系统 6.1 MC68HC908GP32的普通I/O6.1 MC68HC908GP32的普通的普通I/O 所谓普通所谓普通I/O,即基本的输入,即基本的输入/输出,有时也称为并行输出,有时也称为并行I/O。作为普。作为普通输入引脚,通输入引脚,MCU内部程序可以读取该引脚,知道该引脚是内部程序可以读取该引脚,知道该引脚是“1”(高(高电平)或电平)或“0”(低电平),即开关量输

2、入。作为普通输出引脚,(低电平),即开关量输入。作为普通输出引脚,MCU内部程序向该引脚输出内部程序向该引脚输出“1”(高电平)或(高电平)或“0”(低电平),即开关量(低电平),即开关量输出。输出。MC68HC908GP32单片机有单片机有5个普通个普通I/O口,分别是口,分别是A口、口、B口、口、C口、口、D口、口、E口。它们中的大部分具有双功能,本节仅讨论它们作为口。它们中的大部分具有双功能,本节仅讨论它们作为普通普通I/O功能时的编程方法。功能时的编程方法。6.1 MC68HC908GP32的普通I/O A口的口的8根引脚与键盘中断模块的引脚复用,这里只讨论根引脚与键盘中断模块的引脚复

3、用,这里只讨论A口作为口作为普通普通I/O口的功能。口的功能。(1)A口的寄存器口的寄存器 A口作为普通口作为普通I/O口时,具有三个寄存器,它们是:口时,具有三个寄存器,它们是:A口数据方向口数据方向寄存器(寄存器(DDRA)、)、A口数据寄存器(口数据寄存器(PTA)、)、A口上拉电阻允许寄存口上拉电阻允许寄存器(器(PTAPUE)。)。A口数据方向寄存器(口数据方向寄存器(Data Direction Register A,DDRA)A口数据方向寄存器(口数据方向寄存器(DDRA)的地址是:)的地址是:$0004,DDRA的第的第70位分别记为位分别记为DDRA7DDRA0,这些位分别控

4、制着,这些位分别控制着A口引脚口引脚PTA7 PTA0是输入还是输出,若是输入还是输出,若DDRAx=0,则引脚,则引脚PTAx为输入,为输入,若若DDRAx=1,则引脚,则引脚PTAx为输出。复位时为输出。复位时DDRA为为$00。记忆要点:数据方向寄存器的一位:记忆要点:数据方向寄存器的一位:0定义输入,定义输入,1定义输出定义输出 6.1.1 A口口6.1 MC68HC908GP32的普通I/OA口数据寄存器(口数据寄存器(PTA)的地址是:)的地址是:$0000,PTA的第的第70位分别位分别记为记为PTA7PTA0。若。若A口的某一引脚口的某一引脚PTAx被定义成输出,程序使被定义成

5、输出,程序使A口口数据寄存器数据寄存器PTA的相应位的相应位PTAx0,则引脚,则引脚PTAx输出输出“低电平低电平”;程;程序使序使PTAx1,则引脚,则引脚PTAx输出输出“高电平高电平”。若。若A口的某一引脚口的某一引脚PTAx被定义成输入,程序通过读取被定义成输入,程序通过读取A口数据寄存器口数据寄存器PTA,获得输入情况,获得输入情况,0表示输入为表示输入为“低电平低电平”,1表示输入为表示输入为“高电平高电平”。记忆要点:记忆要点:输出时:数据寄存器的一位:输出时:数据寄存器的一位:0输出低电平输出低电平 1输出高电平输出高电平输入时:数据寄存器的一位:输入时:数据寄存器的一位:0

6、代表外部输入低电平代表外部输入低电平 1代表外部输入高电平代表外部输入高电平 A A口数据寄存器(口数据寄存器(Port A Data RegisterPort A Data Register,PTAPTA)6.1 MC68HC908GP32的普通I/OA口上拉电阻允许寄存器(口上拉电阻允许寄存器(PTAPUE)的地址是:)的地址是:$000D。PTAPUE的第的第70位分别记为位分别记为PTAPUE7PTAPUE0。若。若A口的某一口的某一引脚引脚PTAx 被定义成输入,则可通过置被定义成输入,则可通过置PTAPUE的相应位的相应位PTAPUEx为为1来定义其内接上拉电阻,即引脚来定义其内接

7、上拉电阻,即引脚PTAx已经通过内部电阻与电源已经通过内部电阻与电源VDD相接,此时若引脚相接,此时若引脚PTAx若通过开关接地,则开关闭合时为低电平。那若通过开关接地,则开关闭合时为低电平。那么寄存器么寄存器PTA的相应位的相应位PTAx=0,开关断开时为高电平,寄存器,开关断开时为高电平,寄存器PTA的的相应位相应位PTAx=1,通过读取寄存器,通过读取寄存器PTA获得开关状态。获得开关状态。记忆要点:记忆要点:在引脚被定义成输入时,可通过上拉电阻允许寄存器定义有无内在引脚被定义成输入时,可通过上拉电阻允许寄存器定义有无内部上拉电阻:部上拉电阻:0没有内部上拉电阻没有内部上拉电阻1有内部上

8、拉电阻有内部上拉电阻 A A口上拉电阻允许寄存器(口上拉电阻允许寄存器(Port A Input Pullup Enable Port A Input Pullup Enable RegisterRegister,PTAPUEPTAPUE)6.1 MC68HC908GP32的普通I/O 下图给出了下图给出了A口作为普通口作为普通I/O使用时,一个外部引脚的相应内部逻使用时,一个外部引脚的相应内部逻辑电路框图。当辑电路框图。当DDRAx=1时,读地址时,读地址$0000就是读就是读PTAx。当。当DDRAx=0时,读地址时,读地址$0000就是读引脚就是读引脚PTAx 电平。电平。读读DDRA(

9、$0004)写写DDRA($0004)复位复位 写写PTA($0000)引脚引脚 PTAx VDD PTAPUEx 内部上拉电阻内部上拉电阻 读读PTA($0000)A A口的一个引脚内部逻辑电路框图口的一个引脚内部逻辑电路框图A口数据方向寄存器口数据方向寄存器DDRAx位位A口数据寄存器口数据寄存器PTAx位位内部数据总线内部数据总线(2)A口逻辑电路框图口逻辑电路框图6.1 MC68HC908GP32的普通I/O B口的口的8根引脚与根引脚与8路路A/D转换模块的引脚复用,这里只讨论转换模块的引脚复用,这里只讨论B口作口作为普通为普通I/O口的功能。口的功能。(1)B口的寄存器口的寄存器

10、B口作为普通口作为普通I/O口时,具有二个寄存器,它们是:口时,具有二个寄存器,它们是:B口数据方向口数据方向寄存器(寄存器(DDRB)和)和B口数据寄存器(口数据寄存器(PTB)。)。B口数据方向寄存器(口数据方向寄存器(Data Direction Register B,DDRB)B口数据方向寄存器(口数据方向寄存器(DDRB)的地址是:)的地址是:$0005,DDRB的第的第70位分别记为位分别记为DDRB7DDRB0,这些位分别控制着,这些位分别控制着B口引脚口引脚PTB7PTB0是输入还是输出,若是输入还是输出,若DDRBx=0,则引脚,则引脚PTBx为输入,为输入,若若DDRBx=

11、1,则引脚,则引脚PTBx为输出。复位时为输出。复位时DDRB为为$00。记忆要点:数据方向寄存器的一位:记忆要点:数据方向寄存器的一位:0定义输入,定义输入,1定义输出定义输出 6.1.2 B口口 6.1 MC68HC908GP32的普通I/OB口数据寄存器(口数据寄存器(PTB)的地址是:)的地址是:$0001,PTB的第的第70位分别位分别记为记为PTB7PTB0。若。若B口的某一引脚口的某一引脚PTBx被定义成输出,程序使被定义成输出,程序使B口口数据寄存器数据寄存器PTB的相应位的相应位PTBx0,则引脚,则引脚PTBx输出输出“低电平低电平”,程,程序使序使PTBx1,则引脚,则引

12、脚PTBx输出输出“高电平高电平”。若。若B口的某一引脚口的某一引脚PTBx被定义成输入,程序通过读取被定义成输入,程序通过读取B口数据寄存器口数据寄存器PTB,获得输入情况,获得输入情况,0表表示输入为示输入为“低电平低电平”,1表示输入为表示输入为“高电平高电平”。注意:注意:B口被定义成输入时,没有内部上拉电阻口被定义成输入时,没有内部上拉电阻 B B口数据寄存器(口数据寄存器(Port B Data RegisterPort B Data Register,PTBPTB)6.1 MC68HC908GP32的普通I/O下图给出了下图给出了B口作为普通口作为普通I/O使用时,一个外部引脚的

13、相应内部逻使用时,一个外部引脚的相应内部逻辑电路框图。辑电路框图。读读DDRB($0005)写写DDRB($0005)复位复位 写写PTB($0001)引脚引脚 PTBx 读读PTB($0001)B B口的一个引脚内部逻辑电路框图口的一个引脚内部逻辑电路框图B口数据方向寄存器口数据方向寄存器DDRBx位位B口数据寄存器口数据寄存器PTBx位位 内部数据总线内部数据总线(2)B口逻辑电路框图口逻辑电路框图6.1 MC68HC908GP32的普通I/O6.1.3 C口、口、D口和口和E口口 (1)C口口 对对44引脚的引脚的MC68HC908GP32芯片的芯片的C口只有口只有7根引脚:根引脚:PT

14、C6 pinPTC0 pin,而,而40及及42引脚的引脚的MC68HC908GP32芯片的芯片的C口只有口只有5根引脚:根引脚:PTC4 pinPTC0 pin。下面以。下面以44引脚的引脚的MC68HC908GP32芯片进行说明。芯片进行说明。C口只有普通口只有普通I/O功能,它的内部逻辑结构框图与功能,它的内部逻辑结构框图与A口逻口逻辑结构框图相同,只是其中的有关字母辑结构框图相同,只是其中的有关字母“A”改为字母改为字母“C”,地址作相,地址作相应改变即可。应改变即可。它也具有三个寄存器,它们是:它也具有三个寄存器,它们是:C口数据方向寄存器(口数据方向寄存器(DDRC)、)、C口口数

15、据寄存器(数据寄存器(PTC)、)、C口上拉电阻允许寄存器(口上拉电阻允许寄存器(PTCPUE)。)。6.1 MC68HC908GP32的普通I/O C口数据方向寄存器(口数据方向寄存器(DDRC)的地址是:)的地址是:$0006,由于对应引脚只,由于对应引脚只有有7根,最高位没有意义。根,最高位没有意义。DDRC的第的第60位分别记为位分别记为DDRC6DDRC0,这些位分别控制着这些位分别控制着C口引脚口引脚PTC6PTC0是输入还是输出,含义参考是输入还是输出,含义参考A口口说明。复位时说明。复位时DDRC为为$00。C C口数据寄存器(口数据寄存器(Port C Data Regist

16、erPort C Data Register,PTCPTC)C口数据寄存器(口数据寄存器(PTC)的地址是:)的地址是:$0002,PTC的第的第60位分别记位分别记为为PTC6PTC0。含义请类比。含义请类比A口、口、B口的相应说明。口的相应说明。C C口上拉电阻允许寄存器(口上拉电阻允许寄存器(Port C Input Pullup Enable Port C Input Pullup Enable RegisterRegister,PTCPUEPTCPUE)C口上拉电阻允许寄存器(口上拉电阻允许寄存器(PTCPUE)的地址是:)的地址是:$000E。PTCPUE的第的第60位分别记为位分

17、别记为PTCPUE6PTAPUE0。含义请类比。含义请类比A口的相应说明。口的相应说明。C C口数据方向寄存器(口数据方向寄存器(Data Direction Register C,DDRCData Direction Register C,DDRC)6.1 MC68HC908GP32的普通I/O对于对于40引脚的引脚的MC68HC908GP32芯片的芯片的D口只有口只有6根引脚:根引脚:PTD5PTD0。而。而42及及44引脚的引脚的MC68HC908GP32芯片的芯片的D口有口有8根引根引脚:脚:PTD7PTD0。下面以。下面以42及及44引脚的引脚的MC68HC908GP32芯片进行芯片

18、进行说明。说明。D口是口是I/O功能与其它特殊功能(功能与其它特殊功能(SPI,TIM)复用口,这里只讨论)复用口,这里只讨论它作为普通它作为普通I/O口的功能。它的内部逻辑结构框图与口的功能。它的内部逻辑结构框图与A口逻辑结构框图相口逻辑结构框图相同,只是其中的有关字母同,只是其中的有关字母“A”改为字母改为字母“D”,地址作相应改变即可。,地址作相应改变即可。它也具有三个寄存器,它们是:它也具有三个寄存器,它们是:D口数据方向寄存器(口数据方向寄存器(DDRD)、)、D口数据寄存器(口数据寄存器(PTD)、)、D口上拉电阻允许寄存器(口上拉电阻允许寄存器(PTDPUE)。)。(2)D口口6

19、.1 MC68HC908GP32的普通I/O D口数据方向寄存器(口数据方向寄存器(DDRD)的地址是:)的地址是:$0007。DDRD的第的第70位分别记为位分别记为DDRD7DDRD0,这些位分别控制着,这些位分别控制着D口引脚口引脚PTD7PTD0是输入还是输出,含义参考是输入还是输出,含义参考A口说明。复位时口说明。复位时DDRD为为$00。D D口数据寄存器(口数据寄存器(Port D Data RegisterPort D Data Register,PTDPTD)D口数据寄存器(口数据寄存器(PTD)的地址是:)的地址是:$0003,PTD的第的第70位分别位分别记为记为PTD7

20、PTD0。含义请类比。含义请类比A口、口、B口的相应说明。口的相应说明。D D口上拉电阻允许寄存器(口上拉电阻允许寄存器(Port D Input Pullup Enable Port D Input Pullup Enable RegisterRegister,PTDPUEPTDPUE)D口上拉电阻允许寄存器(口上拉电阻允许寄存器(PTDPUE)的地址是:)的地址是:$000F。PTDPUE的第的第70位分别记为位分别记为PTDPUE7PTDPUE0。含义请类比。含义请类比A口的相应说明。口的相应说明。D D口数据方向寄存器(口数据方向寄存器(Data Direction Register

21、D,DDRDData Direction Register D,DDRD)6.1 MC68HC908GP32的普通I/OE口只有口只有PTE1、PTE0引脚。它是引脚。它是I/O功能与串行通讯接口(功能与串行通讯接口(SCI)复用口,这里只讨论它的普通复用口,这里只讨论它的普通I/O口功能。其内部逻辑结构框图与口功能。其内部逻辑结构框图与B口相口相同,只需将其中的有关字母同,只需将其中的有关字母“B”改为字母改为字母“E”,地址作相应改变即可。,地址作相应改变即可。它有两个寄存器:它有两个寄存器:E E口数据方向寄存器(口数据方向寄存器(Data Direction Register EDat

22、a Direction Register E,DDREDDRE)E口数据方向寄存器(口数据方向寄存器(DDRE)的地址是:)的地址是:$000C。DDRE只有低两只有低两位有用。位有用。DDRE的第的第1、0位分别记为位分别记为DDRE1、DDRD0,这两位分别控,这两位分别控制着制着E口引脚口引脚PTE1、PTE0是输入还是输出,含义参考是输入还是输出,含义参考B口说明。复位时口说明。复位时DDRE为为$00。E E口数据寄存器(口数据寄存器(Port E Data RegisterPort E Data Register,PTEPTE)E口数据寄存器(口数据寄存器(PTE)的地址是:)的地

23、址是:$0008,PTE的第的第10位分别记位分别记为为PTE1PTE0。含义请类比。含义请类比B口的相应说明。口的相应说明。(3)E口口返回返回6.2 汇编程序编程框架 6.2.1 C口、口、D口和口和E口口 (1)程序描述)程序描述 给出程序名、硬件连接以及基本功能等描述,还可以给出编制给出程序名、硬件连接以及基本功能等描述,还可以给出编制者、编制时间等,若调试过程有新的体会,也可在此添加。者、编制时间等,若调试过程有新的体会,也可在此添加。(2)头文件与有关常量命名)头文件与有关常量命名 汇编语言也借用汇编语言也借用C语言中语言中“头文件头文件”的概念,将映像寄存器的地的概念,将映像寄存

24、器的地址定义在址定义在“头文件头文件”中,程序直接使用寄存器地址所对应的中,程序直接使用寄存器地址所对应的“名名称称”。例如,有了。例如,有了“头文件头文件”,对,对“D口数据寄存器口数据寄存器”读出操作,可读出操作,可用用“LDA PTD”取代取代“LDA$0003”,更容易理解。,更容易理解。6.2 汇编程序编程框架汇编程序编程框架 6.2 汇编程序编程框架 如果程序中使用到内存变量,需在此定义。实际上,这里是对内如果程序中使用到内存变量,需在此定义。实际上,这里是对内存变量的声明,通常称为存变量的声明,通常称为“开辟内存变量开辟内存变量”,内存变量的初始化在主,内存变量的初始化在主程序开

25、始部分完成。第一个内存变量需用程序开始部分完成。第一个内存变量需用“ORG”语句定位,随后,语句定位,随后,按地址从小到大顺序存放。每个内存变量都有固定的内存地址。借用按地址从小到大顺序存放。每个内存变量都有固定的内存地址。借用C语言术语,这里所开辟的所有内存变量都是语言术语,这里所开辟的所有内存变量都是“全局变量全局变量”。对应于。对应于C语言中的语言中的“局部变量局部变量”将在讲解子程序规范时说明。将在讲解子程序规范时说明。(4)主程序)主程序 主程序一般包括初始化与主循环两大部分。初始化包括堆栈初始化、主程序一般包括初始化与主循环两大部分。初始化包括堆栈初始化、系统初始化、内存变量初始化

26、、系统初始化、内存变量初始化、I/O端口初始化、中断初始化等。主循端口初始化、中断初始化等。主循环是程序的工作循环,根据实际需要安排程序段,但一般不宜过长,环是程序的工作循环,根据实际需要安排程序段,但一般不宜过长,建议不要超过建议不要超过200行,具体功能可通过调用子程序来实现,或由中断行,具体功能可通过调用子程序来实现,或由中断程序实现。不带操作系统的程序实现。不带操作系统的MCU程序总有一个主循环,表示程序周而程序总有一个主循环,表示程序周而复始地执行。复始地执行。(3)内存变量)内存变量6.2 汇编程序编程框架 若有不单独存盘的子程序,建议放在此处。这样在主程序总循环的若有不单独存盘的

27、子程序,建议放在此处。这样在主程序总循环的最后一个语句就可以看到这些子程序。建议不要超过最后一个语句就可以看到这些子程序。建议不要超过3个,每个子程序个,每个子程序不要超过不要超过200行。若有更多的子程序请单独存盘,单独测试。行。若有更多的子程序请单独存盘,单独测试。(6)外部子程序)外部子程序 若程序使用独立存盘的子程序,可在此处使用若程序使用独立存盘的子程序,可在此处使用“$include 子程序子程序名名”将其包含。注意,独立存盘的子程序必须与主程序在同一个目录中。将其包含。注意,独立存盘的子程序必须与主程序在同一个目录中。(7)中断向量)中断向量 中断向量一般放在最后。复位向量地址内

28、容为中断向量一般放在最后。复位向量地址内容为MCU上电后执行的程上电后执行的程序地址,即主程序的第一个语句地址。序地址,即主程序的第一个语句地址。(5)内部直接调用子程序)内部直接调用子程序6.2 汇编程序编程框架 v 第一个程序第一个程序 6.2.2 第一个可执行的第一个可执行的08汇编程序汇编程序 返回返回6.3 08汇编语言编译过程所涉及的文件 6.3 08汇编语言编译过程所涉及的文件汇编语言编译过程所涉及的文件 (1)头源文件()头源文件(.H)这是借用这是借用C语言中的概念,利用语言中的概念,利用.H文件,存放文件,存放 MCU的映像寄存的映像寄存器地址、定义常量等。器地址、定义常量

29、等。GP32ASM.H是包含是包含MC68HC908GP32的映像的映像寄存器地址的汇编语言头文件。使用寄存器地址的汇编语言头文件。使用08系列系列MCU的任何一种型号,的任何一种型号,均可拷贝此文件,并参考用户手册进行少量修改,获得相应芯片的映均可拷贝此文件,并参考用户手册进行少量修改,获得相应芯片的映像寄存器地址的头文件。像寄存器地址的头文件。在嵌入式应用系统的实际开发中,建议采用面向在嵌入式应用系统的实际开发中,建议采用面向“实际对象实际对象”的的编程方式,可以使程序结构更清晰,移植性更强。例如,上一节给出编程方式,可以使程序结构更清晰,移植性更强。例如,上一节给出的实例程序是使一盏小灯

30、闪烁,小灯是接在的实例程序是使一盏小灯闪烁,小灯是接在PTA口的第口的第1脚,程序中脚,程序中包含定义包含定义(见下页)(见下页)6.3 08汇编语言编译过程所涉及的文件 *指示灯所接引脚定义指示灯所接引脚定义 Light_P equ PTA ;灯灯(Light)接在接在PTA口口 Light_D equ DDRA ;相应的方向寄存器相应的方向寄存器 Light_Pin equ 1 ;所在的引脚所在的引脚 这样,点亮小灯的程序是:这样,点亮小灯的程序是:BCLR Light_Pin,Light_P 熄灭小灯的程序是:熄灭小灯的程序是:BSET Light_Pin,Light_P 若把小灯接在若

31、把小灯接在PTB口的第口的第2脚,只要作如下变动:脚,只要作如下变动:*指示灯所接引脚定义指示灯所接引脚定义 Light_P equ PTB ;灯灯(Light)接在接在PTB口口 Light_D equ DDRB ;相应的方向寄存器相应的方向寄存器 Light_Pin equ 2 ;所在的引脚所在的引脚 而小灯闪烁的主程序无需改变。实际对象所在引脚的定义,可集中或而小灯闪烁的主程序无需改变。实际对象所在引脚的定义,可集中或分类放在相应的头文件(分类放在相应的头文件(.H)中,硬件变动,只要更改头文件中引脚定义)中,硬件变动,只要更改头文件中引脚定义就可以了,增强了程序的通用性。就可以了,增强

32、了程序的通用性。6.3 08汇编语言编译过程所涉及的文件 源程序文件,后缀名为源程序文件,后缀名为ASM。可以使用一般的文本编辑软件编辑,。可以使用一般的文本编辑软件编辑,以以ASCII形式存盘。形式存盘。5.5.1节已经对节已经对08汇编源程序格式作了说明,上一节汇编源程序格式作了说明,上一节给出了实例,关键是注意程序的书写规范。给出了实例,关键是注意程序的书写规范。(3)目标代码文件()目标代码文件(.S19)源程序文件经源程序文件经08编译器编译后可以获得目标代码文件(编译器编译后可以获得目标代码文件(.S19),它),它是是Motorola MCU的机器码文件,将其下载到的机器码文件,

33、将其下载到MCU内部内部Flash存储器之存储器之后,后,MCU执行这些机器码。执行这些机器码。目标代码文件(目标代码文件(.S19)是以)是以S记录格式表示的机器码文件。记录格式表示的机器码文件。S记录记录格式是格式是Motorola公司的十六进制目标代码文件,它将目标程序和数据以公司的十六进制目标代码文件,它将目标程序和数据以可打印的可打印的ASCII码格式表示,可直接显示和打印。目标文件由若干行码格式表示,可直接显示和打印。目标文件由若干行S记录构成,每行记录构成,每行S记录可以用记录可以用CR/LF/NUL结尾。一行结尾。一行S记录由下列五部记录由下列五部分组成:分组成:类类 型型 记

34、录长度记录长度 地地 址址 编码编码/数据数据 校验校验和和2字节字节 2字节字节 2、3或或4字节字节 0n字节字节 1字节字节(2)源程序文件()源程序文件(.ASM)6.3 08汇编语言编译过程所涉及的文件 表示表示S记录的类型。共有记录的类型。共有8种记录类型种记录类型S0、S1、S2、S3、S5、S6、S8、S9。它们是为了满足不同的编码、传送方式以及解码的需求。它们是为了满足不同的编码、传送方式以及解码的需求。ASM08编译器只使用编译器只使用S1、S9两种类型构成目标文件。两种类型构成目标文件。S1该记录包含程序该记录包含程序/数据以及数据以及2字节存储其程序字节存储其程序/数据

35、的存储器首地数据的存储器首地址。址。S9S1记录的结束记录。该记录没有程序记录的结束记录。该记录没有程序/数据部分。地址部分可数据部分。地址部分可包含控制将转向的包含控制将转向的2字节地址,如果不指定,则为第一次使用的入口地址。字节地址,如果不指定,则为第一次使用的入口地址。记录长度记录长度表示该记录行中字符对的数目,不包括类型和记录长度。表示该记录行中字符对的数目,不包括类型和记录长度。地址地址它可以是它可以是2个字节、个字节、3个字节或个字节或4个字节,取决于记录类型。个字节,取决于记录类型。S1记录、记录、S9记录均是记录均是2个字节。它表示其后的编码个字节。它表示其后的编码/数据部分将

36、要装入的存储器起数据部分将要装入的存储器起始地址。始地址。编码编码/数据数据就是实际的目标程序或数据,这一部分将被下载到单片机的程序存就是实际的目标程序或数据,这一部分将被下载到单片机的程序存储器并运行。其字节数由储器并运行。其字节数由“记录长度记录长度”域的实际数值决定。域的实际数值决定。校验和校验和为为1个字节,它是个字节,它是“记录长度记录长度”、“地址地址”、“编码编码/数据数据”三个部三个部分所有字符之和的反码的低分所有字符之和的反码的低8位。供装入单片机时校验之用。位。供装入单片机时校验之用。类型类型6.3 08汇编语言编译过程所涉及的文件 S11380009B45023F94CD

37、802E1204120013006EFA99S113801040CD80253B40FA12006EFA40CD80253BCES113802040FACC800C87A6C89D9D4BFC868187A610S113803001B71EA63DB71F3F366E01366E01386E7ES11380402C396E803A6E013B1A361E3718368681FBS105FFFE80007DS9030000FC第一行第一行S11380009B45023F94CD802E1204120013006EFA99的的前两个符号前两个符号S1表示这一行是表示这一行是S1记录,其后的记录,其

38、后的“13”是十六进制数是十六进制数$13,等于十进制数的等于十进制数的19,表示在这一行中其后有,表示在这一行中其后有19个字节的数据,包括个字节的数据,包括2个个字节的地址字节的地址8000、16个字节的编码个字节的编码/数据:数据:9B45023F94CD802E1204120013006EFA,最后一个字节,最后一个字节99为校验和,为校验和,大家可验证。大家可验证。范例程序经编译后得到的目标文件:范例程序经编译后得到的目标文件:6.3 08汇编语言编译过程所涉及的文件 编译过程还将产生列表文件(编译过程还将产生列表文件(.LST)。列表文件包含地址、目标代)。列表文件包含地址、目标代

39、码、行号、源程序等信息,该文件对用户很有帮助,它可以使用户清晰地码、行号、源程序等信息,该文件对用户很有帮助,它可以使用户清晰地看到程序代码的编译情况。列表文件的文件名与源程序的文件名相同,只看到程序代码的编译情况。列表文件的文件名与源程序的文件名相同,只是扩展名不同是扩展名不同。下图给出了上节实例程序的。下图给出了上节实例程序的.LST文件的片段文件的片段。121 *主程序主程序 8000 122 ORG FlashStartAddr;程序起始地址程序起始地址 123 MainInit:;复位后程序从此开始执行复位后程序从此开始执行 124 ;系统初始化系统初始化 8000 9B 125 S

40、EI ;禁止所有中断禁止所有中断 8001 45023F 126 LDHX#$023F ;堆栈初始化为堆栈初始化为RAM最高端最高端 8004 94 127 TXS 8005 CD802E 128 JSR GP32Init ;系统初始化,初学时跳过此处系统初始化,初学时跳过此处地址地址目标代码目标代码行号行号源程序源程序(4)列表文件()列表文件(.LST)返回返回6.4 SD-HC08嵌入式MCU在线编程集成开发系统 6.4 SD-HC08嵌入式嵌入式MCU在线编程在线编程集成开发系统集成开发系统6.4.1 硬件系统说明硬件系统说明 (1)总体结构布局)总体结构布局 实验板硬件部分主要由实验

41、板硬件部分主要由MC68HC908GP32芯片及外围电路、芯片及外围电路、LCD、键盘、模块化电源、串行口驱动电路、键盘、模块化电源、串行口驱动电路、IC插线及其它元件扩展槽、输出插线及其它元件扩展槽、输出开关量接线排、输入开关量接线排等部分组成,其主要作用是通过开关量接线排、输入开关量接线排等部分组成,其主要作用是通过MC68HC908GP32芯片的监控程序和芯片的监控程序和PC机进行通信,完成芯片程序的机进行通信,完成芯片程序的写入、运行、断点调试。写入、运行、断点调试。6.4 SD-HC08嵌入式MCU在线编程集成开发系统 系统的硬件布局框图:系统的硬件布局框图:电源指示灯电源指示灯LC

42、D插孔插孔键盘键盘电位器电位器2电位器电位器1电源电源开关开关IC插线及其它元件扩展槽插线及其它元件扩展槽AIC插线及其它元件扩展槽插线及其它元件扩展槽B8位拨线开关位拨线开关PTAMC68HC908GP32芯片芯片写入器引线写入器引线键键盘盘接接线线区区MAX232发送指示灯发送指示灯键盘插孔键盘插孔串行口串行口FUSE8个输出指示灯个输出指示灯PTBPTCPTD蜂鸣器蜂鸣器LCD自行接线区自行接线区RSTSD-HC08(GP32)SD-HC08(GP32)实验板布局实验板布局6.4 SD-HC08嵌入式MCU在线编程集成开发系统 将实验开发板的串行口通过串行通信线与将实验开发板的串行口通过

43、串行通信线与PC机的串行口机的串行口1或或2连接。连接。接通实验开发板电源,电源指示灯亮。接通实验开发板电源,电源指示灯亮。连接实验所需线路连接实验所需线路。按实验板上的复位按钮。按实验板上的复位按钮。执行执行PC机的配套软件,硬件系统等待机的配套软件,硬件系统等待SD-1软件系统的握手信号。软件系统的握手信号。(2)连接方法)连接方法6.4 SD-HC08嵌入式MCU在线编程集成开发系统 实验开发板用拨线开关提供实验开发板用拨线开关提供8位数字量的输入。拨线开关状态为位数字量的输入。拨线开关状态为OFF时是高电平,拨线开关状态为时是高电平,拨线开关状态为ON时是低电平。时是低电平。(4)开关

44、量输出)开关量输出 实验开发板用实验开发板用LED提供提供8位开关量的输出。导线接插点为高电平位开关量的输出。导线接插点为高电平时时LED是暗的,低电平时是暗的,低电平时LED是亮的。是亮的。实验开发板含有蜂鸣器输出,实验开发板含有蜂鸣器输出,(5)模拟量输入)模拟量输入 MCU电位器电路实验开发板利用电位器提供两路模拟量输入,供进电位器电路实验开发板利用电位器提供两路模拟量输入,供进行行A/D转换实验使用。转换实验使用。(6)元件扩展口)元件扩展口 实验开发板提供元件扩展口,使用者可以进行实验开发板提供元件扩展口,使用者可以进行IC扩展。扩展。液晶显示接口、键盘接口、串行口分别见后面的相应章

45、节。液晶显示接口、键盘接口、串行口分别见后面的相应章节。(3)开关量输入)开关量输入6.4 SD-HC08嵌入式MCU在线编程集成开发系统 6.4.2 软件使用说明软件使用说明系统软件功能的主要结构,如下图所示系统软件功能的主要结构,如下图所示。在线编程开发系统在线编程开发系统文件处理文件处理源文件编辑源文件编辑源文件编译源文件编译帮帮 助助断断 点点 调调 试试目标代码写目标代码写打打 印印S19S19文件分解文件分解建立通信线路建立通信线路数据传输数据传输汇编代码编汇编代码编译译编译出错处理编译出错处理设置断点设置断点建立通信线路建立通信线路数据传输数据传输分解显示数据分解显示数据C C代

46、码编译代码编译6.4 SD-HC08嵌入式MCU在线编程集成开发系统 工程管理。工程管理。源文件编辑。源文件编辑。源文件编译。源文件编译。目标代码写入芯片。目标代码写入芯片。断点调试。断点调试。(1)软件系统基本功能)软件系统基本功能6.4 SD-HC08嵌入式MCU在线编程集成开发系统 SD-1V20型型MC68HC908GP32 MCU在线实验开发系统采用了在线实验开发系统采用了WIN32的的MDI风格,操作方便,直接支持风格,操作方便,直接支持Motorola的的.S19文件格式,文件格式,不改变用户中断向量,写入后直接转入用户程序执行。不改变用户中断向量,写入后直接转入用户程序执行。新

47、建工程。新建工程。源文件编辑。源文件编辑。编译设置。编译设置。编译工程。编译工程。下载程序。下载程序。(2)软件系统使用)软件系统使用返回返回本章小结本章小结通过通过6.1节普通节普通I/O的学习,理解的学习,理解MCU编程的基本原理,掌握寄存编程的基本原理,掌握寄存器的使用方法。必须认真仔细阅读器的使用方法。必须认真仔细阅读6.2节、节、6.3节给出的节给出的08汇编与汇编与08C语语言的编程框架,参考实例进行体会,一开始就形成良好的编程规范。言的编程框架,参考实例进行体会,一开始就形成良好的编程规范。在学习范例的基础上,动手编制在学习范例的基础上,动手编制I/O程序,进行实际的编程及调试训练,程序,进行实际的编程及调试训练,由此入门。由此入门。返回返回

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

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

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


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

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


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