单片机程设计题目PPT课件.ppt_第1页
单片机程设计题目PPT课件.ppt_第2页
单片机程设计题目PPT课件.ppt_第3页
单片机程设计题目PPT课件.ppt_第4页
单片机程设计题目PPT课件.ppt_第5页
已阅读5页,还剩124页未读 继续免费阅读

下载本文档

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

文档简介

1 课程设计题目 2020 3 21 2 目录 课程设计题目题目1智能电子钟 LCD显示 题目2电子时钟 LCD显示 题目3秒表题目4定时闹钟题目5音乐倒数计数器题目6基于数字温度传感器的数字温度计题目7基于热敏电阻的数字温度计题目8十字路口交通灯控制题目9波形发生器设计题目10电容 电阻参数单片机测试系统的设计 2020 3 21 题目11数字频率计题目128位竞赛抢答器的设计题目13单词记忆测试器程序设计题目14数字电压表设计题目15可编程作息时间控制器设计题目16节日彩灯控制器的设计题目17双机之间的串行通信设计题目18电子琴设计题目19数字音乐盒的设计题目20单片机控制步进电机题目21单片机控制直流电动机 3 2020 3 21 4 题目1智能电子钟 LCD显示 1 设计要求以AT89C51单片机为核心 制作一个LCD显示的智能电子钟 1 计时 秒 分 时 天 周 月 年 2 闰年自动判别 3 五路定时输出 可任意关断 最大可到16路 4 时间 月 日交替显示 5 自定任意时刻自动开 关屏 6 计时精度 误差 1秒 月 具有微调设置 2020 3 21 5 7 键盘采用动态扫描方式查询 所有的查询 设置功能均由功能键K1 K2完成 2 工作原理本设计采用市场上流行的时钟芯片DS1302进行制作 DS1302是DALLAS公司推出的涓流充电时钟芯片 内含一个实时时钟 日历和31字节静态RAM 可以通过串行接口与计算机进行通信 使得管脚数量减少 实时时钟 日历电路能够计算2100年之前的秒 分 时 日 星期 月 年的 具有闰年调整的能力 DS1302时钟芯片的主要功能特性 2020 3 21 6 1 能计算2100年之前的年 月 日 星期 时 分 秒的信息 每月的天数和闰年的天数可自动调整 时钟可设置为24或12小时格式 2 31B的8位暂存数据存储RAM 3 串行I O口方式使得引脚数量最少 4 DS1302与单片机之间能简单地采用同步串行的方式进行通信 仅需3根线 5 宽范围工作电压2 0 5 5V 6 工作电流为2 0A时 小于300nA 7 功耗很低 保持数据和时钟信息时功率小于1mW 2020 3 21 3 电路设计 Proteus软件仿真通过 7 2020 3 21 4 Proteus仿真打开元器件单片机属性窗口 在 ProgramFile 栏中添加上面编译好的目标代码文件 keil 1 hex 在 ClockFrequency 栏中输入晶振频率为11 0592MHz 仿真如下页图所示 其中 浮动窗口中显示的为DS1302当前时钟状态 8 2020 3 21 图智能电子钟仿真效果 9 2020 3 21 题目2电子时钟 LCD显示 1 设计要求以AT89C51单片机为核心的时钟 在LCD显示器上显示当前的时间 使用字符型LCD显示器显示当前时间 显示格式为 时时 分分 秒秒 用4个功能键操作来设置当前时间 功能键K1 K4功能如下 K1 进入设置现在的时间 K2 设置小时 10 2020 3 21 K3 设置分钟 K4 确认完成设置 程序执行后工作指示灯LED闪动 表示程序开始执行 LCD显示 00 00 00 然后开始计时 2 实验原理题目难点在于键盘的指令输入 由于每个按键都具有相应的一种或多种功能 程序中需要大量使用do while或while 循环结构 以检测是否有按键按下 按键检测函数的详解如下 略 11 2020 3 21 3 参考电路 Proteus软件仿真通过 12 2020 3 21 4 Proteus仿真加载目标代码文件打开元器件单片机属性窗口 在 ProgramFile 栏中添加上面编译好的目标代码文件 keil 2 hex 在 ClockFrequency 栏中输入晶振频率为11 0592MHz 启动仿真 按下按键1后 可发现LED停止闪烁 即时钟停止走时 时钟停在当前时刻 按下按键2和按键3后 可改变时间 按下按键4后 时钟复位到修改后的时间 时钟重新开始运转 如下页图所示 13 2020 3 21 14 2020 3 21 题目3秒表1 设计要求用AT89C51设计一个2位的LED数码显示作为 秒表 显示时间为00 99秒 每秒自动加1 另设计一个 开始 键和一个 复位 键 2 实验原理题目难点在于通过对键盘的扫描对时钟的走时 停止进行控制 项目采用定时器T0作为计时器 每10ms发生一次中断 每100次中断加1s 在此期间 如 开始 按键按下 程序方将TR0置为1 从而开启中断 时钟开始走时 如 15 2020 3 21 复位 按键按下 程序将TR0置为0 同时将存储时间的变量清零 从而中断停止 并实现复位 本题目采用专用数码管显示控制芯片MAX7219 MAX7219是美国MAXIM公司生产的串行输入 输出共阴极显示驱动器 该芯片最多可驱动8位7段数字LED显示器或个LED和条形图显示器 其引脚图及引脚功能参见有关参考资料 16 2020 3 21 MAX7219的典型应用参考电路 17 2020 3 21 3 电路设计 Proteus软件仿真通过 18 2020 3 21 4 Proteus仿真加载目标代码文件打开元器件单片机属性窗口 在 ProgramFile 栏中添加上面编译好的目标代码文件 keil 2 hex 在 ClockFrequency 栏中输入晶振频率为11 0592MHz 启动仿真 按下按键1后 可发现led停止闪烁 即时钟停止走时 时钟停在当前时刻 按下按键2和按键3后 可改变时间 按下按键4后 时钟复位到修改后的时间 时钟重新开始运转 如下页图所示 19 2020 3 21 20 2020 3 21 题目4定时闹钟1 设计要求使用AT89C51单片机结合字符型LCD显示器设计一个简易的定时闹钟LCD时钟 若LCD选择有背光显示的模块 在夜晚或黑暗的场合中也可使用 定时闹钟的基本功能如下 显示格式为 时时 分分 由LED闪动来做秒计数表示 一旦时间到则发出声响 同时继电器启动 可以扩充控制家电开启和关闭 21 2020 3 21 程序执行后工作指示灯LED闪动 表示程序开始执行 LCD显示 00 00 按下操作键K1 K4动作如下 1 K1 设置现在的时间 2 K2 显示闹钟设置的时间 3 K3 设置闹铃的时间 4 K4 闹铃ON OFF的状态设置 设置为ON时连续三次发出 哗 的一声 设置为OFF发出 哗 的一声 设置当前时间或闹铃时间如下 1 K1 时调整 2 K2 分调整 22 2020 3 21 3 K3 设置完成 4 K4 闹铃时间到时 发出一阵声响 按下本键可以停止声响 本项目的难点在于4个按键每个都具有两个功能 以最终实现菜单化的输入功能 采用通过逐层嵌套的循环扫描 实现嵌套式的键盘输入 以对小时的设置的流程为例 其流程如下页图 23 2020 3 21 24 2020 3 21 25 2 参考电路 Proteus软件仿真通过 2020 3 21 3 Proteus仿真加载目标代码文件打开元器件单片机属性窗口 在 ProgramFile 栏中添加上面编译好的目标代码文件 keil 3 hex 在 ClockFrequency 栏中输入晶振频率为12MHz 启动仿真 下页图示为按下 开始 按键后的情况 在按下前 数码管无显示 期间如果按下 复位 按键 则LED显示归零 走时停止 26 2020 3 21 27 2020 3 21 题目5音乐倒数计数器1 设计要求利用AT89C51单片机结合字符型LCD显示器设计一个简易的倒数计数器 可用来煮方便面 煮开水或小睡片刻等 做一小段时间倒计数 当倒计数为0时 则发出一段音乐声响 通知倒计数终了 该做应当做的事 定时闹钟的基本功能如下 字符型LCD 16 2 显示器 显示格式为 TIME分分 秒秒 28 2020 3 21 29 用4个按键操作来设置当前想要倒计数的时间 一旦按下键则开始倒计数 当计数为0时 发出一阵音乐声 程序执行后工作指示灯LED闪动 表示程序开始执行 按下操作键K1 K4动作如下 K1 可调整倒计数的时间1 60分钟 K2 设置倒计数的时间为5分钟 显示 0500 K3 设置倒计数的时间为10分钟 显示 1000 K4 设置倒计数的时间为20分钟 显示 2000 复位后LCD的画面应能显示倒计时的分钟和秒数 此时按K1键 2020 3 21 30 则在LCD上显示出设置画面 此时 若 a 按操作键K2 增加倒计数的时间1分钟 b 按操作键K3 减少倒计数的时间1分钟 c 按操作键K4 设置完成 键盘实现菜单功能的方法 已在题目4详细说明 不再赘述 本题目最大难点是实现音乐的播放 作者利用定时计数器 通过载入不同的计数初值 产生频率不同的方波 输入到蜂鸣器 SOUNER 中 使其发出频率不同的声音 本设计中单片机晶振为1 0592MHz 通过计算各音阶频率 可得1 2 3 4 5 6 7共7个音应赋给定时器的初值为64580 64684 64777 64820 64898 64968 65030 2020 3 21 在此基础上 可将乐曲的简谱转化为单片机可以 识别 的 数组谱 进一步加入对音长 休止符等的控制量后 可以实现音乐的播放 3 电路设计 Proteus仿真通过 本题目制作的带有LCD显示的音乐倒数计数器电路原理图 如下页图所示 31 2020 3 21 32 2020 3 21 4 Proteus仿真加载目标代码文件打开元器件单片机属性窗口 在 ProgramFile 栏中添加上面编译好的目标代码文件 keil 5 hex 在 ClockFrequency 栏中输入晶振频率为11 0592MHz 启动仿真如下页图所示 当闹钟到达时 可以听见蜂鸣器演奏的乐曲 再次提示 本题目必须选用蜂鸣器SOUNDER 否则不能发出声音 33 2020 3 21 34 2020 3 21 题目6基于数字温度传感器的数字温度计1 设计要求利用数字温度传感器DS18B20与单片机结合来测量温度 利用数字温度传感器DS18B20测量温度信号 计算后在LED数码管上显示相应的温度值 其温度测量范围为 55 125 精确到0 5 数字温度计所测量的温度采用数字显示 控制器使用单片机AT89C51 测温传感器使用DS18B20 用3位共阳极LED数码管以串口传送数据 实现温度显示 35 2020 3 21 2 实验原理从温度传感器DS18B20可以很容易直接读取被测温度值 进行转换即满足设计要求 DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器 与传统的热敏电阻等测温元件相比 它能直接读出被测温度 并且可根据实际要求通过简单的编程实现9 12位的数字读数方式 DS18B20的性能如下 独特的单线接口仅需要一个端口引脚进行通信 多个DS18B20可以并联在串行传输的数据线上 实现多点组网功能 无须外部器件 36 2020 3 21 37 可通过数据线供电 电压范围为3 0 5 5V 零待机功耗 温度以9或12位的数字读数方式 用户可定义报警设置 报警搜索命令识别并标志超过程序限定温度 温度报警条件 的器件 负电压特性 电源极性接反时 温度计不会因发热而烧毁 但不能正常工作 采用3引脚PR 35封装或8引脚SOIC封装 2020 3 21 3 电路设计 Proteus仿真通过 本项目制作的数字温度计电路原理图 如下所示 38 2020 3 21 4 Proteus仿真加载目标代码文件打开元器件单片机属性窗口 在 ProgramFile 栏中添加上面编译好的目标代码文件 keil 6 hex 在 ClockFrequency 栏中输入晶振频率为11 0592MHz 启动仿真如下页图所示 其中 DS18B20窗口显示的为当前环境温度 若调整DS18B20旁边的箭头 可改变环境温度 可以看到LED显示屏上的温度值发生相应的变化 39 2020 3 21 40 2020 3 21 题目7基于热敏电阻的数字温度计1 设计要求使用热敏电阻类的温度传感器件利用其感温效应 将随被测温度变化的电压或电流用单片机采集下来 将被测温度在显示器上显示出来 测量温度范围 50 110 精度误差小于0 5 LED数码直读显示 41 2020 3 21 2 实验原理本题目使用铂热电阻PT100 其阻值会随着温度的变化而改变 PT后的100即表示它在0 时阻值为100欧姆 在100 时它的阻值约为138 5欧姆 厂家提供有PT100在各温度下电阻值值的分度表 在此可以近似取电阻变化率为0 385 向PT100输入稳恒电流 再通过A D转换后测PT100两端电压 即得到PT100的电阻值 进而算出当前的温度值 采用2 55mA的电流源对PT100进行供电 然后用运算放大器LM324搭建的同相放大电路将其电压信号放大10倍后输入到AD0804中 利用电阻变化率0 385 的特性 计算出当前温度值 42 2020 3 21 43 3 电路设计 Proteus仿真通过 2020 3 21 4 Proteus仿真首先加载目标代码文件打开元器件单片机属性窗口 在 ProgramFile 栏中添加上面编译好的目标代码文件 keil 7 hex 在 ClockFrequency 栏中输入晶振频率为12MHz 启动仿真如图所示 其中 PT100旁边的数字窗口显示的为测定的环境温度 通过调整上下温度 可以实现对环境温度的改变 值得注意的是 由于本项目使用的核心测温器件PT100对温度存在一定的响应时间 故启动程序后一段时间测定的温度才能稳定下来 44 2020 3 21 本题目测温误差主要由以下几点引发 ADC0804为8位ADC芯片 精度有限 程序假定PT100为完全线性的器件 而即使是厂家推荐的线性值也会存在一定误差 运放电路并非绝对线性 如使用12位ADC芯片 采用 四线制 的PT100接法 采用查表法测定温度值 将极大提高温度的测量精度 45 2020 3 21 46 2020 3 21 47 题目8十字路口交通灯控制1 设计要求设计一个十字路口交通灯控制器 用单片机控制LED灯模拟指示 模拟东西方向的十字路口交通信号控制情况 东西向通行时间为80s 南北向通行时间为60s 缓冲时间为3s 2 实验原理本项目为典型的LED显示和中断定时电路 利用定时器T0产生每10ms一次的中断 每100次中断为1s 对两个方向分别显示红 绿 黄灯 已经相应的剩余时间即可 值得注意的 2020 3 21 是 需要意识到 A方向红灯时间 B方向绿灯时间 黄灯缓冲时间这一常识 本项目使用的MAX7219芯片使用方法请参考题目3 3 电路设计 Proteus仿真通过 本项目制作的十字路口交通灯控制电路原理图 如下页图 48 2020 3 21 49 2020 3 21 50 4 Proteus仿真 2020 3 21 题目9波形发生器设计1 设计要求设计一个能产生正弦波 方波 三角波 梯形波 锯齿波的波形发生器 2 实验原理产生指定波形可以通过DAC来实现 不同波形产生实质上是对输出的二进制数字量进行相应改变来实现的 本题目中 方波信号是利用定时器中断产生的 每次中断时 将输出的信号按位反即可 三角波信号是将输出的二进制数字信号依次加1 达到0 xff时依次减1 并实时将数字信号经D A转换得到 锯齿波信号是将输出的二进制数字信号依次 51 2020 3 21 加1 达到0 xff时置为0 x00 并实时将数字信号经D A转换得到的 梯形波是将输出的二进制数字信号依次加1 达到0 xff时保持一段时间 然后依次减1直至0 x00 并实时将数字信号经D A转换得到的 正弦波是利用MATLAB将正弦曲线均匀取样后 得到等间隔时刻的y方向上的二进制数值 然后依次输出后经D A转换得到 3 电路设计 Proteus仿真通过 本波形发生器的设计电路原理图 如下页图所示 52 2020 3 21 53 2020 3 21 54 题目10电容 电阻参数单片机测试系统的设计1 设计要求设计一个能测量电容 电阻参数的测试系统 2实验原理对电阻的测量 可将待测电阻与一标准电阻串联后接在 5V的电源上 根据串联分压原理 利用ADC测定电阻两端电压后 即可得到其阻值 对电容的测量 可将其与已知阻值的电阻RA和RB组成基于NE555的多谐振荡器如下页图 其产生的方波信号频率为 2020 3 21 55 2020 3 21 故通过测定方波信号的频率可以比较精确的测定C的值 测定方波信号频率的方法 请见题目11 3 电路设计 Proteus仿真通过 本题目的电容 电阻参数单片机测试系统的设计电路原理图 见下页 56 2020 3 21 57 2020 3 21 58 4 Proteus仿真测量电阻仿真如下图所示 但由于Proteus中555芯片模型存在问题 无法实现对电容测量的仿真 且仿真时必须删去555的电路模块 2020 3 21 题目11数字频率计1 设计要求设计一个以单片机为核心的频率测量装置 使用AT89C51单片机的定时器 计数器的定时和计数功能 外部扩展6位LED数码管 要求累计每秒进入单片机的外部脉冲个数 用LED数码管显示出来 1 被测频率fx 110Hz 采用测周法 显示频率 fx 110Hz 采用测频法 显示频率 2 利用键盘分段测量和自动分段测量 59 2020 3 21 3 完成单脉冲测量 输入脉冲宽度范围是100 s 0 1s 4 显示脉冲宽度要求如下 Tx 1000 s 显示脉冲宽度 Tx 1000 s 显示脉冲宽度 2 实验原理测量频率有测频法和测周法两种 1 测频法 利用外部电平变化引发的外部中断 测算1s内的波数 从而实现对频率的测定 2 测周法 通过测算某两次电平变化引发的中断之间的时间 实现对频率的测定 简而言之 测频法是直接根据定义测定频率 测周法是通过测定周期间接测定频率 60 2020 3 21 理论上 测频法适用于较高频率的测量 测周法适用于较低频率的测量 经过调校 在测量低频信号时 本项目中测频法精度已高于测周法 故舍弃测周法 全量程采用测频法 3 电路设计 Proteus仿真通过 以单片机为核心的频率计电路原理图 如下页图所示 61 2020 3 21 62 2020 3 21 63 4 Proteus仿真加载目标代码文件打开元器件单片机属性窗口 在 ProgramFile 栏中添加上面编译好的目标代码文件 keil 16 hex 在 ClockFrequency 栏中输入晶振频率为12MHz 启动仿真如后两页图 a 和图 b 所示 2020 3 21 64 图 a 仿真1 2020 3 21 65 图 b 仿真2 2020 3 21 题目128位竞赛抢答器的设计1 设计要求以单片机为核心 设计一个8位竞赛抢答器 同时供8名选手或8个代表队比赛 分别用8个按钮S0 S7表示 设置一个系统清除和抢答控制开关S 开关由主持人控制 抢答器具有锁存与显示功能 即选手按按钮 锁存相应的编号 并在优先抢答选手的编号一直保持到主持人将系统清除为止 抢答器具有定时抢答功能 且一次抢答的时间由主持人设定 如30秒 66 2020 3 21 当主持人启动 开始 键后 定时器进行减计时 同时扬声器发出短暂的声响 声响持续的时间为0 5s左右 参赛选手在设定的时间内进行抢答 抢答有效 定时器停止工作 显示器上显示选手的编号和抢答的时间 并保持到主持人将系统清除为止 如果定时时间已到 无人抢答 本次抢答无效 系统报警并禁止抢答 定时显示器上显示00 2 实验原理通过键盘改变抢答的时间 原理与闹钟时间的设定相同 将定时时间的变量置为全局变量后 通过键盘扫描程序使每按下一次按键 时间加1 超过30时置0 同时单片机 67 2020 3 21 不断进行按键扫描 当参赛选手的按键按下时 用于产生时钟信号的定时计数器停止计数 同时将选手编号 按键号 和抢答时间分别显示在LED上 3 电路设计 Proteus仿真通过 8位竞赛抢答器的设计电路原理图 如下页图所示 68 2020 3 21 69 2020 3 21 4 Proteus仿真加载目标代码文件打开元器件单片机属性窗口 在 ProgramFile 栏中添加上面编译好的目标代码文件 keil 19 hex 在 ClockFrequency 栏中输入晶振频率为12MHz 仿真 单击按钮 启动仿真 结果如下页图所示 70 2020 3 21 71 2020 3 21 题目13单词记忆测试器程序设计1 设计要求设计一个以单片机为核心的单词记忆测试器 实现单词的录入 为使程序具有可演示性 单词不少于10个 单词用按键控制依次在屏幕上显示 按键选择认识还是不认识 也可以直接进入下一个或者上一个 单词背完后给出正确率 2 实验原理本题目实质上是一个具有一定复杂程度键盘扫描程序 可 72 2020 3 21 将单词存储在一个二维数组中 按 确定 键开始程序后 次显示0行的数组 即第一个单词 之后按下 向上 按键 显示上一行数组 即上一个单词 按下 向下 按键 显示下一行数组 即下一个单词 当显示的行数超过9时 程序结束 并通过按 确认 的次数 计算出正确率 3 电路设计 Proteus仿真通过 本项目制作的单词记忆测试器程序设计电路如下页图所示 73 2020 3 21 74 2020 3 21 4 Proteus仿真加载目标代码文件打开元器件单片机属性窗口 在 ProgramFile 栏中添加上面编译好的目标代码文件 keil 18 hex 在 ClockFrequency 栏中输入晶振频率为11 0592MHz 启动仿真如下页图 a c 所示 75 2020 3 21 图 a 单词记忆测试器程序设计启动界面仿真效果图 图 b 单词记忆测试器程序设计测试界面仿真效果图 图 c 单词记忆测试器程序设计正确率显示界面仿真效果 76 2020 3 21 题目14数字电压表设计1 设计要求以单片机为核心 设计一个数字电压表 采用中断方式 对2路0 5V的模拟电压进行循环采集 采集的数据送LED显示 并存入内存 超过界限时指示灯闪烁 2 实验原理本题目本质上是以单片机为控制器 ADC0809为ADC器件的AD转换电路 设计要求的电压显示 是对ADC采集所得信号的进一步处理 为得到可读的电压值 需根据ADC的原理 对采集所得的 77 2020 3 21 信号进行计算 并显示在LED上 本项目中ADC0809的参考电压为 5V 根据定义 采集所得的二进制信号addata所指代的电压值为 而若将其显示到小数点后两位 不考虑小数点的存在 将其乘以100 其计算的数值为 将小数点显示在第二位数码管上 即为实际的电压 78 2020 3 21 本示例程序将1 25V和2 5V作为两路输入的报警值 反映在二进制数字上 分别为0 x40和0 x80 当AD结果超过这一数值时 将会出现二极管闪烁和蜂鸣器发声 3 电路设计 Proteus仿真通过 本单片机数字电压表电路原理图 如下页图所示 79 2020 3 21 80 2020 3 21 4 Proteus仿真加载目标代码文件打开元器件单片机属性窗口 在 ProgramFile 栏中添加上面编译好的目标代码文件 xxxxx hex 在 ClockFrequency 栏中输入晶振频率为12MHz ADC0809的时钟信号设置为640kHz 启动仿真 如下页图所示 当调节滑动变阻器时 可观察到显示的电压发生变化 且两路输入电压的测算值交替显示 当任一路电压输入超过预设值时 LED显示器闪烁 蜂鸣器发声 由于8位AD芯片精度有限 其误差大约在几十mV左右 81 2020 3 21 82 2020 3 21 题目15可编程作息时间控制器设计1 设计要求设计一个以单片机为核心的可编程作息时间控制器 按照给定的时间模拟控制 实现广播 上下课打铃 灯光控制 屏幕显示 同时具备日期和时钟显示 2 实验原理本题目原理与题目4相同 程序是在题目4的基础上将定时闹钟改造为4路可调闹钟 从而实现打铃等功能 当四路闹钟中的任一路到时 均会点亮灯 打铃 如有需求 可对 83 2020 3 21 程序进行调整 增加闹钟的路数 及到时后的处理方式 题目中4个按键的功能分别为 设置限制的时间 时的调整 显示闹钟设置的时间 分的调整 设置闹钟的时间 设置完成 闹钟更换 3 电路设计 Proteus仿真通过 本可编程作息时间控制器程序设计电路原理图 如下页图所示 84 2020 3 21 85 2020 3 21 4 Proteus仿真加载目标代码文件打开元器件单片机属性窗口 在 ProgramFile 栏中添加上面编译好的目标代码文件 keil 17 hex 在 ClockFrequency 栏中输入晶振频率为11 0592MHz 启动仿真如下页图所示 当四路闹钟中的任一路到时 均会点亮灯 打铃 86 2020 3 21 87 2020 3 21 题目16节日彩灯控制器的设计1 设计要求以单片机为核心 设计一个节日彩灯控制器 P1 2 开始 按此键则灯开始流动 由上而下 P1 3 停止 按此键则停止流动 所有灯为暗 P1 4 上 按此键则灯由上向下流动 P1 5 下 按此键则灯由下向上流动 2 实验原理本题目本质上是由按键控制功能的流水灯 LED工作的方式通过键盘的扫描实现 其中的LED采取共阳极接法 通过 88 2020 3 21 依次向连接LED的 口送出低电平 可实现题目要求的功能 3 电路设计 Proteus仿真通过 本节日彩灯控制器电路原理图 如下页图所示 各按键功能与实验设计要求相同 89 2020 3 21 90 2020 3 21 4 Proteus仿真加载目标代码文件打开元器件单片机属性窗口 在 ProgramFile 栏中添加上面编译好的目标代码文件 keil 1 hex 在 ClockFrequency 栏中输入晶振频率为12MHz 启动仿真如下页图所示 91 2020 3 21 92 2020 3 21 题目17双机之间的串行通信设计1 设计要求两片单片机利用串行口进行串行通信 串行通信的波特率可从键盘进行设定 可选的波特率为1200 2400 4800和9600bit s 串行口工作方式为方式1的全双工串行通信 2 实验原理两个单片机之间进行通讯波特率的设定 最终归结到对定时计数器T1计数初值TH1 TL1进行设定 故本题目本质上是通过键盘扫描得到设定的波特率 从而载入相应的T1计数初值TH1 TL1实现的 示例程序中将0 xaa从主机传输到从机 93 2020 3 21 并显示在从机的数码管上实现串口通讯的验证 如串口通讯线路过长 可考虑采用MAX232进行电平转换 以延长传输距离 值得注意的是 为了减少计算载入初值时的误差 本项目最好采取11 0592MHz的晶振 3 电路设计 Proteus仿真通过 两个单片机之间的串行通信接口设计电路原理图 如下页图所示 94 2020 3 21 95 2020 3 21 4 Proteus仿真加载目标代码文件打开元器件单片机属性窗口 在 ProgramFile 栏中添加上面编译好的目标代码文件 master hex 或 slave hex 在 ClockFrequency 栏中输入晶振频率为11 0592MHz 启动仿真如下页图所示 当二极管间隔点亮时 表明通讯成功 96 2020 3 21 97 2020 3 21 题目18电子琴设计1 设计要求设计一个电子琴 利用所给键盘的1 2 3 4 5 6 7 8八个键 能够发出8个不同的音调 并且要求按下按键发声 松开延时一段时间停止 中间再按别的键则发另一音调的声音 2 实验原理当系统扫描到键盘上有键被按下 则快速检测出是哪一个键被按下 然后单片机的定时器被启动 发出一定频率的脉冲 该频率的脉冲输入到蜂鸣器后 就会发出相应的音调 98 2020 3 21 如果在前一个按下的键发声的同时有另一个键被按下 则启用中断系统 前面键的发音停止 转到后按的键的发音程序 发出后按的键的音调 关于发声原理 参见题目5 3 电路设计 Proteus仿真通过 本电子琴设计电路原理图 如下页图所示 99 2020 3 21 100 2020 3 21 4 Proteus仿真加载目标代码文件打开元器件单片机属性窗口 在 ProgramFile 栏中添加上面编译好的目标代码文件 keil 23 hex 在 ClockFrequency 栏中输入晶振频率为11 0592MHz 启动仿真如下页图所示 依次按下各按键可听见不同的音阶 101 2020 3 21 102 2020 3 21 题目19数字音乐盒的设计1 设计要求以单片机为核心 设计一个数字音乐盒 利用I O口产生一定频率的方波 驱动蜂鸣器 发出不同的音调 从而演奏乐曲 最少3首乐曲 每首不少于30s 采用LCD显示信息 a 开机时有英文欢迎提示字符 播放时显示歌曲序号 或名称 b 可通过功能键选择乐曲 暂停 播放 103 2020 3 21 2 电路设计 Proteus仿真通过 本数字音乐盒的电路设计原理图 如下图所示 104 2020 3 21 3 Proteus仿真加载目标代码文件打开元器件单片机属性窗口 在 ProgramFile 栏中添加上面编译好的目标代码文件 keil 24 hex 在 ClockFrequency 栏中输入晶振频率为11 0592MHz 启动仿真如下页图所示 其中 液晶显示器显示的为当前乐曲等信息 同时可听见音乐的播放声 105 2020 3 21 数字音乐盒的设计仿真液晶显示效果图 106 2020 3 21 题目20单片机控制步进电机1 设计要求采用单片机控制一个三相单三拍的步进电机工作 步进电机的旋转方向由正反转控制信号控制 步进电机的步数由键盘输入 可输入的步数分别为3 6 9 12 15 18 21 24和27步 且键盘具有键盘锁功能 当键盘上锁时 步进电机不接受输入步数 也不会运转 只有当键盘锁打开并输入步数时 步进电机才开始工作 电机运转的时候有正转和反转指示灯指示 电机在运转过程中 如果过热 则电机停止运转 同时 107 2020 3 21 红色指示灯亮 同时警报响 本题目的关键之处是 如何生成控制步进电机的脉冲序列 2 实验原理步进电机的不同驱动方式 都是在工作时 脉冲信号按一定顺序轮流加到三相绕组上 从而实现不同的工作状态 由于通电顺序不同 其运行方式有三相单三相拍 三相双三拍和三相单 双六拍三种 注意 上面 三相单三拍 中的 三相 指定子有三相绕组 拍 是指定子绕组改变一次通电方式 三拍 表示通电三次完成一个循环 三相双三拍 中的 双 是指同时有两相绕组通电 108 2020 3 21 1 三相单三拍运行方式 下页图所示为反应式步进电动机工作原理图 若通过脉冲分配器输出的第一个脉冲使A相绕组通电 B C相绕组不通电 在A相绕组通电后产生的磁场将使转子上产生反应转矩 转子的1 3齿将与定子磁极对齐 如果图 a 所示 第二个脉冲到来 使B相绕组通电 而A C相绕组不通电 B相绕组产生的磁场将使转子的2 4齿与B相磁极对齐 如图 b 所示 与图 a 相比 转子逆时针方向转动了一个角度 第三个脉冲到来后 是C相绕组通电 而A B相不通电 这时转子的1 3齿会与C组对齐 转子的位置如图 c 所示 与图 b 比较 又逆时针转过了一个角度 109 2020 3 21 图反应式步进电机工作原理图 110 2020 3 21 当脉冲不断到来时 通过分配器使定子的绕组按着A相 B相 C相 A相 的规律不断地接通与断开 这时步进电动机的转子就连续不停地一步步的逆时针方向转动 如果改变步进电动机的转动方向 只要将定子各绕组通电的顺序改为A相 C相 B相 A相 转子转动方向即改为顺时针方向 单三拍分配方式时 步进电动机由A相通电转换到B相同点 步进电动机的转子转过一个角度 称为一步 这时转子转过的角度是30度 步进电动机每一步转过的角度称为步距角 111 2020 3 21 2 三相双三拍运行方式三相双三拍运行方式 每次都有两个绕组通电 通电方式是AB BC CA AB 如果通电顺序改为AB CA BC AB 则步进电机反转 双三拍分配方式时 步进电动机的步距角也是30度 3 三相单 双六拍运行方式 三相六拍分配方式就是每个周期内有六个通电状态 这六中通电状态的顺序可以使A AB B BC C CA A 或者A CA C BC B AB A 六拍通电方式中 有一个时刻两个绕组同时通电 这是转子齿的位置将位于通电的两相的中间位置 在三相六拍分配方式下 转子每一步转过的角度只是三相三拍方式下的一半 步距角是15度 112 2020 3 21 单三拍运行的突出问题是每次只有一相绕组通电 在转换过程中 一相绕组断电 另一相绕组通电 容易发生失步 另外单靠一相绕组通电吸引转子 稳定性不好 容易在平衡位置附近震荡 故用的较少 双三拍运行的特点是每次都有两相绕组通电 且在转换过程中始终有一相绕组保持通电状态 因此工作稳定 且步距角与单三拍相同 六拍运行方式转换时始终有一相绕组通电 且步距角较小 故工作稳定性好 但电源较复杂 实际应用较多 3 电路设计 Proteus仿真通过 本单片机控制步进电机电路原理图 如下页图所示 113 2020 3 21 114 2020 3 21 4 Proteus仿真加载目标代码文件打开元器件单片机属性窗口 在 ProgramFile 栏中添加上面编译好的目标代码文件 keil 1 hex 在 ClockFrequency 栏中输入晶振频率为12MHz 启动仿真 各按键功能如下页图所注 根据题目要求 只有当开关合上时 步进电机才工作 115 2020 3 21 116 2020 3 21 题目21单片机控制直流电动机1 设计要求采用单片机设计一个控制直流电机并测量转速的装置 单片机扩展有A D转换芯片ADC0809和D A转换芯片DAC0832 1 通过改变A D输入端可变电阻

温馨提示

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

评论

0/150

提交评论