第六章 通用 i/o 与第一个汇编程序

32
第第第 第第 I/O 第第 第第第第第 主主主主 MC68HC908GP32 主主主 I/O 主主主主主主主主 08 主主主主主主主主主主主主主主 SD-HC08 主主主 MCU 主主主主主主主主主

Upload: vivien

Post on 18-Mar-2016

147 views

Category:

Documents


6 download

DESCRIPTION

《 嵌入式应用技术基础教程 》 课件. 第六章 通用 I/O 与第一个汇编程序. 主要内容 MC68HC908GP32 的普通 I/O 汇编程序编程框架 08 汇编语言编译过程所涉及的文件 SD-HC08 嵌入式 MCU 在线编程集成开发系统. 《 嵌入式应用技术基础教程 》 课件. 6.1 MC68HC908GP32 的普通 I/O. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 第六章  通用 I/O 与第一个汇编程序

第六章 通用 I/O 与第一个汇编程序 主要内容 MC68HC908GP32的普通I/O 汇编程序编程框架 08汇编语言编译过程所涉及的文件 SD-HC08嵌入式MCU在线编程集成开发系统

Page 2: 第六章  通用 I/O 与第一个汇编程序

6.1 MC68HC908GP32的普通I/O

6.1 MC68HC908GP32 的普通 I/O

所谓普通 I/O ,即基本的输入 / 输出,有时也称为并行 I/O 。作为普通输入引脚, MCU 内部程序可以读取该引脚,知道该引脚是“ 1”(高电平)或“ 0” (低电平),即开关量输入。作为普通输出引脚,MCU 内部程序向该引脚输出“ 1” (高电平)或“ 0” (低电平),即开关量输出。 MC68HC908GP32 单片机有 5 个普通 I/O 口,分别是 A口、 B 口、 C 口、 D 口、 E 口。它们中的大部分具有双功能,本节仅讨论它们作为普通 I/O 功能时的编程方法。

Page 3: 第六章  通用 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 , DDRA 的第7 ~ 0 位分别记为 DDRA7 ~ DDRA0 ,这些位分别控制着 A 口引脚 PTA7 ~ PTA0 是输入还是输出,若 DDRAx=0 ,则引脚 PTAx 为输入,若 DDRAx=1 ,则引脚 PTAx 为输出。复位时 DDRA 为 $00 。 记忆要点:数据方向寄存器的一位: 0— 定义输入, 1— 定义输出

6.1.1 A 口

Page 4: 第六章  通用 I/O 与第一个汇编程序

6.1 MC68HC908GP32的普通I/O

A 口数据寄存器( PTA )的地址是: $0000 , PTA 的第 7 ~ 0 位分别记为 PTA7 ~ PTA0 。若 A 口的某一引脚 PTAx 被定义成输出,程序使 A 口数据寄存器 PTA 的相应位 PTAx = 0 ,则引脚 PTAx 输出“低电平”;程序使 PTAx = 1 ,则引脚 PTAx 输出“高电平”。若 A口的某一引脚 PTAx 被定义成输入,程序通过读取 A 口数据寄存器 PTA ,获得输入情况, 0 表示输入为“低电平”, 1 表示输入为“高电平”。

记忆要点: 输出时:数据寄存器的一位: 0— 输出低电平

1— 输出高电平输入时:数据寄存器的一位: 0— 代表外部输入低电平 1— 代表外部输入高电平

② A 口数据寄存器( Port A Data Register , PTA )

Page 5: 第六章  通用 I/O 与第一个汇编程序

6.1 MC68HC908GP32的普通I/O

A 口上拉电阻允许寄存器( PTAPUE )的地址是: $000D 。 PTAPUE 的第 7 ~ 0 位分别记为 PTAPUE7 ~ PTAPUE0 。若 A 口的某一引脚 PTAx 被定义成输入,则可通过置 PTAPUE 的相应位 PTAPUEx 为 1 来定义其内接上拉电阻,即引脚 PTAx 已经通过内部电阻与电源 VDD 相接,此时若引脚 PTAx 若通过开关接地,则开关闭合时为低电平。那么寄存器 PTA 的相应位 PTAx=0 ,开关断开时为高电平,寄存器 PTA 的相应位 PTAx=1 ,通过读取寄存器 PTA 获得开关状态。

