嵌入式系统-使用HCS12微控制器的设计与应用.docx
《嵌入式系统-使用HCS12微控制器的设计与应用.docx》由会员分享,可在线阅读,更多相关《嵌入式系统-使用HCS12微控制器的设计与应用.docx(27页珍藏版)》请在课桌文档上搜索。
1、嵌入式系统与单片机嵌入式系统的由来(通用计算机系统、嵌入式计算机系统)单片机的含义MCU与嵌入式系统的关系MCU的开展简史开展趋势大容量、高性能化小容量、低价格化外围电路内装化8位16位f32位f64位与硬件相关的术语封装(PaCkage)印刷电路板(PCB)动态可读/写随机存储器(DRAM)静态可读/写随机存储器(SRAM)只读存储器(RoM)Flash存储器(FIaShMemory)模拟量开关量1.2.2 与通信相关的术语并行通信串行通信串行外设接口(SPI)集成电路互连总线I2C通用串行总线USB控制器局域网CAN背景调试模式BDM边界扫描测试协议JTAG1.2.3 与功能模块相关的术语
2、通用输入/输出GPIOA/D与D/A脉冲宽度调制器PWM看门狗液晶显示器LCD发光二极管LED键盘1.2.4 与嵌入式软件相关的术语中断中断效劳程序实时操作系统RTOSCOS-II临界区嵌入式产品的一般构成嵌入式产品的一般开发方法1根本输入/输出分析2选择MCU的根本方法3选择评估系统并对与MCU相关的硬件进行初步评估4设计并制作硬件系统5进行硬件系统的模块测试6软件系统设计7系统测试8进一步工作嵌入式系统的特点资源受限开发需要专用工具和特殊方法要求较高可靠性和稳定性有实时约束通常极其关注本钱大多要求低功耗专用性很强技术含量高具有很长生命周期1.4.2 嵌入式系统的学习建议明确学习的目的选择好
3、入门的机型必要的记忆勤于实践学习各种接口的原理与时俱进,不断改良自己的学习方式从底层抓起,一点一滴打好根底FreescaleHCS12系列MCU的命名规那么MC9S12Dx256BxxxE:产品状态:存储器类型标志:CPU标志:系列标志:存储空间大小及版本工作温度范围标志:封装标志:无铅组装标志2.1.2HCS12各子系列MCU简介系列B系列C系列A系列D系列E系列GC系列H系列NE系列Q系列T系列UF系列相同点工作电压一般为5V不同点ROM大小RAM大小EEPROM大小Flash容量I/O口数串行借口A/D转换器FreescaleHCS12系列MCU的命名规那么MC9S12Dx256Bxxx
4、E:产品状态:存储器类型标志:CPU标志:系列标志:存储空间大小及版本工作温度范围标志:封装标志:无铅组装标志2.1.2HCS12各子系列MCU简介系列B系列C系列A系列D系列E系列GC系列H系列NE系列Q系列T系列UF系列相同点工作电压-一般为5V不同点ROM大小RAM大小EEPROM大小Flash容量I/O口数串行借口A/D转换器MCU性能概述1 .时钟和复位产生模块、存储器与封装形式2 .丰富的I/O接口3 .3.2运行模式1 .单片运行模式2 .扩展运行模式2.3.3内部结构简图、引脚图及引脚功能80引脚112引脚MC9S12DG128MCU的最小系统设计2.4MC9S12DG128的
5、存储器映像I/O接口的根本概念2.5.2AO.B口、E口和K口数据方向存放器分别为DDRA、DDRIkDDREDDRK0:定义输入1:定义输出I/O存放器分别为PORTA、PORTIkPORTE、PORTK输出时,0:输出低电平1:输出高电平输入时,0:外部输入低电平1:外部输入高电平上拉电阻控制存放器PUCR四口共用0:没有内部上拉电阻1:有内部上拉电阻2.5.3H口、J口、M口、P口、5口和1口1 .端口的存放器数据方向存放器I/O存放器输入存放器低功耗驱动存放器0:输出功耗正常1:输出功耗为正常的1/6上拉下拉使能存放器0:禁用上拉或下拉电阻1:允许上拉或下拉电阻上拉下拉选择存放器0:上
6、拉1:下拉2 .端口的复用功能T口:接收输入捕捉功能SD:SCESPl模块关联作为通信接口M:与ByteFIight、BDLCCAN、SPl模块关联作为通信接口P口:与PWM、SPI模块关联作为通信接口H口:与SPl模块关联作为通信接口J:与CAN、IlC模块关联作为通信接口3 .5.4其他I/O口A/D口:作为AD转换模块的模拟量输入口和外界触发脉冲的输入口也可以做为普通输入口3.1CPU12根本组成3.2寻址方式1 .内在寻址方式(INH)2 .立即寻址方式(IMM)3 .直接寻址方式(DIR)4 .扩展寻址方式(EXT)5 .相对变址寻址方式(REL)6 .变址寻址方式(IDX)7 .5
7、位偏移量变址方式8 .9位偏移量变址方式9 .16位偏移量变址方式10 .16位间接变址方式11 .自增自减变址寻址方式12 .累加器偏移变址寻址方式13 .累加器D间接寻址3.3指令系统1算术运算(加、减、乘、除、加1、减1、)2逻辑运算(与、或、异或、)3位操作(位测试、置位、)4移位(算术/逻辑/循环左/右移、)5程序控制(转移、比拟相等转移、)6模糊指令7数据传送(取数、存数、进栈、出栈、)8其他指令数据传送类指令取数指令存数指令传递指令交换指令MOVE指令堆栈指令算术运算类指令加、减法指令自增、自减指令比拟指令测试指令逻辑运算指令清零指令取反/求补指令乘/除法指令最大/最小值指令乘积
8、累加指令记忆标志位:C-进/借位标志V一溢出标志H-加法半字节进位标志N一正负标志位Z一零标志位3.3.3位操作类指令位测试指令BITA、BITB位置1指令BSET位清零指令BCLR移位类指令算术左移(ASL)逻辑左移(LSL)算术右移(ASR)逻辑右移(LSR)循环左移(ROL)循环右移(ROR)协助记忆:算术:Arithmetic逻辑:Logic左:Left右:Right循环:Rotate程序控制类指令短转移指令(地址偏移量:-128+127)长转移指令(地址偏移量:-32768+32767)位条件转移指令(地址偏移量:-128+127)BRCLRBREST循环控制指令跳转指令无条件转移J
9、MP绝对转移调用JSR相对转移调用BSR3.3.6模糊指令MEMREVREVWWAV3. 3.7其他指令表插补指令中断指令变址操作指令指针和变址计算指令条件码指令停止与等待模式指令后台模式与空操作3.4CPU12与CPUO8的比拟HCS12汇编源代码格式根本概念编译器伪指令语句元素标号操作码操作数(常数、#、圆点)注释MT-IDEforHCSI2开发环境中的汇编伪指令变量定义Al:.balign1A2:.baIignw1数字常数与字符串常数定义常数赋值与文本替代符伪指令,definePI=3.14存储定位伪指令文件包含伪指令.include3. 5.3CodeWarriorforHCSI2开发
10、环境中的汇编伪指令变量定义1.ABELl:DS.B1LABEL2:DS.W1数字常数与字符串常数定义常数赋值与文本替代符伪指令PI:EQU3.14存储定位伪指令文件包含伪指令INCLUDEMT-IDEforHCS12集成开发环境简称MT环境Freescale公司CodeWarriorforHCS12集成开发环境简称CW环境MT-IDEforHCS12集成开发环境CodeWarriorforHCS12集成开发环境嵌入式系统工程文件组织列表文件(*.LIS或*.LST)列表文件的行内容格式:目标代码文件(*S19)目标代码文件是以S记录(八种)格式表示的机器码文件与链接相关的地址信息文件小灯闪烁汇
11、编工程在MT环境下的文件组织1与芯片相关的程序文件DG128SM.h定义芯片映像存放器名Vector.s一定义中断向量表Isr.s-中断处理子程序Startl2.s一系统启动文件MCUInit.h芯片初始化头文件MCUInit.s芯片初始化文件2硬件对象控制文件1.ED.h-小灯控制引脚宏定义包含小灯驱动所需头文件小灯控制引脚宏定义小灯驱动子程序声明1.ED.s-小灯驱动子程序定义子程序LEDInit:初始化定义子程序LED_L_A:驱动小灯亮,暗3通用程序文件Includes,h-总头文件工程中用到的头文件有关常量命名GeneralFun.s-通用子程序定义子程序DeIayX:延时4主程序文
12、件main,s-主程序工程描述包含总头文件主程序内部直接调用子程序子程序编写标准(以LED.s为例)MT环境下第一个汇编工程的链接信息文件链接信息文件IinkerJd链接有两种模式内存直接模式内存扩展模式4. 3.3MT环境下第一个汇编工程的执行过程小灯闪烁C工程在MT环境下的文件组织MT环境下第一个C工程的链接信息文件链接信息文件Iinker.Id内容与汇编链接信息相同4.4.3MT环境下第一个C工程的执行过程小灯闪烁汇编工程在CW环境下的文件组织CW环境下第一个汇编工程中的链接信息文件CW环境下第一个汇编工程的执行过程小灯闪烁C工程在CW环境下的文件组织4.6.2CW环境下第一个C工程中的
13、链接信息文件CW环境下第一个C工程的执行过程小灯闪烁C工程在CW环境下的文件组织4.6.2CW环境下第一个C工程中的链接信息文件CW环境下第一个C工程的执行过程映像存放器名C工程中调用汇编语句的格式中断函数的声明根本概念1.异步串行通信的格式(NRZ)2 .串行通信的波特率定义:每秒内传送的位数。单位:b/s或bps常用:1200bpsX4800bpsX9600bps3 .奇偶校验奇校验:校验位为0或L使得1的数目是奇数偶校验:校验位为0或1,使得1的数目是偶数4.串行通信的传输方式单工:1根数据线全双工:2根数据线半双工:1根数据线RS-232C总线标准1 .采用负逻辑逻辑“1”:T5V-3
14、V逻辑ii0ff:+3V15V2 .传输距离W30m,通信速率20Kbps3 .接口9芯、25芯地线、发送数据线、接收数据线SCI的外围硬件电路SCI的根本编程原理SCI的主要功能是:接收时,把外部的单线输入的数据变成一个字节的并行数据送入MCU内部;发送时,把需要发送的一个字节的并行数据转换为单线输出。SCI波特率存放器根据波特率设置存放器的公式:BR=fBUS(16Bt)举例:总线频率fBUS=19.6608MHz,定义波特率Bt=9600(针对SCIO)SCI0BDL=0x80;须先给低8位赋值Sciobdh=OxOO;再给高5位赋值SCI控制存放器1缩写:SCIOCRRSCI1CR1位
15、定义:举例:设置允许SCI、正常码输出、8位数据、无校验Sciocri=OxOO;SCI控制存放器2缩写:SCI0CR2SCI1CR2位定义:举例:设置允许发送、允许接收,查询方式收发SCI0CR2=0x0C;SCI状态存放器1缩写:SCIOSR1SCI1SR1位定义:只读常用:D7=l:可以发送数据;D7=0:不可以发送数据,需等待D5=l:可以取出数据;D5=0:不可以取出数据,需等待SCI状态存放器2缩写:SCI0SR2SCI1SR2位定义:只读常用:DO=I:正在接收数据;SCI数据存放器缩写:SCIODRHSCIODRL、SCIlDRH、SCI1DRL位定义:SCI初始化发送一个数据
16、与接收一个数据串行通信子函数SCLh:串行通信头文件串行通信存放器及标志位定义串行通信相关函数声明SCIInit.c:串行口SClO初始化函数voidSCIInit(void)SCI.c:串行发送与接收通用子函数voidSCISendl(INT8Uo)voidSCISendN(INT8Un,INT8Uch)INT8USCIRel(INT8U*p)INT8USCIReN(INT8Un,INT8Uch)5.5.2查询方式收发测试工程查询方式收发测试工程主函数文件main,c中断方式测试工程辅助工具中断方式HCSI2C语言主程序串行中断子函数声明(isr.h)ttifndefISRJ防止重复定义de
17、fineISRJvoidISR_Receive(void);/接收中断函数声明void_attribute_(interrupt)ISR_Empty(void);void_start(void);/复位函数(StartCode.s中定义,特殊)芯片开关总中断的宏定义defineENABLE,INTERRUPTS_asm_Ccli)开中断#defineDISABLE,INTERRUPTS_asm_(,zsei)关中断开关各模块中断的宏定义开放或禁止SCIO的接收中断的宏定义defineEnableSCIReIntSCI0CR2=0x20开放SCIo接收中断defineDisableSCIReIn
18、tSCI0CR2&=OxDF禁止SClo接收中断ttendif串行中断函数(isr.c)/ISR_Receive:SCIO接收中断函数void_attribute_(interrupt)ISR_Receive(void)(INT8Ui;INT8USeriaIBUff1;存放接收数据的数组Disablejnterrupts;关总中断i=SCIReN(IjSerialBuff);等待接收1个数据if(i=0)SCISendN(l,SerialBuff);发送接到的数据ENABLE_INTERRlJPTS;开总中断)ISR_Empty:空中断函数定义void_attribute_(interrupt
19、)ISR_Empty(void)()将串口端用作电源5.6.2握手5.6.3唤醒功能空闲线唤醒地址标志唤醒键盘模型及接口键盘模型(通、断)键盘接口:独立式键盘、矩阵式键盘键盘的根本问题键的识别抖动问题重键问题键值计算方法(以符号“1为例)键盘函数定义头函数(KBh)键盘扫描识别存放器及标志位定义#defineKB_PPTH键盘接在PTH口上#defineKB_DDDRH相应的方向存放器#defineKB_PEPERH相应的上拉下拉电阻允许存放器#defineKB_PSPPSH相应的极性选择存放器#defineKB_IEPIEH相应的中断允许存放器#defineKB_IFPIFH相应的中断标志存
20、放器/键盘扫输识别函数声明voidKB_Init(void);/键盘初始化INT8UKB_Scanl(void);扫描读取键值INT8UKB_Def(INT8UKB_valve);键值转为定义值INT8UKB_ScanN(INT8UKB_count);屡次扫描键盘6.2.2 键盘函数定义(KBc)键盘初始化的函数voidKB_Init(void)扫描一注读取键值的函数INT8UKB_Scanl(void)扫描KB_count次读取键值的函数INT8UKB_ScanN(INT8UKB_count)将键值KB_valve转为定义殖的函数INT8UKB_Def(INT8UKB_valve)6.2.3
21、 测试工程的主函数(main,c)扫描法LED显示编程原理8段数码管由8个发光二极管(LED)组成需有8位(即1个字节)数据来控制各个位段的亮灭扫描法LED显示编程原理接口实例数码管HCSl2C语言实例LLED函数定义头文件(LED.h)2 .LED函数定义文件(LED.c)4连排LED初始化函数voidLEDInit(void)在4连排LED上显示以Buf为首地址的4个数据voidLEDShow(INT8U*Buf)在第i个LED上显示数字cvoidLEDShowl(INT8Ui,INT8Uc)3 .测试工程的主函数(main.c)第1步:禁止总中断第2步:芯片初始化第3步:SCl模块初始化
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 系统 使用 HCS12 控制器 设计 应用
链接地址:https://www.desk33.com/p-946944.html