ImageVerifierCode 换一换
格式:DOCX , 页数:68 ,大小:1.89MB ,
资源ID:3280436      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3280436.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(使用HCS12微控制器的设计与应用.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

使用HCS12微控制器的设计与应用.docx

1、使用HCS12微控制器的设计与应用1.1.1 嵌入式系统与单片机 嵌入式系统的由来(通用计算机系统、嵌入式计算机系统) 单片机的含义 MCU与嵌入式系统的关系 1.1.2 MCU的发展简史 发展趋势 大容量、高性能化 小容量、低价格化 外围电路内装化 8位16位32位64位 1.2.1 与硬件相关的术语 封装(Package) 印刷电路板(PCB) 动态可读/写随机存储器(DRAM) 静态可读/写随机存储器(SRAM) 只读存储器(ROM) Flash存储器(Flash Memory) 模拟量 开关量 1.2.2 与通信相关的术语 并行通信 串行通信 串行外设接口(SPI) 集成电路互连总线I

2、2C 通用串行总线USB 控制器局域网CAN 背景调试模式BDM 边界扫描测试协议JTAG 1.2.3 与功能模块相关的术语 通用输入/输出GPIO A/D与D/A 脉冲宽度调制器PWM 看门狗 液晶显示器LCD 发光二极管LED 键盘 1.2.4 与嵌入式软件相关的术语 中断 中断服务程序 实时操作系统RTOS C/OS-II 临界区1.3.1 嵌入式产品的一般构成 1.3.2 嵌入式产品的一般开发方法 1基本输入/输出分析 2选择MCU的基本方法 3选择评估系统并对与MCU相关的硬件进行初步评估 4设计并制作硬件系统 5进行硬件系统的模块测试 6软件系统设计 7系统测试 8进一步工作 1.

3、4.1 嵌入式系统的特点 资源受限 开发需要专用工具和特殊方法 要求较高可靠性和稳定性 有实时约束 通常极其关注成本 大多要求低功耗 专用性很强 技术含量高 具有很长生命周期 1.4.2 嵌入式系统的学习建议 明确学习的目的 选择好入门的机型 必要的记忆 勤于实践 学习各种接口的原理 与时俱进,不断改进自己的学习方式 从底层抓起,一点一滴打好基础2.1.1 Freescale HCS12系列MCU的命名规则 MC 9 S12 D 256B E :产品状态 :存储器类型标志 :CPU标志 :系列标志 :存储空间大小及版本 :工作温度范围标志 :封装标志 :无铅组装标志 2.1.2 HCS12各子

4、系列MCU简介 系列 B系列 C系列 A系列 D系列 E系列 GC系列 H系列 NE系列 Q系列 T系列 UF系列 相同点 工作电压一般为5V 不同点 ROM大小 RAM大小 EEPROM大小 Flash容量 I/O口数 串行借口 A/D转换器2.1.1 Freescale HCS12系列MCU的命名规则 MC 9 S12 D 256B E :产品状态 :存储器类型标志 :CPU标志 :系列标志 :存储空间大小及版本 :工作温度范围标志 :封装标志 :无铅组装标志 2.1.2 HCS12各子系列MCU简介 系列 B系列 C系列 A系列 D系列 E系列 GC系列 H系列 NE系列 Q系列 T系列

5、 UF系列 相同点 工作电压一般为5V 不同点 ROM大小 RAM大小 EEPROM大小 Flash容量 I/O口数 串行借口 A/D转换器2.3.1 MCU性能概述 1时钟和复位产生模块、存储器与封装形式 2丰富的I/O接口 2.3.2 运行模式 1单片运行模式 2扩展运行模式 2.3.3 内部结构简图、引脚图及引脚功能 80引脚 112引脚 2.3.4 MC9S12DG128 MCU的最小系统设计 2.4 MC9S12DG128 的存储器映像 2.5.1 I/O接口的基本概念 2.5.2 A口、B口、E口和K口 数据方向寄存器 分别为DDRA、DDRB、DDRE、DDRK 0:定义输入 1

6、:定义输出 I/O寄存器 分别为PORTA、PORTB、PORTE、PORTK 输出时,0:输出低电平 1:输出高电平 输入时,0:外部输入低电平 1:外部输入高电平 上拉电阻控制寄存器 PUCR 四口共用 0:没有内部上拉电阻 1:有内部上拉电阻 2.5.3 H口、J口、M口、P口、S口和T口 1. 端口的寄存器 数据方向寄存器 I/O寄存器 输入寄存器 低功耗驱动寄存器 0:输出功耗正常 1:输出功耗为正常的1/6 上拉下拉使能寄存器 0:禁用上拉或下拉电阻 1:允许上拉或下拉电阻 上拉下拉选择寄存器 0:上拉 1:下拉 2. 端口的复用功能 T口:接收输入捕捉功能 S口:SCI、SPI模

7、块关联作为通信接口 M口:与ByteFlight、BDLC、CAN、SPI模块关联作为通信接口 P口:与PWM、SPI模块关联作为通信接口 H口:与SPI模块关联作为通信接口 J口:与CAN、IIC模块关联作为通信接口 2.5.4 其他I/O口 A/D口: 作为AD转换模块的模拟量输入口和外界触发脉冲的输入口 也可以做为普通输入口 3.1 CPU12基本组成 3.2 寻址方式 1.内在寻址方式(INH) 2.立即寻址方式(IMM) 3.直接寻址方式(DIR) 4.扩展寻址方式(EXT) 5.相对变址寻址方式(REL) 6.变址寻址方式(IDX) 7.5位偏移量变址方式 8.9位偏移量变址方式

8、9.16位偏移量变址方式 10.16位间接变址方式 11.自增自减变址寻址方式 12.累加器偏移变址寻址方式 13.累加器D间接寻址 3.3 指令系统 1算术运算(加、减、乘、除、加1、减1、) 2逻辑运算(与、或、异或、) 3位操作(位测试、置位、) 4移位(算术/逻辑/循环左/右移、) 5程序控制(转移、比较相等转移、) 6模糊指令 7数据传送(取数、存数、进栈、出栈、) 8其他指令 3.3.1 数据传送类指令 取数指令 存数指令 传递指令 交换指令 MOVE指令 堆栈指令 3.3.2 算术运算类指令 加、减法指令 自增、自减指令 比较指令 测试指令 逻辑运算指令 清零指令 取反/求补指令

9、 乘/除法指令 最大/最小值指令 乘积累加指令 记忆标志位: C 进/借位标志 V 溢出标志 H 加法半字节进位标志 N 正负标志位 Z 零标志位 3.3.3 位操作类指令 位测试指令BITA、BITB 位置1指令BSET 位清零指令BCLR 3.3.4 移位类指令 算术左移(ASL) 逻辑左移(LSL) 算术右移(ASR) 逻辑右移(LSR) 循环左移(ROL) 循环右移(ROR) 协助记忆: 算术:Arithmetic 逻辑:Logic 左:Left 右:Right 循环:Rotate 3.3.5 程序控制类指令 短转移指令(地址偏移量:-128 +127) 长转移指令(地址偏移量:-32

10、768 +32767) 位条件转移指令(地址偏移量:-128 +127) BRCLR BREST 循环控制指令 跳转指令 无条件转移JMP 绝对转移调用JSR 相对转移调用BSR 3.3.6 模糊指令 MEM REV REVW WAV 3.3.7 其他指令 表插补指令 中断指令 变址操作指令 指针和变址计算指令 条件码指令 停止与等待模式指令 后台模式与空操作 3.4 CPU12与CPU08的比较 3.5.1 HCS12汇编源代码格式 基本概念 编译器 伪指令 语句元素 标号 操作码 操作数(常数、#、圆点) 注释 3.5.2 MT-IDE for HCS12开发环境中的汇编伪指令 变量定义

11、A1: .balign 1 A2: .balignw 1 数字常数与字符串常数定义 常数赋值与文本替代符伪指令 .define PI=3.14 存储定位伪指令 文件包含伪指令 .include 3.5.3 CodeWarrior for HCS12开发环境中的汇编伪指令 变量定义 LABEL1: DS.B 1 LABEL2: DS.W 1 数字常数与字符串常数定义 常数赋值与文本替代符伪指令 PI: EQU 3.14 存储定位伪指令 文件包含伪指令 INCLUDE MT-IDE for HCS12集成开发环境 简称MT环境 Freescale公司 Code Warrior for HCS12集

12、成开发环境 简称CW环境 4.1.1 MT-IDE for HCS12集成开发环境 4.1.2 Code Warrior for HCS12集成开发环境 4.2.1 嵌入式系统工程文件组织 4.2.2 列表文件(*.LIS或*.LST) 列表文件的行内容格式: 4.2.3 目标代码文件(*.S19) 目标代码文件是以S记录(八种)格式表示的机器码文件 4.2.4 与链接相关的地址信息文件 4.3.1 小灯闪烁汇编工程在MT环境下的文件组织 1与芯片相关的程序文件 DG128ASM.h - 定义芯片映像寄存器名 Vector.s - 定义中断向量表 Isr.s - 中断处理子程序 Start12

13、.s - 系统启动文件 MCUInit.h - 芯片初始化头文件 MCUInit.s - 芯片初始化文件 2硬件对象控制文件 LED.h 小灯控制引脚宏定义 包含小灯驱动所需头文件 小灯控制引脚宏定义 小灯驱动子程序声明 LED.s 小灯驱动子程序 定义子程序LEDInit:初始化 定义子程序LED_L_A:驱动小灯亮,暗 3通用程序文件 Includes.h 总头文件 工程中用到的头文件 有关常量命名 GeneralFun.s 通用子程序 定义子程序DelayX:延时 4主程序文件 main.s 主程序 工程描述 包含总头文件 主程序 内部直接调用子程序 子程序编写规范(以 LED.s 为例

14、) 4.3.2 MT环境下第一个汇编工程的链接信息文件 链接信息文件linker.ld 链接有两种模式 内存直接模式 内存扩展模式 4.3.3 MT环境下第一个汇编工程的执行过程 4.4.1 小灯闪烁C工程在MT环境下的文件组织 4.4.2 MT环境下第一个C工程的链接信息文件 链接信息文件linker.ld 内容与汇编链接信息相同 4.4.3 MT环境下第一个C工程的执行过程 4.5.1 小灯闪烁汇编工程在CW环境下的文件组织 4.5.2 CW环境下第一个汇编工程中的链接信息文件 4.5.3 CW环境下第一个汇编工程的执行过程 4.6.1 小灯闪烁C工程在CW环境下的文件组织 4.6.2 C

15、W环境下第一个C工程中的链接信息文件 4.6.3 CW环境下第一个C工程的执行过程4.6.1 小灯闪烁C工程在CW环境下的文件组织 4.6.2 CW环境下第一个C工程中的链接信息文件 4.6.3 CW环境下第一个C工程的执行过程映像寄存器名 C工程中调用汇编语句的格式 中断函数的声明5.1.1 基本概念 1.异步串行通信的格式(NRZ) 2.串行通信的波特率 定义:每秒内传送的位数。 单位:b/s或bps 常用:1200bps、4800bps、9600bps 3.奇偶校验 奇校验:校验位为0或1,使得1的数目是奇数 偶校验:校验位为0或1,使得1的数目是偶数 4.串行通信的传输方式 单工:1根

16、数据线 全双工:2根数据线 半双工:1根数据线 5.1.2 RS-232C总线标准 1.采用负逻辑 逻辑“1”:-15V-3V 逻辑“0”:+3V+15V 2.传输距离30m,通信速率20Kbps 3.接口 9芯、25芯 地线、发送数据线、接收数据线 5.2.1 SCI的外围硬件电路 5.2.2 SCI的基本编程原理 SCI的主要功能是: 接收时,把外部的单线输入的数据变成一个字节的并行数据送入MCU内部; 发送时,把需要发送的一个字节的并行数据转换为单线输出。 5.3.1 SCI波特率寄存器 根据波特率设置寄存器的公式:BR=fBUS/(16Bt) 举例:总线频率fBUS19.6608MHz

17、, 定义波特率Bt=9600(针对SCI0) SCI0BDL=0x80; /须先给低8位赋值 SCI0BDH=0x00; /再给高5位赋值 5.3.2 SCI控制寄存器1 缩写:SCI0CR1、SCI1CR1 位定义: 举例:设置允许SCI、正常码输出、8位数据、无校验 SCI0CR1=Ox00; 5.3.3 SCI控制寄存器2 缩写:SCI0CR2、SCI1CR2 位定义: 举例:设置允许发送、允许接收,查询方式收发 SCI0CR2=0x0C; 5.3.4 SCI状态寄存器1 缩写:SCI0SR1、SCI1SR1 位定义:只读 常用: D7=1:可以发送数据;D7=0:不可以发送数据,需等待

18、 D5=1:可以取出数据;D5=0:不可以取出数据,需等待 5.3.5 SCI状态寄存器2 缩写:SCI0SR2、SCI1SR2 位定义:只读 常用: D0=1:正在接收数据; 5.3.6 SCI数据寄存器 缩写:SCI0DRH、SCI0DRL、SCI1DRH、SCI1DRL 位定义: 5.4.1 SCI初始化 5.4.2 发送一个数据与接收一个数据 5.5.1 串行通信子函数 SCI.h:串行通信头文件 串行通信寄存器及标志位定义 串行通信相关函数声明 SCIInit.c:串行口SCI0初始化函数 void SCIInit(void) SCI.c:串行发送与接收通用子函数 void SCIS

19、end1(INT8U o) void SCISendN(INT8U n,INT8U ch) INT8U SCIRe1(INT8U *p) INT8U SCIReN(INT8U n,INT8U ch) 5.5.2 查询方式收发测试工程 查询方式收发测试工程主函数文件main.c 中断方式测试工程辅助工具 中断方式HCS12 C语言主程序 串行中断子函数声明(isr.h) #ifndef ISR_H /避免重复定义 #define ISR_H void ISR_Receive(void); /接收中断函数声明 void _attribute_ (interrupt) ISR_Empty(void)

20、; void _start(void); /复位函数(StartCode.s中定义,特殊) /芯片开关总中断的宏定义 #define ENABLE_INTERRUPTS _asm_( cli) /开中断 #define DISABLE_INTERRUPTS _asm_( sei) /关中断 /开关各模块中断的宏定义 /开放或禁止SCI0的接收中断的宏定义 #define EnableSCIReInt SCI0CR2 |= 0x20 /开放SCI0接收中断 #define DisableSCIReInt SCI0CR2 &= 0xDF /禁止SCI0接收中断 #endif 串行中断函数(isr.

21、c) /ISR_Receive:SCI0接收中断函数 void _attribute_ (interrupt) ISR_Receive(void) INT8U i; INT8U SerialBuff1; /存放接收数据的数组 DISABLE_INTERRUPTS; /关总中断 i = SCIReN(1,SerialBuff); /等待接收1个数据 if (i = 0) SCISendN(1,SerialBuff); /发送接到的数据 ENABLE_INTERRUPTS; /开总中断 /ISR_Empty:空中断函数定义 void _attribute_ (interrupt) ISR_Empt

22、y(void) 5.6.1 将串口端用作电源 5.6.2 握手 5.6.3 唤醒功能 空闲线唤醒 地址标志唤醒6.1.1 键盘模型及接口 键盘模型(通、断) 键盘接口:独立式键盘、矩阵式键盘 6.1.2 键盘的基本问题 键的识别 抖动问题 重键问题 键值计算方法(以符号“1”为例) 6.2.1 键盘函数定义头函数(KB.h) /键盘扫描识别寄存器及标志位定义 #define KB_P PTH /键盘接在PTH口上 #define KB_D DDRH /相应的方向寄存器 #define KB_PE PERH /相应的上拉下拉电阻允许寄存器 #define KB_PS PPSH /相应的极性选择寄

23、存器 #define KB_IE PIEH /相应的中断允许寄存器 #define KB_IF PIFH /相应的中断标志寄存器 /键盘扫描识别函数声明 void KB_Init(void); /键盘初始化 INT8U KB_Scan1(void); /扫描读取键值 INT8U KB_Def(INT8U KB_valve); /键值转为定义值 INT8U KB_ScanN(INT8U KB_count); /多次扫描键盘 6.2.2 键盘函数定义(KB.c) 键盘初始化的函数 void KB_Init(void) 扫描一次读取键值的函数 INT8U KB_Scan1(void) 扫描KB_co

24、unt次读取键值的函数 INT8U KB_ScanN(INT8U KB_count) 将键值KB_valve转为定义值的函数 INT8U KB_Def(INT8U KB_valve) 6.2.3 测试工程的主函数(main.c) 6.3.1 扫描法LED显示编程原理 8段数码管由8个发光二极管(LED)组成 需有8位(即1个字节)数据来控制各个位段的亮灭 6.3.1 扫描法LED显示编程原理 6.3.2 接口实例 6.3.3 数码管HCS12 C语言实例 1. LED函数定义头文件(LED.h) 2. LED函数定义文件(LED.c) 4连排LED初始化函数 void LEDInit(void

25、) 在4连排LED上显示以Buf为首地址的4个数据 void LEDShow(INT8U *Buf) 在第i个LED上显示数字c void LEDShow1(INT8U i, INT8U c) 3. 测试工程的主函数(main.c) 第1步:禁止总中断 第2步:芯片初始化 第3步:SCI模块初始化、LED控制引脚初始化 第4步:LED初始显示“0123” 第5步:开放SCI接收中断 第6步:开放总中断 第7步:若正确收到数据,刷新显示缓冲区 第8步:转第7步 6.4.1 LCD的特点 低电压微功耗 平板型结构 使用寿命长 被动显示 显示信息量大且易于彩色化 无电磁辐射 6.4.2 LCD的分类

26、 按电光效应分类 电场效应类 电流效应类 电热写入效应类 热效应类 按显示内容分类 字段型 点阵字符型 点阵图形型 按LCD的采光方式分类 带背光源 不带背光源6.5.1 点阵字符型液晶显示模块的基本特点 字符群:58或511点阵块 主控制电路:HD44780 内部具有字符发生器 自定义字符RAM 数据显示RAM 标准接口特性 模块结构紧凑、轻巧、装配容易。 单+5V电源供电 低功耗、高可靠性。 6.5.2 HD44780的引脚与时序-引脚 6.5.3 HD44780的编程结构 1指令寄存器(IR) 2数据寄存器(DR) 3忙标志(BF) 4地址计数器(AC) 5显示数据寄存器(DD RAM)

27、 6字符发生器ROM(CG ROM) 7字符发生器RAM(CG RAM) 6.5.4 HD44780的指令集 点阵字符型 LCD 编程 6.6.1 LCD函数定义头文件(LCD.h) 液晶显示寄存器及标志位定义 液晶显示相关函数声明 6.6.2 LCD函数定义(LCD.c) 初始化LCD函数 void LCDInit(void) HD44780显示屏显示str所指向的32个数据 void LCDShow(INT8U str) 执行给定的cmd命令,且延时 void LCD_Command(unsigned char cmd) 6.6.3 测试工程的主函数(main.c) 第1步:定义初始显示缓

28、存并赋初值 第2步:禁止总中断 第3步:芯片初始化 第4步:串行口初始化、LCD初始化 第5步:开放总中断 第6步:LCD显示初始化 第7步:若正确收到32个数据,则显示到LCD 第8步:转第7步 7.1.1 功能描述 7.1.2 SPI模块的I/O引脚 从机选择引脚 主出从入引脚MOSI 主入从出引脚MISO SPI串行时钟引脚SPSCK 7.2.1 SPI模块的寄存器 7.2.2 SPI编程基本方法 SPI初始化 第1步:写控制字到SPICR,确定是否允许SPI接收中断、SPI的工作方式、时钟极性、时钟相位、是否允许SPI等。 第2步:写控制字到SPISCR,确定SPI的波特率。 发送与接

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1