《嵌入式系统设计实战基于飞思卡尔S12X微控制器》课件Chap03PPT推荐.ppt
《《嵌入式系统设计实战基于飞思卡尔S12X微控制器》课件Chap03PPT推荐.ppt》由会员分享,可在线阅读,更多相关《《嵌入式系统设计实战基于飞思卡尔S12X微控制器》课件Chap03PPT推荐.ppt(34页珍藏版)》请在冰豆网上搜索。
记为:
记为GPIOGPIO,即基本的输入,即基本的输入/输出。
输出。
作为通用输入引脚,即开关量输入。
作为通用输出引脚,即开关量输出。
大多数通用大多数通用I/OI/O引脚可以通过编程来设定工作方引脚可以通过编程来设定工作方式为输入或输出,称之为双向通用式为输入或输出,称之为双向通用I/OI/O。
3.13.1通用通用I/OI/O接口基本概念及连接方法接口基本概念及连接方法上拉下拉电阻与输入引脚的基本接法上拉下拉电阻与输入引脚的基本接法MCU的某个引脚通过一个电阻接到电源(Vcc)上,这个电阻被称为“上拉电阻”;
MCU的某个引脚通过一个电阻接到地(GND)上,则相应的电阻被称为“下拉电阻”。
接法1:
引脚I1通过上拉电阻R1接到Vcc,选择R1R2;
K1断开时,引脚I1为高电平,K1闭合时,引脚I1为低电平。
接法2:
引脚I2通过下拉电阻R4接到Vcc,选择R3R4;
K2断开时,引脚I2为低电平,K2闭合时,引脚I2为高电平。
接法3:
引脚I3处于悬空状态,K3断开时,引脚I3的电平不确定(这样不好)。
3.13.1通用通用I/OI/O接口基本概念及连接方法接口基本概念及连接方法输出引脚的基本接法输出引脚的基本接法接法1:
引脚O1直接驱动发光二极管LED,当引脚O1输出高电平时,LED不亮;
当引脚O1输出低电平时,LED点亮。
引脚O2通过一个NPN三极管驱动蜂鸣器,当引脚O2输出高电平时,蜂鸣器响;
引脚O2输出低电平时,蜂鸣器不响。
3.2XS1283.2XS128的的GPIOGPIO寄存器与寄存器与GPIOGPIO构件封装构件封装3.2.1XS1283.2.1XS128的的GPIOGPIO寄存器寄存器99个个GPIOGPIO口(口(AA口口,B,B口,口,EE口,口,JJ口,口,MM口,口,PP口口,S,S口口,T,T,口口ADAD口)口)AA、BB、EE、TT、ADAD都有都有88个引脚,而个引脚,而JJ口有口有22个引脚,个引脚,MM口有口有66个引脚,个引脚,SS口有口有44个引脚,个引脚,PP口有口有77个引脚个引脚引脚其他寄存器引脚其他寄存器
(1)A、B、E口除具有独立的数据方向寄存器与数据寄存器外,还共用上拉电阻控制寄存器(PUCR)与低功耗驱动寄存器(RDRIV)。
(2)T口、S口、M口、P口、J口有:
数据方向寄存器、数据寄存器、输入寄存器、低功耗驱动寄存器、上拉下拉使能寄存器、上拉下拉选择寄存器。
(3)P口、J口还有两个寄存器,是中断使能寄存器和中断标志寄存器。
S口、M口还有线或寄存器。
3.2XS1283.2XS128的的GPIOGPIO寄存器与寄存器与GPIOGPIO构件封装构件封装数据方向寄存器数据方向寄存器决定了相对应引脚是输入还是输出记忆要点:
数据方向寄存器的一位:
0定义输入,1定义输出数据寄存器与输入寄存器数据寄存器与输入寄存器设置对应引脚为高电平
(1)或低电平(0)记忆要点:
输出时:
数据寄存器的一位:
0输出低电平,1输出高电平3.2XS1283.2XS128的的GPIOGPIO寄存器与寄存器与GPIOGPIO构件封装构件封装低功耗驱动寄存器低功耗驱动寄存器低功耗输出记忆要点:
低功耗驱动寄存器的一位:
0输出功耗正常,1输出功耗为正常的1/5上拉下拉电阻使能寄存器与上拉下拉选择寄上拉下拉电阻使能寄存器与上拉下拉选择寄存器存器禁用或允许上拉或下拉电阻记忆要点:
0输出低电平,1输出高电平记忆要点:
上拉下拉使能寄存器的一位:
0无上拉或下拉,1有上拉或下拉记忆要点:
0无上拉或下拉,1有上拉或下拉3.2XS1283.2XS128的的GPIOGPIO寄存器与寄存器与GPIOGPIO构件封装构件封装AA、BB、EE口共用的上拉电阻控制寄存器口共用的上拉电阻控制寄存器(PUCR)(PUCR)共用一个控制寄存器(PUCR)决定了相对应引脚是输入还是输出记忆要点:
在引脚PORTA被定义成输入时,可通过上拉电阻允许寄存器PUCR中的PUPAE位来定义有无内部上拉电阻:
0没有内部上拉电阻1有内部上拉电阻AA、BB、EE口共用的低功耗驱动寄存器口共用的低功耗驱动寄存器(RDRIV)(RDRIV)共用一个控制寄存器(RDRIV)设置对应引脚为高电平
(1)或低电平(0)记忆要点:
在引脚被定义为低功耗驱动时,可通过低功耗允许寄存器RDRIV中的相应位来定义是否低功耗驱动使能:
0不允许低功耗驱动使能1允许低功耗驱动使能。
记忆要点:
3.2XS1283.2XS128的的GPIOGPIO寄存器与寄存器与GPIOGPIO构件封装构件封装ADAD口也可以设置低功耗驱动功能口也可以设置低功耗驱动功能个引脚可以分别设置低功耗驱动功能记忆要点:
在引脚被定义成低功耗驱动时,可通过低功耗驱动寄存器RDR0AD0和RDR1AD0中相应的位来定义相应引脚是否低功耗驱动:
中断使能寄存器与中断标志寄存器中断使能寄存器与中断标志寄存器设置对应引脚为高电平
(1)或低电平(0)记忆要点:
0输出低电平,1输出高电平中断使能寄存器的对应位若为1,则设置中断相应使能;
若为0,则设置为禁止相应中断中断标志寄存器表征中断是否已经产生:
若中断标志寄存器的某一位为1,则表明相应中断已经产生;
若为0,则相应中断未产生3.2XS1283.2XS128的的GPIOGPIO寄存器与寄存器与GPIOGPIO构件封装构件封装线或寄存器线或寄存器寄存器的对应位若为1,则该位对应引脚为输出线或模式(即开漏);
若为0,则该位对应引脚为输出推拉模式注意:
引脚设置为输入,该寄存器设置无效记忆要点:
3.2XS1283.2XS128的的GPIOGPIO寄存器与寄存器与GPIOGPIO构件封装构件封装GPIOGPIO的简单编程方法的简单编程方法置位与清位的编程方法置位与清位的编程方法置位、清置位、清00等等33个宏定义个宏定义#defineBSET(bit,Register)(Register)|=(1(bit)/设置寄存器中某一位为1#defineBCLR(bit,Register)(Register)&
=(1(bit)&
1)/得到寄存器中某一位状态3.2XS1283.2XS128的的GPIOGPIO寄存器与寄存器与GPIOGPIO构件封装构件封装开关量输出的编程方法开关量输出的编程方法首先初始化端口引脚的数据方向为输出,然后首先初始化端口引脚的数据方向为输出,然后运用该引脚的数据寄存器进行数据输出运用该引脚的数据寄存器进行数据输出BSET(4,DDRB);
/B口的第4引脚初始化为输出BSET(4,PORTB);
/B口的第4引脚输出高电平(0)开关量输入的编程方法开关量输入的编程方法首先初始化端口的引脚数据方向为输入,然后运首先初始化端口的引脚数据方向为输入,然后运用该引脚将外界数据输入给对应数据寄存器中用该引脚将外界数据输入给对应数据寄存器中BCLR(3,DDRB);
/B口的第3引脚初始化为输入Data=BGET(3,PORTB);
/获得B口第3引脚的输入数据赋给变量Data3.3CodeWarriorCodeWarrior开发环境与开发环境与S08/S12/ColdFireS08/S12/ColdFire三合一写入器三合一写入器3.3.1CW3.3.1CW环境功能和特点环境功能和特点33个版本:
个版本:
u特别版(特别版(SpecialEdition)u标准版标准版u专业版专业版功能模块:
功能模块:
u编辑器、源码浏览器编辑器、源码浏览器u搜索引擎、构造系统搜索引擎、构造系统u调试器、工程管理器调试器、工程管理器3.3CodeWarrior开发环境简介3.3.2CW3.3.2CW环境安装与设置环境安装与设置安装后上网注册安装后上网注册3.3CodeWarriorCodeWarrior开发环境与开发环境与S08/S12/ColdFireS08/S12/ColdFire三合一写入器三合一写入器3.3.2S08/S12/ColdFire3.3.2S08/S12/ColdFire三合一写入器三合一写入器3.3CodeWarriorCodeWarrior开发环境与开发环境与S08/S12/ColdFireS08/S12/ColdFire三合一写入器三合一写入器3.3.3MC9S12XS1283.3.3MC9S12XS128硬件评估板硬件评估板3.4CW3.4CW环境环境CC语言工程文件的组织语言工程文件的组织工程文件的逻辑组工程文件的逻辑组织结构织结构3.4CW3.4CW环境环境CC语言工程文件的组织语言工程文件的组织工程文件的物理组织结构3.4CW工程文件组织3.4.43.4.4链接文件及机器码文件链接文件及机器码文件链接文件链接文件linker.lcflinker.lcf:
该文件提供了工程:
该文件提供了工程在链接时所需要的参数信息。
一般情况下,在链接时所需要的参数信息。
一般情况下,该文件不需要修改。
该文件不需要修改。
目标文件目标文件.s19.s19文件文件CodeWarrior生成三个文件分别是生成三个文件分别是elf、sl9、.elf.xMAP。
S19格式的文件写入到格式的文件写入到Flash中。
中。
3.4CW3.4CW环境环境CC语言工程文件的组织语言工程文件的组织prmprm文件有五个组成部分构成文件有五个组成部分构成NAMESENDNAMESEND部分部分SEGMENTSENDSEGMENTSEND部分部分PLACEMENTENDPLACEMENTEND部分部分STACKSIZESTACKSIZE部分部分VECTORVECTOR部分部分3.4CW3.4CW环境环境CC语言工程文件的组织语言工程文件的组织关于关于#pragma#pragma指令的简要说明指令的简要说明#pragmaDATA_SEG#pragmaDATA_SEG#pragmaCONST_SEG#pragmaCONST_SEG#pragmaCODE_SEG#pragmaCODE_SEG#pragmaTRAP_