资源描述
资料内容仅供您学习参考,如有不当之处,请联系改正或者删除。
南京晓庄学院
电子工程学院
文档版本
2.0.0
密级
交流
项目名称
单片机最简系统设计
时间
9月
单片机最简系统设计
撰写人:
审核人: 蔡凡
时 间: .12.6
修订记录
版本
时间
说明
撰写人
审核人
1.0.0
.9.18
完成初稿
1.1.0
.9.8
细化相关内容
1.2.0
.11.14
修改软件和文档
1.3.0
.11.17
完善细节
1.4.0
.11.
修改软件和文档
1.5.0
.12.2
修改软件和文档
1.6.0
.12.2
修改软件和文档
2.0.0
.12.6
修改文档
1. 概述 3
1.1. 项目介绍 3
1.2. 设计目的 3
学会熟练使用单片机, 学会焊接设备。 3
1.3. 设计思路 3
1.4. 项目计划 3
1.5. 软件介绍 4
2. 功能和技术指标要求 4
2.1. 功能要求 4
2.2. 工作条件 4
3. 硬件设计 5
3.1. 整机组成 5
3.2. 芯片介绍 6
3.2.1. STC89C52 6
3.2.2. 引脚图及介绍 7
3.3. 时钟电路 8
3.4. 复位电路 9
4. 软件设计 10
4.1. 软件设计流程 10
4.2. 算法流程图 11
4.3. 库函数 11
4.4. 延时函数 12
5. 焊接 12
5.1. 焊接工具 12
5.2. 焊接操作 13
6. 测试记录 16
6.1. 测试设备 16
6.2. STC89C52测试程序 16
6.3. 出现问题及解决方案 18
7. 附录 18
7.1. 单片机接口定义表 18
7.2. 元件清单 19
7.3. 烧录器连接参考图 20
1. 概述
1.1. 项目介绍
单片机具有体积小、 控制功能强、 功耗低、 环境适应能力强、 扩展灵活和使用方便等优点, 在我们生活的各个领域几乎都能够看见单片机的身影。项目要求完成单片机最简系统的设计, 使得系统能够闪烁点亮LED灯( 一秒闪一次) 。系统以STC89C52单片机为控制核心。使用12M晶振, 5V直流稳压电源, 外部设备连接LED灯, 使用洞洞板焊接, 自行编写程序完成要求。
1.2. 设计目的
学会熟练使用单片机, 学会焊接设备。
1.3. 设计思路
按照要求正确给单片机连接时钟电路, 复位电路, 并接上LED灯, 电源, 完成硬件的连接。
根据项目要求编写程序, 并在进行测试。
1.4. 项目计划
表1-1项目计划表
时间
设计流程
.9.11~ .9.18
创立文档;制定设计方案;
.9.18~ .11.4
购买材料, 焊接作品
.11.4~ .12
不断修改完善文档
1.5. 软件介绍
表1-2软件介绍表
序号
名称
版本
功能
1
WPS
WPS Office_10.1.0.6690
撰写文档
2
Keil
Keil uvision4
编写程序
3
Visio
Visio
绘制系统框图
2. 功能和技术指标要求
2.1. 功能要求
具有使外接LED灯一秒闪烁一次的功能。
2.2. 工作条件
5V直流稳压电源
工作温度: 0℃~+70℃
3. 硬件设计
3.1. 整机组成
1.晶振( 用于计时, 与两个电容并联使用, 电容大小由晶振决定)
2.复位电路( 用于复位)
3.电源( 用于供电, 一般用电脑的USB口供电)
4.烧制程序的口
图3-1 系统框图
3.2. 芯片介绍
3.2.1. STC89C52
图3-2 STC89C52内部结构图
STC系列的51单片机是具有中国独立自主知识产权, 功能与抗干扰性强的增强型8051单片机。其主要性能如下:
(1)增强型8051型单片机, 6时钟/机器周期和12时钟/机器周期, 能够任意选择, 指令代码完全兼容传统8051;
(2)工作电压: 5V-3.3V( 5V单片机) ;
(3)工作频率范围: 0-40MHZ, 相当于普通8051的0-80MHZ, 实际工作频率可达48MHZ;
(4)用户应用程序空间为8K字节;
(5)片上集成512字节RAM;
(6)通用I/O口( 32个) , 复位后: P0/P1/P2/P3是准双向口/弱上拉, P0是漏极开路输出, 作为总线扩展用时, 不用加上拉电阻, 作为I/O口用时, 需要加上拉电阻;
(7)ISP( 在系统可编程)/IAP(在应用可编程), 无需专用编程器, 无需专用仿真器, 可经过串口( RXD/P3.0,TXD/P3.1) , 直接下载用户程序, 数秒即可完成一片;
(8)具有EEPROM功能;
(9)具有看门狗功能;
(10)共3个16位定时器/计数器, 即定时器T0、 T1、 T2;
3.2.2. 引脚图及介绍
-
图3-3 STC89C52引脚图 图3-4 STC89C52实物图
引脚说明:
1.电源: VCC芯片电源, 接+5v;
GND接地端。
2.时钟: XTAL1、 XTAL2晶体振荡电路反相输入端和输出端。
3.控制线: 共有四根
ALE/PROG: 用来锁存P0口送出的低八位地址/片内有EPROM的芯片, 在EPROM编程期间, 此引脚输入编程脉冲。
PESN: 外POM读选通信号。
RST: 复位信号输入端。
EA/VPP: 内外ROM选择端/片内有EPROM的芯片, 在EPROM编程期间, 施加编程电源Vpp。
4.I/O口线: P0、 P1、 P2、 P3共四个八位口
P0口: 是三态双向口, 通称数据总线口, 因为只有该口能直接用于对外部存储器的读/写操作。也用以输出外部存储器的低八位地址。由于是分时输出, 故应该在外部加锁存器将此地址数据锁存。
P1口: 专门供用户使用的I/O口, 是准双向口。
P2口: 系统扩展时作高八位地址线使用, 不扩展外部存储器时, 能够作为用户I/O口线使用, 也是准双向口。
P3口: 双功能口, 该口的每一位均可独立的定义为第一I/O口功能或第二I/O口功能。作为第一功能使用时操作同P1口。
3.3. 时钟电路
内部时钟原理( 就是一个自激振荡电路) , 在内部方式时钟电路中, 必须在XTAL1和XTAL2引脚两端跨接石英晶体振荡器和两个微调电容构成振荡电路, 一般C1和C2一般取30pF, 晶振的频率取值在1.2MHz~12MHz之间。
晶体振荡器的振荡信号从XTAL2端送入内部时钟电路, 它将该振荡信号二分频, 产生一个两相时钟信号P1和P2供单片机使用。时钟信号的周期称为状态时间S, 它是振荡周期的2倍, P1信号在每个状态的前半周期有效, 在每个状态的后半周期P2信号有效。CPU就是以两相时钟P1和P2为基本节拍协调单片机各部分有效工作的。
图3-5 时钟电路图
3.4. 复位电路
复位电路由按键复位和上电复位两部分组成。
( 1) 上电复位: STC89系列单片及为高电平复位, 一般在复位引脚RST上连接一个电容到VCC, 再连接一个电阻到GND, 由此形成一个RC充放电回路保证单片机在上电时RST脚上有足够时间的高电平进行复位, 随后回归到低电平进入正常工作状态, 这个电阻和电容的典型值为10K和10uF。
( 2) 按键复位: 按键复位就是在复位电容上并联一个开关, 当开关按下时电容被放电、 RST也被拉到高电平, 而且由于电容的充电, 会保持一段时间的高电平来使单片机复位。
图3-6 复位电路图
4. 软件设计
4.1. 软件设计流程
图4-1 软件设计图
该软件设计是顺序执行的, 首先开始通电, 使其能正常工作。然后在通电的条件下执行程序语句, 达成设计效果。最后断电, 在此条件下停止执行语句。
4.2. 算法流程图
图4-2 算法设计图
4.3. 库函数
该程序使用的库函数为reg52.h,作为头文件写在程序开头。头文件其实就是一种声明, 将单片机的一些常见符号变量进行定义声明, 对一些特殊功能寄存器进行声明, 对一些关键字进行定义等。在代码中引用头文件, 其实际意义就是将这个头文件中的全部内容放到引用头文件的位置处, 免去我们每次编写同类程序都要将头文件中的语句重复编写。如果没有头文件, 比如我们要用到P0口, 我们还需要重新定义这个符号, 还要把它的字节地址给这个符号。
4.4. 延时函数
程序延时部分:
for(i=500;i>0;i--)
for(j=115;j>0;j--)
利用keil软件进入软件模拟调试模式, 最开始i,j并没有赋初值, 进入for语句, i,j分别赋值500和115, 在寄存器窗口的sec上显示的时间大约是500ns。整体程序就是灯亮500ns左右, 灯灭500ns左右, 而且一直循环。
5. 焊接
5.1. 焊接工具
表6-1焊接设备表
序号
工具名称
数量
1
电烙铁
1
2
焊锡丝
1
3
海绵
1
4
松香
1
5
洞洞板
1
6
烙铁架
1
7
剪线钳
1
5.2. 焊接操作
清洁烙铁头: 焊接前要先将烙铁头放在松香或湿布上擦洗, 以擦洗掉烙铁头上的氧华物及污物, 并借此现象观察烙铁头的温度是否适宜, 在焊接过程中烙铁头上出现氧化物及污物时也应随时清洁。
加温焊接点: 将烙铁头放置在焊接点上, 使焊接点升温。如果烙铁头上带有少量焊料, ( 可在清洁烙铁头时带上) , 能够使烙铁头的热量较快传到焊接点上。
熔化焊料: 在焊接点上温度达到适当温度时, 应及时将焊锡丝放到焊接点上熔化。
移动烙铁头, 拿开焊锡丝: 在焊接点上的焊料开始熔化后, 应将依附在焊接点上的烙铁头根据焊接点的形状移动, 以使熔化的焊料在焊剂的帮助流布接点。并渗入被焊锡面的疑缝隙, 在焊接点上的焊料适量后, 应拿开焊锡丝。
拿开电烙铁: 在焊接点上的焊接接近饱满, 焊剂尚完全挥发, 也就是焊接点上的温度最适当。焊锡最光亮, 流动性最强的时刻, 迅速拿开电烙铁, 拿开电烙铁的时间, 方向和速度, 决定着焊接点的质量和外观。
6. 测试记录
6.1. 测试设备
表5-1测试设备表
序号
设备名称
数量
1
计算机
1
2
STC89C52
1
3
电源
1
4
万用表
1
5
USB转换接口
1
6.2. STC89C52测试程序
#include <reg52.h>
sbit led=P0^0;
unsigned int a;
void main(){
while(1){
led=0;
for(i=500;i>0;i--)
for(j=110;j>0;j--);
led=1;
for(i=500;i>0;i--)
for(j=110;j>0;j--);
}
}
6.3. 出现问题及解决方案
1) 使用DC插座没弄清地, 电源
解决办法: 在焊接过程中没有完全理解元器件的工作原理和构造, 仅仅只了解了DC插座进行接地的功能, 忽视它供电的功能, 在老师的指点下发现问题, 重新上网查找资料, 重新布线焊接, 解决问题。
2) 测试过程中出现灯熄灭的情况
解决办法与思路: 出现灯不亮的原因, 可能是因为焊接部位不完全, 或者是某个零件有损坏。用万用表对焊点和零件进行测量, 发现其中一个焊点断路。重新焊接该点, 继续测试, 解决该问题。
3) LED灯不按照程序闪烁
解决办法和思路: 出现灯长亮, 不闪烁的问题, 可能是程序编写错误, 或者是其它原因。先检查一遍程序并进行一次仿真, 发现并没有问题。猜测是芯片问题, 用现在的芯片在买来的成品单片机上进行测试, 发现同样问题。重新购买芯片再进行烧录测试, 解决该问题。
7. 附录
7.1. 单片机接口定义表
表7-1单片机接口定义表
引脚
引脚名称
引脚功能
1
P1.0
连接LED灯
9
RST
复位
18, 19
XTAL2~XTAL1
连接时钟电路
0
GND
接地
40
VCC
电源
7.2. 元件清单
序号
名称
数量
1
直插式底座
1
2
STC89C52
1
3
DC插座
1
4
晶振
1
5
LED
1
6
30uF电容
2
7
10KΩ电阻
2
8
1KΩ电阻
1
9
10uF电容
1
10
洞洞板
1
11
烧录器
1
7.3. 烧录器连接参考图
展开阅读全文