记忆要点: 在引脚被定义成输入时,可通过上拉电阻允许寄存器定义有无内部上拉电阻:0— 没有内部上拉电阻1— 有内部上拉电阻

③ A 口上拉电阻允许寄存器( Port A Input Pullup Enable Register , PTAPUE )

Page 6: 第六章  通用 I/O 与第一个汇编程序

6.1 MC68HC908GP32的普通I/O

下图给出了 A 口作为普通 I/O 使用时,一个外部引脚的相应内部逻辑电路框图。当 DDRAx=1 时,读地址 $0000 就是读 PTAx 。当 DDRAx=0 时,读地址 $0000 就是读引脚 PTAx 电平。

读 DDRA($0004)

写 DDRA($0004) 复位 写 PTA($0000) 引脚 PTAx VDD

PTAPUEx 内部上拉电阻 读 PTA($0000)

A 口的一个引脚内部逻辑电路框图

A 口数据方向寄存器DDRAx 位

A 口数据寄存器PTAx 位

内部数据总线

( 2 ) A 口逻辑电路框图

Page 7: 第六章  通用 I/O 与第一个汇编程序

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 口数据方向寄存器( DDRB )的地址是: $0005 , DDRB 的第 7 ~ 0 位分别记为 DDRB7 ~ DDRB0 ,这些位分别控制着 B 口引脚 PTB7 ~ PTB0 是输入还是输出,若 DDRBx=0 ,则引脚 PTBx 为输入,若 DDRBx=1 ,则引脚 PTBx 为输出。复位时 DDRB 为 $00 。记忆要点:数据方向寄存器的一位: 0— 定义输入, 1— 定义输出

6.1.2 B 口

Page 8: 第六章  通用 I/O 与第一个汇编程序

6.1 MC68HC908GP32的普通I/O

B 口数据寄存器( PTB )的地址是: $0001 , PTB 的第 7 ~ 0 位分别记为 PTB7 ~ PTB0 。若 B 口的某一引脚 PTBx 被定义成输出,程序使 B 口数据寄存器 PTB 的相应位 PTBx = 0 ,则引脚 PTBx 输出“低电平”,程序使 PTBx = 1 ,则引脚 PTBx 输出“高电平”。若 B口的某一引脚 PTBx 被定义成输入,程序通过读取 B 口数据寄存器 PTB ,获得输入情况, 0 表示输入为“低电平”, 1 表示输入为“高电平”。

注意: B 口被定义成输入时,没有内部上拉电阻

② B 口数据寄存器( Port B Data Register , PTB )

Page 9: 第六章  通用 I/O 与第一个汇编程序

6.1 MC68HC908GP32的普通I/O

下图给出了 B 口作为普通 I/O 使用时,一个外部引脚的相应内部逻辑电路框图。

读 DDRB($0005)

写 DDRB($0005)

复位 写 PTB($0001) 引脚 PTBx

读 PTB($0001)

B 口的一个引脚内部逻辑电路框图

B 口数据方向寄存器DDRBx 位

B 口数据寄存器PTBx 位

内部数据总线

( 2 ) B 口逻辑电路框图

Page 10: 第六章  通用 I/O 与第一个汇编程序

6.1 MC68HC908GP32的普通I/O

6.1.3 C 口、 D 口和 E 口 ( 1 ) C 口 对 44 引脚的 MC68HC908GP32 芯片的 C 口只有 7 根引脚: PTC6 pin ~ PTC0 pin ,而 40 及 42 引脚的 MC68HC908GP32 芯片的 C口只有 5 根引脚: PTC4 pin ~ PTC0 pin 。下面以 44 引脚的 MC68HC908GP32 芯片进行说明。 C 口只有普通 I/O 功能,它的内部逻辑结构框图与 A 口逻辑结构框图相同,只是其中的有关字母“ A” 改为字母“ C” ,地址作相应改变即可。它也具有三个寄存器,它们是: C 口数据方向寄存器( DDRC )、 C口数据寄存器( PTC )、 C 口上拉电阻允许寄存器( PTCPUE )。

Page 11: 第六章  通用 I/O 与第一个汇编程序

6.1 MC68HC908GP32的普通I/O

  C 口数据方向寄存器( DDRC )的地址是: $0006 ,由于对应引脚只有 7 根,最高位没有意义。 DDRC 的第 6 ~ 0 位分别记为 DDRC6 ~ D

