飞思卡尔8位单片机MC9S08 06 通用IO与第一个汇编程序.ppt_第1页
飞思卡尔8位单片机MC9S08 06 通用IO与第一个汇编程序.ppt_第2页
飞思卡尔8位单片机MC9S08 06 通用IO与第一个汇编程序.ppt_第3页
飞思卡尔8位单片机MC9S08 06 通用IO与第一个汇编程序.ppt_第4页
飞思卡尔8位单片机MC9S08 06 通用IO与第一个汇编程序.ppt_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

2、片机有5个普通I/O口,分别是A口、B口、C口、D口、E口。它们中的大部分具有双功能,本节仅讨论它们作为普通I/O功能时的编程方法。,嵌入式应用技术基础教程课件,6.1 MC68HC908GP32的普通I/O,A口的8根引脚与键盘中断模块的引脚复用,这里只讨论A口作为普通I/O口的功能。 (1)A口的寄存器 A口作为普通I/O口时,具有三个寄存器,它们是:A口数据方向寄存器(DDRA)、A口数据寄存器(PTA)、A口上拉电阻允许寄存器(PTAPUE)。 A口数据方向寄存器(Data Direction Register A,DDRA) A口数据方向寄存器(DDRA)的地址是:$0004,DDR

3、A的第70位分别记为DDRA7DDRA0,这些位分别控制着A口引脚PTA7 PTA0是输入还是输出,若DDRAx=0,则引脚PTAx为输入,若DDRAx=1,则引脚PTAx为输出。复位时DDRA为$00。 记忆要点:数据方向寄存器的一位:0定义输入,1定义输出,6.1.1 A口,嵌入式应用技术基础教程课件,6.1 MC68HC908GP32的普通I/O,A口数据寄存器(PTA)的地址是:$0000,PTA的第70位分别记为PTA7PTA0。若A口的某一引脚PTAx被定义成输出,程序使A口数据寄存器PTA的相应位PTAx0,则引脚PTAx输出“低电平”;程序使PTAx1,则引脚PTAx输出“高电

4、平”。若A口的某一引脚PTAx被定义成输入,程序通过读取A口数据寄存器PTA,获得输入情况,0表示输入为“低电平”,1表示输入为“高电平”。 记忆要点: 输出时:数据寄存器的一位:0输出低电平 1输出高电平 输入时:数据寄存器的一位:0代表外部输入低电平 1代表外部输入高电平,嵌入式应用技术基础教程课件, A口数据寄存器(Port A Data Register,PTA),6.1 MC68HC908GP32的普通I/O,A口上拉电阻允许寄存器(PTAPUE)的地址是:$000D。PTAPUE的第70位分别记为PTAPUE7PTAPUE0。若A口的某一引脚PTAx 被定义成输入,则可通过置PTA

5、PUE的相应位PTAPUEx为1来定义其内接上拉电阻,即引脚PTAx已经通过内部电阻与电源VDD相接,此时若引脚PTAx若通过开关接地,则开关闭合时为低电平。那么寄存器PTA的相应位PTAx=0,开关断开时为高电平,寄存器PTA的相应位PTAx=1,通过读取寄存器PTA获得开关状态。 记忆要点: 在引脚被定义成输入时,可通过上拉电阻允许寄存器定义有无内部上拉电阻: 0没有内部上拉电阻 1有内部上拉电阻,嵌入式应用技术基础教程课件, A口上拉电阻允许寄存器(Port A Input Pullup Enable Register,PTAPUE),6.1 MC68HC908GP32的普通I/O,下图

6、给出了A口作为普通I/O使用时,一个外部引脚的相应内部逻辑电路框图。当DDRAx=1时,读地址$0000就是读PTAx。当DDRAx=0时,读地址$0000就是读引脚PTAx 电平。,嵌入式应用技术基础教程课件,(2)A口逻辑电路框图,6.1 MC68HC908GP32的普通I/O,B口的8根引脚与8路A/D转换模块的引脚复用,这里只讨论B口作为普通I/O口的功能。 (1)B口的寄存器 B口作为普通I/O口时,具有二个寄存器,它们是:B口数据方向寄存器(DDRB)和B口数据寄存器(PTB)。 B口数据方向寄存器(Data Direction Register B,DDRB) B口数据方向寄存器

