单片机课程设计指导书2012

更新时间:2024-05-10 13:26:02 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

《单片机原理与应用》

课程设计指导书

湖北汽车工业学院电气与信息工程学院

二○一一年十二月

1

目 录

第1章 简易数字电压表的设计.......................... 第2章 DS18B20数字温度计的设计...................... 第3章 秒表/时钟计时器的设计.......................... 第4章 交通灯设计................................... 第5章 汽车雨刮器的设计............................. 第6章 智能电子钟的设计............................. 第7章 音乐倒数计时器的设计.........................第8章 基于热敏电阻的数字温度计的设计..............第9章 双机之间的串行通信设计.......................第10章 波形发生器设计...............................

2

第一章 简易数字电压表的设计

1.1 功能要求

简易数字电压要求可以测量0~5V的8路输入电压值,并在四位LED上轮流显示和单路选择显示。测量最小分辨率为0.019V,测量误差为±0.02V。

1.2 方案论证

按系统功能实现要求,决定控制系统采用AT89C52单片机,A/D转换采用ADC0809。系统除能确保实现要求的功能外,还可以方便地进行8路其它A/D转换量的测量、远程测量结果传送等扩展功能。数字电压表系统设计方案框图如图1.1。

1.3 系统硬件电路的设计

??

1.4 系统程序的设计

1.4.1 初始化程序

??

1.4.2 主程序

??

1.4.3 显示子程序

1

??

1.4.4 模/数转换测量子程序

??

其程序流程见图1.4。

1.5调试及性能分析

1.5.1 调试与测试 ??

1.5.2 性能分析 ??。

2

第二章 DS18B20数字温度计的设计

2.1 功能要求

数字式温度计要求测温范围为-50°~110℃,精度误差在0.1℃以内,。要求使用3只DS18B20,LED数码管直读显示,显示数据包括DS18B20编号及温度值,显示方式可通过键盘控制方式,选择对应的DS18B20编号和温度值或循环自动显示各DS18B20的编号和温度值。

2.2 方案论证

在日常生活及工农业生产中经常要用到温度的检测及控制,传统的测温元件有热电偶和热电阻。而热电偶和热电阻测出的一般都是电压,再转换成对应的温度,需要比较多的外部硬件支持,硬件电路复杂,软件调试复杂,制作成本高。

本数字温度计设计采用美国DALLAS半导体公司继DS18B20之后推出的一种改进型智能温度传感器DS18B20作为检测元件,测温范围为-55°~125℃,最大分辨率可达0.0625℃。DS18B20可以直接读出被测温度值,而且采用3线制与单片机相连,减少了外部的硬件电路,具有低成本和易使用的特点。

按照系统设计功能的要求,确定系统由3个模块组成:主控制器、测温电路及显示电路。数字温度计总体电路结构框图如图2.1所示。

图2.1 数字温度计电路结构框图

2.3 系统硬件电路的设计

??

2.3.1 主控制器

??

2.3.2 显示电路

??

2.3.3 温度传感器工作原理

??

(见文件包中DS18B20资料)

2.3.4 DS18B20与单片机的接口电路

??

2.4 系统程序的设计

1

??

2.4.1 主程序

??

2.4.2 读出温度子程序

??

2.4.3温度转换命令子程序

??

2.4.4计算温度子程序

??

2.4.5 显示数据刷新子程序

??

2.4.6 DS18B20的各个ROM命令

??

2.5 调试及性能分析

??

2

第三章 秒表/时钟计时器的设计

3.1功能要求

秒表/时钟计时器要求用六位LED数码管显示时、分、秒,以24h(小时)计时方式。使用按键开关可实现时分调整、秒表/时钟功能转换、省电(关闭显示)等功能及闹铃功能。

3.2方案论证

为了实现LED显示器的数字显示,可以采用静态显示法和动态显示法。由于静态显示法需要数据锁存器等硬件,接口复杂一些。考虑时钟显示只有六位,且系统没有其它复杂的处理任务,所以决定采用动态扫描法实现LED的显示。单片机采用易购的AT89C52系列,这样单片机可具有足够的空余硬件资源实现其它的扩充功能,如考虑到要使用电池供电的话,则可采用LV系列单片机。

硬件系统的总体构成框架如图3.1所示。

图3.1 硬件系统总体框图

3.3系统硬件电路的设计

??

3.4 系统程序的设计

3.4.1 主程序

??

3.4.2 显示子程序

??

3.4.3 定时器T0中断服务程序

??

3.4.4 T1中断服务程序

??

3.4.5 调时功能程序

??。

3.4.6 时钟/秒表功能程序

??

3.5 调试及性能分析

3.5.1 硬件调试

1

??

3.5.2 软件调试

??。

3.5.3 性能分析

??

2

第四章 交通灯设计

4.1 功能要求

东西向左转绿灯5S,直行绿灯20S,黄灯5S,红灯20s;南北方向红绿黄灯显示时间需根据东西方向情况设定。LED数码管要同时显示东西方向和南北方向各灯的剩余时间。