DRC0 ,这些位分别控制着 C 口引脚 PTC6 ~ PTC0 是输入还是输出,含义参考 A 口说明。复位时 DDRC 为 $00 。② C 口数据寄存器( Port C Data Register , PTC )C 口数据寄存器( PTC )的地址是: $0002 , PTC 的第 6 ~ 0 位分别记为 PTC6 ~ PTC0 。含义请类比 A 口、 B 口的相应说明。③ C 口上拉电阻允许寄存器( Port C Input Pullup Enable Register , PTCPUE )C 口上拉电阻允许寄存器( PTCPUE )的地址是: $000E 。 PTCP

UE 的第 6 ~ 0 位分别记为 PTCPUE6 ~ PTAPUE0 。含义请类比 A 口的相应说明。

① C 口数据方向寄存器( Data Direction Register C,DDRC )

Page 12: 第六章  通用 I/O 与第一个汇编程序

6.1 MC68HC908GP32的普通I/O

对于 40 引脚的 MC68HC908GP32 芯片的 D 口只有 6 根引脚: PTD5 ~ PTD0 。而 42 及 44 引脚的 MC68HC908GP32 芯片的 D 口有 8根引脚: PTD7 ~ PTD0 。下面以 42 及 44 引脚的 MC68HC908GP32芯片进行说明。

D 口是 I/O 功能与其它特殊功能( SPI , TIM )复用口,这里只讨论它作为普通 I/O 口的功能。它的内部逻辑结构框图与 A 口逻辑结构框图相同,只是其中的有关字母“ A” 改为字母“ D” ,地址作相应改变即可。

它也具有三个寄存器,它们是: D 口数据方向寄存器( DDRD )、D 口数据寄存器( PTD )、 D 口上拉电阻允许寄存器( PTDPUE )。

( 2 ) D 口

Page 13: 第六章  通用 I/O 与第一个汇编程序

6.1 MC68HC908GP32的普通I/O

  

D 口数据方向寄存器( DDRD )的地址是: $0007 。 DDRD 的第7 ~ 0 位分别记为 DDRD7 ~ DDRD0 ,这些位分别控制着 D 口引脚 PTD7 ~ PTD0 是输入还是输出,含义参考 A 口说明。复位时 DDRD 为$00 。

② D 口数据寄存器( Port D Data Register , PTD ) D 口数据寄存器( PTD )的地址是: $0003 , PTD 的第 7 ~ 0 位分别记为 PTD7 ~ PTD0 。含义请类比 A 口、 B 口的相应说明。③ D 口上拉电阻允许寄存器( Port D Input Pullup Enable Register , PTDPUE ) D 口上拉电阻允许寄存器( PTDPUE )的地址是: $000F 。 PTD

PUE 的第 7 ~ 0 位分别记为 PTDPUE7 ~ PTDPUE0 。含义请类比 A口的相应说明。

① D 口数据方向寄存器( Data Direction Register D,DDRD )

Page 14: 第六章  通用 I/O 与第一个汇编程序

6.1 MC68HC908GP32的普通I/O

E 口只有 PTE1 、 PTE0 引脚。它是 I/O 功能与串行通讯接口( SCI )复用口,这里只讨论它的普通 I/O 口功能。其内部逻辑结构框图与 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 的第 1 ~ 0 位

分别记为 PTE1 ~ PTE0 。含义请类比 B 口的相应说明。

( 3 ) E 口

返回

Page 15: 第六章  通用 I/O 与第一个汇编程序

6.2 汇编程序编程框架

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

6.2 汇编程序编程框架

Page 16: 第六章  通用 I/O 与第一个汇编程序

6.2 汇编程序编程框架

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

( 3 )内存变量

Page 17: 第六章  通用 I/O 与第一个汇编程序

6.2 汇编程序编程框架

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

( 5 )内部直接调用子程序

Page 18: 第六章  通用 I/O 与第一个汇编程序

6.2 汇编程序编程框架

第一个程序 6.2.2 第一个可执行的 08 汇编程序

返回

Page 19: 第六章  通用 I/O 与第一个汇编程序

6.3 08汇编语言编译过程所涉及的文件