7、(DDRB)的地址是:$0005,DDRB的第70位分别记为DDRB7DDRB0,这些位分别控制着B口引脚PTB7PTB0是输入还是输出,若DDRBx=0,则引脚PTBx为输入,若DDRBx=1,则引脚PTBx为输出。复位时DDRB为$00。 记忆要点:数据方向寄存器的一位:0定义输入,1定义输出,6.1.2 B口,嵌入式应用技术基础教程课件,6.1 MC68HC908GP32的普通I/O,B口数据寄存器(PTB)的地址是:$0001,PTB的第70位分别记为PTB7PTB0。若B口的某一引脚PTBx被定义成输出,程序使B口数据寄存器PTB的相应位PTBx0,则引脚PTBx输出“低电平”,程序

8、使PTBx1,则引脚PTBx输出“高电平”。若B口的某一引脚PTBx被定义成输入,程序通过读取B口数据寄存器PTB,获得输入情况,0表示输入为“低电平”,1表示输入为“高电平”。 注意:B口被定义成输入时,没有内部上拉电阻,嵌入式应用技术基础教程课件, B口数据寄存器(Port B Data Register,PTB),6.1 MC68HC908GP32的普通I/O,下图给出了B口作为普通I/O使用时,一个外部引脚的相应内部逻辑电路框图。,嵌入式应用技术基础教程课件,(2)B口逻辑电路框图,6.1 MC68HC908GP32的普通I/O,6.1.3 C口、D口和E口,(1)C口 对44引脚的M

9、C68HC908GP32芯片的C口只有7根引脚:PTC6 pinPTC0 pin,而40及42引脚的MC68HC908GP32芯片的C口只有5根引脚:PTC4 pinPTC0 pin。下面以44引脚的MC68HC908GP32芯片进行说明。C口只有普通I/O功能,它的内部逻辑结构框图与A口逻辑结构框图相同,只是其中的有关字母“A”改为字母“C”,地址作相应改变即可。 它也具有三个寄存器,它们是:C口数据方向寄存器(DDRC)、C口数据寄存器(PTC)、C口上拉电阻允许寄存器(PTCPUE)。,嵌入式应用技术基础教程课件,6.1 MC68HC908GP32的普通I/O,C口数据方向寄存器(DDR

10、C)的地址是:$0006,由于对应引脚只有7根,最高位没有意义。DDRC的第60位分别记为DDRC6DDRC0,这些位分别控制着C口引脚PTC6PTC0是输入还是输出,含义参考A口说明。复位时DDRC为$00。 C口数据寄存器(Port C Data Register,PTC) C口数据寄存器(PTC)的地址是:$0002,PTC的第60位分别记为PTC6PTC0。含义请类比A口、B口的相应说明。 C口上拉电阻允许寄存器(Port C Input Pullup Enable Register,PTCPUE) C口上拉电阻允许寄存器(PTCPUE)的地址是:$000E。PTCPUE的第60位分别

11、记为PTCPUE6PTAPUE0。含义请类比A口的相应说明。,嵌入式应用技术基础教程课件, C口数据方向寄存器(Data Direction Register C,DDRC),6.1 MC68HC908GP32的普通I/O,对于40引脚的MC68HC908GP32芯片的D口只有6根引脚:PTD5PTD0。而42及44引脚的MC68HC908GP32芯片的D口有8根引脚:PTD7PTD0。下面以42及44引脚的MC68HC908GP32芯片进行说明。 D口是I/O功能与其它特殊功能(SPI,TIM)复用口,这里只讨论它作为普通I/O口的功能。它的内部逻辑结构框图与A口逻辑结构框图相同,只是其中的

12、有关字母“A”改为字母“D”,地址作相应改变即可。 它也具有三个寄存器,它们是:D口数据方向寄存器(DDRD)、D口数据寄存器(PTD)、D口上拉电阻允许寄存器(PTDPUE)。,嵌入式应用技术基础教程课件,(2)D口,6.1 MC68HC908GP32的普通I/O,D口数据方向寄存器(DDRD)的地址是:$0007。DDRD的第70位分别记为DDRD7DDRD0,这些位分别控制着D口引脚PTD7PTD0是输入还是输出,含义参考A口说明。复位时DDRD为$00。 D口数据寄存器(Port D Data Register,PTD) D口数据寄存器(PTD)的地址是:$0003,PTD的第70位分