4.2 方案论证

3.3 系统硬件电路的设计

??

4.4 系统程序的设计

4.4.1 初始化程序

??

4.4.2 主程序

??

4.4.3 显示子程序

??

4.5调试及性能分析

4.5.1 调试与测试 ??

4.5.2 性能分析

第五章 汽车雨刮器的设计

5.1 功能要求

1. 设计要求

单臂式雨刮器,步进电机驱动,摆角+70, 周期范围为0.5S~20S。需根据雨量传感器数据调整摆动周期。需要使用显示器显示当前雨刮器的摆动周期。

雨刮器说明:为防损坏雨刮,雨刮器每步摆动角必需小于1o ,请根据这个需要选择步距角合适的步进电机。

o

2. 实验原理

步进电机的不同驱动方式,都是在工作时,脉冲信号按一定顺序轮流加到三相绕组上,从而实现不同的工作状态。由于通电顺序不同,其运行方式有三相单三相拍、三相双三拍和三相单、双六拍三种(注意:上面“三相单三拍”中的“三相”指定子有三相绕组;“拍”是指定子绕组改变一次通电方式;“三拍”表示通电三次完成一个循环。“三相双三拍”中的“双”是指同时有两相绕组通电)。

(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)比较,又逆时针转过了一个角度。

当脉冲不断到来时,通过分配器使定子的绕组按着A相--B相--C相--A相??的规律不断地接通与断开,这时步进电动机的转子就连续不停地一步步的逆时 针方向转动。如果改变步进电动机的

1

转动方向,只要将定子各绕组通电的顺序改为A相--C相--B相--A相,转子转动方向即改为顺时针方向。

单三拍分配方式时,步进电动机由A相通电转换到B相同点,步进电动机的转子转过一个角度,称为一步。这时转子转过的角度是30度。步进电动机每一步转过的角度称为步距角。

单三拍运行的突出问题是每次只有一相绕组通电,在转换过程中,一相绕组断电,另一相绕组通电,容易发生失步;另外单靠一相绕组通电吸引转子,稳定性不好,容易在平衡位置附近震荡,

故用的较少。

双三拍运行的特点是每次都有两相绕组通电,且在转换过程中始终有一相绕组保持通电状态,因此工作稳定,且步距角与单三拍相同。

六拍运行方式转换时始终有一相绕组通电,且步距角较小,故工作稳定性好,但电源较复杂,实际应用较多。

5.2 方案论证

5.3 系统硬件电路的设计

??

5.4 系统程序的设计

5.4.1 初始化程序

??

5.4.2 主程序

??

5.4.3 显示子程序

??

2

5.5调试及性能分析

5.5.1 调试与测试 ??

5.5.2 性能分析

3

第6章 智能电子钟的设计

6.1 功能要求

1. 设计要求

以AT89C51单片机为核心,制作一个LCD显示的智能电子钟: (1) 计时:秒、分、时、天、周、月、年。 (2) 闰年自动判别。

(3) 五路定时输出,可任意关断(最大可到16路)。 (4) 时间、月、日交替显示。 (5) 自定任意时刻自动开/关屏。

(6) 计时精度:误差≤1秒/月(具有微调设置)。

(7) 键盘采用动态扫描方式查询。所有的查询、设置功能均由功能键K1、K2完成。 2. 工作原理

本设计采用市场上流行的时钟芯片DS1302进行制作。DS1302是DALLAS公司推出的涓流充电时钟芯片,内含一个实时时钟/日历和31字节静态RAM,可以通过串行接口与计算机进行通信,使得管脚数量减少。实时时钟/日历电路能够计算2100年之前的秒、分、时、日、星期、月、年的,具有闰年调整的能力。

DS1302时钟芯片的主要功能特性:

(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。

6.2 方案论证

6.3 系统硬件电路的设计

??

1

6.4 系统程序的设计

6.4.1 初始化程序

??

6.4.2 主程序

??

6.4.3 显示子程序

??

6.5调试及性能分析

6.5.1 调试与测试 ??

6.5.2 性能分析

第七章 音乐倒数计时器设计

7.1 功能要求

1. 设计要求

利用AT89C51单片机结合字符型LCD显示器设计一个简易的倒数计数器,可用来煮方便面、煮开水或小睡片刻等。做一小段时间倒计数,当倒计数为0时,则发出一段音乐声响,通知倒计数终了,该做应当做的事。

定时闹钟的基本功能如下。 字符型LCD(16*2)显示器。 显示格式为“TIME 分分:秒秒”。

用4个按键操作来设置当前想要倒计数的时间。一旦按下键则开始倒计数,当计数为0时,发出一阵音乐声。

程序执行后工作指示灯LED闪动,表示程序开始执行,按下操作键K1~K4动作如下。 K1—可调整倒计数的时间1~60分钟。

K2—设置倒计数的时间为5分钟,显示“0500”。 K3—设置倒计数的时间为10分钟,显示“1000”。

K4—设置倒计数的时间为20分钟,显示“2000”。

2

复位后LCD的画面应能显示倒计时的分钟和秒数,此时按K1键,则在LCD上显示出设置画面。此时,若:

a. 按操作键K2—增加倒计数的时间1分钟。 b. 按操作键K3—减少倒计数的时间1分钟。 c. 按操作键K4—设置完成。 2. 工作原理

本题目最大难点是实现音乐的播放。利用定时计数器,通过载入不同的计数初值,产生频率不同的方波,输入到蜂鸣器(SOUNER)中,使其发出频率不同的声音。本设计中单片机晶振为1.0592MHz,通过计算各音阶频率,可得1、2、3、4、5、6、7共7个音应赋给定时器的初值为64580、64684、64777、64820、64898、64968、65030。

在此基础上,可将乐曲的简谱转化为单片机可以“识别”的“数组谱”,进一步加入对音长、休止符等的控制量后,可以实现音乐的播放。

7.2 方案论证

7.3 系统硬件电路的设计

??

7.4 系统程序的设计

7.4.1 初始化程序

??

7.4.2 主程序

??

7.4.3 显示子程序

??

7.5调试及性能分析

7.5.1 调试与测试 ??

7.5.2 性能分析

第八章 基于热敏电阻的数字温度计

3

8.1 功能要求

1. 设计要求

使用热敏电阻类的温度传感器件利用其感温效应,将随被测温度变化的电压或电流用单片机采集下来,将被测温度在显示器上显示出来: 测量温度范围?50℃~110℃。 精度误差小于0.5℃。 LED数码直读显示。 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Ω/℃的特性,计算出当前温度值。

8.2 方案论证

8.3 系统硬件电路的设计

??

8.4 系统程序的设计

8.4.1 初始化程序

??

8.4.2 主程序

??

8.4.3 显示子程序

??

8.5调试及性能分析

8.5.1 调试与测试 ??

8.5.2 性能分析

4

第九章 双机之间的串行通信设计

9.1 功能要求

1. 设计要求

两片单片机利用串行口进行串行通信:串行通信的波特率可从键盘进行设定,可选的波特率为1200、2400、4800和9600bit/s。串行口工作方式为方式1的全双工串行通信。发信机需要使用LED显示输出的波特率;接收机需要通过LED显示接收的数据值。 2. 实验原理

两个单片机之间进行通讯波特率的设定,最终归结到对定时计数器T1计数初值TH1、TL1进行设定。故本题目本质上是通过键盘扫描得到设定的波特率,从而载入相应的T1计数初值TH1、TL1实现的。示例程序中将0xaa从主机传输到从机,并显示在从机的数码管上实现串口通讯的验证。 如串口通讯线路过长,可考虑采用MAX232进行电平转换,以延长传输距离。值得注意的是,为了减少计算载入初值时的误差,本项目最好采取11.0592MHz的晶振。

9.2 方案论证

9.3 系统硬件电路的设计

??

9.4 系统程序的设计

9.4.1 初始化程序

??

9.4.2 主程序

??

9.4.3 显示子程序

??

9.5调试及性能分析

9.5.1 调试与测试 ??

5

9.5.2 性能分析

第十章 波形发生器设计

10.1 功能要求

1. 设计要求

设计一个能产生正弦波、方波、三角波、梯形波、锯齿波的波形发生器,该发生器所产生的各种波形的频率需要在一定范围内可调,需要使用LED显示输出的频率值。(频率10Hz-100Hz) 2. 实验原理

产生指定波形可以通过DAC来实现,不同波形产生实质上是对输出的二进制数字量进行相应改变来实现的。本题目中,方波信号是利用定时器中断产生的,每次中断时,将输出的信号按位反即可;三角波信号是将输出的二进制数字信号依次加1,达到0xff时依次减1,并实时将数字信号经D/A转换得到;锯齿波信号是将输出的二进制数字信号依次加1,达到0xff时置为0x00,并实时将数字信号经D/A转换得到的;

梯形波是将输出的二进制数字信号依次加1,达到0xff时保持一段时间,然后依次减1直至0x00,并实时将数字信号经D/A转换得到的;

正弦波是利用MATLAB将正弦曲线均匀取样后,得到等间隔时刻的y方向上的二进制数值,然后依次输出后经D/A转换得到。

波形频率的改变实质上是通过改变每次输出到DAC的Y方向的二进制数据的时间间隔来改变

的。

10.2 方案论证

10.3 系统硬件电路的设计

??

10.4 系统程序的设计

10.4.1 初始化程序

6

??

10.4.2 主程序

??

10.4.3 显示子程序

??

10.5调试及性能分析

10.5.1 调试与测试 ??

10.5.2 性能分析

7

本文来源:https://www.bwwdw.com/article/rcpg.html

Top