6.3 08 汇编语言编译过程所涉及的文件 ( 1 )头源文件( .H ) 这是借用 C 语言中的概念,利用 .H 文件,存放 MCU 的映像寄存器地址、定义常量等。 GP32ASM.H 是包含 MC68HC908GP32 的映像寄存器地址的汇编语言头文件。使用 08系列MCU 的任何一种型号,均可拷贝此文件,并参考用户手册进行少量修改,获得相应芯片的映像寄存器地址的头文件。 在嵌入式应用系统的实际开发中,建议采用面向“实际对象”的编程方式,可以使程序结构更清晰,移植性更强。例如,上一节给出的实例程序是使一盏小灯闪烁,小灯是接在 PTA 口的第 1 脚,程序中包含定义(见下页)

Page 20: 第六章  通用 I/O 与第一个汇编程序

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

Page 21: 第六章  通用 I/O 与第一个汇编程序

6.3 08汇编语言编译过程所涉及的文件

源程序文件,后缀名为 ASM 。可以使用一般的文本编辑软件编辑,以 ASCII形式存盘。 5.5.1 节已经对 08 汇编源程序格式作了说明,上一节给出了实例,关键是注意程序的书写规范。 ( 3 )目标代码文件( .S19 ) 源程序文件经 08 编译器编译后可以获得目标代码文件( .S19 ),它是 Motorola MCU 的机器码文件,将其下载到MCU 内部 Flash 存储器之后, MCU执行这些机器码。 目标代码文件( .S19 )是以 S 记录格式表示的机器码文件。 S 记录格式是 Motorola公司的十六进制目标代码文件,它将目标程序和数据以可打印的 ASCII码格式表示,可直接显示和打印。目标文件由若干行 S记录构成,每行 S 记录可以用 CR/LF/NUL 结尾。一行 S 记录由下列五部分组成:

类 型 记录长度 地 址 编码 / 数据 校验和2 字节 2 字节 2 、 3 或 4 字节 0 ~ n 字节 1 字节

( 2 )源程序文件( .ASM )

Page 22: 第六章  通用 I/O 与第一个汇编程序

6.3 08汇编语言编译过程所涉及的文件

表示 S 记录的类型。共有 8种记录类型 S0 、 S1 、 S2 、 S3 、 S5 、S6 、 S8 、 S9 。它们是为了满足不同的编码、传送方式以及解码的需求。ASM08 编译器只使用 S1 、 S9 两种类型构成目标文件。

S1— 该记录包含程序 / 数据以及 2 字节存储其程序 / 数据的存储器首地址。S9—S1 记录的结束记录。该记录没有程序 / 数据部分。地址部分可包含控制将转向的 2 字节地址,如果不指定,则为第一次使用的入口地址。② 记录长度表示该记录行中字符对的数目,不包括类型和记录长度。③ 地址它可以是 2 个字节、 3 个字节或 4 个字节,取决于记录类型。 S1 记录、 S9 记录均是 2 个字节。它表示其后的编码 / 数据部分将要装入的存储器起始地址。④ 编码 /数据就是实际的目标程序或数据,这一部分将被下载到单片机的程序存储器并运行。其字节数由“记录长度”域的实际数值决定。⑤ 校验和为 1 个字节,它是“记录长度”、“地址”、“编码 / 数据”三个部分所有字符之和的反码的低 8 位。供装入单片机时校验之用。

① 类型

Page 23: 第六章  通用 I/O 与第一个汇编程序

6.3 08汇编语言编译过程所涉及的文件

S11380009B45023F94CD802E1204120013006EFA99S113801040CD80253B40FA12006EFA40CD80253BCES113802040FACC800C87A6C89D9D4BFC868187A610S113803001B71EA63DB71F3F366E01366E01386E7ES11380402C396E803A6E013B1A361E3718368681FBS105FFFE80007DS9030000FC第一行 S11380009B45023F94CD802E1204120013006EFA99的前两个符号 S1 表示这一行是 S1 记录,其后的“ 13” 是十六进制数

$13 ,等于十进制数的 19 ,表示在这一行中其后有 19 个字节的数据,包括 2 个字节的地址 8000 、 16 个字节的编码 / 数据: 9B45023F94CD802E1204120013006EFA ,最后一个字节 99 为校验和,大家可验证。