13、别记为PTD7PTD0。含义请类比A口、B口的相应说明。 D口上拉电阻允许寄存器(Port D Input Pullup Enable Register,PTDPUE) D口上拉电阻允许寄存器(PTDPUE)的地址是:$000F。PTDPUE的第70位分别记为PTDPUE7PTDPUE0。含义请类比A口的相应说明。,嵌入式应用技术基础教程课件, D口数据方向寄存器(Data Direction Register D,DDRD),6.1 MC68HC908GP32的普通I/O,E口只有PTE1、PTE0引脚。它是I/O功能与串行通讯接口(SCI)复用口,这里只讨论它的普通I/O口功能。其内部逻辑

14、结构框图与B口相同,只需将其中的有关字母“B”改为字母“E”,地址作相应改变即可。 它有两个寄存器: E口数据方向寄存器(Data Direction Register E,DDRE) E口数据方向寄存器(DDRE)的地址是:$000C。DDRE只有低两位有用。DDRE的第1、0位分别记为DDRE1、DDRD0,这两位分别控制着E口引脚PTE1、PTE0是输入还是输出,含义参考B口说明。复位时DDRE为$00。 E口数据寄存器(Port E Data Register,PTE) E口数据寄存器(PTE)的地址是:$0008,PTE的第10位分别记为PTE1PTE0。含义请类比B口的相应说明。,

15、嵌入式应用技术基础教程课件,(3)E口,返回,6.2 汇编程序编程框架,6.2.1 C口、D口和E口,(1)程序描述 给出程序名、硬件连接以及基本功能等描述,还可以给出编制者、编制时间等,若调试过程有新的体会,也可在此添加。 (2)头文件与有关常量命名 汇编语言也借用C语言中“头文件”的概念,将映像寄存器的地址定义在“头文件”中,程序直接使用寄存器地址所对应的“名称”。例如,有了“头文件”,对“D口数据寄存器”读出操作,可用“LDA PTD”取代“LDA $0003”,更容易理解。,嵌入式应用技术基础教程课件,6.2 汇编程序编程框架,6.2 汇编程序编程框架,如果程序中使用到内存变量,需在此

16、定义。实际上,这里是对内存变量的声明,通常称为“开辟内存变量”,内存变量的初始化在主程序开始部分完成。第一个内存变量需用“ORG”语句定位,随后,按地址从小到大顺序存放。每个内存变量都有固定的内存地址。借用C语言术语,这里所开辟的所有内存变量都是“全局变量”。对应于C语言中的“局部变量”将在讲解子程序规范时说明。 (4)主程序 主程序一般包括初始化与主循环两大部分。初始化包括堆栈初始化、系统初始化、内存变量初始化、I/O端口初始化、中断初始化等。主循环是程序的工作循环,根据实际需要安排程序段,但一般不宜过长,建议不要超过200行,具体功能可通过调用子程序来实现,或由中断程序实现。不带操作系统的

17、MCU程序总有一个主循环,表示程序周而复始地执行。,嵌入式应用技术基础教程课件,(3)内存变量,6.2 汇编程序编程框架,若有不单独存盘的子程序,建议放在此处。这样在主程序总循环的最后一个语句就可以看到这些子程序。建议不要超过3个,每个子程序不要超过200行。若有更多的子程序请单独存盘,单独测试。 (6)外部子程序 若程序使用独立存盘的子程序,可在此处使用“$include 子程序名”将其包含。注意,独立存盘的子程序必须与主程序在同一个目录中。 (7)中断向量 中断向量一般放在最后。复位向量地址内容为MCU上电后执行的程序地址,即主程序的第一个语句地址。,嵌入式应用技术基础教程课件,(5)内部

18、直接调用子程序,6.2 汇编程序编程框架,第一个程序,嵌入式应用技术基础教程课件,6.2.2 第一个可执行的08汇编程序,返回,6.3 08汇编语言编译过程所涉及的文件,6.3 08汇编语言编译过程所涉及的文件,(1)头源文件(.H) 这是借用C语言中的概念,利用.H文件,存放 MCU的映像寄存器地址、定义常量等。GP32ASM.H是包含MC68HC908GP32的映像寄存器地址的汇编语言头文件。使用08系列MCU的任何一种型号,均可拷贝此文件,并参考用户手册进行少量修改,获得相应芯片的映像寄存器地址的头文件。 在嵌入式应用系统的实际开发中,建议采用面向“实际对象”的编程方式,可以使程序结构更清晰,移植性更强。例如,上一节给出的实例程序是使一盏小灯闪烁,小灯是接在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

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论