单片机(飞思卡尔)课程设计.doc_第1页
单片机(飞思卡尔)课程设计.doc_第2页
单片机(飞思卡尔)课程设计.doc_第3页
单片机(飞思卡尔)课程设计.doc_第4页
单片机(飞思卡尔)课程设计.doc_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

课课 程程 设设 计计 报报 告告 课程设计名称 课程设计名称 系系 学生姓名 学生姓名 班班 级 级 学学 号 号 成成 绩 绩 指导教师 指导教师 开课时间 开课时间 学年学年 学期学期 目目 录录 第一章第一章 系统概要系统概要 1 1 1 系统背景系统背景 1 第二章第二章 系统硬件设计系统硬件设计 2 2 1 系统原理图系统原理图 2 2 2 单片机 单片机 MCU 模块 模块 3 2 2 1 MC9S08AW60 单片机性能概述 3 2 2 2 内部结构简图 3 2 3 串行通信模块串行通信模块 4 2 3 1 MAX232 引脚图 4 2 3 2 串行通信的电路原理 5 2 4 液晶显示模块液晶显示模块 6 第三章第三章 系统软件设计系统软件设计 8 3 1 MCU 方 方 C 程序 程序 8 3 1 1 串行通信子程序 14 3 1 2 LCD 子程序 18 第四章第四章 系统测试系统测试 21 第五章第五章 总结展望总结展望 24 5 1 总结总结 24 5 2 展望展望 24 参考文献参考文献 24 1 第一章第一章 系统概要系统概要 1 1 系统背景系统背景 单片机 MCU 的基本定义是 在一块芯片上集成了中央处理器 CPU 存储器 RAM ROM 等 定时器 计数器及多种输入输出 I O 接口的比较完 整的数字处理系统 单片机自 1976 年由 Intel 公司推出 MCS 48 开始 迄今已 有二十多年了 由于单片机集成度高 功能强 可靠性高 体积小 功耗地 使用方便 价格低廉等一系列优点 目前已经渗入到人们工作和生活的方方面 面 几乎 无处不在 无所不为 单片机的应用领域已从面向工业控制 通讯 交通 智能仪表等迅速发展到家用消费产品 办公自动化 汽车电子 PC 机外 围以及网络通讯等广大领域 Freescale 的 S08 系列 8 位 MCU 由于稳定性高 开发周期短 成本低 型 号多样 兼容性好被广泛应用 HC08 是 Freescale 的 08 系列之一 S08 表示增强 型 HC08 它是在 HC08 基础上发展起来的 兼容 HC08 系列 S08 是 2004 年 左右推出 8 位 MCU 资源丰富 功耗低 性价比很高 是 08 系列 MCU 发展 趋势 其性能与许多 16 位 MCU 相当 MC9S08AW60 是低成本 高性能 8 位微处理器 S08 家族中的成员 本次课程设计就是以该芯片为基础 来进行嵌 入式的设计 1 2 系统功能 当按下启动键 电子时钟从当前设定值开始走时 按秒刷新 要求在 LCD 屏上显示 若按启动键 则时间暂停 再按 时间继续按秒刷新 时间格式是 时 分 秒 00 00 00 通过向通用 I O 端口的引脚输入高 或低 1 或 0 电平 作为启动键 对电子钟进行控制 电子钟开始运行 暂 停和继续运行 显示数据时 先把要显示的数据送到数据寄存器中 再通过发送寄存器 将数据输入要 LCD 中显示 2 第二章第二章 系统硬件设计系统硬件设计 2 1 系统原理图系统原理图 该系统由 AW60 最小系统电路为主要结构 利用串口进行数据的控制与采集 首先将开关接在 AW60 上的 PORT D 口上 用于控制数字时钟系统的开关 然后 将 LCD 的数据线 7 14 引脚 D0 D7 分别与 MCU 的 PTA0 PTA7 连接 LCD 的控 制线 RS R W E 4 5 6 引脚 分别于 MCU 的 PTC4 PTC6 PTF6 连接 用于输 出时间 数字时钟必须要有晶振电路 所以将该晶振电路与 AW60 的 PTG5 和 3 PTG6 相连 用于时间的自加 由于在运行系统时 以防电流不稳定 所以在 PTB0 端设置一个下拉电阻 稳定电流 2 2 单片机 单片机 MCU 模块 模块 2 2 1 MC9S08AW60 单片机性能概述单片机性能概述 1 最高达 40MHz 的 CPU 工作频率和 20Hz 的内部总线工作频率表 时钟源选 项包括晶振 谐振器 外部时钟或内部产生的时钟 2 相比 HC08 CPU 指令集 S08 CPU 增加了 BGND 指令 3 单线后台调试模式接口 增强的断点能力 允许单一的断点设置在线调试 在片内调试的模块增加了多于两个的断点 4 内含 32 个中断 复位源 内含 2KB 的片内 RAM 内含 60KB 的片内在线可 编程 Flash 存储器 带有块保护和安全选项 5 可选的计算机正常操作 COP 复位 低电压检测和复位或中断 非法操 作码检测与复位 非法地址检测与复位 6 ADC 多达 16 个通道 10 位 A D 转换器与自动比较功能 两个串行通信 接口 SCI 模块与可选的 13 位中断 一个串行外设接口 SPI 模块 集成电路互连 总线 I2C 模块运作高达 100kbps 的最高总线负载 8 引脚键盘中断 KBI 模块 7 Timers 1 个 2 通道和 1 个 6 通道 16 位定时器 脉冲宽度调制器模板 具 有输入 捕捉 输出比较 脉宽调制功能 2 2 2 内部结构简图内部结构简图 1 内部结构简图 如图所示 给出了 AW60 的内部结构图 它对于我们理解和应用 AW60 MCU 有重要作用 在学习了基本有法后 应在反过来熟悉这个内部结构图 以 便更好地理解 AW60 MCU 的基本原理 从内部结构图可以看出 AW60 主要 有以下几个部分 S08 CPU 存储器 定时器接口模块 定时器模块 看门狗 模块 通用 IO 模块 串口通信模块 SCI 串行外设接口 SPI 模块 4 I2C IIC 模块 A D 转换模块 键盘中断模块 时钟发生模块 复位与中断 模块等 2 3 串行通信模块串行通信模块 2 3 1 MAX232 引脚图引脚图 在 MCU 中 若用 RS 232 总线进行串行通信 则需外接电路实现电平转换 在发送端 需要用驱动电路将 TTL 电平转换成 RS 232 电平 在接受端 需要 用接收电路将 RS 232 电平 转化为 TTL 电平 电平转换器不仅可以由晶振管 分立元件构成 也可以直接使用集成电路 目前使用 MAX232 芯片较多 该芯 片使用单一 5V 电源供电实现电平转换 如图所示 给出了 MAX232 的引脚说 明 各引脚含义简要说明如下 Vcc 16 脚 正电源端 一般接 5V GND 15 脚 地 VS 2 脚 VS 2VCC 1 5V 8 5V VS 6 脚 VS 2VCC 1 5V 11 5V C2 C2 4 5 脚 一般接 1 F 的电解电容 5 C1 C1 1 3 脚 一般接 1 F 的电解电容 在正常情况下 1 T1IN 5V 则 T1OUT 9V T1IN 0V 则 T1OUT 9V 2 将 R1IN 与 T1OUT 相连 令 T1IN 5V 则 R1OUT 5V 令 T1IN 0V 则 R1OUT 0V MAX232 芯片进行电平转换的基本原理 1 发送过程 MCU 的 TxD TTL 电平 经过 MAX232 的 11 脚 T1IN 送到 MAX232 内部 在内部 TTL 电平被 提升 为 232 电平 通过 14 脚 T1OUT 发送出去 接受过程 外部 232 电平经过 MAX232 的 13 脚 R1IN 进入到 MAX232 的内部 在内部 232 电平被 降低 为 TTL 电平 经过 12 脚 R1OUT 送到 MCU 的 RxD 进 入 MCU 内部 表 6 MAX232 芯片输入输出引脚分类与基本接法 组别TTL电平引脚方向典型接口232电平引脚方向典型接口 1 11 T1IN 12 R1OUT 输入 输出 接MCU的TxD 接MCU的RxD 13 14 输入 输出 连接到接口 与其它设备通过 232相接 2 10 T2IN 9 R2OUT 输入 输出 接MCU的TxD 接MCU的RxD 8 7 输入 输出 连接到接口 与其它设备通过 232相接 6 2 3 2 串行通信的电路原理串行通信的电路原理 从基本原理的角度看 串行通信接口 SCI 的主要功能是 接收时 把外部 的单线输入的数据变成一个字节的并行数据送入 MCU 内部 发送时 把需要 发送的一个字节的并行数据转换为单线输入 为了设置波特率 SCI 应具有波 特率寄存器 为了能够设置通信格式 是否校验 是否允许中断等 SCI 应具 有控制寄存器 而要知道串口是否有数据可收 数据是否发送出去等 需要有 SCI 状态寄存器 当然 若一个寄存器不够用 控制与状态寄存器可能有多个 而 SCI 数据寄存器存放要发送的数据 也存放接受的数据 这并不冲突 因为 发送与接收的实际工作是通过 发送移位寄存器 和 接收以为寄存器 完成 的 编程时 程序员并不直接与 发送移位寄存器 和 接收移位寄存器 打 交道 只与数据寄存器打交道 所以 MCU 中并没有设置 发送移位寄存器和 接收移位寄存器 的映像地址 发送时 程序员通过判定状态寄存器的相应 位 了解是否可以发送一个新的数据 若可以发送 则将待发送的数据放入 SCI 数据寄存器 中就可以了 剩下的工作由 MCU 自动完成 将数据从 SCI 数据寄存器 送到 发送移位寄存器 硬件驱动将 发送移位寄存器 的数据一位一位地按照规定的波特率移到发送引脚 TxD 供对方接收 接收时 7 数据一位一位地从接收引脚 RxD 进入 接收移位寄存器 当收到一个完成字 节时 MCU 会自动将数据送入 SCI 数据寄存器 并将状态寄存器的相应位 改变 供程序员判定并取出数据 2 4 液晶显示模块液晶显示模块 MCU控制液晶显示接口接线图 点阵字符型 LCD 是专门用于显示数字 字母 图形符号及少量自定义符 号的液晶显示器 这类显示器把 LCD 控制器 点阵驱动器 字符存储器 显 示体及少量的阻容元件等集成一个液晶显示模块 鉴于字符型液晶显示模块目 前在国际上已经规范化 其电特性及接口特性是统一的 因此 只要设计出一 种型号的接口电路 在指令上稍加修改即可使用各种规格的字符型液晶显示模 块 点阵字符型液晶显示模块的控制器大多数为日立公司生产的 HD44780 及 其兼容的控制电路 如 SED1278 SEIKO EPSON KS0066 SAMSUNG NJU6408 NER JAPANRADIO 等 字符型液晶显示模块的主要特点如下 1 液晶显示屏是以若干 5 8 或 5 11 点阵块组成的显示字符群 每个点阵 块为一个字符位 字符间距和行距都为一个点的宽度 2 主控制电路为 HD44780 HITACHI 及其他公司的兼容电路 从程序员 的角度来说 LCD 的显示接口与编程是面向 HD44780 的 只要了解 HD44780 LCD YM1602C 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 Core2 LCD D7 LCD D6 LCD D5 LCD D4 LCD D3 LCD D2 LCD D1 LCD D0 LCD E LCD RW LCD RS Vcc GND PTA7 PTA6 PTA5 PTA4 PTA3 PTA2 PTA1 PTA0 PTF6 PTC6 PTC4 AW60 8 的编程结构即可进行 LCD 的显示编程 3 内部具有字符发生器 ROM 可显示 192 种字符 160 个 5 7 点阵字符和 32 个 5 10 点阵字符 4 具有 64 字节的字符发生器 RAM 可以定义 8 个 5 8 点阵字符或 4 个 5 11 点阵字符 5 具有 64 字节的数据显示 RAM 供显示编程时使用 6 标准接口特性 与 MC9S08 系列 MCU 容易接口 7 模块结构紧凑 轻巧 装配容易 8 单 5V 电源供电 宽温型需要加 7V 驱动电源 9 低功耗 高可靠性 第三章第三章 系统软件设计系统软件设计 3 1 MCU 方 方 C 程序 程序 Main c include Includes h include timer h include SCI h include LCD h include GPIO h 在此添加全局变量定义 uint8 g time 8 9 uint8 g DisplayInit 8 uint8 i uint8 m define GPIO Run PORT PORT E void main void uint8 remember uint32 mRuncount 0 m 1 1 关总中断 DisableInterrupt 禁止总中断 2 芯片初始化 MCUInit 3 指示灯初始化 Light Init Light Run PORT Light Run Light OFF TPMinit TPM NUM 1 LCDinit SCIInit SCI NUM 1 SYSTEM CLOCK 9600 g time 0 0 g time 1 0 g time 2 g time 3 0 g time 4 0 g time 5 g time 6 0 g time 7 0 remember g time 7 m GPIO Get Light Run PORT 0 EnableSCIReInt EnabletimerInt TPM NUM 1 10 EnableInterrupt SCISendN SCI NUM 1 8 g time LCDshow g time 4 主循环 while 1 m GPIO Get GPIO Run PORT 0 mRuncount if mRuncount 40000 mRuncount 0 Light Change Light Run PORT Light Run if g time 7 remember SecAdd1 g time for i 0 i 2 TPMNo 2 else if TPMNo 9 p 7 0 p 6 1 if p 6 5 p 6 0 p 4 1 if p 24 p 0 if p 4 9 p 4 0 p 3 1 if p 3 5 p 3 0 p 1 1 if p 1 9 p 1 0 15 p 1 if p 1 4 p 0 3 1 1 串行通信子程序串行通信子程序 SCI h ifndef SCI H define SCI H include MC9S08AW60 h include Type h define SCI BDH x vuint8 0 x00000038 x 1 8 define SCI BDL x vuint8 0 x00000039 x 1 8 define SCI C1 x vuint8 0 x0000003A x 1 8 define SCI C2 x vuint8 0 x0000003B x 1 8 define SCI S1 x vuint8 0 x0000003C x 1 8 define SCI S2 x vuint8 0 x0000003D x 1 8 define SCI C3 x vuint8 0 x0000003E x 1 8 define SCI D x vuint8 0 x0000003F x 1 8 define EnableSCIReInt SCI1C2 SCI1C2 RIE MASK define DisableSCIReInt SCI1C2 void SCISend1 uint8 SCINo uint8 ch void SCISendN uint8 SCINo uint16 n uint8 ch uint8 SCIRe1 uint8 SCINo uint8 p uint8 SCIReN uint8 SCINo uint16 n uint8 ch void SCISendString uint8 SCINo char p endif SCI c include SCI h void SCIInit uint8 SCINo uint8 sysclk uint16 baud uint16 ubgs ubgs 0 if SCINo 2 SCINo 2 ubgs sysclk 10000 baud 100 16 SCI BDH SCINo uint8 ubgs SCI BDL SCINo uint8 ubgs SCI C1 SCINo 0b00000000 SCI C2 SCINo 0b00001100 void SCISend1 uint8 SCINo uint8 ch if SCINo 2 SCINo 2 while SCI S1 SCINo SCI D SCINo ch 17 uint8 SCIRe1 uint8 SCINo uint8 p uint16 k uint8 i if SCINo 2 SCINo 2 for k 0 k 0 xfbbb i 0 xff p 0 x01 return i void SCISendN uint8 SCINo uint16 n uint8 ch uint16 i if SCINo 2 SCINo 2 for i 0 i2 SCINo 2 while m2 SCINo 2 if p 0 return for k 0 p k 0 k SCISend1 SCINo p k 3 1 2 LCD 子程序子程序 LCD h ifndef LCD H define LCD H include MC9S08AW60 h 19 include Type h include GeneralFun h define LCDdata PTAD define LCDdataD PTADD define LCDctrl1 PTCD define LCDctrlD1 PTCDD define LCDctrl2 PTFD define LCDctrlD2 PTFDD define LcdRS 4 define LcdRW 6 define LcdE 6 void LCDinit void void LCDcommand uint8 cmd void LCDshow uint8 str endif LCD c include LCD h void LCDinit void uint16 i LCDdataD 0b11111111 LCDctrlD1 1 LcdRS LCDctrlD1 1 LcdRW LCDctrl1 LCDctrl1 LCDctrlD2 1 LcdE LCDctrl2 1 LcdRS LCDcommand 0b00111000 LCDcommand 0b00001000 LCDcommand 0b00000001 20 for i 0 i 4000 i asm NOP LCDcommand 0b00000110 LCDcommand 0b00010100 LCDcommand 0b00001100 void LCDcommand uint8 cmd uint16 i for i 0 i 1000 i asm NOP LCDdata cmd LCDctrl2 1 LcdE asm NOP asm NOP asm NOP LCDctrl2 for i 0 i 1000 i asm NOP void LCDshow uint8 str uint8 i LCDinit LCDctrl1 LCDctrl1 LCDcommand 0b00000000 LCDctrl1 1 LcdRS LCDctrl1 1 LcdRW for i 0 i 8 i LCDcommand str i 21 LCDctrl1 LCDctrl1 LCDcommand 0b11000000

温馨提示

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

评论

0/150

提交评论