《单片机课程设计课程设计教学幻灯片》由会员分享,可在线阅读,更多相关《单片机课程设计课程设计教学幻灯片(129页珍藏版)》请在金锄头文库上搜索。
1、1,课程设计题目,2,目录-课程设计题目 题目1 智能电子钟(LCD显示) 题目2 电子时钟(LCD显示) 题目3 秒表 题目4 定时闹钟 题目5 音乐倒数计数器 题目6 基于数字温度传感器的数字温度计 题目7 基于热敏电阻的数字温度计 题目8 十字路口交通灯控制 题目9 波形发生器设计 题目10 电容、电阻参数单片机测试系统的设计,题目11 数字频率计 题目12 8位竞赛抢答器的设计 题目13 单词记忆测试器程序设计 题目14 数字电压表设计 题目15 可编程作息时间控制器设计 题目16 节日彩灯控制器的设计 题目17 双机之间的串行通信设计 题目18 电子琴设计 题目19 数字音乐盒的设计
2、 题目20 单片机控制步进电机 题目21 单片机控制直流电动机,5,(7) 键盘采用动态扫描方式查询。所有的查询、设置功能均由功能键K1、K2完成。 2. 工作原理 本设计采用市场上流行的时钟芯片DS1302进行制作。DS1302是DALLAS公司推出的涓流充电时钟芯片,内含一个实时时钟/日历和31字节静态RAM,可以通过串行接口与计算机进行通信,使得管脚数量减少。实时时钟/日历电路能够计算2100年之前的秒、分、时、日、星期、月、年的,具有闰年调整的能力。 DS1302时钟芯片的主要功能特性:,6,(1) 能计算2100年之前的年、月、日、星期、时、分、秒的信息;每月的天数和闰年的天数可自动
3、调整;时钟可设置为24或12小时格式。 (2) 31B的8位暂存数据存储RAM。 (3) 串行I/O口方式使得引脚数量最少。 (4) DS1302与单片机之间能简单地采用同步串行的方式进行 通信,仅需3根线。 (5) 宽范围工作电压2.0-5.5V。 (6) 工作电流为2.0A时,小于300nA。 (7) 功耗很低,保持数据和时钟信息时功率小于1mW。,3. 电路设计(Proteus软件仿真通过),7,4. Proteus仿真 打开元器件单片机属性窗口,在“Program File”栏中添加上面编译好的目标代码文件“keil-1.hex”;在“Clock Frequency”栏中输入晶振频率为
4、11.0592MHz。 仿真如下页图所示,其中,浮动窗口中显示的为DS1302当前时钟状态:,图 智能电子钟仿真效果,题目2 电子时钟(LCD显示) 1. 设计要求 以AT89C51单片机为核心的时钟,在LCD显示器上显示当前的时间: 使用字符型LCD显示器显示当前时间。 显示格式为“时时:分分:秒秒”。 用4个功能键操作来设置当前时间。功能键K1K4功能如下。 K1进入设置现在的时间。 K2设置小时。,10,K3设置分钟。 K4确认完成设置。 程序执行后工作指示灯LED闪动,表示程序开始执行,LCD显示“00:00:00”,然后开始计时。 2. 实验原理 题目难点在于键盘的指令输入,由于每个
5、按键都具有相应的一种或多种功能,程序中需要大量使用dowhile或while循环结构,以检测是否有按键按下。按键检测函数的详解如下(略),11,3. 参考电路(Proteus软件仿真通过),12,4. Proteus仿真 加载目标代码文件 打开元器件单片机属性窗口,在“Program File”栏中添加上面编译好的目标代码文件“keil-2.hex”;在“Clock Frequency”栏中输入晶振频率为11.0592MHz。 启动仿真,按下按键1后,可发现LED停止闪烁,即时钟停止走时,时钟停在当前时刻,按下按键2和按键3后,可改变时间,按下按键4后,时钟复位到修改后的时间,时钟重新开始运转
6、,如下页图所示。,题目3 秒表 1. 设计要求 用AT89C51设计一个2位的LED数码显示作为“秒表”:显示时间为0099秒,每秒自动加1,另设计一个“开始”键和一个“复位”键。 2. 实验原理 题目难点在于通过对键盘的扫描对时钟的走时/停止进行控制,项目采用定时器T0作为计时器,每10ms发生一次中断,每100次中断加1s。在此期间,如“开始”按键按下,程序方将TR0置为1,从而开启中断,时钟开始走时;如“,15,复位”按键按下,程序将TR0置为0,同时将存储时间的变量清零,从而中断停止,并实现复位。 本题目采用专用数码管显示控制芯片MAX7219。MAX7219是美国MAXIM公司生产的
7、串行输入/输出共阴极显示驱动器,该芯片最多可驱动8位7段数字LED显示器或个LED和条形图显示器。其引脚图及引脚功能参见有关参考资料。,16,MAX7219的典型应用参考电路,17,3. 电路设计(Proteus软件仿真通过),4. Proteus仿真 加载目标代码文件 打开元器件单片机属性窗口,在“Program File”栏中添加上面编译好的目标代码文件“keil-2.hex”;在“Clock Frequency”栏中输入晶振频率为11.0592MHz。 启动仿真,按下按键1后,可发现led停止闪烁,即时钟停止走时,时钟停在当前时刻,按下按键2和按键3后,可改变时间,按下按键4后,时钟复位
8、到修改后的时间,时钟重新开始运转,如下页图所示。,题目4 定时闹钟 1. 设计要求 使用AT89C51单片机结合字符型LCD显示器设计一个简易的定时闹钟LCD时钟,若LCD选择有背光显示的模块,在夜晚或黑暗的场合中也可使用。 定时闹钟的基本功能如下: 显示格式为“时时:分分”。 由LED闪动来做秒计数表示。 一旦时间到则发出声响,同时继电器启动,可以扩充控制家电开启和关闭。,21,程序执行后工作指示灯LED闪动,表示程序开始执行,LCD显示“00:00”,按下操作键K1K4动作如下: (1) K1设置现在的时间。 (2) K2显示闹钟设置的时间。 (3) K3设置闹铃的时间。 (4) K4闹铃
9、ON/OFF的状态设置,设置为ON时连续三次发出“哗”的一声,设置为OFF发出“哗”的一声。 设置当前时间或闹铃时间如下。 (1) K1时调整。 (2) K2分调整。,22,(3) K3设置完成。 (4) K4闹铃时间到时,发出一阵声响,按下本键可以停止声响。 本项目的难点在于4个按键每个都具有两个功能,以最终实现菜单化的输入功能。采用通过逐层嵌套的循环扫描,实现嵌套式的键盘输入。以对小时的设置的流程为例,其流程如下页图。,23,25,2. 参考电路(Proteus软件仿真通过),3. Proteus仿真 加载目标代码文件 打开元器件单片机属性窗口,在“Program File”栏中添加上面编
10、译好的目标代码文件“keil-3.hex”;在“Clock Frequency”栏中输入晶振频率为12MHz。 启动仿真,下页图示为按下“开始”按键后的情况,在按下前,数码管无显示。期间如果按下“复位”按键,则LED显示归零,走时停止。,题目5 音乐倒数计数器 1. 设计要求 利用AT89C51单片机结合字符型LCD显示器设计一个简易的倒数计数器,可用来煮方便面、煮开水或小睡片刻等。做一小段时间倒计数,当倒计数为0时,则发出一段音乐声响,通知倒计数终了,该做应当做的事。 定时闹钟的基本功能如下。 字符型LCD(162)显示器。 显示格式为“TIME 分分:秒秒”。,28,29,用4个按键操作来
11、设置当前想要倒计数的时间。一旦按下键则开始倒计数,当计数为0时,发出一阵音乐声。 程序执行后工作指示灯LED闪动,表示程序开始执行,按下操作键K1K4动作如下。 K1可调整倒计数的时间160分钟。 K2设置倒计数的时间为5分钟,显示“0500”。 K3设置倒计数的时间为10分钟,显示“1000”。 K4设置倒计数的时间为20分钟,显示“2000”。 复位后LCD的画面应能显示倒计时的分钟和秒数,此时按K1键,,30,则在LCD上显示出设置画面。此时,若: a. 按操作键K2增加倒计数的时间1分钟。 b. 按操作键K3减少倒计数的时间1分钟。 c. 按操作键K4设置完成。 键盘实现菜单功能的方法
12、,已在题目4详细说明,不再赘述。本题目最大难点是实现音乐的播放。作者利用定时计数器,通过载入不同的计数初值,产生频率不同的方波,输入到蜂鸣器(SOUNER)中,使其发出频率不同的声音。本设计中单片机晶振为1.0592MHz,通过计算各音阶频率,可得1、2、3、4、5、6、7共7个音应赋给定时器的初值为64580、64684、64777、64820、64898、64968、65030。,在此基础上,可将乐曲的简谱转化为单片机可以“识别”的“数组谱”,进一步加入对音长、休止符等的控制量后,可以实现音乐的播放。 3.电路设计(Proteus仿真通过) 本题目制作的带有LCD显示的音乐倒数计数器电路原
13、理图,如下页图所示。,31,4. Proteus仿真 加载目标代码文件 打开元器件单片机属性窗口,在“Program File”栏中添加上面编译好的目标代码文件“keil-5.hex”;在“Clock Frequency”栏中输入晶振频率为11.0592MHz。 启动仿真如下页图所示,当闹钟到达时,可以听见蜂鸣器演奏的乐曲。再次提示,本题目必须选用蜂鸣器SOUNDER,否则不能发出声音。,34,题目6 基于数字温度传感器的数字温度计 1. 设计要求 利用数字温度传感器DS18B20与单片机结合来测量温度。利用数字温度传感器DS18B20测量温度信号,计算后在LED数码管上显示相应的温度值。其温
14、度测量范围为55125,精确到0.5。数字温度计所测量的温度采用数字显示,控制器使用单片机AT89C51,测温传感器使用DS18B20,用3位共阳极LED数码管以串口传送数据,实现温度显示。,2. 实验原理 从温度传感器DS18B20可以很容易直接读取被测温度值,进行转换即满足设计要求。 DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现912位的数字读数方式。 DS18B20的性能如下。 独特的单线接口仅需要一个端口引脚进行通信。 多个DS18B20可以并联在串行传
15、输的数据线上,实现多点组网功能。无须外部器件。,36,37,可通过数据线供电,电压范围为3.05.5V。 零待机功耗。 温度以9或12位的数字读数方式。 用户可定义报警设置。 报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件。 负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。 采用3引脚PR-35封装或8引脚SOIC封装。,3.电路设计(Proteus仿真通过) 本项目制作的数字温度计电路原理图,如下所示:,38,4. Proteus仿真 加载目标代码文件 打开元器件单片机属性窗口,在“Program File”栏中添加上面编译好的目标代码文件“keil-6.h
16、ex”;在“Clock Frequency”栏中输入晶振频率为11.0592MHz。 启动仿真如下页图所示,其中,DS18B20窗口显示的为当前环境温度,若调整DS18B20旁边的箭头,可改变环境温度,可以看到LED显示屏上的温度值发生相应的变化。,题目7 基于热敏电阻的数字温度计 1. 设计要求 使用热敏电阻类的温度传感器件利用其感温效应,将随被测温度变化的电压或电流用单片机采集下来,将被测温度在显示器上显示出来: 测量温度范围50110。 精度误差小于0.5。 LED数码直读显示。,41,2 . 实验原理 本题目使用铂热电阻PT100,其阻值会随着温度的变化而改变。PT后的100即表示它在0时阻值为100欧姆,在100时它的阻值约为138.5欧姆。厂家提供有PT100在各温度下电阻值值的分度表,在此可以近似取电阻变化率为 0.385/。向PT100输入稳恒电流,再通过A/D转换后测PT100两端电压,即得到PT100的电阻值,进而算出当前的温度值。 采用2.55mA的电流源对PT100进行供电,然后用运算放大器LM324搭建的同相放大电路将其电压信号放大10倍后