1、内容提要单 片 微 型 计 算 机 简 称 单 片 机 , 是 典 型 的 嵌 入 式 微 控 制 器 , 常 用 英 文 字 母的 缩 写 MCU 表 示 单 片 机 , 它 最 早 是 被 用 在 工 业 控 制 领 域 。 单 片 机 由 芯 片 内仅 有 CPU 的 专 用 处 理 器 发 展 而 来 。 最 早 的 设 计 理 念 是 通 过 将 大 量 外 围 设 备 和CPU 集 成 在 一 个 芯 片 中 , 使 计 算 机 系 统 更 小 , 更 容 易 集 成 进 复 杂 的 而 对 体 积要 求 严 格 的 控 制 设 备 当 中 。单 片 机 又 称 单 片 微 控 制
2、 器 ,它 不 是 完 成 某 一 个 逻 辑 功 能 的 芯 片 ,而 是 把 一个 计 算 机 系 统 集 成 到 一 个 芯 片 上 。 相 当 于 一 个 微 型 的 计 算 机 , 和 计 算 机 相 比 ,单 片 机 只 缺 少 了 I/O 设 备 。 概 括 的 讲 : 一 块 芯 片 就 成 了 一 台 计 算 机 。 它 的 体积 小 、 质 量 轻 、 价 格 便 宜 、 为 学 习 、 应 用 和 开 发 提 供 了 便 利 条 件 。 同 时 , 学习 使 用 单 片 机 是 了 解 计 算 机 原 理 与 结 构 的 最 佳 选 择 。单 片 机 是 靠 程 序 运
3、行 的 , 并 且 可 以 修 改 。 通 过 不 同 的 程 序 实 现 不 同 的 功 能 ,尤 其 是 特 殊 的 独 特 的 一 些 功 能 , 这 是 别 的 器 件 需 要 费 很 大 力 气 才 能 做 到 的 ,有 些 则 是 花 大 力 气 也 很 难 做 到 的 。 一 个 不 是 很 复 杂 的 功 能 要 是 用 美 国 50年 代 开 发 的 74 系 列 , 或 者 60 年 代 的 CD4000 系 列 这 些 纯 硬 件 来 搞 定 的 话 ,电 路 一 定 是 一 块 大 PCB 板 ! 但 是 如 果 要 是 用 美 国 70 年 代 成 功 投 放 市 场
4、 的 系列 单 片 机 , 结 果 就 会 有 天 壤 之 别 ! 只 因 为 单 片 机 的 通 过 你 编 写 的 程 序 可 以 实现 高 智 能 , 高 效 率 , 以 及 高 可 靠 性 !目 前 单 片 机 渗 透 到 我 们 生 活 的 各 个 领 域 , 几 乎 很 难 找 到 哪 个 领 域 没 有 单 片机 的 踪 迹 。 导 弹 的 导 航 装 置 , 飞 机 上 各 种 仪 表 的 控 制 , 计 算 机 的 网 络 通 讯 与数 据 传 输 , 工 业 自 动 化 过 程 的 实 时 控 制 和 数 据 处 理 , 广 泛 使 用 的 各 种 智 能IC 卡 , 民
5、用 豪 华 轿 车 的 安 全 保 障 系 统 , 录 像 机 、 摄 像 机 、 全 自 动 洗 衣 机 的控 制 , 以 及 程 控 玩 具 、 电 子 宠 物 等 等 , 这 些 都 离 不 开 单 片 机 。 更 不 用 说 自 动控 制 领 域 的 机 器 人 、 智 能 仪 表 、 医 疗 器 械 以 及 各 种 智 能 机 械 了 。所 以 说 对 于 单 片 机 课 程 的 学 习 对 于 我 们 电 子 信 息 工 程 专 业 的 学 生 来 说 至关 重 要 , 然 而 学 习 单 片 机 课 程 设 计 是 其 一 个 极 为 重 要 的 实 践 环 节 , 无 论 是硬
6、 件 扩 展 、 接 口 应 用 还 是 编 程 方 法 、 程 序 调 试 , 都 离 不 开 该 环 节 。 单 片 机 课程 设 计 过 程 中 , 学 生 通 过 查 阅 资 料 、 接 口 设 计 、 程 序 设 计 、 安 装 调 试 等 环 节 ,完 成 一 个 涉 及 MCS-51 单 片 机 多 种 资 源 应 用 并 具 有 综 合 功 能 的 小 系 统 目 标 板的 设 计 与 编 程 应 用 。 通 过 该 环 节 , 学 生 不 但 能 够 将 课 堂 上 学 到 的 理 论 知 识 与实 际 应 用 结 合 起 来 , 而 且 能 够 对 电 子 电 路 、 电
7、子 元 器 件 等 方 面 的 知 识 进 一 步加 深 认 识 , 同 时 在 软 件 编 程 、 排 错 调 试 、 焊 接 技 术 、 相 关 仪 器 设 备 的 使 用 技能 等 方 面 得 到 全 面 的 锻 炼 和 提 高 。目录一、课程设计目的: .5二、已知技术参数和条件 .5三、设计任务和要求 .5四、需求分析 .6五、硬件电路图设计及描述 .7六、软件设计思想及流程 .10七、实验效果 .13八、源程序代码 .16九、课程设计体会 .30十、参考文献 .31一、课程设计目的:通过课程设计,使学生巩固和加深对单片机基本知识的理解,能够将课堂上学到的理论知识与实际应用结合起来,
8、而且能够对电子电路、电子元器件等方面的知识进一步加深认识,同时在软件编程、排错调试、焊接技术、相关仪器设备的使用技能等方面得到全面的锻炼和提高。学会查寻资料、方案设计、方案比较,以及单元电路设计计算等环节,进一步提高学生综合运用所学知识的能力,提高分析解决实际问题的能力。锻炼分析、解决电子电路问题的实际本领,通过此综合训练,为以后毕业设计打下一定的基础。二、已知技术参数和条件(1)STC89C51 单片机(2)LED 七段数码显示器 及 8 个 LED 小彩灯(3)74HC595 串口转并口芯片(4)电位器(5)按键 (6) PCF8591 AD-DA 数模转换芯片(7)电阻箱,5V 电源,
9、电阻若干 ,导线若干(8)KEIL 软件(9)MCS-51 单片机官方烧写程序软件 STC_ISP_V488.exe三、设计任务和要求1 通过单片机的 I/O 口直接控制 8 盏 LED 小灯,实现 7 种彩灯灯光效果(左移、右移、中间向两边展开、两边向中间合拢等,不含全部点亮,全部熄灭);2.用按键来切换控制器的灯光模式,能显示当前的运行模式号;3彩灯效果的移动速度基于 AD 输入量的大小(控制器通过 PCF8591 对 05V 信号进行采样,根据模拟信号的大小而改变彩灯移动速度);彩灯控制器还要显示当前模拟输入信号的大小(数码管显示);4彩灯效果中的延时采用定时中断实现。按键、数码管直接用
10、 C51 的 I/O驱动扩展:可以通过串口通讯芯片 595 来控制彩灯效果的切换,将 AD 采样结果显示的数码管上。四、需求分析根据本次课程设计题目分析及其题目简化,需要做的是通过电位器来控制8 盏彩灯的扫描显示速度,并且显示此时 AD 芯片的采样值,并且通过一个按键来切换不同的彩灯的 7 种显示模式。于是乎,可以将系统分为两个部分:其一,模拟采样部分;其二,彩灯显示部分。单片机按键输入电路时钟电路复位电路数码管显示电路LED 显示电路模拟采样转换输入最后得到以下的设计方案:通过一个电位器来得到一个可以改变的模拟值; 1采用 PCF8591 采样电位器所产生的模拟值,并将其转化为数字信号; 2
11、MCU 通过 I2C 总线读取 PCF8951 内部 ROM 中所缓存的数值; 3编写数码管显示函数,通过单片机的 I/O 口驱动数码管显示 PCF8591 4所采样的值。(数码管高四位显示 PCF8591 所采样的数值,低四位显示当前PCF8591 所采取的精确电压值,精确到小数点后三位);编写 LED 彩灯的显示,利用定时器 0 来控制每一盏小灯的显示延迟时 5间,利用定时器 1 和 pcf8591 所采样的数字信号来共同确定 LED 彩灯的扫描速度,即通过调节电位器可以改变 LED 灯的扫描速度(通过的 I/O 驱动74HC595 芯片实现串口转并口来驱动 8 个 LED 小彩灯的显示)
12、;采用外部中断 0 来切换 LED 彩灯的显示模式。 6五、硬件电路图设计及描述注:电路图原图另有 PDF 文件1、数码管显示电路设计课程设计中所用的数码管为共阴极数码管,当给其引脚加入高电平时,数码管中对应的那一段就亮。下图为外部显示图,其内部结构如下:共阴极数码管内部结构2、LED 显示电路设计本次课程设计中要用发光二极管显示状态。由下图知发光二极管阳极经过电阻接高电平,当其阴极为低电平时,二极管就发光显示所处状态。通过串口转并口芯片 74HC595 的并口输出来改变 LED 灯的显示状态。3、AD 转换电路设计此次课程设计的 AD 转换芯片采用的是 PCF8591 芯片,芯片的 9、10
13、 管脚是 I2C 串口协议传输引脚,其与 MCU 的 P20、P21 接口连接。A0、A1、A2 为地址线,此处接地,地址为 I2C 传输数据的地址为 000。四路模拟输入接口为 AIN0、AIN1 、AIN2、AIN3 ,此处只选择一路模拟输入-AIN0。模拟输入信号通过一个电位器的改变而提供。4、时钟电路设计时钟电路对单片机是不可缺的,单片机的每个功能都要以时钟电路为基础工作。单片机内部自带一个时钟电路,外部接入定时控制元件即可构成一个稳定的自激振荡器。其中机器周期共有12个振荡脉冲周期,因此,机器周期是时钟周期的12倍。本课程设计中时钟电路中使用的晶体是12MHz,则时钟周期为(1/12
14、)us,机器周期为1us。实验图如下:5、外部中断信号电路设计 外部中断信号的是由一个简单的不带锁的按键开关提供的一个脉冲信号。六、软件设计思想及流程(1)使用单片机资源的情况:设计时使用单片机资源的情况如下:AT89S51 单片机的 P0、P1 口作为数码管数据线接口,其中,P0 口接是段选,P1 接位选,P20、P21 接 AD 转换芯片 PCF8591 的 I2C 串口接口,P34、P35、P36 口接 74HC595 的串口输入接口,P32 外接外部中断按键。单片机定时器 0、定时器 1 均匀方式 1 来控制定时器运行。(2)软件系统的各个模块功能:本设计的软件系统主要采用以下基本模块
15、来实现:主程序、中断服务程序、串口传输程序。主程序用于对于各个程序模块的运行及控制,以及各个模式程序的初始化。特别是定时中断的初始值。在主程序中还主要的对 pcf8591 进行了操作,采样,量化,显示。有三个中断服务程序,分别是定时器 0 中断、定时器 1 中断、外部中断,通过外部中断来实现各个 LED 灯的显示模式的切换。定时器中断 0 用于控制LED 灯的显示延时。定时器 1 用于操作 LED 灯的不同模式的显示。串口传输程序只要有两种串口传输函数,分别 I2C 串口传输函数和 595 串口转并口的串口传输函数。在串口函数里面详细的对串口进行了操作,里面有I2C 串口的初始化,终止,数据传输,应答,595 串口的传输。(3)设计的软件流程框图:T0T1定时器 中断 外部 中断无中断开始进入主程序定时器 0、1 开始计时While(1)AD 芯片采样、量化数码管显示改变 LED 灯的显示模式改变 8 个 LED灯的显示状态结束 LED 灯显示延时调整 LED 扫描速度LED 灯显示