《单片机课程设计题目ppt课件》由会员分享,可在线阅读,更多相关《单片机课程设计题目ppt课件(129页珍藏版)》请在金锄头文库上搜索。
1、1课程设计题目课程设计题目2目录目录-课程设计题目课程设计题目题目题目1 1 智能电子钟(智能电子钟(LCDLCD显示)显示)题目题目2 2 电子时钟(电子时钟(LCDLCD显示)显示)题目题目3 3 秒表秒表题目题目4 4 定时闹钟定时闹钟题目题目5 5 音乐倒数计数器音乐倒数计数器题目题目6 6 基于数字温度传感器的数字温度计基于数字温度传感器的数字温度计题目题目7 7 基于热敏电阻的数字温度计基于热敏电阻的数字温度计题目题目8 8 十字路口交通灯控制十字路口交通灯控制题目题目9 9 波形发生器设计波形发生器设计题目题目10 10 电容、电阻参数单片机测试系统的设计电容、电阻参数单片机测试
2、系统的设计题目题目11 11 数字频率计数字频率计题目题目12 812 8位竞赛抢答器的设计位竞赛抢答器的设计题目题目13 13 单词记忆测试器程序设计单词记忆测试器程序设计题目题目14 14 数字电压表设计数字电压表设计题目题目15 15 可编程作息时间控制器设计可编程作息时间控制器设计题目题目16 16 节日彩灯控制器的设计节日彩灯控制器的设计题目题目17 17 双机之间的串行通信设计双机之间的串行通信设计题目题目18 18 电子琴设计电子琴设计题目题目19 19 数字音乐盒的设计数字音乐盒的设计题目题目20 20 单片机控制步进电机单片机控制步进电机题目题目21 21 单片机控制直流电动
3、机单片机控制直流电动机4题目题目1 1 智能电子钟(智能电子钟(LCDLCD显示)显示)1.1. 设计要求设计要求 以以AT89C51AT89C51单片机为核心,制作一个单片机为核心,制作一个LCDLCD显示的智能电子钟:显示的智能电子钟: (1) (1) 计时:秒、分、时、天、周、月、年。计时:秒、分、时、天、周、月、年。 (2) (2) 闰年自动判别。闰年自动判别。 (3) (3) 五路定时输出,可任意关断(最大可到五路定时输出,可任意关断(最大可到1616路)。路)。 (4) (4) 时间、月、日交替显示。时间、月、日交替显示。 (5) (5) 自定任意时刻自动开自定任意时刻自动开/ /
4、关屏。关屏。 (6) (6) 计时精度:误差计时精度:误差1 1秒秒/ /月(具有微调设置)。月(具有微调设置)。5(7) (7) 键盘采用动态扫描方式查询。所有的查询、设置功能均键盘采用动态扫描方式查询。所有的查询、设置功能均由功能键由功能键K1K1、K2K2完成。完成。2. 2. 工作原理工作原理本设计采用市场上流行的本设计采用市场上流行的时钟芯片时钟芯片DS1302DS1302进行制作。进行制作。DS1302DS1302是是DALLASDALLAS公司推出的涓流充电时钟芯片,内含一个实时公司推出的涓流充电时钟芯片,内含一个实时时钟时钟/ /日历和日历和3131字节静态字节静态RAMRAM
5、,可以通过串行接口与计算,可以通过串行接口与计算机进行通信,使得管脚数量减少。实时时钟机进行通信,使得管脚数量减少。实时时钟/ /日历电路能日历电路能够计算够计算21002100年之前年之前的秒、分、时、日、星期、月、年的,的秒、分、时、日、星期、月、年的,具有闰年调整的能力。具有闰年调整的能力。DS1302DS1302时钟芯片的时钟芯片的主要功能特性主要功能特性:6(1) (1) 能计算能计算21002100年之前的年、月、日、星期、时、分、秒的年之前的年、月、日、星期、时、分、秒的信息;每月的天数和闰年的天数可自动调整;时钟可设置信息;每月的天数和闰年的天数可自动调整;时钟可设置为为242
6、4或或1212小时格式。小时格式。(2) 31B(2) 31B的的8 8位暂存数据存储位暂存数据存储RAMRAM。(3) (3) 串行串行I/OI/O口方式使得引脚数量最少。口方式使得引脚数量最少。(4) DS1302(4) DS1302与单片机之间能简单地采用同步串行的方式进行与单片机之间能简单地采用同步串行的方式进行 通信,仅需通信,仅需3 3根线。根线。(5) (5) 宽范围工作电压宽范围工作电压2.0-5.5V2.0-5.5V。(6) (6) 工作电流为工作电流为2.0A2.0A时,小于时,小于300nA300nA。(7) (7) 功耗很低,保持数据和时钟信息时功率小于功耗很低,保持数
7、据和时钟信息时功率小于1mW1mW。图图 智能电子钟仿真效果智能电子钟仿真效果题目题目2 2 电子时钟(电子时钟(LCDLCD显示)显示)1. 1. 设计要求设计要求以以AT89C51AT89C51单片机为核心的时钟,在单片机为核心的时钟,在LCDLCD显示器上显示当前的时显示器上显示当前的时间:间:使用字符型使用字符型LCDLCD显示器显示当前时间。显示器显示当前时间。显示格式为显示格式为“时时:分分:秒秒时时:分分:秒秒”。用用4 4个功能键操作来设置当前时间。个功能键操作来设置当前时间。功能键功能键K1K1K4K4功能如下功能如下。nK1K1进入设置现在的时间。进入设置现在的时间。nK2
8、K2设置小时。设置小时。10nK3K3设置分钟设置分钟。nK4K4确认完成设置。确认完成设置。程序执行后工作指示灯程序执行后工作指示灯LEDLED闪动,表示程序开始执行,闪动,表示程序开始执行,LCDLCD显示显示“0000:0000:00”00”,然后开始计时。,然后开始计时。2. 2. 实验原理实验原理题目难点在于键盘的指令输入,由于每个按键都具有相应的一题目难点在于键盘的指令输入,由于每个按键都具有相应的一种或多种功能,程序中需要大量使用种或多种功能,程序中需要大量使用dowhiledowhile或或whilewhile循环结构,以检测是否有按键按下。按键检测函数的详解循环结构,以检测是
9、否有按键按下。按键检测函数的详解如下(略)如下(略)113. 3. 参考电路(参考电路(ProteusProteus软件仿真通过)软件仿真通过)124. Proteus4. Proteus仿真仿真加载目标代码文件加载目标代码文件 打开元器件单片机属性窗口,在打开元器件单片机属性窗口,在“Program File”Program File”栏中添加上面编译好的目标代码文件栏中添加上面编译好的目标代码文件“keil-2.hex”keil-2.hex”;在;在“Clock Frequency”Clock Frequency”栏中输入晶振栏中输入晶振频率为频率为11.0592MHz11.0592MHz
10、。启动仿真,按下按键启动仿真,按下按键1 1后,可发现后,可发现LEDLED停止闪烁,即时钟停止停止闪烁,即时钟停止走时,时钟停在当前时刻,按下按键走时,时钟停在当前时刻,按下按键2 2和按键和按键3 3后,可改变后,可改变时间,按下按键时间,按下按键4 4后,时钟复位到修改后的时间,时钟重后,时钟复位到修改后的时间,时钟重新开始运转,如新开始运转,如下页图下页图所示。所示。题目题目3 3 秒表秒表1. 1. 设计要求设计要求用用AT89C51AT89C51设计一个设计一个2 2位的位的LEDLED数码显示作为数码显示作为“秒表秒表”:显示:显示时间为时间为00990099秒,每秒自动加秒,每
11、秒自动加1 1,另设计一个,另设计一个“开始开始”键键和一个和一个“复位复位”键。键。2. 2. 实验原理实验原理题目难点在于通过对键盘的扫描对时钟的走时题目难点在于通过对键盘的扫描对时钟的走时/ /停止进行控停止进行控制,项目采用定时器制,项目采用定时器T0T0作为计时器,每作为计时器,每10ms10ms发生一次中断,发生一次中断,每每100100次中断加次中断加1s1s。在此期间,如。在此期间,如“开始开始”按键按下,程按键按下,程序方将序方将TR0TR0置为置为1 1,从而开启中断,时钟开始走时;如,从而开启中断,时钟开始走时;如“15复位复位”按键按下,程序将按键按下,程序将TR0TR
12、0置为置为0 0,同时将存储时间的变,同时将存储时间的变量清零,从而中断停止,并实现复位。量清零,从而中断停止,并实现复位。本题目采用专用本题目采用专用数码管显示控制芯片数码管显示控制芯片MAX7219MAX7219。MAX7219MAX7219是是美国美国MAXIMMAXIM公司生产的串行输入公司生产的串行输入/ /输出共阴极显示驱动器,输出共阴极显示驱动器,该芯片最多可驱动该芯片最多可驱动8 8位位7 7段数字段数字LEDLED显示器或个显示器或个LEDLED和条形和条形图显示器。其引脚图及引脚功能参见有关参考资料。图显示器。其引脚图及引脚功能参见有关参考资料。16MAX7219MAX72
13、19的典型应用参考电路的典型应用参考电路173.3. 电路设计(电路设计(ProteusProteus软件仿真通过)软件仿真通过) 4. Proteus4. Proteus仿真仿真加载目标代码文件加载目标代码文件 打开元器件单片机属性窗口,在打开元器件单片机属性窗口,在“Program Program File”File”栏中添加上面编译好的目标代码文件栏中添加上面编译好的目标代码文件“keil-keil-2.hex”2.hex”;在;在“Clock Frequency”Clock Frequency”栏中输入晶振频率为栏中输入晶振频率为11.0592MHz11.0592MHz。启动仿真,按下
14、按键启动仿真,按下按键1 1后,可发现后,可发现ledled停止闪烁,即时钟停止走停止闪烁,即时钟停止走时,时钟停在当前时刻,按下按键时,时钟停在当前时刻,按下按键2 2和按键和按键3 3后,可改变时后,可改变时间,按下按键间,按下按键4 4后,时钟复位到修改后的时间,时钟重新开后,时钟复位到修改后的时间,时钟重新开始运转,如始运转,如下页图下页图所示。所示。题目题目4 4 定时闹钟定时闹钟1. 1. 设计要求设计要求使用使用AT89C51AT89C51单片机结合字符型单片机结合字符型LCDLCD显示器设计一个简易的定显示器设计一个简易的定时闹钟时闹钟LCDLCD时钟,若时钟,若LCDLCD选
15、择有背光显示的模块,在夜晚选择有背光显示的模块,在夜晚或黑暗的场合中也可使用。或黑暗的场合中也可使用。定时闹钟的基本功能如下:定时闹钟的基本功能如下:n显示格式为显示格式为“时时:分分时时:分分”。n由由LEDLED闪动来做秒计数表示。闪动来做秒计数表示。n一旦时间到则发出声响,同时继电器启动,可以扩充控一旦时间到则发出声响,同时继电器启动,可以扩充控制家电开启和关闭。制家电开启和关闭。21n程序执行后工作指示灯程序执行后工作指示灯LEDLED闪动,表示程序开始执行,闪动,表示程序开始执行,LCDLCD显示显示“0000:00”00”,按下,按下操作键操作键K1K1K4K4动作如下:动作如下:
16、 (1) K1(1) K1设置现在的时间设置现在的时间。 (2) K2 (2) K2显示闹钟设置的时间显示闹钟设置的时间。 (3) K3 (3) K3设置闹铃的时间设置闹铃的时间。 (4) K4 (4) K4闹铃闹铃ON/OFFON/OFF的状态设置,设置为的状态设置,设置为ONON时连续三次发出时连续三次发出“哗哗”的一声,设置为的一声,设置为OFFOFF发出发出“哗哗”的一声。的一声。设置当前时间或闹铃时间如下。设置当前时间或闹铃时间如下。 (1) K1(1) K1时调整时调整。 (2) K2(2) K2分调整分调整。 22(3) (3) K3K3设置完成。设置完成。(4) (4) K4K
17、4闹铃时间到时,发出一阵声响,按下本键可以停止声闹铃时间到时,发出一阵声响,按下本键可以停止声响。响。本项目的难点在于本项目的难点在于4 4个按键每个都具有两个功能,以最终实现个按键每个都具有两个功能,以最终实现菜单化的输入功能。采用通过逐层嵌套的循环扫描,实现菜单化的输入功能。采用通过逐层嵌套的循环扫描,实现嵌套式的键盘输入。以对小时的设置的流程为例,其嵌套式的键盘输入。以对小时的设置的流程为例,其流程流程如如下页图下页图。23252. 2. 参考电路(参考电路(ProteusProteus软件仿真通过)软件仿真通过)3. Proteus3. Proteus仿真仿真加载目标代码文件加载目标代
18、码文件 打开元器件单片机属性窗口,在打开元器件单片机属性窗口,在“Program File”Program File”栏中添加上面编译好的目标代码文件栏中添加上面编译好的目标代码文件“keil-3.hex”keil-3.hex”;在;在“Clock Frequency”Clock Frequency”栏中输入晶振栏中输入晶振频率为频率为12MHz12MHz。启动仿真,启动仿真,下页图下页图示为按下示为按下“开始开始”按键后的情况,在按下按键后的情况,在按下前,数码管无显示。期间如果按下前,数码管无显示。期间如果按下“复位复位”按键,则按键,则LEDLED显示归零,走时停止。显示归零,走时停止。
19、题目题目5 5 音乐倒数计数器音乐倒数计数器1. 1. 设计要求设计要求利用利用AT89C51AT89C51单片机结合字符型单片机结合字符型LCDLCD显示器设计一个简易的倒数显示器设计一个简易的倒数计数器,可用来煮方便面、煮开水或小睡片刻等。做一小计数器,可用来煮方便面、煮开水或小睡片刻等。做一小段时间倒计数,当倒计数为段时间倒计数,当倒计数为0 0时,则发出一段音乐声响,通时,则发出一段音乐声响,通知倒计数终了,该做应当做的事。知倒计数终了,该做应当做的事。定时闹钟的基本功能如下。定时闹钟的基本功能如下。n字符型字符型LCDLCD(1616 22)显示器。)显示器。n显示格式为显示格式为“
20、TIME TIME 分分分分: :秒秒秒秒”。2829 用用4 4个按键操作来设置当前想要倒计数的时间。一旦按下键个按键操作来设置当前想要倒计数的时间。一旦按下键则开始倒计数,当计数为则开始倒计数,当计数为0 0时,发出一阵音乐声。时,发出一阵音乐声。程序执行后工作指示灯程序执行后工作指示灯LEDLED闪动,表示程序开始执行,按下闪动,表示程序开始执行,按下操操作键作键K1K1K4K4动作如下。动作如下。 K1K1可调整倒计数的时间可调整倒计数的时间1 16060分钟。分钟。 K2 K2设置倒计数的时间为设置倒计数的时间为5 5分钟,显示分钟,显示“0500”0500”。 K3 K3设置倒计数
21、的时间为设置倒计数的时间为1010分钟,显示分钟,显示“1000”1000”。 K4 K4设置倒计数的时间为设置倒计数的时间为2020分钟,显示分钟,显示“2000”2000”。复位后复位后LCDLCD的画面应能显示倒计时的分钟和秒数,此时按的画面应能显示倒计时的分钟和秒数,此时按K1K1键,键,30则在则在LCDLCD上显示出设置画面。此时,若:上显示出设置画面。此时,若: a. a. 按操作键按操作键K2K2增加倒计数的时间增加倒计数的时间1 1分钟。分钟。 b. b. 按操作键按操作键K3K3减少倒计数的时间减少倒计数的时间1 1分钟。分钟。 c. c. 按操作键按操作键K4K4设置完成
22、。设置完成。 键盘实现菜单功能的方法,已在题目键盘实现菜单功能的方法,已在题目4 4详细说明,不再赘详细说明,不再赘述。述。本题目最大难点是实现音乐的播放本题目最大难点是实现音乐的播放。作者利用定时计数器,。作者利用定时计数器,通过载入不同的计数初值,产生频率不同的方波,输入到蜂鸣通过载入不同的计数初值,产生频率不同的方波,输入到蜂鸣器(器(SOUNERSOUNER)中,使其发出频率不同的声音。本设计中单片机)中,使其发出频率不同的声音。本设计中单片机晶振为晶振为1.0592MHz1.0592MHz,通过计算各音阶频率,可得,通过计算各音阶频率,可得1 1、2 2、3 3、4 4、5 5、6
23、6、7 7共共7 7个音应赋给定时器的初值为个音应赋给定时器的初值为6458064580、6468464684、6477764777、6482064820、6489864898、6496864968、6503065030。在此基础上,可将乐曲的简谱转化为单片机可以在此基础上,可将乐曲的简谱转化为单片机可以“识别识别”的的“数组谱数组谱”,进一步加入对音长、休止符等的控制量后,可,进一步加入对音长、休止符等的控制量后,可以实现音乐的播放。以实现音乐的播放。3.3.电路设计(电路设计(ProteusProteus仿真通过)仿真通过)本题目制作的带有本题目制作的带有LCDLCD显示的音乐倒数计数器电
24、路原理图,如显示的音乐倒数计数器电路原理图,如下页图下页图所示。所示。 314. Proteus4. Proteus仿真仿真 加载目标代码文件加载目标代码文件 打开元器件单片机属性窗口,在打开元器件单片机属性窗口,在“Program File”Program File”栏中添加上面编译好的目标代码文件栏中添加上面编译好的目标代码文件“keil-5.hex”keil-5.hex”;在;在“Clock Frequency”Clock Frequency”栏中输入晶振频栏中输入晶振频率为率为11.0592MHz11.0592MHz。启动仿真如启动仿真如下页图下页图所示,当闹钟到达时,可以听见蜂鸣器演
25、奏所示,当闹钟到达时,可以听见蜂鸣器演奏的乐曲。再次提示,本题目必须选用蜂鸣器的乐曲。再次提示,本题目必须选用蜂鸣器SOUNDERSOUNDER,否则,否则不能发出声音。不能发出声音。34题目题目6 6 基于数字温度传感器的数字温度计基于数字温度传感器的数字温度计1. 1. 设计要求设计要求利用利用数字温度传感器数字温度传感器DS18B20DS18B20与单片机结合来测量温度。利与单片机结合来测量温度。利用数字温度传感器用数字温度传感器DS18B20DS18B20测量温度信号,计算后在测量温度信号,计算后在LEDLED数数码管上显示相应的温度值。其温度测量范围为码管上显示相应的温度值。其温度测
26、量范围为5555125125,精确到,精确到0.50.5。数字温度计所测量的温度采用数字。数字温度计所测量的温度采用数字显示,控制器使用单片机显示,控制器使用单片机AT89C51AT89C51,测温传感器使用,测温传感器使用DS18B20DS18B20,用,用3 3位共阳极位共阳极LEDLED数码管以串口传送数据,实现数码管以串口传送数据,实现温度显示。温度显示。2. 2. 实验原理实验原理从温度传感器从温度传感器DS18B20DS18B20可以很容易直接读取被测温度值,进可以很容易直接读取被测温度值,进行转换即满足设计要求。行转换即满足设计要求。DS18B20DS18B20温度传感器温度传感
27、器是美国是美国DALLASDALLAS半导体公司最新推出的一半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现简单的编程实现9 91212位的数字读数方式。位的数字读数方式。DS18B20DS18B20的性能如下。的性能如下。n独特的单线接口仅需要一个端口引脚进行通信。独特的单线接口仅需要一个端口引脚进行通信。n多个多个DS18B20DS18B20可以并联在串行传输的数据线上,实现多点可以并联在串行传输的数据线
28、上,实现多点组网功能。无须外部器件。组网功能。无须外部器件。3637n可通过数据线供电,电压范围为可通过数据线供电,电压范围为3.03.05.5V5.5V。n零待机功耗。零待机功耗。n温度以温度以9 9或或1212位的数字读数方式。位的数字读数方式。n用户可定义报警设置。用户可定义报警设置。n报警搜索命令识别并标志超过程序限定温度(温度报警条件)报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件。的器件。n负电压特性,电源极性接反时,温度计不会因发热而烧毁,负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。但不能正常工作。 n采用采用3引脚引脚PR-35封装或封装或
29、8引脚引脚SOIC封装。封装。3.3.电路设计(电路设计(ProteusProteus仿真通过)仿真通过)本项目制作的数字温度计电路原理图,如下所示:本项目制作的数字温度计电路原理图,如下所示:38 4. Proteus4. Proteus仿真仿真 加载目标代码文件加载目标代码文件 打开元器件单片机属性窗口,在打开元器件单片机属性窗口,在“Program File”Program File”栏中添加上面编译好的目标代码文件栏中添加上面编译好的目标代码文件“keil-6.hex”keil-6.hex”;在;在“Clock Frequency”Clock Frequency”栏中输入晶振频率栏中输
30、入晶振频率为为11.0592MHz11.0592MHz。 启动仿真如启动仿真如下页图下页图所示,其中,所示,其中,DS18B20DS18B20窗口显示的为当窗口显示的为当前环境温度,若调整前环境温度,若调整DS18B20DS18B20旁边的箭头,可改变环境温度,旁边的箭头,可改变环境温度,可以看到可以看到LEDLED显示屏上的温度值发生相应的变化。显示屏上的温度值发生相应的变化。 题目题目7 7 基于热敏电阻的数字温度计基于热敏电阻的数字温度计1. 1. 设计要求设计要求使用热敏电阻类的温度传感器件利用其感温效应,将随被测温使用热敏电阻类的温度传感器件利用其感温效应,将随被测温度变化的电压或电
31、流用单片机采集下来,将被测温度在显示度变化的电压或电流用单片机采集下来,将被测温度在显示器上显示出来:器上显示出来:n测量温度范围测量温度范围5050110110。n精度误差小于精度误差小于0.50.5。nLEDLED数码直读显示。数码直读显示。412 . 实验原理实验原理本题目使用本题目使用铂热电阻铂热电阻PT100PT100,其阻值会随着温度的变化而改变。,其阻值会随着温度的变化而改变。PTPT后的后的100100即表示它在即表示它在00时阻值为时阻值为100100欧姆,在欧姆,在100100时它的时它的阻值约为阻值约为138.5138.5欧姆。厂家提供有欧姆。厂家提供有PT100PT10
32、0在各温度下电阻值值在各温度下电阻值值的分度表,在此可以近似取电阻变化率为的分度表,在此可以近似取电阻变化率为 0.385/0.385/。向。向PT100PT100输入稳恒电流,再通过输入稳恒电流,再通过A/DA/D转换后测转换后测PT100PT100两端电压,两端电压,即得到即得到PT100PT100的电阻值,进而算出当前的温度值。的电阻值,进而算出当前的温度值。采用采用2.55mA2.55mA的电流源对的电流源对PT100PT100进行供电,然后用运算放大器进行供电,然后用运算放大器LM324LM324搭建的同相放大电路将其电压信号放大搭建的同相放大电路将其电压信号放大1010倍后输入到倍
33、后输入到AD0804AD0804中。利用电阻变化率中。利用电阻变化率0.385/0.385/的特性,计算出当前的特性,计算出当前温度值。温度值。42433.3.电路设计(电路设计(ProteusProteus仿真通过)仿真通过)4. Proteus4. Proteus仿真仿真首先加载目标代码文件首先加载目标代码文件 打开元器件单片机属性窗口,在打开元器件单片机属性窗口,在“Program File”Program File”栏中添加上面编译好的目标代码文件栏中添加上面编译好的目标代码文件“keil-7.hex”keil-7.hex”;在;在“Clock Frequency”Clock Freq
34、uency”栏中输入晶振栏中输入晶振频率为频率为12MHz12MHz。启动仿真如启动仿真如图图所示,其中,所示,其中,PT100PT100旁边的数字窗口显示的为旁边的数字窗口显示的为测定的环境温度,通过调整上下温度,可以实现对环境温测定的环境温度,通过调整上下温度,可以实现对环境温度的改变。值得注意的是,由于本项目使用的核心测温器度的改变。值得注意的是,由于本项目使用的核心测温器件件PT100PT100对温度存在一定的响应时间,故启动程序后一段对温度存在一定的响应时间,故启动程序后一段时间测定的温度才能稳定下来。时间测定的温度才能稳定下来。本题目本题目测温误差测温误差主要由以下几点引发:主要由
35、以下几点引发:ADC0804ADC0804为为8 8位位ADCADC芯片,精度有限;程序假定芯片,精度有限;程序假定PT100PT100为完全线性为完全线性的器件,而即使是厂家推荐的线性值也会存在一定误差;运的器件,而即使是厂家推荐的线性值也会存在一定误差;运放电路并非绝对线性。如使用放电路并非绝对线性。如使用1212位位ADCADC芯片,采用芯片,采用“四线制四线制”的的PT100PT100接法,采用查表法测定温度值,将极大提高温度接法,采用查表法测定温度值,将极大提高温度的测量精度。的测量精度。 47题目题目8 8 十字路口交通灯控制十字路口交通灯控制1. 1. 设计要求设计要求设计一个十
36、字路口交通灯控制器。用单片机控制设计一个十字路口交通灯控制器。用单片机控制LEDLED灯模拟灯模拟指示。模拟东西方向的十字路口交通信号控制情况。东西向指示。模拟东西方向的十字路口交通信号控制情况。东西向通行时间为通行时间为80s80s,南北向通行时间为,南北向通行时间为60s60s,缓冲时间为,缓冲时间为3s3s。2. 2. 实验原理实验原理本项目为典型的本项目为典型的LEDLED显示和中断定时电路。利用定时器显示和中断定时电路。利用定时器T0T0产产生每生每10ms10ms一次的中断,每一次的中断,每100100次中断为次中断为1s1s。对两个方向分别。对两个方向分别显示红、绿、黄灯,已经相
37、应的剩余时间即可。值得注意的显示红、绿、黄灯,已经相应的剩余时间即可。值得注意的是,需要意识到,是,需要意识到,A A方向红灯时间方向红灯时间=B=B方向绿灯时间方向绿灯时间+ +黄灯缓冲黄灯缓冲时间这一常识。时间这一常识。本项目使用的本项目使用的MAX7219MAX7219芯片使用方法请参考题目芯片使用方法请参考题目3 3。3.3.电路设计(电路设计(ProteusProteus仿真通过)仿真通过)本项目制作的十字路口交通灯控制电路原理图,如本项目制作的十字路口交通灯控制电路原理图,如下页图下页图:49504.Proteus4.Proteus仿真仿真 题目题目9 9 波形发生器设计波形发生器
38、设计1. 1. 设计要求设计要求 设计一个能产生正弦波、方波、三角波、梯形波、锯齿设计一个能产生正弦波、方波、三角波、梯形波、锯齿波的波形发生器。波的波形发生器。2. 2. 实验原理实验原理 产生指定波形可以通过产生指定波形可以通过DACDAC来实现,不同波形产生实质来实现,不同波形产生实质上是对输出的二进制数字量进行相应改变来实现的。本题目上是对输出的二进制数字量进行相应改变来实现的。本题目中,中,方波信号方波信号是利用定时器中断产生的,每次中断时,将输是利用定时器中断产生的,每次中断时,将输出的信号按位反即可;出的信号按位反即可;三角波信号三角波信号是将输出的二进制数字信是将输出的二进制数
39、字信号依次加号依次加1 1,达到,达到0xff0xff时依次减时依次减1 1,并实时将数字信号经,并实时将数字信号经D/AD/A转换得到;转换得到;锯齿波锯齿波信号是将输出的二进制数字信号依次信号是将输出的二进制数字信号依次51加加1 1,达到,达到0xff0xff时置为时置为0x000x00,并实时将数字信号经,并实时将数字信号经D/AD/A转换得转换得到的;到的; 梯形波梯形波是将输出的二进制数字信号依次加是将输出的二进制数字信号依次加1 1,达到,达到0xff0xff时时保持一段时间,然后依次减保持一段时间,然后依次减1 1直至直至0x000x00,并实时将数字信号经,并实时将数字信号经
40、D/AD/A转换得到的;转换得到的; 正弦波正弦波是利用是利用MATLABMATLAB将正弦曲线均匀取样后,得到等间隔将正弦曲线均匀取样后,得到等间隔时刻的时刻的y y方向上的二进制数值,然后依次输出后经方向上的二进制数值,然后依次输出后经D/AD/A转换得转换得到。到。3.3.电路设计(电路设计(ProteusProteus仿真通过)仿真通过) 本波形发生器的设计电路原理图,如本波形发生器的设计电路原理图,如下页图下页图所示:所示:5354题目题目10 10 电容、电阻参数单片机测试系统的设计电容、电阻参数单片机测试系统的设计1. 1. 设计要求设计要求 设计一个能测量电容、电阻参数的测试系
41、统。设计一个能测量电容、电阻参数的测试系统。2 2 实验原理实验原理 对电阻的测量,可将待测电阻与一标准电阻串联后接在对电阻的测量,可将待测电阻与一标准电阻串联后接在+5V+5V的电源上,根据串联分压原理,利用的电源上,根据串联分压原理,利用ADCADC测定电阻两端电测定电阻两端电压后,即可得到其阻值。对电容的测量,可将其与已知阻值压后,即可得到其阻值。对电容的测量,可将其与已知阻值的电阻的电阻R RA A和和R RB B组成基于组成基于NE555的多谐振荡器如的多谐振荡器如下页图下页图。其产生。其产生的方波信号频率为的方波信号频率为 : 、故故通通过过测测定定方方波波信信号号的的频频率率可可
42、以以比比较较精精确确的的测测定定C C的的值值。测测定定方方波信号频率的方法,请见波信号频率的方法,请见题目题目1111。3. 3. 电路设计(电路设计( ProteusProteus仿真通过)仿真通过)本题目的电容、电阻参数单片机测试系统的设计本题目的电容、电阻参数单片机测试系统的设计电路原理图电路原理图,见,见下页。下页。5657584. Proteus4. Proteus仿真仿真 测量电阻仿真如下图所示,但由于测量电阻仿真如下图所示,但由于ProteusProteus中中555555芯片模型芯片模型存在问题,无法实现对电容测量的仿真,且仿真时必须删去存在问题,无法实现对电容测量的仿真,且
43、仿真时必须删去555555的电路模块。的电路模块。题目题目11 11 数字频率计数字频率计1. 1. 设计要求设计要求设计一个以单片机为核心的频率测量装置。使用设计一个以单片机为核心的频率测量装置。使用AT89C51AT89C51单单片机的定时器片机的定时器/ /计数器的定时和计数功能,外部扩展计数器的定时和计数功能,外部扩展6 6位位LEDLED数码管,要求累计每秒进入单片机的外部脉冲个数码管,要求累计每秒进入单片机的外部脉冲个数,用数,用LEDLED数码管显示出来。数码管显示出来。(1)(1)被测频率被测频率fxfx110Hz110Hz,采用测周法,显示频率,采用测周法,显示频率. . ;
44、fxfx110Hz110Hz,采用测频法,显示频率,采用测频法,显示频率。(2)(2)利用键盘分段测量和自动分段测量。利用键盘分段测量和自动分段测量。 (3) (3)完成单脉冲测量,输入脉冲宽度范围是完成单脉冲测量,输入脉冲宽度范围是100100 s s0.1s0.1s。 (4) (4)显示脉冲宽度要求如下。显示脉冲宽度要求如下。 Tx Tx10001000 s s,显示脉冲宽度,显示脉冲宽度。 Tx Tx10001000 s s,显示脉冲宽度,显示脉冲宽度。2. 2. 实验原理实验原理 测量频率有测频法和测周法两种。测量频率有测频法和测周法两种。 (1)(1)测频法测频法,利用外部电平变化引
45、发的外部中断,测算,利用外部电平变化引发的外部中断,测算1s1s内内的波数,从而实现对频率的测定;的波数,从而实现对频率的测定; (2) (2)测周法测周法,通过测算某两次电平变化引发的中断之间的时,通过测算某两次电平变化引发的中断之间的时间,实现对频率的测定。简而言之,测频法是直接根据定义测间,实现对频率的测定。简而言之,测频法是直接根据定义测定频率,测周法是通过测定周期间接测定频率。定频率,测周法是通过测定周期间接测定频率。60 理论上,测频法适用于较高频率的测量,测周法适用于较低理论上,测频法适用于较高频率的测量,测周法适用于较低频频 率的测量。率的测量。 经过调校,在测量低频信号时,本
46、项目中测频法精度已高于经过调校,在测量低频信号时,本项目中测频法精度已高于测测 周法,故舍弃测周法,全量程采用测频法。周法,故舍弃测周法,全量程采用测频法。3. 3. 电路设计(电路设计( ProteusProteus仿真通过)仿真通过) 以单片机为核心的频率计电路原理图,如以单片机为核心的频率计电路原理图,如下页图下页图所示:所示:61634. Proteus4. Proteus仿真仿真 加载目标代码文件加载目标代码文件 打开元器件单片机属性窗口,在打开元器件单片机属性窗口,在“Program File”Program File”栏中添加上面编译好的目标代码文件栏中添加上面编译好的目标代码文
47、件“keil-16.hex”keil-16.hex”;在;在“Clock Frequency”Clock Frequency”栏中输入晶振频栏中输入晶振频率为率为12MHz12MHz。 启动仿真如启动仿真如后两页后两页图(图(a)a)和和图(图(b)b)所示所示: :64图(图(a) 仿真仿真165图(图(b) 仿真仿真2题目题目12 812 8位竞赛抢答器的设计位竞赛抢答器的设计1.1.设计要求设计要求 以单片机为核心,设计一个以单片机为核心,设计一个8 8位竞赛抢答器:同时供位竞赛抢答器:同时供8 8名选手名选手或或8 8个代表队比赛,分别用个代表队比赛,分别用8 8个按钮个按钮S0S0S
48、7S7表示。表示。 设置一个系统清除和抢答控制开关设置一个系统清除和抢答控制开关S S,开关由主持人控制。,开关由主持人控制。抢答器具有锁存与显示功能。即选手按按钮,锁存相应的编号,抢答器具有锁存与显示功能。即选手按按钮,锁存相应的编号,并在优先抢答选手的编号一直保持到主持人将系统清除为止。并在优先抢答选手的编号一直保持到主持人将系统清除为止。 抢答器具有定时抢答功能,且一次抢答的时间由主持人设定抢答器具有定时抢答功能,且一次抢答的时间由主持人设定(如(如3030秒)。秒)。 当主持人启动当主持人启动“开始开始”键后,定时器进行减计时,同时键后,定时器进行减计时,同时扬声器发出短暂的声响,声响
49、持续的时间为扬声器发出短暂的声响,声响持续的时间为0.5s0.5s左右。左右。 参赛选手在设定的时间内进行抢答,抢答有效,定时器参赛选手在设定的时间内进行抢答,抢答有效,定时器停止工作,显示器上显示选手的编号和抢答的时间,并保持停止工作,显示器上显示选手的编号和抢答的时间,并保持到主持人将系统清除为止。到主持人将系统清除为止。 如果定时时间已到,无人抢答,本次抢答无效,系统报如果定时时间已到,无人抢答,本次抢答无效,系统报警并禁止抢答,定时显示器上显示警并禁止抢答,定时显示器上显示0000。 2. 2. 实验原理实验原理 通过键盘改变抢答的时间,原理与闹钟时间的设定相同,通过键盘改变抢答的时间
50、,原理与闹钟时间的设定相同,将定时时间的变量置为全局变量后,通过键盘扫描程序使每将定时时间的变量置为全局变量后,通过键盘扫描程序使每按下一次按键,时间加按下一次按键,时间加1 1(超过(超过3030时置时置0 0)。同时单片机)。同时单片机67不断进行按键扫描,当参赛选手的按键按下时,用于产生时不断进行按键扫描,当参赛选手的按键按下时,用于产生时钟信号的定时计数器停止计数,同时将选手编号(按键号)钟信号的定时计数器停止计数,同时将选手编号(按键号)和抢答时间分别显示在和抢答时间分别显示在LEDLED上。上。 3. 3. 电路设计(电路设计(ProteusProteus仿真通过)仿真通过) 8
51、8位竞赛抢答器的设计电路原理图,如位竞赛抢答器的设计电路原理图,如下页图下页图所示:所示:4. Proteus4. Proteus仿真仿真 加载目标代码文件加载目标代码文件 打开元器件单片机属性窗口,在打开元器件单片机属性窗口,在“Program File”Program File”栏中添加上面编译好的目标代码文件栏中添加上面编译好的目标代码文件“keil-19.hex”keil-19.hex”;在;在“Clock Frequency”Clock Frequency”栏中输入晶振频栏中输入晶振频率为率为12MHz12MHz。仿真:单击按钮,启动仿真,结果如。仿真:单击按钮,启动仿真,结果如下页
52、图下页图所所示示: :题目题目13 13 单词记忆测试器程序设计单词记忆测试器程序设计1. 1. 设计要求设计要求 设计一个以单片机为核心的单词记忆测试器:设计一个以单片机为核心的单词记忆测试器: 实现单词的录入(为使程序具有可演示性,单词不少于实现单词的录入(为使程序具有可演示性,单词不少于1010个)。个)。 单词用按键控制依次在屏幕上显示,按键选择认识还是单词用按键控制依次在屏幕上显示,按键选择认识还是不认识,也可以直接进入下一个或者上一个。不认识,也可以直接进入下一个或者上一个。 单词背完后给出正确率。单词背完后给出正确率。2. 2. 实验原理实验原理 本题目实质上是一个具有一定复杂程
53、度键盘扫描程序,可本题目实质上是一个具有一定复杂程度键盘扫描程序,可将单词存储在一个二维数组中,按将单词存储在一个二维数组中,按“确定确定”键开始程序后,次键开始程序后,次显示显示0 0行的数组,即第一个单词。之后按下行的数组,即第一个单词。之后按下“向上向上”按键,显示按键,显示上一行数组,即上一个单词;上一行数组,即上一个单词; 按下按下“向下向下”按键,显示下一行数组,即下一个单词。当显按键,显示下一行数组,即下一个单词。当显示的行数超过示的行数超过9 9时,程序结束,并通过按时,程序结束,并通过按“确认确认”的次数,计算的次数,计算出正确率。出正确率。 3.3.电路设计(电路设计(Pr
54、oteusProteus仿真通过)仿真通过) 本项目制作的单词记忆测试器程序设计电路如本项目制作的单词记忆测试器程序设计电路如下页图下页图所示。所示。4. Proteus4. Proteus仿真仿真 加载目标代码文件加载目标代码文件 打开元器件单片机属性窗口,在打开元器件单片机属性窗口,在“Program File”Program File”栏中添加上面编译好的目标代码文件栏中添加上面编译好的目标代码文件“keil-keil-18.hex”18.hex”;在;在“Clock Frequency”Clock Frequency”栏中输入晶振频率为栏中输入晶振频率为11.0592MHz11.059
55、2MHz。 启动仿真如启动仿真如下页图下页图 (a)-(c) (a)-(c)所示所示: :图(图(a a) 单词记忆测试器程序设计启动界面仿真效果图单词记忆测试器程序设计启动界面仿真效果图图(图(b b) 单词记忆测试器程序设计测试界面仿真效果图单词记忆测试器程序设计测试界面仿真效果图图(图(c c) 单词记忆测试器程序设计正确率显示界面仿真效果单词记忆测试器程序设计正确率显示界面仿真效果 题目题目14 14 数字电压表设计数字电压表设计1. 1. 设计要求设计要求 以单片机为核心,设计一个数字电压表。采用中断方式,对以单片机为核心,设计一个数字电压表。采用中断方式,对2 2路路0 05V5V
56、的模拟电压进行循环采集,采集的数据送的模拟电压进行循环采集,采集的数据送LEDLED显示,并显示,并存入内存。超过界限时指示灯闪烁。存入内存。超过界限时指示灯闪烁。2. 2. 实验原理实验原理 本题目本质上是以单片机为控制器,本题目本质上是以单片机为控制器,ADC0809ADC0809为为ADCADC器件的器件的ADAD转换电路,设计要求的电压显示,是对转换电路,设计要求的电压显示,是对ADCADC采集所得信号的进一采集所得信号的进一步处理。步处理。 为得到可读的电压值,需根据为得到可读的电压值,需根据ADCADC的原理,对采集所得的的原理,对采集所得的信号进行计算,并显示在信号进行计算,并显
57、示在LEDLED上。本项目中上。本项目中ADC0809ADC0809的参考电压为的参考电压为+5V+5V,根据定义,采集所得的二进制信号,根据定义,采集所得的二进制信号addataaddata所指代的电压值所指代的电压值为为: : 而若将其显示到小数点后两位,不考虑小数点的存在(将其乘以而若将其显示到小数点后两位,不考虑小数点的存在(将其乘以100100),其计算的数值为:),其计算的数值为:。将小数点显示在第二位数码管上,即为实际的电压。将小数点显示在第二位数码管上,即为实际的电压。本示例程序将本示例程序将1.25 V1.25 V和和2.5 V2.5 V作为两路输入的报警值,反映在作为两路输
58、入的报警值,反映在二进制数字上,分别为二进制数字上,分别为0x400x40和和0x800x80。当。当ADAD结果超过这一数结果超过这一数值时,将会出现二极管闪烁和蜂鸣器发声。值时,将会出现二极管闪烁和蜂鸣器发声。3. 3. 电路设计(电路设计(ProteusProteus仿真通过)仿真通过)本单片机数字电压表电路原理图,如本单片机数字电压表电路原理图,如下页图下页图所示:所示:4. Proteus4. Proteus仿真仿真 加载目标代码文件加载目标代码文件 打开元器件单片机属性窗口,在打开元器件单片机属性窗口,在“Program File”Program File”栏中添加上面编译好的目标
59、代码文件栏中添加上面编译好的目标代码文件“xxxxx.hex“xxxxx.hex;在;在“Clock Frequency”Clock Frequency”栏中输入晶振频率为栏中输入晶振频率为12MHz12MHz。ADC0809ADC0809的时钟信号设置为的时钟信号设置为640kHz640kHz。 启动仿真,如启动仿真,如下页图下页图所示,当调节滑动变阻器时,可观察所示,当调节滑动变阻器时,可观察到显示的电压发生变化,且两路输入电压的测算值交替显示到显示的电压发生变化,且两路输入电压的测算值交替显示. .。当任一路电压输入超过预设值时,。当任一路电压输入超过预设值时,LEDLED显示器闪烁,蜂
60、鸣器显示器闪烁,蜂鸣器发声。由于发声。由于8 8位位ADAD芯片精度有限,其误差大约在几十芯片精度有限,其误差大约在几十mVmV左右。左右。题目题目15 15 可编程作息时间控制器设计可编程作息时间控制器设计1. 1. 设计要求设计要求 设计一个以单片机为核心的可编程作息时间控制器:设计一个以单片机为核心的可编程作息时间控制器:按照给定的时间模拟控制,实现广播、上下课打铃、灯光控按照给定的时间模拟控制,实现广播、上下课打铃、灯光控制(屏幕显示)制(屏幕显示), ,同时具备日期和时钟显示。同时具备日期和时钟显示。2. 2. 实验原理实验原理 本题目原理与题目本题目原理与题目4 4相同,程序是在题
61、目相同,程序是在题目4 4的基础上将定的基础上将定时闹钟改造为时闹钟改造为4 4路可调闹钟,从而实现打铃等功能。当四路路可调闹钟,从而实现打铃等功能。当四路闹钟中的任一路到时,均会点亮灯、打铃。如有需求,可对闹钟中的任一路到时,均会点亮灯、打铃。如有需求,可对程序进行调整,增加闹钟的路数,及到时后的处理方式。程序进行调整,增加闹钟的路数,及到时后的处理方式。 题目中题目中4 4个按键的功能分别为:设置限制的时间个按键的功能分别为:设置限制的时间/ /时的调时的调整、显示闹钟设置的时间整、显示闹钟设置的时间/ /分的调整、设置闹钟的时间分的调整、设置闹钟的时间/ /设置设置完成、闹钟更换。完成、
62、闹钟更换。3. 3. 电路设计(电路设计(ProteusProteus仿真通过)仿真通过) 本可编程作息时间控制器程序设计电路原理图,如本可编程作息时间控制器程序设计电路原理图,如下页下页图图所示:所示:4. Proteus4. Proteus仿真仿真 加载目标代码文件加载目标代码文件 打开元器件单片机属性窗口,在打开元器件单片机属性窗口,在“Program File”Program File”栏中添加上面编译好的目标代码文件栏中添加上面编译好的目标代码文件“keil-17.hex”keil-17.hex”;在;在“Clock Frequency”Clock Frequency”栏中输入晶振频
63、栏中输入晶振频率为率为11.0592MHz11.0592MHz。 启动仿真如启动仿真如下页图下页图所示,当四路闹钟中的任一路到时,所示,当四路闹钟中的任一路到时,均会点亮灯、打铃。均会点亮灯、打铃。题目题目16 16 节日彩灯控制器的设计节日彩灯控制器的设计1. 1. 设计要求设计要求以单片机为核心,设计一个节日彩灯控制器:以单片机为核心,设计一个节日彩灯控制器: P1.2P1.2开始,按此键则灯开始流动(由上而下)。开始,按此键则灯开始流动(由上而下)。 P1.3P1.3停止,按此键则停止流动,所有灯为暗。停止,按此键则停止流动,所有灯为暗。 P1.4P1.4上,按此键则灯由上向下流动。上,
64、按此键则灯由上向下流动。 P1.5P1.5下,按此键则灯由下向上流动。下,按此键则灯由下向上流动。2. 2. 实验原理实验原理 本题目本质上是由按键控制功能的流水灯,本题目本质上是由按键控制功能的流水灯,LEDLED工作的方工作的方式通过键盘的扫描实现。其中的式通过键盘的扫描实现。其中的LEDLED采取共阳极接法,通过采取共阳极接法,通过依次向连接依次向连接LEDLED的的/ /口送出低电平,可实现题目要求的功口送出低电平,可实现题目要求的功能。能。3. 3. 电路设计(电路设计(ProteusProteus仿真通过)仿真通过) 本节日彩灯控制器电路原理图,如本节日彩灯控制器电路原理图,如下页
65、图下页图所示,各按键所示,各按键功能与实验设计要求相同:功能与实验设计要求相同:4. Proteus4. Proteus仿真仿真加载目标代码文件加载目标代码文件 打开元器件单片机属性窗口,在打开元器件单片机属性窗口,在“Program Program File”File”栏中添加上面编译好的目标代码文件栏中添加上面编译好的目标代码文件“keil-1.hex”keil-1.hex”;在;在“Clock Frequency”Clock Frequency”栏中输入晶振频率为栏中输入晶振频率为12MHz12MHz。启动仿真如启动仿真如下页图下页图所示所示: :题目题目17 17 双机之间的串行通信设
66、计双机之间的串行通信设计1. 1. 设计要求设计要求 两片单片机利用串行口进行串行通信:串行通信的波特率两片单片机利用串行口进行串行通信:串行通信的波特率可从键盘进行设定,可选的波特率为可从键盘进行设定,可选的波特率为12001200、24002400、48004800和和9600bit/s9600bit/s。串行口工作方式为方式。串行口工作方式为方式1 1的全双工串行通信。的全双工串行通信。2. 2. 实验原理实验原理 两个单片机之间进行通讯波特率的设定,最终归结到对定两个单片机之间进行通讯波特率的设定,最终归结到对定时计数器时计数器T1T1计数初值计数初值TH1TH1、TL1TL1进行设定
67、。故本题目本质上是通进行设定。故本题目本质上是通过键盘扫描得到设定的波特率,从而载入相应的过键盘扫描得到设定的波特率,从而载入相应的T1T1计数初值计数初值TH1TH1、TL1TL1实现的。示例程序中将实现的。示例程序中将0xaa0xaa从主机传输到从机从主机传输到从机,并显示在从机的数码管上实现串口通讯的验证。并显示在从机的数码管上实现串口通讯的验证。 如串口通讯线路过长,可考虑采用如串口通讯线路过长,可考虑采用MAX232MAX232进行电平转换,以进行电平转换,以延长传输距离。值得注意的是,为了减少计算载入初值时的误差,延长传输距离。值得注意的是,为了减少计算载入初值时的误差,本项目最好
68、采取本项目最好采取11.0592MHz11.0592MHz的晶振。的晶振。3. 3. 电路设计(电路设计(ProteusProteus仿真通过)仿真通过) 两个单片机之间的串行通信接口设计电路原理图,如两个单片机之间的串行通信接口设计电路原理图,如下页图下页图所示:所示: 4. Proteus4. Proteus仿真仿真加载目标代码文件加载目标代码文件 打开元器件单片机属性窗口,在打开元器件单片机属性窗口,在“Program File”Program File”栏中添加上面编译好的目标代码文件栏中添加上面编译好的目标代码文件“master.hex”master.hex”或或slave.hexs
69、lave.hex;在;在“Clock Frequency”Clock Frequency”栏栏中输入晶振频率为中输入晶振频率为11.0592MHz11.0592MHz。启动仿真如启动仿真如下页图下页图所示,当二极管间隔点亮时,表明通讯所示,当二极管间隔点亮时,表明通讯成功成功: :题目题目18 18 电子琴设计电子琴设计1. 1. 设计要求设计要求 设计一个电子琴。利用所给键盘的设计一个电子琴。利用所给键盘的1 1,2 2,3 3,4 4,5 5,6 6,7 7,8 8八个键,能够发出八个键,能够发出8 8个不同的音调,并且要求按下按键发个不同的音调,并且要求按下按键发声,松开延时一段时间停止
70、,中间再按别的键则发另一音调声,松开延时一段时间停止,中间再按别的键则发另一音调的声音。的声音。2. 2. 实验原理实验原理 当系统扫描到键盘上有键被按下,则快速检测出是哪一当系统扫描到键盘上有键被按下,则快速检测出是哪一个键被按下,然后单片机的定时器被启动,发出一定频率的个键被按下,然后单片机的定时器被启动,发出一定频率的脉冲,该频率的脉冲输入到蜂鸣器后,就会发出相应的音调。脉冲,该频率的脉冲输入到蜂鸣器后,就会发出相应的音调。 如果在前一个按下的键发声的同时有另一个键被按下,如果在前一个按下的键发声的同时有另一个键被按下,则启用中断系统,前面键的发音停止,转到后按的键的发音则启用中断系统,
71、前面键的发音停止,转到后按的键的发音程序,发出后按的键的音调。关于发声原理,参见题目程序,发出后按的键的音调。关于发声原理,参见题目5 5。3. 3. 电路设计(电路设计(ProteusProteus仿真通过)仿真通过) 本电子琴设计电路原理图,如本电子琴设计电路原理图,如下页图下页图所示:所示:4. Proteus4. Proteus仿真仿真 加载目标代码文件加载目标代码文件 打开元器件单片机属性窗口,在打开元器件单片机属性窗口,在“Program File”Program File”栏中添加上面编译好的目标代码文件栏中添加上面编译好的目标代码文件“keil-23.hex”keil-23.h
72、ex”;在;在“Clock Frequency”Clock Frequency”栏中输入晶振频栏中输入晶振频率为率为11.0592MHz11.0592MHz。 启动仿真如启动仿真如下页图下页图所示,依次按下各按键可听见不同的所示,依次按下各按键可听见不同的音阶音阶: :题目题目19 19 数字音乐盒的设计数字音乐盒的设计1. 1. 设计要求设计要求 以单片机为核心,设计一个数字音乐盒:以单片机为核心,设计一个数字音乐盒: 利用利用I/OI/O口产生一定频率的方波,驱动蜂鸣器,发出不同的口产生一定频率的方波,驱动蜂鸣器,发出不同的音调,从而演奏乐曲(最少音调,从而演奏乐曲(最少3 3首乐曲,每首
73、不少于首乐曲,每首不少于30s30s)。)。采用采用LCDLCD显示信息。显示信息。 a. a. 开机时有英文欢迎提示字符,播放时显示歌曲序号开机时有英文欢迎提示字符,播放时显示歌曲序号(或名称)。(或名称)。 b. b. 可通过功能键选择乐曲、暂停、播放。可通过功能键选择乐曲、暂停、播放。2. 2. 电路设计(电路设计(ProteusProteus仿真通过)仿真通过) 本数字音乐盒的电路设计原理图,如下图所示。本数字音乐盒的电路设计原理图,如下图所示。3. Proteus3. Proteus仿真仿真 加载目标代码文件加载目标代码文件 打开元器件单片机属性窗口,在打开元器件单片机属性窗口,在“
74、Program File”Program File”栏中添加上面编译好的目标代码文件栏中添加上面编译好的目标代码文件“keil-24.hex”keil-24.hex”;在;在“Clock Frequency”Clock Frequency”栏中输入晶振频栏中输入晶振频率为率为11.0592MHz11.0592MHz。 启动仿真如启动仿真如下页图下页图所示,其中,液晶显示器显示的为当所示,其中,液晶显示器显示的为当前乐曲等信息,同时可听见音乐的播放声前乐曲等信息,同时可听见音乐的播放声数字音乐盒的设计仿真液晶显示效果图数字音乐盒的设计仿真液晶显示效果图题目题目20 20 单片机控制步进电机单片机
75、控制步进电机1. 1. 设计要求设计要求 采用单片机控制一个三相单三拍的步进电机工作。步进采用单片机控制一个三相单三拍的步进电机工作。步进电机的旋转方向由正反转控制信号控制。步进电机的步数由电机的旋转方向由正反转控制信号控制。步进电机的步数由键盘输入,可输入的步数分别为键盘输入,可输入的步数分别为3 3、6 6、9 9、1212、1515、1818、2121、2424和和2727步,且键盘具有键盘锁功能,当键盘上锁时,步进步,且键盘具有键盘锁功能,当键盘上锁时,步进电机不接受输入步数,也不会运转。只有当键盘锁打开并输电机不接受输入步数,也不会运转。只有当键盘锁打开并输入步数时,步进电机才开始工
76、作。入步数时,步进电机才开始工作。 电机运转的时候有正转和反转指示灯指示。电机运转的时候有正转和反转指示灯指示。 电机在运转过程中,如果过热,则电机停止运转,同时电机在运转过程中,如果过热,则电机停止运转,同时红色指示灯亮,同时警报响。红色指示灯亮,同时警报响。本题目的关键之处是本题目的关键之处是:如何生成:如何生成控制步进电机的脉冲序列。控制步进电机的脉冲序列。2. 2. 实验原理实验原理 步进电机的不同驱动方式,都是在工作时,脉冲信号按一步进电机的不同驱动方式,都是在工作时,脉冲信号按一定顺序轮流加到三相绕组上,从而实现不同的工作状态。由于定顺序轮流加到三相绕组上,从而实现不同的工作状态。
77、由于通电顺序不同,其运行方式有通电顺序不同,其运行方式有三相单三相拍、三相双三拍和三三相单三相拍、三相双三拍和三相单、双六拍相单、双六拍三种(注意:上面三种(注意:上面“三相单三拍三相单三拍”中的中的“三相三相”指定子有三相绕组;指定子有三相绕组;“拍拍”是指定子绕组改变一次通电方式;是指定子绕组改变一次通电方式;“三拍三拍”表示通电三次完成一个循环。表示通电三次完成一个循环。“三相双三拍三相双三拍”中的中的“双双”是指同时有两相绕组通电)。是指同时有两相绕组通电)。(1 1)三相单三拍运行方式)三相单三拍运行方式:下页图下页图所示为反应式步进电动所示为反应式步进电动机工作原理图,若通过脉冲分
78、配器输出的第一个脉冲使机工作原理图,若通过脉冲分配器输出的第一个脉冲使A A相相绕组通电,绕组通电,B,CB,C相绕组不通电,在相绕组不通电,在A A相绕组通电后产生的磁场相绕组通电后产生的磁场将使转子将使转子 上产生反应转矩,转子的上产生反应转矩,转子的1 1、3 3齿将与定子磁极对齿将与定子磁极对齐,如果齐,如果图(图(a a)所示。第二个脉冲到来,使所示。第二个脉冲到来,使B B相绕组通电,相绕组通电,而而A A、C C相绕组不通电;相绕组不通电;B B相绕组产生的磁场将相绕组产生的磁场将 使转子的使转子的2 2、4 4齿与齿与B B相磁极对齐,如相磁极对齐,如图(图(b b)所示,与所
79、示,与图(图(a a)相比,转子相比,转子逆时针方向转动了一个角度。第三个脉冲到来后,是逆时针方向转动了一个角度。第三个脉冲到来后,是C C相绕相绕组通电,而组通电,而 A A、B B相不通电,这时转子的相不通电,这时转子的1 1、3 3齿会与齿会与C C组对齐,组对齐,转子的位置如转子的位置如图(图(c)c)所示,与所示,与图(图(b)b)比较,又逆时针转过了比较,又逆时针转过了一个角度。一个角度。图图 反应式步进电机工作原理图反应式步进电机工作原理图 当脉冲不断到来时,通过分配器使定子的绕组按着当脉冲不断到来时,通过分配器使定子的绕组按着A A相相-B-B相相-C-C相相-A-A相相的规律
80、不断地接通与断开,这时步进电动机的的规律不断地接通与断开,这时步进电动机的转子就连续不停地一步步的逆时转子就连续不停地一步步的逆时 针方向转动。如果改变步进电针方向转动。如果改变步进电动机的转动方向,只要将定子各绕组通电的顺序改为动机的转动方向,只要将定子各绕组通电的顺序改为A A相相-C-C相相- -B-B相相-A-A相,转子转动方向即改为顺时针方向。相,转子转动方向即改为顺时针方向。 单三拍分配方式时,步进电动机由单三拍分配方式时,步进电动机由A A相通电转换到相通电转换到B B相同点,相同点,步进电动机的转子转过一个角度,称为一步。这时转子转过的步进电动机的转子转过一个角度,称为一步。这
81、时转子转过的角度是角度是3030度。步进电动机每一步转过的角度称为度。步进电动机每一步转过的角度称为步距角步距角。 (2 2)三相双三拍运行方式三相双三拍运行方式:)三相双三拍运行方式三相双三拍运行方式:每次都有每次都有两个绕组通电,通电方式是两个绕组通电,通电方式是AB-BC-CA-ABAB-BC-CA-AB,如果通电顺,如果通电顺序改为序改为AB-CA-BC-ABAB-CA-BC-AB则步进电机反转。双三拍分配方式则步进电机反转。双三拍分配方式时,步进电动机的步距角也是时,步进电动机的步距角也是3030度度 (3 3)三相单,双六拍运行方式:)三相单,双六拍运行方式:三相六拍分配方式就是每
82、三相六拍分配方式就是每个周期内有个周期内有六个通电状态六个通电状态。这六中通电状态的顺序可以使。这六中通电状态的顺序可以使A-A-AB-B-BC-C-CA-AAB-B-BC-C-CA-A或者或者A- CA-C-BC-B-AB-AA- CA-C-BC-B-AB-A六拍通电方式中,有一个时刻两个绕组同时通电,这是转子齿六拍通电方式中,有一个时刻两个绕组同时通电,这是转子齿的位置将位于通电的两相的中间位置。在三相六拍分配的位置将位于通电的两相的中间位置。在三相六拍分配 方式方式下,转子每一步转过的角度只是三相三拍方式下的一半,步距下,转子每一步转过的角度只是三相三拍方式下的一半,步距角是角是1515
83、度度。 单三拍运行的突出问题是每次只有一相绕组通电,在转换过单三拍运行的突出问题是每次只有一相绕组通电,在转换过程中,一相绕组断电,另一相绕组通电,容易发生失步;另外单程中,一相绕组断电,另一相绕组通电,容易发生失步;另外单靠一相绕组通电吸引转子,稳定性不好,容易在平衡位置附近震靠一相绕组通电吸引转子,稳定性不好,容易在平衡位置附近震荡,故用的较少。荡,故用的较少。 双三拍运行的特点是每次都有两相绕组通电,且在转换过程双三拍运行的特点是每次都有两相绕组通电,且在转换过程中始终有一相绕组保持通电状态,因此工作稳定,且步距角与单中始终有一相绕组保持通电状态,因此工作稳定,且步距角与单三拍相同。三拍
84、相同。 六拍运行方式转换时始终有一相绕组通电,且步距角较小,六拍运行方式转换时始终有一相绕组通电,且步距角较小,故工作稳定性好,但电源较复杂,实际应用较多。故工作稳定性好,但电源较复杂,实际应用较多。3. 3. 电路设计(电路设计(ProteusProteus仿真通过)仿真通过) 本单片机控制步进电机电路原理图,如本单片机控制步进电机电路原理图,如下页图下页图所示:所示:4. Proteus4. Proteus仿真仿真 加载目标代码文件加载目标代码文件 打开元器件单片机属性窗口,在打开元器件单片机属性窗口,在“Program File”Program File”栏中添加上面编译好的目标代码文件
85、栏中添加上面编译好的目标代码文件“keil-1.hex”keil-1.hex”;在;在“Clock Frequency”Clock Frequency”栏中输入晶振频栏中输入晶振频率为率为12MHz12MHz。 启动仿真,各按键功能如启动仿真,各按键功能如下页图下页图所注,根据题目要求,所注,根据题目要求,只有当开关合上时,步进电机才工作。只有当开关合上时,步进电机才工作。题目题目21 21 单片机控制直流电动机单片机控制直流电动机1. 1. 设计要求设计要求 采用单片机设计一个控制直流电机并测量转速的装置。单采用单片机设计一个控制直流电机并测量转速的装置。单片机扩展有片机扩展有A/DA/D转
86、换芯片转换芯片ADC0809ADC0809和和D/AD/A转换芯片转换芯片DAC0832DAC0832。 (1 1)通过改变)通过改变A/DA/D输入端可变电阻来改变输入端可变电阻来改变A/DA/D的输入电压,的输入电压,D/AD/A输入检测量大小,进而改变直流电机的转速。输入检测量大小,进而改变直流电机的转速。 (2 2)手动控制。在键盘上设置两个按键)手动控制。在键盘上设置两个按键直流电动机加速直流电动机加速键和直流电机减速键。在手动状态下,每按一次键,电机的转键和直流电机减速键。在手动状态下,每按一次键,电机的转速按照约定的速率改变。速按照约定的速率改变。 (3 3)键盘列扫描()键盘列
87、扫描(44 66)。)。2. 2. 实验原理实验原理 本题目难点是对直流电机的控制。与步进电机类似,直流本题目难点是对直流电机的控制。与步进电机类似,直流电机也可精确地控制旋转速度或转矩。电机也可精确地控制旋转速度或转矩。 直流电机是通过两个磁场的互作用产生旋转。其结构如直流电机是通过两个磁场的互作用产生旋转。其结构如下下页图页图所示,固定部分(定子)上,装设了一对直流励磁的静止所示,固定部分(定子)上,装设了一对直流励磁的静止的主磁极的主磁极N N和和S S,在旋转部分(转子)上装设电枢铁心。定子与,在旋转部分(转子)上装设电枢铁心。定子与转子之间有一气隙。在电枢铁心上放置了由转子之间有一气
88、隙。在电枢铁心上放置了由A A和和X X 两根导体连两根导体连成的电枢线圈,线圈的首端和末端分别连到两个圆弧形的铜片成的电枢线圈,线圈的首端和末端分别连到两个圆弧形的铜片上,此铜片称为换向片。上,此铜片称为换向片。图图 有刷直流电机结构示意图有刷直流电机结构示意图 换向片之间互相绝缘,由换向片构成的整体称为换向器。换向片之间互相绝缘,由换向片构成的整体称为换向器。换向器固定在转轴上,换向片与转轴之间亦互相绝缘。在换向换向器固定在转轴上,换向片与转轴之间亦互相绝缘。在换向片上放置着一对固定不动的电刷片上放置着一对固定不动的电刷B1B1和和B2B2,当电枢旋转时,电枢,当电枢旋转时,电枢线圈通过换
89、向片和电刷与外电路接通。线圈通过换向片和电刷与外电路接通。 定子通过永磁体或受激励电磁铁产生一个固定磁场,由于定子通过永磁体或受激励电磁铁产生一个固定磁场,由于转子由一系列电磁体构成,当电流通过其中一个绕组时会产生转子由一系列电磁体构成,当电流通过其中一个绕组时会产生一个磁场。对有刷直流电机而言,转子上的换向器和定子的电一个磁场。对有刷直流电机而言,转子上的换向器和定子的电刷在电机旋转时为每个绕组供给电能。通电转子绕组与定子磁刷在电机旋转时为每个绕组供给电能。通电转子绕组与定子磁体有相反极性,因而相互吸引,使转子转动至与定子磁场对准体有相反极性,因而相互吸引,使转子转动至与定子磁场对准的位置。
90、当转子到达对准位置时,电刷通过换向器为下一组绕的位置。当转子到达对准位置时,电刷通过换向器为下一组绕组供电,从而使转子维持旋转运动。如组供电,从而使转子维持旋转运动。如下页图下页图所示。所示。 直流电机的速度与施加的电压成正比,输出转矩则与电流直流电机的速度与施加的电压成正比,输出转矩则与电流成正比。由于必须在工作期间改变直流电机的速度,直流电机成正比。由于必须在工作期间改变直流电机的速度,直流电机的控制是一个较困难的问题。直流电机高效运行的最常见方法的控制是一个较困难的问题。直流电机高效运行的最常见方法是施加一个是施加一个 PWMPWM(脉宽调制)方波,其占空比对应于所需速度。(脉宽调制)方
91、波,其占空比对应于所需速度。电机起到一个低通滤波器作用,将电机起到一个低通滤波器作用,将PWMPWM信号转换为有效直流电信号转换为有效直流电平。特别是对于微处理器驱动的直流电机,由于平。特别是对于微处理器驱动的直流电机,由于PWMPWM信号相对信号相对容易产生,这种驱动方式使用的更为广泛。容易产生,这种驱动方式使用的更为广泛。 本项目的示例程序为了能够演示本项目的示例程序为了能够演示DAC0832DAC0832的使用,未使用的使用,未使用PWMPWM驱动方式。而是利用直流电机的速度与施加电压成正比的驱动方式。而是利用直流电机的速度与施加电压成正比的原理,通过滑动变阻器向原理,通过滑动变阻器向A
92、DC0809ADC0809输入控制电压信号,经输入控制电压信号,经ADAD后,后,输入到输入到AT89C51AT89C51中,中,AT89C51AT89C51将此信号转发给将此信号转发给DAC0832DAC0832,通过,通过功放电路放大后,驱动直流电机。需要注意的是,本题目使用功放电路放大后,驱动直流电机。需要注意的是,本题目使用的的ProteusProteus版本,未提供版本,未提供ADC0809ADC0809的仿真模型,这里以引脚、功的仿真模型,这里以引脚、功能与之相同的能与之相同的ADC0808ADC0808代替。同时,代替。同时,DAC0832DAC0832也可以用引脚、功也可以用引
93、脚、功能相同的能相同的DAC0830DAC0830代替。代替。ADC0809ADC0809与与DAC0832DAC0832在教材中已有详细在教材中已有详细介绍,在此不再叙述。按照其时序图,如介绍,在此不再叙述。按照其时序图,如下页图下页图和和后页图后页图操作操作即可。即可。图图 ADC0808 ADC0808时序图时序图 图图 DAC0830 DAC0830时序时序3. 3. 电路设计(电路设计(ProteusProteus仿真通过)仿真通过)本项目制作的用单片机控制直流电动机并测量转速电路原理本项目制作的用单片机控制直流电动机并测量转速电路原理图,如图,如下页图下页图所示:所示:图图 用单片
94、机控制直流电动机的电路原理图用单片机控制直流电动机的电路原理图4. Proteus4. Proteus仿真仿真 加载目标代码文件加载目标代码文件 打开元器件单片机属性窗口,在打开元器件单片机属性窗口,在“Program File”Program File”栏中添加上面编译好的目标代码文件栏中添加上面编译好的目标代码文件“keil-12.hex”keil-12.hex”;在;在“Clock Frequency”Clock Frequency”栏中输入晶振频栏中输入晶振频率为率为12MHz12MHz。ADC0809ADC0809的时钟信号设置为的时钟信号设置为640kHz640kHz。 启动仿真如启动仿真如下页图下页图所示,各按键功能如图中所注,所示,各按键功能如图中所注,LEDLED中显示的为当前电压的数字信号值,即当前转速的档位(中显示的为当前电压的数字信号值,即当前转速的档位(0-0-256256),通过调整从滑动变阻器输出的电压值,可以观察到),通过调整从滑动变阻器输出的电压值,可以观察到直流电机不同的转速。直流电机不同的转速。图图 用单片机控制直流电动机仿真效果图用单片机控制直流电动机仿真效果图