关于单片机的生产实习.docx
- 文档编号:29817061
- 上传时间:2023-07-27
- 格式:DOCX
- 页数:57
- 大小:1.82MB
关于单片机的生产实习.docx
《关于单片机的生产实习.docx》由会员分享,可在线阅读,更多相关《关于单片机的生产实习.docx(57页珍藏版)》请在冰豆网上搜索。
关于单片机的生产实习
学号10780219
实习报告
(生产实习)
起止日期:
2013年6月24日至2013年7月19日
学生姓名
闵金涛
班级
10电信科2班
成绩
指导教师(签字)
计算机与信息工程学院
2013年7月19日
目录
第一章系统开发2
1.1生产实习介绍2
1.1.1生产实习的目的2
1.1.2生产实习的意义2
1.2单片机开发系统介绍2
1.2.1单片机简介及功能介绍2
1.2.2开发系统总的原理图4
1.2.3开发系统的组成5
1.3单片机开发板的焊接8
1.3.1焊接原则:
8
1.3.2焊接前准备:
8
1.3.3焊接前知识准备:
8
1.3.4焊接步骤:
8
第二章程序下载10
2.1程序生成10
2.2具体操作10
2.2.1第一步:
建立工程项目文件10
2.2.2第二步:
建立源文件13
2.2.3第三步:
将源程序文件添加到工程项目中15
2.2.4第四步:
为添加到工程项目的程序文件进行编译和链接16
第三章基于单片机的片外开发18
3.1前向通道的组成及其特点18
第四章主要相关程序20
4.11602的相关程序20
4.2A/D的相关程序23
4.3按键控制数码管29
4.4串口发送29
4.5串口接收31
4.6蜂鸣器唱歌33
4.7流水灯36
第五章开发过程遇到的问题及解决办法38
第六章实习体会39
第一章系统开发
1.1生产实习介绍
1.1.1生产实习的目的
1.联系电路板焊接技术,熟悉STC12C5A60S2单片机的电路图;
2.学习KeiluVision2集成开发工具的操作及调试程序的方法;
3.熟悉STC12C5A60S2单片机系统版及试验系统的结构及使用;
4.进行STC12C5A60S21单片机指令系统软件编程设计与硬件接口功能设计;
5.独立完成STC12C5A60S2单片机有关的相关作业;
6.完成STC12C5A60S21单片机有关的片外扩展;
7.独立完成实习报告;
1.1.2生产实习的意义
生产实习是本科教学计划中非常重要的实践性教学环节,是理论教学的完善和补充;生产实习也将理论知识和实际应用联系起来,增强学生的感性认识;了解电子信息产品组成、生产工艺过程及信息网络的构成。
此次生产实习是将理论知识与实际应用结合起来,从实际出发分析、研究和解决问题,将单片机的知识系统化,而且能对电子电路、电子元器件、印制电路板等方面的知识进一步加深认识,同时在软件编程、纠错、调试、焊接技术相关仪器设备的使用技能方面得到全面的锻炼和提高,为今后独立进行某些单片机应用系统的开发设计打下坚实基础。
1.2单片机开发系统介绍
1.2.1单片机简介及功能介绍
1.单片机简介
STC12C5A60S2是STC生产的单时钟/机器周期(1T)的单片机,是高速、低功耗、超强抗干扰的新一代8051单片机,指令代码完全兼容传统8051,但速度快8-12倍。
内部集成MAX810专用复位电路,2路PWM,8路高速10位A/D转换,针对电机控制,强干扰场合。
2.功能特性:
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)单芯片提供位逻辑运算指令;
图1-1STC12C5A60S2各引脚
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,外部数据存储器的读取信号。
1.2.2开发系统总的原理图
图1-2开发板原理图
1.2.3开发系统的组成
1.电源模块
STC12C5A60S21单片机芯片的第40脚为正电源引脚VCC,一般外接+5V电压,第20脚为接地引脚GND。
图1-3电源模块
2.串口通信模块
串行通信模块传送可靠性高,并行传输速率高。
在串行通信中按照数据传送方向,串行通信可分为单工、半双工和全双工三种制式。
在进行串行通信接口设计时,必须根据需要确定选择标准接口、传输介质及电平转换等问题。
和并行传送一样,现在已经有很多种串行标准总线,如RS-232C,RS-422、RS-485和20mA电流环等。
采用标准接口后,能够方便地把单片机和外设、测量仪器等有机地连接起来,从而构成一个测控系统。
此次开发板采用的是MAX232芯片提供由电脑串口到开发板的+10V到+5V的电平转换。
MAX232芯片是美信公司专门为电脑的RS-232标准串口设计的单电源电平转换芯片,使用+5v单电源供电。
主要特点为符合所有的RS-232C技术标准,只需要单一+5V电源供电,片载电荷泵具有升压、电压极性反转能力,能够产生+10V和-10V电压V+、V-功耗低,典型供电电流5mA内部集成2个RS-232C驱动器,内部集成两个RS-232C接收器。
图1-4串口通信电路
3.时钟电路设计
单片机是一种时序电路,必须要有时钟信号才能正常工作。
芯片的18脚(XTAL2)、19脚(XTAL1)分别为片内反向放大器的输出端和输入端,只要在18脚(XTAL2)和19脚(XTAL1)之间接上一个晶振,再加上2个30PF的瓷片电容即可构成单片机所需的时钟电路。
注意,当采用外部时钟时,19脚(XTAL1)接地,18脚(XTAL2)接外部时钟信号
图1-5时钟电路设计
4.复位电路的设计
单片机芯片的第9脚RST(Reset)是复位信号输入端。
在开机或工作中因干扰而使程序失控,或工作中程序处于某种死循环状态等情况下都需要复位。
MCS-51系列单片机的复位靠外部电路实现,信号从RST引脚输入,高电平有效,只要保持RST引脚高电平2个机器周期,单片机就能正常复位。
常见的复位电路有上电复位电路和按键复位电路二种。
4.程序存储器选择电路
单片机芯片的第31脚(EA)为内部与外部程序存储器选择输入端。
当EA引脚接高电平时,CPU先访问片内4KB的程序存储器,执行内部程序存储器中的指令,当程序计数器超过0FFFH时,将自动转向片外程序存储器,既是从1000H地址单元开始执行指令;当EA引脚接低电平时,不管片内是否有程序存储器,CPU只访问片外程序存储器。
AT89S51内部有4KB的程序存储器,所以根据该脚的引脚功能,只有将该脚接上高电平,才能先从片内程序存储器开始取指令。
常见的程序存储器选择电路就是将第31脚直接接到正电源上。
5.定时中断电路
两个外部中断(INT0和INT1),三个定时中断(定时器0、1、2)和一个串行中断。
每个中断源都可以通过置位或清除特殊寄存器IE中的相关中断允许控制位分别使得中断源有效或无效。
对于AT89S52,IE.5位也是不能用的。
用户软件不应给这些位写1。
定时器2可以被寄存器T2CON中的TF2和EXF2的或逻辑触发。
程序进入中断服务后,这些标志位都可以由硬件清0。
中断服务程序必须判定是否是TF2或EXF2激活中断,标志位也必须由软件清0。
定时器0和定时器1标志位TF0和TF1在计数溢出的那个周期的S5P2被置位。
定时器2的标志位TF2在计数溢出的那个周期的S2P2被置位,在同一个周期被电路捕捉下来。
中断允许控制位=1,允许中断;中断允许控制位=0,禁止中断。
1.3单片机开发板的焊接
1.3.1焊接原则:
1.熟练使用电烙铁等焊接工具焊接贴片等元器件
2.熟练掌握单片机最小系统工作原理并学会运用
3.此次焊接训练不是为了焊接而焊接,是为了让大家从理论到实践的一个过渡,也是为了让大家更好地掌握单片机的工作原理。
1.3.2焊接前准备:
1.旧毛巾一块(自带):
用来抨放电路板;
2.电烙铁一个(提供):
焊接最重要的工具,用来焊接元器件;
3.镊子一个(提供):
用来夹取贴片元件;
4.元器件盒(提供):
用来盛放元器件;
5.模仿板一块(提供)
1.3.3焊接前知识准备:
1.认识学习板上的每一个元器件(包括每一个贴片电阻、电容、、、)
2.会区分LED(发光二极管)的正负
3.知道芯片座的方向(注意缺口)
1.3.4焊接步骤:
1.注意事项:
拿到练习板之后先不要焊接,把板子上的电路看清楚,知道什么元器件放在什么位置上在进行焊接(检测板子有无短路现象)。
1)电源模块:
(1)领取电源模块所需的元器件
(2)焊接贴片元件
(3)焊接插件(先焊小的再焊大的):
依次焊LED→拨动开关→DC座
(4)检测环节:
用万用表检测贴片元件有无短路、断路;检查LED的方向有没有焊反,以上都没问题的话进入下一步
(5)通电检测,给DC座供上5V电源,拨动开关,观察指示灯是否正常发光,用万用表检测其供电电压是多少,检测LED的压降是多少。
2)复位电路
(1)领取复位电路所需的元器件
(2)焊接贴片元件
(3)焊接复位按键
(4)检测环节:
用万用表检测贴片元件有无短路、断路;以上都没问题的话进入下一步
(5)通电检测,给DC座供上5V电源,用万用表的20V电压档检测,红表笔接在复位(RST)9号引脚上黑表笔接地,拨动开关观察电压表示数变化
(6)测试手动复位:
红黑表笔仍然不动,按下复位键不松观察万用表的示数为多少,松开按键又为多少?
3)晶振电路
(1)领取晶振电路所需的元器件
(2)焊接贴片元件
(3)焊接晶振
(4)检测环节:
用万用表检测贴片元件有无短路、断路;
(5)通电检测检测晶振电路工作是否正常;
4)单片机模块
(1)领取单片机模块所需的元器件
(2)焊接贴片元件
(3)焊接40脚芯片座(注意芯片座方向)
(4)检测环节:
用万用表检测贴片元件有无短路、断路;(注意:
这里不焊排阻和排针)
4)串行通信电路:
、、
(1)领取串行通信电路所需的元器件
(2)焊接贴片元件
(3)焊接16脚芯片座(注意芯片座方向),焊接串口座等元件
(4)检测环节:
用万用表检测贴片元件有无短路、断路;检查芯片座方向有没有焊反。
第二章程序下载
2.1程序生成
2.1.1步骤:
1.首先建立工程项目文件;
2.为工程选择目标器件(如TA89S52);
3.工程项目设置软硬件调试环境;
4.创建源程序文件并输入程序代码;
5.保存创建的源程序项目文件;
6.把源程序文件添加到项目中;
2.2具体操作
2.2.1第一步:
建立工程项目文件
1.双击桌面
快捷图标
2.在打开的下界面中点工程项得到图6。
图2-1
3.打开工程下拉菜单,选择点击“新建工程“,首先在这里要新建一个工程项目文件。
图2-2
4.为工程文件取一个名称,确定选择存放的路径(事先为每一个工程单独建立一个目录),在建立工程时形成的所有文件全部存放在这个目录下,如起工程名y2(此时不加后缀),保存类型选择ProjectFiles(*.uv2)点保存
图2-3
5.接下来选择CPU驱动芯片,如AT89S52芯片,然后点确定。
图2-4
6.这时提示:
复制标准的8051开始代码到工程项目文件夹或添加文件到工程项目文件夹?
(如果选择Y之后将会产生一个STARTUP文件,对我们实验是一个无用的文件,会在个别计算机上会导致不能创建目标文件,同时会产生一个空白的工程项目文件),选择N之后只建立一个空白的工程项目文件,我们选N便于操作。
图2-5
至此用户就完成了建立一个空白的工程项目文件,并为工程选好了目标器件,但却是空白的工程项目文件。
2.2.2第二步:
建立源文件
1.在界面中打开文件下拉菜单,在打开的选项中点“新建”,产生一个新建空白文件。
图2-6
2.在新建空白文件中输入源程序文件
图2-7
3.在确认源程序无错时点保存,这时界面上弹出提示“另存为”菜单,选择好保存路径,也就是刚才保存建立工程项目文件的目录路径,输入文件名,如y2.asm(要有后缀,汇编程序是*.asm),然后点击保存。
图2-8
这时仅仅是完成了汇编程序的建立而已,但y2.asm汇编程序与y2.Uv2工程项目文件现在还没建立任何关系,此时应把y2.asm源程序文件添加到y2.Uv2工程中,构成一个完整的工程项目。
2.2.3第三步:
将源程序文件添加到工程项目中
1.在左侧ProjectWindows窗口内右击SourceGroup1,在弹出下拉菜单中选种AddFilestoGroup‘SourceGroup1’(向工程中添加源文件)命令,
图2-9
2.在弹出的菜单栏中点文件类型一栏下拉菜单,选AsmSourceFiles(*.a*:
*.src:
*.a*)即(汇编程序),文件框中选择将刚才创建的源程序文件y2.asm然后点Add,这时在文件名框后出现刚才选中y2.asm文件,在点击CLOSE完成源程序文件向工程项目的添加。
图2-10
2.2.4第四步:
为添加到工程项目的程序文件进行编译和链接
1.在界面上点工程(Project)选项,在下拉菜单中选择(OptionsForTarget‘Target‘),命令为目标设置工具选项。
图2-11
2.在“目标”(Target)选项卡片外代码内存,片外Xdata内存都为空白。
图2-12
3.在“输出”选项卡中选择创建HEX文件。
图2-13
第三章基于单片机的片外开发
单片机主要用于实时控制,因此具有一般计算机控制系统的普遍特征。
其典型应用系统应包括单片机系统、用于测控目的前向传感器输入通道,后向伺服控制输出通道以及基本的人机对话通道。
大型复杂的测控系统是一个多机系统,还包括机与机之间进行通信的互相通道。
图3.1是一个典型单片机应用系统的结构框图。
3.1前向通道的组成及其特点
前向通道是单片机与测控对象相连的部分,是应用系统的数据采集的输入通道。
来自被控对象的现场信息有多种多样。
按物理量的特征可分为模拟量和数字、开关量两种。
对于数字量(频率、周期、相位、计数)的采集,输入比较简单。
它们可直接作为计数输入、测试输入、I/O口输入或中断源输入进行事件计数、定时计数,实现脉冲的频率、周期、相位及记数测量。
对于开关量采集,一般通过I/O口线或扩展I/O口线直接输入。
一般被控对象都是交变电流、交变电压、大电流系统。
而单片机属于数字弱电系统,因此在数字量和开关量采集通道中,要用隔离器件进行隔离(如光电耦合器件)。
模拟量输入通道结构比较复杂,一般包括变换器、隔离放大器、滤波、采样保持器、多路开关、A/D转换器及其接口电路,如图11.2所示。
变换器:
变换器是各种传感器的总称,它采集现场的各种信号,并变换成电信号(电压信号或电流信号),以满足单片机的输入要求。
现场信号各种各样,有电信号,如电压、电流、电磁量等;也有非电信号,如温度、湿度、压力、流量、位移量等,对于不同物理量应选择相应的传感器。
隔离放大与滤波:
传感器的输出信号一般是比较微弱的,不能满足单片机系统的输入要
求。
要经过放大处理后才能作为单片机系统的采集输入信号。
还有,现场信息来自各种工业现场,夹带大量的噪音干扰信号。
为提高单片机应用系统的可靠性,必须隔离或削减干扰信号,这是整个系统抗干扰设计的重点部位。
采样保持器:
前向通道中的采样保持器有两个作用。
一是实现多路模拟信号的同时采集;二是消除A/D转换器的“孔径误差”。
一般的单片机应用系统都是用一个A/D转换器分时对多路模拟信号进行转换并输入给单片机,而控制系统又要求单片机对同一时刻的现场采样值进行处理,否则将产生很大误差。
用一个A/D转换器同时对多路模拟信号进行采样是由采样保持器来实现的。
采样保持器在单片机的控制下,在某一个时刻可同时采样它所接电路的模拟信号的值,并能保持该瞬时值,直到下一次重新采样。
A/D转换器把一个模拟量转换成数字量总要经历一个时间过程。
A/D转换器从接通模拟信号开始转换,到转换结束输出稳定的数字量,这一段时间称为孔径时间。
对于一个动态模拟信号,在A/D转换器接通的孔径时间里,输入模拟信号值是不确定的,从而会引起输出的不确定性误差。
在A/D转换器前加设采集保持器;在孔径时间里,使模拟信号保持某一个瞬时值不变,从而可消除孔径误差。
多路开关:
用多路开关实现一个A/D转换器分时对多路模拟信号进行转换。
多路开关
是受单片机控制的多路模拟电子开关,某一时刻需要对某路模拟信号进行转换,由单片机向多路开关发出路地址信息,使多路开关把该路模拟信号与A/D转换器接通,其它路模拟信号与A/D转换器不接通,实现有选择的转换。
A/D转换器:
是前向通道中模拟系统与数字系统连接的核心部件。
第四章主要相关程序
4.11602的相关程序
#include"reg51.h"
#include"absacc.h"
typedefunsignedcharBYTE;
typedefunsignedintWORD;
/*液晶1602口地址*/
#definewr_comXBYTE[0xC000]//写命令
#definewr_dataXBYTE[0xC100]//写数据
#definerd_comXBYTE[0xC200]//读命令
#definerd_dataXBYTE[0xC300]//读数据
voidlcd_init(void);//lcd初始化
voidwrite_cmd(BYTEcmd);//lcd写命令
//voidwrite_string(unsignedchar*s);//写字符串
voidwrite_data(BYTEdat);//写数据
voidset_display_place(BYTEline,column);
voidwrite_string_lcd(BYTEline,column,unsignedchar*string);
//voidwrite_data_lcd(BYTEline,column,dat);
//voidcrti(unsignedlongdat);
//voidcrt_r(floatx,BYTEN);
voidDelay(WORDn)
{
WORDx;
while(n--)
{
x=500;
while(x--);
}
}
/*
voidDelay2(WORDn)
{
WORDx;
while(n--)
{
x=5000;
while(x--);
}
}
*/
/********
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 关于 单片机 生产 实习