片机课程设计课程设计

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

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!