范例程序经编译后得到的目标文件:

Page 24: 第六章  通用 I/O 与第一个汇编程序

6.3 08汇编语言编译过程所涉及的文件

编译过程还将产生列表文件( .LST )。列表文件包含地址、目标代码、行号、源程序等信息,该文件对用户很有帮助,它可以使用户清晰地看到程序代码的编译情况。列表文件的文件名与源程序的文件名相同,只是扩展名不同 。下图给出了上节实例程序的 .LST 文件的片段 。 121 *[主程序 ] 8000 122 ORG FlashStartAddr ; 程序起始地址 123 MainInit: ; 复位后程序从此开始执行 124 ;[系统初始化 ] 8000 9B 125 SEI ;禁止所有中断 8001 45023F 126 LDHX #$023F ;堆栈初始化为 RAM 最高端 8004 94 127 TXS 8005 CD802E 128 JSR GP32Init ;系统初始化,初学时跳过此处

地址 目标代码 行号 源程序

( 4 )列表文件( .LST )

返回

Page 25: 第六章  通用 I/O 与第一个汇编程序

6.4 SD-HC08嵌入式MCU在线编程集成开发系统

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

Page 26: 第六章  通用 I/O 与第一个汇编程序

6.4 SD-HC08嵌入式MCU在线编程集成开发系统

系统的硬件布局框图:

电源指示灯

LCD插孔

键盘

电位器 2电位器 1

电源开关 IC插线及其它元件扩展槽 A

IC插线及其它元件扩展槽 B

8 位拨线开关PTA

MC68HC908GP32 芯片写入器引线

键盘接线区

MAX232

发送指示灯

键盘插孔

串行口

FUSE8 个输出指示灯

PTB PTC PTD

蜂鸣器

LCD自行接线区

RST

SD-HC08(GP32) 实验板布局

Page 27: 第六章  通用 I/O 与第一个汇编程序

6.4 SD-HC08嵌入式MCU在线编程集成开发系统

① 将实验开发板的串行口通过串行通信线与 PC 机的串行口 1 或 2 连接。 ② 接通实验开发板电源,电源指示灯亮。 ③ 连接实验所需线路 。④ 按实验板上的复位按钮。 ⑤ 执行 PC 机的配套软件,硬件系统等待 SD-1软件系统的握手信号。

( 2 )连接方法

Page 28: 第六章  通用 I/O 与第一个汇编程序

6.4 SD-HC08嵌入式MCU在线编程集成开发系统

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

( 3 )开关量输入

Page 29: 第六章  通用 I/O 与第一个汇编程序

6.4 SD-HC08嵌入式MCU在线编程集成开发系统

6.4.2 软件使用说明系统软件功能的主要结构,如下图所示。

在线编程开发系统

文件处理源文件编辑

源文件编译帮 助

断 点 调 试

目标代码写打 印

S19

文件分解

建立通信线路

数据传输

汇编代码编译

编译出错处理

设置断点

建立通信线路

数据传输

分解显示数据

C

代码编译

Page 30: 第六章  通用 I/O 与第一个汇编程序

6.4 SD-HC08嵌入式MCU在线编程集成开发系统

① 工程管理。② 源文件编辑。③ 源文件编译。④ 目标代码写入芯片。⑤ 断点调试。

( 1 )软件系统基本功能

Page 31: 第六章  通用 I/O 与第一个汇编程序

6.4 SD-HC08嵌入式MCU在线编程集成开发系统

SD-1V20型MC68HC908GP32 MCU 在线实验开发系统采用了WIN32 的 MDI风格,操作方便,直接支持Motorola 的 .S19 文件格式,不改变用户中断向量,写入后直接转入用户程序执行。

① 新建工程。② 源文件编辑。③ 编译设置。④编译工程。⑤下载程序。

( 2 )软件系统使用

返回

Page 32: 第六章  通用 I/O 与第一个汇编程序

本章小结通过 6.1 节普通 I/O 的学习,理解 MCU 编程的基本原理,掌握寄

存器的使用方法。必须认真仔细阅读 6.2 节、 6.3 节给出的 08 汇编与08C 语言的编程框架,参考实例进行体会,一开始就形成良好的编程规范。在学习范例的基础上,动手编制 I/O 程序,进行实际的编程及调试训练,由此入门。

返回