51单片机生产实习报告Word文档格式.docx
《51单片机生产实习报告Word文档格式.docx》由会员分享,可在线阅读,更多相关《51单片机生产实习报告Word文档格式.docx(40页珍藏版)》请在冰豆网上搜索。
0-35MHz,相当于普通8051的0~420MHz
3.用户应用程序空间8K/16K/20K/32K/40K/48K/52K/60K/62K字节......
4.片上集成1280字节RAM6.通用I/O口(36/40/44个),复位后为:
准双向口/弱上拉(普通8051传统I/O口)可设置成四种模式:
准双向口/弱上拉,推挽/强上拉,仅为输入/高阻,开漏每个I/O口驱动能力均可达到20mA,但整个芯片最大不要超过55mA
5.ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器可通过串口(P3.0/P3.1)直接下载用户程序,数秒即可完成一片
6.有EEPROM功能(STC12C5A62S2/AD/PWM无内部EEPROM)
7.看门狗
8.内部集成MAX810专用复位电路(外部晶体12M以下时,复位脚可直接1K电阻到地)
9.外部掉电检测电路:
在P4.6口有一个低压门槛比较器5V单片机为1.32V,误差为+/-5%,3.3V单片机为1.30V,误差为+/-3%
10.时钟源:
外部高精度晶体/时钟,内部R/C振荡器(温漂为+/-5%到+/-10%以内)1用户在下载用户程序时,可选择是使用内部R/C振荡器还是外部晶体/时钟常温下内部R/C振荡器频率为:
5.0V单片机为:
11MHz~15.5MHz3.3V单片机为:
8MHz~12MHz精度要求不高时,可选择使用内部时钟,但因为有制造误差和温漂,以实际测试为准
11.共4个16位定时器两个与传统8051兼容的定时器/计数器,16位定时器T0和T1,没有定时器2,但有独立波特率发生器做串行通讯的波特率发生器再加上2路PCA模块可再实现2个16位定时器
12.2个时钟输出口,可由T0的溢出在P3.4/T0输出时钟,可由T1的溢出在P3.5/T1输出时钟
13.外部中断I/O口7路,传统的下降沿中断或低电平触发中断,并新增支持上升沿中断的PCA模块,PowerDown模式可由外部中断唤醒,INT0/P3.2,INT1/P3.3,T0/P3.4,T1/P3.5,RxD/P3.0,CCP0/P1.3(也可通过寄存器设置到P4.2),CCP1/P1.4(也可通过寄存器设置到P4.3)
14.PWM(2路)/PCA(可编程计数器阵列,2路)也可用来当2路D/A使用-也可用来再实现2个定时器也可用来再实现2个外部中断(上升沿中断/下降沿中断均可分别或同时支持)
15.A/D转换,10位精度ADC,共8路,转换速度可达250K/S(每秒钟25万次)18.通用全双工异步串行口(UART),由于STC12系列是高速的8051,可再用定时器或PCA软件实现多串口
16.STC12C5A60S2系列有双串口,后缀有S2标志的才有双串口,RxD2/P1.2(可通过寄存器设置到P4.2),TxD2/P1.3(可通过寄存器设置到P4.3)
16.工作温度范围:
-40-+85℃(工业级)/0-75℃(商业级)
17.封装:
PDIP-40,LQFP-44,LQFP-48I/O口不够时,可用2到3根普通I/O口线外接74HC164/165/595(均可级联)来扩展I/O口,还可用A/D做按键扫描来节省I/O口,或用双CPU,三线通信,还多了串口。
STC12C5A60S2为可电气烧录清洗的8051相容单芯片,其内部程序代码容量为4KB
STC12C5A60S2主要功能列举如下:
1、为一般控制应用的8位单芯片
2、晶片内部具时钟振荡器(传统最高工作频率可至12MHz)
3、内部程式存储器(ROM)为4KB
4、内部数据存储器(RAM)为128B
5、外部程序存储器可扩充至64KB
6、外部数据存储器可扩充至64KB
7、32条双向输入输出线,且每条均可以单独做I/O的控制
8、5个中断向量源
9、2组独立的16位定时器
10、1个全多工串行通信端口
11、8751及8752单芯片具有数据保密的功能
12、单芯片提供位逻辑运算指令
STC12C5A60S2
STC12C5A60S2各引脚功能介绍:
VCC:
STC12C5A60S2电源正端输入,接+5V。
VSS:
电源地端。
XTAL1:
单芯片系统时钟的反相放大器输入端。
XTAL2:
系统时钟的反相放大器输出端,一般在设计上只要在XTAL1和XTAL2上接上一只石英振荡晶体系统就可以动作了,此外可以在两引脚与地之间加入一20PF的小电容,可以使系统更稳定,避免噪声干扰而死机。
RESET:
STC12C5A60S2的重置引脚,高电平动作,当要对晶片重置时,只要对此引脚电平提升至高电平并保持两个机器周期以上的时间,AT89S51便能完成系统重置的各项动作,使得内部特殊功能寄存器之内容均被设成已知状态,并且至地址0000H处开始读入程序代码而执行程序。
EA/Vpp:
"
EA"
为英文"
ExternalAccess"
的缩写,表示存取外部程序代码之意,低电平动作,也就是说当此引脚接低电平后,系统会取用外部的程序代码(存于外部EPROM中)来执行程序。
因此在8031及8032中,EA引脚必须接低电平,因为其内部无程序存储器空间。
如果是使用8751内部程序空间时,此引脚要接成高电平。
此外,在将程序代码烧录至8751内部EPROM时,可以利用此引脚来输入21V的烧录高压(Vpp)。
ALE/PROG:
ALE是英文"
AddressLatchEnable"
的缩写,表示地址锁存器启用信号。
STC12C5A60S2可以利用这支引脚来触发外部的8位锁存器(如74LS373),将端口0的地址总线(A0~A7)锁进锁存器中,因为STC12C5A60S2是以多工的方式送出地址及数据。
平时在程序执行时ALE引脚的输出频率约是系统工作频率的1/6,因此可以用来驱动其他周边晶片的时基输入。
此外在烧录8751程序代码时,此引脚会被当成程序规划的特殊功能来使用。
PSEN:
此为"
ProgramStoreEnable"
的缩写,其意为程序储存启用,当8051被设成为读取外部程序代码工作模式时(EA=0),会送出此信号以便取得程序代码,通常这支脚是接到EPROM的OE脚。
AT89S51可以利用PSEN及RD引脚分别启用存在外部的RAM与EPROM,使得数据存储器与程序存储器可以合并在一起而共用64K的定址范围。
PORT0(P0.0~P0.7):
端口0是一个8位宽的开路汲极(OpenDrain)双向输出入端口,共有8个位,P0.0表示位0,P0.1表示位1,依此类推。
其他三个I/O端口(P1、P2、P3)则不具有此电路组态,而是内部有一提升电路,P0在当做I/O用时可以推动8个LS的TTL负载。
如果当EA引脚为低电平时(即取用外部程序代码或数据存储器),P0就以多工方式提供地址总线(A0~A7)及数据总线(D0~D7)。
设计者必须外加一锁存器将端口0送出的地址栓锁住成为A0~A7,再配合端口2所送出的A8~A15合成一完整的16位地址总线,而定址到64K的外部存储器空间。
PORT2(P2.0~P2.7):
端口2是具有内部提升电路的双向I/O端口,每一个引脚可以推动4个LS的TTL负载,若将端口2的输出设为高电平时,此端口便能当成输入端口来使用。
P2除了当做一般I/O端口使用外,若是在STC12C5A60S2扩充外接程序存储器或数据存储器时,也提供地址总线的高字节A8~A15,这个时候P2便不能当做I/O来使用了。
PORT1(P1.0~P1.7):
端口1也是具有内部提升电路的双向I/O端口,其输出缓冲器可以推动4个LSTTL负载,同样地若将端口1的输出设为高电平,便是由此端口来输入数据。
如果是使用8052或是8032的话,P1.0又当做定时器2的外部脉冲输入脚,而P1.1可以有T2EX功能,可以做外部中断输入的触发脚位。
PORT3(P3.0~P3.7):
端口3也具有内部提升电路的双向I/O端口,其输出缓冲器可以推动4个TTL负载,同时还多工具有其他的额外特殊功能,包括串行通信、外部中断控制、计时计数控制及外部数据存储器内容的读取或写入控制等功能。
其引脚分配如下:
P3.0:
RXD,串行通信输入。
P3.1:
TXD,串行通信输出。
P3.2:
INT0,外部中断0输入。
P3.3:
INT1,外部中断1输入。
P3.4:
T0,计时计数器0输入。
P3.5:
T1,计时计数器1输入。
P3.6:
WR:
外部数据存储器的写入信号。
P3.7:
RD,外部数据存储器的读取信号。
STC12C5A60S2实体图
1.2.2LCD1602
简介
1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。
它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形(用自定义CGRAM,显示效果也不好)。
1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。
市面上字符液晶大多数是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶。
管脚功能
1602采用标准的16脚接口,其中:
第1脚:
VSS为电源地
第2脚:
VCC接5V电源正极
第3脚:
V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。
第4脚:
RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。
第5脚:
RW为读写信号线,高电平
(1)时进行读操作,低电平(0)时进行写操作。
第6脚:
E(或EN)端为使能(enable)端,高电平
(1)时读取信息,负跳变时执行指令。
第7~14脚:
D0~D7为8位双向数据端。
第15~16脚:
空脚或背灯电源。
15脚背光正极,16脚背光负极
LCD1602管脚图
特性
3.3V或5V工作电压,对比度可调
内含复位电路
提供各种控制命令,如:
清屏、字符闪烁、光标闪烁、显示移位等多种功能
有80字节显示数据存储器DDRAM
内建有192个5X7点阵的字型的字符发生器CGROM
8个可由用户自定义的5X7的字符发生器CGRAM
1.2.3系统原理图
图1系统原理图
1.3单片机开发板的焊接
1.3.1焊接操作要领及注意事项
焊接操作要领
1.焊件表面处理
一般在焊接前焊件需要进行表面清理工作,去除焊接面上的锈迹,油污,灰尘等影响焊接质量的杂质。
手工操作中常用机械刮磨和酒精,丙酮擦洗等简单易行的方法。
2.预焊
预焊就是将要锡焊的元器件引线或导电的焊接部位预先用焊锡润湿,一般也称为镀锡,上锡,搪锡等,靠金属的扩散形成结合层后而使焊件表面“镀”上一层焊锡。
预焊并非锡焊不可缺少的操作,但对手工烙铁焊接特别是维修,调试,研制工作几乎可以说是必不可少的。
3.不要用过量的焊剂
适量的焊剂是必不可缺的,但不要认为越多越好。
过量的松香不仅造成焊后焊点周围需要清洗的工作量,而且延长了加热时间(松香融化,挥发需要并带走热量),降低工作效率;
而当加热时间不足时又容易夹杂到焊锡中形成“夹渣”缺陷;
对开关元件的焊接,过量的焊剂容易流到触点处,从而造成接触不良。
合适的焊剂量应该是松香水仅能浸湿将要形成的焊点,不要让松香水透过印制板流到元件面或插座孔里(如IC插座)。
对使用松香芯的焊丝来说,基本不需要再涂焊剂。
4.保持烙铁头的清洁
因为焊接时烙铁头长期处于高温状态,又接触焊剂等受热分解的物质,其表面很容易氧化而形成一层黑色杂质,这些杂质几乎形成隔热层,使烙铁头失去加热作用。
因此要随时在烙铁架上蹭去杂质。
用一块湿布或湿海绵随时擦烙铁头,也是常用的方法。
5.加热要靠焊锡桥
非流水线作业中,一次焊接的焊点形状使多种多样的,我们不可能不断换烙铁头。
要提高烙铁头加热的效率,需要形成热量传递的焊锡桥。
所谓焊锡桥,就是靠烙铁上保留少量焊锡作为加热时烙铁头与焊件之间传热的桥梁。
显然由于金属液的导热效率远高于空气,而使焊件很快被加热到焊接温度,如图四。
应注意作为焊锡桥的锡保留量不可过多。
6.焊锡量要合适
过量的焊锡不但毫无必要地消耗了较贵的锡,而且增加了焊接时间,相应降低了工作速度。
更为严重的是在高密度的电路中,过量的锡很容易造成不易察觉的短路。
但是焊锡过少不能形成牢固的结合,降低焊点强度,特别是在板上焊导线时,焊锡不足往往造成导线脱落。
7.焊件要牢固
在焊锡凝固之前不要使焊件移动或振动,特别使用镊子夹住焊件时一定要等焊锡凝固再移去镊子。
这是因为焊锡凝固过程是结晶过程,根据结晶理论,在结晶期间受到外力(焊件移动)会改变结晶条件,导致晶体粗大,造成所谓“冷焊”。
外观现象是表面无光泽呈豆渣状;
焊点内部结构疏松,容易有气隙和裂隙,造成焊点强度降低,导电性能差。
因此,在焊锡凝固前一定要保持焊件静止,实际操作时可以用各种适宜的方法将焊件固定,或使用可靠的夹持措施。
8.烙铁撤离有讲究
烙铁处理要及时,而且撤离时的角度和方向对焊点形成有一定关系。
撤烙铁时轻轻旋转一下,可保持焊点适当的焊料,这需要在实际操作中体会。
电子元器件插装的原则
插装的顺序:
先低后高,先小后大,先轻后重。
元器件的标识:
电子元器件的标记和色码部位应朝上,以便于辩认;
横向插件的数值读法应从左至右,而竖向插件的数值读法则应从下至上。
元器件的间距在印制板上的元器件之间的距离不能小于1mm;
引线间距要大于2mm(必要时,引线要套上绝缘套管)。
一般元器件应紧密安装,使元器件贴在印制板上,紧贴的容限在0.5mm左右。
1.3.2注意事项
锡线是手工焊接电路板,最便捷的焊料,由于大部分锡线内含松香等助焊剂,使用锡线可以减少工序,提高焊接作业的效率;
锡线按其金属成分可分为无铅焊锡和有铅焊锡,成分区别的锡线具有区别的熔点,用途亦各有区别。
在使用的时候,必须符合相关的安全规定;
只能由合格的技术人维修;
如果不这样,在使用本设备的时候,可能导致意外事故。
运作以前,用锡线测温计先测定温度很重要。
使用热回复性等热性能好的锡线,在使用无铅焊锡进行焊接作业时,由于对零件的耐热性,安全作业的考虑,有必要选定最合适的锡线,根据了解电烙铁的区别焊接作业的区别,选择最合适的烙铁头是很重要的。
合适的烙铁头可以降低烙铁头的温度,增加作业的效率。
烙铁头的维护也非常重要。
当心焊料烫伤,当心被飞溅的溶液状态的焊料烫伤。
穿防护服避免烫伤。
通过戴防护罩方式来保护眼睛。
在焊接或拆焊过程中使用胶粘剂的时候,尤其要注意胶粘剂生产厂家的警告信息。
如果配合空气净化器使用,必须确保空气净化器连接正常并处于正常的运作状态。
不整洁的运作区间会增加意外事故发生的可能性。
在不使用本设备的时候,请将本设备放回安全的地方。
避免所有易燃物体靠近热的焊笔,包括气体和固体。
即使在关断电源或者取下烙铁头及套筒后,烙铁头和套筒仍然需要一段时间冷却。
在焊接结束后,焊点及被焊接元器件仍然非常热。
防止被电击,不要用手接触接地部位,如焊笔套筒,发热体等。
儿童及未受培训的人不能靠近运作区间,绝不能允许其他未受培训的人使用或触摸电源线。
第二章开发板的调试与检测
2.1开发板硬件调试
根据完成的电路板实现程序运行前,对电路板先进行检测,先测试开发板供电是否正常,插上电源看看供电指示灯是否正常点亮。
然后再在程序的调试中测试个电路模块和器件是否能正常使用,这样以便快速准确找出错误并解决错误。
例如首先可以测试电阻、二极管极性是否焊反,芯片有没出现虚焊的现象,以至于板子不能正常使用。
2.2开发板软件调试
STC12C5A60S2单片机可以实现多种的实验程序,例如LED指示灯实验;
跑马灯实验;
中断操作;
A/D转换;
按键输入实验等。
调试过程中我们用的是Keiluvision2软件,其操作步骤如下:
(1)建立一个文件夹用来存放项目。
(2)
(2)打开Keil软件,选择Project->
NewProject。
(3)选择Atmel->
AT89S52->
同意添加8051启动代码。
(4)(4)File->
New(新建源文件,编程)->
保存(汇编语言以.asm结尾;
C语言以.C结尾)
(5)添加源文件到Project。
(6)生成.hex文件。
2.3测试程序
2.3.1流水灯
#include<
reg51.h>
typedefunsignedintuint16;
//#definetime100
/*voidms(unsignedintx)
{
unsignedchari;
while(x--)
{
for(i=0;
i<
200;
i++);
}
}*/
main()
intj,a1;
uint16x;
//for(i=0;
2;
i++)
while
(1)
a1=0xfe;
for(j=0;
j<
8;
j++)
{
P1=a1;
//ms(time);
for(x=0;
x<
50000;
x++);
P1=0xff;
for(x=0;
60000;
a1=(a1<
<
1)|0x01;
}
}
2.3.2数码管
reg52.h>
#defineucharunsignedchar
#defineuintunsignedint
voidDelay(uintdel)
uinti,j,k;
for(i=0;
i<
del;
i++)
for(j=0;
j<
1000;
j++)
for(k=0;
k<
k++)
;
voidmain(void)
{
inti;
P1=0x00;
//数码管点亮控制
P0=0xfe;
Delay
(1);
P0=0xfd;
P0=0xfb;
P0=0xf7;
P0=0xef;
P0=0xdf;
P0=0xbf;
P0=0x7f;
P0=0x00;
Delay
(1);
P0=0xff;
2.3.3按键控制数码管
#ifndef_ANJIAN_H_
#define_ANJIAN_H_
typedefunsignedcharuint8;
typedefunsignedintuint16;
typedefcharint8;
typedefintint16;
sbitK0=P1^0;
sbitK1=P1^1;
sbitK2=P1^2;
sbitK3=P1^3;
sbitK4=P1^4;
sbitK5=P1^5;
sbitK6=P1^6;
sbitK7=P1^7;
sbitWL1=P2^3;
sbitWL2=P2^2;
sbitWL3=P2^1;
sbitWL4=P2^0;
#endif
2.3.4LCD1602显示
#include"
reg51.h"
#include"
absacc.h"
typedefunsignedcharBYTE;
typedefunsignedintWORD;
/*液晶1602口地址*/
#definewr_comXBYTE[0xC000]//写命令
#definewr_dataXBYT